behavior-contracts 0.4.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/README.md +78 -29
  2. package/dist/behavior.d.ts +7 -0
  3. package/dist/behavior.d.ts.map +1 -1
  4. package/dist/behavior.js.map +1 -1
  5. package/dist/builder.d.ts.map +1 -1
  6. package/dist/builder.js +10 -3
  7. package/dist/builder.js.map +1 -1
  8. package/dist/generator/async-plan.d.ts +78 -0
  9. package/dist/generator/async-plan.d.ts.map +1 -0
  10. package/dist/generator/async-plan.js +116 -0
  11. package/dist/generator/async-plan.js.map +1 -0
  12. package/dist/generator/core.d.ts +35 -0
  13. package/dist/generator/core.d.ts.map +1 -1
  14. package/dist/generator/core.js +1 -0
  15. package/dist/generator/core.js.map +1 -1
  16. package/dist/generator/{emit-straightline-typed-go.d.ts → emit-shared-go-typed.d.ts} +28 -17
  17. package/dist/generator/emit-shared-go-typed.d.ts.map +1 -0
  18. package/dist/generator/emit-shared-go-typed.js +572 -0
  19. package/dist/generator/emit-shared-go-typed.js.map +1 -0
  20. package/dist/generator/emit-shared-go.d.ts +29 -0
  21. package/dist/generator/emit-shared-go.d.ts.map +1 -0
  22. package/dist/generator/{emit-straightline-go.js → emit-shared-go.js} +17 -31
  23. package/dist/generator/emit-shared-go.js.map +1 -0
  24. package/dist/generator/{emit-straightline-typed-rust.d.ts → emit-shared-rust-typed.d.ts} +27 -17
  25. package/dist/generator/emit-shared-rust-typed.d.ts.map +1 -0
  26. package/dist/generator/emit-shared-rust-typed.js +576 -0
  27. package/dist/generator/emit-shared-rust-typed.js.map +1 -0
  28. package/dist/generator/{emit-straightline-rust.d.ts → emit-shared-rust.d.ts} +1 -36
  29. package/dist/generator/emit-shared-rust.d.ts.map +1 -0
  30. package/dist/generator/{emit-straightline-rust.js → emit-shared-rust.js} +7 -28
  31. package/dist/generator/emit-shared-rust.js.map +1 -0
  32. package/dist/generator/emit-shared-typescript.d.ts +12 -0
  33. package/dist/generator/emit-shared-typescript.d.ts.map +1 -0
  34. package/dist/generator/{emit-straightline-typescript.js → emit-shared-typescript.js} +9 -30
  35. package/dist/generator/emit-shared-typescript.js.map +1 -0
  36. package/dist/generator/emit-straightline-typed-typescript.d.ts +1 -1
  37. package/dist/generator/emit-straightline-typed-typescript.d.ts.map +1 -1
  38. package/dist/generator/emit-straightline-typed-typescript.js +1 -1
  39. package/dist/generator/emit-straightline-typed-typescript.js.map +1 -1
  40. package/dist/generator/emit-typed-native-go.d.ts +63 -0
  41. package/dist/generator/emit-typed-native-go.d.ts.map +1 -0
  42. package/dist/generator/emit-typed-native-go.js +2260 -0
  43. package/dist/generator/emit-typed-native-go.js.map +1 -0
  44. package/dist/generator/emit-typed-native-rust.d.ts +53 -0
  45. package/dist/generator/emit-typed-native-rust.d.ts.map +1 -0
  46. package/dist/generator/emit-typed-native-rust.js +2123 -0
  47. package/dist/generator/emit-typed-native-rust.js.map +1 -0
  48. package/dist/generator/index.d.ts +4 -12
  49. package/dist/generator/index.d.ts.map +1 -1
  50. package/dist/generator/index.js +16 -52
  51. package/dist/generator/index.js.map +1 -1
  52. package/dist/generator/native-expr.d.ts +120 -0
  53. package/dist/generator/native-expr.d.ts.map +1 -0
  54. package/dist/generator/native-expr.js +456 -0
  55. package/dist/generator/native-expr.js.map +1 -0
  56. package/dist/generator/straightline.d.ts +46 -0
  57. package/dist/generator/straightline.d.ts.map +1 -1
  58. package/dist/generator/straightline.js +65 -0
  59. package/dist/generator/straightline.js.map +1 -1
  60. package/dist/generator/typed.d.ts.map +1 -1
  61. package/dist/generator/typed.js +8 -0
  62. package/dist/generator/typed.js.map +1 -1
  63. package/dist/guard.js +14 -0
  64. package/dist/guard.js.map +1 -1
  65. package/dist/index.d.ts +2 -2
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.js +1 -1
  68. package/dist/index.js.map +1 -1
  69. package/dist/plan.d.ts +6 -2
  70. package/dist/plan.d.ts.map +1 -1
  71. package/dist/plan.js +4 -0
  72. package/dist/plan.js.map +1 -1
  73. package/package.json +1 -1
  74. package/dist/generator/emit-go.d.ts +0 -19
  75. package/dist/generator/emit-go.d.ts.map +0 -1
  76. package/dist/generator/emit-go.js +0 -79
  77. package/dist/generator/emit-go.js.map +0 -1
  78. package/dist/generator/emit-raw-abi-go.d.ts +0 -45
  79. package/dist/generator/emit-raw-abi-go.d.ts.map +0 -1
  80. package/dist/generator/emit-raw-abi-go.js +0 -345
  81. package/dist/generator/emit-raw-abi-go.js.map +0 -1
  82. package/dist/generator/emit-raw-abi-rust.d.ts +0 -45
  83. package/dist/generator/emit-raw-abi-rust.d.ts.map +0 -1
  84. package/dist/generator/emit-raw-abi-rust.js +0 -380
  85. package/dist/generator/emit-raw-abi-rust.js.map +0 -1
  86. package/dist/generator/emit-rust.d.ts +0 -25
  87. package/dist/generator/emit-rust.d.ts.map +0 -1
  88. package/dist/generator/emit-rust.js +0 -125
  89. package/dist/generator/emit-rust.js.map +0 -1
  90. package/dist/generator/emit-straightline-go.d.ts +0 -58
  91. package/dist/generator/emit-straightline-go.d.ts.map +0 -1
  92. package/dist/generator/emit-straightline-go.js.map +0 -1
  93. package/dist/generator/emit-straightline-php.d.ts +0 -46
  94. package/dist/generator/emit-straightline-php.d.ts.map +0 -1
  95. package/dist/generator/emit-straightline-php.js +0 -941
  96. package/dist/generator/emit-straightline-php.js.map +0 -1
  97. package/dist/generator/emit-straightline-python.d.ts +0 -36
  98. package/dist/generator/emit-straightline-python.d.ts.map +0 -1
  99. package/dist/generator/emit-straightline-python.js +0 -855
  100. package/dist/generator/emit-straightline-python.js.map +0 -1
  101. package/dist/generator/emit-straightline-rust.d.ts.map +0 -1
  102. package/dist/generator/emit-straightline-rust.js.map +0 -1
  103. package/dist/generator/emit-straightline-typed-go.d.ts.map +0 -1
  104. package/dist/generator/emit-straightline-typed-go.js +0 -1111
  105. package/dist/generator/emit-straightline-typed-go.js.map +0 -1
  106. package/dist/generator/emit-straightline-typed-rust.d.ts.map +0 -1
  107. package/dist/generator/emit-straightline-typed-rust.js +0 -1153
  108. package/dist/generator/emit-straightline-typed-rust.js.map +0 -1
  109. package/dist/generator/emit-straightline-typescript.d.ts +0 -47
  110. package/dist/generator/emit-straightline-typescript.d.ts.map +0 -1
  111. package/dist/generator/emit-straightline-typescript.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import { emitDocLiteralCompact } from "./literal.js";
