openpond-sdk 0.12.19 → 0.12.20

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.
@@ -1480,6 +1480,24 @@ export declare const TrainingCapabilitiesSchema: z.ZodObject<{
1480
1480
  interruptedRecoveryOptimizer: z.ZodLiteral<"restore">;
1481
1481
  }, z.core.$strict>;
1482
1482
  }, z.core.$strict>>;
1483
+ supervisedTraining: z.ZodOptional<z.ZodArray<z.ZodObject<{
1484
+ schemaVersion: z.ZodLiteral<"openpond.managedSftImageSupport.v2">;
1485
+ workerImageDigest: z.ZodString;
1486
+ workerSourceReleaseSha256: z.ZodString;
1487
+ baseModel: z.ZodObject<{
1488
+ id: z.ZodString;
1489
+ revision: z.ZodString;
1490
+ tokenizerRevision: z.ZodString;
1491
+ chatTemplateHash: z.ZodString;
1492
+ }, z.core.$strip>;
1493
+ gpuCount: z.ZodLiteral<1>;
1494
+ supportedRanks: z.ZodArray<z.ZodNumber>;
1495
+ maxSequenceLength: z.ZodNumber;
1496
+ maxEpochs: z.ZodNumber;
1497
+ maxOptimizerSteps: z.ZodNumber;
1498
+ evidenceRef: z.ZodString;
1499
+ evidenceSha256: z.ZodString;
1500
+ }, z.core.$strict>>>;
1483
1501
  policyDataParallel: z.ZodOptional<z.ZodObject<{
1484
1502
  capability: z.ZodLiteral<"managed_rl.policy.data_parallel">;
1485
1503
  version: z.ZodLiteral<"1">;
@@ -1 +1 @@
1
- {"version":3,"file":"training-job-contracts.d.ts","sourceRoot":"","sources":["../../../../../src/training-job-contracts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"training-job-contracts.d.ts","sourceRoot":"","sources":["../../../../../src/training-job-contracts.ts"],"names":[],"mappings":"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"}
@@ -45,8 +45,8 @@ export declare const SftRecipeSchema: z.ZodObject<{
45
45
  }, z.core.$strip>;
46
46
  }, z.core.$strip>;
47
47
  export type SftRecipe = z.infer<typeof SftRecipeSchema>;
48
- /** The first managed SFT worker has a deliberately bounded execution surface.
49
- * This is an executable requirement, not an advertised fleet capability.
48
+ /** Managed authoring ceiling. An immutable worker's advertised SFT envelope
49
+ * may be smaller and must also admit the recipe before paid execution.
50
50
  */
51
51
  export declare const ManagedSftRecipeSchema: z.ZodObject<{
52
52
  schemaVersion: z.ZodLiteral<"openpond.sftRecipe.v1">;
@@ -98,4 +98,27 @@ export declare const ManagedSftRecipeSchema: z.ZodObject<{
98
98
  wallTimeMs: z.ZodNumber;
99
99
  }, z.core.$strip>;
100
100
  }, z.core.$strip>;
101
+ /** Image-specific support, rather than the broad managed authoring ceiling.
102
+ * Receipt identity belongs to the server's reviewed immutable-image registry.
103
+ */
104
+ export declare const TrainingSftImageCapabilitiesSchema: z.ZodObject<{
105
+ schemaVersion: z.ZodLiteral<"openpond.managedSftImageSupport.v2">;
106
+ workerImageDigest: z.ZodString;
107
+ workerSourceReleaseSha256: z.ZodString;
108
+ baseModel: z.ZodObject<{
109
+ id: z.ZodString;
110
+ revision: z.ZodString;
111
+ tokenizerRevision: z.ZodString;
112
+ chatTemplateHash: z.ZodString;
113
+ }, z.core.$strip>;
114
+ gpuCount: z.ZodLiteral<1>;
115
+ supportedRanks: z.ZodArray<z.ZodNumber>;
116
+ maxSequenceLength: z.ZodNumber;
117
+ maxEpochs: z.ZodNumber;
118
+ maxOptimizerSteps: z.ZodNumber;
119
+ evidenceRef: z.ZodString;
120
+ evidenceSha256: z.ZodString;
121
+ }, z.core.$strict>;
122
+ export type TrainingSftImageCapabilities = z.infer<typeof TrainingSftImageCapabilitiesSchema>;
123
+ export declare function supportsTrainingSftRecipe(image: TrainingSftImageCapabilities, recipe: SftRecipe): boolean;
101
124
  //# sourceMappingURL=training-supervised.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"training-supervised.d.ts","sourceRoot":"","sources":["../../../../../src/training-supervised.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAsC1B,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA0CjC,CAAC"}
1
+ {"version":3,"file":"training-supervised.d.ts","sourceRoot":"","sources":["../../../../../src/training-supervised.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAsC1B,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA0CjC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;kBAe7C,CAAC;AACH,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAE9F,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,4BAA4B,EACnC,MAAM,EAAE,SAAS,GAChB,OAAO,CAST"}
@@ -33,7 +33,7 @@ export * from "./engram-model-version.js";
33
33
  export * from "./engram-experiment-authoring.js";
34
34
  export * from "./experiment-draft-storage.js";
35
35
  export { TrainingExecutionSummarySchema, TrainingExecutionPageSchema, TrainingExecutionListQuerySchema, type TrainingExecutionSummary, type TrainingExecutionPage, type TrainingExecutionListQuery } from "./training-executions.js";
36
- export { SftRecipeSchema, ManagedSftRecipeSchema, type SftRecipe } from "./training-supervised.js";
36
+ export { SftRecipeSchema, ManagedSftRecipeSchema, TrainingSftImageCapabilitiesSchema, supportsTrainingSftRecipe, type SftRecipe, type TrainingSftImageCapabilities } from "./training-supervised.js";
37
37
  export { TrainingApiErrorSchema, OpenPondTrainingApiError } from "./training-transport.js";
38
38
  export { HardwareObservationSchema, HardwareFleetSnapshotSchema, HardwareAvailabilitySchema, HardwareGpuObservationSchema, type HardwareObservation, type HardwareFleetSnapshot, type HardwareObservationQuery } from "./training-hardware.js";
39
39
  export { TrainingAcceptanceGroupReferenceSchema, TrainingAcceptanceGroupSummarySchema, TrainingAcceptanceGroupPageSchema, TrainingAcceptanceGroupQuerySchema, type TrainingAcceptanceGroupReference, type TrainingAcceptanceGroupSummary, type TrainingAcceptanceGroupPage, type TrainingAcceptanceGroupQuery, type TrainingAcceptanceTarget, } from "./training-acceptance.js";
@@ -19309,6 +19309,24 @@ export declare function createTrainingClient(input: {
19309
19309
  interruptedRecoveryOptimizer: "restore";
19310
19310
  };
19311
19311
  } | undefined;
19312
+ supervisedTraining?: {
19313
+ schemaVersion: "openpond.managedSftImageSupport.v2";
19314
+ workerImageDigest: string;
19315
+ workerSourceReleaseSha256: string;
19316
+ baseModel: {
19317
+ id: string;
19318
+ revision: string;
19319
+ tokenizerRevision: string;
19320
+ chatTemplateHash: string;
19321
+ };
19322
+ gpuCount: 1;
19323
+ supportedRanks: number[];
19324
+ maxSequenceLength: number;
19325
+ maxEpochs: number;
19326
+ maxOptimizerSteps: number;
19327
+ evidenceRef: string;
19328
+ evidenceSha256: string;
19329
+ }[] | undefined;
19312
19330
  policyDataParallel?: {
19313
19331
  capability: "managed_rl.policy.data_parallel";
19314
19332
  version: "1";
@@ -1 +1 @@
1
- {"version":3,"file":"training.d.ts","sourceRoot":"","sources":["../../../../../src/training.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BA8C+B,2BAA2B;;;;;;;;;;;;0BAY3B,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAatC;QACP,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAeiB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAQH,MAAM,mBAAmB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAY1B,MAAM,mBAAmB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAY5B,MAAM,SAAS,CAAC,CAAC,KAAK,CAAC,OAAO,uCAAuC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAYjF,MAAM;;;;;;;;;;;mBAUL,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAMlB,MAAM,cACD;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,YACtC;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAyB5B,MAAM;;;;;;;;EAY3B;AAOD,OAAO,EAAE,qBAAqB,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,qCAAqC,EAAE,wBAAwB,EAAE,KAAK,eAAe,EAAE,KAAK,uBAAuB,EAAE,KAAK,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACvT,cAAc,kCAAkC,CAAC;AAEjD,OAAO,EAAE,iCAAiC,EAAE,2BAA2B,EAAE,KAAK,2BAA2B,EAAE,KAAK,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAC9K,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,+BAA+B,CAAC;AAE9C,OAAO,EAAE,8BAA8B,EAAE,MAAM,yBAAyB,CAAC;AAEzE,cAAc,iCAAiC,CAAC;AAChD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,oCAAoC,CAAC"}
1
+ {"version":3,"file":"training.d.ts","sourceRoot":"","sources":["../../../../../src/training.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BA8C+B,2BAA2B;;;;;;;;;;;;0BAY3B,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAatC;QACP,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAeiB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAQH,MAAM,mBAAmB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAY1B,MAAM,mBAAmB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAY5B,MAAM,SAAS,CAAC,CAAC,KAAK,CAAC,OAAO,uCAAuC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAYjF,MAAM;;;;;;;;;;;mBAUL,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAMlB,MAAM,cACD;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,YACtC;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAyB5B,MAAM;;;;;;;;EAY3B;AAOD,OAAO,EAAE,qBAAqB,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,qCAAqC,EAAE,wBAAwB,EAAE,KAAK,eAAe,EAAE,KAAK,uBAAuB,EAAE,KAAK,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACvT,cAAc,kCAAkC,CAAC;AAEjD,OAAO,EAAE,iCAAiC,EAAE,2BAA2B,EAAE,KAAK,2BAA2B,EAAE,KAAK,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAC9K,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,+BAA+B,CAAC;AAE9C,OAAO,EAAE,8BAA8B,EAAE,MAAM,yBAAyB,CAAC;AAEzE,cAAc,iCAAiC,CAAC;AAChD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,oCAAoC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openpond-sdk",
3
- "version": "0.12.19",
3
+ "version": "0.12.20",
4
4
  "description": "Server-side TypeScript SDK for OpenPond sandboxes and agentic work",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/managed-compute-price.ts","../src/training-usage-funding.ts","../src/training-recovery.ts","../src/training-physical-placement.ts","../src/training-queue.ts","../src/training-usage-status.ts","../src/training-job-contracts.ts","../src/training-grading-plan.ts","../src/training-evaluation-source.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\n\nconst Hash = z.string().regex(/^[a-f0-9]{64}$/);\nconst Money = z.string().regex(/^(0|[1-9]\\d*)(\\.\\d{1,6})?$/).max(24);\nconst micros = (value:string) => {\n const [whole,fraction=\"\"] = Money.parse(value).split(\".\");\n return BigInt(whole!)*1_000_000n+BigInt(fraction.padEnd(6,\"0\"));\n};\n\n/** Accepted customer price only. Supplier accounts, hardware costs and\n * infrastructure identities are not part of this public contract. */\nexport const ComputeAppliedPriceSchema = z.object({\n schemaVersion:z.literal(\"openpond.computeAppliedPrice.v1\"),\n version:z.string().min(1).max(500),\n service:z.enum([\"managed_rl\",\"model_modification\",\"model_serving\",\"sandbox\"]),\n profileHash:Hash,currency:z.literal(\"USD\"),unit:z.literal(\"resource_hour\"),\n hourlyUsd:Money.refine(value=>{\n if(!Money.safeParse(value).success) return false;\n const amount=micros(value);\n return amount>0n && amount<=BigInt(Number.MAX_SAFE_INTEGER);\n }),\n}).strict();\nexport type ComputeAppliedPrice = z.infer<typeof ComputeAppliedPriceSchema>;\n\nexport const ManagedModificationPriceSchema = z.object({\n schemaVersion:z.literal(\"openpond.modificationPrice.v1\"),\n appliedPrice:ComputeAppliedPriceSchema.extend({service:z.literal(\"model_modification\")}),\n billingBoundary:z.literal(\"active_allocation_until_verified_cleanup\"),\n startupBillable:z.literal(true),\n postCompletionIdleBillable:z.literal(false),\n minimumBillableSeconds:z.literal(0),\n warmReuseSeconds:z.literal(300),\n}).strict();\nexport type ManagedModificationPrice = z.infer<typeof ManagedModificationPriceSchema>;\n\n/** Null means use available credits, with native finite execution bounds.\n * Empty form fields have the same meaning; wire-level schemas reject blanks. */\nexport function canonicalComputeSpendCap(value:string|null|undefined):string|null {\n if(value==null || value.trim()===\"\") return null;\n const amount=micros(value);\n if(amount<=0n || amount>1_000_000_000_000n)\n throw new OpenPondProtocolError(\"managed_modification_cap_invalid\",\"Choose a positive spending limit of at most 1,000,000 USD, or use available credits.\");\n return `${amount/1_000_000n}.${(amount%1_000_000n).toString().padStart(6,\"0\")}`;\n}\n\nexport function assertManagedModificationPricing(plan:{maximumSpendUsd:string|null;runtimeHash:string;computePrice?:ManagedModificationPrice}) {\n if(plan.maximumSpendUsd!==canonicalComputeSpendCap(plan.maximumSpendUsd) ||\n plan.maximumSpendUsd===null && !plan.computePrice ||\n plan.computePrice && plan.computePrice.appliedPrice.profileHash!==plan.runtimeHash)\n throw new OpenPondProtocolError(\"managed_modification_price_mismatch\",\"Retain the exact reviewed rate, runtime and optional spending limit.\");\n}\n\nexport async function managedModificationPriceApprovalMatches(plan:{computePrice?:ManagedModificationPrice},\n command:{approvedPriceHash?:string}) {\n return plan.computePrice ? command.approvedPriceHash===await canonicalSha256(plan.computePrice)\n : command.approvedPriceHash===undefined;\n}\n","import { z } from \"zod\";\nimport { ComputeAppliedPriceSchema } from \"./managed-compute-price.js\";\nimport { canonicalSha256, OpenPondProtocolError } from \"./protocol.js\";\n\nconst Id = z.string().min(1).max(500), Hash = z.string().regex(/^[a-f0-9]{64}$/);\nconst Price = ComputeAppliedPriceSchema.extend({ service: z.literal(\"managed_rl\") });\nconst Cap = z.string().regex(/^(0|[1-9]\\d*)\\.\\d{6}$/).max(24).refine(value => {\n if (!/^(0|[1-9]\\d*)\\.\\d{6}$/.test(value) || value.length > 24) return false;\n const micros = BigInt(value.replace(\".\", \"\"));\n return micros > 0n && micros <= BigInt(Number.MAX_SAFE_INTEGER);\n}).nullable();\nconst Guests = z.array(z.object({\n profileHash: Hash, price: Price,\n resources: z.object({ cpu: z.number().positive(), memoryGb: z.number().positive(), diskGb: z.number().nonnegative() }).strict(),\n}).strict()).max(32);\nconst Rate = z.string().regex(/^(0|[1-9]\\d*)\\.\\d{6}$/).max(24).refine(value =>\n /^(0|[1-9]\\d*)\\.\\d{6}$/.test(value) && value.length <= 24 &&\n BigInt(value.replace(\".\", \"\")) <= BigInt(Number.MAX_SAFE_INTEGER));\nconst Judges = z.object({\n billing: z.literal(\"existing_retail_child_captures\"), acceptedPricingHashes: z.array(Hash).max(64),\n prices: z.array(z.object({\n modelId: Id, displayName: Id, acceptedPricingHash: Hash,\n inputUsdPerMillionTokens: Rate, cachedInputUsdPerMillionTokens: Rate, outputUsdPerMillionTokens: Rate,\n cacheWriteUsdPerMillionTokens: Rate.nullable(), cacheWriteOneHourUsdPerMillionTokens: Rate.nullable(),\n longContextThresholdTokens: z.number().int().positive().nullable(),\n longContext: z.object({ inputUsdPerMillionTokens: Rate, cachedInputUsdPerMillionTokens: Rate,\n outputUsdPerMillionTokens: Rate, cacheWriteUsdPerMillionTokens: Rate.nullable() }).strict().nullable(),\n }).strict()).max(64),\n}).strict();\n\nexport const TrainingBillingModesSchema = z.tuple([\n z.object({ mode: z.literal(\"prepaid_only\"), availability: z.literal(\"available\"), reason: z.null() }).strict(),\n z.object({ mode: z.literal(\"actual_usage\"), availability: z.enum([\"unavailable\", \"requires_preparation\"]),\n reason: z.string().min(1).max(500).nullable() }).strict(),\n]);\nexport type TrainingBillingModes = z.infer<typeof TrainingBillingModesSchema>;\n\n/** The optional customer limit covers all priced components of this Job.\n * An omitted limit uses eligible credits; it never permits customer debt. */\nexport const TrainingUsageFundingRequestSchema = z.object({\n schemaVersion: z.literal(\"openpond.trainingUsageFundingRequest.v1\"),\n billingMode: z.literal(\"actual_usage\"), customerCapUsd: Cap,\n}).strict();\nexport type TrainingUsageFundingRequest = z.infer<typeof TrainingUsageFundingRequestSchema>;\n\nexport const TrainingUsageQuoteContentSchema = z.object({\n schemaVersion: z.literal(\"openpond.trainingUsageQuote.v1\"), teamId: Id, actorUserId: Id,\n preparationId: Id, submissionHash: Hash, workerImageDigest: z.string().regex(/^sha256:[a-f0-9]{64}$/),\n customerCapUsd: Cap, maximumWallSeconds: z.number().int().positive(), retentionDays: z.number().int().nonnegative(),\n gpu: Price, guests: Guests, judges: Judges,\n storage: z.object({ price: Price, storageClass: z.literal(\"STANDARD\"), quantityBasis: z.literal(\"gib_milliseconds\"),\n onCreditExhaustion: z.literal(\"retain_objects_and_stop_new_storage\") }).strict(),\n gpuBillingBoundary: z.literal(\"active_allocation_until_verified_cleanup\"),\n storageBillingBoundary: z.literal(\"accepted_retention_window\"),\n startupBillable: z.literal(true), postCompletionIdleBillable: z.literal(false), minimumBillableSeconds: z.literal(0),\n issuedAt: z.iso.datetime(), expiresAt: z.iso.datetime(),\n}).strict();\nexport const TrainingUsageQuoteSchema = TrainingUsageQuoteContentSchema.extend({ contentHash: Hash, signature: Id }).strict();\nexport type TrainingUsageQuote = z.infer<typeof TrainingUsageQuoteSchema>;\n\n/** The server verifies its private signature before dispatch. Clients verify\n * the quote's hash and exact reviewed preparation without possessing that key. */\nexport async function verifyTrainingUsageQuote(raw: TrainingUsageQuote, expected: {\n teamId: string; actorUserId: string; preparationId: string; submissionHash: string; customerCapUsd: string | null;\n}) {\n const quote = TrainingUsageQuoteSchema.parse(raw), { contentHash, signature: _signature, ...content } = quote;\n if (contentHash !== await canonicalSha256(content) || quote.teamId !== expected.teamId ||\n quote.actorUserId !== expected.actorUserId || quote.preparationId !== expected.preparationId ||\n quote.submissionHash !== expected.submissionHash || quote.customerCapUsd !== expected.customerCapUsd ||\n Date.parse(quote.expiresAt) <= Date.parse(quote.issuedAt) ||\n new Set(quote.guests.map(guest => guest.profileHash)).size !== quote.guests.length ||\n quote.guests.some(guest => guest.profileHash !== guest.price.profileHash) ||\n new Set(quote.judges.acceptedPricingHashes).size !== quote.judges.acceptedPricingHashes.length ||\n new Set(quote.judges.prices.map(price => price.acceptedPricingHash)).size !== quote.judges.prices.length ||\n quote.judges.prices.length !== quote.judges.acceptedPricingHashes.length ||\n quote.judges.prices.some(price => !quote.judges.acceptedPricingHashes.includes(price.acceptedPricingHash)))\n throw new OpenPondProtocolError(\"training_usage_quote_mismatch\", \"Training prices differ from the reviewed preparation, actor or spending limit.\");\n return quote;\n}\n","import { z } from \"zod\";\nimport { canonicalSha256 } from \"./protocol.js\";\n\nconst id = z.string().trim().min(1).max(191);\nconst hash = z.string().regex(/^[a-f0-9]{64}$/);\nconst ApprovalBodySchema = z\n .object({\n schemaVersion: z.literal(\"openpond.checkpointRecoveryResourceApproval.v1\"),\n ownerUserId: id,\n teamId: id,\n sourceJobId: id,\n sourceJobVersion: z.number().int().positive(),\n sourceInputManifestSha256: hash,\n checkpointId: id,\n adapterSha256: hash,\n resumeSha256: hash,\n idempotencyKey: z.string().trim().min(16).max(191),\n approvedAt: z.iso.datetime({ offset: true }),\n maximumSpendUsd: z\n .number()\n .positive()\n .finite()\n .max(30)\n .refine(\n (value) => Number(value.toFixed(6)) === value,\n \"Recovery spend must use whole microdollars\",\n ),\n maximumGpuSeconds: z.number().int().positive().max(21_600),\n maximumWallSeconds: z.number().int().positive().max(21_600),\n })\n .strict();\n\nexport const TrainingCheckpointRecoveryResourceApprovalSchema = ApprovalBodySchema.extend({\n approvalHash: hash,\n})\n .strict()\n .superRefine((value, context) => {\n if (value.maximumGpuSeconds > value.maximumWallSeconds)\n context.addIssue({\n code: \"custom\",\n path: [\"maximumGpuSeconds\"],\n message: \"Recovery GPU duration exceeds its wall\",\n });\n });\n\n/** The authenticated source owner's funded request is consent; this hash binds its exact scope. */\nexport async function createTrainingCheckpointRecoveryResourceApproval(\n input: z.input<typeof ApprovalBodySchema>,\n) {\n const body = ApprovalBodySchema.parse(input);\n return TrainingCheckpointRecoveryResourceApprovalSchema.parse({\n ...body,\n approvalHash: await canonicalSha256(body),\n });\n}\n\n/** Exact execution recovery; a continual-training optimizer reset is separate. */\nexport const TrainingCheckpointRecoveryRequestSchema = z\n .object({\n resourceApproval: TrainingCheckpointRecoveryResourceApprovalSchema.optional(),\n mode: z.literal(\"evaluation_only\").optional(),\n evaluationGpuType: z\n .enum([\"NVIDIA A100 80GB PCIe\", \"NVIDIA A100-SXM4-80GB\", \"NVIDIA H100 80GB HBM3\"])\n .optional(),\n expectedVersion: z.number().int().positive(),\n checkpointId: id,\n idempotencyKey: z.string().trim().min(16).max(191),\n maximumSpendUsd: z.number().positive().finite(),\n maximumWallSeconds: z.number().int().positive().max(21_600),\n })\n .strict()\n .superRefine((value, context) => {\n if (value.evaluationGpuType && value.mode !== \"evaluation_only\")\n context.addIssue({\n code: \"custom\",\n path: [\"evaluationGpuType\"],\n message: \"GPU substitution requires explicit evaluation-only recovery\",\n });\n const a = value.resourceApproval;\n if (\n a &&\n (a.sourceJobVersion !== value.expectedVersion ||\n a.checkpointId !== value.checkpointId ||\n a.idempotencyKey !== value.idempotencyKey ||\n a.maximumSpendUsd !== value.maximumSpendUsd ||\n a.maximumWallSeconds !== value.maximumWallSeconds)\n )\n context.addIssue({\n code: \"custom\",\n path: [\"resourceApproval\"],\n message: \"Recovery resource approval does not match its request\",\n });\n });\n","import { z } from \"zod\";\n\n/** Placement authority only: a fresh learner never inherits the source Policy. */\nexport const TrainingPhysicalPlacementSchema = z.object({\n mode: z.literal(\"reuse_only\"),\n physicalWorkerId: z.string().trim().min(1).max(191),\n providerPodId: z.string().trim().min(1).max(191),\n workerImageDigest: z.string().regex(/^sha256:[a-f0-9]{64}$/),\n baseProfileSha256: z.string().regex(/^[a-f0-9]{64}$/),\n gpuType: z.string().trim().min(1).max(200),\n sourceJobId: z.string().trim().min(1).max(191),\n sourceInputManifestSha256: z.string().regex(/^[a-f0-9]{64}$/),\n ownerTeamId: z.string().trim().min(1).max(191),\n deadlineAt: z.string().datetime({ offset: true }),\n}).strict();\n\nexport type TrainingPhysicalPlacement = z.infer<typeof TrainingPhysicalPlacementSchema>;\n","import { z } from \"zod\";\n\nconst Timestamp = z.string().datetime({ offset: true });\n\n/** Customer status deliberately omits provider/internal capacity reasons. A\n * stable ticket identifies the request; current fair-queue position may change. */\nexport const TrainingQueueStatusSchema = z.object({\n ticketId: z.string().trim().min(1).max(191),\n ticketNumber: z.number().int().positive().max(Number.MAX_SAFE_INTEGER),\n label: z.literal(\"Waiting for resources\"),\n position: z.number().int().positive().nullable(),\n positionScope: z.literal(\"compatible_fair_queue\"),\n enqueuedAt: Timestamp,\n asOf: Timestamp,\n estimate: z.object({\n revision: z.number().int().nonnegative(),\n estimatedStartAt: Timestamp,\n expiresAt: Timestamp,\n evidence: z.enum([\"observed_capacity\", \"measured_bootstrap\", \"scheduled_release\"]),\n }).strict().nullable(),\n}).strict().superRefine((value, context) => {\n if (value.estimate && Date.parse(value.estimate.expiresAt) <= Date.parse(value.asOf))\n context.addIssue({ code: \"custom\", path: [\"estimate\"], message: \"An expired queue forecast must be returned as unavailable\" });\n});\n\nexport type TrainingQueueStatus = z.infer<typeof TrainingQueueStatusSchema>;\n","import { z } from \"zod\";\n\nconst Money = z.string().regex(/^(0|[1-9]\\d*)\\.\\d{6}$/).max(24).refine(value =>\n /^(0|[1-9]\\d*)\\.\\d{6}$/.test(value) && value.length <= 24 &&\n BigInt(value.replace(\".\", \"\")) <= BigInt(Number.MAX_SAFE_INTEGER));\n\n/** Read-only account-locked totals. Available credit never grants execution authority. */\nexport const TrainingUsageSnapshotSchema = z.object({\n schemaVersion: z.literal(\"openpond.trainingUsageSnapshot.v1\"), asOf: z.iso.datetime(),\n customerCapUsd: Money.nullable(), chargedUsd: Money, committedUsd: Money, outstandingUsd: Money,\n remainingCapUsd: Money.nullable(), availableCreditUsd: Money, complete: z.boolean(),\n components: z.array(z.object({ component: z.enum([\"gpu\", \"guest\", \"storage\", \"judge\"]),\n chargedUsd: Money, committedUsd: Money, outstandingUsd: Money, openOwners: z.number().int().nonnegative(),\n }).strict()).length(4).refine(values => values.every((value, index) =>\n value.component === [\"gpu\", \"guest\", \"storage\", \"judge\"][index])),\n}).strict();\nexport type TrainingUsageSnapshot = z.infer<typeof TrainingUsageSnapshotSchema>;\n","/** Credential-free training wire contracts. Schema owners import this leaf;\n * the public training client barrel composes owners and re-exports these values. */\nimport { z } from \"zod\";\nimport { TrainingHandoffOriginSchema } from \"@openpond/evals/learning\";\nimport { ModelProjectBaseModelSchema, ModelProjectImmutableRefSchema,\n ModelProjectRecipeDocumentSchema, ModelProjectVersionedRefSchema } from \"./model-projects.js\";\nimport { SftRecipeSchema } from \"./training-supervised.js\";\nimport { TrainingCheckpointRecoveryResourceApprovalSchema } from \"./training-recovery.js\";\nimport { TrainingPhysicalPlacementSchema } from \"./training-physical-placement.js\";\nimport { TrainingGpuSelectionSchema } from \"./training-compute-selection.js\";\nimport { TrainingQueueStatusSchema } from \"./training-queue.js\";\nimport { TrainingUsageSnapshotSchema } from \"./training-usage-status.js\";\nimport { TrainingBillingModesSchema } from \"./training-usage-funding.js\";\nimport { TRAINING_INPUT_ARTIFACT_MAX_BYTES, TRAINING_JOB_SUBMISSION_MAX_BYTES,\n OpenPondProtocolError, assertCanonicalPayloadSize, canonicalSha256 } from \"./protocol.js\";\n\nconst IdSchema = z.string().trim().min(1).max(500);\nconst HashSchema = z.string().regex(/^[a-f0-9]{64}$/);\nconst TimestampSchema = z.string().datetime({ offset: true });\n\n/**\n * Stages a content-addressed immutable input before Job admission. The payload\n * is deliberately opaque to the transport contract: its declared kind owns\n * the executable schema, while the envelope provides bounded bytes,\n * idempotency, and a stable manifest lookup key.\n */\nexport const TrainingInputArtifactUploadSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.trainingInputArtifactUpload.v2\"),\n kind: z.enum([\"portable_training_bundle\", \"reward_model_dataset\"]),\n idempotencyKey: z.string().trim().min(1).max(500),\n sourceManifest: ModelProjectImmutableRefSchema,\n payload: z.unknown(),\n contentHash: HashSchema,\n })\n .strict();\n\nexport const TrainingInputArtifactSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.trainingInputArtifact.v2\"),\n kind: z.enum([\"portable_training_bundle\", \"reward_model_dataset\"]),\n sourceManifest: ModelProjectImmutableRefSchema,\n artifactRef: z.string().trim().min(1).max(2_000),\n contentHash: HashSchema,\n sizeBytes: z.number().int().positive(),\n createdAt: TimestampSchema,\n })\n .strict();\n\nexport async function trainingInputArtifactUploadHash(\n upload: Omit<TrainingInputArtifactUpload, \"contentHash\"> | TrainingInputArtifactUpload,\n): Promise<string> {\n const { contentHash: _contentHash, ...content } = upload as TrainingInputArtifactUpload;\n return canonicalSha256(content);\n}\n\nexport async function parseAndVerifyTrainingInputArtifactUpload(\n value: unknown,\n): Promise<TrainingInputArtifactUpload> {\n assertCanonicalPayloadSize(value, TRAINING_INPUT_ARTIFACT_MAX_BYTES, \"Training input artifact\");\n const parsed = TrainingInputArtifactUploadSchema.parse(value);\n const expectedHash = await trainingInputArtifactUploadHash(parsed);\n if (parsed.contentHash !== expectedHash) {\n throw new OpenPondProtocolError(\n \"content_hash_mismatch\",\n `Training input artifact contentHash ${parsed.contentHash} does not match ${expectedHash}.`,\n );\n }\n return parsed;\n}\n\nexport const TrainingJobKindSchema = z.enum([\"reward_model_train\", \"policy_optimize\"]);\n\nexport const TrainingJobStateSchema = z.enum([\n \"queued\",\n \"admitting\",\n \"provisioning\",\n \"running\",\n \"stopping\",\n \"cancelling\",\n \"succeeded\",\n \"failed\",\n \"cancelled\",\n]);\n\nexport const TrainingCapabilityRequirementSchema = z\n .object({\n id: IdSchema,\n version: z.string().trim().min(1).max(200).nullable().default(null),\n required: z.boolean().default(true),\n })\n .strict();\n\nexport const TrainingJobSourceSchema = z\n .object({\n origin: TrainingHandoffOriginSchema.optional(),\n modelProject: z\n .object({\n id: IdSchema,\n portableProjectId: IdSchema,\n revision: z.number().int().positive(),\n contentHash: HashSchema,\n })\n .strict(),\n harnessRunManifest: ModelProjectImmutableRefSchema,\n harnessRelease: ModelProjectImmutableRefSchema,\n taskset: ModelProjectVersionedRefSchema,\n tasksetRelease: ModelProjectImmutableRefSchema,\n evaluation: z\n .object({\n taskset: ModelProjectVersionedRefSchema,\n dataset: ModelProjectImmutableRefSchema,\n })\n .strict()\n .nullable()\n .optional(),\n dataset: ModelProjectImmutableRefSchema,\n evidenceSets: z.array(ModelProjectImmutableRefSchema).max(10_000),\n })\n .strict();\n\nexport const RewardModelTrainingRequestSchema = z\n .object({\n kind: z.literal(\"reward_model_train\"),\n baseModel: ModelProjectBaseModelSchema,\n preferenceDatasetRelease: ModelProjectImmutableRefSchema,\n processorRelease: ModelProjectImmutableRefSchema,\n recipe: z\n .object({\n schemaVersion: z.literal(\"openpond.rewardModelRecipe.v1\"),\n method: z.literal(\"reward_model\"),\n parameterization: z.literal(\"lora_with_scalar_head\"),\n })\n .catchall(z.unknown()),\n })\n .strict();\n\nconst DeterministicRewardSourceSchema = z\n .object({\n kind: z.literal(\"deterministic\"),\n grader: ModelProjectImmutableRefSchema,\n composer: ModelProjectImmutableRefSchema.nullable().default(null),\n })\n .strict();\n\nconst LearnedRewardSourceSchema = z\n .object({\n kind: z.literal(\"learned_reward\"),\n rewardModelVersion: ModelProjectImmutableRefSchema,\n qualificationReport: ModelProjectImmutableRefSchema.nullable().default(null),\n evaluationReferences: z.array(ModelProjectImmutableRefSchema).max(1_000).default([]),\n scorerArtifact: z\n .object({\n artifactRef: z.string().trim().min(1).max(2_000),\n contentHash: HashSchema,\n executionReceipt: ModelProjectImmutableRefSchema,\n })\n .strict(),\n processorRelease: ModelProjectImmutableRefSchema,\n rewardComposerRelease: ModelProjectImmutableRefSchema,\n })\n .strict();\n\nexport const TrainingQualificationBaseModelSchema = ModelProjectBaseModelSchema.extend({\n revision: z.string().regex(/^[a-f0-9]{40,64}$/),\n tokenizerRevision: z.string().regex(/^[a-f0-9]{40,64}$/),\n chatTemplateHash: HashSchema,\n}).strict();\n\nexport const PolicyOptimizationRequestSchema = z\n .object({\n kind: z.literal(\"policy_optimize\"),\n /** Collect and grade one original-learner group without optimizer work. */\n executionMode: z.literal(\"qualification\").optional(),\n baseModel: ModelProjectBaseModelSchema,\n recipe: ModelProjectRecipeDocumentSchema,\n rewardSource: z.discriminatedUnion(\"kind\", [\n DeterministicRewardSourceSchema,\n LearnedRewardSourceSchema,\n ]),\n resumeFrom: ModelProjectImmutableRefSchema.nullable().default(null),\n })\n .strict()\n .superRefine((job, context) => {\n if (job.recipe.method !== \"sft\") return;\n const recipe = SftRecipeSchema.safeParse(job.recipe);\n if (!recipe.success) {\n context.addIssue({\n code: \"custom\",\n path: [\"recipe\"],\n message: \"The SFT recipe is incomplete or invalid.\",\n });\n return;\n }\n if (job.executionMode || job.resumeFrom || \"continuation\" in job.recipe)\n context.addIssue({\n code: \"custom\",\n message:\n \"Initial managed SFT requires a fresh supervised run without rollout qualification or continuation.\",\n });\n if (\n recipe.data.baseModel.id !== job.baseModel.modelId ||\n recipe.data.baseModel.revision !== job.baseModel.revision ||\n recipe.data.baseModel.tokenizerRevision !== job.baseModel.tokenizerRevision ||\n recipe.data.baseModel.chatTemplateHash !== job.baseModel.chatTemplateHash\n )\n context.addIssue({\n code: \"custom\",\n path: [\"baseModel\"],\n message: \"The SFT recipe must pin the exact submitted base and tokenizer.\",\n });\n });\n\nexport const TrainingJobRequestSchema = z.discriminatedUnion(\"kind\", [\n RewardModelTrainingRequestSchema,\n PolicyOptimizationRequestSchema,\n]);\n\nexport const TrainingJobApprovalSchema = z\n .object({\n approvalHash: HashSchema,\n approvedAt: TimestampSchema,\n exportApproved: z.boolean(),\n maximumSpendUsd: z.number().nonnegative(),\n retentionDays: z.number().int().nonnegative().nullable(),\n region: z.string().trim().min(1).max(200).nullable().default(null),\n })\n .strict();\n\nexport const TrainingJobSubmissionSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.trainingJobSubmission.v2\"),\n idempotencyKey: z.string().trim().min(1).max(500),\n name: z.string().trim().min(1).max(200),\n source: TrainingJobSourceSchema,\n job: TrainingJobRequestSchema,\n requestedCapabilities: z.array(TrainingCapabilityRequirementSchema).max(1_000),\n placementObjective: z.enum([\"fast\", \"balanced\", \"economical\"]),\n gpuSelection: TrainingGpuSelectionSchema.optional(),\n physicalPlacement: TrainingPhysicalPlacementSchema.optional(),\n budget: z\n .object({\n maximumSpendUsd: z.number().nonnegative(),\n maximumWallSeconds: z.number().int().positive(),\n })\n .strict(),\n approval: TrainingJobApprovalSchema,\n contentHash: HashSchema,\n })\n .strict()\n .superRefine((submission, context) => {\n const distributed = (submission.gpuSelection?.gpuCount ?? 1) === 2;\n const distributedRequirement = submission.requestedCapabilities.some(requirement =>\n requirement.id === \"managed_rl.policy.data_parallel\" && requirement.version === \"1\" && requirement.required);\n if (distributed !== distributedRequirement) {\n context.addIssue({ code: \"custom\", path: [\"requestedCapabilities\"], message: \"Two-GPU training must require managed_rl.policy.data_parallel@1 and bind gpuSelection.gpuCount to 2.\" });\n }\n if (distributed && (submission.job.kind !== \"policy_optimize\" || submission.job.executionMode ||\n submission.job.recipe.method !== \"grpo\" || submission.physicalPlacement)) {\n context.addIssue({ code: \"custom\", path: [\"gpuSelection\"], message: \"Two-GPU execution requires exclusive GRPO policy training.\" });\n }\n if (submission.physicalPlacement && (submission.job.kind !== \"policy_optimize\" ||\n submission.job.resumeFrom || submission.job.executionMode || submission.job.recipe.continuation !== undefined)) {\n context.addIssue({ code: \"custom\", path: [\"physicalPlacement\"], message: \"Reuse-only placement requires fresh-base policy training without continuation.\" });\n }\n if (submission.job.kind === \"policy_optimize\" && submission.job.executionMode === \"qualification\") {\n const job = submission.job;\n if (!TrainingQualificationBaseModelSchema.safeParse(job.baseModel).success) {\n context.addIssue({ code: \"custom\", path: [\"job\", \"baseModel\"], message: \"Qualification requires immutable model and tokenizer revisions and a SHA-256 chat-template pin.\" });\n }\n if (job.resumeFrom || job.recipe.continuation !== undefined || job.rewardSource.kind !== \"deterministic\" || job.recipe.method !== \"grpo\") {\n context.addIssue({\n code: \"custom\", path: [\"job\"],\n message: \"Qualification requires the original GRPO learner, deterministic reward, and no resume or continuation.\",\n });\n }\n if (!submission.requestedCapabilities.some(requirement => requirement.required && requirement.id === \"managed_rl.policy.qualification\" && requirement.version === \"1\")) {\n context.addIssue({\n code: \"custom\", path: [\"requestedCapabilities\"],\n message: \"Qualification must require managed_rl.policy.qualification@1.\",\n });\n }\n }\n if (submission.approval.maximumSpendUsd !== submission.budget.maximumSpendUsd) {\n context.addIssue({\n code: \"custom\",\n path: [\"approval\", \"maximumSpendUsd\"],\n message: \"Approved spend must equal the immutable Job budget.\",\n });\n }\n });\n\nexport async function trainingJobSubmissionHash(\n submission: Omit<TrainingJobSubmission, \"contentHash\"> | TrainingJobSubmission,\n): Promise<string> {\n const { contentHash: _contentHash, ...content } = submission as TrainingJobSubmission;\n return canonicalSha256(content);\n}\n\nexport async function parseAndVerifyTrainingJobSubmission(\n value: unknown,\n): Promise<TrainingJobSubmission> {\n assertCanonicalPayloadSize(value, TRAINING_JOB_SUBMISSION_MAX_BYTES, \"Training Job submission\");\n const parsed = TrainingJobSubmissionSchema.parse(value);\n const expectedHash = await trainingJobSubmissionHash(parsed);\n if (parsed.contentHash !== expectedHash) {\n throw new OpenPondProtocolError(\n \"content_hash_mismatch\",\n `Training Job contentHash ${parsed.contentHash} does not match ${expectedHash}.`,\n );\n }\n return parsed;\n}\n\nexport const TrainingJobRecoverySchema = z.object({\n resourceApproval: TrainingCheckpointRecoveryResourceApprovalSchema.optional(),\n mode: z.literal(\"evaluation_only\").optional(),\n trainingWorkloadComplete: z.boolean().optional(),\n sourceJobId: IdSchema,\n checkpointId: IdSchema,\n policyVersion: z.number().int().positive(),\n completedGroups: z.number().int().positive(),\n optimizerMode: z.literal(\"continue\"),\n}).strict();\n\nexport const TrainingJobSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.trainingJob.v2\"),\n id: IdSchema,\n teamId: IdSchema,\n kind: TrainingJobKindSchema,\n executionMode: z.literal(\"qualification\").optional(),\n recovery: TrainingJobRecoverySchema.optional(),\n modelProjectId: IdSchema,\n portableProjectId: IdSchema,\n sourceProjectRevision: z.number().int().positive(),\n submissionHash: HashSchema,\n state: TrainingJobStateSchema,\n queue: TrainingQueueStatusSchema.optional(),\n phase: z.string().trim().min(1).max(200),\n version: z.number().int().nonnegative(),\n progress: z.number().min(0).max(1),\n rolloutProgress: z\n .object({\n groupsCompleted: z.number().int().nonnegative(),\n groupsTarget: z.number().int().nonnegative(),\n optimizerUpdatesApplied: z.number().int().nonnegative(),\n optimizerUpdatesSkipped: z.number().int().nonnegative(),\n })\n .strict(),\n accruedSpendUsd: z.number().nonnegative(),\n usage: TrainingUsageSnapshotSchema.optional(),\n terminalReason: z.string().trim().min(1).max(5_000).nullable(),\n createdAt: TimestampSchema,\n updatedAt: TimestampSchema,\n completedAt: TimestampSchema.nullable(),\n })\n .strict();\n\nexport const TrainingJobPageSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.trainingJobPage.v2\"),\n jobs: z.array(TrainingJobSchema).max(1_000),\n nextCursor: z.string().trim().min(1).max(2_000).nullable(),\n })\n .strict();\n\nexport const TrainingJobEventSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.trainingJobEvent.v2\"),\n id: IdSchema,\n jobId: IdSchema,\n sequence: z.number().int().nonnegative(),\n type: IdSchema,\n phase: z.string().trim().min(1).max(200),\n message: z.string().trim().min(1).max(5_000).nullable(),\n data: z.record(z.string(), z.unknown()).default({}),\n createdAt: TimestampSchema,\n })\n .strict();\n\nexport const TrainingJobLogSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.trainingJobLog.v2\"),\n jobId: IdSchema,\n sequence: z.number().int().nonnegative(),\n level: z.enum([\"debug\", \"info\", \"warning\", \"error\"]),\n message: z.string().max(20_000),\n createdAt: TimestampSchema,\n })\n .strict();\n\nexport const TrainingJobControlRequestSchema = z\n .object({ expectedVersion: z.number().int().nonnegative() })\n .strict();\n\nexport const TrainingJobOutputSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.trainingJobOutput.v2\"),\n id: IdSchema,\n jobId: IdSchema,\n kind: z.enum([\"checkpoint\", \"adapter\", \"scorer\", \"metrics\", \"evaluation\", \"trace\", \"receipt\"]),\n artifactRef: z.string().trim().min(1).max(2_000),\n contentHash: HashSchema,\n sizeBytes: z.number().int().nonnegative(),\n metadata: z.record(z.string(), z.unknown()).default({}),\n createdAt: TimestampSchema,\n })\n .strict();\n\n/** Evidence that collection used the pinned original learner and never updated it. */\nexport const TrainingQualificationEvidenceSchema = z.object({\n schemaVersion: z.literal(\"openpond.trainingQualificationEvidence.v1\"),\n baseModel: TrainingQualificationBaseModelSchema,\n group: ModelProjectImmutableRefSchema,\n rolloutReceipts: z.array(ModelProjectImmutableRefSchema).min(1).max(1_000),\n rewardEvidenceHash: HashSchema,\n groupsCompleted: z.literal(1),\n optimizerUpdatesApplied: z.literal(0),\n optimizerUpdatesSkipped: z.literal(0),\n trainingStepsCreated: z.literal(0),\n checkpointsCreated: z.literal(0),\n artifactsCreated: z.literal(0),\n}).strict().superRefine((evidence, context) => {\n if (new Set(evidence.rolloutReceipts.map(receipt => receipt.id)).size !== evidence.rolloutReceipts.length) {\n context.addIssue({ code: \"custom\", path: [\"rolloutReceipts\"], message: \"Qualification rollout receipt identities must be unique.\" });\n }\n});\n\nexport const TrainingExecutionReceiptSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.trainingExecutionReceipt.v2\"),\n id: IdSchema,\n teamId: IdSchema,\n jobId: IdSchema,\n submissionHash: HashSchema,\n manifestHash: HashSchema,\n recipeHash: HashSchema,\n capabilityHash: HashSchema,\n runtimeRelease: ModelProjectImmutableRefSchema,\n inputs: z.array(ModelProjectImmutableRefSchema).max(10_000),\n outputs: z.array(ModelProjectImmutableRefSchema).max(10_000),\n spendUsd: z.number().nonnegative(),\n durationSeconds: z.number().nonnegative(),\n cleanupComplete: z.boolean(),\n qualification: TrainingQualificationEvidenceSchema.optional(),\n issuer: IdSchema,\n issuedAt: TimestampSchema,\n signature: z.string().trim().min(1).max(10_000).nullable(),\n })\n .strict();\n\nexport async function trainingExecutionReceiptHash(\n receipt: TrainingExecutionReceipt,\n): Promise<string> {\n return canonicalSha256(TrainingExecutionReceiptSchema.parse(receipt));\n}\n\nexport async function parseAndVerifyTrainingExecutionReceipt(\n value: unknown,\n expected: {\n id: string;\n contentHash: string;\n teamId?: string;\n jobId?: string;\n requireCleanup?: boolean;\n qualificationSubmission?: TrainingJobSubmission;\n outputs?: TrainingJobOutput[];\n },\n): Promise<TrainingExecutionReceipt> {\n const receipt = TrainingExecutionReceiptSchema.parse(value);\n const expectedId = IdSchema.parse(expected.id);\n const expectedHash = HashSchema.parse(expected.contentHash);\n const actualHash = await trainingExecutionReceiptHash(receipt);\n if (receipt.id !== expectedId || actualHash !== expectedHash) {\n throw new OpenPondProtocolError(\n \"execution_receipt_mismatch\",\n \"The execution receipt identity or canonical content hash did not match.\",\n );\n }\n if (expected.teamId !== undefined && receipt.teamId !== IdSchema.parse(expected.teamId)) {\n throw new OpenPondProtocolError(\n \"execution_receipt_team_mismatch\",\n \"The execution receipt belongs to a different team.\",\n );\n }\n if (expected.jobId !== undefined && receipt.jobId !== IdSchema.parse(expected.jobId)) {\n throw new OpenPondProtocolError(\n \"execution_receipt_job_mismatch\",\n \"The execution receipt belongs to a different Training Job.\",\n );\n }\n if ((expected.requireCleanup ?? true) && !receipt.cleanupComplete) {\n throw new OpenPondProtocolError(\n \"execution_cleanup_incomplete\",\n \"The execution receipt does not attest complete terminal cleanup.\",\n );\n }\n if (expected.qualificationSubmission) {\n const submission = await parseAndVerifyTrainingJobSubmission(expected.qualificationSubmission);\n if (submission.job.kind !== \"policy_optimize\" || submission.job.executionMode !== \"qualification\") {\n throw new OpenPondProtocolError(\"qualification_submission_required\", \"Expected an immutable qualification submission.\");\n }\n await assertTrainingQualificationReceipt(receipt, { submissionHash: submission.contentHash, baseModel: submission.job.baseModel, outputs: expected.outputs });\n }\n return receipt;\n}\n\nexport async function assertTrainingQualificationReceipt(\n receipt: TrainingExecutionReceipt,\n expected: { submissionHash: string; baseModel?: z.infer<typeof ModelProjectBaseModelSchema>; outputs?: TrainingJobOutput[] },\n): Promise<void> {\n const evidence = TrainingQualificationEvidenceSchema.parse(receipt.qualification);\n if (receipt.submissionHash !== expected.submissionHash || !receipt.cleanupComplete) {\n throw new OpenPondProtocolError(\"qualification_receipt_mismatch\", \"Qualification must attest the expected submission and complete cleanup.\");\n }\n if (expected.baseModel && await canonicalSha256(evidence.baseModel) !== await canonicalSha256(expected.baseModel)) {\n throw new OpenPondProtocolError(\"qualification_learner_mismatch\", \"Qualification used a different original learner or tokenizer.\");\n }\n if (expected.outputs?.some(output => [\"checkpoint\", \"adapter\", \"scorer\"].includes(output.kind))) {\n throw new OpenPondProtocolError(\"qualification_updated_artifact\", \"Qualification must not publish trained artifacts or checkpoints.\");\n }\n}\n\nexport const TrainingJobOutputsSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.trainingJobOutputs.v2\"),\n outputs: z.array(TrainingJobOutputSchema).max(10_000),\n receipt: TrainingExecutionReceiptSchema.nullable(),\n })\n .strict();\n\nexport const TrainingPolicyLoraCapabilitiesSchema = z.object({\n workerImageDigest: z.string().regex(/^sha256:[a-f0-9]{64}$/),\n envelopeRank: z.number().int().positive().max(256),\n supportedRanks: z.array(z.number().int().positive().max(256)).max(256),\n qualification: z.object({ evidenceRef: z.string().min(1), evidenceSha256: HashSchema }).strict().nullable(),\n continuation: z.object({\n sharedRequiresSameRank: z.literal(true),\n mergedRequiresSameRank: z.literal(true),\n residualAppendRequiresFreeCapacity: z.literal(true),\n stageOptimizer: z.literal(\"reset\"),\n interruptedRecoveryOptimizer: z.literal(\"restore\"),\n }).strict(),\n}).strict().superRefine((value, context) => {\n if (new Set(value.supportedRanks).size !== value.supportedRanks.length || value.supportedRanks.some(rank => rank > value.envelopeRank))\n context.addIssue({ code: \"custom\", path: [\"supportedRanks\"], message: \"Supported ranks must be unique and fit the physical adapter envelope.\" });\n if (value.supportedRanks.length && !value.qualification)\n context.addIssue({ code: \"custom\", path: [\"qualification\"], message: \"Advertised ranks require immutable image qualification evidence.\" });\n});\nexport type TrainingPolicyLoraCapabilities = z.infer<typeof TrainingPolicyLoraCapabilitiesSchema>;\n\nexport function supportsTrainingPolicyLoraRank(capabilities: TrainingPolicyLoraCapabilities, rank: number,\n continuation?: { mode: \"shared\" | \"sequential_merge\" | \"residual_append\"; parentEnabledRank: number }): boolean {\n if (!capabilities.supportedRanks.includes(rank)) return false;\n if (!continuation) return true;\n return continuation.mode === \"residual_append\"\n ? continuation.parentEnabledRank + rank <= capabilities.envelopeRank\n : continuation.parentEnabledRank === rank;\n}\n\nexport const TrainingCapabilitiesSchema = z\n .object({\n schemaVersion: z.literal(\"openpond.trainingCapabilities.v2\"),\n capabilityHash: HashSchema,\n jobKinds: z.array(TrainingJobKindSchema),\n methods: z.array(z.string().trim().min(1).max(200)),\n billingModes: TrainingBillingModesSchema.optional(),\n executionModes: z.array(z.enum([\"training\", \"qualification\"])).optional(),\n policyLora: TrainingPolicyLoraCapabilitiesSchema.optional(),\n policyDataParallel: z.object({\n capability: z.literal(\"managed_rl.policy.data_parallel\"),\n version: z.literal(\"1\"),\n gpuCount: z.literal(2),\n worldSize: z.literal(2),\n backend: z.literal(\"nccl\"),\n allocationMode: z.literal(\"exclusive\"),\n workerImageDigest: z.string().regex(/^sha256:[a-f0-9]{64}$/),\n }).strict().optional(),\n structuredOutputs: z.object({\n capability: z.literal(\"work.structured-output.v1\"),\n harnessRuntimeHash: HashSchema,\n workHarnessHash: HashSchema,\n schemaHash: HashSchema,\n artifactHash: HashSchema,\n invalidDataRejected: z.literal(true),\n invalidBytesRejected: z.literal(true),\n }).strict().optional(),\n placements: z.array(z.enum([\"local\", \"remote\", \"colocated\", \"provider_native\"])),\n controls: z\n .object({\n cancel: z.boolean(),\n stopAfterGroup: z.boolean(),\n resumeFromCheckpoint: z.boolean(),\n })\n .strict(),\n estimates: z.object({ schemaVersion: z.literal(\"openpond.trainingEstimate.v1\") }).strict().optional(),\n limits: z\n .object({\n maximumSpendUsd: z.number().nonnegative(),\n maximumWallSeconds: z.number().int().positive(),\n maximumArtifactBytes: z.number().int().positive(),\n })\n .strict(),\n checkedAt: TimestampSchema,\n expiresAt: TimestampSchema,\n })\n .strict();\n\nexport type TrainingJobSubmission = z.infer<typeof TrainingJobSubmissionSchema>;\nexport type TrainingQualificationEvidence = z.infer<typeof TrainingQualificationEvidenceSchema>;\nexport type TrainingInputArtifactUpload = z.infer<typeof TrainingInputArtifactUploadSchema>;\nexport type TrainingInputArtifact = z.infer<typeof TrainingInputArtifactSchema>;\nexport type TrainingJob = z.infer<typeof TrainingJobSchema>;\nexport type TrainingJobPage = z.infer<typeof TrainingJobPageSchema>;\nexport type TrainingJobEvent = z.infer<typeof TrainingJobEventSchema>;\nexport type TrainingJobLog = z.infer<typeof TrainingJobLogSchema>;\nexport type TrainingJobOutput = z.infer<typeof TrainingJobOutputSchema>;\nexport type TrainingJobOutputs = z.infer<typeof TrainingJobOutputsSchema>;\nexport type TrainingExecutionReceipt = z.infer<typeof TrainingExecutionReceiptSchema>;\nexport type TrainingCapabilities = z.infer<typeof TrainingCapabilitiesSchema>;\n","import { z } from \"zod\";\nimport { compileBoundGraders, RewardBindingSchema, RewardReleaseSchema } from \"@openpond/evals/rewards\";\nimport { canonicalSha256 } from \"./protocol.js\";\n\nconst GradersSchema = z.array(z.object({ id: z.string().trim().min(1) }).catchall(z.unknown())).min(1).max(1_000);\nconst RewardExecutionSchema = z.object({\n binding: RewardBindingSchema,\n rewards: z.array(RewardReleaseSchema).min(1).max(100),\n}).strict();\n\n/**\n * The grader reference identifies the entire executed set, including order and\n * configuration. A bound plan additionally identifies its immutable composer,\n * whose sources pin roles, normalization, gates and required-score semantics.\n * Callers must obtain these inputs from their verified immutable bundle.\n */\nexport async function deterministicTrainingRewardSource(input: {\n graders: unknown;\n rewardExecution?: unknown;\n}) {\n const execution = input.rewardExecution ? RewardExecutionSchema.parse(input.rewardExecution) : null;\n const graders = GradersSchema.parse(execution\n ? compileBoundGraders(execution.binding, execution.rewards)\n : input.graders);\n if (new Set(graders.map(grader => grader.id)).size !== graders.length) {\n throw new Error(\"Training grader identities must be unique.\");\n }\n const hash = await canonicalSha256({ schemaVersion: \"openpond.trainingGraderSet.v1\", graders });\n return {\n kind: \"deterministic\" as const,\n grader: { id: `training-graders-${hash.slice(0, 32)}`, contentHash: hash },\n composer: execution ? { id: execution.binding.id, contentHash: execution.binding.contentHash } : null,\n };\n}\n","import { z } from \"zod\";\nimport { ModelProjectVersionedRefSchema } from \"./model-projects.js\";\nimport { canonicalSha256 } from \"./protocol.js\";\n\nexport const TRAINING_EVALUATION_SOURCE_PATH = \"evaluation-source.json\";\n\nconst TaskIdentitySchema = z.object({\n id: z.string().trim().min(1),\n clusterKey: z.string().trim().min(1),\n split: z.enum([\"train\", \"validation\", \"frozen_eval\"]),\n}).passthrough();\n\n/** Evaluator-only payload. The enclosing resolved bundle pins every byte. */\nexport const TrainingEvaluationSourceSchema = z.object({\n schemaVersion: z.literal(\"openpond.trainingEvaluationSource.v1\"),\n taskset: ModelProjectVersionedRefSchema,\n tasks: z.array(TaskIdentitySchema).min(1).max(10_000),\n assets: z.array(z.object({\n path: z.string().trim().min(1).max(2_000),\n sha256: z.string().regex(/^[a-f0-9]{64}$/),\n sizeBytes: z.number().int().nonnegative(),\n encoding: z.literal(\"base64\"),\n content: z.string().max(32 * 1024 * 1024),\n }).strict()).max(10_000),\n}).strict().superRefine((source, context) => {\n const ids = new Set<string>();\n source.tasks.forEach((task, index) => {\n if (task.split === \"train\") context.addIssue({ code: \"custom\", path: [\"tasks\", index, \"split\"], message: \"Evaluation sources require held-out tasks.\" });\n if (ids.has(task.id)) context.addIssue({ code: \"custom\", path: [\"tasks\", index, \"id\"], message: \"Evaluation task identities must be unique.\" });\n ids.add(task.id);\n });\n});\n\nexport type TrainingEvaluationSource = z.infer<typeof TrainingEvaluationSourceSchema>;\n\nexport function assertTrainingEvaluationIsolation(trainingTasks: unknown, evaluationTasks: unknown): void {\n const training = z.array(TaskIdentitySchema).min(1).max(10_000).parse(trainingTasks);\n const evaluation = z.array(TaskIdentitySchema).min(1).max(10_000).parse(evaluationTasks);\n const trainIds = new Set<string>();\n const trainFamilies = new Set<string>();\n for (const task of training) {\n if (task.split !== \"train\") throw new Error(\"The training population contains a held-out task.\");\n if (trainIds.has(task.id)) throw new Error(\"Training task identities must be unique.\");\n trainIds.add(task.id);\n trainFamilies.add(task.clusterKey);\n }\n const evaluationIds = new Set<string>();\n for (const task of evaluation) {\n if (task.split === \"train\") throw new Error(\"The evaluation population contains a training task.\");\n if (evaluationIds.has(task.id)) throw new Error(\"Evaluation task identities must be unique.\");\n if (trainIds.has(task.id) || trainFamilies.has(task.clusterKey)) {\n throw new Error(\"Training and evaluation tasks or families overlap.\");\n }\n evaluationIds.add(task.id);\n }\n}\n\nexport async function trainingEvaluationSourceRef(input: unknown) {\n const source = TrainingEvaluationSourceSchema.parse(input);\n const hash = await canonicalSha256(source);\n return { taskset: source.taskset, dataset: { id: `training-evaluation-${hash.slice(0, 32)}`, contentHash: hash } };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,SAAS,SAAS;AAGlB,IAAM,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB;AAC9C,IAAM,QAAQ,EAAE,OAAO,EAAE,MAAM,4BAA4B,EAAE,IAAI,EAAE;AACnE,IAAM,SAAS,CAAC,UAAiB;AAC/B,QAAM,CAAC,OAAM,WAAS,EAAE,IAAI,MAAM,MAAM,KAAK,EAAE,MAAM,GAAG;AACxD,SAAO,OAAO,KAAM,IAAE,WAAW,OAAO,SAAS,OAAO,GAAE,GAAG,CAAC;AAChE;AAIO,IAAM,4BAA4B,EAAE,OAAO;AAAA,EAChD,eAAc,EAAE,QAAQ,iCAAiC;AAAA,EACzD,SAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EACjC,SAAQ,EAAE,KAAK,CAAC,cAAa,sBAAqB,iBAAgB,SAAS,CAAC;AAAA,EAC5E,aAAY;AAAA,EAAK,UAAS,EAAE,QAAQ,KAAK;AAAA,EAAE,MAAK,EAAE,QAAQ,eAAe;AAAA,EACzE,WAAU,MAAM,OAAO,WAAO;AAC5B,QAAG,CAAC,MAAM,UAAU,KAAK,EAAE,QAAS,QAAO;AAC3C,UAAM,SAAO,OAAO,KAAK;AACzB,WAAO,SAAO,MAAM,UAAQ,OAAO,OAAO,gBAAgB;AAAA,EAC5D,CAAC;AACH,CAAC,EAAE,OAAO;AAGH,IAAM,iCAAiC,EAAE,OAAO;AAAA,EACrD,eAAc,EAAE,QAAQ,+BAA+B;AAAA,EACvD,cAAa,0BAA0B,OAAO,EAAC,SAAQ,EAAE,QAAQ,oBAAoB,EAAC,CAAC;AAAA,EACvF,iBAAgB,EAAE,QAAQ,0CAA0C;AAAA,EACpE,iBAAgB,EAAE,QAAQ,IAAI;AAAA,EAC9B,4BAA2B,EAAE,QAAQ,KAAK;AAAA,EAC1C,wBAAuB,EAAE,QAAQ,CAAC;AAAA,EAClC,kBAAiB,EAAE,QAAQ,GAAG;AAChC,CAAC,EAAE,OAAO;AAKH,SAAS,yBAAyB,OAAyC;AAChF,MAAG,SAAO,QAAQ,MAAM,KAAK,MAAI,GAAI,QAAO;AAC5C,QAAM,SAAO,OAAO,KAAK;AACzB,MAAG,UAAQ,MAAM,SAAO;AACtB,UAAM,IAAI,sBAAsB,oCAAmC,sFAAsF;AAC3J,SAAO,GAAG,SAAO,QAAU,KAAK,SAAO,UAAY,SAAS,EAAE,SAAS,GAAE,GAAG,CAAC;AAC/E;AAEO,SAAS,iCAAiC,MAA8F;AAC7I,MAAG,KAAK,oBAAkB,yBAAyB,KAAK,eAAe,KACrE,KAAK,oBAAkB,QAAQ,CAAC,KAAK,gBACrC,KAAK,gBAAgB,KAAK,aAAa,aAAa,gBAAc,KAAK;AACvE,UAAM,IAAI,sBAAsB,uCAAsC,sEAAsE;AAChJ;AAEA,eAAsB,wCAAwC,MAC5D,SAAqC;AACrC,SAAO,KAAK,eAAe,QAAQ,sBAAoB,MAAM,gBAAgB,KAAK,YAAY,IAC1F,QAAQ,sBAAoB;AAClC;;;ACzDA,SAAS,KAAAA,UAAS;AAIlB,IAAM,KAAKC,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAApC,IAAuCC,QAAOD,GAAE,OAAO,EAAE,MAAM,gBAAgB;AAC/E,IAAM,QAAQ,0BAA0B,OAAO,EAAE,SAASA,GAAE,QAAQ,YAAY,EAAE,CAAC;AACnF,IAAM,MAAMA,GAAE,OAAO,EAAE,MAAM,uBAAuB,EAAE,IAAI,EAAE,EAAE,OAAO,WAAS;AAC5E,MAAI,CAAC,wBAAwB,KAAK,KAAK,KAAK,MAAM,SAAS,GAAI,QAAO;AACtE,QAAME,UAAS,OAAO,MAAM,QAAQ,KAAK,EAAE,CAAC;AAC5C,SAAOA,UAAS,MAAMA,WAAU,OAAO,OAAO,gBAAgB;AAChE,CAAC,EAAE,SAAS;AACZ,IAAM,SAASF,GAAE,MAAMA,GAAE,OAAO;AAAA,EAC9B,aAAaC;AAAA,EAAM,OAAO;AAAA,EAC1B,WAAWD,GAAE,OAAO,EAAE,KAAKA,GAAE,OAAO,EAAE,SAAS,GAAG,UAAUA,GAAE,OAAO,EAAE,SAAS,GAAG,QAAQA,GAAE,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,OAAO;AAChI,CAAC,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE;AACnB,IAAM,OAAOA,GAAE,OAAO,EAAE,MAAM,uBAAuB,EAAE,IAAI,EAAE,EAAE,OAAO,WACpE,wBAAwB,KAAK,KAAK,KAAK,MAAM,UAAU,MACvD,OAAO,MAAM,QAAQ,KAAK,EAAE,CAAC,KAAK,OAAO,OAAO,gBAAgB,CAAC;AACnE,IAAM,SAASA,GAAE,OAAO;AAAA,EACtB,SAASA,GAAE,QAAQ,gCAAgC;AAAA,EAAG,uBAAuBA,GAAE,MAAMC,KAAI,EAAE,IAAI,EAAE;AAAA,EACjG,QAAQD,GAAE,MAAMA,GAAE,OAAO;AAAA,IACvB,SAAS;AAAA,IAAI,aAAa;AAAA,IAAI,qBAAqBC;AAAA,IACnD,0BAA0B;AAAA,IAAM,gCAAgC;AAAA,IAAM,2BAA2B;AAAA,IACjG,+BAA+B,KAAK,SAAS;AAAA,IAAG,sCAAsC,KAAK,SAAS;AAAA,IACpG,4BAA4BD,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAAA,IACjE,aAAaA,GAAE,OAAO;AAAA,MAAE,0BAA0B;AAAA,MAAM,gCAAgC;AAAA,MACtF,2BAA2B;AAAA,MAAM,+BAA+B,KAAK,SAAS;AAAA,IAAE,CAAC,EAAE,OAAO,EAAE,SAAS;AAAA,EACzG,CAAC,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE;AACrB,CAAC,EAAE,OAAO;AAEH,IAAM,6BAA6BA,GAAE,MAAM;AAAA,EAChDA,GAAE,OAAO,EAAE,MAAMA,GAAE,QAAQ,cAAc,GAAG,cAAcA,GAAE,QAAQ,WAAW,GAAG,QAAQA,GAAE,KAAK,EAAE,CAAC,EAAE,OAAO;AAAA,EAC7GA,GAAE,OAAO;AAAA,IAAE,MAAMA,GAAE,QAAQ,cAAc;AAAA,IAAG,cAAcA,GAAE,KAAK,CAAC,eAAe,sBAAsB,CAAC;AAAA,IACtG,QAAQA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,SAAS;AAAA,EAAE,CAAC,EAAE,OAAO;AAC5D,CAAC;AAKM,IAAM,oCAAoCA,GAAE,OAAO;AAAA,EACxD,eAAeA,GAAE,QAAQ,yCAAyC;AAAA,EAClE,aAAaA,GAAE,QAAQ,cAAc;AAAA,EAAG,gBAAgB;AAC1D,CAAC,EAAE,OAAO;AAGH,IAAM,kCAAkCA,GAAE,OAAO;AAAA,EACtD,eAAeA,GAAE,QAAQ,gCAAgC;AAAA,EAAG,QAAQ;AAAA,EAAI,aAAa;AAAA,EACrF,eAAe;AAAA,EAAI,gBAAgBC;AAAA,EAAM,mBAAmBD,GAAE,OAAO,EAAE,MAAM,uBAAuB;AAAA,EACpG,gBAAgB;AAAA,EAAK,oBAAoBA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,EAAG,eAAeA,GAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,EAClH,KAAK;AAAA,EAAO,QAAQ;AAAA,EAAQ,QAAQ;AAAA,EACpC,SAASA,GAAE,OAAO;AAAA,IAAE,OAAO;AAAA,IAAO,cAAcA,GAAE,QAAQ,UAAU;AAAA,IAAG,eAAeA,GAAE,QAAQ,kBAAkB;AAAA,IAChH,oBAAoBA,GAAE,QAAQ,qCAAqC;AAAA,EAAE,CAAC,EAAE,OAAO;AAAA,EACjF,oBAAoBA,GAAE,QAAQ,0CAA0C;AAAA,EACxE,wBAAwBA,GAAE,QAAQ,2BAA2B;AAAA,EAC7D,iBAAiBA,GAAE,QAAQ,IAAI;AAAA,EAAG,4BAA4BA,GAAE,QAAQ,KAAK;AAAA,EAAG,wBAAwBA,GAAE,QAAQ,CAAC;AAAA,EACnH,UAAUA,GAAE,IAAI,SAAS;AAAA,EAAG,WAAWA,GAAE,IAAI,SAAS;AACxD,CAAC,EAAE,OAAO;AACH,IAAM,2BAA2B,gCAAgC,OAAO,EAAE,aAAaC,OAAM,WAAW,GAAG,CAAC,EAAE,OAAO;AAK5H,eAAsB,yBAAyB,KAAyB,UAErE;AACD,QAAM,QAAQ,yBAAyB,MAAM,GAAG,GAAG,EAAE,aAAa,WAAW,YAAY,GAAG,QAAQ,IAAI;AACxG,MAAI,gBAAgB,MAAM,gBAAgB,OAAO,KAAK,MAAM,WAAW,SAAS,UAC9E,MAAM,gBAAgB,SAAS,eAAe,MAAM,kBAAkB,SAAS,iBAC/E,MAAM,mBAAmB,SAAS,kBAAkB,MAAM,mBAAmB,SAAS,kBACtF,KAAK,MAAM,MAAM,SAAS,KAAK,KAAK,MAAM,MAAM,QAAQ,KACxD,IAAI,IAAI,MAAM,OAAO,IAAI,WAAS,MAAM,WAAW,CAAC,EAAE,SAAS,MAAM,OAAO,UAC5E,MAAM,OAAO,KAAK,WAAS,MAAM,gBAAgB,MAAM,MAAM,WAAW,KACxE,IAAI,IAAI,MAAM,OAAO,qBAAqB,EAAE,SAAS,MAAM,OAAO,sBAAsB,UACxF,IAAI,IAAI,MAAM,OAAO,OAAO,IAAI,WAAS,MAAM,mBAAmB,CAAC,EAAE,SAAS,MAAM,OAAO,OAAO,UAClG,MAAM,OAAO,OAAO,WAAW,MAAM,OAAO,sBAAsB,UAClE,MAAM,OAAO,OAAO,KAAK,WAAS,CAAC,MAAM,OAAO,sBAAsB,SAAS,MAAM,mBAAmB,CAAC;AACzG,UAAM,IAAI,sBAAsB,iCAAiC,gFAAgF;AACnJ,SAAO;AACT;;;AC9EA,SAAS,KAAAE,UAAS;AAGlB,IAAM,KAAKC,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAC3C,IAAM,OAAOA,GAAE,OAAO,EAAE,MAAM,gBAAgB;AAC9C,IAAM,qBAAqBA,GACxB,OAAO;AAAA,EACN,eAAeA,GAAE,QAAQ,gDAAgD;AAAA,EACzE,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,kBAAkBA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,EAC5C,2BAA2B;AAAA,EAC3B,cAAc;AAAA,EACd,eAAe;AAAA,EACf,cAAc;AAAA,EACd,gBAAgBA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,GAAG;AAAA,EACjD,YAAYA,GAAE,IAAI,SAAS,EAAE,QAAQ,KAAK,CAAC;AAAA,EAC3C,iBAAiBA,GACd,OAAO,EACP,SAAS,EACT,OAAO,EACP,IAAI,EAAE,EACN;AAAA,IACC,CAAC,UAAU,OAAO,MAAM,QAAQ,CAAC,CAAC,MAAM;AAAA,IACxC;AAAA,EACF;AAAA,EACF,mBAAmBA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,KAAM;AAAA,EACzD,oBAAoBA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,KAAM;AAC5D,CAAC,EACA,OAAO;AAEH,IAAM,mDAAmD,mBAAmB,OAAO;AAAA,EACxF,cAAc;AAChB,CAAC,EACE,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MAAI,MAAM,oBAAoB,MAAM;AAClC,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,mBAAmB;AAAA,MAC1B,SAAS;AAAA,IACX,CAAC;AACL,CAAC;AAGH,eAAsB,iDACpB,OACA;AACA,QAAM,OAAO,mBAAmB,MAAM,KAAK;AAC3C,SAAO,iDAAiD,MAAM;AAAA,IAC5D,GAAG;AAAA,IACH,cAAc,MAAM,gBAAgB,IAAI;AAAA,EAC1C,CAAC;AACH;AAGO,IAAM,0CAA0CA,GACpD,OAAO;AAAA,EACN,kBAAkB,iDAAiD,SAAS;AAAA,EAC5E,MAAMA,GAAE,QAAQ,iBAAiB,EAAE,SAAS;AAAA,EAC5C,mBAAmBA,GAChB,KAAK,CAAC,yBAAyB,yBAAyB,uBAAuB,CAAC,EAChF,SAAS;AAAA,EACZ,iBAAiBA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,EAC3C,cAAc;AAAA,EACd,gBAAgBA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,GAAG;AAAA,EACjD,iBAAiBA,GAAE,OAAO,EAAE,SAAS,EAAE,OAAO;AAAA,EAC9C,oBAAoBA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,KAAM;AAC5D,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MAAI,MAAM,qBAAqB,MAAM,SAAS;AAC5C,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,mBAAmB;AAAA,MAC1B,SAAS;AAAA,IACX,CAAC;AACH,QAAM,IAAI,MAAM;AAChB,MACE,MACC,EAAE,qBAAqB,MAAM,mBAC5B,EAAE,iBAAiB,MAAM,gBACzB,EAAE,mBAAmB,MAAM,kBAC3B,EAAE,oBAAoB,MAAM,mBAC5B,EAAE,uBAAuB,MAAM;AAEjC,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,kBAAkB;AAAA,MACzB,SAAS;AAAA,IACX,CAAC;AACL,CAAC;;;AC5FH,SAAS,KAAAC,UAAS;AAGX,IAAM,kCAAkCA,GAAE,OAAO;AAAA,EACtD,MAAMA,GAAE,QAAQ,YAAY;AAAA,EAC5B,kBAAkBA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EAClD,eAAeA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EAC/C,mBAAmBA,GAAE,OAAO,EAAE,MAAM,uBAAuB;AAAA,EAC3D,mBAAmBA,GAAE,OAAO,EAAE,MAAM,gBAAgB;AAAA,EACpD,SAASA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EACzC,aAAaA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EAC7C,2BAA2BA,GAAE,OAAO,EAAE,MAAM,gBAAgB;AAAA,EAC5D,aAAaA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EAC7C,YAAYA,GAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,KAAK,CAAC;AAClD,CAAC,EAAE,OAAO;;;ACdV,SAAS,KAAAC,UAAS;AAElB,IAAM,YAAYA,GAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,KAAK,CAAC;AAI/C,IAAM,4BAA4BA,GAAE,OAAO;AAAA,EAChD,UAAUA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EAC1C,cAAcA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,OAAO,gBAAgB;AAAA,EACrE,OAAOA,GAAE,QAAQ,uBAAuB;AAAA,EACxC,UAAUA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAAA,EAC/C,eAAeA,GAAE,QAAQ,uBAAuB;AAAA,EAChD,YAAY;AAAA,EACZ,MAAM;AAAA,EACN,UAAUA,GAAE,OAAO;AAAA,IACjB,UAAUA,GAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,IACvC,kBAAkB;AAAA,IAClB,WAAW;AAAA,IACX,UAAUA,GAAE,KAAK,CAAC,qBAAqB,sBAAsB,mBAAmB,CAAC;AAAA,EACnF,CAAC,EAAE,OAAO,EAAE,SAAS;AACvB,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,OAAO,YAAY;AAC1C,MAAI,MAAM,YAAY,KAAK,MAAM,MAAM,SAAS,SAAS,KAAK,KAAK,MAAM,MAAM,IAAI;AACjF,YAAQ,SAAS,EAAE,MAAM,UAAU,MAAM,CAAC,UAAU,GAAG,SAAS,4DAA4D,CAAC;AACjI,CAAC;;;ACvBD,SAAS,KAAAC,UAAS;AAElB,IAAMC,SAAQD,GAAE,OAAO,EAAE,MAAM,uBAAuB,EAAE,IAAI,EAAE,EAAE,OAAO,WACrE,wBAAwB,KAAK,KAAK,KAAK,MAAM,UAAU,MACvD,OAAO,MAAM,QAAQ,KAAK,EAAE,CAAC,KAAK,OAAO,OAAO,gBAAgB,CAAC;AAG5D,IAAM,8BAA8BA,GAAE,OAAO;AAAA,EAClD,eAAeA,GAAE,QAAQ,mCAAmC;AAAA,EAAG,MAAMA,GAAE,IAAI,SAAS;AAAA,EACpF,gBAAgBC,OAAM,SAAS;AAAA,EAAG,YAAYA;AAAA,EAAO,cAAcA;AAAA,EAAO,gBAAgBA;AAAA,EAC1F,iBAAiBA,OAAM,SAAS;AAAA,EAAG,oBAAoBA;AAAA,EAAO,UAAUD,GAAE,QAAQ;AAAA,EAClF,YAAYA,GAAE,MAAMA,GAAE,OAAO;AAAA,IAAE,WAAWA,GAAE,KAAK,CAAC,OAAO,SAAS,WAAW,OAAO,CAAC;AAAA,IACnF,YAAYC;AAAA,IAAO,cAAcA;AAAA,IAAO,gBAAgBA;AAAA,IAAO,YAAYD,GAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,EAC1G,CAAC,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,OAAO,YAAU,OAAO,MAAM,CAAC,OAAO,UAC3D,MAAM,cAAc,CAAC,OAAO,SAAS,WAAW,OAAO,EAAE,KAAK,CAAC,CAAC;AACpE,CAAC,EAAE,OAAO;;;ACbV,SAAS,KAAAE,UAAS;AAClB,SAAS,mCAAmC;AAa5C,IAAM,WAAWC,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AACjD,IAAM,aAAaA,GAAE,OAAO,EAAE,MAAM,gBAAgB;AACpD,IAAM,kBAAkBA,GAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,KAAK,CAAC;AAQrD,IAAM,oCAAoCA,GAC9C,OAAO;AAAA,EACN,eAAeA,GAAE,QAAQ,yCAAyC;AAAA,EAClE,MAAMA,GAAE,KAAK,CAAC,4BAA4B,sBAAsB,CAAC;AAAA,EACjE,gBAAgBA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EAChD,gBAAgB;AAAA,EAChB,SAASA,GAAE,QAAQ;AAAA,EACnB,aAAa;AACf,CAAC,EACA,OAAO;AAEH,IAAM,8BAA8BA,GACxC,OAAO;AAAA,EACN,eAAeA,GAAE,QAAQ,mCAAmC;AAAA,EAC5D,MAAMA,GAAE,KAAK,CAAC,4BAA4B,sBAAsB,CAAC;AAAA,EACjE,gBAAgB;AAAA,EAChB,aAAaA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAK;AAAA,EAC/C,aAAa;AAAA,EACb,WAAWA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,EACrC,WAAW;AACb,CAAC,EACA,OAAO;AAEV,eAAsB,gCACpB,QACiB;AACjB,QAAM,EAAE,aAAa,cAAc,GAAG,QAAQ,IAAI;AAClD,SAAO,gBAAgB,OAAO;AAChC;AAEA,eAAsB,0CACpB,OACsC;AACtC,6BAA2B,OAAO,mCAAmC,yBAAyB;AAC9F,QAAM,SAAS,kCAAkC,MAAM,KAAK;AAC5D,QAAM,eAAe,MAAM,gCAAgC,MAAM;AACjE,MAAI,OAAO,gBAAgB,cAAc;AACvC,UAAM,IAAI;AAAA,MACR;AAAA,MACA,uCAAuC,OAAO,WAAW,mBAAmB,YAAY;AAAA,IAC1F;AAAA,EACF;AACA,SAAO;AACT;AAEO,IAAM,wBAAwBA,GAAE,KAAK,CAAC,sBAAsB,iBAAiB,CAAC;AAE9E,IAAM,yBAAyBA,GAAE,KAAK;AAAA,EAC3C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,sCAAsCA,GAChD,OAAO;AAAA,EACN,IAAI;AAAA,EACJ,SAASA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,SAAS,EAAE,QAAQ,IAAI;AAAA,EAClE,UAAUA,GAAE,QAAQ,EAAE,QAAQ,IAAI;AACpC,CAAC,EACA,OAAO;AAEH,IAAM,0BAA0BA,GACpC,OAAO;AAAA,EACN,QAAQ,4BAA4B,SAAS;AAAA,EAC7C,cAAcA,GACX,OAAO;AAAA,IACN,IAAI;AAAA,IACJ,mBAAmB;AAAA,IACnB,UAAUA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,IACpC,aAAa;AAAA,EACf,CAAC,EACA,OAAO;AAAA,EACV,oBAAoB;AAAA,EACpB,gBAAgB;AAAA,EAChB,SAAS;AAAA,EACT,gBAAgB;AAAA,EAChB,YAAYA,GACT,OAAO;AAAA,IACN,SAAS;AAAA,IACT,SAAS;AAAA,EACX,CAAC,EACA,OAAO,EACP,SAAS,EACT,SAAS;AAAA,EACZ,SAAS;AAAA,EACT,cAAcA,GAAE,MAAM,8BAA8B,EAAE,IAAI,GAAM;AAClE,CAAC,EACA,OAAO;AAEH,IAAM,mCAAmCA,GAC7C,OAAO;AAAA,EACN,MAAMA,GAAE,QAAQ,oBAAoB;AAAA,EACpC,WAAW;AAAA,EACX,0BAA0B;AAAA,EAC1B,kBAAkB;AAAA,EAClB,QAAQA,GACL,OAAO;AAAA,IACN,eAAeA,GAAE,QAAQ,+BAA+B;AAAA,IACxD,QAAQA,GAAE,QAAQ,cAAc;AAAA,IAChC,kBAAkBA,GAAE,QAAQ,uBAAuB;AAAA,EACrD,CAAC,EACA,SAASA,GAAE,QAAQ,CAAC;AACzB,CAAC,EACA,OAAO;AAEV,IAAM,kCAAkCA,GACrC,OAAO;AAAA,EACN,MAAMA,GAAE,QAAQ,eAAe;AAAA,EAC/B,QAAQ;AAAA,EACR,UAAU,+BAA+B,SAAS,EAAE,QAAQ,IAAI;AAClE,CAAC,EACA,OAAO;AAEV,IAAM,4BAA4BA,GAC/B,OAAO;AAAA,EACN,MAAMA,GAAE,QAAQ,gBAAgB;AAAA,EAChC,oBAAoB;AAAA,EACpB,qBAAqB,+BAA+B,SAAS,EAAE,QAAQ,IAAI;AAAA,EAC3E,sBAAsBA,GAAE,MAAM,8BAA8B,EAAE,IAAI,GAAK,EAAE,QAAQ,CAAC,CAAC;AAAA,EACnF,gBAAgBA,GACb,OAAO;AAAA,IACN,aAAaA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAK;AAAA,IAC/C,aAAa;AAAA,IACb,kBAAkB;AAAA,EACpB,CAAC,EACA,OAAO;AAAA,EACV,kBAAkB;AAAA,EAClB,uBAAuB;AACzB,CAAC,EACA,OAAO;AAEH,IAAM,uCAAuC,4BAA4B,OAAO;AAAA,EACrF,UAAUA,GAAE,OAAO,EAAE,MAAM,mBAAmB;AAAA,EAC9C,mBAAmBA,GAAE,OAAO,EAAE,MAAM,mBAAmB;AAAA,EACvD,kBAAkB;AACpB,CAAC,EAAE,OAAO;AAEH,IAAM,kCAAkCA,GAC5C,OAAO;AAAA,EACN,MAAMA,GAAE,QAAQ,iBAAiB;AAAA;AAAA,EAEjC,eAAeA,GAAE,QAAQ,eAAe,EAAE,SAAS;AAAA,EACnD,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,cAAcA,GAAE,mBAAmB,QAAQ;AAAA,IACzC;AAAA,IACA;AAAA,EACF,CAAC;AAAA,EACD,YAAY,+BAA+B,SAAS,EAAE,QAAQ,IAAI;AACpE,CAAC,EACA,OAAO,EACP,YAAY,CAAC,KAAK,YAAY;AAC7B,MAAI,IAAI,OAAO,WAAW,MAAO;AACjC,QAAM,SAAS,gBAAgB,UAAU,IAAI,MAAM;AACnD,MAAI,CAAC,OAAO,SAAS;AACnB,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,QAAQ;AAAA,MACf,SAAS;AAAA,IACX,CAAC;AACD;AAAA,EACF;AACA,MAAI,IAAI,iBAAiB,IAAI,cAAc,kBAAkB,IAAI;AAC/D,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,SACE;AAAA,IACJ,CAAC;AACH,MACE,OAAO,KAAK,UAAU,OAAO,IAAI,UAAU,WAC3C,OAAO,KAAK,UAAU,aAAa,IAAI,UAAU,YACjD,OAAO,KAAK,UAAU,sBAAsB,IAAI,UAAU,qBAC1D,OAAO,KAAK,UAAU,qBAAqB,IAAI,UAAU;AAEzD,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,WAAW;AAAA,MAClB,SAAS;AAAA,IACX,CAAC;AACL,CAAC;AAEI,IAAM,2BAA2BA,GAAE,mBAAmB,QAAQ;AAAA,EACnE;AAAA,EACA;AACF,CAAC;AAEM,IAAM,4BAA4BA,GACtC,OAAO;AAAA,EACN,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,gBAAgBA,GAAE,QAAQ;AAAA,EAC1B,iBAAiBA,GAAE,OAAO,EAAE,YAAY;AAAA,EACxC,eAAeA,GAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS;AAAA,EACvD,QAAQA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,SAAS,EAAE,QAAQ,IAAI;AACnE,CAAC,EACA,OAAO;AAEH,IAAM,8BAA8BA,GACxC,OAAO;AAAA,EACN,eAAeA,GAAE,QAAQ,mCAAmC;AAAA,EAC5D,gBAAgBA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EAChD,MAAMA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EACtC,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,uBAAuBA,GAAE,MAAM,mCAAmC,EAAE,IAAI,GAAK;AAAA,EAC7E,oBAAoBA,GAAE,KAAK,CAAC,QAAQ,YAAY,YAAY,CAAC;AAAA,EAC7D,cAAc,2BAA2B,SAAS;AAAA,EAClD,mBAAmB,gCAAgC,SAAS;AAAA,EAC5D,QAAQA,GACL,OAAO;AAAA,IACN,iBAAiBA,GAAE,OAAO,EAAE,YAAY;AAAA,IACxC,oBAAoBA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,EAChD,CAAC,EACA,OAAO;AAAA,EACV,UAAU;AAAA,EACV,aAAa;AACf,CAAC,EACA,OAAO,EACP,YAAY,CAAC,YAAY,YAAY;AACpC,QAAM,eAAe,WAAW,cAAc,YAAY,OAAO;AACjE,QAAM,yBAAyB,WAAW,sBAAsB,KAAK,iBACnE,YAAY,OAAO,qCAAqC,YAAY,YAAY,OAAO,YAAY,QAAQ;AAC7G,MAAI,gBAAgB,wBAAwB;AAC1C,YAAQ,SAAS,EAAE,MAAM,UAAU,MAAM,CAAC,uBAAuB,GAAG,SAAS,uGAAuG,CAAC;AAAA,EACvL;AACA,MAAI,gBAAgB,WAAW,IAAI,SAAS,qBAAqB,WAAW,IAAI,iBAC9E,WAAW,IAAI,OAAO,WAAW,UAAU,WAAW,oBAAoB;AAC1E,YAAQ,SAAS,EAAE,MAAM,UAAU,MAAM,CAAC,cAAc,GAAG,SAAS,6DAA6D,CAAC;AAAA,EACpI;AACA,MAAI,WAAW,sBAAsB,WAAW,IAAI,SAAS,qBAC3D,WAAW,IAAI,cAAc,WAAW,IAAI,iBAAiB,WAAW,IAAI,OAAO,iBAAiB,SAAY;AAChH,YAAQ,SAAS,EAAE,MAAM,UAAU,MAAM,CAAC,mBAAmB,GAAG,SAAS,iFAAiF,CAAC;AAAA,EAC7J;AACA,MAAI,WAAW,IAAI,SAAS,qBAAqB,WAAW,IAAI,kBAAkB,iBAAiB;AACjG,UAAM,MAAM,WAAW;AACvB,QAAI,CAAC,qCAAqC,UAAU,IAAI,SAAS,EAAE,SAAS;AAC1E,cAAQ,SAAS,EAAE,MAAM,UAAU,MAAM,CAAC,OAAO,WAAW,GAAG,SAAS,kGAAkG,CAAC;AAAA,IAC7K;AACA,QAAI,IAAI,cAAc,IAAI,OAAO,iBAAiB,UAAa,IAAI,aAAa,SAAS,mBAAmB,IAAI,OAAO,WAAW,QAAQ;AACxI,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QAAU,MAAM,CAAC,KAAK;AAAA,QAC5B,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AACA,QAAI,CAAC,WAAW,sBAAsB,KAAK,iBAAe,YAAY,YAAY,YAAY,OAAO,qCAAqC,YAAY,YAAY,GAAG,GAAG;AACtK,cAAQ,SAAS;AAAA,QACf,MAAM;AAAA,QAAU,MAAM,CAAC,uBAAuB;AAAA,QAC9C,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,EACF;AACA,MAAI,WAAW,SAAS,oBAAoB,WAAW,OAAO,iBAAiB;AAC7E,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,MAAM,CAAC,YAAY,iBAAiB;AAAA,MACpC,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACF,CAAC;AAEH,eAAsB,0BACpB,YACiB;AACjB,QAAM,EAAE,aAAa,cAAc,GAAG,QAAQ,IAAI;AAClD,SAAO,gBAAgB,OAAO;AAChC;AAEA,eAAsB,oCACpB,OACgC;AAChC,6BAA2B,OAAO,mCAAmC,yBAAyB;AAC9F,QAAM,SAAS,4BAA4B,MAAM,KAAK;AACtD,QAAM,eAAe,MAAM,0BAA0B,MAAM;AAC3D,MAAI,OAAO,gBAAgB,cAAc;AACvC,UAAM,IAAI;AAAA,MACR;AAAA,MACA,4BAA4B,OAAO,WAAW,mBAAmB,YAAY;AAAA,IAC/E;AAAA,EACF;AACA,SAAO;AACT;AAEO,IAAM,4BAA4BA,GAAE,OAAO;AAAA,EAChD,kBAAkB,iDAAiD,SAAS;AAAA,EAC5E,MAAMA,GAAE,QAAQ,iBAAiB,EAAE,SAAS;AAAA,EAC5C,0BAA0BA,GAAE,QAAQ,EAAE,SAAS;AAAA,EAC/C,aAAa;AAAA,EACb,cAAc;AAAA,EACd,eAAeA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,EACzC,iBAAiBA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,EAC3C,eAAeA,GAAE,QAAQ,UAAU;AACrC,CAAC,EAAE,OAAO;AAEH,IAAM,oBAAoBA,GAC9B,OAAO;AAAA,EACN,eAAeA,GAAE,QAAQ,yBAAyB;AAAA,EAClD,IAAI;AAAA,EACJ,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,eAAeA,GAAE,QAAQ,eAAe,EAAE,SAAS;AAAA,EACnD,UAAU,0BAA0B,SAAS;AAAA,EAC7C,gBAAgB;AAAA,EAChB,mBAAmB;AAAA,EACnB,uBAAuBA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,EACjD,gBAAgB;AAAA,EAChB,OAAO;AAAA,EACP,OAAO,0BAA0B,SAAS;AAAA,EAC1C,OAAOA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EACvC,SAASA,GAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,EACtC,UAAUA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC;AAAA,EACjC,iBAAiBA,GACd,OAAO;AAAA,IACN,iBAAiBA,GAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,IAC9C,cAAcA,GAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,IAC3C,yBAAyBA,GAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,IACtD,yBAAyBA,GAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,EACxD,CAAC,EACA,OAAO;AAAA,EACV,iBAAiBA,GAAE,OAAO,EAAE,YAAY;AAAA,EACxC,OAAO,4BAA4B,SAAS;AAAA,EAC5C,gBAAgBA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAK,EAAE,SAAS;AAAA,EAC7D,WAAW;AAAA,EACX,WAAW;AAAA,EACX,aAAa,gBAAgB,SAAS;AACxC,CAAC,EACA,OAAO;AAEH,IAAM,wBAAwBA,GAClC,OAAO;AAAA,EACN,eAAeA,GAAE,QAAQ,6BAA6B;AAAA,EACtD,MAAMA,GAAE,MAAM,iBAAiB,EAAE,IAAI,GAAK;AAAA,EAC1C,YAAYA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAK,EAAE,SAAS;AAC3D,CAAC,EACA,OAAO;AAEH,IAAM,yBAAyBA,GACnC,OAAO;AAAA,EACN,eAAeA,GAAE,QAAQ,8BAA8B;AAAA,EACvD,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,UAAUA,GAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,EACvC,MAAM;AAAA,EACN,OAAOA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EACvC,SAASA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAK,EAAE,SAAS;AAAA,EACtD,MAAMA,GAAE,OAAOA,GAAE,OAAO,GAAGA,GAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;AAAA,EAClD,WAAW;AACb,CAAC,EACA,OAAO;AAEH,IAAM,uBAAuBA,GACjC,OAAO;AAAA,EACN,eAAeA,GAAE,QAAQ,4BAA4B;AAAA,EACrD,OAAO;AAAA,EACP,UAAUA,GAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,EACvC,OAAOA,GAAE,KAAK,CAAC,SAAS,QAAQ,WAAW,OAAO,CAAC;AAAA,EACnD,SAASA,GAAE,OAAO,EAAE,IAAI,GAAM;AAAA,EAC9B,WAAW;AACb,CAAC,EACA,OAAO;AAEH,IAAM,kCAAkCA,GAC5C,OAAO,EAAE,iBAAiBA,GAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAC1D,OAAO;AAEH,IAAM,0BAA0BA,GACpC,OAAO;AAAA,EACN,eAAeA,GAAE,QAAQ,+BAA+B;AAAA,EACxD,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,MAAMA,GAAE,KAAK,CAAC,cAAc,WAAW,UAAU,WAAW,cAAc,SAAS,SAAS,CAAC;AAAA,EAC7F,aAAaA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAK;AAAA,EAC/C,aAAa;AAAA,EACb,WAAWA,GAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,EACxC,UAAUA,GAAE,OAAOA,GAAE,OAAO,GAAGA,GAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;AAAA,EACtD,WAAW;AACb,CAAC,EACA,OAAO;AAGH,IAAM,sCAAsCA,GAAE,OAAO;AAAA,EAC1D,eAAeA,GAAE,QAAQ,2CAA2C;AAAA,EACpE,WAAW;AAAA,EACX,OAAO;AAAA,EACP,iBAAiBA,GAAE,MAAM,8BAA8B,EAAE,IAAI,CAAC,EAAE,IAAI,GAAK;AAAA,EACzE,oBAAoB;AAAA,EACpB,iBAAiBA,GAAE,QAAQ,CAAC;AAAA,EAC5B,yBAAyBA,GAAE,QAAQ,CAAC;AAAA,EACpC,yBAAyBA,GAAE,QAAQ,CAAC;AAAA,EACpC,sBAAsBA,GAAE,QAAQ,CAAC;AAAA,EACjC,oBAAoBA,GAAE,QAAQ,CAAC;AAAA,EAC/B,kBAAkBA,GAAE,QAAQ,CAAC;AAC/B,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,UAAU,YAAY;AAC7C,MAAI,IAAI,IAAI,SAAS,gBAAgB,IAAI,aAAW,QAAQ,EAAE,CAAC,EAAE,SAAS,SAAS,gBAAgB,QAAQ;AACzG,YAAQ,SAAS,EAAE,MAAM,UAAU,MAAM,CAAC,iBAAiB,GAAG,SAAS,2DAA2D,CAAC;AAAA,EACrI;AACF,CAAC;AAEM,IAAM,iCAAiCA,GAC3C,OAAO;AAAA,EACN,eAAeA,GAAE,QAAQ,sCAAsC;AAAA,EAC/D,IAAI;AAAA,EACJ,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,gBAAgB;AAAA,EAChB,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,QAAQA,GAAE,MAAM,8BAA8B,EAAE,IAAI,GAAM;AAAA,EAC1D,SAASA,GAAE,MAAM,8BAA8B,EAAE,IAAI,GAAM;AAAA,EAC3D,UAAUA,GAAE,OAAO,EAAE,YAAY;AAAA,EACjC,iBAAiBA,GAAE,OAAO,EAAE,YAAY;AAAA,EACxC,iBAAiBA,GAAE,QAAQ;AAAA,EAC3B,eAAe,oCAAoC,SAAS;AAAA,EAC5D,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,WAAWA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAM,EAAE,SAAS;AAC3D,CAAC,EACA,OAAO;AAEV,eAAsB,6BACpB,SACiB;AACjB,SAAO,gBAAgB,+BAA+B,MAAM,OAAO,CAAC;AACtE;AAEA,eAAsB,uCACpB,OACA,UASmC;AACnC,QAAM,UAAU,+BAA+B,MAAM,KAAK;AAC1D,QAAM,aAAa,SAAS,MAAM,SAAS,EAAE;AAC7C,QAAM,eAAe,WAAW,MAAM,SAAS,WAAW;AAC1D,QAAM,aAAa,MAAM,6BAA6B,OAAO;AAC7D,MAAI,QAAQ,OAAO,cAAc,eAAe,cAAc;AAC5D,UAAM,IAAI;AAAA,MACR;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACA,MAAI,SAAS,WAAW,UAAa,QAAQ,WAAW,SAAS,MAAM,SAAS,MAAM,GAAG;AACvF,UAAM,IAAI;AAAA,MACR;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACA,MAAI,SAAS,UAAU,UAAa,QAAQ,UAAU,SAAS,MAAM,SAAS,KAAK,GAAG;AACpF,UAAM,IAAI;AAAA,MACR;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACA,OAAK,SAAS,kBAAkB,SAAS,CAAC,QAAQ,iBAAiB;AACjE,UAAM,IAAI;AAAA,MACR;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACA,MAAI,SAAS,yBAAyB;AACpC,UAAM,aAAa,MAAM,oCAAoC,SAAS,uBAAuB;AAC7F,QAAI,WAAW,IAAI,SAAS,qBAAqB,WAAW,IAAI,kBAAkB,iBAAiB;AACjG,YAAM,IAAI,sBAAsB,qCAAqC,iDAAiD;AAAA,IACxH;AACA,UAAM,mCAAmC,SAAS,EAAE,gBAAgB,WAAW,aAAa,WAAW,WAAW,IAAI,WAAW,SAAS,SAAS,QAAQ,CAAC;AAAA,EAC9J;AACA,SAAO;AACT;AAEA,eAAsB,mCACpB,SACA,UACe;AACf,QAAM,WAAW,oCAAoC,MAAM,QAAQ,aAAa;AAChF,MAAI,QAAQ,mBAAmB,SAAS,kBAAkB,CAAC,QAAQ,iBAAiB;AAClF,UAAM,IAAI,sBAAsB,kCAAkC,yEAAyE;AAAA,EAC7I;AACA,MAAI,SAAS,aAAa,MAAM,gBAAgB,SAAS,SAAS,MAAM,MAAM,gBAAgB,SAAS,SAAS,GAAG;AACjH,UAAM,IAAI,sBAAsB,kCAAkC,+DAA+D;AAAA,EACnI;AACA,MAAI,SAAS,SAAS,KAAK,YAAU,CAAC,cAAc,WAAW,QAAQ,EAAE,SAAS,OAAO,IAAI,CAAC,GAAG;AAC/F,UAAM,IAAI,sBAAsB,kCAAkC,kEAAkE;AAAA,EACtI;AACF;AAEO,IAAM,2BAA2BA,GACrC,OAAO;AAAA,EACN,eAAeA,GAAE,QAAQ,gCAAgC;AAAA,EACzD,SAASA,GAAE,MAAM,uBAAuB,EAAE,IAAI,GAAM;AAAA,EACpD,SAAS,+BAA+B,SAAS;AACnD,CAAC,EACA,OAAO;AAEH,IAAM,uCAAuCA,GAAE,OAAO;AAAA,EAC3D,mBAAmBA,GAAE,OAAO,EAAE,MAAM,uBAAuB;AAAA,EAC3D,cAAcA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,GAAG;AAAA,EACjD,gBAAgBA,GAAE,MAAMA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG;AAAA,EACrE,eAAeA,GAAE,OAAO,EAAE,aAAaA,GAAE,OAAO,EAAE,IAAI,CAAC,GAAG,gBAAgB,WAAW,CAAC,EAAE,OAAO,EAAE,SAAS;AAAA,EAC1G,cAAcA,GAAE,OAAO;AAAA,IACrB,wBAAwBA,GAAE,QAAQ,IAAI;AAAA,IACtC,wBAAwBA,GAAE,QAAQ,IAAI;AAAA,IACtC,oCAAoCA,GAAE,QAAQ,IAAI;AAAA,IAClD,gBAAgBA,GAAE,QAAQ,OAAO;AAAA,IACjC,8BAA8BA,GAAE,QAAQ,SAAS;AAAA,EACnD,CAAC,EAAE,OAAO;AACZ,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,OAAO,YAAY;AAC1C,MAAI,IAAI,IAAI,MAAM,cAAc,EAAE,SAAS,MAAM,eAAe,UAAU,MAAM,eAAe,KAAK,UAAQ,OAAO,MAAM,YAAY;AACnI,YAAQ,SAAS,EAAE,MAAM,UAAU,MAAM,CAAC,gBAAgB,GAAG,SAAS,wEAAwE,CAAC;AACjJ,MAAI,MAAM,eAAe,UAAU,CAAC,MAAM;AACxC,YAAQ,SAAS,EAAE,MAAM,UAAU,MAAM,CAAC,eAAe,GAAG,SAAS,mEAAmE,CAAC;AAC7I,CAAC;AAGM,SAAS,+BAA+B,cAA8C,MAC3F,cAAgH;AAChH,MAAI,CAAC,aAAa,eAAe,SAAS,IAAI,EAAG,QAAO;AACxD,MAAI,CAAC,aAAc,QAAO;AAC1B,SAAO,aAAa,SAAS,oBACzB,aAAa,oBAAoB,QAAQ,aAAa,eACtD,aAAa,sBAAsB;AACzC;AAEO,IAAM,6BAA6BA,GACvC,OAAO;AAAA,EACN,eAAeA,GAAE,QAAQ,kCAAkC;AAAA,EAC3D,gBAAgB;AAAA,EAChB,UAAUA,GAAE,MAAM,qBAAqB;AAAA,EACvC,SAASA,GAAE,MAAMA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,CAAC;AAAA,EAClD,cAAc,2BAA2B,SAAS;AAAA,EAClD,gBAAgBA,GAAE,MAAMA,GAAE,KAAK,CAAC,YAAY,eAAe,CAAC,CAAC,EAAE,SAAS;AAAA,EACxE,YAAY,qCAAqC,SAAS;AAAA,EAC1D,oBAAoBA,GAAE,OAAO;AAAA,IAC3B,YAAYA,GAAE,QAAQ,iCAAiC;AAAA,IACvD,SAASA,GAAE,QAAQ,GAAG;AAAA,IACtB,UAAUA,GAAE,QAAQ,CAAC;AAAA,IACrB,WAAWA,GAAE,QAAQ,CAAC;AAAA,IACtB,SAASA,GAAE,QAAQ,MAAM;AAAA,IACzB,gBAAgBA,GAAE,QAAQ,WAAW;AAAA,IACrC,mBAAmBA,GAAE,OAAO,EAAE,MAAM,uBAAuB;AAAA,EAC7D,CAAC,EAAE,OAAO,EAAE,SAAS;AAAA,EACrB,mBAAmBA,GAAE,OAAO;AAAA,IAC1B,YAAYA,GAAE,QAAQ,2BAA2B;AAAA,IACjD,oBAAoB;AAAA,IACpB,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,qBAAqBA,GAAE,QAAQ,IAAI;AAAA,IACnC,sBAAsBA,GAAE,QAAQ,IAAI;AAAA,EACtC,CAAC,EAAE,OAAO,EAAE,SAAS;AAAA,EACrB,YAAYA,GAAE,MAAMA,GAAE,KAAK,CAAC,SAAS,UAAU,aAAa,iBAAiB,CAAC,CAAC;AAAA,EAC/E,UAAUA,GACP,OAAO;AAAA,IACN,QAAQA,GAAE,QAAQ;AAAA,IAClB,gBAAgBA,GAAE,QAAQ;AAAA,IAC1B,sBAAsBA,GAAE,QAAQ;AAAA,EAClC,CAAC,EACA,OAAO;AAAA,EACV,WAAWA,GAAE,OAAO,EAAE,eAAeA,GAAE,QAAQ,8BAA8B,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS;AAAA,EACpG,QAAQA,GACL,OAAO;AAAA,IACN,iBAAiBA,GAAE,OAAO,EAAE,YAAY;AAAA,IACxC,oBAAoBA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,IAC9C,sBAAsBA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,EAClD,CAAC,EACA,OAAO;AAAA,EACV,WAAW;AAAA,EACX,WAAW;AACb,CAAC,EACA,OAAO;;;AC/lBV,SAAS,KAAAC,UAAS;AAClB,SAAS,qBAAqB,qBAAqB,2BAA2B;AAG9E,IAAM,gBAAgBC,GAAE,MAAMA,GAAE,OAAO,EAAE,IAAIA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,SAASA,GAAE,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,GAAK;AAChH,IAAM,wBAAwBA,GAAE,OAAO;AAAA,EACrC,SAAS;AAAA,EACT,SAASA,GAAE,MAAM,mBAAmB,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AACtD,CAAC,EAAE,OAAO;AAQV,eAAsB,kCAAkC,OAGrD;AACD,QAAM,YAAY,MAAM,kBAAkB,sBAAsB,MAAM,MAAM,eAAe,IAAI;AAC/F,QAAM,UAAU,cAAc,MAAM,YAChC,oBAAoB,UAAU,SAAS,UAAU,OAAO,IACxD,MAAM,OAAO;AACjB,MAAI,IAAI,IAAI,QAAQ,IAAI,YAAU,OAAO,EAAE,CAAC,EAAE,SAAS,QAAQ,QAAQ;AACrE,UAAM,IAAI,MAAM,4CAA4C;AAAA,EAC9D;AACA,QAAMC,QAAO,MAAM,gBAAgB,EAAE,eAAe,iCAAiC,QAAQ,CAAC;AAC9F,SAAO;AAAA,IACL,MAAM;AAAA,IACN,QAAQ,EAAE,IAAI,oBAAoBA,MAAK,MAAM,GAAG,EAAE,CAAC,IAAI,aAAaA,MAAK;AAAA,IACzE,UAAU,YAAY,EAAE,IAAI,UAAU,QAAQ,IAAI,aAAa,UAAU,QAAQ,YAAY,IAAI;AAAA,EACnG;AACF;;;ACjCA,SAAS,KAAAC,UAAS;AAIX,IAAM,kCAAkC;AAE/C,IAAM,qBAAqBC,GAAE,OAAO;AAAA,EAClC,IAAIA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;AAAA,EAC3B,YAAYA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;AAAA,EACnC,OAAOA,GAAE,KAAK,CAAC,SAAS,cAAc,aAAa,CAAC;AACtD,CAAC,EAAE,YAAY;AAGR,IAAM,iCAAiCA,GAAE,OAAO;AAAA,EACrD,eAAeA,GAAE,QAAQ,sCAAsC;AAAA,EAC/D,SAAS;AAAA,EACT,OAAOA,GAAE,MAAM,kBAAkB,EAAE,IAAI,CAAC,EAAE,IAAI,GAAM;AAAA,EACpD,QAAQA,GAAE,MAAMA,GAAE,OAAO;AAAA,IACvB,MAAMA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAK;AAAA,IACxC,QAAQA,GAAE,OAAO,EAAE,MAAM,gBAAgB;AAAA,IACzC,WAAWA,GAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,IACxC,UAAUA,GAAE,QAAQ,QAAQ;AAAA,IAC5B,SAASA,GAAE,OAAO,EAAE,IAAI,KAAK,OAAO,IAAI;AAAA,EAC1C,CAAC,EAAE,OAAO,CAAC,EAAE,IAAI,GAAM;AACzB,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,QAAQ,YAAY;AAC3C,QAAM,MAAM,oBAAI,IAAY;AAC5B,SAAO,MAAM,QAAQ,CAAC,MAAM,UAAU;AACpC,QAAI,KAAK,UAAU,QAAS,SAAQ,SAAS,EAAE,MAAM,UAAU,MAAM,CAAC,SAAS,OAAO,OAAO,GAAG,SAAS,6CAA6C,CAAC;AACvJ,QAAI,IAAI,IAAI,KAAK,EAAE,EAAG,SAAQ,SAAS,EAAE,MAAM,UAAU,MAAM,CAAC,SAAS,OAAO,IAAI,GAAG,SAAS,6CAA6C,CAAC;AAC9I,QAAI,IAAI,KAAK,EAAE;AAAA,EACjB,CAAC;AACH,CAAC;AAIM,SAAS,kCAAkC,eAAwB,iBAAgC;AACxG,QAAM,WAAWA,GAAE,MAAM,kBAAkB,EAAE,IAAI,CAAC,EAAE,IAAI,GAAM,EAAE,MAAM,aAAa;AACnF,QAAM,aAAaA,GAAE,MAAM,kBAAkB,EAAE,IAAI,CAAC,EAAE,IAAI,GAAM,EAAE,MAAM,eAAe;AACvF,QAAM,WAAW,oBAAI,IAAY;AACjC,QAAM,gBAAgB,oBAAI,IAAY;AACtC,aAAW,QAAQ,UAAU;AAC3B,QAAI,KAAK,UAAU,QAAS,OAAM,IAAI,MAAM,mDAAmD;AAC/F,QAAI,SAAS,IAAI,KAAK,EAAE,EAAG,OAAM,IAAI,MAAM,0CAA0C;AACrF,aAAS,IAAI,KAAK,EAAE;AACpB,kBAAc,IAAI,KAAK,UAAU;AAAA,EACnC;AACA,QAAM,gBAAgB,oBAAI,IAAY;AACtC,aAAW,QAAQ,YAAY;AAC7B,QAAI,KAAK,UAAU,QAAS,OAAM,IAAI,MAAM,qDAAqD;AACjG,QAAI,cAAc,IAAI,KAAK,EAAE,EAAG,OAAM,IAAI,MAAM,4CAA4C;AAC5F,QAAI,SAAS,IAAI,KAAK,EAAE,KAAK,cAAc,IAAI,KAAK,UAAU,GAAG;AAC/D,YAAM,IAAI,MAAM,oDAAoD;AAAA,IACtE;AACA,kBAAc,IAAI,KAAK,EAAE;AAAA,EAC3B;AACF;AAEA,eAAsB,4BAA4B,OAAgB;AAChE,QAAM,SAAS,+BAA+B,MAAM,KAAK;AACzD,QAAMC,QAAO,MAAM,gBAAgB,MAAM;AACzC,SAAO,EAAE,SAAS,OAAO,SAAS,SAAS,EAAE,IAAI,uBAAuBA,MAAK,MAAM,GAAG,EAAE,CAAC,IAAI,aAAaA,MAAK,EAAE;AACnH;","names":["z","z","Hash","micros","z","z","z","z","z","Money","z","z","z","z","hash","z","z","hash"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/training-supervised.ts"],"sourcesContent":["import { z } from \"zod\";\n\nconst Id = z.string().trim().min(1).max(240);\nconst Hash = z.string().trim().min(8).max(256);\n\n/** Shared recipe for the public API, local workbench, and managed executor.\n * Supervised training has no rollout-group, reward, or relative-loss settings.\n */\nexport const SftRecipeSchema = z.object({\n schemaVersion: z.literal(\"openpond.sftRecipe.v1\"),\n method: z.literal(\"sft\"),\n parameterization: z.literal(\"lora\"),\n baseModel: z.object({\n id: Id,\n revision: z.string().trim().min(1).max(256),\n tokenizerRevision: z.string().trim().min(1).max(256),\n chatTemplateHash: Hash,\n }),\n dataset: z.object({\n trainSplit: z.literal(\"train\"),\n validationSplit: z.enum([\"validation\", \"frozen_eval\"]),\n completionOnly: z.boolean(),\n maxSequenceLength: z.number().int().positive().max(32_768),\n maxExamples: z.number().int().positive().max(100_000).default(1_000),\n selectionStrategy: z.literal(\"stable_hash_top_n\").default(\"stable_hash_top_n\"),\n selectionSeed: z.number().int().default(17),\n }),\n lora: z.object({\n rank: z.number().int().positive().max(256),\n alpha: z.number().positive().max(1_024),\n dropout: z.number().min(0).max(1),\n targetModules: z.array(Id).min(1).max(100),\n }),\n optimizer: z.object({\n learningRate: z.number().positive(),\n epochs: z.number().positive().max(100),\n maxSteps: z.number().int().positive().max(1_000_000),\n batchSize: z.number().int().positive().max(10_000),\n gradientAccumulationSteps: z.number().int().positive().max(10_000),\n seed: z.number().int(),\n }),\n resourceLimits: z.object({\n cpuThreads: z.number().int().positive().max(256),\n memoryBytes: z.number().int().positive(),\n wallTimeMs: z.number().int().positive(),\n }),\n});\nexport type SftRecipe = z.infer<typeof SftRecipeSchema>;\n\n/** The first managed SFT worker has a deliberately bounded execution surface.\n * This is an executable requirement, not an advertised fleet capability.\n */\nexport const ManagedSftRecipeSchema = SftRecipeSchema.safeExtend({\n dataset: SftRecipeSchema.shape.dataset.safeExtend({\n completionOnly: z.literal(true),\n maxSequenceLength: z.number().int().min(2).max(8192),\n maxExamples: z.number().int().min(1).max(1000).default(1000),\n }),\n lora: SftRecipeSchema.shape.lora.safeExtend({\n rank: z.number().int().min(1).max(64),\n dropout: z.number().min(0).lt(1),\n targetModules: z\n .array(z.enum([\"q_proj\", \"k_proj\", \"v_proj\", \"o_proj\", \"gate_proj\", \"up_proj\", \"down_proj\"]))\n .min(1)\n .max(7),\n }),\n optimizer: SftRecipeSchema.shape.optimizer.safeExtend({\n learningRate: z.number().positive().max(0.001),\n epochs: z.number().positive().max(10),\n maxSteps: z.number().int().min(1).max(128),\n batchSize: z.number().int().min(1).max(32),\n gradientAccumulationSteps: z.number().int().min(1).max(32),\n seed: z\n .number()\n .int()\n .min(-(2 ** 31))\n .max(2 ** 31 - 1),\n }),\n resourceLimits: SftRecipeSchema.shape.resourceLimits.safeExtend({\n wallTimeMs: z.number().int().min(1000).max(21_600_000),\n }),\n}).superRefine((recipe, context) => {\n if (recipe.optimizer.batchSize * recipe.optimizer.gradientAccumulationSteps > 32)\n context.addIssue({\n code: \"custom\",\n path: [\"optimizer\"],\n message: \"Managed SFT supports at most 32 accumulated examples.\",\n });\n if (new Set(recipe.lora.targetModules).size !== recipe.lora.targetModules.length)\n context.addIssue({\n code: \"custom\",\n path: [\"lora\", \"targetModules\"],\n message: \"Adapter target modules must be unique.\",\n });\n});\n"],"mappings":"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","names":[]}