@yuaone/core 0.1.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.
- package/LICENSE +663 -0
- package/README.md +15 -0
- package/dist/__tests__/context-manager.test.d.ts +6 -0
- package/dist/__tests__/context-manager.test.d.ts.map +1 -0
- package/dist/__tests__/context-manager.test.js +220 -0
- package/dist/__tests__/context-manager.test.js.map +1 -0
- package/dist/__tests__/governor.test.d.ts +6 -0
- package/dist/__tests__/governor.test.d.ts.map +1 -0
- package/dist/__tests__/governor.test.js +210 -0
- package/dist/__tests__/governor.test.js.map +1 -0
- package/dist/__tests__/model-router.test.d.ts +6 -0
- package/dist/__tests__/model-router.test.d.ts.map +1 -0
- package/dist/__tests__/model-router.test.js +329 -0
- package/dist/__tests__/model-router.test.js.map +1 -0
- package/dist/agent-logger.d.ts +384 -0
- package/dist/agent-logger.d.ts.map +1 -0
- package/dist/agent-logger.js +820 -0
- package/dist/agent-logger.js.map +1 -0
- package/dist/agent-loop.d.ts +163 -0
- package/dist/agent-loop.d.ts.map +1 -0
- package/dist/agent-loop.js +609 -0
- package/dist/agent-loop.js.map +1 -0
- package/dist/agent-modes.d.ts +85 -0
- package/dist/agent-modes.d.ts.map +1 -0
- package/dist/agent-modes.js +418 -0
- package/dist/agent-modes.js.map +1 -0
- package/dist/approval.d.ts +137 -0
- package/dist/approval.d.ts.map +1 -0
- package/dist/approval.js +299 -0
- package/dist/approval.js.map +1 -0
- package/dist/async-completion-queue.d.ts +56 -0
- package/dist/async-completion-queue.d.ts.map +1 -0
- package/dist/async-completion-queue.js +77 -0
- package/dist/async-completion-queue.js.map +1 -0
- package/dist/auto-fix.d.ts +174 -0
- package/dist/auto-fix.d.ts.map +1 -0
- package/dist/auto-fix.js +319 -0
- package/dist/auto-fix.js.map +1 -0
- package/dist/codebase-context.d.ts +396 -0
- package/dist/codebase-context.d.ts.map +1 -0
- package/dist/codebase-context.js +1260 -0
- package/dist/codebase-context.js.map +1 -0
- package/dist/conflict-resolver.d.ts +191 -0
- package/dist/conflict-resolver.d.ts.map +1 -0
- package/dist/conflict-resolver.js +524 -0
- package/dist/conflict-resolver.js.map +1 -0
- package/dist/constants.d.ts +52 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +141 -0
- package/dist/constants.js.map +1 -0
- package/dist/context-budget.d.ts +435 -0
- package/dist/context-budget.d.ts.map +1 -0
- package/dist/context-budget.js +903 -0
- package/dist/context-budget.js.map +1 -0
- package/dist/context-compressor.d.ts +143 -0
- package/dist/context-compressor.d.ts.map +1 -0
- package/dist/context-compressor.js +511 -0
- package/dist/context-compressor.js.map +1 -0
- package/dist/context-manager.d.ts +112 -0
- package/dist/context-manager.d.ts.map +1 -0
- package/dist/context-manager.js +247 -0
- package/dist/context-manager.js.map +1 -0
- package/dist/continuous-reflection.d.ts +267 -0
- package/dist/continuous-reflection.d.ts.map +1 -0
- package/dist/continuous-reflection.js +338 -0
- package/dist/continuous-reflection.js.map +1 -0
- package/dist/cross-file-refactor.d.ts +352 -0
- package/dist/cross-file-refactor.d.ts.map +1 -0
- package/dist/cross-file-refactor.js +1544 -0
- package/dist/cross-file-refactor.js.map +1 -0
- package/dist/dag-orchestrator.d.ts +138 -0
- package/dist/dag-orchestrator.d.ts.map +1 -0
- package/dist/dag-orchestrator.js +379 -0
- package/dist/dag-orchestrator.js.map +1 -0
- package/dist/debate-orchestrator.d.ts +301 -0
- package/dist/debate-orchestrator.d.ts.map +1 -0
- package/dist/debate-orchestrator.js +719 -0
- package/dist/debate-orchestrator.js.map +1 -0
- package/dist/dependency-analyzer.d.ts +113 -0
- package/dist/dependency-analyzer.d.ts.map +1 -0
- package/dist/dependency-analyzer.js +444 -0
- package/dist/dependency-analyzer.js.map +1 -0
- package/dist/design-loop.d.ts +59 -0
- package/dist/design-loop.d.ts.map +1 -0
- package/dist/design-loop.js +344 -0
- package/dist/design-loop.js.map +1 -0
- package/dist/doc-intelligence.d.ts +383 -0
- package/dist/doc-intelligence.d.ts.map +1 -0
- package/dist/doc-intelligence.js +1307 -0
- package/dist/doc-intelligence.js.map +1 -0
- package/dist/dynamic-role-generator.d.ts +76 -0
- package/dist/dynamic-role-generator.d.ts.map +1 -0
- package/dist/dynamic-role-generator.js +194 -0
- package/dist/dynamic-role-generator.js.map +1 -0
- package/dist/errors.d.ts +69 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +102 -0
- package/dist/errors.js.map +1 -0
- package/dist/event-bus.d.ts +159 -0
- package/dist/event-bus.d.ts.map +1 -0
- package/dist/event-bus.js +305 -0
- package/dist/event-bus.js.map +1 -0
- package/dist/execution-engine.d.ts +425 -0
- package/dist/execution-engine.d.ts.map +1 -0
- package/dist/execution-engine.js +1555 -0
- package/dist/execution-engine.js.map +1 -0
- package/dist/git-intelligence.d.ts +306 -0
- package/dist/git-intelligence.d.ts.map +1 -0
- package/dist/git-intelligence.js +1099 -0
- package/dist/git-intelligence.js.map +1 -0
- package/dist/governor.d.ts +77 -0
- package/dist/governor.d.ts.map +1 -0
- package/dist/governor.js +161 -0
- package/dist/governor.js.map +1 -0
- package/dist/hierarchical-planner.d.ts +313 -0
- package/dist/hierarchical-planner.d.ts.map +1 -0
- package/dist/hierarchical-planner.js +981 -0
- package/dist/hierarchical-planner.js.map +1 -0
- package/dist/index.d.ts +121 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +123 -0
- package/dist/index.js.map +1 -0
- package/dist/intent-inference.d.ts +103 -0
- package/dist/intent-inference.d.ts.map +1 -0
- package/dist/intent-inference.js +605 -0
- package/dist/intent-inference.js.map +1 -0
- package/dist/interrupt-manager.d.ts +143 -0
- package/dist/interrupt-manager.d.ts.map +1 -0
- package/dist/interrupt-manager.js +196 -0
- package/dist/interrupt-manager.js.map +1 -0
- package/dist/kernel.d.ts +564 -0
- package/dist/kernel.d.ts.map +1 -0
- package/dist/kernel.js +1419 -0
- package/dist/kernel.js.map +1 -0
- package/dist/language-support.d.ts +232 -0
- package/dist/language-support.d.ts.map +1 -0
- package/dist/language-support.js +1134 -0
- package/dist/language-support.js.map +1 -0
- package/dist/llm-client.d.ts +82 -0
- package/dist/llm-client.d.ts.map +1 -0
- package/dist/llm-client.js +475 -0
- package/dist/llm-client.js.map +1 -0
- package/dist/mcp-client.d.ts +232 -0
- package/dist/mcp-client.d.ts.map +1 -0
- package/dist/mcp-client.js +718 -0
- package/dist/mcp-client.js.map +1 -0
- package/dist/memory-manager.d.ts +200 -0
- package/dist/memory-manager.d.ts.map +1 -0
- package/dist/memory-manager.js +568 -0
- package/dist/memory-manager.js.map +1 -0
- package/dist/memory.d.ts +87 -0
- package/dist/memory.d.ts.map +1 -0
- package/dist/memory.js +341 -0
- package/dist/memory.js.map +1 -0
- package/dist/model-router.d.ts +245 -0
- package/dist/model-router.d.ts.map +1 -0
- package/dist/model-router.js +632 -0
- package/dist/model-router.js.map +1 -0
- package/dist/parallel-executor.d.ts +125 -0
- package/dist/parallel-executor.d.ts.map +1 -0
- package/dist/parallel-executor.js +201 -0
- package/dist/parallel-executor.js.map +1 -0
- package/dist/perf-optimizer.d.ts +212 -0
- package/dist/perf-optimizer.d.ts.map +1 -0
- package/dist/perf-optimizer.js +721 -0
- package/dist/perf-optimizer.js.map +1 -0
- package/dist/persona.d.ts +305 -0
- package/dist/persona.d.ts.map +1 -0
- package/dist/persona.js +887 -0
- package/dist/persona.js.map +1 -0
- package/dist/planner.d.ts +70 -0
- package/dist/planner.d.ts.map +1 -0
- package/dist/planner.js +264 -0
- package/dist/planner.js.map +1 -0
- package/dist/qa-pipeline.d.ts +365 -0
- package/dist/qa-pipeline.d.ts.map +1 -0
- package/dist/qa-pipeline.js +1352 -0
- package/dist/qa-pipeline.js.map +1 -0
- package/dist/reasoning-adapter.d.ts +116 -0
- package/dist/reasoning-adapter.d.ts.map +1 -0
- package/dist/reasoning-adapter.js +187 -0
- package/dist/reasoning-adapter.js.map +1 -0
- package/dist/role-registry.d.ts +55 -0
- package/dist/role-registry.d.ts.map +1 -0
- package/dist/role-registry.js +192 -0
- package/dist/role-registry.js.map +1 -0
- package/dist/sandbox-tiers.d.ts +327 -0
- package/dist/sandbox-tiers.d.ts.map +1 -0
- package/dist/sandbox-tiers.js +928 -0
- package/dist/sandbox-tiers.js.map +1 -0
- package/dist/security-scanner.d.ts +222 -0
- package/dist/security-scanner.d.ts.map +1 -0
- package/dist/security-scanner.js +1129 -0
- package/dist/security-scanner.js.map +1 -0
- package/dist/security.d.ts +93 -0
- package/dist/security.d.ts.map +1 -0
- package/dist/security.js +393 -0
- package/dist/security.js.map +1 -0
- package/dist/self-reflection.d.ts +397 -0
- package/dist/self-reflection.d.ts.map +1 -0
- package/dist/self-reflection.js +908 -0
- package/dist/self-reflection.js.map +1 -0
- package/dist/session-persistence.d.ts +191 -0
- package/dist/session-persistence.d.ts.map +1 -0
- package/dist/session-persistence.js +395 -0
- package/dist/session-persistence.js.map +1 -0
- package/dist/speculative-executor.d.ts +210 -0
- package/dist/speculative-executor.d.ts.map +1 -0
- package/dist/speculative-executor.js +618 -0
- package/dist/speculative-executor.js.map +1 -0
- package/dist/state-machine.d.ts +289 -0
- package/dist/state-machine.d.ts.map +1 -0
- package/dist/state-machine.js +695 -0
- package/dist/state-machine.js.map +1 -0
- package/dist/sub-agent.d.ts +177 -0
- package/dist/sub-agent.d.ts.map +1 -0
- package/dist/sub-agent.js +303 -0
- package/dist/sub-agent.js.map +1 -0
- package/dist/system-prompt.d.ts +26 -0
- package/dist/system-prompt.d.ts.map +1 -0
- package/dist/system-prompt.js +84 -0
- package/dist/system-prompt.js.map +1 -0
- package/dist/test-intelligence.d.ts +439 -0
- package/dist/test-intelligence.d.ts.map +1 -0
- package/dist/test-intelligence.js +1165 -0
- package/dist/test-intelligence.js.map +1 -0
- package/dist/types.d.ts +632 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/dist/vector-index.d.ts +314 -0
- package/dist/vector-index.d.ts.map +1 -0
- package/dist/vector-index.js +618 -0
- package/dist/vector-index.js.map +1 -0
- package/package.json +41 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-intelligence.js","sourceRoot":"","sources":["../src/git-intelligence.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGtC,MAAM,QAAQ,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;AAiKvC,oBAAoB;AAEpB,MAAM,YAAY,GAAG,iCAAiC,CAAC;AACvD,MAAM,YAAY,GAAG,+CAA+C,CAAC;AACrE,MAAM,cAAc,GAClB,sKAAsK,CAAC;AACzK,MAAM,aAAa,GAAG,8BAA8B,CAAC;AACrD,MAAM,UAAU,GAAG,gFAAgF,CAAC;AACpG,MAAM,aAAa,GAAG,uDAAuD,CAAC;AAE9E,MAAM,eAAe,GACnB,yHAAyH,CAAC;AAE5H,MAAM,gBAAgB,GAAG,kEAAkE,CAAC;AAC5F,MAAM,oBAAoB,GAAG,uFAAuF,CAAC;AACrH,MAAM,gBAAgB,GAAG,kFAAkF,CAAC;AAE5G,6CAA6C;AAC7C,MAAM,iBAAiB,GAAG,4EAA4E,CAAC;AACvG,qDAAqD;AACrD,MAAM,oBAAoB,GAAG,0DAA0D,CAAC;AAExF,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAE/B,gCAAgC;AAEhC;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,eAAe;IAClB,MAAM,CAAkC;IACxC,aAAa,GAAkB,IAAI,CAAC;IAE5C,YAAY,MAA6B;QACvC,IAAI,CAAC,MAAM,GAAG;YACZ,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,EAAE;YACzC,eAAe,EAAE,MAAM,CAAC,eAAe,IAAI,GAAG;YAC9C,mBAAmB,EAAE,MAAM,CAAC,mBAAmB,IAAI,IAAI;SACxD,CAAC;IACJ,CAAC;IAED,8BAA8B;IAE9B;;;OAGG;IACH,KAAK,CAAC,qBAAqB,CAAC,MAAM,GAAG,IAAI;QACvC,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEtC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YACjB,OAAO;gBACL,OAAO,EAAE,qBAAqB;gBAC9B,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE,IAAI;gBACZ,WAAW,EAAE,qBAAqB;aACnC,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAExC,gBAAgB;QAChB,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,MAAM,OAAO,GAAG,GAAG,QAAQ,CAAC,IAAI,GAAG,SAAS,KAAK,QAAQ,CAAC,WAAW,EAAE,CAAC;QAExE,yCAAyC;QACzC,IAAI,IAAI,GAAkB,IAAI,CAAC;QAC/B,IAAI,QAAQ,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAG,MAAM;gBACrB,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;gBAChD,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;YACvC,MAAM,KAAK,GAAG,QAAQ;iBACnB,KAAK,CAAC,IAAI,CAAC;iBACX,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;iBAC9B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;iBAC3B,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAChB,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QACD,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;YAClB,IAAI,GAAG,QAAQ,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACrD,CAAC;QAED,kCAAkC;QAClC,IAAI,MAAM,GAAkB,IAAI,CAAC;QACjC,IAAI,QAAQ,CAAC,cAAc,EAAE,CAAC;YAC5B,MAAM,GAAG,oBAAoB,QAAQ,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;YACnE,IAAI,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvD,MAAM,IAAI,uBAAuB,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACxF,CAAC;QACH,CAAC;QAED,UAAU;QACV,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC;QACxB,IAAI,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC/B,IAAI,MAAM;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAEnC,OAAO;YACL,OAAO;YACP,IAAI;YACJ,MAAM;YACN,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;SAC9B,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,WAAW,CAAC,IAAY;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEjE,6CAA6C;QAC7C,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;gBAAE,UAAU,EAAE,CAAC;iBAC7D,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;gBAAE,SAAS,EAAE,CAAC;QACxE,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACrC,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC7D,MAAM,eAAe,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,cAAc,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAE/E,OAAO;YACL,IAAI;YACJ,KAAK;YACL,WAAW;YACX,IAAI,EAAE,IAAI;YACV,cAAc;YACd,YAAY,EAAE,KAAK,CAAC,MAAM;YAC1B,UAAU;YACV,SAAS;SACV,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,qBAAqB,CAAC,IAAY;QAChC,MAAM,OAAO,GAAyB,EAAE,CAAC;QACzC,MAAM,eAAe,GAAa,EAAE,CAAC;QAErC,yBAAyB;QACzB,IAAI,KAA6B,CAAC;QAClC,MAAM,SAAS,GAAG,IAAI,MAAM,CAAC,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC7D,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC/C,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;QAClC,CAAC;QAED,qCAAqC;QACrC,MAAM,SAAS,GAAG,IAAI,MAAM,CAAC,oBAAoB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAChE,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC/C,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;QAC/B,CAAC;QAED,mEAAmE;QACnE,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;YAChC,MAAM,OAAO,GAAG,IAAI,MAAM,CACxB,2CAA2C,IAAI,mBAAmB,EAClE,GAAG,CACJ,CAAC;YACF,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,UAAU,EAAE,CAAC;gBACf,oBAAoB;gBACpB,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oBACpC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,IAAI,CAAC;gBACX,WAAW,EAAE,yBAAyB,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAClE,eAAe;aAChB,CAAC,CAAC;QACL,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,0BAA0B;IAE1B;;;OAGG;IACH,KAAK,CAAC,qBAAqB,CAAC,UAAmB;QAC7C,MAAM,IAAI,GAAG,UAAU,IAAI,CAAC,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;QAC9D,MAAM,aAAa,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAErF,6BAA6B;QAC7B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC;YAC/B,KAAK;YACL,GAAG,IAAI,QAAQ;YACf,WAAW;YACX,wBAAwB;SACzB,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAEzC,mBAAmB;QACnB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAEpD,sBAAsB;QACtB,MAAM,QAAQ,GAAqB,EAAE,CAAC;QACtC,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;YAC1C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;YACtE,IAAI,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;gBACtB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;QAED,yBAAyB;QACzB,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC7C,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5D,CAAC;QACD,MAAM,WAAW,GACf,CAAC,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC;QAE3E,gBAAgB;QAChB,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC9C,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,IAAI,CAAC,CAAC,KAAK;gBAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7E,CAAC;QACD,MAAM,YAAY,GAChB,CAAC,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;QAEzE,QAAQ;QACR,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,YAAY,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,MAAM,KAAK,GAAG,GAAG,WAAW,GAAG,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,aAAa,EAAE,CAAC;QAEpF,kBAAkB;QAClB,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAE9C,oBAAoB;QACpB,MAAM,gBAAgB,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACjD,MAAM,IAAI,GACR,KAAK,CAAC,MAAM,KAAK,GAAG;gBAClB,CAAC,CAAC,UAAU;gBACZ,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,GAAG;oBACpB,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,cAAc,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,SAAS,GAAG,CAAC;YAC9D,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,mBAAmB;QACnB,MAAM,eAAe,GAAa,EAAE,CAAC;QACrC,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,IAAI,CAAC,CAAC,cAAc,EAAE,CAAC;gBACrB,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;QAED,YAAY;QACZ,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACpD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAE5D,SAAS;QACT,MAAM,MAAM,GAAG,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC;QAExD,YAAY;QACZ,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAE9D,OAAO;YACL,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK;YAC7D,OAAO;YACP,gBAAgB;YAChB,QAAQ;YACR,eAAe;YACf,SAAS;YACT,MAAM;SACP,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,gBAAgB,CAAC,KAAgB;QACrC,MAAM,QAAQ,GACZ,KAAK;YACL,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC,CAAC;iBACnF,IAAI,EAAE;iBACN,KAAK,CAAC,IAAI,CAAC;iBACX,MAAM,CAAC,OAAO,CAAC,CAAC;QAErB,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC/C,MAAM,WAAW,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAErF,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;gBACvF,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;gBAC5C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;oBAC3B,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,IAAI,KAAK,CAAC,MAAM,KAAK,mBAAmB,EAAE,CAAC;wBACzF,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC5E,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,6CAA6C;YAC/C,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,YAAY,CAAC,OAAO,EAAE,CAAC;aAC/B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aAC3B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;aACX,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACH,aAAa,CAAC,QAAwB;QACpC,OAAO,IAAI,CAAC,yBAAyB,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,8BAA8B;IAE9B;;;OAGG;IACH,iBAAiB,CAAC,eAAuB;QACvC,MAAM,KAAK,GAAG,eAAe,CAAC,WAAW,EAAE,CAAC;QAE5C,IAAI,IAAY,CAAC;QACjB,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,IAAI,GAAG,KAAK,CAAC;QACf,CAAC;aAAM,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACxC,IAAI,GAAG,MAAM,CAAC;QAChB,CAAC;aAAM,IAAI,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5C,IAAI,GAAG,UAAU,CAAC;QACpB,CAAC;aAAM,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACxC,IAAI,GAAG,MAAM,CAAC;QAChB,CAAC;aAAM,IAAI,6BAA6B,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACrD,IAAI,GAAG,MAAM,CAAC;QAChB,CAAC;aAAM,IAAI,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACnD,IAAI,GAAG,MAAM,CAAC;QAChB,CAAC;aAAM,IAAI,oCAAoC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5D,IAAI,GAAG,IAAI,CAAC;QACd,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,MAAM,CAAC;QAChB,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC;QAEpD,OAAO;YACL,IAAI;YACJ,OAAO;YACP,MAAM,EAAE,aAAa,IAAI,gCAAgC;SAC1D,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,mBAAmB;QACvB,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa;YAAE,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;QAChE,IAAI,IAAI,CAAC,aAAa;YAAE,OAAO,IAAI,CAAC,aAAa,CAAC;QAElD,kBAAkB;QAClB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,0BAA0B,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAClF,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC;YACvD,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;gBAC5B,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,UAAU;QACZ,CAAC;QAED,gCAAgC;QAChC,KAAK,MAAM,SAAS,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC;YACtD,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;gBACrD,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;gBAC/B,OAAO,SAAS,CAAC;YACnB,CAAC;YAAC,MAAM,CAAC;gBACP,uBAAuB;YACzB,CAAC;QACH,CAAC;QAED,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;QAC5B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,gBAAgB,CAAC,YAAqB;QAC1C,MAAM,MAAM,GAAG,YAAY,IAAI,CAAC,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;QAClE,MAAM,WAAW,GAAyB,EAAE,CAAC;QAE7C,kCAAkC;QAClC,IAAI,QAAkB,CAAC;QACvB,IAAI,CAAC;YACH,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,SAAS,CAAC,CAAC,CAAC;iBACrE,IAAI,EAAE;iBACN,KAAK,CAAC,IAAI,CAAC;iBACX,MAAM,CAAC,OAAO,CAAC,CAAC;QACrB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,kDAAkD;QAClD,IAAI,UAAoB,CAAC;QACzB,IAAI,CAAC;YACH,UAAU,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,aAAa,EAAE,UAAU,MAAM,EAAE,CAAC,CAAC,CAAC;iBACvE,IAAI,EAAE;iBACN,KAAK,CAAC,IAAI,CAAC;iBACX,MAAM,CAAC,OAAO,CAAC,CAAC;QACrB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,oBAAoB;QACpB,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;QACrC,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAE5D,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;YAC/B,IAAI,cAAkC,CAAC;YACvC,IAAI,cAAkC,CAAC;YAEvC,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,CACd,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CACtE,CAAC,IAAI,EAAE,CAAC;gBACT,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACjC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;oBACtB,cAAc,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;oBAC1B,cAAc,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO;YACT,CAAC;YAED,uDAAuD;YACvD,IAAI,IAAI,GAA8B,QAAQ,CAAC;YAC/C,IAAI,MAAM,GAAG,gCAAgC,CAAC;YAE9C,IAAI,CAAC;gBACH,8BAA8B;gBAC9B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,MAAM,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;gBACzE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,UAAU,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;gBAE3E,iCAAiC;gBACjC,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;gBAClD,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;gBAEtD,+BAA+B;gBAC/B,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC7C,WAAW,CAAC,IAAI,CACd,CAAC,UAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,IAAI,UAAU,CAAC,GAAG,IAAI,UAAU,CAAC,KAAK,IAAI,QAAQ,CAAC,GAAG,CACrF,CACF,CAAC;gBAEF,IAAI,UAAU,EAAE,CAAC;oBACf,IAAI,GAAG,MAAM,CAAC;oBACd,MAAM,GAAG,6CAA6C,CAAC;gBACzD,CAAC;qBAAM,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC1D,IAAI,GAAG,QAAQ,CAAC;oBAChB,MAAM,GAAG,6CAA6C,CAAC;gBACzD,CAAC;qBAAM,CAAC;oBACN,IAAI,GAAG,KAAK,CAAC;oBACb,MAAM,GAAG,sCAAsC,CAAC;gBAClD,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,8CAA8C;YAChD,CAAC;YAED,WAAW,CAAC,IAAI,CAAC;gBACf,IAAI;gBACJ,IAAI;gBACJ,MAAM;gBACN,WAAW,EAAE,MAAM;gBACnB,cAAc;gBACd,cAAc;aACf,CAAC,CAAC;QACL,CAAC;QAED,oCAAoC;QACpC,MAAM,SAAS,GAA2B,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;QACzE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAEhF,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,2BAA2B;IAE3B;;;OAGG;IACH,KAAK,CAAC,YAAY,CAAC,IAAI,GAAG,EAAE;QAC1B,MAAM,KAAK,GAAG,GAAG,IAAI,WAAW,CAAC;QAEjC,yBAAyB;QACzB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC;YAC/B,KAAK;YACL,WAAW,KAAK,EAAE;YAClB,aAAa;YACb,2BAA2B;SAC5B,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkE,CAAC;QAC7F,MAAM,WAAW,GAAG,IAAI,GAAG,EAAuB,CAAC;QAEnD,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,IAAI,cAAc,GAAG,EAAE,CAAC;QAExB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACvC,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC7B,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC1C,SAAS;YACX,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI;gBAAE,SAAS;YAEpB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;YAC5E,KAAK,CAAC,KAAK,EAAE,CAAC;YACd,IAAI,WAAW;gBAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC/C,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACpC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAE5B,yBAAyB;YACzB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QAC/D,CAAC;QAED,4BAA4B;QAC5B,MAAM,MAAM,GAAG,CAAC,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACjF,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAErC,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC;oBAC/B,KAAK;oBACL,WAAW,KAAK,EAAE;oBAClB,cAAc;oBACd,IAAI;oBACJ,IAAI;iBACL,CAAC,CAAC;gBACH,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;gBACtE,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACjC,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO;YACT,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAEpC,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;YACnC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAChF,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAErE,OAAO;gBACL,IAAI;gBACJ,WAAW,EAAE,IAAI,CAAC,KAAK;gBACvB,OAAO,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC3C,WAAW,EAAE,QAAQ;gBACrB,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG;gBACvD,UAAU,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aAC9E,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,kBAAkB,CAAC,KAAe;QACtC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;QAE1C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC;oBAC5B,KAAK;oBACL,eAAe,KAAK,EAAE;oBACtB,WAAW;oBACX,IAAI;oBACJ,IAAI;iBACL,CAAC,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;gBAC/D,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC1B,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,mBAAmB,CACvB,IAAY;QAEZ,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC;gBAC5B,KAAK;gBACL,eAAe,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE;gBAC5C,kBAAkB;gBAClB,IAAI;gBACJ,IAAI;aACL,CAAC,CAAC;YAEH,MAAM,SAAS,GAAG,IAAI,GAAG,EAAmD,CAAC;YAE7E,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC7D,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACrC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI;oBAAE,SAAS;gBAE7B,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAClC,IAAI,KAAK,EAAE,CAAC;oBACV,KAAK,CAAC,OAAO,EAAE,CAAC;oBAChB,IAAI,IAAI,GAAG,KAAK,CAAC,UAAU;wBAAE,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;gBACvD,CAAC;qBAAM,CAAC;oBACN,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;gBACxD,CAAC;YACH,CAAC;YAED,OAAO,CAAC,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;iBAC5B,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;iBAC1C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,qBAAqB,CACzB,IAAa;QAOb,MAAM,IAAI,GAAG;YACX,KAAK;YACL,eAAe,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE;YAC5C,iBAAiB;SAClB,CAAC;QACF,IAAI,IAAI;YAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAEhC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAExD,MAAM,aAAa,GAA2B,EAAE,CAAC;QACjD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC5C,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAClC,IAAI,OAAO,GAAG,CAAC;gBAAE,SAAS;YAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YACvC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;YACxC,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa;YAE/C,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACpB,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAElD,8CAA8C;YAC9C,MAAM,iBAAiB,GAAG,yBAAyB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAClE,MAAM,IAAI,GAAG,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,OAAO,CAAC;YACjE,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACvD,CAAC;QAED,oBAAoB;QACpB,MAAM,QAAQ,GAAG,CAAC,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;aACtC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aAC3B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;aACX,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAEvB,2BAA2B;QAC3B,IAAI,iBAAiB,GAAG,CAAC,CAAC;QAC1B,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACtB,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,CAAC;YAClD,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;YACnC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;YACnD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9D,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;QACrE,CAAC;QAED,OAAO;YACL,YAAY,EAAE,KAAK,CAAC,MAAM;YAC1B,aAAa;YACb,QAAQ;YACR,iBAAiB;SAClB,CAAC;IACJ,CAAC;IAED,iBAAiB;IAEjB;;OAEG;IACH,KAAK,CAAC,SAAS;QACb,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAE9E,wBAAwB;QACxB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC;QAC/D,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEpE,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,kBAAkB,GAAG,CAAC,CAAC;QAC3B,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,KAAK,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,GAAG;gBAAE,aAAa,EAAE,CAAC;YAC7D,IAAI,QAAQ,IAAI,QAAQ,KAAK,GAAG,IAAI,QAAQ,KAAK,GAAG;gBAAE,kBAAkB,EAAE,CAAC;YAC3E,IAAI,KAAK,KAAK,GAAG;gBAAE,kBAAkB,EAAE,CAAC;QAC1C,CAAC;QAED,eAAe;QACf,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,CACf,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,oBAAoB,CAAC,CAAC,CAC9E,CAAC,IAAI,EAAE,CAAC;YACT,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACpC,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;YACnD,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;QACpD,CAAC;QAAC,MAAM,CAAC;YACP,yBAAyB;QAC3B,CAAC;QAED,iBAAiB;QACjB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC;YAC/B,KAAK;YACL,gBAAgB;YAChB,wBAAwB;SACzB,CAAC,CAAC;QACH,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAE/C,OAAO;YACL,aAAa,EAAE,MAAM;YACrB,kBAAkB;YAClB,aAAa;YACb,aAAa;YACb,YAAY;YACZ,aAAa;SACd,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO;QACX,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC;QACzD,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC;IACpC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,cAAc,CAClB,UAAmB;QAEnB,MAAM,IAAI,GAAG,UAAU,IAAI,CAAC,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC;QACtE,MAAM,OAAO,GAAoB,EAAE,CAAC;QAEpC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC/B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAE,SAAS;YAE/B,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;YACvE,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;YACtE,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;YAEvB,mBAAmB;YACnB,IAAI,MAAM,GAAG,GAAG,CAAC;YACjB,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC;oBAChC,MAAM;oBACN,eAAe;oBACf,GAAG,IAAI,QAAQ;oBACf,IAAI;oBACJ,IAAI;iBACL,CAAC,CAAC;gBACH,MAAM,CAAC,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3C,IAAI,CAAC;oBAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;YACxB,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;YAED,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,0BAA0B;IAE1B;;;;OAIG;IACK,KAAK,CAAC,GAAG,CAAC,IAAc;QAC9B,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE;gBAC7C,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;gBAC5B,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,QAAQ;gBACrC,OAAO,EAAE,MAAM;aAChB,CAAC,CAAC;YACH,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,GAA4C,CAAC;YAC3D,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,SAAS,EAAE,CAAC,CAAC;QACjG,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,SAAS,CAAC,IAAY;QAC5B,MAAM,KAAK,GAAqB,EAAE,CAAC;QACnC,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEjE,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;YACnC,yCAAyC;YACzC,MAAM,WAAW,GAAG,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACvD,MAAM,IAAI,GAAG,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC;YAE/D,0BAA0B;YAC1B,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC1C,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC,CAAE,CAAC,CAAC;YACnC,CAAC;YAED,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9B,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,CAAC;IACnB,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,IAAY,EAAE,KAAe;QACnD,4BAA4B;QAC5B,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,IAAI,OAAO;YAAE,OAAO,MAAM,CAAC;QAE3B,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,IAAI,OAAO;YAAE,OAAO,MAAM,CAAC;QAE3B,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,IAAI,QAAQ;YAAE,OAAO,OAAO,CAAC;QAE7B,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,IAAI,KAAK;YAAE,OAAO,IAAI,CAAC;QAEvB,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,IAAI,QAAQ;YAAE,OAAO,OAAO,CAAC;QAE7B,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACjF,IAAI,SAAS;YAAE,OAAO,OAAO,CAAC;QAE9B,kCAAkC;QAClC,MAAM,WAAW,GAAG,IAAI;aACrB,KAAK,CAAC,IAAI,CAAC;aACX,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;aACrD,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,IAAI,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC;YAAE,OAAO,KAAK,CAAC;QACpD,IAAI,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC;YAAE,OAAO,MAAM,CAAC;QAEtD,+BAA+B;QAC/B,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;gBAAE,SAAS,EAAE,CAAC;iBAC5D,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;gBAAE,SAAS,EAAE,CAAC;QACxE,CAAC;QAED,4CAA4C;QAC5C,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QACnD,IAAI,WAAW,IAAI,CAAC,SAAS,GAAG,SAAS,GAAG,CAAC,CAAC;YAAE,OAAO,MAAM,CAAC;QAE9D,2CAA2C;QAC3C,IAAI,SAAS,GAAG,SAAS;YAAE,OAAO,UAAU,CAAC;QAE7C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,UAAU,CAAC,KAAe;QAChC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAEpC,wCAAwC;QACxC,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC/B,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC3C,8BAA8B;YAC9B,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;YAClE,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACrD,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;QAClF,CAAC,CAAC,CAAC;QAEH,8CAA8C;QAC9C,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACtD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,CAAC;QACzC,CAAC;QAED,qDAAqD;QACrD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAC7C,4BAA4B;YAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACnE,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YACjD,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC;gBAC5D,IAAI,QAAQ;oBAAE,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,IAAY;QACjC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IACjF,CAAC;IAED;;OAEG;IACK,mBAAmB,CAAC,IAAc;QACxC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACjC,IAAI,MAAM,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;QACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBACpC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC7B,IAAI,CAAC,MAAM;oBAAE,OAAO,EAAE,CAAC;YACzB,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,mBAAmB,CAAC,KAAa,EAAE,IAAY;QACrD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEhC,2CAA2C;QAC3C,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9E,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACrC,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBACrE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACtB,CAAC;YACH,CAAC;iBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrF,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACrC,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBACrE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACxB,CAAC;YACH,CAAC;QACH,CAAC;QAED,4CAA4C;QAC5C,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;YACxC,OAAO,CACL,uEAAuE,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC/E,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC;gBAChC,CAAC,CAAC,MAAM,GAAG,EAAE,CACd,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,gBAAgB,EAAE,CAAC;YACrB,wBAAwB;YACxB,MAAM,WAAW,GACf,0FAA0F,CAAC,IAAI,CAC7F,gBAAgB,CACjB,CAAC;YACJ,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,IAAI,GACR,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC;gBACjG,OAAO,GAAG,IAAI,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;YACrC,CAAC;QACH,CAAC;QAED,qCAAqC;QACrC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7C,OAAO,iBAAiB,KAAK,CAAC,MAAM,SAAS,CAAC;QAChD,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7C,OAAO,uBAAuB,OAAO,CAAC,MAAM,SAAS,CAAC;QACxD,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3C,OAAO,iBAAiB,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,SAAS,CAAC;QACnE,CAAC;QAED,OAAO,cAAc,CAAC;IACxB,CAAC;IAED;;OAEG;IACK,QAAQ,CACd,MAAc;QAEd,OAAO,MAAM;aACV,IAAI,EAAE;aACN,KAAK,CAAC,IAAI,CAAC;aACX,MAAM,CAAC,OAAO,CAAC;aACf,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACZ,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC9B,OAAO;gBACL,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;gBACpB,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;gBACvB,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;gBACtB,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;aACrB,CAAC;QACJ,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACK,UAAU,CAChB,MAAc;QAEd,MAAM,OAAO,GAAqD,EAAE,CAAC;QACrE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEjC,IAAI,aAAa,GAAG,EAAE,CAAC;QACvB,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,IAAI,WAAW,GAAG,CAAC,CAAC;QAEpB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,kDAAkD;YAClD,MAAM,WAAW,GAAG,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7D,IAAI,WAAW,EAAE,CAAC;gBAChB,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,CAAC;gBAC5C,SAAS;YACX,CAAC;YAED,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC/B,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAChC,CAAC;iBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC3C,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBACxC,WAAW,GAAG,IAAI,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;YAClD,CAAC;iBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjC,yCAAyC;gBACzC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;YAChF,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,IAAY;QACrC,OAAO,IAAI;aACR,WAAW,EAAE;aACb,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;aAC5B,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;aACpB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;aACnB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;aACrB,KAAK,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,IAAY;QACpC,MAAM,MAAM,GAAqC,EAAE,CAAC;QACpD,MAAM,MAAM,GAAG,+CAA+C,CAAC;QAE/D,IAAI,KAA6B,CAAC;QAClC,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC5C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,CAAC;YACtC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;YAC5C,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC;QACjD,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,yBAAyB,CAAC,QAA0B;QAC1D,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;QAEjC,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,oBAAoB;YACpB,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;gBACf,KAAK,MAAM;oBACT,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;oBAC1B,MAAM;gBACR,KAAK,KAAK;oBACR,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBAClB,MAAM;gBACR,KAAK,MAAM;oBACT,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;oBAC5B,MAAM;gBACR,KAAK,MAAM;oBACT,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBACtB,MAAM;gBACR,KAAK,MAAM;oBACT,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;oBAC1B,MAAM;gBACR,KAAK,UAAU;oBACb,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;oBACvB,MAAM;gBACR,KAAK,IAAI;oBACP,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBACpB,MAAM;gBACR,KAAK,OAAO;oBACV,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBACpB,MAAM;gBACR,KAAK,OAAO;oBACV,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBACpB,MAAM;gBACR,KAAK,OAAO;oBACV,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBACpB,MAAM;YACV,CAAC;YAED,oBAAoB;YACpB,MAAM,YAAY,GAAG,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,SAAS,CAAC;YAChD,IAAI,YAAY,GAAG,GAAG;gBAAE,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;iBAC5C,IAAI,YAAY,GAAG,GAAG;gBAAE,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;;gBAClD,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAE9B,kBAAkB;YAClB,IAAI,CAAC,CAAC,cAAc;gBAAE,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QACtD,CAAC;QAED,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC;IACrB,CAAC;IAED;;OAEG;IACK,gBAAgB,CACtB,WAA4B,EAC5B,QAA0B;QAE1B,MAAM,IAAI,GAAa,EAAE,CAAC;QAE1B,oCAAoC;QACpC,MAAM,gBAAgB,GAAG,WAAW,CAAC,IAAI,CACvC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAChG,CAAC;QAEF,IAAI,gBAAgB,EAAE,CAAC;YACrB,IAAI,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;YAChE,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAC3C,CAAC;QAED,8BAA8B;QAC9B,MAAM,cAAc,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1E,IAAI,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;QACjD,CAAC;aAAM,IAAI,gBAAgB,EAAE,CAAC;YAC5B,IAAI,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;QAC/D,CAAC;QAED,mBAAmB;QACnB,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QAC3D,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC;YAC1E,IAAI,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;QAC3D,CAAC;QAED,iBAAiB;QACjB,MAAM,gBAAgB,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9E,IAAI,gBAAgB,EAAE,CAAC;YACrB,IAAI,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;QACrE,CAAC;QAED,YAAY;QACZ,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC;QAC7D,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC,cAAc,QAAQ,CAAC,MAAM,8BAA8B,CAAC,CAAC;QACzE,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QAChD,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module governor
|
|
3
|
+
* @description 실행 제한 및 안전 검증 엔진.
|
|
4
|
+
* 반복 횟수 제한, 토큰 추적, 위험 작업 판별, 민감 파일 차단.
|
|
5
|
+
*/
|
|
6
|
+
import { EventEmitter } from "node:events";
|
|
7
|
+
import type { PlanLimits, PlanTier, ToolCall } from "./types.js";
|
|
8
|
+
/** Governor 설정 */
|
|
9
|
+
export interface GovernorConfig {
|
|
10
|
+
/** 현재 사용자의 플랜 티어 */
|
|
11
|
+
planTier: PlanTier;
|
|
12
|
+
/** 자동 승인할 액션 (이 목록의 액션은 승인 없이 실행) */
|
|
13
|
+
autoApproveActions?: string[];
|
|
14
|
+
/** 커스텀 제한값 오버라이드 */
|
|
15
|
+
customLimits?: Partial<PlanLimits>;
|
|
16
|
+
}
|
|
17
|
+
/** Governor 상태 (현재 세션 추적) */
|
|
18
|
+
export interface GovernorState {
|
|
19
|
+
iterationCount: number;
|
|
20
|
+
totalInputTokens: number;
|
|
21
|
+
totalOutputTokens: number;
|
|
22
|
+
toolCallCount: number;
|
|
23
|
+
startedAt: number;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Governor — 에이전트 실행의 안전 장치.
|
|
27
|
+
*
|
|
28
|
+
* 역할:
|
|
29
|
+
* - 반복 횟수 제한 (maxIterations)
|
|
30
|
+
* - 토큰 사용량 추적 (tokensPerRequest)
|
|
31
|
+
* - 위험 명령어 감지 (DANGEROUS_PATTERNS)
|
|
32
|
+
* - 민감 파일 접근 차단 (SENSITIVE_FILE_PATTERNS)
|
|
33
|
+
* - 세션 TTL 검증
|
|
34
|
+
*/
|
|
35
|
+
export declare class Governor extends EventEmitter {
|
|
36
|
+
private readonly limits;
|
|
37
|
+
private readonly autoApproveActions;
|
|
38
|
+
private readonly state;
|
|
39
|
+
constructor(config: GovernorConfig);
|
|
40
|
+
/**
|
|
41
|
+
* 새 iteration 시작 전 검증.
|
|
42
|
+
* 반복 횟수/토큰/TTL 초과 시 PlanLimitError를 던진다.
|
|
43
|
+
*/
|
|
44
|
+
checkIteration(): void;
|
|
45
|
+
/**
|
|
46
|
+
* iteration 완료 후 상태 업데이트.
|
|
47
|
+
* @param inputTokens 이번 iteration에서 사용한 input 토큰
|
|
48
|
+
* @param outputTokens 이번 iteration에서 사용한 output 토큰
|
|
49
|
+
*/
|
|
50
|
+
recordIteration(inputTokens: number, outputTokens: number): void;
|
|
51
|
+
/**
|
|
52
|
+
* 도구 호출이 안전한지 검증.
|
|
53
|
+
* 위험한 명령어나 민감 파일 접근 시 ApprovalRequiredError를 던진다.
|
|
54
|
+
* @param toolCall 검증할 도구 호출
|
|
55
|
+
*/
|
|
56
|
+
validateToolCall(toolCall: ToolCall): void;
|
|
57
|
+
/**
|
|
58
|
+
* 현재 Governor 상태를 반환.
|
|
59
|
+
*/
|
|
60
|
+
getState(): Readonly<GovernorState>;
|
|
61
|
+
/**
|
|
62
|
+
* 현재 적용 중인 제한값을 반환.
|
|
63
|
+
*/
|
|
64
|
+
getLimits(): Readonly<PlanLimits>;
|
|
65
|
+
/**
|
|
66
|
+
* 남은 iteration 수를 반환.
|
|
67
|
+
*/
|
|
68
|
+
getRemainingIterations(): number;
|
|
69
|
+
/**
|
|
70
|
+
* 남은 토큰 예산을 반환.
|
|
71
|
+
*/
|
|
72
|
+
getRemainingTokens(): number;
|
|
73
|
+
private parseArgs;
|
|
74
|
+
private checkDangerousCommand;
|
|
75
|
+
private checkSensitiveFile;
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=governor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"governor.d.ts","sourceRoot":"","sources":["../src/governor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAQjE,kBAAkB;AAClB,MAAM,WAAW,cAAc;IAC7B,oBAAoB;IACpB,QAAQ,EAAE,QAAQ,CAAC;IACnB,qCAAqC;IACrC,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,oBAAoB;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;CACpC;AAED,6BAA6B;AAC7B,MAAM,WAAW,aAAa;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;GASG;AACH,qBAAa,QAAS,SAAQ,YAAY;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAc;IACjD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgB;gBAE1B,MAAM,EAAE,cAAc;IAgBlC;;;OAGG;IACH,cAAc,IAAI,IAAI;IAgCtB;;;;OAIG;IACH,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAMhE;;;;OAIG;IACH,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAmB1C;;OAEG;IACH,QAAQ,IAAI,QAAQ,CAAC,aAAa,CAAC;IAInC;;OAEG;IACH,SAAS,IAAI,QAAQ,CAAC,UAAU,CAAC;IAIjC;;OAEG;IACH,sBAAsB,IAAI,MAAM;IAIhC;;OAEG;IACH,kBAAkB,IAAI,MAAM;IAQ5B,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,qBAAqB;IAyB7B,OAAO,CAAC,kBAAkB;CAmB3B"}
|
package/dist/governor.js
ADDED
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module governor
|
|
3
|
+
* @description 실행 제한 및 안전 검증 엔진.
|
|
4
|
+
* 반복 횟수 제한, 토큰 추적, 위험 작업 판별, 민감 파일 차단.
|
|
5
|
+
*/
|
|
6
|
+
import { EventEmitter } from "node:events";
|
|
7
|
+
import { PLAN_LIMITS } from "./constants.js";
|
|
8
|
+
import { DANGEROUS_PATTERNS, SENSITIVE_FILE_PATTERNS, } from "./security.js";
|
|
9
|
+
import { PlanLimitError, ApprovalRequiredError } from "./errors.js";
|
|
10
|
+
/**
|
|
11
|
+
* Governor — 에이전트 실행의 안전 장치.
|
|
12
|
+
*
|
|
13
|
+
* 역할:
|
|
14
|
+
* - 반복 횟수 제한 (maxIterations)
|
|
15
|
+
* - 토큰 사용량 추적 (tokensPerRequest)
|
|
16
|
+
* - 위험 명령어 감지 (DANGEROUS_PATTERNS)
|
|
17
|
+
* - 민감 파일 접근 차단 (SENSITIVE_FILE_PATTERNS)
|
|
18
|
+
* - 세션 TTL 검증
|
|
19
|
+
*/
|
|
20
|
+
export class Governor extends EventEmitter {
|
|
21
|
+
limits;
|
|
22
|
+
autoApproveActions;
|
|
23
|
+
state;
|
|
24
|
+
constructor(config) {
|
|
25
|
+
super();
|
|
26
|
+
this.limits = {
|
|
27
|
+
...PLAN_LIMITS[config.planTier],
|
|
28
|
+
...config.customLimits,
|
|
29
|
+
};
|
|
30
|
+
this.autoApproveActions = new Set(config.autoApproveActions ?? []);
|
|
31
|
+
this.state = {
|
|
32
|
+
iterationCount: 0,
|
|
33
|
+
totalInputTokens: 0,
|
|
34
|
+
totalOutputTokens: 0,
|
|
35
|
+
toolCallCount: 0,
|
|
36
|
+
startedAt: Date.now(),
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* 새 iteration 시작 전 검증.
|
|
41
|
+
* 반복 횟수/토큰/TTL 초과 시 PlanLimitError를 던진다.
|
|
42
|
+
*/
|
|
43
|
+
checkIteration() {
|
|
44
|
+
// 반복 횟수 제한
|
|
45
|
+
if (this.state.iterationCount >= this.limits.maxIterations) {
|
|
46
|
+
throw new PlanLimitError("maxIterations", this.state.iterationCount, this.limits.maxIterations);
|
|
47
|
+
}
|
|
48
|
+
// 토큰 제한
|
|
49
|
+
const totalTokens = this.state.totalInputTokens + this.state.totalOutputTokens;
|
|
50
|
+
if (totalTokens >= this.limits.tokensPerRequest) {
|
|
51
|
+
throw new PlanLimitError("tokensPerRequest", totalTokens, this.limits.tokensPerRequest);
|
|
52
|
+
}
|
|
53
|
+
// 세션 TTL
|
|
54
|
+
const elapsed = Date.now() - this.state.startedAt;
|
|
55
|
+
if (elapsed >= this.limits.sessionTtlMs) {
|
|
56
|
+
throw new PlanLimitError("sessionTtl", elapsed, this.limits.sessionTtlMs);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* iteration 완료 후 상태 업데이트.
|
|
61
|
+
* @param inputTokens 이번 iteration에서 사용한 input 토큰
|
|
62
|
+
* @param outputTokens 이번 iteration에서 사용한 output 토큰
|
|
63
|
+
*/
|
|
64
|
+
recordIteration(inputTokens, outputTokens) {
|
|
65
|
+
this.state.iterationCount++;
|
|
66
|
+
this.state.totalInputTokens += inputTokens;
|
|
67
|
+
this.state.totalOutputTokens += outputTokens;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* 도구 호출이 안전한지 검증.
|
|
71
|
+
* 위험한 명령어나 민감 파일 접근 시 ApprovalRequiredError를 던진다.
|
|
72
|
+
* @param toolCall 검증할 도구 호출
|
|
73
|
+
*/
|
|
74
|
+
validateToolCall(toolCall) {
|
|
75
|
+
this.state.toolCallCount++;
|
|
76
|
+
const args = this.parseArgs(toolCall.arguments);
|
|
77
|
+
// shell_exec 위험 명령어 검사
|
|
78
|
+
if (toolCall.name === "shell_exec") {
|
|
79
|
+
this.checkDangerousCommand(args);
|
|
80
|
+
}
|
|
81
|
+
// 파일 관련 도구: 민감 파일 접근 검사
|
|
82
|
+
if (["file_read", "file_write", "file_edit"].includes(toolCall.name)) {
|
|
83
|
+
const filePath = args.path ?? args.file ?? "";
|
|
84
|
+
this.checkSensitiveFile(filePath, toolCall.name);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* 현재 Governor 상태를 반환.
|
|
89
|
+
*/
|
|
90
|
+
getState() {
|
|
91
|
+
return { ...this.state };
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* 현재 적용 중인 제한값을 반환.
|
|
95
|
+
*/
|
|
96
|
+
getLimits() {
|
|
97
|
+
return { ...this.limits };
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* 남은 iteration 수를 반환.
|
|
101
|
+
*/
|
|
102
|
+
getRemainingIterations() {
|
|
103
|
+
return Math.max(0, this.limits.maxIterations - this.state.iterationCount);
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* 남은 토큰 예산을 반환.
|
|
107
|
+
*/
|
|
108
|
+
getRemainingTokens() {
|
|
109
|
+
const used = this.state.totalInputTokens + this.state.totalOutputTokens;
|
|
110
|
+
return Math.max(0, this.limits.tokensPerRequest - used);
|
|
111
|
+
}
|
|
112
|
+
// ─── Private ───
|
|
113
|
+
parseArgs(args) {
|
|
114
|
+
if (typeof args === "string") {
|
|
115
|
+
try {
|
|
116
|
+
return JSON.parse(args);
|
|
117
|
+
}
|
|
118
|
+
catch {
|
|
119
|
+
return { raw: args };
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
return args;
|
|
123
|
+
}
|
|
124
|
+
checkDangerousCommand(args) {
|
|
125
|
+
const command = String(args.command ?? args.cmd ?? "");
|
|
126
|
+
const executable = String(args.executable ?? "");
|
|
127
|
+
// Include args array in the full command string for pattern matching
|
|
128
|
+
const argsArr = Array.isArray(args.args) ? args.args.join(" ") : "";
|
|
129
|
+
const fullCmd = `${executable} ${argsArr} ${command}`.trim();
|
|
130
|
+
for (const pattern of DANGEROUS_PATTERNS) {
|
|
131
|
+
if (pattern.test(fullCmd)) {
|
|
132
|
+
if (this.autoApproveActions.has("RUN_DANGEROUS_CMD")) {
|
|
133
|
+
this.emit("warning", {
|
|
134
|
+
type: "dangerous_command",
|
|
135
|
+
command: fullCmd,
|
|
136
|
+
pattern: pattern.source,
|
|
137
|
+
});
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
throw new ApprovalRequiredError("RUN_DANGEROUS_CMD", `Dangerous command detected: ${fullCmd} (matches ${pattern.source})`);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
checkSensitiveFile(filePath, toolName) {
|
|
145
|
+
for (const pattern of SENSITIVE_FILE_PATTERNS) {
|
|
146
|
+
if (pattern.test(filePath)) {
|
|
147
|
+
// file_read은 경고만, file_write/edit는 차단
|
|
148
|
+
if (toolName === "file_read") {
|
|
149
|
+
this.emit("warning", {
|
|
150
|
+
type: "sensitive_file_read",
|
|
151
|
+
path: filePath,
|
|
152
|
+
pattern: pattern.source,
|
|
153
|
+
});
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
throw new ApprovalRequiredError("MODIFY_CONFIG", `Sensitive file access: ${filePath} (matches ${pattern.source})`);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
//# sourceMappingURL=governor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"governor.js","sourceRoot":"","sources":["../src/governor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module hierarchical-planner
|
|
3
|
+
* @description 3-Level Hierarchical Planner — Strategic / Tactical / Operational.
|
|
4
|
+
*
|
|
5
|
+
* 사용자의 고수준 목표를 3단계 계획으로 분해한다:
|
|
6
|
+
* - L1 Strategic: 목표 → 서브골 분해 (Flagship 모델)
|
|
7
|
+
* - L2 Tactical: 서브골 → 파일별 태스크 (Premium 모델)
|
|
8
|
+
* - L3 Operational: 태스크 → 구체적 도구 호출 (Standard 모델)
|
|
9
|
+
*
|
|
10
|
+
* 기존 Planner(단일 레벨)와 호환되는 toExecutionPlan() 변환을 지원한다.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* const planner = new HierarchicalPlanner({ projectPath: "/app" });
|
|
15
|
+
* const plan = await planner.createHierarchicalPlan("Add auth to the API", llmClient);
|
|
16
|
+
* const execPlan = planner.toExecutionPlan(plan);
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
import type { ExecutionPlan } from "./types.js";
|
|
20
|
+
import type { BYOKClient } from "./llm-client.js";
|
|
21
|
+
/** Planning level identifier */
|
|
22
|
+
export type PlanLevel = "strategic" | "tactical" | "operational";
|
|
23
|
+
/** Risk assessment for a strategic goal */
|
|
24
|
+
export interface RiskAssessment {
|
|
25
|
+
/** Overall risk level */
|
|
26
|
+
level: "low" | "medium" | "high" | "critical";
|
|
27
|
+
/** Risk factors identified */
|
|
28
|
+
factors: string[];
|
|
29
|
+
/** Recommended mitigations */
|
|
30
|
+
mitigations: string[];
|
|
31
|
+
/** Whether explicit user approval is required */
|
|
32
|
+
requiresApproval: boolean;
|
|
33
|
+
}
|
|
34
|
+
/** L1: Strategic Goal — high-level decomposition of user intent */
|
|
35
|
+
export interface StrategicGoal {
|
|
36
|
+
/** Unique identifier */
|
|
37
|
+
id: string;
|
|
38
|
+
/** Human-readable description of the goal */
|
|
39
|
+
description: string;
|
|
40
|
+
/** Tactical tasks derived from this goal */
|
|
41
|
+
subGoals: TacticalTask[];
|
|
42
|
+
/** Estimated complexity */
|
|
43
|
+
estimatedComplexity: "trivial" | "simple" | "moderate" | "complex" | "massive";
|
|
44
|
+
/** Required tool capabilities */
|
|
45
|
+
requiredCapabilities: string[];
|
|
46
|
+
/** Risk assessment */
|
|
47
|
+
riskAssessment: RiskAssessment;
|
|
48
|
+
}
|
|
49
|
+
/** L2: Tactical Task — file-level implementation plan */
|
|
50
|
+
export interface TacticalTask {
|
|
51
|
+
/** Unique identifier */
|
|
52
|
+
id: string;
|
|
53
|
+
/** Parent strategic goal ID */
|
|
54
|
+
goalId: string;
|
|
55
|
+
/** Human-readable description */
|
|
56
|
+
description: string;
|
|
57
|
+
/** Files to be modified */
|
|
58
|
+
targetFiles: string[];
|
|
59
|
+
/** Files to read for context */
|
|
60
|
+
readFiles: string[];
|
|
61
|
+
/** Tools to use */
|
|
62
|
+
toolStrategy: string[];
|
|
63
|
+
/** Execution order within the goal */
|
|
64
|
+
order: number;
|
|
65
|
+
/** IDs of tactical tasks this depends on */
|
|
66
|
+
dependsOn: string[];
|
|
67
|
+
/** Estimated agent loop iterations */
|
|
68
|
+
estimatedIterations: number;
|
|
69
|
+
/** Preferred model tier */
|
|
70
|
+
modelPreference?: string;
|
|
71
|
+
}
|
|
72
|
+
/** L3: Operational Action — a single tool invocation */
|
|
73
|
+
export interface OperationalAction {
|
|
74
|
+
/** Unique identifier */
|
|
75
|
+
id: string;
|
|
76
|
+
/** Parent tactical task ID */
|
|
77
|
+
taskId: string;
|
|
78
|
+
/** Action category */
|
|
79
|
+
type: "read" | "analyze" | "write" | "edit" | "execute" | "test" | "verify";
|
|
80
|
+
/** Human-readable description */
|
|
81
|
+
description: string;
|
|
82
|
+
/** Tool name to invoke */
|
|
83
|
+
tool: string;
|
|
84
|
+
/** Pre-planned tool arguments */
|
|
85
|
+
toolInput: Record<string, unknown>;
|
|
86
|
+
/** What we expect this action to produce */
|
|
87
|
+
expectedOutcome: string;
|
|
88
|
+
/** Fallback action if this one fails */
|
|
89
|
+
fallbackAction?: OperationalAction;
|
|
90
|
+
}
|
|
91
|
+
/** Full hierarchical plan containing all three levels */
|
|
92
|
+
export interface HierarchicalPlan {
|
|
93
|
+
/** Unique plan identifier */
|
|
94
|
+
id: string;
|
|
95
|
+
/** Original user goal */
|
|
96
|
+
goal: string;
|
|
97
|
+
/** Creation timestamp (epoch ms) */
|
|
98
|
+
createdAt: number;
|
|
99
|
+
/** L1: Strategic goal */
|
|
100
|
+
strategic: StrategicGoal;
|
|
101
|
+
/** L2: Tactical tasks */
|
|
102
|
+
tactical: TacticalTask[];
|
|
103
|
+
/** L3: Operational actions, keyed by tactical task ID */
|
|
104
|
+
operational: Map<string, OperationalAction[]>;
|
|
105
|
+
/** Total estimated agent loop iterations */
|
|
106
|
+
totalEstimatedIterations: number;
|
|
107
|
+
/** Groups of task IDs that can run in parallel */
|
|
108
|
+
parallelizableGroups: string[][];
|
|
109
|
+
/** Longest sequential dependency chain (task IDs) */
|
|
110
|
+
criticalPath: string[];
|
|
111
|
+
/** Estimated token budget */
|
|
112
|
+
estimatedTokenBudget: number;
|
|
113
|
+
}
|
|
114
|
+
/** Trigger for re-planning mid-execution */
|
|
115
|
+
export interface RePlanTrigger {
|
|
116
|
+
/** Category of the trigger */
|
|
117
|
+
type: "error" | "new_info" | "dependency_change" | "user_feedback" | "context_overflow";
|
|
118
|
+
/** Human-readable description */
|
|
119
|
+
description: string;
|
|
120
|
+
/** Task IDs affected by this trigger */
|
|
121
|
+
affectedTaskIds: string[];
|
|
122
|
+
/** How severe this trigger is */
|
|
123
|
+
severity: "minor" | "major" | "critical";
|
|
124
|
+
}
|
|
125
|
+
/** Result of a re-planning operation */
|
|
126
|
+
export interface RePlanResult {
|
|
127
|
+
/** Strategy chosen for recovery */
|
|
128
|
+
strategy: "retry_with_fix" | "alternative_approach" | "skip_and_continue" | "escalate" | "full_replan";
|
|
129
|
+
/** Modified or replacement tasks */
|
|
130
|
+
modifiedTasks: TacticalTask[];
|
|
131
|
+
/** Explanation of the re-plan decision */
|
|
132
|
+
reason: string;
|
|
133
|
+
}
|
|
134
|
+
/** Configuration for the HierarchicalPlanner */
|
|
135
|
+
export interface HierarchicalPlannerConfig {
|
|
136
|
+
/** Project root path */
|
|
137
|
+
projectPath: string;
|
|
138
|
+
/** Model tier for L1 strategic planning (default: "flagship") */
|
|
139
|
+
strategicModel?: string;
|
|
140
|
+
/** Model tier for L2 tactical planning (default: "premium") */
|
|
141
|
+
tacticalModel?: string;
|
|
142
|
+
/** Model tier for L3 operational planning (default: "standard") */
|
|
143
|
+
operationalModel?: string;
|
|
144
|
+
/** Maximum sub-goals per strategic goal (default: 10) */
|
|
145
|
+
maxSubGoals?: number;
|
|
146
|
+
/** Maximum tasks per sub-goal (default: 20) */
|
|
147
|
+
maxTasksPerGoal?: number;
|
|
148
|
+
/** Maximum actions per task (default: 50) */
|
|
149
|
+
maxActionsPerTask?: number;
|
|
150
|
+
/** Whether to pre-plan L3 actions or plan on-the-fly (default: false) */
|
|
151
|
+
enableOperationalPrePlanning?: boolean;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* HierarchicalPlanner — 3-level planning hierarchy for the YUAN coding agent.
|
|
155
|
+
*
|
|
156
|
+
* Decomposes a high-level user goal into:
|
|
157
|
+
* 1. **Strategic** — what sub-goals to pursue, risk assessment, capability analysis
|
|
158
|
+
* 2. **Tactical** — which files to touch, which tools to use, dependency ordering
|
|
159
|
+
* 3. **Operational** — exact tool calls with pre-planned arguments
|
|
160
|
+
*
|
|
161
|
+
* Supports re-planning when execution encounters errors or new information.
|
|
162
|
+
* Backward-compatible with the existing `ExecutionPlan` format via `toExecutionPlan()`.
|
|
163
|
+
*/
|
|
164
|
+
export declare class HierarchicalPlanner {
|
|
165
|
+
private readonly config;
|
|
166
|
+
private projectContext;
|
|
167
|
+
constructor(config: HierarchicalPlannerConfig);
|
|
168
|
+
/**
|
|
169
|
+
* L1: Strategic Planning — decompose a high-level goal into sub-goals.
|
|
170
|
+
* Uses a flagship model for best reasoning quality.
|
|
171
|
+
*
|
|
172
|
+
* @param goal - The user's high-level goal
|
|
173
|
+
* @param llmClient - BYOK LLM client for the strategic model
|
|
174
|
+
* @param projectContext - Optional pre-gathered project context
|
|
175
|
+
* @returns Strategic goal with sub-goals, complexity, and risk assessment
|
|
176
|
+
*/
|
|
177
|
+
planStrategic(goal: string, llmClient: BYOKClient, projectContext?: string): Promise<StrategicGoal>;
|
|
178
|
+
/**
|
|
179
|
+
* L2: Tactical Planning — plan file-level tasks for each sub-goal.
|
|
180
|
+
* Uses a premium model for good coding analysis.
|
|
181
|
+
*
|
|
182
|
+
* @param strategicGoal - The strategic goal to decompose
|
|
183
|
+
* @param llmClient - BYOK LLM client for the tactical model
|
|
184
|
+
* @param fileContext - Optional map of file path → content for context
|
|
185
|
+
* @returns Array of tactical tasks with dependencies and ordering
|
|
186
|
+
*/
|
|
187
|
+
planTactical(strategicGoal: StrategicGoal, llmClient: BYOKClient, fileContext?: Map<string, string>): Promise<TacticalTask[]>;
|
|
188
|
+
/**
|
|
189
|
+
* L3: Operational Planning — plan exact tool calls for a task.
|
|
190
|
+
* Uses a standard model for cost efficiency on detailed step planning.
|
|
191
|
+
*
|
|
192
|
+
* @param task - The tactical task to detail
|
|
193
|
+
* @param llmClient - BYOK LLM client for the operational model
|
|
194
|
+
* @param currentState - Optional current execution state for context
|
|
195
|
+
* @returns Array of operational actions with tool inputs
|
|
196
|
+
*/
|
|
197
|
+
planOperational(task: TacticalTask, llmClient: BYOKClient, currentState?: Record<string, unknown>): Promise<OperationalAction[]>;
|
|
198
|
+
/**
|
|
199
|
+
* Create a full hierarchical plan from a user goal.
|
|
200
|
+
* Runs L1 → L2 sequentially; L3 is conditional on config.
|
|
201
|
+
*
|
|
202
|
+
* @param goal - The user's high-level goal
|
|
203
|
+
* @param llmClient - BYOK LLM client (used for all levels)
|
|
204
|
+
* @returns Complete hierarchical plan
|
|
205
|
+
*/
|
|
206
|
+
createHierarchicalPlan(goal: string, llmClient: BYOKClient): Promise<HierarchicalPlan>;
|
|
207
|
+
/**
|
|
208
|
+
* Re-plan after encountering an error, new information, or other trigger.
|
|
209
|
+
* Decides the best recovery strategy and returns modified tasks.
|
|
210
|
+
*
|
|
211
|
+
* @param currentPlan - The current hierarchical plan
|
|
212
|
+
* @param trigger - What triggered the re-plan
|
|
213
|
+
* @param llmClient - BYOK LLM client for re-planning
|
|
214
|
+
* @returns Re-plan result with strategy and modified tasks
|
|
215
|
+
*/
|
|
216
|
+
replan(currentPlan: HierarchicalPlan, trigger: RePlanTrigger, llmClient: BYOKClient): Promise<RePlanResult>;
|
|
217
|
+
/**
|
|
218
|
+
* Convert a HierarchicalPlan to the existing ExecutionPlan format.
|
|
219
|
+
* Provides backward compatibility with code that uses the single-level Planner.
|
|
220
|
+
*
|
|
221
|
+
* @param plan - Hierarchical plan to convert
|
|
222
|
+
* @returns ExecutionPlan compatible with existing agent infrastructure
|
|
223
|
+
*/
|
|
224
|
+
toExecutionPlan(plan: HierarchicalPlan): ExecutionPlan;
|
|
225
|
+
/**
|
|
226
|
+
* Find groups of tasks that can execute in parallel.
|
|
227
|
+
* Tasks with no mutual dependencies can run concurrently.
|
|
228
|
+
*
|
|
229
|
+
* @param tasks - Tactical tasks to analyze
|
|
230
|
+
* @returns Array of groups, each group is an array of task IDs
|
|
231
|
+
*/
|
|
232
|
+
findParallelGroups(tasks: TacticalTask[]): string[][];
|
|
233
|
+
/**
|
|
234
|
+
* Find the critical path — the longest sequential dependency chain.
|
|
235
|
+
* Uses DFS with memoization for path length calculation.
|
|
236
|
+
*
|
|
237
|
+
* @param tasks - Tactical tasks to analyze
|
|
238
|
+
* @returns Array of task IDs forming the critical path
|
|
239
|
+
*/
|
|
240
|
+
findCriticalPath(tasks: TacticalTask[]): string[];
|
|
241
|
+
/**
|
|
242
|
+
* Estimate the total token budget for a hierarchical plan.
|
|
243
|
+
* Based on iteration count, planning overhead, and operational detail.
|
|
244
|
+
*
|
|
245
|
+
* @param plan - The hierarchical plan
|
|
246
|
+
* @returns Estimated token budget
|
|
247
|
+
*/
|
|
248
|
+
estimateTokenBudget(plan: HierarchicalPlan): number;
|
|
249
|
+
/**
|
|
250
|
+
* Gather project context by reading package.json and directory listing.
|
|
251
|
+
* @returns Concatenated project context string
|
|
252
|
+
*/
|
|
253
|
+
private gatherProjectContext;
|
|
254
|
+
/**
|
|
255
|
+
* Build the system prompt for L1 strategic planning.
|
|
256
|
+
* Instructs the LLM to decompose the goal into sub-goals with JSON output.
|
|
257
|
+
*/
|
|
258
|
+
private buildStrategicPrompt;
|
|
259
|
+
/**
|
|
260
|
+
* Build the system prompt for L2 tactical planning.
|
|
261
|
+
* Instructs the LLM to plan file-level tasks for a sub-goal.
|
|
262
|
+
*/
|
|
263
|
+
private buildTacticalPrompt;
|
|
264
|
+
/**
|
|
265
|
+
* Build the system prompt for L3 operational planning.
|
|
266
|
+
* Instructs the LLM to plan exact tool invocations for a task.
|
|
267
|
+
*/
|
|
268
|
+
private buildOperationalPrompt;
|
|
269
|
+
/**
|
|
270
|
+
* Build the system prompt for re-planning after failure.
|
|
271
|
+
*/
|
|
272
|
+
private buildReplanPrompt;
|
|
273
|
+
/**
|
|
274
|
+
* Parse LLM JSON response into a StrategicGoal.
|
|
275
|
+
* Falls back to a minimal goal on parse failure.
|
|
276
|
+
*/
|
|
277
|
+
private parseStrategicResponse;
|
|
278
|
+
/**
|
|
279
|
+
* Parse LLM JSON response into TacticalTask[].
|
|
280
|
+
*/
|
|
281
|
+
private parseTacticalResponse;
|
|
282
|
+
/**
|
|
283
|
+
* Parse LLM JSON response into OperationalAction[].
|
|
284
|
+
*/
|
|
285
|
+
private parseOperationalResponse;
|
|
286
|
+
/**
|
|
287
|
+
* Parse re-plan LLM response into RePlanResult.
|
|
288
|
+
*/
|
|
289
|
+
private parseReplanResponse;
|
|
290
|
+
/**
|
|
291
|
+
* Assess risk based on the goal description and target files.
|
|
292
|
+
*/
|
|
293
|
+
private assessRisk;
|
|
294
|
+
/**
|
|
295
|
+
* Sort tasks by dependency order and assign sequential order values.
|
|
296
|
+
* Uses Kahn's algorithm for topological sorting.
|
|
297
|
+
*/
|
|
298
|
+
private buildDependencyChain;
|
|
299
|
+
/**
|
|
300
|
+
* Extract the first JSON object or array from a response string.
|
|
301
|
+
* Handles common LLM output patterns (markdown fences, preamble text).
|
|
302
|
+
*/
|
|
303
|
+
private extractJson;
|
|
304
|
+
/** Normalize complexity string to valid union type */
|
|
305
|
+
private normalizeComplexity;
|
|
306
|
+
/** Normalize risk level string to valid union type */
|
|
307
|
+
private normalizeRiskLevel;
|
|
308
|
+
/** Normalize action type string to valid union type */
|
|
309
|
+
private normalizeActionType;
|
|
310
|
+
/** Normalize re-plan strategy string to valid union type */
|
|
311
|
+
private normalizeReplanStrategy;
|
|
312
|
+
}
|
|
313
|
+
//# sourceMappingURL=hierarchical-planner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hierarchical-planner.d.ts","sourceRoot":"","sources":["../src/hierarchical-planner.ts"],"names":[],"mappings":"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"}
|