2
- import { emitStraightlineModule, buildComponentPlan, sequentialOrder, analyzeSequentialOps, classifyExpr, isScopeFree, componentNeedsScope, } from "./straightline.js";
2
+ import { sequentialOrder, analyzeSequentialOps, classifyExpr, isScopeFree, componentNeedsScope, } from "./straightline.js";
3
3
  /** runtime package alias(生成コード内)。emit-go.ts と同じ `dslcontracts`。 */
4
4
  const PKG = "dslcontracts";
5
5
  /** scope 式(RunPlan 経路のみ)。逐次経路は進行形 scope ローカル `scope` を使う。 */
@@ -7,11 +7,15 @@ const SCOPE = "baseScope()";
7
7
  /** map 本体の要素 scope 式(RunPlan 経路の map 展開用 — 逐次経路は per-map ローカル)。 */
8
8
  const MAP_SCOPE = "mscope()";
9
9
  /**
10
- * 生成中 module の json.Number 使用 / helper 要否の構造的トラッカー(emitModule が emit 前に reset)。
10
+ * 生成中 module の helper 要否の構造的トラッカー(emitModule が emit 前に reset)。
11
11
  * 生成テキストの substring 判定(文字列リテラル内容に誤反応)はしない。
12
+ *
13
+ * bc no-json invariant(オーナー指示・0.5.0): 直線生成 Go は encoding/json を import
14
+ * しない。runtime import は JSON-free な coderuntime サブパッケージ(defaultRuntimeImport)。
15
+ * IR リテラル(JObjOf / json.Number)は直線経路に存在せず、万一 leak しても coderuntime
16
+ * には JNode が無いのでコンパイルが LOUD に落ちる(黙って通らない)。
12
17
  */
