@velarscript/compiler 0.10.1 → 0.10.3

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.
@@ -81,6 +81,10 @@ export interface FormReadField {
81
81
  readonly optional: boolean;
82
82
  readonly enumValues?: readonly string[];
83
83
  }
84
+ export interface RecordTypeField {
85
+ readonly name: string;
86
+ readonly type: ValueType;
87
+ }
84
88
  export interface LoweringHints {
85
89
  readonly collectionCalls: ReadonlyMap<number, CollectionOperation>;
86
90
  readonly collectionSizes: ReadonlySet<number>;
@@ -114,6 +118,8 @@ export interface LoweringHints {
114
118
  * apart before it writes either into the output.
115
119
  */
116
120
  readonly genericTypeNames: ReadonlySet<string>;
121
+ /** Complete inherited-plus-local record fields for each `type` declaration, keyed by declaration start. */
122
+ readonly typeDeclarationFields: ReadonlyMap<number, readonly RecordTypeField[]>;
117
123
  readonly optionalMembers: ReadonlySet<string>;
118
124
  readonly optionalCalls: ReadonlySet<string>;
119
125
  readonly optionalIndexes: ReadonlySet<string>;
@@ -216,6 +222,8 @@ export interface AnalysisContext {
216
222
  readonly namedTypes?: ReadonlyMap<string, ReadonlyMap<string, ValueType>>;
217
223
  readonly namedTypeReadonlyFields?: ReadonlyMap<string, ReadonlySet<string>>;
218
224
  readonly namedTypeIdentities?: ReadonlyMap<string, string>;
225
+ /** Direct record inheritance edges by local name or canonical identity. */
226
+ readonly namedTypeBases?: ReadonlyMap<string, ValueType>;
219
227
  /** D55: imported generic record declarations, by the name this module writes. */
220
228
  readonly genericTypes?: ReadonlyMap<string, GenericTypeInfo>;
221
229
  readonly typeAliases?: ReadonlyMap<string, ValueType>;
@@ -287,6 +295,12 @@ export declare class Analyzer implements TypeEnvironment {
287
295
  private readonly namedTypes;
288
296
  private readonly namedTypeReadonlyFields;
289
297
  private readonly namedTypeIdentities;
298
+ /** Direct record bases by local name or canonical identity. Field tables remain flattened separately. */
299
+ private readonly namedTypeBases;
300
+ /** Fields contributed by a base, used to reject redeclaration in the child body. */
301
+ private readonly inheritedTypeFields;
302
+ /** Analyzer-owned complete field tables passed to the emitter for runtime validation. */
303
+ private readonly typeDeclarationFields;
290
304
  /** D55: generic record declarations in scope, by the name this module writes. */
291
305
  private readonly genericTypes;
292
306
  /** The same declarations by identity, so a substituted application can be re-instantiated. */
@@ -477,6 +491,10 @@ export declare class Analyzer implements TypeEnvironment {
477
491
  static inferredFunctionResultsMatch(left: ReadonlyMap<string, ValueType>, right: ReadonlyMap<string, ValueType>): boolean;
478
492
  semanticMembers(): ReadonlyMap<string, ReadonlyMap<string, ValueType>>;
479
493
  analyzedClasses(): ReadonlyMap<string, ClassInfo>;
494
+ analyzedNamedTypes(): ReadonlyMap<string, ReadonlyMap<string, ValueType>>;
495
+ analyzedNamedTypeReadonlyFields(): ReadonlyMap<string, ReadonlySet<string>>;
496
+ analyzedNamedTypeBases(): ReadonlyMap<string, ValueType>;
497
+ analyzedGenericTypes(): ReadonlyMap<string, GenericTypeInfo>;
480
498
  semanticExpressions(): {
481
499
  readonly types: ReadonlyMap<string, ValueType>;
482
500
  readonly members: ReadonlyMap<string, ReadonlyMap<string, ValueType>>;
@@ -588,13 +606,6 @@ export declare class Analyzer implements TypeEnvironment {
588
606
  private rejectReservedTypeNames;
589
607
  private registerAliasShapes;
590
608
  protected expandAliases(type: ValueType, seen?: ReadonlySet<string>): ValueType;
591
- /**
592
- * D55 rule 120: generic record declarations are registered in two steps —
593
- * every name and parameter list first, then the field types. A field type may
594
- * apply another generic record, or this one, and neither could be resolved if
595
- * the declarations were read one at a time.
596
- */
597
- private registerGenericTypeShapes;
598
609
  private registerTypeShapes;
599
610
  private registerEnumShapes;
600
611
  private registerClassNames;
@@ -1 +1 @@
1
- {"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../src/analyzer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../src/analyzer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAQV,UAAU,EAIV,mBAAmB,EAGnB,OAAO,EACP,SAAS,EAGT,wBAAwB,EAExB,aAAa,EACb,UAAU,EAEX,MAAM,UAAU,CAAC;AAClB,OAAO,EAAqD,KAAK,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACtH,OAAO,EAAmE,KAAK,UAAU,EAAuB,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE5J,OAAO,KAAK,EAAE,yBAAyB,EAAoB,MAAM,gBAAgB,CAAC;AAGlF,OAAO,EAAsB,KAAK,IAAI,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAsCL,KAAK,QAAQ,EACb,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EAGvB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,SAAS,EACf,MAAM,YAAY,CAAC;AAEpB,UAAU,OAAO;IACf,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,IAAI,EAAE,SAAS,CAAC;IAChB,YAAY,EAAE,SAAS,CAAC;IACxB,WAAW,EAAE,SAAS,CAAC;IACvB,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAIvB,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAChC;;;;;OAKG;IACH,aAAa,CAAC,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CACrE;AA2ED,UAAU,6BAA6B;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,wBAAwB,EAAE,CAAC;IAC9D,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAC;IACvD,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAC;IACvD,QAAQ,CAAC,oBAAoB,CAAC,EAAE,mBAAmB,CAAC,sBAAsB,CAAC,CAAC;IAC5E,QAAQ,CAAC,aAAa,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;IAC7D,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC3C,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;CACjC;AAeD,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;CAC1B;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,iFAAiF;IACjF,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACpC;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,CAAC;IAC1C,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,CAAC;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACjD,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACtC,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9C,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACjD,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9C,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACvD,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5C,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CACxD;AAED,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG,OAAO,GAAG,YAAY,GAAG,YAAY,GAAG,YAAY,GAAG,YAAY,GAAG,SAAS,GAAG,UAAU,GAAG,WAAW,GAAG,WAAW,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,SAAS,GAAG,YAAY,GAAG,aAAa,GAAG,YAAY,GAAG,UAAU,GAAG,YAAY,GAAG,cAAc,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,iBAAiB,GAAG,eAAe,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,WAAW,GAAG,YAAY,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE7iB,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG,aAAa,GAAG,aAAa,GAAG,aAAa,GAAG,YAAY,GAAG,WAAW,GAAG,aAAa,GAAG,aAAa,GAAG,kBAAkB,GAAG,gBAAgB,GAAG,aAAa,GAAG,eAAe,GAAG,kBAAkB,GAAG,gBAAgB,GAAG,cAAc,GAAG,cAAc,GAAG,eAAe,GAAG,WAAW,GAAG,aAAa,GAAG,aAAa,GAAG,YAAY,GAAG,eAAe,GAAG,iBAAiB,GAAG,aAAa,GAAG,gBAAgB,CAAC;AAqDvc,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACjE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IACnE,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9C,mFAAmF;IACnF,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,aAAa,GAAG,eAAe,CAAC,CAAC;IAC1F,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC7D,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC/D,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IACjE,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC1C,QAAQ,CAAC,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/C,QAAQ,CAAC,wBAAwB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACvD,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC1C,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7C,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACzC,gHAAgH;IAChH,QAAQ,CAAC,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjD,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACxC;;;;;;;OAOG;IACH,QAAQ,CAAC,sBAAsB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACrD;;;;;OAKG;IACH,QAAQ,CAAC,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/C,2GAA2G;IAC3G,QAAQ,CAAC,qBAAqB,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,eAAe,EAAE,CAAC,CAAC;IAChF,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9C,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5C,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9C,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9C,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9C,QAAQ,CAAC,qBAAqB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACpD,QAAQ,CAAC,uBAAuB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACtD,QAAQ,CAAC,mBAAmB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAClD,QAAQ,CAAC,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjD,qFAAqF;IACrF,QAAQ,CAAC,wBAAwB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACvD,QAAQ,CAAC,8BAA8B,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7D,QAAQ,CAAC,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjD,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7C,QAAQ,CAAC,yBAAyB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACxD,QAAQ,CAAC,gBAAgB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvD;;;;OAIG;IACH,QAAQ,CAAC,qBAAqB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACpD,QAAQ,CAAC,sBAAsB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACrD,QAAQ,CAAC,kBAAkB,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,CAAC;IACnE,QAAQ,CAAC,iBAAiB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxD,QAAQ,CAAC,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAChD,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,aAAa,EAAE,CAAC,CAAC;IAClE,QAAQ,CAAC,mBAAmB,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;IACrE,QAAQ,CAAC,iBAAiB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxD,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrD,mFAAmF;IACnF,QAAQ,CAAC,sBAAsB,EAAE,WAAW,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,CAAC;IACvF,QAAQ,CAAC,iBAAiB,EAAE,WAAW,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IACvE;;;;OAIG;IACH,QAAQ,CAAC,uBAAuB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACtD;;;;;OAKG;IACH,QAAQ,CAAC,wBAAwB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACvD,4EAA4E;IAC5E,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC1C;;;;;OAKG;IACH,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9C;;;;;OAKG;IACH,QAAQ,CAAC,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/C;;;;OAIG;IACH,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC/D;;;;OAIG;IACH,QAAQ,CAAC,kBAAkB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC;IACnE;;;;;;OAMG;IACH,QAAQ,CAAC,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjD;;;;;;OAMG;IACH,QAAQ,CAAC,uBAAuB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACvD;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAClD,QAAQ,CAAC,cAAc,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACzD,QAAQ,CAAC,eAAe,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxD,QAAQ,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IAC1E,QAAQ,CAAC,uBAAuB,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5E,QAAQ,CAAC,mBAAmB,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3D,2EAA2E;IAC3E,QAAQ,CAAC,cAAc,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACzD,iFAAiF;IACjF,QAAQ,CAAC,YAAY,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC7D,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACtD,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,QAAQ,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAClD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC9E,QAAQ,CAAC,gBAAgB,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,CAAC,CAAC;IACpE,QAAQ,CAAC,SAAS,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjD,yEAAyE;IACzE,QAAQ,CAAC,uBAAuB,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAClE,8EAA8E;IAC9E,QAAQ,CAAC,+BAA+B,CAAC,EAAE,OAAO,CAAC;IACnD,uFAAuF;IACvF,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;CACrB;AAKD,eAAO,MAAM,6BAA6B,EAAE,SAAgE,CAAC;AA+E7G;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,oBAAoB,CAAC;AAClD;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,oBAAoB,CAAC;AAElD,8DAA8D;AAC9D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,CAAC;CACxC;AA0HD,eAAO,MAAM,sBAAsB,EAAE,SAAS,MAAM,EAAqC,CAAC;AA8D1F,eAAO,MAAM,sBAAsB,EAAE,SAAS,MAAM,EAAqC,CAAC;AAiE1F;;;;;GAKG;AACH,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,sBAAsB,GAAG,IAAI,CAKzH;AAYD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzD;AAkDD,qBAAa,QAAS,YAAW,eAAe;IAC9C,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,UAAU,EAAE,CAAM;IAClD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuC;IAC9D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA+C;IAChF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqD;IAChF,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAA0C;IAClF,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA6B;IACjE,yGAAyG;IACzG,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgC;IAC/D,oFAAoF;IACpF,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAuD;IAC3F,yFAAyF;IACzF,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAiD;IACvF,iFAAiF;IACjF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsC;IACnE,8FAA8F;IAC9F,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAsC;IAC7E,0FAA0F;IAC1F,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAyC;IAC7E,wFAAwF;IACxF,OAAO,CAAC,QAAQ,CAAC,4BAA4B,CAAgC;IAC7E,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAgC;IAC5D,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAqB;IAC1D,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAyC;IAC/E,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAwC;IAC5E,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAA0F;IACnI,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAgC;IAC5E,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA+B;IACrD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgC;IACxD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA6B;IAC/D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqD;IACnF,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAgC;IAClE,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAA0C;IAClF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAuB;IACtD,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAiB;IACvD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA0C;IAC1E,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqB;IACrD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqE;IACjG,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAwC;IACpE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAwC;IACtE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAyC;IACxE,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAqB;IAC7D,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAqB;IAC9D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqB;IACrD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAqB;IACtD,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAqB;IAC7D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAuC;IACtE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAuC;IAC1E,8EAA8E;IAC9E,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;IACxD;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAgB;IACtD,6EAA6E;IAC7E,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA0E;IAC7G,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAkF;IACrH,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;IACxD,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAqB;IAC7D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAqB;IACtD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;IACxD,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAqB;IAC9D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;IACpD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqB;IACrD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqB;IACrD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqB;IACrD,OAAO,CAAC,QAAQ,CAAC,+BAA+B,CAAqB;IACrE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqB;IACrD,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAqB;IAC3D,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAqB;IAC7D,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAqB;IACzD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;IACxD,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAqB;IAG9D,OAAO,CAAC,QAAQ,CAAC,6BAA6B,CAAqB;IACnE,OAAO,CAAC,QAAQ,CAAC,gCAAgC,CAAqB;IACtE,OAAO,CAAC,QAAQ,CAAC,8BAA8B,CAAqB;IACpE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;IAIxD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;IACpD,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAqB;IAC/D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA6B;IAI9D,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAqB;IAI3D,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAqB;IAC3D,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAqB;IAI3D,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAqF;IAC/H,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAqB;IAC5D,SAAS,CAAC,QAAQ,CAAC,gBAAgB,uBAA8B;IACjE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAuC;IAC1E,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAuD;IAChG,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAqB;IAC3D,SAAS,CAAC,QAAQ,CAAC,iBAAiB,sBAA6B;IACjE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAqB;IACvD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA+C;IACzE,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAwC;IAC5E,SAAS,CAAC,QAAQ,CAAC,iBAAiB,sBAA6B;IACjE,SAAS,CAAC,QAAQ,CAAC,cAAc,sBAA6B;IAC9D,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAuD;IAC9F,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAgC;IACrE,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAqD;IAC5F,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAqD;IACzF,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAgC;IACxE,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAqD;IAC/F,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAgC;IACzE,OAAO,CAAC,QAAQ,CAAC,4BAA4B,CAAgC;IAC7E,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAgC;IAC3E,SAAS,CAAC,QAAQ,CAAC,0BAA0B,yBAAgC;IAC7E,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAgC;IAC3E,OAAO,CAAC,QAAQ,CAAC,gCAAgC,CAAqD;IACtG,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAgC;IACtE,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAgC;IACxE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA4C;IAC9E,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAiC;IAC7E,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAgC;IAC5E,OAAO,CAAC,QAAQ,CAAC,+BAA+B,CAAU;IAC1D,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAGtC;IACL,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAoD;IAC9F,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAmD;IAC5F,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA8C;IAC5E,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAkC;IACjE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;IAC5E,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA8C;IAClF,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAkC;IACvE,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA6C;IAClF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyB;IACrD,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,qBAAqB,CAAK;IAClC,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,iBAAiB,CAAgB;IACzC,OAAO,CAAC,0BAA0B,CAAK;IACvC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAyB;IAC1D,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,kBAAkB,CAAsC;IAChE,OAAO,CAAC,0BAA0B,CAAK;IAMvC,OAAO,CAAC,6BAA6B,CAAK;IAC1C,SAAS,CAAC,sBAAsB,SAAK;IACrC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAqF;IAI5H,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAA8B;IACrE,iGAAiG;IACjG,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA6B;IACnE,OAAO,CAAC,QAAQ,CAAC,6BAA6B,CAA+C;IAC7F,yGAAyG;IACzG,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAA8B;IACvE,uHAAuH;IACvH,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAqB;IAC5D,OAAO,CAAC,yBAAyB,CAGjB;IAChB,SAAS,CAAC,gBAAgB,SAAK;IAM/B,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,SAAS,CAAC,cAAc,SAAK;IAC7B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA+B;IAC9D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAkC;IACnE,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAkC;IACzE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgC;IACjE,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAqB;IAC/D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA+B;IAC9D,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA0C;IAC/E,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAuC;IAG1E,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAuC;IACzE,2FAA2F;IAC3F,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAiJ;IACtL,8EAA8E;IAC9E,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAA0E;IACjH,iGAAiG;IACjG,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAA0B;IACrE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAgC;IACnE,2FAA2F;IAC3F,OAAO,CAAC,QAAQ,CAAC,6BAA6B,CAA6G;IAC3J,qEAAqE;IACrE,OAAO,CAAC,QAAQ,CAAC,+BAA+B,CAAuG;IAEvJ,YAAY,OAAO,GAAE,eAAoB,EAAE,UAAU,GAAE,SAAS,yBAAyB,EAAO,EA0H/F;IAED;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,yBAAyB;IAYjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAC3C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiC;IAChE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiC;IAEhE,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,UAAU,EAAE,CAoC/C;IAED,OAAO,CAAC,yBAAyB;IAqBjC,OAAO,CAAC,4BAA4B;IAmFpC,OAAO,CAAC,iCAAiC;IAyBzC,OAAO,CAAC,sCAAsC;IAmB9C,OAAO,CAAC,gCAAgC;IAqCxC,OAAO,CAAC,kBAAkB;IA8C1B,OAAO,CAAC,+BAA+B;IAWvC,OAAO,CAAC,0BAA0B;IA6ClC,OAAO,CAAC,iBAAiB;IAoCzB,OAAO,CAAC,qBAAqB;IA2F7B,aAAa,IAAI,aAAa,CAuD7B;IAED,aAAa,IAAI,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAE9C;IAED,uBAAuB,IAAI,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAExD;IAED,MAAM,CAAC,4BAA4B,CACjC,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,EACpC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,GACpC,OAAO,CAOT;IAED,eAAe,IAAI,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAErE;IAED,eAAe,IAAI,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAEhD;IAED,kBAAkB,IAAI,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAExE;IAED,+BAA+B,IAAI,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAE1E;IAED,sBAAsB,IAAI,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAEvD;IAED,oBAAoB,IAAI,WAAW,CAAC,MAAM,EAAE,eAAe,CAAC,CAE3D;IAED,mBAAmB,IAAI;QACrB,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC/C,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;QACtE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAChD,QAAQ,CAAC,oBAAoB,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC9D,QAAQ,CAAC,kBAAkB,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC5D,QAAQ,CAAC,kBAAkB,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC5D,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAClD,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;KAC9E,CAWA;IAED,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAI,CAMhE;IAED;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,wBAAwB;IAoBhC;;;;;;OAMG;IACH,OAAO,CAAC,uBAAuB;IA8C/B,6EAA6E;IAC7E,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAE9D;IAED;;;;;;OAMG;IACH,OAAO,CAAC,yBAAyB;IA2BjC;;;;OAIG;IACH,OAAO,CAAC,0BAA0B;IA8DlC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,0BAA0B;IAiElC,yBAAyB,CACvB,MAAM,EAAE,kBAAkB,EAC1B,QAAQ,EAAE,kBAAkB,EAC5B,MAAM,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,KAAK,OAAO,GAC1D,OAAO,GAAG,SAAS,CAMrB;IAED,iBAAiB,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,CAMtD;IAED,SAAS,CAAC,kBAAkB,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,CAKvD;IAED,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,CAY7D;IAED;;;;;;;;;;OAUG;IACH,SAAS,CAAC,uBAAuB,CAC/B,IAAI,EAAE,SAAS,EACf,IAAI,GAAE,GAAG,CAAC,MAAM,CAAa,EAC7B,QAAQ,GAAE;QAAE,GAAG,EAAE,OAAO,CAAA;KAAmB,GAC1C;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAoEhE;IAED,SAAS,CAAC,4BAA4B,CAAC,UAAU,EAAE,SAAS,GAAG,OAAO,CAErE;IAED,SAAS,CAAC,yBAAyB,CAAC,UAAU,EAAE,SAAS,GAAG,OAAO,CAElE;IAED,SAAS,CAAC,sCAAsC,CAC9C,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,OAAO,GAC5C,OAAO,GAAG,SAAS,CAMrB;IAED,SAAS,CAAC,qCAAqC,CAC7C,SAAS,EAAE,SAAS,EACpB,kBAAkB,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,OAAO,EACvD,aAAa,EAAE,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,KAAK,OAAO,GAC3D,OAAO,GAAG,SAAS,CAMrB;IAED,SAAS,CAAC,gCAAgC,CAAC,UAAU,EAAE,SAAS,GAAG;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;KAAE,GAAG,IAAI,CAEvH;IAED,SAAS,CAAC,wBAAwB,CAAC,WAAW,EAAE,UAAU,EAAE,eAAe,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAE7G;IAED,SAAS,CAAC,kBAAkB,CAC1B,OAAO,EAAE,kBAAkB,EAC3B,UAAU,EAAE,SAAS,UAAU,EAAE,EACjC,cAAc,EAAE,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,GAAG,SAAS,EACtD,SAAS,EAAE,IAAI,GACd,SAAS,GAAG,SAAS,CAEvB;IAED,SAAS,CAAC,2BAA2B,CACnC,OAAO,EAAE,UAAU,EACnB,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,EAC1C,QAAQ,EAAE,CAAC,SAAS,EAAE,aAAa,KAAK,SAAS,GAChD,OAAO,GAAG,SAAS,CAErB;IAED,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAI,CAEhF;IAED,SAAS,CAAC,4BAA4B,IAAI,OAAO,CAEhD;IAED,SAAS,CAAC,4BAA4B,IAAI,MAAM,GAAG,IAAI,CAEtD;IAED,SAAS,CAAC,eAAe,IAAI,OAAO,CAEnC;IAED,SAAS,CAAC,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAElD;IAED,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAWtD;IAED,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAErC;IAED,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAY5D;IAED;;;;;;;OAOG;IACH,OAAO,CAAC,uBAAuB;IAoC/B,OAAO,CAAC,mBAAmB;IA+D3B,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,GAAE,WAAW,CAAC,MAAM,CAAa,GAAG,SAAS,CAiFzF;IAED,OAAO,CAAC,kBAAkB;IAkH1B,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,kBAAkB;IAoB1B,OAAO,CAAC,mBAAmB;IAgG3B,SAAS,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAm6BrD;IAKD,OAAO,CAAC,6BAA6B;IAkBrC,OAAO,CAAC,8BAA8B;IA4BtC,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,wBAAwB;IAgBhC,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,qBAAqB;IAqB7B,OAAO,CAAC,sBAAsB;IAwB9B,OAAO,CAAC,2BAA2B;IAInC,OAAO,CAAC,uBAAuB;IAuS/B;;;;;;OAMG;IACH,OAAO,CAAC,4BAA4B;IAgBpC,OAAO,CAAC,uBAAuB;IAS/B,OAAO,CAAC,0BAA0B;IA0ClC;;;;;OAKG;IACH,OAAO,CAAC,sBAAsB;IAwC9B;;;;;OAKG;IACH,OAAO,CAAC,uBAAuB;IAgC/B;;;;;;;;OAQG;IACH,OAAO,CAAC,oBAAoB;IA+B5B,kFAAkF;IAClF,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,yBAAyB;IAWjC;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAyCxB;;;;;;;;;OASG;IACH,OAAO,CAAC,kBAAkB;IAc1B,qFAAqF;IACrF,OAAO,CAAC,aAAa;IAarB;;;;OAIG;IACH,SAAS,CAAC,uBAAuB,IAAI,MAAM,GAAG,IAAI,CAIjD;IAED,OAAO,CAAC,gBAAgB;IA0BxB;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IA2B3B,kEAAkE;IAClE,OAAO,CAAC,kBAAkB;IAI1B;;;;;;OAMG;IACH,OAAO,CAAC,qBAAqB;IAI7B;;;;;;;OAOG;IACH,OAAO,CAAC,mBAAmB;IAmC3B;;;;;OAKG;IACH,OAAO,CAAC,wBAAwB;IAiChC,4EAA4E;IAC5E,OAAO,CAAC,wBAAwB;IAYhC;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAMzB;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IAOvB;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,wBAAwB;IA2ChC,OAAO,CAAC,uBAAuB;IA4B/B,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,UAAU;IAalB,OAAO,CAAC,UAAU;IAalB,OAAO,CAAC,oBAAoB;IAwD5B,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,oBAAoB;IAkB5B,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,qBAAqB;IAS7B,OAAO,CAAC,sBAAsB;IAS9B,OAAO,CAAC,qBAAqB;IAM7B,OAAO,CAAC,4BAA4B;IAqBpC;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,OAAO,CAAC,4BAA4B;IAOpC,OAAO,CAAC,wBAAwB;IAwBhC,SAAS,CAAC,0BAA0B,CAClC,SAAS,EAAE,6BAA6B,EACxC,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,MAAM,UAAQ,EACd,WAAW,UAAqB,EAChC,iBAAiB,UAAQ,EACzB,eAAe,SAAsE,GACpF,IAAI,CAoGN;IAED,SAAS,CAAC,YAAY,CACpB,UAAU,EAAE,SAAS,SAAS,EAAE,EAChC,QAAQ,GAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAa,GACnD,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAQhC;IAED,OAAO,CAAC,mBAAmB;IAgB3B,SAAS,CAAC,iBAAiB,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,GAAG,IAAI,CAsBlE;IAED,OAAO,CAAC,iBAAiB;IA0MzB,OAAO,CAAC,sBAAsB;IAa9B,SAAS,CAAC,eAAe,CAAC,UAAU,EAAE,UAAU,EAAE,cAAc,GAAE,SAAuB,GAAG,SAAS,CA0CpG;IAED,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,kBAAkB;IAK1B,OAAO,CAAC,oCAAoC;IAY5C,OAAO,CAAC,sBAAsB;IAK9B,OAAO,CAAC,wBAAwB;IAkBhC;;;;;;OAMG;IACH,OAAO,CAAC,uBAAuB;IAY/B,OAAO,CAAC,mBAAmB;IA4gB3B,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,oBAAoB;IAO5B,OAAO,CAAC,2BAA2B;IA8BnC,OAAO,CAAC,WAAW;IA4FnB,OAAO,CAAC,2BAA2B;IA8CnC,OAAO,CAAC,6BAA6B;IAWrC,OAAO,CAAC,sBAAsB;IAe9B,OAAO,CAAC,6BAA6B;IAgBrC,OAAO,CAAC,sBAAsB;IAiB9B,oFAAoF;IACpF,OAAO,CAAC,kBAAkB;IAkB1B,OAAO,CAAC,gCAAgC;IAWxC,OAAO,CAAC,2BAA2B;IAYnC,6FAA6F;IAC7F,OAAO,CAAC,iBAAiB;IAmBzB,OAAO,CAAC,wBAAwB;IA4BhC;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IAoB1B,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,cAAc;IAgCtB,OAAO,CAAC,gBAAgB;IAoCxB,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,mBAAmB;IAe3B,OAAO,CAAC,uBAAuB;IAS/B,OAAO,CAAC,qBAAqB;IAmB7B,OAAO,CAAC,yBAAyB;IAMjC,OAAO,CAAC,wBAAwB;IAkChC,OAAO,CAAC,qBAAqB;IAM7B,OAAO,CAAC,gBAAgB;IASxB,SAAS,CAAC,qBAAqB,CAAC,UAAU,EAAE,UAAU,EAAE,cAAc,GAAE,SAAuB,GAAG,SAAS,CAK1G;IAED,SAAS,CAAC,mBAAmB,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,CAIxD;IAED,OAAO,CAAC,0BAA0B;IAKlC,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,uBAAuB;IAiC/B,OAAO,CAAC,kCAAkC;IAc1C,OAAO,CAAC,6BAA6B;IAarC,OAAO,CAAC,0BAA0B;IASlC,OAAO,CAAC,UAAU;IA+FlB,OAAO,CAAC,SAAS;IAiTjB,OAAO,CAAC,wBAAwB;IAgBhC,OAAO,CAAC,gBAAgB;IAkHxB;;;;OAIG;IACH,OAAO,CAAC,4BAA4B;IA6BpC;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,qBAAqB;IAa7B,OAAO,CAAC,mBAAmB;IAU3B,kFAAkF;IAClF,OAAO,CAAC,8BAA8B;IActC,OAAO,CAAC,kBAAkB;IA0a1B,OAAO,CAAC,cAAc;IA6DtB,OAAO,CAAC,eAAe;IA+DvB,0FAA0F;IAC1F,OAAO,CAAC,qBAAqB;IAwD7B,OAAO,CAAC,mBAAmB;IA4kB3B,OAAO,CAAC,kBAAkB;IA4B1B,OAAO,CAAC,kBAAkB;IAuE1B,OAAO,CAAC,WAAW;IAwXnB;;;;;;;OAOG;IACH,OAAO,CAAC,0BAA0B;IAalC,OAAO,CAAC,wBAAwB;IAehC,OAAO,CAAC,UAAU;IAgFlB,OAAO,CAAC,YAAY;IA8BpB,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,qBAAqB;IAK7B;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,wBAAwB;IAYhC,OAAO,CAAC,SAAS;IAwCjB,OAAO,CAAC,YAAY;IAqBpB,OAAO,CAAC,SAAS;IAwCjB,OAAO,CAAC,sBAAsB;IAK9B,OAAO,CAAC,cAAc;IAsDtB,OAAO,CAAC,mBAAmB;IA6B3B,OAAO,CAAC,0BAA0B;IAKlC,OAAO,CAAC,4BAA4B;IAwCpC,OAAO,CAAC,iBAAiB;IAIzB,SAAS,CAAC,sBAAsB,CAC9B,SAAS,EAAE,IAAI,CAAC,mBAAmB,EAAE,YAAY,GAAG,eAAe,CAAC,GAAG;QAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GACrG,SAAS,CASX;IAED,OAAO,CAAC,4BAA4B;IAQpC,OAAO,CAAC,YAAY;IAmBpB,OAAO,CAAC,kBAAkB;IAuB1B,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,uBAAuB;IAkC/B,OAAO,CAAC,yBAAyB;IAgBjC,OAAO,CAAC,gCAAgC;IAOxC,OAAO,CAAC,UAAU;IA8BlB,SAAS,CAAC,YAAY,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAEpG;IAED,SAAS,CAAC,oBAAoB,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAE5G;IAED,OAAO,CAAC,kBAAkB;IAoH1B,8FAA8F;IAC9F,OAAO,CAAC,qBAAqB;IAU7B,4FAA4F;IAC5F,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,sBAAsB;IAK9B,OAAO,CAAC,kBAAkB;IAa1B,OAAO,CAAC,oBAAoB;IAgB5B,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,gBAAgB;IA0BxB;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,wBAAwB;IAUhC,OAAO,CAAC,uBAAuB;IAQ/B,OAAO,CAAC,uBAAuB;IAe/B,OAAO,CAAC,2BAA2B;IAuBnC,OAAO,CAAC,4BAA4B;IAmCpC,OAAO,CAAC,iBAAiB;IAczB,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,GAAG,IAAI,CA2BvE;IAED;;;;;;OAMG;IACH,OAAO,CAAC,wBAAwB;IAmBhC,4EAA4E;IAC5E,OAAO,CAAC,0BAA0B;IAkBlC,sFAAsF;IACtF,OAAO,CAAC,oBAAoB;IAwB5B,OAAO,CAAC,oBAAoB;IAS5B,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,GAAG,IAAI,CAgEzF;IAED;;;;;;;;OAQG;IACH,OAAO,CAAC,0BAA0B;IAkBlC;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,2BAA2B;IAenC,OAAO,CAAC,wBAAwB;IAchC,OAAO,CAAC,gCAAgC;IAsDxC,OAAO,CAAC,sBAAsB;IAU9B,OAAO,CAAC,oBAAoB;IAsB5B,OAAO,CAAC,kCAAkC;IAmB1C,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,uBAAuB;IAM/B,OAAO,CAAC,wBAAwB;IAOhC,OAAO,CAAC,aAAa;IAwBrB,OAAO,CAAC,gBAAgB;IAsBxB,OAAO,CAAC,cAAc;IAetB,OAAO,CAAC,mBAAmB;IAsB3B,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,kBAAkB;IAe1B,qFAAqF;IACrF,OAAO,CAAC,wBAAwB;IAahC;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE;QAAE,IAAI,EAAE,WAAW,CAAA;KAAE,CAAC,GAAG,kBAAkB,GAAG,IAAI,CAIlF;IAED;;;;OAIG;IACH,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAelE;IAED,OAAO,CAAC,sBAAsB;IAS9B,OAAO,CAAC,0BAA0B;IAIlC,OAAO,CAAC,8BAA8B;IAiCtC,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,wBAAwB;IAkBhC,SAAS,CAAC,iBAAiB,CAAC,SAAS,EAAE,aAAa,GAAG,IAAI,GAAG,SAAS,CAEtE;IAED,SAAS,CAAC,uBAAuB,CAAC,SAAS,EAAE,aAAa,GAAG,SAAS,CAQrE;IAED,SAAS,CAAC,0BAA0B,CAAC,SAAS,EAAE,aAAa,GAAG,IAAI,GAAG,SAAS,CAG/E;IAED,SAAS,CAAC,aAAa,CAAC,SAAS,EAAE,aAAa,GAAG,IAAI,GAAG,SAAS,CAElE;IAED,SAAS,CAAC,sBAAsB,CAAC,SAAS,EAAE,aAAa,GAAG,IAAI,GAAG,SAAS,CAE3E;IAED,OAAO,CAAC,mBAAmB;IAmG3B,SAAS,CAAC,qBAAqB,CAC7B,SAAS,EAAE,aAAa,EACxB,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,aAAa,KAAK,SAAS,GAChD,OAAO,CAoKT;IAED;;;;;;OAMG;IACH,OAAO,CAAC,sBAAsB;IAY9B,OAAO,CAAC,0BAA0B;IAIlC,8FAA8F;IAC9F,OAAO,CAAC,iBAAiB;IAOzB,yEAAyE;IACzE,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,iCAAiC;IAgBzC;;;;;;OAMG;IACH,OAAO,CAAC,0BAA0B;IA+HlC;;;;;OAKG;IACH,OAAO,CAAC,+BAA+B;IA0DvC,8EAA8E;IAC9E,OAAO,CAAC,oBAAoB;IAS5B,SAAS,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,aAAa,GAAG,IAAI,CAE/E;IAED,SAAS,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,aAAa,GAAG,IAAI,CAExF;IAED,OAAO,CAAC,mBAAmB;IA2H3B,OAAO,CAAC,sBAAsB;IAM9B,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,2BAA2B;IA+BnC,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,yBAAyB;IAKjC,OAAO,CAAC,sBAAsB;IA0B9B,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,wBAAwB;IAShC,OAAO,CAAC,mBAAmB;IAyB3B,OAAO,CAAC,eAAe;IAoBvB,OAAO,CAAC,sBAAsB;IAc9B,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,0BAA0B;IAYlC,OAAO,CAAC,qBAAqB;IAyC7B,OAAO,CAAC,qBAAqB;IAI7B,6HAA6H;IAC7H,OAAO,CAAC,wBAAwB;IAehC,6GAA6G;IAC7G,OAAO,CAAC,gBAAgB;IAUxB,gHAAgH;IAChH,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,CAAC,yBAAyB;IAgBjC,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,OAAO;IAiBf,OAAO,CAAC,2BAA2B;IAYnC,OAAO,CAAC,uBAAuB;IAK/B,OAAO,CAAC,yBAAyB;IAMjC,OAAO,CAAC,yBAAyB;IAiBjC,OAAO,CAAC,yBAAyB;IA2BjC,SAAS,CAAC,cAAc,CACtB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,SAAS,EACf,eAAe,EAAE,IAAI,EACrB,QAAQ,UAAQ,EAChB,YAAY,YAAO,EACnB,YAAY,CAAC,EAAE,MAAM,GACpB,IAAI,CAwEN;IAKD,OAAO,CAAC,2BAA2B;IAMnC,OAAO,CAAC,2BAA2B;IASnC,OAAO,CAAC,8BAA8B;IAetC,0FAA0F;IAC1F,SAAS,CAAC,wBAAwB,IAAI,OAAO,CAE5C;IAED,SAAS,CAAC,8BAA8B,IAAI,OAAO,CAKlD;IAED,8FAA8F;IAC9F,+BAA+B,IAAI,SAAS,wBAAwB,EAAE,CAErE;IAUD,OAAO,CAAC,sBAAsB;IAa9B,OAAO,CAAC,iBAAiB;IAIzB;;;;OAIG;IACH,iBAAiB,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,CAE5C;IAID,SAAS,CAAC,2BAA2B,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,OAAO,GAAG,MAAgB,GAAG,IAAI,CAK1F;IAED,SAAS,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,CAEnE;IAED,OAAO,CAAC,qBAAqB;IAK7B,SAAS,CAAC,iBAAiB,CAAC,QAAQ,EAAE,SAAS,GAAG,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAQ/E;IAED,OAAO,CAAC,sBAAsB;IAa9B,OAAO,CAAC,uBAAuB;IAkG/B,gGAAgG;IAChG,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,sBAAsB;IAe9B,OAAO,CAAC,sBAAsB;IA+B9B,SAAS,CAAC,wBAAwB,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,GAAG,IAAI,CAgBzE;IAED,OAAO,CAAC,mBAAmB;IAc3B,OAAO,CAAC,iBAAiB;IAoCzB,OAAO,CAAC,cAAc;IAmGtB,OAAO,CAAC,yBAAyB;IA0BjC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAU7C;IAED,SAAS,CAAC,uBAAuB,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,sBAAsB,GAAG,OAAO,GAAG,OAAO,CAEzG;IAED,SAAS,CAAC,eAAe,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,aAAa,EAAE,IAAI,GAAG,IAAI,CAmB7F;IAED,OAAO,CAAC,iBAAiB;IAyCzB,OAAO,CAAC,gBAAgB;IAexB;;;;;;;OAOG;IACH,OAAO,CAAC,4BAA4B;IAapC,OAAO,CAAC,qBAAqB;IA0B7B,uGAAuG;IACvG,OAAO,CAAC,2BAA2B;IAiBnC,6FAA6F;IAC7F,OAAO,CAAC,6BAA6B;IAyBrC,OAAO,CAAC,sBAAsB;IAW9B,OAAO,CAAC,8BAA8B;IAWtC,OAAO,CAAC,gBAAgB;IAsBxB,OAAO,CAAC,sBAAsB;IAc9B,OAAO,CAAC,mBAAmB;IAa3B,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,0BAA0B;IAQlC,OAAO,CAAC,8BAA8B;IAetC,OAAO,CAAC,0BAA0B;IASlC,OAAO,CAAC,oCAAoC;IAQ5C,OAAO,CAAC,uCAAuC;IAa/C,OAAO,CAAC,iCAAiC;IAezC,OAAO,CAAC,mCAAmC;IA0B3C,gHAAgH;IAChH,OAAO,CAAC,uBAAuB;IAc/B,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,gCAAgC;IA0BxC,OAAO,CAAC,iBAAiB;IAuBzB,OAAO,CAAC,gBAAgB;IAexB,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,sBAAsB;IAqB9B,OAAO,CAAC,qBAAqB;IAwB7B,OAAO,CAAC,4BAA4B;IAKpC,OAAO,CAAC,sBAAsB;IAY9B,OAAO,CAAC,oBAAoB;IAO5B,OAAO,CAAC,0BAA0B;IAwBlC,OAAO,CAAC,8BAA8B;IAWtC,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,4BAA4B;IAqBpC,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,gBAAgB;IAaxB;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,sBAAsB;IAwB9B,SAAS,CAAC,UAAU,IAAI,IAAI,CAI3B;IAED,SAAS,CAAC,SAAS,IAAI,IAAI,CAI1B;CACF"}
package/dist/analyzer.js CHANGED
@@ -463,6 +463,12 @@ export class Analyzer {
463
463
  namedTypes = new Map();
464
464
  namedTypeReadonlyFields = new Map();
465
465
  namedTypeIdentities = new Map();
466
+ /** Direct record bases by local name or canonical identity. Field tables remain flattened separately. */
467
+ namedTypeBases = new Map();
468
+ /** Fields contributed by a base, used to reject redeclaration in the child body. */
469
+ inheritedTypeFields = new WeakMap();
470
+ /** Analyzer-owned complete field tables passed to the emitter for runtime validation. */
471
+ typeDeclarationFields = new Map();
466
472
  /** D55: generic record declarations in scope, by the name this module writes. */
467
473
  genericTypes = new Map();
468
474
  /** The same declarations by identity, so a substituted application can be re-instantiated. */
@@ -733,6 +739,8 @@ export class Analyzer {
733
739
  this.namedTypeReadonlyFields.set(name, fields);
734
740
  for (const [name, identity] of context.namedTypeIdentities ?? [])
735
741
  this.namedTypeIdentities.set(name, identity);
742
+ for (const [name, base] of context.namedTypeBases ?? [])
743
+ this.namedTypeBases.set(name, base);
736
744
  for (const [name, info] of context.genericTypes ?? []) {
737
745
  // The context carries each template twice — under the name this module
738
746
  // writes, and under its identity for the modules reached without an
@@ -908,7 +916,22 @@ export class Analyzer {
908
916
  : action();
909
917
  let valid = withParameters(() => declaration.kind === "TypeAliasDeclaration"
910
918
  ? this.validateTypeReference(declaration.target)
911
- : declaration.fields.map((field) => this.validateTypeReference(field.type)).every(Boolean));
919
+ : [
920
+ ...(declaration.base ? [this.validateTypeReference(declaration.base)] : []),
921
+ ...declaration.fields.map((field) => this.validateTypeReference(field.type)),
922
+ ].every(Boolean));
923
+ if (valid && declaration.kind === "TypeDeclaration" && declaration.base) {
924
+ withParameters(() => {
925
+ const base = this.resolveAnnotation(declaration.base);
926
+ const fields = base.kind === "named" && !base.readonlyView
927
+ ? this.fieldsOf(base.identity ?? base.name)
928
+ : null;
929
+ if (base.kind === "named" && fields !== null && !this.isPrimitiveType(base.name))
930
+ return;
931
+ this.typeError(`Type '${declaration.name}' can only extend one concrete record type; ${describeType(base)} is not a record declaration`, declaration.base.span);
932
+ valid = false;
933
+ });
934
+ }
912
935
  if (valid) {
913
936
  withParameters(() => {
914
937
  const runtimeCheckedReferences = declaration.kind === "TypeAliasDeclaration"
@@ -948,7 +971,10 @@ export class Analyzer {
948
971
  continue;
949
972
  const syntaxes = declaration.kind === "TypeAliasDeclaration"
950
973
  ? [declaration.target.syntax]
951
- : declaration.fields.map((field) => field.type.syntax);
974
+ : [
975
+ ...(declaration.base ? [declaration.base.syntax] : []),
976
+ ...declaration.fields.map((field) => field.type.syntax),
977
+ ];
952
978
  if (!syntaxes.some((syntax) => this.typeSyntaxReferencesInvalidDeclaration(syntax)))
953
979
  continue;
954
980
  this.invalidDeclaredTypes.add(declaration.name);
@@ -1293,6 +1319,7 @@ export class Analyzer {
1293
1319
  enumNames: new Set(this.enums.keys()),
1294
1320
  runtimeTypeObjectNames: this.runtimeTypeObjectNames,
1295
1321
  genericTypeNames: new Set(this.genericTypes.keys()),
1322
+ typeDeclarationFields: this.typeDeclarationFields,
1296
1323
  optionalMembers: this.optionalMembers,
1297
1324
  optionalCalls: this.optionalCalls,
1298
1325
  optionalIndexes: this.optionalIndexes,
@@ -1352,6 +1379,18 @@ export class Analyzer {
1352
1379
  analyzedClasses() {
1353
1380
  return this.classes;
1354
1381
  }
1382
+ analyzedNamedTypes() {
1383
+ return this.namedTypes;
1384
+ }
1385
+ analyzedNamedTypeReadonlyFields() {
1386
+ return this.namedTypeReadonlyFields;
1387
+ }
1388
+ analyzedNamedTypeBases() {
1389
+ return this.namedTypeBases;
1390
+ }
1391
+ analyzedGenericTypes() {
1392
+ return this.genericTypes;
1393
+ }
1355
1394
  semanticExpressions() {
1356
1395
  return {
1357
1396
  types: this.semanticExpressionTypes,
@@ -2037,56 +2076,126 @@ export class Analyzer {
2037
2076
  }
2038
2077
  return type;
2039
2078
  }
2040
- /**
2041
- * D55 rule 120: generic record declarations are registered in two steps —
2042
- * every name and parameter list first, then the field types. A field type may
2043
- * apply another generic record, or this one, and neither could be resolved if
2044
- * the declarations were read one at a time.
2045
- */
2046
- registerGenericTypeShapes(program) {
2047
- const declarations = [];
2048
- for (const statement of program.body) {
2049
- if (statement.kind !== "TypeDeclaration" || !statement.typeParameters?.length)
2050
- continue;
2051
- if (this.genericTypes.has(statement.name))
2052
- continue;
2053
- const fields = new Map();
2054
- const readonlyFields = new Set(statement.fields.filter((field) => field.readonly).map((field) => field.name));
2055
- const info = {
2056
- identity: this.namedTypeIdentities.get(statement.name) ?? statement.name,
2057
- name: statement.name,
2058
- parameterNames: statement.typeParameters.map((parameter) => parameter.name),
2059
- parameterBounds: statement.typeParameters.map((parameter) => parameter.bound && isTypeParameterBound(parameter.bound) ? parameter.bound : null),
2060
- fields,
2061
- ...(readonlyFields.size > 0 ? { readonlyFields } : {}),
2062
- };
2063
- this.genericTypes.set(statement.name, info);
2064
- this.genericTypesByIdentity.set(info.identity, info);
2065
- declarations.push({ statement, fields });
2066
- }
2067
- for (const { statement, fields } of declarations) {
2068
- this.withTypeParameterFrame(this.typeParameterFrame(statement.typeParameters), () => {
2069
- for (const field of statement.fields)
2070
- fields.set(field.name, this.resolveAnnotation(field.type));
2071
- });
2072
- }
2073
- }
2074
2079
  registerTypeShapes(program) {
2075
- this.registerGenericTypeShapes(program);
2080
+ const declarations = new Map();
2081
+ const concrete = new Map();
2082
+ const generic = new Map();
2083
+ // Register every name and mutable placeholder first. A base may be declared
2084
+ // later, and a generic base may mention the child's own parameters.
2076
2085
  for (const statement of program.body) {
2077
- if (statement.kind !== "TypeDeclaration" || statement.typeParameters?.length) {
2086
+ if (statement.kind !== "TypeDeclaration")
2078
2087
  continue;
2079
- }
2088
+ declarations.set(statement.name, statement);
2080
2089
  const fields = new Map();
2081
2090
  const readonlyFields = new Set();
2082
- for (const field of statement.fields) {
2083
- fields.set(field.name, this.resolveAnnotation(field.type));
2084
- if (field.readonly)
2085
- readonlyFields.add(field.name);
2091
+ if (statement.typeParameters?.length) {
2092
+ const info = {
2093
+ identity: this.namedTypeIdentities.get(statement.name) ?? statement.name,
2094
+ name: statement.name,
2095
+ parameterNames: statement.typeParameters.map((parameter) => parameter.name),
2096
+ parameterBounds: statement.typeParameters.map((parameter) => parameter.bound && isTypeParameterBound(parameter.bound) ? parameter.bound : null),
2097
+ fields,
2098
+ readonlyFields,
2099
+ };
2100
+ this.genericTypes.set(statement.name, info);
2101
+ this.genericTypesByIdentity.set(info.identity, info);
2102
+ generic.set(statement.name, { info, fields, readonlyFields });
2086
2103
  }
2087
- this.namedTypes.set(statement.name, fields);
2088
- if (readonlyFields.size > 0)
2104
+ else {
2105
+ this.namedTypes.set(statement.name, fields);
2089
2106
  this.namedTypeReadonlyFields.set(statement.name, readonlyFields);
2107
+ concrete.set(statement.name, { fields, readonlyFields });
2108
+ }
2109
+ }
2110
+ const resolved = new Set();
2111
+ const resolving = [];
2112
+ const localIdentity = (name) => this.namedTypeIdentities.get(name)
2113
+ ?? (this.modulePath ? `velar:${this.modulePath}#type:${name}` : name);
2114
+ const declarationName = (type) => type.kind === "named"
2115
+ ? type.application?.name ?? type.name
2116
+ : null;
2117
+ const declarationKey = (type) => {
2118
+ if (type.kind !== "named")
2119
+ return null;
2120
+ const name = type.application?.name ?? type.name;
2121
+ if (declarations.has(name))
2122
+ return localIdentity(name);
2123
+ return type.application?.declaration ?? type.identity ?? type.name;
2124
+ };
2125
+ const resolveDeclaration = (statement) => {
2126
+ if (resolved.has(statement.name))
2127
+ return;
2128
+ if (resolving.includes(statement.name))
2129
+ return;
2130
+ resolving.push(statement.name);
2131
+ const target = concrete.get(statement.name) ?? generic.get(statement.name);
2132
+ const withParameters = (action) => statement.typeParameters?.length
2133
+ ? this.withTypeParameterFrame(this.typeParameterFrame(statement.typeParameters), action)
2134
+ : action();
2135
+ withParameters(() => {
2136
+ let inherited = new Map();
2137
+ let inheritedReadonly = new Set();
2138
+ if (statement.base) {
2139
+ let base = this.resolveAnnotation(statement.base);
2140
+ const baseName = declarationName(base);
2141
+ const localBase = baseName ? declarations.get(baseName) : undefined;
2142
+ if (localBase && !resolving.includes(localBase.name)) {
2143
+ resolveDeclaration(localBase);
2144
+ base = this.resolveAnnotation(statement.base);
2145
+ }
2146
+ this.namedTypeBases.set(statement.name, base);
2147
+ this.namedTypeBases.set(localIdentity(statement.name), base);
2148
+ const baseFields = base.kind === "named" ? this.fieldsOf(base.identity ?? base.name) : null;
2149
+ if (baseFields)
2150
+ inherited = new Map(baseFields);
2151
+ const readonly = base.kind === "named" ? this.readonlyFieldsOf(base.identity ?? base.name) : null;
2152
+ if (readonly)
2153
+ inheritedReadonly = new Set(readonly);
2154
+ }
2155
+ this.inheritedTypeFields.set(statement, new Set(inherited.keys()));
2156
+ for (const [name, type] of inherited)
2157
+ target.fields.set(name, type);
2158
+ for (const name of inheritedReadonly)
2159
+ target.readonlyFields.add(name);
2160
+ for (const field of statement.fields) {
2161
+ target.fields.set(field.name, this.resolveAnnotation(field.type));
2162
+ if (field.readonly)
2163
+ target.readonlyFields.add(field.name);
2164
+ }
2165
+ this.typeDeclarationFields.set(statement.span.start, [...target.fields].map(([name, type]) => ({ name, type })));
2166
+ });
2167
+ resolving.pop();
2168
+ resolved.add(statement.name);
2169
+ };
2170
+ for (const statement of declarations.values())
2171
+ resolveDeclaration(statement);
2172
+ // The direct edge is preserved separately from the flattened fields, so a
2173
+ // cycle that crosses module boundaries cannot stabilize into an apparently
2174
+ // valid structural map during the project interface fixed point.
2175
+ for (const statement of declarations.values()) {
2176
+ if (!statement.base)
2177
+ continue;
2178
+ const start = localIdentity(statement.name);
2179
+ const path = [start];
2180
+ let current = start;
2181
+ const seen = new Set([start]);
2182
+ while (true) {
2183
+ const base = this.namedTypeBases.get(current);
2184
+ const next = base ? declarationKey(base) : null;
2185
+ if (!next)
2186
+ break;
2187
+ path.push(next);
2188
+ if (next === start) {
2189
+ const display = path.map((identity) => identity.replace(/^.*#type:/u, "")).join(" -> ");
2190
+ this.diagnostics.push(diagnostic("VEL4017", `Type inheritance is cyclic: ${display}`, statement.base.span));
2191
+ this.invalidDeclaredTypes.add(statement.name);
2192
+ break;
2193
+ }
2194
+ if (seen.has(next))
2195
+ break;
2196
+ seen.add(next);
2197
+ current = next;
2198
+ }
2090
2199
  }
2091
2200
  }
2092
2201
  registerEnumShapes(program) {
@@ -3262,7 +3371,11 @@ export class Analyzer {
3262
3371
  // so a `type` is judged by the same procedure a `def` is.
3263
3372
  this.checkTypeParameterDeclarations(statement.typeParameters);
3264
3373
  const seen = new Set();
3374
+ const inherited = this.inheritedTypeFields.get(statement) ?? new Set();
3265
3375
  for (const field of statement.fields) {
3376
+ if (inherited.has(field.name)) {
3377
+ this.diagnostics.push(diagnostic("VEL4004", `Type '${statement.name}' cannot redeclare inherited field '${field.name}'; inherited record fields keep their original contract`, field.span));
3378
+ }
3266
3379
  if (seen.has(field.name)) {
3267
3380
  this.diagnostics.push(diagnostic("VEL4004", `Type '${statement.name}' declares '${field.name}' more than once`, field.span));
3268
3381
  }