@orcalang/orca-lang 0.1.19 → 0.1.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/compiler/dt-compiler.d.ts +3 -0
- package/dist/compiler/dt-compiler.d.ts.map +1 -1
- package/dist/compiler/dt-compiler.js +205 -1
- package/dist/compiler/dt-compiler.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/parser/ast-to-markdown.d.ts.map +1 -1
- package/dist/parser/ast-to-markdown.js +3 -1
- package/dist/parser/ast-to-markdown.js.map +1 -1
- package/dist/parser/ast.d.ts +1 -0
- package/dist/parser/ast.d.ts.map +1 -1
- package/dist/parser/markdown-parser.d.ts.map +1 -1
- package/dist/parser/markdown-parser.js +14 -4
- package/dist/parser/markdown-parser.js.map +1 -1
- package/dist/skills.d.ts +1 -0
- package/dist/skills.d.ts.map +1 -1
- package/dist/skills.js +287 -23
- package/dist/skills.js.map +1 -1
- package/dist/verifier/dt-verifier.d.ts +28 -1
- package/dist/verifier/dt-verifier.d.ts.map +1 -1
- package/dist/verifier/dt-verifier.js +332 -1
- package/dist/verifier/dt-verifier.js.map +1 -1
- package/dist/verifier/properties.d.ts +4 -0
- package/dist/verifier/properties.d.ts.map +1 -1
- package/dist/verifier/properties.js +56 -20
- package/dist/verifier/properties.js.map +1 -1
- package/dist/verifier/structural.d.ts.map +1 -1
- package/dist/verifier/structural.js +6 -1
- package/dist/verifier/structural.js.map +1 -1
- package/package.json +1 -1
- package/src/compiler/dt-compiler.ts +223 -1
- package/src/index.ts +5 -1
- package/src/parser/ast-to-markdown.ts +2 -1
- package/src/parser/ast.ts +1 -0
- package/src/parser/markdown-parser.ts +11 -3
- package/src/skills.ts +319 -23
- package/src/verifier/dt-verifier.ts +367 -1
- package/src/verifier/properties.ts +78 -23
- package/src/verifier/structural.ts +5 -1
package/dist/skills.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGzD,OAAO,EAAuB,oBAAoB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AAC1K,OAAO,EACL,gCAAgC,EAChC,4BAA4B,EAC5B,wBAAwB,EACxB,0BAA0B,EAC1B,WAAW,GACZ,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,UAAU,EAA0B,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AASzD,SAAS,aAAa,CAAC,KAAiB;IACtC,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC,MAAM,CAAC;IACpD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACvE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;AAC/D,CAAC;AAED,SAAS,YAAY,CAAC,KAAiB;IACrC,OAAO,KAAK,CAAC,IAAI,IAAI,UAAU,CAAC;AAClC,CAAC;AAED,8DAA8D;AAC9D,SAAS,WAAW,CAAC,KAAa,EAAE,MAAc;IAChD,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,8BAA8B,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC1B,CAAC;AAkGD,SAAS,iBAAiB,CAAC,MAAkB;IAC3C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACnB,IAAI,CAAC,CAAC,QAAQ;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC7D,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;YACf,KAAK,MAAM,MAAM,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACxC,KAAK,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,IAAU;IAC/B,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC;QAC/B,KAAK,KAAK,CAAC,CAAC,OAAO,KAAK,CAAC;QACzB,KAAK,SAAS,CAAC,CAAC,OAAO,SAAS,CAAC;QACjC,KAAK,MAAM,CAAC,CAAC,OAAO,MAAM,CAAC;QAC3B,KAAK,OAAO,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC;QAC7C,KAAK,KAAK,CAAC,CAAC,OAAO,OAAO,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,SAAS,GAAG,CAAC;QAC7D,KAAK,UAAU,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC;QAC7C,KAAK,QAAQ,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC;IAClC,CAAC;AACH,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAqB;IACrD,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,MAAM,CAAC,CAAC,OAAO,MAAM,CAAC;QAC3B,KAAK,OAAO,CAAC,CAAC,OAAO,OAAO,CAAC;QAC7B,KAAK,KAAK,CAAC,CAAC,OAAO,KAAK,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QAC/D,KAAK,KAAK,CAAC,CAAC,OAAO,IAAI,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;QACzG,KAAK,IAAI,CAAC,CAAC,OAAO,IAAI,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;QACxG,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,KAAK,GAA2B,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;YACnG,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1C,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,QAAQ,EAAE,CAAC;YACxE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ;gBACxC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG;gBACzB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC7B,OAAO,GAAG,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC;QAC9C,CAAC;QACD,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACzC,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,OAAO,EAAE,CAAC;YACrE,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,UAAU,CAAC;QAC7D,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAmB;IAC/C,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,MAAM,EAAE,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC;QACzC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACvC,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACzC,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,KAAK,EAAE,CAAC,CAAC,KAAK;gBACZ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;gBACvD,CAAC,CAAC,SAAS;YACb,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,MAAM,EAAE,CAAC,CAAC,MAAM;SACjB,CAAC,CAAC;QACH,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC/B,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,UAAU,EAAE,wBAAwB,CAAC,CAAC,CAAC,UAAU,CAAC;SACnD,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACjC,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,UAAU,EAAE,CAAC,CAAC,UAAU;SACzB,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAClC,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,MAAM,EAAE,CAAC,CAAC,MAAM;SACjB,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACjC,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;YAC3B,OAAO,EAAE,CAAC,CAAC,YAAY;SACxB,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAiB;IAC1C,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACpC,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QACzD,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,QAAQ;YACR,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;SACrB,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,MAAM,EAAE,OAAO;YACf,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;SACxD,CAAC;IACJ,CAAC;AACH,CAAC;AAED,iFAAiF;AAEjF,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,KAAiB;IACjD,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAElC,IAAI,OAAmB,CAAC;IACxB,IAAI,kBAAkB,GAAoD,EAAE,CAAC;IAC7E,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,kCAAkC,CAAC,CAAC;QAC5F,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,8BAA8B,CAAC,CAAC;QACtF,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC3B,kBAAkB,GAAG,IAAI,CAAC,cAAc,CAAC;IAC3C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,6CAA6C;QAC7C,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,4BAA4B,CAAC,MAAM,CAAC,IAAI,SAAS;YAC1D,MAAM,EAAE,CAAC;YACT,MAAM,EAAE,CAAC;YACT,WAAW,EAAE,CAAC;YACd,MAAM,EAAE,CAAC;oBACP,IAAI,EAAE,aAAa;oBACnB,OAAO;oBACP,QAAQ,EAAE,OAAO;oBACjB,UAAU,EAAE,0EAA0E;iBACvF,CAAC;SACH,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,YAAY,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAE9C,gGAAgG;IAChG,MAAM,QAAQ,GAAG,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;IAC7E,MAAM,cAAc,GAAG,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1G,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;IAChE,MAAM,WAAW,GAAG,kBAAkB,CAAC,MAAM,GAAG,CAAC;QAC/C,CAAC,CAAC,yBAAyB,CAAC,QAAQ,CAAC;QACrC,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,aAAa,GAAG,kBAAkB,CAAC,MAAM,GAAG,CAAC;QACjD,CAAC,CAAC,yBAAyB,CAAC,QAAQ,CAAC;QACrC,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,QAAQ,GAAG,CAAC,CAAoM,EAAc,EAAE,CAAC,CAAC;QACtO,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;YACrB,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK;YACvB,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK;YACvB,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,aAAa;YACvC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS;YAC/B,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM;SAC1B,CAAC,CAAC,CAAC,SAAS;QACb,UAAU,EAAE,CAAC,CAAC,UAAU;KACzB,CAAC,CAAC;IAEH,MAAM,SAAS,GAAiB;QAC9B,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClC,GAAG,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACpC,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACnC,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClC,GAAG,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC5B,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC;KAC/B,CAAC;IAEF,OAAO;QACL,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO;QACzE,OAAO,EAAE,OAAO,CAAC,IAAI;QACrB,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM;QAC7B,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM;QAC7B,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,MAAM;QACvC,MAAM,EAAE,SAAS;KAClB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,KAAiB,EAAE,MAA4B;IAChF,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;IAEzD,mCAAmC;IACnC,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,YAAY,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAE9C,MAAM,QAAQ,GAAiB;QAC7B,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACnE,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,QAAQ,EAAE,CAAC,CAAC,QAA+B;SAC5C,CAAC,CAAC;QACH,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACrE,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,QAAQ,EAAE,CAAC,CAAC,QAA+B;SAC5C,CAAC,CAAC;QACH,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACpE,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,QAAQ,EAAE,CAAC,CAAC,QAA+B;SAC5C,CAAC,CAAC;KACJ,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,KAAK,QAAQ;QAChC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC;QAC1B,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAE9B,OAAO;QACL,MAAM,EAAE,SAAS;QACjB,MAAM;QACN,MAAM;QACN,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,KAAiB,EACjB,WAAmB,YAAY,EAC/B,SAAkB,KAAK,EACvB,UAAmB,EACnB,gBAAyB,KAAK;IAE9B,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAEpC,iFAAiF;IACjF,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,kCAAkC,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,+EAA+E,CAAC,CAAC;IAC3G,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACjC,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;IAE3C,MAAM,OAAO,GAAqB,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC/D,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,SAAS,EAAE,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAChJ,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,YAAY,EAAE,oBAAoB,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC;KACzD,CAAC,CAAC,CAAC;IAEJ,gEAAgE;IAChE,MAAM,iBAAiB,GAA2B,EAAE,CAAC;IACrD,KAAK,MAAM,EAAE,IAAI,cAAc,EAAE,CAAC;QAChC,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC1B,iBAAiB,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,4BAA4B,CAAC,EAAE,CAAC,CAAC;QAChE,CAAC;aAAM,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC7B,iBAAiB,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,wBAAwB,CAAC,EAAE,CAAC,CAAC;QAC5D,CAAC;aAAM,CAAC;YACN,iBAAiB,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,gCAAgC,CAAC,EAAE,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED,IAAI,SAAS,GAA2B,EAAE,CAAC;IAC3C,IAAI,KAAK,GAA2B,EAAE,CAAC;IAEvC,IAAI,MAAM,EAAE,CAAC;QACX,6CAA6C;QAC7C,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,QAAQ,EAAE;YAC/C,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,WAAW,EAAE,MAAM,CAAC,WAAW;SAChC,CAAC,CAAC;QAEH,SAAS,GAAG,MAAM,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,QAA6B,EAAE,cAAc,CAAC,CAAC;QAE7G,IAAI,aAAa,EAAE,CAAC;YAClB,KAAK,GAAG,MAAM,iBAAiB,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,QAA6B,CAAC,CAAC;QAC7F,CAAC;IACH,CAAC;SAAM,CAAC;QACN,yCAAyC;QACzC,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACrC,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;YAC9D,IAAI,SAAS,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC;gBAC3E,6EAA6E;gBAC7E,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,gCAAgC,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YAClG,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,sBAAsB,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,IAAI,SAAS,CAAC,CAAC;YACrG,CAAC;QACH,CAAC;QAED,IAAI,aAAa,EAAE,CAAC;YAClB,KAAK,GAAG,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,OAAO;QACL,MAAM,EAAE,SAAS;QACjB,OAAO,EAAE,OAAO,CAAC,IAAI;QACrB,OAAO;QACP,SAAS;QACT,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS;QAC5F,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;KACzD,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,QAAqB,EACrB,OAAyB,EACzB,OAAmB,EACnB,QAA2B,EAC3B,iBAAqC,EAAE;IAEvC,MAAM,SAAS,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC7C,MAAM,SAAS,GAA2B,EAAE,CAAC;IAE7C,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC;QACzC,CAAC,CAAC,iCAAiC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CACvD,KAAK,EAAE,CAAC,IAAI,iBAAiB,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAC9H,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAChB,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,YAAY,GAAG,qBAAqB,QAAQ;;;;6EAIyB,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,qBAAqB,CAAC;IAExI,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAG,SAAS;YACtB,CAAC,CAAC,gCAAgC,SAAS,CAAC,IAAI,4BAA4B;YAC5E,CAAC,CAAC,EAAE,CAAC;QAEP,MAAM,UAAU,GAAG,YAAY,OAAO,CAAC,IAAI;kBAC7B,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS;;UAE5F,MAAM,CAAC,SAAS;eACX,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM;;6BAEvE,CAAC;QAE1B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC;gBACvC,QAAQ,EAAE;oBACR,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;oBACzC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE;iBACtC;gBACD,KAAK,EAAE,EAAE;gBACT,UAAU,EAAE,IAAI;gBAChB,WAAW,EAAE,GAAG;aACjB,CAAC,CAAC;YAEH,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC;QAC5C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,wBAAwB,MAAM,CAAC,IAAI,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC1G,iCAAiC;YACjC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,sBAAsB,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,IAAI,SAAS,CAAC,CAAC;QACrG,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,QAAqB,EACrB,OAAyB,EACzB,OAAmB,EACnB,QAA2B;IAE3B,MAAM,KAAK,GAA2B,EAAE,CAAC;IAEzC,MAAM,YAAY,GAAG,wBAAwB,QAAQ;;0CAEb,QAAQ,GAAG,CAAC;IAEpD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE/F,MAAM,UAAU,GAAG,YAAY,OAAO,CAAC,IAAI;kBAC7B,aAAa;UACrB,MAAM,CAAC,SAAS;uBACH,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,YAAY;;;;;;;2CAO1B,CAAC;QAExC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC;gBACvC,QAAQ,EAAE;oBACR,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;oBACzC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE;iBACtC;gBACD,KAAK,EAAE,EAAE;gBACT,UAAU,EAAE,IAAI;gBAChB,WAAW,EAAE,GAAG;aACjB,CAAC,CAAC;YAEH,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC;QACxC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,oCAAoC,MAAM,CAAC,IAAI,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACtH,uCAAuC;YACvC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,8BAA8B,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAyB,EAAE,OAAmB,EAAE,WAAmB,YAAY;IAC5G,MAAM,KAAK,GAA2B,EAAE,CAAC;IACzC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,8BAA8B,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACjF,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,8BAA8B,CAAC,MAAsB,EAAE,OAAmB,EAAE,WAAmB,YAAY;IAClH,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO,0BAA0B,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO,sBAAsB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,8BAA8B,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,8BAA8B,CAAC,MAAsB,EAAE,OAAmB;IACjF,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QACxC,OAAO,OAAO,CAAC,CAAC,IAAI,KAAK,sBAAsB,CAAC,CAAC,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,CAAC;IAC1E,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACf,MAAM,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAE5G,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,OAAO,gBAAgB,MAAM,CAAC,IAAI;YAC1B,MAAM,CAAC,IAAI;;EAErB,SAAS;;;;;qBAKU,MAAM,CAAC,IAAI;;;;;mCAKG,MAAM,CAAC,UAAU;;;;;uBAK7B,MAAM,CAAC,IAAI;;MAE5B,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CACjE,iBAAiB,CAAC,cAAc,CAAC,IAAI,CACtC,CAAC,IAAI,CAAC,QAAQ,CAAC;;;CAGnB,CAAC;IACA,CAAC;IAED,OAAO,gBAAgB,MAAM,CAAC,IAAI;YACxB,MAAM,CAAC,IAAI;;EAErB,SAAS;;;;;qBAKU,MAAM,CAAC,IAAI;;;;;;;;qBAQX,MAAM,CAAC,IAAI;;MAE1B,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CACjE,iBAAiB,CAAC,cAAc,CAAC,IAAI,CACtC,CAAC,IAAI,CAAC,QAAQ,CAAC;;;CAGnB,CAAC;AACF,CAAC;AAED,SAAS,0BAA0B,CAAC,MAAsB,EAAE,OAAmB;IAC7E,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QACxC,OAAO,YAAY,CAAC,CAAC,IAAI,MAAM,sBAAsB,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC;IAC5E,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACf,MAAM,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC5G,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IAE3E,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,OAAO,eAAe,MAAM,CAAC,IAAI;;;;;;;EAOnC,SAAS;;;;;iBAKM,MAAM,CAAC,IAAI;;gBAEZ,MAAM,CAAC,UAAU;8BACH,MAAM,CAAC,IAAI;;qBAEpB,MAAM,CAAC,IAAI;;;;;iBAKf,MAAM,CAAC,IAAI;;gBAEZ,MAAM,CAAC,UAAU;8BACH,MAAM,CAAC,IAAI;;qBAEpB,MAAM,CAAC,IAAI;;CAE/B,CAAC;IACA,CAAC;IAED,OAAO,eAAe,MAAM,CAAC,IAAI;;;;;;EAMjC,SAAS;;;;;iBAKM,MAAM,CAAC,IAAI;;qBAEP,MAAM,CAAC,IAAI;;;;;iBAKf,MAAM,CAAC,IAAI;;qBAEP,MAAM,CAAC,IAAI;EAC9B,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,sBAAsB,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;CAC1E,CAAC;AACF,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAsB,EAAE,OAAmB;IACzE,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QACxC,OAAO,QAAQ,CAAC,CAAC,IAAI,MAAM,sBAAsB,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;IACpE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACf,MAAM,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC5G,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IAE3E,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,OAAO,gBAAgB,MAAM,CAAC,IAAI;;;;;;;;WAQ3B,MAAM;;EAEf,SAAS;;;gBAGK,MAAM,CAAC,UAAU;yCACQ,MAAM,CAAC,IAAI;;cAEtC,MAAM;;;;;CAKnB,CAAC;IACA,CAAC;IAED,OAAO,gBAAgB,MAAM,CAAC,IAAI;;;;;;;;WAQzB,MAAM;;EAEf,SAAS;;;cAGG,MAAM;;eAEL,MAAM;;EAEnB,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,cAAc,CAAC,uBAAuB,CAAC,+BAA+B,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;CAE/I,CAAC;AACF,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAsB,EAAE,SAAiB;IACpE,wFAAwF;IACxF,MAAM,SAAS,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC3G,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IAEvC,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACnD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,sCAAsC;IACtC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,SAAS,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;QACtE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAS,EAAE,WAAmB,YAAY;IACxE,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACxE,CAAC;IACD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QAC/C,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC1B,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;gBAClB,KAAK,QAAQ,CAAC,CAAC,OAAO,IAAI,CAAC;gBAC3B,KAAK,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC;gBACvB,KAAK,SAAS,CAAC,CAAC,OAAO,KAAK,CAAC;gBAC7B,KAAK,MAAM,CAAC,CAAC,OAAO,OAAO,CAAC;gBAC5B,KAAK,UAAU,CAAC,CAAC,OAAO,MAAM,CAAC;gBAC/B,KAAK,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC;gBAC1B,KAAK,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC;gBACxB,KAAK,QAAQ,CAAC,CAAC,OAAO,MAAM,CAAC;YAC/B,CAAC;QACH,CAAC;aAAM,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC7B,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;gBAClB,KAAK,QAAQ,CAAC,CAAC,OAAO,IAAI,CAAC;gBAC3B,KAAK,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC;gBACvB,KAAK,SAAS,CAAC,CAAC,OAAO,KAAK,CAAC;gBAC7B,KAAK,MAAM,CAAC,CAAC,OAAO,OAAO,CAAC;gBAC5B,KAAK,UAAU,CAAC,CAAC,OAAO,KAAK,CAAC;gBAC9B,KAAK,OAAO,CAAC,CAAC,OAAO,KAAK,CAAC;gBAC3B,KAAK,KAAK,CAAC,CAAC,OAAO,KAAK,CAAC;gBACzB,KAAK,QAAQ,CAAC,CAAC,OAAO,KAAK,CAAC;YAC9B,CAAC;QACH,CAAC;aAAM,CAAC;YACN,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;gBAClB,KAAK,QAAQ,CAAC,CAAC,OAAO,IAAI,CAAC;gBAC3B,KAAK,KAAK,CAAC;gBACX,KAAK,SAAS,CAAC,CAAC,OAAO,GAAG,CAAC;gBAC3B,KAAK,MAAM,CAAC,CAAC,OAAO,OAAO,CAAC;gBAC5B,KAAK,UAAU,CAAC,CAAC,OAAO,MAAM,CAAC;gBAC/B,KAAK,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC;gBAC1B,KAAK,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC;gBACxB,KAAK,QAAQ,CAAC,CAAC,OAAO,MAAM,CAAC;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;AAC7E,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAmB,EAAE,UAAkB;IACnE,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,sCAAsC;IACtC,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACpC,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAC5B,qEAAqE;YACrE,0CAA0C;YAC1C,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,yBAAyB;IACzB,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnC,IAAI,KAAK,CAAC,OAAO,KAAK,UAAU,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAChE,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACpF,CAAC;AAED;;;GAGG;AACH,SAAS,cAAc,CAAC,UAAkB,EAAE,GAAuB;IACjE,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAClC,MAAM,YAAY,GAAG,IAAI,GAAG,CAC1B,UAAU,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAC9D,CAAC;IACF,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,MAAM,QAAQ,GAAG,EAAE,CAAC,IAAI;aACrB,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC;aAC1B,IAAI,EAAE;aACN,WAAW,EAAE;aACb,KAAK,CAAC,KAAK,CAAC;aACZ,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC7B,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAAE,OAAO,EAAE,CAAC;IACzD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,EAAoB,EAAE,QAAgB;IACnE,MAAM,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC;IAEvB,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,YAAY,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;QACjD,MAAM,UAAU,GAAG,GAAG,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC;QAClD,MAAM,SAAS,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YACtC,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;gBACnD,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;gBAChC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;YACvC,OAAO,aAAa,CAAC,CAAC,IAAI,YAAY,IAAI,iBAAiB,CAAC;QAC9D,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,YAAY,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CACtC,yBAAyB,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,IAAI,IAAI,CACrD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,OAAO;YACL,cAAc,MAAM,gBAAgB,MAAM,SAAS;YACnD,qBAAqB,MAAM,IAAI,UAAU,GAAG;YAC5C,SAAS;YACT,UAAU;YACV,iCAAiC;YACjC,YAAY;SACb,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IAED,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,WAAW,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;QACjD,MAAM,WAAW,GAAG,GAAG,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC;QACnD,MAAM,SAAS,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YACtC,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACrC,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;gBACnD,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;gBACnC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC1C,OAAO,UAAU,OAAO,aAAa,IAAI,iBAAiB,CAAC;QAC7D,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,YAAY,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CACtC,kBAAkB,CAAC,CAAC,IAAI,iBAAiB,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAChE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,OAAO;YACL,aAAa,MAAM,gBAAgB,MAAM,SAAS;YAClD,oBAAoB,MAAM,IAAI,WAAW,GAAG;YAC5C,SAAS;YACT,SAAS;YACT,2BAA2B;YAC3B,YAAY;YACZ,QAAQ;SACT,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IAED,uBAAuB;IACvB,MAAM,MAAM,GAAG,WAAW,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;IACjD,MAAM,SAAS,GAAG,GAAG,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC;IACjD,MAAM,SAAS,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QACtC,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;YACnD,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAChC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACX,OAAO,UAAU,CAAC,CAAC,IAAI,oBAAoB,SAAS,KAAK,CAAC,CAAC,IAAI,WAAW,IAAI,iBAAiB,CAAC;IAClG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,MAAM,YAAY,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CACtC,UAAU,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,IAAI,GAAG,CACxC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,OAAO;QACL,aAAa,MAAM,gBAAgB,MAAM,SAAS;QAClD,yBAAyB,MAAM,IAAI;QACnC,SAAS;QACT,UAAU;QACV,+BAA+B;QAC/B,yBAAyB;QACzB,YAAY;QACZ,WAAW;QACX,QAAQ;KACT,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB,CAAC,EAAoB,EAAE,OAAmB;IACjE,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/D,OAAO,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAClD,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,gEAAgE;AAChE,SAAS,SAAS,CAAC,SAAiB,EAAE,QAAgB;IACpD,IAAI,QAAQ,KAAK,MAAM;QAAE,OAAO,QAAQ,SAAS,WAAW,CAAC;IAC7D,IAAI,QAAQ,KAAK,WAAW;QAAE,OAAO,QAAQ,SAAS,UAAU,CAAC;IACjE,OAAO,QAAQ,SAAS,aAAa,CAAC;AACxC,CAAC;AAED,SAAS,gCAAgC,CACvC,MAA2G,EAC3G,OAAmB,EACnB,QAAgB,EAChB,EAAoB;IAEpB,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,YAAY,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,UAAU,GAAG,GAAG,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;QACnD,MAAM,SAAS,GAAG,EAAE,CAAC,UAAU;aAC5B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,IAAI,KAAK,CAAC;aAC/C,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,aAAa,GAAG,EAAE,CAAC,OAAO;aAC7B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,IAAI,gBAAgB,CAAC,CAAC,IAAI,GAAG,CAAC;aACzD,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,OAAO,aAAa,MAAM,CAAC,IAAI;oBACf,EAAE,CAAC,IAAI;2CACgB,MAAM,CAAC,IAAI,MAAM,MAAM,CAAC,IAAI;;;;YAI3D,MAAM,CAAC,IAAI;kBACL,QAAQ,IAAI,UAAU;EACtC,SAAS;;;;EAIT,aAAa;;;CAGd,CAAC;IACA,CAAC;IAED,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,WAAW,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,WAAW,GAAG,GAAG,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;QACpD,MAAM,QAAQ,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YACrC,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC7F,OAAO,KAAK,OAAO,UAAU,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3D,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,WAAW,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YACxC,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACrC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACnE,OAAO,OAAO,OAAO,KAAK,OAAO,GAAG,CAAC;QACvC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,aAAa,GAAG,EAAE,CAAC,OAAO;aAC7B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,IAAI,iBAAiB,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;aACtE,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,OAAO,cAAc,MAAM,CAAC,IAAI;qBACf,EAAE,CAAC,IAAI;2CACe,MAAM,CAAC,IAAI,MAAM,MAAM;;OAE3D,MAAM;EACX,QAAQ;gBACM,QAAQ,IAAI,WAAW;EACrC,WAAW;;;;;;;EAOX,aAAa;;;;CAId,CAAC;IACA,CAAC;IAED,uBAAuB;IACvB,MAAM,QAAQ,GAAG,WAAW,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;IACpD,MAAM,SAAS,GAAG,EAAE,CAAC,UAAU;SAC5B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,IAAI,GAAG,CAAC;SACzC,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,MAAM,aAAa,GAAG,EAAE,CAAC,OAAO;SAC7B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,IAAI,GAAG,CAAC;SAChD,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,OAAO,cAAc,MAAM,CAAC,IAAI;qBACb,EAAE,CAAC,IAAI;;kBAEV,MAAM,CAAC,IAAI;qBACR,QAAQ;EAC3B,SAAS;;;;;EAKT,aAAa;;;;;CAKd,CAAC;AACF,CAAC;AAED,SAAS,sBAAsB,CAC7B,MAA2G,EAC3G,OAAmB,EACnB,QAAgB,EAChB,SAA4B;IAE5B,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,OAAO,aAAa,MAAM,CAAC,IAAI;YACzB,MAAM,CAAC,UAAU;+CACkB,MAAM,CAAC,UAAU,MAAM,MAAM,CAAC,IAAI;;;;;YAKrE,MAAM,CAAC,IAAI;4CACqB,MAAM,CAAC,IAAI;;;;CAItD,CAAC;QACE,CAAC;QACD,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,qBAAqB,CAAC,SAAS,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9F,MAAM,MAAM,GAAG,SAAS;YACtB,CAAC,CAAC,sCAAsC,SAAS,CAAC,IAAI,iBAAiB;YACvE,CAAC,CAAC,8BAA8B,CAAC;QACnC,OAAO,aAAa,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,uBAAuB,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;2CACnD,MAAM,CAAC,IAAI,MAAM,MAAM,CAAC,IAAI;;;;YAI3D,MAAM,CAAC,IAAI,8DAA8D,WAAW;EAC9F,MAAM;;CAEP,CAAC;IACA,CAAC;IAED,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,OAAO,cAAc,MAAM,CAAC,IAAI;aACzB,MAAM,CAAC,UAAU;;qBAET,MAAM,CAAC,UAAU;;OAE/B,MAAM;uBACU,MAAM,CAAC,UAAU;2CACG,MAAM,CAAC,IAAI;;;;CAIrD,CAAC;QACE,CAAC;QACD,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,qBAAqB,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1F,MAAM,MAAM,GAAG,SAAS;YACtB,CAAC,CAAC,qCAAqC,SAAS,CAAC,IAAI,iBAAiB;YACtE,CAAC,CAAC,6BAA6B,CAAC;QAClC,OAAO,cAAc,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,wBAAwB,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;2CACrD,MAAM,CAAC,IAAI,MAAM,MAAM;;OAE3D,MAAM,4DAA4D,WAAW;EAClF,MAAM;;;;;;;CAOP,CAAC;IACA,CAAC;IAED,uBAAuB;IACvB,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QACvC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,SAAS;YAAE,OAAO,cAAc,CAAC;QAC1D,IAAI,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,CAAC,CAAC;QACrC,OAAO,iBAAiB,CAAC,EAAE,CAAC;IAC9B,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,OAAO,cAAc,MAAM,CAAC,IAAI;aACvB,MAAM,CAAC,UAAU;;kBAEZ,MAAM,CAAC,IAAI,IAAI,MAAM,uBAAuB,MAAM,CAAC,UAAU;;0BAErD,MAAM,CAAC,UAAU;;;;qBAItB,MAAM,CAAC,IAAI;;;CAG/B,CAAC;IACA,CAAC;IAED,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,qBAAqB,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAClG,MAAM,MAAM,GAAG,SAAS;QACtB,CAAC,CAAC,qCAAqC,SAAS,CAAC,IAAI,iBAAiB;QACtE,CAAC,CAAC,6BAA6B,CAAC;IAClC,OAAO,cAAc,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,wBAAwB,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;;kBAE5E,MAAM,CAAC,IAAI,4BAA4B,WAAW;EAClE,MAAM;;;CAGP,CAAC;AACF,CAAC;AAWD,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,KAAiB,EACjB,MAAoB,EACpB,UAAmB,EACnB,gBAAwB,CAAC;IAEzB,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,QAAQ,EAAE;QAC/C,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,WAAW,EAAE,MAAM,CAAC,WAAW;KAChC,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,cAAc,GAAG,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC,CAAC;IACvE,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEzI,MAAM,YAAY,GAAG;uDACgC,IAAI,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,aAAa,2BAA2B,CAAC;IAE7H,IAAI,aAAa,GAAG,aAAa,CAAC;IAClC,IAAI,aAAa,GAAG,MAAM,CAAC;IAC3B,IAAI,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC;IACtC,IAAI,aAAa,GAAG,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtE,IAAI,aAAa,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAErD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE7G,MAAM,UAAU,GAAG,YAAY,WAAW;UACpC,aAAa;UACb,aAAa;;;EAGrB,SAAS;;;EAGT,aAAa;;0CAE2B,CAAC;QAEvC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC;gBACvC,QAAQ,EAAE;oBACR,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;oBACzC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE;iBACtC;gBACD,KAAK,EAAE,EAAE;gBACT,UAAU,EAAE,IAAI;gBAChB,WAAW,EAAE,GAAG;aACjB,CAAC,CAAC;YAEH,aAAa,GAAG,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACjD,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;YAElE,IAAI,YAAY,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;gBACpC,OAAO;oBACL,MAAM,EAAE,SAAS;oBACjB,SAAS,EAAE,aAAa;oBACxB,YAAY;oBACZ,UAAU,EAAE,CAAC,GAAG,CAAC;oBACjB,OAAO,EAAE,CAAC,mBAAmB,CAAC,GAAG,CAAC,eAAe,CAAC;iBACnD,CAAC;YACJ,CAAC;YAED,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;YACxE,oDAAoD;YACpD,IAAI,CAAC;gBACH,MAAM,CAAC,GAAG,WAAW,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;gBAClD,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC;gBACrB,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACrD,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtC,CAAC;YAAC,MAAM,CAAC;gBACP,2EAA2E;YAC7E,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,MAAM,EAAE,OAAO;gBACf,OAAO,EAAE,EAAE;gBACX,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACxD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,iBAAiB,GAAG,MAAM,WAAW,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;IACvE,OAAO;QACL,MAAM,EAAE,qBAAqB;QAC7B,SAAS,EAAE,aAAa;QACxB,YAAY,EAAE,iBAAiB;QAC/B,UAAU,EAAE,aAAa;QACzB,OAAO,EAAE,CAAC,GAAG,aAAa,2CAA2C,CAAC;KACvE,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oCAuJD,CAAC;AAErC,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,mBAA2B,EAC3B,UAAmB,EACnB,gBAAwB,CAAC;IAEzB,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IAEtC,kEAAkE;IAClE,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,eAAe,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;IACxG,MAAM,YAAY,GAAG,SAAS;QAC5B,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;QAClF,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAC/D,MAAM,MAAM,GACV,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC1C,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,8BAA8B;YACrE,YAAY,CAAC;IAEf,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,gBAAgB;YAC7D,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,wCAAwC;gBACtD,CAAC,CAAC,mBAAmB,CAAC;QACxB,OAAO;YACL,MAAM,EAAE,OAAO;YACf,KAAK,EAAE,6BAA6B,OAAO,8BAA8B;SAC1E,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,QAAQ,EAAE;QAC/C,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,WAAW,EAAE,MAAM,CAAC,WAAW;KAChC,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG;;EAErB,qBAAqB;;;;;;;;;;;;;;;;;;;;;;uHAsBgG,CAAC;IAEtH,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,IAAI,UAAU,GAAiB,EAAE,CAAC;IAClC,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,OAAO,SAAS,GAAG,aAAa,EAAE,CAAC;QACjC,MAAM,UAAU,GAAG,SAAS,KAAK,CAAC;YAChC,CAAC,CAAC,wCAAwC,mBAAmB,EAAE;YAC/D,CAAC,CAAC,mFAAmF,WAAW,6BAA6B,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,oDAAoD,CAAC;QAEvN,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC;gBACvC,QAAQ,EAAE;oBACR,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;oBACzC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE;iBACtC;gBACD,KAAK,EAAE,EAAE;gBACT,UAAU,EAAE,IAAI;gBAChB,WAAW,EAAE,GAAG;aACjB,CAAC,CAAC;YAEH,WAAW,GAAG,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC/C,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;YAEhE,IAAI,YAAY,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;gBACpC,OAAO;oBACL,MAAM,EAAE,SAAS;oBACjB,OAAO,EAAE,YAAY,CAAC,OAAO;oBAC7B,IAAI,EAAE,WAAW;oBACjB,YAAY;iBACb,CAAC;YACJ,CAAC;YAED,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC;YACjC,SAAS,EAAE,CAAC;QACd,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,MAAM,EAAE,OAAO;gBACf,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACxD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO;QACL,MAAM,EAAE,qBAAqB;QAC7B,OAAO,EAAE,4BAA4B,CAAC,WAAW,CAAC;QAClD,IAAI,EAAE,WAAW;QACjB,YAAY,EAAE,MAAM,WAAW,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YACpE,MAAM,EAAE,SAAkB;YAC1B,OAAO,EAAE,SAAS;YAClB,MAAM,EAAE,CAAC;YACT,MAAM,EAAE,CAAC;YACT,WAAW,EAAE,CAAC;YACd,MAAM,EAAE,EAAE;SACX,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAED,gFAAgF;AAEhF,MAAM,CAAC,MAAM,6BAA6B,GAAG;;;;;;;;;;;;;;;;;;;;CAoB5C,CAAC;AAEF,SAAS,iBAAiB,CAAC,MAAc;IACvC,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,SAAS,GAAiB,EAAE,CAAC;IAEnC,2EAA2E;IAC3E,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IACvC,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,GAAG,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnE,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;IACvG,CAAC;IAED,qBAAqB;IACrB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QACpC,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,YAAY,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAChD,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;QAC5C,KAAK,MAAM,CAAC,IAAI;YACd,GAAG,UAAU,CAAC,MAAM;YACpB,GAAG,YAAY,CAAC,MAAM;YACtB,GAAG,WAAW,CAAC,MAAM;YACrB,GAAG,UAAU,CAAC,MAAM;SACrB,EAAE,CAAC;YACF,SAAS,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,OAAO,EAAE,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE;gBACzC,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS;gBACvF,UAAU,EAAE,CAAC,CAAC,UAAU;aACzB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO;QACL,KAAK,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC;QACnD,MAAM,EAAE,SAAS;QACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;KACzC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,mBAA2B,EAC3B,UAAmB,EACnB,gBAAwB,CAAC;IAEzB,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IAEtC,kEAAkE;IAClE,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,eAAe,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;IACxG,MAAM,YAAY,GAAG,SAAS;QAC5B,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;QAClF,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAC/D,MAAM,MAAM,GACV,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC1C,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACrC,YAAY,CAAC;IAEf,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,gBAAgB;YAC7D,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,wCAAwC;gBACtD,CAAC,CAAC,mBAAmB,CAAC;QACxB,OAAO;YACL,MAAM,EAAE,OAAO;YACf,KAAK,EAAE,6BAA6B,OAAO,8BAA8B;SAC1E,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,QAAQ,EAAE;QAC/C,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,WAAW,EAAE,MAAM,CAAC,WAAW;KAChC,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG;;EAErB,qBAAqB;EACrB,6BAA6B;;;;;;;;;;;;;;;;;;;sIAmBuG,CAAC;IAErI,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,IAAI,UAAU,GAAiB,EAAE,CAAC;IAClC,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,OAAO,SAAS,GAAG,aAAa,EAAE,CAAC;QACjC,MAAM,UAAU,GAAG,SAAS,KAAK,CAAC;YAChC,CAAC,CAAC,4DAA4D,mBAAmB,6DAA6D;YAC9I,CAAC,CAAC,oGAAoG,WAAW,6BAA6B,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,0DAA0D,CAAC;QAE9O,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC;gBACvC,QAAQ,EAAE;oBACR,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;oBACzC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE;iBACtC;gBACD,KAAK,EAAE,EAAE;gBACT,UAAU,EAAE,IAAI;gBAChB,WAAW,EAAE,GAAG;aACjB,CAAC,CAAC;YAEH,WAAW,GAAG,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAE/C,IAAI,YAA0E,CAAC;YAC/E,IAAI,CAAC;gBACH,YAAY,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;YAChD,CAAC;YAAC,OAAO,QAAQ,EAAE,CAAC;gBAClB,UAAU,GAAG,CAAC;wBACZ,IAAI,EAAE,aAAa;wBACnB,OAAO,EAAE,QAAQ,YAAY,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;wBACxE,QAAQ,EAAE,OAAO;qBAClB,CAAC,CAAC;gBACH,SAAS,EAAE,CAAC;gBACZ,SAAS;YACX,CAAC;YAED,IAAI,YAAY,CAAC,KAAK,EAAE,CAAC;gBACvB,OAAO;oBACL,MAAM,EAAE,SAAS;oBACjB,QAAQ,EAAE,YAAY,CAAC,QAAQ;oBAC/B,IAAI,EAAE,WAAW;iBAClB,CAAC;YACJ,CAAC;YAED,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;YACrE,SAAS,EAAE,CAAC;QACd,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,MAAM,EAAE,OAAO;gBACf,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACxD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,aAAa,GAAa,EAAE,CAAC;IACjC,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;QAC5C,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IAExB,OAAO;QACL,MAAM,EAAE,qBAAqB;QAC7B,QAAQ,EAAE,aAAa;QACvB,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE,UAAU;KACnB,CAAC;AACJ,CAAC;AAED,iFAAiF;AAEjF,SAAS,iBAAiB,CAAC,UAAmB;IAC5C,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,eAAe,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;IACxG,MAAM,YAAY,GAAG,SAAS;QAC5B,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;QAClF,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAC/D,MAAM,MAAM,GACV,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC1C,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACrC,YAAY,CAAC;IAEf,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,gBAAgB;YAC7D,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,wCAAwC;gBACtD,CAAC,CAAC,mBAAmB,CAAC;QACxB,OAAO,EAAE,KAAK,EAAE,6BAA6B,OAAO,8BAA8B,EAAE,CAAC;IACvF,CAAC;IAED,OAAO;QACL,MAAM;QACN,QAAQ,EAAE,cAAc,CAAC,MAAM,CAAC,QAAQ,EAAE;YACxC,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,WAAW,EAAE,MAAM,CAAC,WAAW;SAChC,CAAC;KACH,CAAC;AACJ,CAAC;AAWD,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,mBAA2B,EAC3B,UAAmB;IAEnB,MAAM,cAAc,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACrD,IAAI,OAAO,IAAI,cAAc,EAAE,CAAC;QAC9B,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,CAAC,KAAK,EAAE,CAAC;IAC1D,CAAC;IACD,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC;IAEpC,MAAM,YAAY,GAAG;;EAErB,qBAAqB;;;;;;;;;;;;;;;;;;;;;;uHAsBgG,CAAC;IAEtH,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC;YACvC,QAAQ,EAAE;gBACR,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;gBACzC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,wCAAwC,mBAAmB,EAAE,EAAE;aACzF;YACD,KAAK,EAAE,EAAE;YACT,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,GAAG;SACjB,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,4BAA4B,CAAC,IAAI,CAAC,CAAC;QACnD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC9C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;IACtF,CAAC;AACH,CAAC;AAWD,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,mBAA2B,EAC3B,UAAmB;IAEnB,MAAM,cAAc,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACrD,IAAI,OAAO,IAAI,cAAc,EAAE,CAAC;QAC9B,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,CAAC,KAAK,EAAE,CAAC;IAC1D,CAAC;IACD,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC;IAEpC,MAAM,YAAY,GAAG;;EAErB,qBAAqB;EACrB,6BAA6B;;;;;;;;;;;;;;;;;;;sIAmBuG,CAAC;IAErI,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC;YACvC,QAAQ,EAAE;gBACR,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;gBACzC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,4DAA4D,mBAAmB,6DAA6D,EAAE;aACxK;YACD,KAAK,EAAE,EAAE;YACT,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,GAAG;SACjB,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,QAAQ,GAAa,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;YACrC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC;QAAC,MAAM,CAAC,CAAC,mEAAmE,CAAC,CAAC;QAC/E,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC/C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;IACtF,CAAC;AACH,CAAC;AAED,gFAAgF;AAEhF;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAEjC,oDAAoD;IACpD,IAAI,4CAA4C,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAE1E,qCAAqC;IACrC,IAAI,6DAA6D,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAE3F,oEAAoE;IACpE,2DAA2D;IAC3D,IAAI,sIAAsI,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAEnK,OAAO,KAAK,CAAC;AACf,CAAC;AAWD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,mBAA2B,EAC3B,UAAmB;IAEnB,MAAM,OAAO,GAAG,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;IAExD,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,MAAM,GAAG,MAAM,2BAA2B,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;QAClF,OAAO;YACL,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;QAC7E,OAAO;YACL,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,OAAO,IAAI;SACR,OAAO,CAAC,4BAA4B,EAAE,EAAE,CAAC;SACzC,OAAO,CAAC,sCAAsC,EAAE,EAAE,CAAC;SACnD,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;SACrB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;SACrB,IAAI,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,4BAA4B,CAAC,IAAY;IAChD,8EAA8E;IAC9E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;IACvD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACtC,CAAC;AAsBD;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,KAAiB;IAC5C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QAEvC,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,mCAAmC,EAAE,CAAC;QACzE,CAAC;QAED,8CAA8C;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC5C,IAAI,EAAE,EAAE,CAAC,IAAI;YACb,WAAW,EAAE,EAAE,CAAC,WAAW;YAC3B,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAClC,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,KAAK,EAAE,CAAC,CAAC,KAAK;aACf,CAAC,CAAC;YACH,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC5B,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,MAAM,EAAE,CAAC,CAAC,MAAM;aACjB,CAAC,CAAC;YACH,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACxB,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC;gBAC5C,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC;aACvC,CAAC,CAAC;YACH,MAAM,EAAE,EAAE,CAAC,MAAM;SAClB,CAAC,CAAC,CAAC;QAEJ,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC;IACvD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;IACtF,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,KAAiB;IAC7C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QAEvC,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrC,OAAO;gBACL,MAAM,EAAE,SAAS;gBACjB,aAAa,EAAE,EAAE;gBACjB,UAAU,EAAE,CAAC;gBACb,OAAO,EAAE,CAAC;gBACV,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,mCAAmC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;aACpG,CAAC;QACJ,CAAC;QAED,6BAA6B;QAC7B,MAAM,YAAY,GAAG,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAE/D,6CAA6C;QAC7C,MAAM,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,MAAM,GAAiB,EAAE,CAAC;QAChC,KAAK,MAAM,CAAC,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;YACpC,MAAM,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC;YACvB,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,QAAQ,EAAE,CAAC,CAAC,QAA+B;gBAC3C,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;oBACd,KAAK,EAAE,GAAG,CAAC,KAAK;oBAChB,KAAK,EAAE,GAAG,CAAC,KAAK;oBAChB,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,SAAS,EAAE,GAAG,CAAC,SAAS;oBACxB,MAAM,EAAE,GAAG,CAAC,MAAM;oBAClB,aAAa,EAAE,GAAG,CAAC,aAAa;iBACjC,CAAC,CAAC,CAAC,SAAS;gBACb,UAAU,EAAE,CAAC,CAAC,UAAU;aACzB,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;YAChD,aAAa,EAAE,EAAE,CAAC,IAAI;YACtB,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM;YAChC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM;YAC1B,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM;YACtB,MAAM;SACP,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,aAAa,EAAE,EAAE;YACjB,UAAU,EAAE,CAAC;YACb,OAAO,EAAE,CAAC;YACV,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;SAChH,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,KAAiB,EAAE,SAAgC,YAAY;IAC5F,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QAEvC,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrC,OAAO;gBACL,MAAM,EAAE,OAAO;gBACf,MAAM;gBACN,MAAM,EAAE,EAAE;gBACV,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,mCAAmC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;aACtG,CAAC;QACJ,CAAC;QAED,MAAM,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,MAAM,KAAK,MAAM;YAC9B,CAAC,CAAC,0BAA0B,CAAC,EAAE,CAAC;YAChC,CAAC,CAAC,gCAAgC,CAAC,EAAE,CAAC,CAAC;QAEzC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC7D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,MAAM,EAAE,OAAO;YACf,MAAM;YACN,MAAM,EAAE,EAAE;YACV,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;SACpH,CAAC;IACJ,CAAC;AACH,CAAC;AAED,qDAAqD;AACrD,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8B3B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAY,EAAE,UAAmB;IAOrE,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,QAAQ,EAAE;QAC/C,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,WAAW,EAAE,MAAM,CAAC,WAAW;KAChC,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,4BAA4B,EAAE,CAAC;IAClE,CAAC;IAED,MAAM,MAAM,GAAG;;EAEf,mBAAmB;;;EAGnB,IAAI;;sDAEgD,CAAC;IAErD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC;YACvC,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;YAC7C,KAAK,EAAE,EAAE;YACT,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,IAAI;YACrC,WAAW,EAAE,GAAG;SACjB,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAE9C,sCAAsC;QACtC,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,2DAA2D,EAAE,IAAI,EAAE,CAAC;QACvG,CAAC;QAED,MAAM,YAAY,GAAG,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAE/D,OAAO;YACL,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,qBAAqB;YAC9D,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI;YAC1C,IAAI;YACJ,YAAY,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC7C,MAAM,EAAE,SAAS;gBACjB,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI;gBAC1C,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM;gBACpD,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM;gBAC9C,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM;gBAC1C,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBACpC,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,OAAO,EAAE,CAAC,CAAC,OAAO;oBAClB,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,UAAU,EAAE,CAAC,CAAC,UAAU;iBACzB,CAAC,CAAC;aACJ;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;IACtF,CAAC;AACH,CAAC"}
|
|
@@ -1,5 +1,32 @@
|
|
|
1
1
|
import { DecisionTableDef } from '../parser/dt-ast.js';
|
|
2
|
-
import {
|
|
2
|
+
import { MachineDef, OrcaFile } from '../parser/ast.js';
|
|
3
|
+
import { VerificationError, VerificationResult } from './types.js';
|
|
3
4
|
export declare function verifyDecisionTable(dt: DecisionTableDef): VerificationResult;
|
|
4
5
|
export declare function verifyDecisionTables(dts: DecisionTableDef[]): VerificationResult;
|
|
6
|
+
/**
|
|
7
|
+
* Check that every condition name and output name in a co-located decision table
|
|
8
|
+
* exists as a context field in the machine. When a DT and machine are in the same
|
|
9
|
+
* file, this contract allows action generation to produce fully-wired code.
|
|
10
|
+
*/
|
|
11
|
+
export declare function checkDTContextAlignment(dt: DecisionTableDef, machine: MachineDef): VerificationError[];
|
|
12
|
+
/**
|
|
13
|
+
* For a file with exactly one machine and one or more decision tables, verify
|
|
14
|
+
* that every DT condition and output name matches a machine context field.
|
|
15
|
+
* Multi-machine files are skipped (ambiguous ownership).
|
|
16
|
+
*/
|
|
17
|
+
export declare function checkFileContextAlignment(file: OrcaFile): VerificationError[];
|
|
18
|
+
/**
|
|
19
|
+
* Check DT integration with the machine: coverage gap, dead guards, and
|
|
20
|
+
* DT-constrained reachability. Only runs when exactly one machine is present
|
|
21
|
+
* and the DT is fully aligned. Multi-machine files are skipped (ambiguous ownership).
|
|
22
|
+
*/
|
|
23
|
+
export declare function checkDTMachineIntegration(file: OrcaFile): VerificationError[];
|
|
24
|
+
/**
|
|
25
|
+
* Compute the merged output domain across all aligned DTs in a single-machine file.
|
|
26
|
+
* Returns a map from DT output field name → set of values the DT(s) can produce.
|
|
27
|
+
* Used by the properties checker to prune guard-protected transitions that are
|
|
28
|
+
* semantically impossible given DT output constraints.
|
|
29
|
+
* Returns undefined if no aligned DTs are found.
|
|
30
|
+
*/
|
|
31
|
+
export declare function computeAlignedDTOutputDomain(file: OrcaFile): Map<string, Set<string>> | undefined;
|
|
5
32
|
//# sourceMappingURL=dt-verifier.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dt-verifier.d.ts","sourceRoot":"","sources":["../../src/verifier/dt-verifier.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dt-verifier.d.ts","sourceRoot":"","sources":["../../src/verifier/dt-verifier.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAiC,MAAM,qBAAqB,CAAC;AACtF,OAAO,EAAE,UAAU,EAAE,QAAQ,EAA+C,MAAM,kBAAkB,CAAC;AACrG,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAY,MAAM,YAAY,CAAC;AA2gB7E,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,gBAAgB,GAAG,kBAAkB,CAoB5E;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,gBAAgB,EAAE,GAAG,kBAAkB,CAYhF;AAMD;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,EAAE,EAAE,gBAAgB,EACpB,OAAO,EAAE,UAAU,GAClB,iBAAiB,EAAE,CA6BrB;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,QAAQ,GAAG,iBAAiB,EAAE,CAU7E;AA0PD;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,QAAQ,GAAG,iBAAiB,EAAE,CAmB7E;AAED;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,QAAQ,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,CAqBjG"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// Decision Table Verifier
|
|
2
|
-
// Checks: completeness, consistency, redundancy,
|
|
2
|
+
// Checks: completeness, consistency, redundancy, structural integrity, co-location alignment,
|
|
3
|
+
// and machine integration (coverage gap + dead guard detection).
|
|
3
4
|
// Helper to get all values for a condition
|
|
4
5
|
function getConditionValues(condition) {
|
|
5
6
|
if (condition.type === 'bool') {
|
|
@@ -496,4 +497,334 @@ export function verifyDecisionTables(dts) {
|
|
|
496
497
|
errors: allErrors,
|
|
497
498
|
};
|
|
498
499
|
}
|
|
500
|
+
// ============================================================
|
|
501
|
+
// Co-location Alignment Check
|
|
502
|
+
// ============================================================
|
|
503
|
+
/**
|
|
504
|
+
* Check that every condition name and output name in a co-located decision table
|
|
505
|
+
* exists as a context field in the machine. When a DT and machine are in the same
|
|
506
|
+
* file, this contract allows action generation to produce fully-wired code.
|
|
507
|
+
*/
|
|
508
|
+
export function checkDTContextAlignment(dt, machine) {
|
|
509
|
+
const errors = [];
|
|
510
|
+
const contextNames = new Set(machine.context.map(f => f.name));
|
|
511
|
+
for (const cond of dt.conditions) {
|
|
512
|
+
if (!contextNames.has(cond.name)) {
|
|
513
|
+
errors.push({
|
|
514
|
+
code: 'DT_CONTEXT_MISMATCH',
|
|
515
|
+
message: `Decision table '${dt.name}' condition '${cond.name}' has no matching context field in machine '${machine.name}'`,
|
|
516
|
+
severity: 'error',
|
|
517
|
+
location: { decisionTable: dt.name, condition: cond.name },
|
|
518
|
+
suggestion: `Add '${cond.name}' to the ## context section, or rename the condition to match an existing context field`,
|
|
519
|
+
});
|
|
520
|
+
}
|
|
521
|
+
}
|
|
522
|
+
for (const action of dt.actions) {
|
|
523
|
+
if (!contextNames.has(action.name)) {
|
|
524
|
+
errors.push({
|
|
525
|
+
code: 'DT_CONTEXT_MISMATCH',
|
|
526
|
+
message: `Decision table '${dt.name}' output '${action.name}' has no matching context field in machine '${machine.name}'`,
|
|
527
|
+
severity: 'error',
|
|
528
|
+
location: { decisionTable: dt.name, action: action.name },
|
|
529
|
+
suggestion: `Add '${action.name}' to the ## context section, or rename the output to match an existing context field`,
|
|
530
|
+
});
|
|
531
|
+
}
|
|
532
|
+
}
|
|
533
|
+
return errors;
|
|
534
|
+
}
|
|
535
|
+
/**
|
|
536
|
+
* For a file with exactly one machine and one or more decision tables, verify
|
|
537
|
+
* that every DT condition and output name matches a machine context field.
|
|
538
|
+
* Multi-machine files are skipped (ambiguous ownership).
|
|
539
|
+
*/
|
|
540
|
+
export function checkFileContextAlignment(file) {
|
|
541
|
+
if (file.machines.length !== 1 || file.decisionTables.length === 0) {
|
|
542
|
+
return [];
|
|
543
|
+
}
|
|
544
|
+
const machine = file.machines[0];
|
|
545
|
+
const errors = [];
|
|
546
|
+
for (const dt of file.decisionTables) {
|
|
547
|
+
errors.push(...checkDTContextAlignment(dt, machine));
|
|
548
|
+
}
|
|
549
|
+
return errors;
|
|
550
|
+
}
|
|
551
|
+
// ============================================================
|
|
552
|
+
// Machine Integration Checks
|
|
553
|
+
// ============================================================
|
|
554
|
+
/**
|
|
555
|
+
* Get the enumerable values for a machine context field.
|
|
556
|
+
* Returns null for types that cannot be exhaustively enumerated (string, int, decimal).
|
|
557
|
+
* For enum fields, values are stored as a comma-separated defaultValue string.
|
|
558
|
+
*/
|
|
559
|
+
function getMachineFieldValues(field) {
|
|
560
|
+
if (field.type.kind === 'bool')
|
|
561
|
+
return ['true', 'false'];
|
|
562
|
+
if (field.type.kind === 'custom' && field.type.name === 'enum') {
|
|
563
|
+
if (!field.defaultValue)
|
|
564
|
+
return null;
|
|
565
|
+
const vals = field.defaultValue.split(',').map(v => v.trim()).filter(Boolean);
|
|
566
|
+
return vals.length > 0 ? vals : null;
|
|
567
|
+
}
|
|
568
|
+
return null;
|
|
569
|
+
}
|
|
570
|
+
/**
|
|
571
|
+
* Generate all combinations of condition values using machine context values as the
|
|
572
|
+
* input domain. Returns null if any condition cannot be enumerated or if the
|
|
573
|
+
* total combinations exceed the safety limit.
|
|
574
|
+
*/
|
|
575
|
+
function generateMachineContextCombinations(dt, contextMap) {
|
|
576
|
+
const domainPerCondition = [];
|
|
577
|
+
for (const cond of dt.conditions) {
|
|
578
|
+
const field = contextMap.get(cond.name);
|
|
579
|
+
if (!field)
|
|
580
|
+
return null; // Alignment not met — caller should have checked
|
|
581
|
+
const vals = getMachineFieldValues(field);
|
|
582
|
+
if (!vals)
|
|
583
|
+
return null; // Non-enumerable type
|
|
584
|
+
domainPerCondition.push(vals);
|
|
585
|
+
}
|
|
586
|
+
// Safety limit
|
|
587
|
+
let total = 1;
|
|
588
|
+
for (const vals of domainPerCondition)
|
|
589
|
+
total *= vals.length;
|
|
590
|
+
if (total > 4096)
|
|
591
|
+
return null;
|
|
592
|
+
// Cartesian product
|
|
593
|
+
const combos = [];
|
|
594
|
+
function cartesian(idx, current) {
|
|
595
|
+
if (idx === dt.conditions.length) {
|
|
596
|
+
combos.push(new Map(current));
|
|
597
|
+
return;
|
|
598
|
+
}
|
|
599
|
+
const condName = dt.conditions[idx].name;
|
|
600
|
+
for (const val of domainPerCondition[idx]) {
|
|
601
|
+
current.set(condName, val);
|
|
602
|
+
cartesian(idx + 1, current);
|
|
603
|
+
current.delete(condName);
|
|
604
|
+
}
|
|
605
|
+
}
|
|
606
|
+
cartesian(0, new Map());
|
|
607
|
+
return combos;
|
|
608
|
+
}
|
|
609
|
+
/**
|
|
610
|
+
* DT_COVERAGE_GAP: Decision table must cover all input combinations the machine
|
|
611
|
+
* context can actually produce. Uses machine enum/bool values as the authoritative
|
|
612
|
+
* domain — stricter than DT_INCOMPLETE which only checks DT-declared values.
|
|
613
|
+
*/
|
|
614
|
+
function checkDTCoverageGap(dt, contextMap) {
|
|
615
|
+
const errors = [];
|
|
616
|
+
const combos = generateMachineContextCombinations(dt, contextMap);
|
|
617
|
+
if (!combos)
|
|
618
|
+
return errors; // Non-enumerable conditions or too many combinations
|
|
619
|
+
for (const combo of combos) {
|
|
620
|
+
const matched = dt.rules.some(rule => ruleMatchesInput(rule, dt.conditions, combo));
|
|
621
|
+
if (!matched) {
|
|
622
|
+
const comboDesc = [...combo.entries()].map(([k, v]) => `${k}=${v}`).join(', ');
|
|
623
|
+
errors.push({
|
|
624
|
+
code: 'DT_COVERAGE_GAP',
|
|
625
|
+
message: `Decision table '${dt.name}' has no rule for machine context combination: ${comboDesc}`,
|
|
626
|
+
severity: 'error',
|
|
627
|
+
location: { decisionTable: dt.name },
|
|
628
|
+
suggestion: `Add a rule covering this combination, or add a catch-all row using '-' wildcards`,
|
|
629
|
+
});
|
|
630
|
+
}
|
|
631
|
+
}
|
|
632
|
+
return errors;
|
|
633
|
+
}
|
|
634
|
+
/**
|
|
635
|
+
* Recursively collect all equality comparisons from a guard expression.
|
|
636
|
+
* Returns tuples of (fieldName, op, comparedValue) for any `ctx.X op Y` node.
|
|
637
|
+
*/
|
|
638
|
+
function collectFieldComparisons(expr) {
|
|
639
|
+
if (expr.kind === 'compare') {
|
|
640
|
+
// Only handle ctx.fieldName comparisons
|
|
641
|
+
if (expr.left.path.length === 2 && expr.left.path[0] === 'ctx') {
|
|
642
|
+
return [{ field: expr.left.path[1], op: expr.op, value: String(expr.right.value) }];
|
|
643
|
+
}
|
|
644
|
+
return [];
|
|
645
|
+
}
|
|
646
|
+
if (expr.kind === 'not')
|
|
647
|
+
return collectFieldComparisons(expr.expr);
|
|
648
|
+
if (expr.kind === 'and' || expr.kind === 'or') {
|
|
649
|
+
return [...collectFieldComparisons(expr.left), ...collectFieldComparisons(expr.right)];
|
|
650
|
+
}
|
|
651
|
+
return [];
|
|
652
|
+
}
|
|
653
|
+
/**
|
|
654
|
+
* Compute the set of guard names that test a DT output field against a value
|
|
655
|
+
* the DT never produces. These guards are always false after the DT action fires.
|
|
656
|
+
*/
|
|
657
|
+
function computeDeadGuardNames(dt, machine) {
|
|
658
|
+
const outputDomain = new Map();
|
|
659
|
+
for (const action of dt.actions) {
|
|
660
|
+
outputDomain.set(action.name, new Set());
|
|
661
|
+
}
|
|
662
|
+
for (const rule of dt.rules) {
|
|
663
|
+
for (const [name, value] of rule.actions) {
|
|
664
|
+
outputDomain.get(name)?.add(value);
|
|
665
|
+
}
|
|
666
|
+
}
|
|
667
|
+
const outputFields = new Set(dt.actions.map(a => a.name));
|
|
668
|
+
const dead = new Set();
|
|
669
|
+
for (const guardDef of machine.guards) {
|
|
670
|
+
const comparisons = collectFieldComparisons(guardDef.expression);
|
|
671
|
+
for (const { field, op, value } of comparisons) {
|
|
672
|
+
if (!outputFields.has(field))
|
|
673
|
+
continue;
|
|
674
|
+
if (op !== 'eq')
|
|
675
|
+
continue;
|
|
676
|
+
const possible = outputDomain.get(field);
|
|
677
|
+
if (!possible.has(value)) {
|
|
678
|
+
dead.add(guardDef.name);
|
|
679
|
+
}
|
|
680
|
+
}
|
|
681
|
+
}
|
|
682
|
+
return dead;
|
|
683
|
+
}
|
|
684
|
+
/**
|
|
685
|
+
* DT_GUARD_DEAD: A guard that compares a DT output field against a value the DT
|
|
686
|
+
* never produces is a dead guard — it can never be true immediately after the
|
|
687
|
+
* DT action fires. Reported as a warning since another action might set the field.
|
|
688
|
+
*/
|
|
689
|
+
function checkDTGuardDead(dt, machine) {
|
|
690
|
+
const errors = [];
|
|
691
|
+
// Build output domain: field → set of values the DT can produce
|
|
692
|
+
const outputDomain = new Map();
|
|
693
|
+
for (const action of dt.actions) {
|
|
694
|
+
outputDomain.set(action.name, new Set());
|
|
695
|
+
}
|
|
696
|
+
for (const rule of dt.rules) {
|
|
697
|
+
for (const [name, value] of rule.actions) {
|
|
698
|
+
outputDomain.get(name)?.add(value);
|
|
699
|
+
}
|
|
700
|
+
}
|
|
701
|
+
const outputFields = new Set(dt.actions.map(a => a.name));
|
|
702
|
+
for (const guardDef of machine.guards) {
|
|
703
|
+
const comparisons = collectFieldComparisons(guardDef.expression);
|
|
704
|
+
for (const { field, op, value } of comparisons) {
|
|
705
|
+
if (!outputFields.has(field))
|
|
706
|
+
continue; // Not a DT output field
|
|
707
|
+
if (op !== 'eq')
|
|
708
|
+
continue; // Only equality checks are conclusive
|
|
709
|
+
const possible = outputDomain.get(field);
|
|
710
|
+
if (!possible.has(value)) {
|
|
711
|
+
const possibleList = [...possible].join(', ') || '(none)';
|
|
712
|
+
errors.push({
|
|
713
|
+
code: 'DT_GUARD_DEAD',
|
|
714
|
+
message: `Guard '${guardDef.name}' tests '${field} == ${value}' but '${dt.name}' never outputs '${value}' for '${field}' (possible: ${possibleList})`,
|
|
715
|
+
severity: 'warning',
|
|
716
|
+
location: { decisionTable: dt.name, condition: field },
|
|
717
|
+
suggestion: `Update '${dt.name}' to produce '${value}' for '${field}', or remove this guard`,
|
|
718
|
+
});
|
|
719
|
+
}
|
|
720
|
+
}
|
|
721
|
+
}
|
|
722
|
+
return errors;
|
|
723
|
+
}
|
|
724
|
+
/**
|
|
725
|
+
* BFS from initial state, optionally skipping transitions guarded by dead guards.
|
|
726
|
+
* A non-negated transition guarded by a name in `deadGuards` is skipped (never fires).
|
|
727
|
+
* A negated dead guard (!dead) is NOT skipped — negation of a dead guard is always true.
|
|
728
|
+
*/
|
|
729
|
+
function bfsReachableWithDeadGuards(machine, deadGuards) {
|
|
730
|
+
const initial = machine.states.find(s => s.isInitial);
|
|
731
|
+
if (!initial)
|
|
732
|
+
return new Set();
|
|
733
|
+
const visited = new Set();
|
|
734
|
+
const queue = [initial.name];
|
|
735
|
+
while (queue.length > 0) {
|
|
736
|
+
const state = queue.shift();
|
|
737
|
+
if (visited.has(state))
|
|
738
|
+
continue;
|
|
739
|
+
visited.add(state);
|
|
740
|
+
for (const t of machine.transitions) {
|
|
741
|
+
if (t.source !== state)
|
|
742
|
+
continue;
|
|
743
|
+
// A non-negated dead guard means the transition can never fire
|
|
744
|
+
if (t.guard && !t.guard.negated && deadGuards.has(t.guard.name))
|
|
745
|
+
continue;
|
|
746
|
+
if (!visited.has(t.target))
|
|
747
|
+
queue.push(t.target);
|
|
748
|
+
}
|
|
749
|
+
}
|
|
750
|
+
return visited;
|
|
751
|
+
}
|
|
752
|
+
/**
|
|
753
|
+
* DT_UNREACHABLE_STATE: A state that is graph-reachable but only accessible via
|
|
754
|
+
* transitions guarded by dead guards — it can never be entered given DT outputs.
|
|
755
|
+
* Reported as a warning (structural reachability is preserved; the constraint is semantic).
|
|
756
|
+
*/
|
|
757
|
+
function checkDTDeadGuardReachability(dt, machine) {
|
|
758
|
+
const deadGuards = computeDeadGuardNames(dt, machine);
|
|
759
|
+
if (deadGuards.size === 0)
|
|
760
|
+
return [];
|
|
761
|
+
const plainReachable = bfsReachableWithDeadGuards(machine, new Set());
|
|
762
|
+
const dtReachable = bfsReachableWithDeadGuards(machine, deadGuards);
|
|
763
|
+
const errors = [];
|
|
764
|
+
const deadList = [...deadGuards].join(', ');
|
|
765
|
+
for (const state of machine.states) {
|
|
766
|
+
if (plainReachable.has(state.name) && !dtReachable.has(state.name)) {
|
|
767
|
+
errors.push({
|
|
768
|
+
code: 'DT_UNREACHABLE_STATE',
|
|
769
|
+
message: `State '${state.name}' is unreachable given '${dt.name}' output constraints — all entry paths are gated by dead guards (${deadList})`,
|
|
770
|
+
severity: 'warning',
|
|
771
|
+
location: { state: state.name, decisionTable: dt.name },
|
|
772
|
+
suggestion: `Update '${dt.name}' to produce values that satisfy the guards leading to '${state.name}', or revise the guard expressions`,
|
|
773
|
+
});
|
|
774
|
+
}
|
|
775
|
+
}
|
|
776
|
+
return errors;
|
|
777
|
+
}
|
|
778
|
+
/**
|
|
779
|
+
* Check DT integration with the machine: coverage gap, dead guards, and
|
|
780
|
+
* DT-constrained reachability. Only runs when exactly one machine is present
|
|
781
|
+
* and the DT is fully aligned. Multi-machine files are skipped (ambiguous ownership).
|
|
782
|
+
*/
|
|
783
|
+
export function checkDTMachineIntegration(file) {
|
|
784
|
+
if (file.machines.length !== 1 || file.decisionTables.length === 0) {
|
|
785
|
+
return [];
|
|
786
|
+
}
|
|
787
|
+
const machine = file.machines[0];
|
|
788
|
+
const contextMap = new Map(machine.context.map(f => [f.name, f]));
|
|
789
|
+
const errors = [];
|
|
790
|
+
for (const dt of file.decisionTables) {
|
|
791
|
+
// Only verify DTs that are fully aligned with machine context
|
|
792
|
+
const allAligned = [...dt.conditions, ...dt.actions].every(item => contextMap.has(item.name));
|
|
793
|
+
if (!allAligned)
|
|
794
|
+
continue;
|
|
795
|
+
errors.push(...checkDTCoverageGap(dt, contextMap));
|
|
796
|
+
errors.push(...checkDTGuardDead(dt, machine));
|
|
797
|
+
errors.push(...checkDTDeadGuardReachability(dt, machine));
|
|
798
|
+
}
|
|
799
|
+
return errors;
|
|
800
|
+
}
|
|
801
|
+
/**
|
|
802
|
+
* Compute the merged output domain across all aligned DTs in a single-machine file.
|
|
803
|
+
* Returns a map from DT output field name → set of values the DT(s) can produce.
|
|
804
|
+
* Used by the properties checker to prune guard-protected transitions that are
|
|
805
|
+
* semantically impossible given DT output constraints.
|
|
806
|
+
* Returns undefined if no aligned DTs are found.
|
|
807
|
+
*/
|
|
808
|
+
export function computeAlignedDTOutputDomain(file) {
|
|
809
|
+
if (file.machines.length !== 1 || file.decisionTables.length === 0)
|
|
810
|
+
return undefined;
|
|
811
|
+
const machine = file.machines[0];
|
|
812
|
+
const contextMap = new Map(machine.context.map(f => [f.name, f]));
|
|
813
|
+
const domain = new Map();
|
|
814
|
+
for (const dt of file.decisionTables) {
|
|
815
|
+
const allAligned = [...dt.conditions, ...dt.actions].every(item => contextMap.has(item.name));
|
|
816
|
+
if (!allAligned)
|
|
817
|
+
continue;
|
|
818
|
+
for (const actionDef of dt.actions) {
|
|
819
|
+
if (!domain.has(actionDef.name))
|
|
820
|
+
domain.set(actionDef.name, new Set());
|
|
821
|
+
for (const rule of dt.rules) {
|
|
822
|
+
const val = rule.actions.get(actionDef.name);
|
|
823
|
+
if (val !== undefined)
|
|
824
|
+
domain.get(actionDef.name).add(val);
|
|
825
|
+
}
|
|
826
|
+
}
|
|
827
|
+
}
|
|
828
|
+
return domain.size > 0 ? domain : undefined;
|
|
829
|
+
}
|
|
499
830
|
//# sourceMappingURL=dt-verifier.js.map
|