13
18
  const usage = {
14
- json: false,
15
19
  runPlan: false,
16
20
  slBind: false,
17
21
  slField: false,
@@ -766,11 +770,10 @@ function emitPlanDrivenGoFn(plan) {
766
770
  ? emitBehaviorPlanLiteral(plan.component.plan)
767
771
  : `(*${PKG}.ExecutionPlanSpec)(nil)`;
768
772
  const output = emitExpr(plan.component.output, SCOPE);
769
- // arms は buildComponentPlan 由来の op.expr(emitModule の reset より前に生成)。json/slField/slPart/
770
- // slConcat の使用は実 emit テキストで確定させる(arms は我々の生成した go 式で、user 由来 string は
771
- // JObjOf/リテラルの内側にあるため token 出現=実使用で安全)。
772
- if (/json\.Number\(|json\.RawMessage/.test(arms))
773
- usage.json = true;
773
+ // arms は buildComponentPlan 由来の op.expr(emitModule の reset より前に生成)。slPart/slConcat の
774
+ // 使用は実 emit テキストで確定させる。json.Number の追跡は撤去済み(bc no-json invariant: 直線経路は
775
+ // IR リテラルを emit しないので encoding/json import は常に不要 — 万一 leak すれば coderuntime に
776
+ // JNode/json.Number の受け皿が無くコンパイルが LOUD に落ちる)。
774
777
  // slRef/slRefOpt/slConcat/slPart は RunPlan-path helper(usage.slPart 枝で定義)。逐次 slFieldVE
775
778
  // (usage.slField 枝・slVE 型必須)ではないので slPart を立てる。
776
779
  if (/slRef(Opt)?\(|slConcat\(\[\]slPart\{/.test(arms))
@@ -857,7 +860,7 @@ function emitComponent(plan, _ctx) {
857
860
  return emitPlanDrivenGoFn(plan);
858
861
  }
859
862
  function emitModule(plans, ctx) {
860
- const { fingerprint, specVersions, componentNames, runtimeImport } = ctx;
863
+ const { specVersions, componentNames, runtimeImport } = ctx;
861
864
  const names = componentNames.map((n) => JSON.stringify(n)).join(", ");
862
865
  // buildComponentPlan は逐次経路が使わない op.expr を先に emit するため usage を過大に立てる。
863
866
  // 実 emit 直前で reset し、emitComponent 内の呼び出しだけが import/helper 要否を立てるようにする。
@@ -871,7 +874,6 @@ function emitModule(plans, ctx) {
871
874
  usage.slPart = true;
872
875
  usage.runPlan = true; // sync import
873
876
  }
874
- const usesJson = usage.json;
875
877
  const dispatchArms = plans
876
878
  .map((p) => `\tif name == ${JSON.stringify(p.name)} {\n\t\treturn run_${sanitize(p.name)}(handlers, input)\n\t}`)
877
879
  .join("\n");
@@ -1008,10 +1010,8 @@ func slRefWalk(op string, path []string, scope *${PKG}.Obj) (${PKG}.Value, error
1008
1010
  \t}
1009
1011
  \treturn cur, nil
1010
1012
  }`);
1011
- // 依存 import の構造的判定。
1013
+ // 依存 import の構造的判定(bc no-json invariant: encoding/json は決して emit しない)。
1012
1014
  const imports = [];
1013
- if (usesJson)
1014
- imports.push(`\t"encoding/json"`);
1015
1015
  imports.push(`\t"fmt"`);
1016
1016
  if (usage.slCat || usage.slPart)
1017
1017
  imports.push(`\t"strings"`);
@@ -1031,8 +1031,9 @@ func slRefWalk(op string, path []string, scope *${PKG}.Obj) (${PKG}.Value, error
1031
1031
  // (overflow arithmetic, strict-bool short-circuit, obj/arr construction, checked literals)
1032
1032
  // still route through the A0 Prim* primitives (#36) — the semantics SSoT stays single-
1033
1033
  // sourced. Handlers are ALWAYS injected at the boundary; they are never generated.
1034
- // The portable IR is NOT embedded: this module carries only IRFingerprint + ComponentNames.
1035
- // irFingerprint: ${fingerprint}
1034
+ // The portable IR is NOT embedded: this module carries only ExpectedSpecVersions +
1035
+ // ComponentNames (the IR fingerprint is a BUILD-TIME return on GenerateResult.fingerprint,
1036
+ // not baked into the module — the skew gate lives on the consumer/build side, 0.5.0).
1036
1037
 
1037
1038
  package behaviors
1038
1039
 
@@ -1044,10 +1045,6 @@ ${imports.join("\n")}
1044
1045
  // (fail-closed constant comparison at init).
1045
1046
  var ExpectedSpecVersions = map[string]int64{"behavior": ${specVersions.behavior}, "expression": ${specVersions.expression}, "plan": ${specVersions.plan}}
1046
1047
 
1047
- // IRFingerprint is the FNV-1a 64 fingerprint of the source portable IR
1048
- // (CanonicalJSON discipline, #208), computed at GENERATION time.
1049
- const IRFingerprint = ${JSON.stringify(fingerprint)}
1050
-
1051
1048
  // ComponentNames are the components exposed by Bind(), in IR declaration order.
1052
1049
  var ComponentNames = []string{${names}}
1053
1050
 
@@ -1108,15 +1105,4 @@ export const goStraightlineInternals = {
1108
1105
  sanitize,
1109
1106
  dialect,
1110
1107
  };
1111
- function emit(ctx) {
1112
- return emitStraightlineModule(ctx, dialect, SCOPE);
1113
- }
1114
- export const goStraightlineEmitter = {
1115
- language: "go-straightline",
1116
- fileExtension: ".go",
1117
- defaultRuntimeImport: "github.com/foo-ogawa/behavior-contracts/go",
1118
- filenameHint: "behaviors.straightline.generated.go",
1119
- emit,
1120
- };
1121
- void buildComponentPlan;
1122
- //# sourceMappingURL=emit-straightline-go.js.map
1108
+ //# sourceMappingURL=emit-shared-go.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emit-shared-go.js","sourceRoot":"","sources":["../../src/generator/emit-shared-go.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
1
  /**
2
- * emit-straightline-typed-rust.ts — Rust typed 直線 emitter(bc#48 / Layer B2, 実 de-box)。
2
+ * emit-shared-rust-typed.ts — Rust typed 共有 emit エンジン(旧 emit-straightline-typed-rust.ts, bc#48 / Layer B2)。
3
+ * #90/#99 で rust-typed emitter plugin surface は撤去。この module は native(rust) が消費する共有 typed
4
+ * ヘルパ(rustTypedInternals: typedFieldAccess/materializeExpr/emitMarshallers/emitTypeDecls/serializeTyped 等)のみ。
3
5
  *
4
6
  * typed-codegen.md §4.3/§4.4 の Rust 具体化。B2-ts で decls-only、B2-go(#47)で
5
7
  * runtime-materialization 対応に拡張された {@link TypedMaterializer} seam に **同じ形で乗る**
@@ -36,9 +38,9 @@
36
38
  * `outType`/`outputType` が IR のどこにも無ければ typed 層は emit されず、出力は `rust-straightline` と
37
39
  * byte-identical(後方互換 pin)。
38
40
  */
39
- import type { EmitContext, EmitterPlugin } from "./core.js";
40
- import { type TypePlan, type TypeRef, type TypedMaterializer } from "./typed.js";
41
- import { setRustForceRunPlanImports } from "./emit-straightline-rust.js";
41
+ import type { EmitContext } from "./core.js";
42
+ import { type TypePlan, type TypeRef } from "./typed.js";
43
+ import { setRustForceRunPlanImports } from "./emit-shared-rust.js";
42
44
  import type { Component } from "../behavior.js";
43
45
  /** 可搬スカラ → Rust の具体型名(de-box 後の struct field 型)。int=i64 / float=f64 で区別。 */
44
46
  declare function rustScalar(scalar: "string" | "int" | "float" | "bool" | "null"): string;
@@ -58,13 +60,26 @@ declare function emitTypeDecls(plan: TypePlan): string;
58
60
  declare function emitMarshallers(plan: TypePlan): string;
59
61
  /** テキストブロックを indent 段(4 space/段)だけ字下げする。 */
60
62
  declare function indentBlock(block: string, levels: number): string;
63
+ /**
64
+ * materializeExpr — raw な `&Value` 式 `rawExpr` を型 `ref` の具体 typed 値へ変換する **単一式**(exec 経路の
65
+ * de-box)。named→`marshal_T*(...)?`、scalar/arr/opt→インライン材化 block。呼び側が typed ローカルへ束ねる。
66
+ * これが seam の runtime-materialization hook の Rust 実装本体(go の同型 hook)。
67
+ */
68
+ declare function materializeExpr(rawExpr: string, ref: TypeRef, plan: TypePlan): string;
69
+ /**
70
+ * typedFieldAccess — typed base 式 `baseExpr`(型 `baseRef`)に field path を **struct field 直参照**で辿る。
71
+ * map/obj_get lookup ではなく `.field` 連結(=de-box されている証拠)。辿り着いた TypeRef も返す。
72
+ */
73
+ declare function typedFieldAccess(baseExpr: string, baseRef: TypeRef, fields: string[], plan: TypePlan): {
74
+ expr: string;
75
+ ref: TypeRef;
76
+ };
61
77
  /**
62
78
  * serializeTyped — 具体 typed 値式を canonical 直列化用の動的 Value へ戻す式(観測等価 pin)。exec は
63
79
  * typed のまま進み、component 境界でだけ Value 化して golden と突き合わせる。named→ser_T*、scalar→Value::variant、
64
80
  * arr→要素 ser の map collect、opt→None/Some 分岐。式一発で返す。`typedExpr` は所有値(by-value)想定。
65
81
  */
66
82
  declare function serializeTyped(typedExpr: string, ref: TypeRef, plan: TypePlan): string;
67
- export declare const rustTypedMaterializer: TypedMaterializer;
68
83
  /** 各 named struct を canonical Value(Obj, field は宣言順)へ戻す `ser_T*` を emit(by-value consume)。 */
69
84
  declare function emitSerializers(plan: TypePlan): string;
70
85
  /** 生成コード内の typed ローカル cell 名(materialize 済み struct を RefCell で保持)。 */
@@ -96,16 +111,10 @@ declare function emitMarshalHelpers(): string;
96
111
  /** Default 導出不能な named struct(null 単独型 Value field を持つもの)だけ手書き Default を emit。 */
97
112
  declare function emitDefaults(plan: TypePlan): string;
98
113
  /**
99
- * rustTypedEmitter言語識別子 `rust-typed` emitter plugin(bc#48 B2, 実 de-box)。
100
- * rust-straightline 本体(byte 同一)+ typed 層(struct/marshaller/serializer/struct-native runner)。
101
- * `outType` 無し IR rust-straightline と byte-identical(後方互換)。
102
- */
103
- export declare const rustTypedEmitter: EmitterPlugin;
104
- /**
105
- * rustTypedInternals — shared Rust typed-emit helpers the RAW-ABI emitter (bc#76,
106
- * emit-raw-abi-rust.ts) reuses so boxed and raw paths keep one implementation of the
107
- * type-plan/naming/serializer discipline (only the marshaller data plane and the handler
108
- * dispatch differ between them).
114
+ * rustTypedInternalsshared Rust typed-emit helpers the native emitter (emit-typed-native-rust.ts)
115
+ * reuses so the native de-box path shares one implementation of the type-plan/naming/serializer/
116
+ * marshaller discipline. This module carries NO emitter plugin (#90/#99): the rust-typed and
117
+ * rust-straightline emitter surfaces were removed — rust converges to the native target only.
109
118
  */
110
119
  export declare const rustTypedInternals: {
111
120
  sanitize: (name: string) => string;
@@ -114,6 +123,7 @@ export declare const rustTypedInternals: {
114
123
  renderTypeRef: typeof renderTypeRef;
115
124
  rustScalar: typeof rustScalar;
116
125
  typedCell: typeof typedCell;
126
+ typedFieldAccess: typeof typedFieldAccess;
117
127
  isTypedComponent: typeof isTypedComponent;
118
128
  hasAnyTypeAnnotation: typeof hasAnyTypeAnnotation;
119
129
  collectTypedNodes: typeof collectTypedNodes;
@@ -122,12 +132,12 @@ export declare const rustTypedInternals: {
122
132
  emitSerializers: typeof emitSerializers;
123
133
  emitMarshallers: typeof emitMarshallers;
124
134
  emitMarshalHelpers: typeof emitMarshalHelpers;
135
+ materializeExpr: typeof materializeExpr;
125
136
  serializeTyped: typeof serializeTyped;
126
137
  emitTypedValue: typeof emitTypedValue;
127
138
  indentBlock: typeof indentBlock;
128
139
  emitOpsLiteral: (plan: import("./straightline.js").ComponentPlan) => string;
129
140
  emitPlanLiteral: (plan: unknown) => string;
130
- rustStraightlineEmitter: EmitterPlugin;
131
141
  rustStraightlineInternals: {
132
142
  P: string;
133
143
  SCOPE: string;
@@ -141,4 +151,4 @@ export declare const rustTypedInternals: {
141
151
  setRustForceRunPlanImports: typeof setRustForceRunPlanImports;
142
152
  };
143
153
  export {};
144
- //# sourceMappingURL=emit-straightline-typed-rust.d.ts.map
154
+ //# sourceMappingURL=emit-shared-rust-typed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emit-shared-rust-typed.d.ts","sourceRoot":"","sources":["../../src/generator/emit-shared-rust-typed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7C,OAAO,EAGL,KAAK,QAAQ,EACb,KAAK,OAAO,EAEb,MAAM,YAAY,CAAC;AACpB,OAAO,EAA6B,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAC9F,OAAO,KAAK,EAAE,SAAS,EAAgB,MAAM,gBAAgB,CAAC;AAO9D,4EAA4E;AAC5E,iBAAS,UAAU,CAAC,MAAM,EAAE,QAAQ,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAchF;AAED,2EAA2E;AAC3E,iBAAS,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAY3C;AAED,oFAAoF;AACpF,iBAAS,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO3C;AAWD,8BAA8B;AAC9B,iBAAS,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAErC;AAkCD,iEAAiE;AACjE,iBAAS,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAe7C;AAED;;;;GAIG;AACH,iBAAS,eAAe,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAG/C;AAoCD,4CAA4C;AAC5C,iBAAS,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAM1D;AA2DD;;;;GAIG;AACH,iBAAS,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,GAAG,MAAM,CAK9E;AAED;;;GAGG;AACH,iBAAS,gBAAgB,CACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EAAE,EAChB,IAAI,EAAE,QAAQ,GACb;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,OAAO,CAAA;CAAE,CAchC;AAED;;;;GAIG;AACH,iBAAS,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,GAAG,MAAM,CA4B/E;AAID,8FAA8F;AAC9F,iBAAS,eAAe,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAW/C;AAID,sEAAsE;AACtE,iBAAS,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEzC;AAYD;;;;;;;;;GASG;AACH,iBAAS,cAAc,CACrB,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,OAAO,GAAG,SAAS,EAC7B,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,IAAI,EAAE,QAAQ,GACb;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,CAiF5C;AAgCD;;;GAGG;AACH,iBAAS,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAOhF;AAID,iBAAS,oBAAoB,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAMvD;AAED,+CAA+C;AAC/C,iBAAS,gBAAgB,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAGlD;AAED,+DAA+D;AAC/D,iBAAS,kBAAkB,IAAI,MAAM,CAqCpC;AAED,kFAAkF;AAClF,iBAAS,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAU5C;AA6BD;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwB9B,CAAC"}