@zettelgeist/cli 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.
Files changed (189) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +64 -0
  3. package/dist/bin.js +2211 -0
  4. package/dist/bin.js.map +7 -0
  5. package/dist/templates/export.html +27 -0
  6. package/dist/templates/skill/SKILL.md +220 -0
  7. package/dist/viewer-bundle/architecture-YZFGNWBL-W2K3EQOM.js +14 -0
  8. package/dist/viewer-bundle/architecture-YZFGNWBL-W2K3EQOM.js.map +7 -0
  9. package/dist/viewer-bundle/architectureDiagram-Q4EWVU46-LCGRUEWT.js +8884 -0
  10. package/dist/viewer-bundle/architectureDiagram-Q4EWVU46-LCGRUEWT.js.map +7 -0
  11. package/dist/viewer-bundle/base.css +248 -0
  12. package/dist/viewer-bundle/blockDiagram-DXYQGD6D-KAM7BOAP.js +3777 -0
  13. package/dist/viewer-bundle/blockDiagram-DXYQGD6D-KAM7BOAP.js.map +7 -0
  14. package/dist/viewer-bundle/board.css +370 -0
  15. package/dist/viewer-bundle/c4Diagram-AHTNJAMY-C3FIQYXA.js +2596 -0
  16. package/dist/viewer-bundle/c4Diagram-AHTNJAMY-C3FIQYXA.js.map +7 -0
  17. package/dist/viewer-bundle/chunk-2QXGXAO5.js +68 -0
  18. package/dist/viewer-bundle/chunk-2QXGXAO5.js.map +7 -0
  19. package/dist/viewer-bundle/chunk-5PZT7VUU.js +67 -0
  20. package/dist/viewer-bundle/chunk-5PZT7VUU.js.map +7 -0
  21. package/dist/viewer-bundle/chunk-5YJCJF2C.js +112 -0
  22. package/dist/viewer-bundle/chunk-5YJCJF2C.js.map +7 -0
  23. package/dist/viewer-bundle/chunk-6LYV7PBV.js +1011 -0
  24. package/dist/viewer-bundle/chunk-6LYV7PBV.js.map +7 -0
  25. package/dist/viewer-bundle/chunk-6VW7D5WX.js +48 -0
  26. package/dist/viewer-bundle/chunk-6VW7D5WX.js.map +7 -0
  27. package/dist/viewer-bundle/chunk-76C5OSD4.js +2048 -0
  28. package/dist/viewer-bundle/chunk-76C5OSD4.js.map +7 -0
  29. package/dist/viewer-bundle/chunk-7NZMPQDX.js +6957 -0
  30. package/dist/viewer-bundle/chunk-7NZMPQDX.js.map +7 -0
  31. package/dist/viewer-bundle/chunk-A634GTZN.js +122 -0
  32. package/dist/viewer-bundle/chunk-A634GTZN.js.map +7 -0
  33. package/dist/viewer-bundle/chunk-AJQJUKMU.js +133 -0
  34. package/dist/viewer-bundle/chunk-AJQJUKMU.js.map +7 -0
  35. package/dist/viewer-bundle/chunk-BM2KPNFW.js +5556 -0
  36. package/dist/viewer-bundle/chunk-BM2KPNFW.js.map +7 -0
  37. package/dist/viewer-bundle/chunk-CIDUOCCG.js +25 -0
  38. package/dist/viewer-bundle/chunk-CIDUOCCG.js.map +7 -0
  39. package/dist/viewer-bundle/chunk-CZHJHAOR.js +6397 -0
  40. package/dist/viewer-bundle/chunk-CZHJHAOR.js.map +7 -0
  41. package/dist/viewer-bundle/chunk-D5RLIWY4.js +125 -0
  42. package/dist/viewer-bundle/chunk-D5RLIWY4.js.map +7 -0
  43. package/dist/viewer-bundle/chunk-DI52DQAC.js +44 -0
  44. package/dist/viewer-bundle/chunk-DI52DQAC.js.map +7 -0
  45. package/dist/viewer-bundle/chunk-EXJQLTIV.js +51 -0
  46. package/dist/viewer-bundle/chunk-EXJQLTIV.js.map +7 -0
  47. package/dist/viewer-bundle/chunk-G3PPZWPW.js +96 -0
  48. package/dist/viewer-bundle/chunk-G3PPZWPW.js.map +7 -0
  49. package/dist/viewer-bundle/chunk-GTW4IDD4.js +30297 -0
  50. package/dist/viewer-bundle/chunk-GTW4IDD4.js.map +7 -0
  51. package/dist/viewer-bundle/chunk-GVE7OA3Z.js +59 -0
  52. package/dist/viewer-bundle/chunk-GVE7OA3Z.js.map +7 -0
  53. package/dist/viewer-bundle/chunk-JBUVKVPY.js +2042 -0
  54. package/dist/viewer-bundle/chunk-JBUVKVPY.js.map +7 -0
  55. package/dist/viewer-bundle/chunk-JQLVOAQB.js +20 -0
  56. package/dist/viewer-bundle/chunk-JQLVOAQB.js.map +7 -0
  57. package/dist/viewer-bundle/chunk-LQMQSYLO.js +101 -0
  58. package/dist/viewer-bundle/chunk-LQMQSYLO.js.map +7 -0
  59. package/dist/viewer-bundle/chunk-MBFAQ3IK.js +34 -0
  60. package/dist/viewer-bundle/chunk-MBFAQ3IK.js.map +7 -0
  61. package/dist/viewer-bundle/chunk-N7G7IIKG.js +25 -0
  62. package/dist/viewer-bundle/chunk-N7G7IIKG.js.map +7 -0
  63. package/dist/viewer-bundle/chunk-NW4YG3NS.js +171 -0
  64. package/dist/viewer-bundle/chunk-NW4YG3NS.js.map +7 -0
  65. package/dist/viewer-bundle/chunk-ODEP5TKB.js +61 -0
  66. package/dist/viewer-bundle/chunk-ODEP5TKB.js.map +7 -0
  67. package/dist/viewer-bundle/chunk-OGKINV23.js +1050 -0
  68. package/dist/viewer-bundle/chunk-OGKINV23.js.map +7 -0
  69. package/dist/viewer-bundle/chunk-OGMSNDVH.js +1994 -0
  70. package/dist/viewer-bundle/chunk-OGMSNDVH.js.map +7 -0
  71. package/dist/viewer-bundle/chunk-QJVSDNAW.js +25 -0
  72. package/dist/viewer-bundle/chunk-QJVSDNAW.js.map +7 -0
  73. package/dist/viewer-bundle/chunk-RBTT26R4.js +2721 -0
  74. package/dist/viewer-bundle/chunk-RBTT26R4.js.map +7 -0
  75. package/dist/viewer-bundle/chunk-RQIPIIE2.js +48 -0
  76. package/dist/viewer-bundle/chunk-RQIPIIE2.js.map +7 -0
  77. package/dist/viewer-bundle/chunk-SRTYTXTX.js +22 -0
  78. package/dist/viewer-bundle/chunk-SRTYTXTX.js.map +7 -0
  79. package/dist/viewer-bundle/chunk-TRL7YIZG.js +1663 -0
  80. package/dist/viewer-bundle/chunk-TRL7YIZG.js.map +7 -0
  81. package/dist/viewer-bundle/chunk-U5T7X4BV.js +172 -0
  82. package/dist/viewer-bundle/chunk-U5T7X4BV.js.map +7 -0
  83. package/dist/viewer-bundle/chunk-UCAW6C6C.js +48 -0
  84. package/dist/viewer-bundle/chunk-UCAW6C6C.js.map +7 -0
  85. package/dist/viewer-bundle/chunk-UEAG4BJQ.js +93 -0
  86. package/dist/viewer-bundle/chunk-UEAG4BJQ.js.map +7 -0
  87. package/dist/viewer-bundle/chunk-UVRE3R6A.js +1039 -0
  88. package/dist/viewer-bundle/chunk-UVRE3R6A.js.map +7 -0
  89. package/dist/viewer-bundle/chunk-VODO7SV4.js +25029 -0
  90. package/dist/viewer-bundle/chunk-VODO7SV4.js.map +7 -0
  91. package/dist/viewer-bundle/chunk-YEU62MVS.js +682 -0
  92. package/dist/viewer-bundle/chunk-YEU62MVS.js.map +7 -0
  93. package/dist/viewer-bundle/chunk-YFQT7PPW.js +987 -0
  94. package/dist/viewer-bundle/chunk-YFQT7PPW.js.map +7 -0
  95. package/dist/viewer-bundle/chunk-Z4G7FG27.js +48 -0
  96. package/dist/viewer-bundle/chunk-Z4G7FG27.js.map +7 -0
  97. package/dist/viewer-bundle/chunk-ZW4Y7DIF.js +2044 -0
  98. package/dist/viewer-bundle/chunk-ZW4Y7DIF.js.map +7 -0
  99. package/dist/viewer-bundle/classDiagram-6PBFFD2Q-7VKYXLUX.js +46 -0
  100. package/dist/viewer-bundle/classDiagram-6PBFFD2Q-7VKYXLUX.js.map +7 -0
  101. package/dist/viewer-bundle/classDiagram-v2-HSJHXN6E-ACCNN7EN.js +46 -0
  102. package/dist/viewer-bundle/classDiagram-v2-HSJHXN6E-ACCNN7EN.js.map +7 -0
  103. package/dist/viewer-bundle/cose-bilkent-S5V4N54A-MUJHAA34.js +5009 -0
  104. package/dist/viewer-bundle/cose-bilkent-S5V4N54A-MUJHAA34.js.map +7 -0
  105. package/dist/viewer-bundle/dagre-KV5264BT-YC5VV3WF.js +739 -0
  106. package/dist/viewer-bundle/dagre-KV5264BT-YC5VV3WF.js.map +7 -0
  107. package/dist/viewer-bundle/dark.css +13 -0
  108. package/dist/viewer-bundle/detail.css +539 -0
  109. package/dist/viewer-bundle/diagram-5BDNPKRD-RXFPVFYK.js +214 -0
  110. package/dist/viewer-bundle/diagram-5BDNPKRD-RXFPVFYK.js.map +7 -0
  111. package/dist/viewer-bundle/diagram-G4DWMVQ6-KN7CBNBQ.js +578 -0
  112. package/dist/viewer-bundle/diagram-G4DWMVQ6-KN7CBNBQ.js.map +7 -0
  113. package/dist/viewer-bundle/diagram-MMDJMWI5-ZN6TQ7ZC.js +345 -0
  114. package/dist/viewer-bundle/diagram-MMDJMWI5-ZN6TQ7ZC.js.map +7 -0
  115. package/dist/viewer-bundle/diagram-TYMM5635-MMTUJ4KA.js +255 -0
  116. package/dist/viewer-bundle/diagram-TYMM5635-MMTUJ4KA.js.map +7 -0
  117. package/dist/viewer-bundle/docs.css +88 -0
  118. package/dist/viewer-bundle/edit-modal-BEGC2AO6.js +176 -0
  119. package/dist/viewer-bundle/edit-modal-BEGC2AO6.js.map +7 -0
  120. package/dist/viewer-bundle/erDiagram-SMLLAGMA-TBHMLD2E.js +1349 -0
  121. package/dist/viewer-bundle/erDiagram-SMLLAGMA-TBHMLD2E.js.map +7 -0
  122. package/dist/viewer-bundle/flowDiagram-DWJPFMVM-BZHLK6QB.js +2501 -0
  123. package/dist/viewer-bundle/flowDiagram-DWJPFMVM-BZHLK6QB.js.map +7 -0
  124. package/dist/viewer-bundle/ganttDiagram-T4ZO3ILL-YBARPTQR.js +2654 -0
  125. package/dist/viewer-bundle/ganttDiagram-T4ZO3ILL-YBARPTQR.js.map +7 -0
  126. package/dist/viewer-bundle/gitGraph-7Q5UKJZL-HENKIQDX.js +14 -0
  127. package/dist/viewer-bundle/gitGraph-7Q5UKJZL-HENKIQDX.js.map +7 -0
  128. package/dist/viewer-bundle/gitGraphDiagram-UUTBAWPF-M4VV3YVA.js +1946 -0
  129. package/dist/viewer-bundle/gitGraphDiagram-UUTBAWPF-M4VV3YVA.js.map +7 -0
  130. package/dist/viewer-bundle/index.html +28 -0
  131. package/dist/viewer-bundle/info-OMHHGYJF-E773USRS.js +14 -0
  132. package/dist/viewer-bundle/info-OMHHGYJF-E773USRS.js.map +7 -0
  133. package/dist/viewer-bundle/infoDiagram-42DDH7IO-C7JGUXKK.js +59 -0
  134. package/dist/viewer-bundle/infoDiagram-42DDH7IO-C7JGUXKK.js.map +7 -0
  135. package/dist/viewer-bundle/ishikawaDiagram-UXIWVN3A-YBC4X4VB.js +1012 -0
  136. package/dist/viewer-bundle/ishikawaDiagram-UXIWVN3A-YBC4X4VB.js.map +7 -0
  137. package/dist/viewer-bundle/journeyDiagram-VCZTEJTY-6WKVEOOO.js +1303 -0
  138. package/dist/viewer-bundle/journeyDiagram-VCZTEJTY-6WKVEOOO.js.map +7 -0
  139. package/dist/viewer-bundle/kanban-definition-6JOO6SKY-URTTHHO4.js +1131 -0
  140. package/dist/viewer-bundle/kanban-definition-6JOO6SKY-URTTHHO4.js.map +7 -0
  141. package/dist/viewer-bundle/katex-QN5266ZE.js +14318 -0
  142. package/dist/viewer-bundle/katex-QN5266ZE.js.map +7 -0
  143. package/dist/viewer-bundle/light.css +15 -0
  144. package/dist/viewer-bundle/main.js +4816 -0
  145. package/dist/viewer-bundle/main.js.map +7 -0
  146. package/dist/viewer-bundle/mermaid.core-AEBXU2JK.js +1708 -0
  147. package/dist/viewer-bundle/mermaid.core-AEBXU2JK.js.map +7 -0
  148. package/dist/viewer-bundle/mindmap-definition-QFDTVHPH-KUMAMRSF.js +1277 -0
  149. package/dist/viewer-bundle/mindmap-definition-QFDTVHPH-KUMAMRSF.js.map +7 -0
  150. package/dist/viewer-bundle/packet-4T2RLAQJ-IRYWWA66.js +14 -0
  151. package/dist/viewer-bundle/packet-4T2RLAQJ-IRYWWA66.js.map +7 -0
  152. package/dist/viewer-bundle/pico.classless.min.css +4 -0
  153. package/dist/viewer-bundle/pie-ZZUOXDRM-JYO4VL5N.js +14 -0
  154. package/dist/viewer-bundle/pie-ZZUOXDRM-JYO4VL5N.js.map +7 -0
  155. package/dist/viewer-bundle/pieDiagram-DEJITSTG-QOEHQN3N.js +238 -0
  156. package/dist/viewer-bundle/pieDiagram-DEJITSTG-QOEHQN3N.js.map +7 -0
  157. package/dist/viewer-bundle/prompt-modal-C4LHI7BS.js +12 -0
  158. package/dist/viewer-bundle/prompt-modal-C4LHI7BS.js.map +7 -0
  159. package/dist/viewer-bundle/quadrantDiagram-34T5L4WZ-SJNPUU5N.js +1409 -0
  160. package/dist/viewer-bundle/quadrantDiagram-34T5L4WZ-SJNPUU5N.js.map +7 -0
  161. package/dist/viewer-bundle/radar-PYXPWWZC-45BRYQSB.js +14 -0
  162. package/dist/viewer-bundle/radar-PYXPWWZC-45BRYQSB.js.map +7 -0
  163. package/dist/viewer-bundle/reason-modal-MK34MQ73.js +68 -0
  164. package/dist/viewer-bundle/reason-modal-MK34MQ73.js.map +7 -0
  165. package/dist/viewer-bundle/requirementDiagram-MS252O5E-UOMT3FCC.js +1311 -0
  166. package/dist/viewer-bundle/requirementDiagram-MS252O5E-UOMT3FCC.js.map +7 -0
  167. package/dist/viewer-bundle/sankeyDiagram-XADWPNL6-LAVJ5C6A.js +1263 -0
  168. package/dist/viewer-bundle/sankeyDiagram-XADWPNL6-LAVJ5C6A.js.map +7 -0
  169. package/dist/viewer-bundle/sequenceDiagram-FGHM5R23-3IWTOUNQ.js +4655 -0
  170. package/dist/viewer-bundle/sequenceDiagram-FGHM5R23-3IWTOUNQ.js.map +7 -0
  171. package/dist/viewer-bundle/stateDiagram-FHFEXIEX-S2OVQQON.js +495 -0
  172. package/dist/viewer-bundle/stateDiagram-FHFEXIEX-S2OVQQON.js.map +7 -0
  173. package/dist/viewer-bundle/stateDiagram-v2-QKLJ7IA2-XNZ3XXSV.js +44 -0
  174. package/dist/viewer-bundle/stateDiagram-v2-QKLJ7IA2-XNZ3XXSV.js.map +7 -0
  175. package/dist/viewer-bundle/timeline-definition-GMOUNBTQ-FHVZ7MHE.js +1646 -0
  176. package/dist/viewer-bundle/timeline-definition-GMOUNBTQ-FHVZ7MHE.js.map +7 -0
  177. package/dist/viewer-bundle/treeView-SZITEDCU-RXZXNYAM.js +14 -0
  178. package/dist/viewer-bundle/treeView-SZITEDCU-RXZXNYAM.js.map +7 -0
  179. package/dist/viewer-bundle/treemap-W4RFUUIX-2IGOFSJM.js +14 -0
  180. package/dist/viewer-bundle/treemap-W4RFUUIX-2IGOFSJM.js.map +7 -0
  181. package/dist/viewer-bundle/vennDiagram-DHZGUBPP-HEAOEXEZ.js +2544 -0
  182. package/dist/viewer-bundle/vennDiagram-DHZGUBPP-HEAOEXEZ.js.map +7 -0
  183. package/dist/viewer-bundle/wardley-RL74JXVD-VSPCLOX2.js +14 -0
  184. package/dist/viewer-bundle/wardley-RL74JXVD-VSPCLOX2.js.map +7 -0
  185. package/dist/viewer-bundle/wardleyDiagram-NUSXRM2D-EBY4FG3X.js +938 -0
  186. package/dist/viewer-bundle/wardleyDiagram-NUSXRM2D-EBY4FG3X.js.map +7 -0
  187. package/dist/viewer-bundle/xychartDiagram-5P7HB3ND-SSMUQEXK.js +1952 -0
  188. package/dist/viewer-bundle/xychartDiagram-5P7HB3ND-SSMUQEXK.js.map +7 -0
  189. package/package.json +51 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../node_modules/.pnpm/mermaid@11.14.0/node_modules/mermaid/dist/chunks/mermaid.core/wardleyDiagram-NUSXRM2D.mjs"],
4
+ "sourcesContent": ["import {\n selectSvgElement\n} from \"./chunk-426QAEUC.mjs\";\nimport {\n populateCommonDb\n} from \"./chunk-4BX2VUAB.mjs\";\nimport {\n clear,\n configureSvgSize,\n getAccDescription,\n getAccTitle,\n getConfig2 as getConfig,\n getDiagramTitle,\n sanitizeText,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n} from \"./chunk-ICPOFSXX.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagrams/wardley/wardleyParser.ts\nimport { parse } from \"@mermaid-js/parser\";\nvar toPercent = /* @__PURE__ */ __name((value, context) => {\n const normalized = value <= 1 ? value * 100 : value;\n if (normalized < 0 || normalized > 100) {\n throw new Error(\n `${context} must be between 0-1 (decimal) or 0-100 (percentage). Received: ${value}`\n );\n }\n return normalized;\n}, \"toPercent\");\nvar toCoordinates = /* @__PURE__ */ __name((visibility, evolution, context) => {\n return {\n x: toPercent(evolution, `${context} evolution`),\n y: toPercent(visibility, `${context} visibility`)\n };\n}, \"toCoordinates\");\nvar getFlowFromPort = /* @__PURE__ */ __name((port) => {\n if (!port) {\n return void 0;\n }\n if (port === \"+<>\") {\n return \"bidirectional\";\n }\n if (port === \"+<\") {\n return \"backward\";\n }\n if (port === \"+>\") {\n return \"forward\";\n }\n return void 0;\n}, \"getFlowFromPort\");\nvar extractFlowFromArrow = /* @__PURE__ */ __name((arrow) => {\n if (!arrow?.startsWith(\"+\")) {\n return {};\n }\n const labelMatch = /^\\+'([^']*)'/.exec(arrow);\n const flowLabel = labelMatch?.[1];\n if (arrow.includes(\"<>\")) {\n return { flow: \"bidirectional\", label: flowLabel };\n }\n if (arrow.includes(\"<\")) {\n return { flow: \"backward\", label: flowLabel };\n }\n if (arrow.includes(\">\")) {\n return { flow: \"forward\", label: flowLabel };\n }\n return { label: flowLabel };\n}, \"extractFlowFromArrow\");\nvar populateDb = /* @__PURE__ */ __name((ast, db) => {\n populateCommonDb(ast, db);\n if (ast.size) {\n db.setSize(ast.size.width, ast.size.height);\n }\n if (ast.evolution) {\n const stages = ast.evolution.stages.map((stage) => {\n if (stage.secondName) {\n return `${stage.name.trim()} / ${stage.secondName.trim()}`;\n }\n return stage.name.trim();\n });\n const stageBoundaries = ast.evolution.stages.filter((stage) => stage.boundary !== void 0).map((stage) => stage.boundary);\n db.updateAxes({ stages, stageBoundaries });\n }\n ast.anchors.forEach((anchor) => {\n const coords = toCoordinates(anchor.visibility, anchor.evolution, `Anchor \"${anchor.name}\"`);\n db.addNode(anchor.name, anchor.name, coords.x, coords.y, \"anchor\");\n });\n ast.components.forEach((component) => {\n const coords = toCoordinates(\n component.visibility,\n component.evolution,\n `Component \"${component.name}\"`\n );\n const labelOffsetX = component.label ? (component.label.negX ? -1 : 1) * component.label.offsetX : void 0;\n const labelOffsetY = component.label ? (component.label.negY ? -1 : 1) * component.label.offsetY : void 0;\n const sourceStrategy = component.decorator?.strategy;\n db.addNode(\n component.name,\n component.name,\n coords.x,\n coords.y,\n \"component\",\n labelOffsetX,\n labelOffsetY,\n component.inertia,\n sourceStrategy\n );\n });\n ast.notes.forEach((note) => {\n const coords = toCoordinates(note.visibility, note.evolution, `Note \"${note.text}\"`);\n db.addNote(note.text, coords.x, coords.y);\n });\n ast.pipelines.forEach((pipeline) => {\n const parentNode = db.getNode(pipeline.parent);\n if (!parentNode || typeof parentNode.y !== \"number\") {\n throw new Error(\n `Pipeline \"${pipeline.parent}\" must reference an existing component with coordinates.`\n );\n }\n const parentY = parentNode.y;\n db.startPipeline(pipeline.parent);\n pipeline.components.forEach((component) => {\n const componentId = `${pipeline.parent}_${component.name}`;\n const labelOffsetX = component.label ? (component.label.negX ? -1 : 1) * component.label.offsetX : void 0;\n const labelOffsetY = component.label ? (component.label.negY ? -1 : 1) * component.label.offsetY : void 0;\n const x = toPercent(component.evolution, `Pipeline component \"${component.name}\" evolution`);\n db.addNode(\n componentId,\n component.name,\n x,\n parentY,\n \"pipeline-component\",\n labelOffsetX,\n labelOffsetY\n );\n db.addPipelineComponent(pipeline.parent, componentId);\n });\n });\n ast.links.forEach((link) => {\n const isDashed = !!link.arrow && (link.arrow.includes(\"-.->\") || link.arrow.includes(\".-.\"));\n let flow = getFlowFromPort(link.fromPort) ?? getFlowFromPort(link.toPort);\n const { flow: arrowFlow, label: flowLabel } = extractFlowFromArrow(link.arrow);\n if (!flow && arrowFlow) {\n flow = arrowFlow;\n }\n const annotation = link.linkLabel;\n const label = flowLabel ?? annotation;\n db.addLink(link.from, link.to, isDashed, label, flow);\n });\n ast.evolves.forEach((evolve) => {\n const node = db.getNode(evolve.component);\n if (node?.y !== void 0) {\n const target = toPercent(evolve.target, `Evolve target for \"${evolve.component}\"`);\n db.addTrend(evolve.component, target, node.y);\n }\n });\n if (ast.annotations.length > 0) {\n const annotationsBox = ast.annotations[0];\n const coords = toCoordinates(annotationsBox.x, annotationsBox.y, \"Annotations box\");\n db.setAnnotationsBox(coords.x, coords.y);\n }\n ast.annotation.forEach((annotation) => {\n const coords = toCoordinates(annotation.x, annotation.y, `Annotation ${annotation.number}`);\n db.addAnnotation(annotation.number, [{ x: coords.x, y: coords.y }], annotation.text);\n });\n ast.accelerators.forEach((accelerator) => {\n const coords = toCoordinates(accelerator.x, accelerator.y, `Accelerator \"${accelerator.name}\"`);\n db.addAccelerator(accelerator.name, coords.x, coords.y);\n });\n ast.deaccelerators.forEach((deaccelerator) => {\n const coords = toCoordinates(\n deaccelerator.x,\n deaccelerator.y,\n `Deaccelerator \"${deaccelerator.name}\"`\n );\n db.addDeaccelerator(deaccelerator.name, coords.x, coords.y);\n });\n}, \"populateDb\");\nvar parser = {\n parser: {\n // @ts-expect-error - WardleyDB is not assignable to DiagramDB\n yy: void 0\n },\n parse: /* @__PURE__ */ __name(async (input) => {\n const ast = await parse(\"wardley\", input);\n log.debug(ast);\n const db = parser.parser?.yy;\n if (!db || typeof db.addNode !== \"function\") {\n throw new Error(\n \"parser.parser?.yy was not a WardleyDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.\"\n );\n }\n populateDb(ast, db);\n }, \"parse\")\n};\n\n// src/diagrams/wardley/wardleyBuilder.ts\nvar WardleyBuilder = class {\n constructor() {\n this.nodes = /* @__PURE__ */ new Map();\n this.links = [];\n this.trends = /* @__PURE__ */ new Map();\n this.pipelines = /* @__PURE__ */ new Map();\n this.annotations = [];\n this.notes = [];\n this.accelerators = [];\n this.deaccelerators = [];\n this.axes = {};\n }\n static {\n __name(this, \"WardleyBuilder\");\n }\n addNode(node) {\n const existing = this.nodes.get(node.id) ?? { id: node.id, label: node.label };\n const merged = {\n ...existing,\n ...node,\n className: node.className ?? existing.className,\n labelOffsetX: node.labelOffsetX ?? existing.labelOffsetX,\n labelOffsetY: node.labelOffsetY ?? existing.labelOffsetY\n };\n this.nodes.set(node.id, merged);\n }\n addLink(link) {\n this.links.push(link);\n }\n addTrend(trend) {\n this.trends.set(trend.nodeId, trend);\n }\n startPipeline(nodeId) {\n this.pipelines.set(nodeId, { nodeId, componentIds: [] });\n const node = this.nodes.get(nodeId);\n if (node) {\n node.isPipelineParent = true;\n }\n }\n addPipelineComponent(pipelineNodeId, componentId) {\n const pipeline = this.pipelines.get(pipelineNodeId);\n if (pipeline) {\n pipeline.componentIds.push(componentId);\n }\n const node = this.nodes.get(componentId);\n if (node) {\n node.inPipeline = true;\n }\n }\n addAnnotation(annotation) {\n this.annotations.push(annotation);\n }\n addNote(note) {\n this.notes.push(note);\n }\n addAccelerator(accelerator) {\n this.accelerators.push(accelerator);\n }\n addDeaccelerator(deaccelerator) {\n this.deaccelerators.push(deaccelerator);\n }\n setAnnotationsBox(x, y) {\n this.annotationsBox = { x, y };\n }\n setAxes(partial) {\n this.axes = {\n ...this.axes,\n ...partial\n };\n }\n setSize(width, height) {\n this.size = { width, height };\n }\n getNode(id) {\n return this.nodes.get(id);\n }\n build() {\n const nodes = [];\n for (const node of this.nodes.values()) {\n if (typeof node.x !== \"number\" || typeof node.y !== \"number\") {\n throw new Error(`Node \"${node.label}\" is missing coordinates`);\n }\n nodes.push(node);\n }\n return {\n nodes,\n links: [...this.links],\n trends: [...this.trends.values()],\n pipelines: [...this.pipelines.values()],\n annotations: [...this.annotations],\n notes: [...this.notes],\n accelerators: [...this.accelerators],\n deaccelerators: [...this.deaccelerators],\n annotationsBox: this.annotationsBox,\n axes: { ...this.axes },\n size: this.size\n };\n }\n clear() {\n this.nodes.clear();\n this.links = [];\n this.trends.clear();\n this.pipelines.clear();\n this.annotations = [];\n this.notes = [];\n this.accelerators = [];\n this.deaccelerators = [];\n this.annotationsBox = void 0;\n this.axes = {};\n this.size = void 0;\n }\n};\n\n// src/diagrams/wardley/wardleyDb.ts\nvar builder = new WardleyBuilder();\nfunction textSanitizer(text) {\n const config = getConfig();\n return sanitizeText(text.trim(), config);\n}\n__name(textSanitizer, \"textSanitizer\");\nfunction getConfig2() {\n return getConfig()[\"wardley-beta\"];\n}\n__name(getConfig2, \"getConfig\");\nfunction addNode(id, label, x, y, className, labelOffsetX, labelOffsetY, inertia, sourceStrategy) {\n builder.addNode({\n id,\n label: textSanitizer(label),\n x,\n y,\n className,\n labelOffsetX,\n labelOffsetY,\n inertia,\n sourceStrategy\n });\n}\n__name(addNode, \"addNode\");\nfunction addLink(sourceId, targetId, dashed = false, label, flow) {\n builder.addLink({ source: sourceId, target: targetId, dashed, label, flow });\n}\n__name(addLink, \"addLink\");\nfunction addTrend(nodeId, targetX, targetY) {\n builder.addTrend({ nodeId, targetX, targetY });\n}\n__name(addTrend, \"addTrend\");\nfunction addAnnotation(number, coordinates, text) {\n builder.addAnnotation({\n number,\n coordinates,\n text: text ? textSanitizer(text) : void 0\n });\n}\n__name(addAnnotation, \"addAnnotation\");\nfunction addNote(text, x, y) {\n builder.addNote({\n text: textSanitizer(text),\n x,\n y\n });\n}\n__name(addNote, \"addNote\");\nfunction addAccelerator(name, x, y) {\n builder.addAccelerator({\n name: textSanitizer(name),\n x,\n y\n });\n}\n__name(addAccelerator, \"addAccelerator\");\nfunction addDeaccelerator(name, x, y) {\n builder.addDeaccelerator({\n name: textSanitizer(name),\n x,\n y\n });\n}\n__name(addDeaccelerator, \"addDeaccelerator\");\nfunction setAnnotationsBox(x, y) {\n builder.setAnnotationsBox(x, y);\n}\n__name(setAnnotationsBox, \"setAnnotationsBox\");\nfunction setSize(width, height) {\n builder.setSize(width, height);\n}\n__name(setSize, \"setSize\");\nfunction startPipeline(nodeId) {\n builder.startPipeline(nodeId);\n}\n__name(startPipeline, \"startPipeline\");\nfunction addPipelineComponent(pipelineNodeId, componentId) {\n builder.addPipelineComponent(pipelineNodeId, componentId);\n}\n__name(addPipelineComponent, \"addPipelineComponent\");\nfunction updateAxes(partial) {\n const sanitized = {};\n if (partial.xLabel) {\n sanitized.xLabel = textSanitizer(partial.xLabel);\n }\n if (partial.yLabel) {\n sanitized.yLabel = textSanitizer(partial.yLabel);\n }\n if (partial.stages) {\n sanitized.stages = partial.stages.map((stage) => textSanitizer(stage));\n }\n if (partial.stageBoundaries) {\n sanitized.stageBoundaries = partial.stageBoundaries;\n }\n builder.setAxes(sanitized);\n}\n__name(updateAxes, \"updateAxes\");\nfunction getNode(id) {\n return builder.getNode(id);\n}\n__name(getNode, \"getNode\");\nfunction getWardleyData() {\n return builder.build();\n}\n__name(getWardleyData, \"getWardleyData\");\nfunction clear2() {\n builder.clear();\n clear();\n}\n__name(clear2, \"clear\");\nvar wardleyDb_default = {\n getConfig: getConfig2,\n addNode,\n addLink,\n addTrend,\n addAnnotation,\n addNote,\n addAccelerator,\n addDeaccelerator,\n setAnnotationsBox,\n setSize,\n startPipeline,\n addPipelineComponent,\n updateAxes,\n getNode,\n getWardleyData,\n clear: clear2,\n setAccTitle,\n getAccTitle,\n setDiagramTitle,\n getDiagramTitle,\n getAccDescription,\n setAccDescription\n};\n\n// src/diagrams/wardley/wardleyRenderer.ts\nvar DEFAULT_STAGES = [\"Genesis\", \"Custom Built\", \"Product\", \"Commodity\"];\nvar getTheme = /* @__PURE__ */ __name(() => {\n const { themeVariables } = getConfig();\n return {\n backgroundColor: themeVariables.wardley?.backgroundColor ?? themeVariables.background ?? \"#fff\",\n axisColor: themeVariables.wardley?.axisColor ?? \"#000\",\n axisTextColor: themeVariables.wardley?.axisTextColor ?? themeVariables.primaryTextColor ?? \"#222\",\n gridColor: themeVariables.wardley?.gridColor ?? \"rgba(100, 100, 100, 0.2)\",\n componentFill: themeVariables.wardley?.componentFill ?? \"#fff\",\n componentStroke: themeVariables.wardley?.componentStroke ?? \"#000\",\n componentLabelColor: themeVariables.wardley?.componentLabelColor ?? themeVariables.primaryTextColor ?? \"#222\",\n linkStroke: themeVariables.wardley?.linkStroke ?? \"#000\",\n evolutionStroke: themeVariables.wardley?.evolutionStroke ?? \"#dc3545\",\n annotationStroke: themeVariables.wardley?.annotationStroke ?? \"#000\",\n annotationTextColor: themeVariables.wardley?.annotationTextColor ?? themeVariables.primaryTextColor ?? \"#222\",\n annotationFill: themeVariables.wardley?.annotationFill ?? themeVariables.background ?? \"#fff\"\n };\n}, \"getTheme\");\nvar getConfigValues = /* @__PURE__ */ __name(() => {\n const wardleyConfig = getConfig()[\"wardley-beta\"];\n return {\n width: wardleyConfig?.width ?? 900,\n height: wardleyConfig?.height ?? 600,\n padding: wardleyConfig?.padding ?? 48,\n nodeRadius: wardleyConfig?.nodeRadius ?? 6,\n nodeLabelOffset: wardleyConfig?.nodeLabelOffset ?? 8,\n axisFontSize: wardleyConfig?.axisFontSize ?? 12,\n labelFontSize: wardleyConfig?.labelFontSize ?? 10,\n showGrid: wardleyConfig?.showGrid ?? false,\n useMaxWidth: wardleyConfig?.useMaxWidth ?? true\n };\n}, \"getConfigValues\");\nvar draw = /* @__PURE__ */ __name((text, id, _version, diagObj) => {\n log.debug(\"Rendering Wardley map\\n\" + text);\n const configValues = getConfigValues();\n const theme = getTheme();\n const squareSize = configValues.nodeRadius * 1.6;\n const db = diagObj.db;\n const data = db.getWardleyData();\n const title = db.getDiagramTitle();\n const width = data.size?.width ?? configValues.width;\n const height = data.size?.height ?? configValues.height;\n const svg = selectSvgElement(id);\n svg.selectAll(\"*\").remove();\n configureSvgSize(svg, height, width, configValues.useMaxWidth);\n svg.attr(\"viewBox\", `0 0 ${width} ${height}`);\n const root = svg.append(\"g\").attr(\"class\", \"wardley-map\");\n const defs = svg.append(\"defs\");\n defs.append(\"marker\").attr(\"id\", `arrow-${id}`).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", 9).attr(\"refY\", 5).attr(\"markerWidth\", 6).attr(\"markerHeight\", 6).attr(\"orient\", \"auto-start-reverse\").append(\"path\").attr(\"d\", \"M 0 0 L 10 5 L 0 10 z\").attr(\"fill\", theme.evolutionStroke).attr(\"stroke\", \"none\");\n defs.append(\"marker\").attr(\"id\", `link-arrow-end-${id}`).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", 9).attr(\"refY\", 5).attr(\"markerWidth\", 5).attr(\"markerHeight\", 5).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 0 0 L 10 5 L 0 10 z\").attr(\"fill\", theme.linkStroke).attr(\"stroke\", \"none\");\n defs.append(\"marker\").attr(\"id\", `link-arrow-start-${id}`).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", 1).attr(\"refY\", 5).attr(\"markerWidth\", 5).attr(\"markerHeight\", 5).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 10 0 L 0 5 L 10 10 z\").attr(\"fill\", theme.linkStroke).attr(\"stroke\", \"none\");\n root.append(\"rect\").attr(\"class\", \"wardley-background\").attr(\"width\", width).attr(\"height\", height).attr(\"fill\", theme.backgroundColor);\n const chartWidth = width - configValues.padding * 2;\n const chartHeight = height - configValues.padding * 2;\n if (title) {\n root.append(\"text\").attr(\"class\", \"wardley-title\").attr(\"x\", width / 2).attr(\"y\", configValues.padding / 2).attr(\"fill\", theme.axisTextColor).attr(\"font-size\", configValues.axisFontSize * 1.05).attr(\"font-weight\", \"bold\").attr(\"text-anchor\", \"middle\").attr(\"dominant-baseline\", \"middle\").text(title);\n }\n const projectX = /* @__PURE__ */ __name((value) => configValues.padding + value / 100 * chartWidth, \"projectX\");\n const projectY = /* @__PURE__ */ __name((value) => height - configValues.padding - value / 100 * chartHeight, \"projectY\");\n const axisGroup = root.append(\"g\").attr(\"class\", \"wardley-axes\");\n axisGroup.append(\"line\").attr(\"x1\", configValues.padding).attr(\"x2\", width - configValues.padding).attr(\"y1\", height - configValues.padding).attr(\"y2\", height - configValues.padding).attr(\"stroke\", theme.axisColor).attr(\"stroke-width\", 1);\n axisGroup.append(\"line\").attr(\"x1\", configValues.padding).attr(\"x2\", configValues.padding).attr(\"y1\", configValues.padding).attr(\"y2\", height - configValues.padding).attr(\"stroke\", theme.axisColor).attr(\"stroke-width\", 1);\n const xLabel = data.axes.xLabel ?? \"Evolution\";\n const yLabel = data.axes.yLabel ?? \"Visibility\";\n axisGroup.append(\"text\").attr(\"class\", \"wardley-axis-label wardley-axis-label-x\").attr(\"x\", configValues.padding + chartWidth / 2).attr(\"y\", height - configValues.padding / 4).attr(\"fill\", theme.axisTextColor).attr(\"font-size\", configValues.axisFontSize).attr(\"font-weight\", \"bold\").attr(\"text-anchor\", \"middle\").text(xLabel);\n axisGroup.append(\"text\").attr(\"class\", \"wardley-axis-label wardley-axis-label-y\").attr(\"x\", configValues.padding / 3).attr(\"y\", configValues.padding + chartHeight / 2).attr(\"fill\", theme.axisTextColor).attr(\"font-size\", configValues.axisFontSize).attr(\"font-weight\", \"bold\").attr(\"text-anchor\", \"middle\").attr(\n \"transform\",\n `rotate(-90 ${configValues.padding / 3} ${configValues.padding + chartHeight / 2})`\n ).text(yLabel);\n const stages = data.axes.stages && data.axes.stages.length > 0 ? data.axes.stages : DEFAULT_STAGES;\n if (stages.length > 0) {\n const stageGroup = root.append(\"g\").attr(\"class\", \"wardley-stages\");\n const boundaries = data.axes.stageBoundaries;\n const stagePositions = [];\n if (boundaries && boundaries.length === stages.length) {\n let prevBoundary = 0;\n boundaries.forEach((boundary) => {\n stagePositions.push({ start: prevBoundary, end: boundary });\n prevBoundary = boundary;\n });\n } else {\n const stageWidth = 1 / stages.length;\n stages.forEach((_, index) => {\n stagePositions.push({\n start: index * stageWidth,\n end: (index + 1) * stageWidth\n });\n });\n }\n stages.forEach((stage, index) => {\n const pos = stagePositions[index];\n const startX = configValues.padding + pos.start * chartWidth;\n const endX = configValues.padding + pos.end * chartWidth;\n const centerX = (startX + endX) / 2;\n if (index > 0) {\n stageGroup.append(\"line\").attr(\"x1\", startX).attr(\"x2\", startX).attr(\"y1\", configValues.padding).attr(\"y2\", height - configValues.padding).attr(\"stroke\", \"#000\").attr(\"stroke-width\", 1).attr(\"stroke-dasharray\", \"5 5\").attr(\"opacity\", 0.8);\n }\n stageGroup.append(\"text\").attr(\"class\", \"wardley-stage-label\").attr(\"x\", centerX).attr(\"y\", height - configValues.padding / 1.5).attr(\"fill\", theme.axisTextColor).attr(\"font-size\", configValues.axisFontSize - 2).attr(\"text-anchor\", \"middle\").text(stage);\n });\n }\n if (configValues.showGrid) {\n const gridGroup = root.append(\"g\").attr(\"class\", \"wardley-grid\");\n for (let i = 1; i < 4; i++) {\n const ratio = i / 4;\n const x = configValues.padding + chartWidth * ratio;\n gridGroup.append(\"line\").attr(\"x1\", x).attr(\"x2\", x).attr(\"y1\", configValues.padding).attr(\"y2\", height - configValues.padding).attr(\"stroke\", theme.gridColor).attr(\"stroke-dasharray\", \"2 6\");\n gridGroup.append(\"line\").attr(\"x1\", configValues.padding).attr(\"x2\", width - configValues.padding).attr(\"y1\", height - configValues.padding - chartHeight * ratio).attr(\"y2\", height - configValues.padding - chartHeight * ratio).attr(\"stroke\", theme.gridColor).attr(\"stroke-dasharray\", \"2 6\");\n }\n }\n const positions = /* @__PURE__ */ new Map();\n data.nodes.forEach((node) => {\n positions.set(node.id, {\n x: projectX(node.x),\n y: projectY(node.y),\n node\n });\n });\n if (data.pipelines.length > 0) {\n const pipelineGroup = root.append(\"g\").attr(\"class\", \"wardley-pipelines\");\n const pipelineLinksGroup = root.append(\"g\").attr(\"class\", \"wardley-pipeline-links\");\n data.pipelines.forEach((pipeline) => {\n if (pipeline.componentIds.length === 0) {\n return;\n }\n const sortedComponents = pipeline.componentIds.map((id2) => ({ id: id2, pos: positions.get(id2), node: data.nodes.find((n) => n.id === id2) })).filter((c) => c.pos && c.node).sort((a, b) => a.node.x - b.node.x);\n for (let i = 0; i < sortedComponents.length - 1; i++) {\n const current = sortedComponents[i];\n const next = sortedComponents[i + 1];\n pipelineLinksGroup.append(\"line\").attr(\"class\", \"wardley-pipeline-evolution-link\").attr(\"x1\", current.pos.x).attr(\"y1\", current.pos.y).attr(\"x2\", next.pos.x).attr(\"y2\", next.pos.y).attr(\"stroke\", theme.linkStroke).attr(\"stroke-width\", 1).attr(\"stroke-dasharray\", \"4 4\");\n }\n let minX = Infinity;\n let maxX = -Infinity;\n let y = 0;\n pipeline.componentIds.forEach((componentId) => {\n const pos = positions.get(componentId);\n if (pos) {\n minX = Math.min(minX, pos.x);\n maxX = Math.max(maxX, pos.x);\n y = pos.y;\n }\n });\n if (minX !== Infinity && maxX !== -Infinity) {\n const padding = 15;\n const height2 = configValues.nodeRadius * 4;\n const boxTop = y - height2 / 2;\n const parentPos = positions.get(pipeline.nodeId);\n if (parentPos) {\n const centerX = (minX + maxX) / 2;\n parentPos.x = centerX;\n parentPos.y = boxTop - squareSize / 6;\n }\n pipelineGroup.append(\"rect\").attr(\"class\", \"wardley-pipeline-box\").attr(\"x\", minX - padding).attr(\"y\", boxTop).attr(\"width\", maxX - minX + padding * 2).attr(\"height\", height2).attr(\"fill\", \"none\").attr(\"stroke\", theme.axisColor).attr(\"stroke-width\", 1.5).attr(\"rx\", 4).attr(\"ry\", 4);\n }\n });\n }\n const linksGroup = root.append(\"g\").attr(\"class\", \"wardley-links\");\n const pipelineMap = /* @__PURE__ */ new Map();\n data.pipelines.forEach((pipeline) => {\n pipelineMap.set(pipeline.nodeId, new Set(pipeline.componentIds));\n });\n const validLinks = data.links.filter((link) => {\n if (!positions.has(link.source) || !positions.has(link.target)) {\n return false;\n }\n const pipelineComponents = pipelineMap.get(link.target);\n if (pipelineComponents?.has(link.source)) {\n return false;\n }\n return true;\n });\n linksGroup.selectAll(\"line\").data(validLinks).enter().append(\"line\").attr(\"class\", (link) => `wardley-link${link.dashed ? \" wardley-link--dashed\" : \"\"}`).attr(\"x1\", (link) => {\n const sourcePos = positions.get(link.source);\n const targetPos = positions.get(link.target);\n const sourceNode = data.nodes.find((n) => n.id === link.source);\n const radius = sourceNode.isPipelineParent ? squareSize / Math.sqrt(2) : configValues.nodeRadius;\n const dx = targetPos.x - sourcePos.x;\n const dy = targetPos.y - sourcePos.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n return sourcePos.x + dx / distance * radius;\n }).attr(\"y1\", (link) => {\n const sourcePos = positions.get(link.source);\n const targetPos = positions.get(link.target);\n const sourceNode = data.nodes.find((n) => n.id === link.source);\n const radius = sourceNode.isPipelineParent ? squareSize / Math.sqrt(2) : configValues.nodeRadius;\n const dx = targetPos.x - sourcePos.x;\n const dy = targetPos.y - sourcePos.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n return sourcePos.y + dy / distance * radius;\n }).attr(\"x2\", (link) => {\n const sourcePos = positions.get(link.source);\n const targetPos = positions.get(link.target);\n const targetNode = data.nodes.find((n) => n.id === link.target);\n const radius = targetNode.isPipelineParent ? squareSize / Math.sqrt(2) : configValues.nodeRadius;\n const dx = sourcePos.x - targetPos.x;\n const dy = sourcePos.y - targetPos.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n return targetPos.x + dx / distance * radius;\n }).attr(\"y2\", (link) => {\n const sourcePos = positions.get(link.source);\n const targetPos = positions.get(link.target);\n const targetNode = data.nodes.find((n) => n.id === link.target);\n const radius = targetNode.isPipelineParent ? squareSize / Math.sqrt(2) : configValues.nodeRadius;\n const dx = sourcePos.x - targetPos.x;\n const dy = sourcePos.y - targetPos.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n return targetPos.y + dy / distance * radius;\n }).attr(\"stroke\", theme.linkStroke).attr(\"stroke-width\", 1).attr(\"stroke-dasharray\", (link) => link.dashed ? \"6 6\" : null).attr(\"marker-end\", (link) => {\n if (link.flow === \"forward\" || link.flow === \"bidirectional\") {\n return `url(#link-arrow-end-${id})`;\n }\n return null;\n }).attr(\"marker-start\", (link) => {\n if (link.flow === \"backward\" || link.flow === \"bidirectional\") {\n return `url(#link-arrow-start-${id})`;\n }\n return null;\n });\n linksGroup.selectAll(\"text\").data(validLinks.filter((link) => link.label)).enter().append(\"text\").attr(\"class\", \"wardley-link-label\").attr(\"x\", (link) => {\n const sourcePos = positions.get(link.source);\n const targetPos = positions.get(link.target);\n const midX = (sourcePos.x + targetPos.x) / 2;\n const dy = targetPos.y - sourcePos.y;\n const dx = targetPos.x - sourcePos.x;\n const distance = Math.sqrt(dx * dx + dy * dy);\n const offset = 8;\n const perpX = dy / distance;\n return midX + perpX * offset;\n }).attr(\"y\", (link) => {\n const sourcePos = positions.get(link.source);\n const targetPos = positions.get(link.target);\n const midY = (sourcePos.y + targetPos.y) / 2;\n const dx = targetPos.x - sourcePos.x;\n const dy = targetPos.y - sourcePos.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n const offset = 8;\n const perpY = -dx / distance;\n return midY + perpY * offset;\n }).attr(\"fill\", theme.axisTextColor).attr(\"font-size\", configValues.labelFontSize).attr(\"text-anchor\", \"middle\").attr(\"dominant-baseline\", \"middle\").attr(\"transform\", (link) => {\n const sourcePos = positions.get(link.source);\n const targetPos = positions.get(link.target);\n const midX = (sourcePos.x + targetPos.x) / 2;\n const midY = (sourcePos.y + targetPos.y) / 2;\n const dx = targetPos.x - sourcePos.x;\n const dy = targetPos.y - sourcePos.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n const offset = 8;\n const perpX = dy / distance;\n const perpY = -dx / distance;\n const labelX = midX + perpX * offset;\n const labelY = midY + perpY * offset;\n let angle = Math.atan2(dy, dx) * 180 / Math.PI;\n if (angle > 90 || angle < -90) {\n angle += 180;\n }\n return `rotate(${angle} ${labelX} ${labelY})`;\n }).text((link) => link.label);\n const trendGroup = root.append(\"g\").attr(\"class\", \"wardley-trends\");\n const trendsWithPositions = data.trends.map((trend) => {\n const origin = positions.get(trend.nodeId);\n if (!origin) {\n return null;\n }\n const targetX = projectX(trend.targetX);\n const targetY = projectY(trend.targetY);\n const dx = targetX - origin.x;\n const dy = targetY - origin.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n const shortenBy = configValues.nodeRadius + 2;\n const adjustedX2 = distance > shortenBy ? targetX - dx / distance * shortenBy : targetX;\n const adjustedY2 = distance > shortenBy ? targetY - dy / distance * shortenBy : targetY;\n return {\n origin,\n targetX,\n targetY,\n adjustedX2,\n adjustedY2\n };\n }).filter((trend) => trend !== null);\n trendGroup.selectAll(\"line\").data(trendsWithPositions).enter().append(\"line\").attr(\"class\", \"wardley-trend\").attr(\"x1\", (trend) => trend.origin.x).attr(\"y1\", (trend) => trend.origin.y).attr(\"x2\", (trend) => trend.adjustedX2).attr(\"y2\", (trend) => trend.adjustedY2).attr(\"stroke\", theme.evolutionStroke).attr(\"stroke-width\", 1).attr(\"stroke-dasharray\", \"4 4\").attr(\"marker-end\", `url(#arrow-${id})`);\n const nodesGroup = root.append(\"g\").attr(\"class\", \"wardley-nodes\");\n const nodeEnter = nodesGroup.selectAll(\"g\").data(data.nodes).enter().append(\"g\").attr(\n \"class\",\n (node) => [\"wardley-node\", node.className ? `wardley-node--${node.className}` : \"\"].filter(Boolean).join(\" \")\n );\n nodeEnter.filter((node) => node.sourceStrategy === \"outsource\").append(\"circle\").attr(\"class\", \"wardley-outsource-overlay\").attr(\"cx\", (node) => positions.get(node.id).x).attr(\"cy\", (node) => positions.get(node.id).y).attr(\"r\", configValues.nodeRadius * 2).attr(\"fill\", \"#666\").attr(\"stroke\", theme.componentStroke).attr(\"stroke-width\", 1);\n nodeEnter.filter((node) => node.sourceStrategy === \"buy\").append(\"circle\").attr(\"class\", \"wardley-buy-overlay\").attr(\"cx\", (node) => positions.get(node.id).x).attr(\"cy\", (node) => positions.get(node.id).y).attr(\"r\", configValues.nodeRadius * 2).attr(\"fill\", \"#ccc\").attr(\"stroke\", theme.componentStroke).attr(\"stroke-width\", 1);\n nodeEnter.filter((node) => node.sourceStrategy === \"build\").append(\"circle\").attr(\"class\", \"wardley-build-overlay\").attr(\"cx\", (node) => positions.get(node.id).x).attr(\"cy\", (node) => positions.get(node.id).y).attr(\"r\", configValues.nodeRadius * 2).attr(\"fill\", \"#eee\").attr(\"stroke\", \"#000\").attr(\"stroke-width\", 1);\n const marketNodes = nodeEnter.filter((node) => node.sourceStrategy === \"market\");\n marketNodes.append(\"circle\").attr(\"class\", \"wardley-market-overlay\").attr(\"cx\", (node) => positions.get(node.id).x).attr(\"cy\", (node) => positions.get(node.id).y).attr(\"r\", configValues.nodeRadius * 2).attr(\"fill\", \"white\").attr(\"stroke\", theme.componentStroke).attr(\"stroke-width\", 1);\n nodeEnter.filter(\n (node) => !node.isPipelineParent && node.sourceStrategy !== \"market\" && node.className !== \"anchor\"\n ).append(\"circle\").attr(\"cx\", (node) => positions.get(node.id).x).attr(\"cy\", (node) => positions.get(node.id).y).attr(\"r\", configValues.nodeRadius).attr(\"fill\", theme.componentFill).attr(\"stroke\", theme.componentStroke).attr(\"stroke-width\", 1);\n const smallCircleRadius = configValues.nodeRadius * 0.7;\n const triangleRadius = configValues.nodeRadius * 1.2;\n marketNodes.append(\"line\").attr(\"class\", \"wardley-market-line\").attr(\"x1\", (node) => positions.get(node.id).x).attr(\"y1\", (node) => positions.get(node.id).y - triangleRadius).attr(\"x2\", (node) => positions.get(node.id).x - triangleRadius * Math.cos(Math.PI / 6)).attr(\"y2\", (node) => positions.get(node.id).y + triangleRadius * Math.sin(Math.PI / 6)).attr(\"stroke\", theme.componentStroke).attr(\"stroke-width\", 1);\n marketNodes.append(\"line\").attr(\"class\", \"wardley-market-line\").attr(\"x1\", (node) => positions.get(node.id).x - triangleRadius * Math.cos(Math.PI / 6)).attr(\"y1\", (node) => positions.get(node.id).y + triangleRadius * Math.sin(Math.PI / 6)).attr(\"x2\", (node) => positions.get(node.id).x + triangleRadius * Math.cos(Math.PI / 6)).attr(\"y2\", (node) => positions.get(node.id).y + triangleRadius * Math.sin(Math.PI / 6)).attr(\"stroke\", theme.componentStroke).attr(\"stroke-width\", 1);\n marketNodes.append(\"line\").attr(\"class\", \"wardley-market-line\").attr(\"x1\", (node) => positions.get(node.id).x + triangleRadius * Math.cos(Math.PI / 6)).attr(\"y1\", (node) => positions.get(node.id).y + triangleRadius * Math.sin(Math.PI / 6)).attr(\"x2\", (node) => positions.get(node.id).x).attr(\"y2\", (node) => positions.get(node.id).y - triangleRadius).attr(\"stroke\", theme.componentStroke).attr(\"stroke-width\", 1);\n marketNodes.append(\"circle\").attr(\"class\", \"wardley-market-dot\").attr(\"cx\", (node) => positions.get(node.id).x).attr(\"cy\", (node) => positions.get(node.id).y - triangleRadius).attr(\"r\", smallCircleRadius).attr(\"fill\", \"white\").attr(\"stroke\", theme.componentStroke).attr(\"stroke-width\", 2);\n marketNodes.append(\"circle\").attr(\"class\", \"wardley-market-dot\").attr(\"cx\", (node) => positions.get(node.id).x - triangleRadius * Math.cos(Math.PI / 6)).attr(\"cy\", (node) => positions.get(node.id).y + triangleRadius * Math.sin(Math.PI / 6)).attr(\"r\", smallCircleRadius).attr(\"fill\", \"white\").attr(\"stroke\", theme.componentStroke).attr(\"stroke-width\", 2);\n marketNodes.append(\"circle\").attr(\"class\", \"wardley-market-dot\").attr(\"cx\", (node) => positions.get(node.id).x + triangleRadius * Math.cos(Math.PI / 6)).attr(\"cy\", (node) => positions.get(node.id).y + triangleRadius * Math.sin(Math.PI / 6)).attr(\"r\", smallCircleRadius).attr(\"fill\", \"white\").attr(\"stroke\", theme.componentStroke).attr(\"stroke-width\", 2);\n nodeEnter.filter((node) => node.isPipelineParent === true).append(\"rect\").attr(\"x\", (node) => positions.get(node.id).x - squareSize / 2).attr(\"y\", (node) => positions.get(node.id).y - squareSize / 2).attr(\"width\", squareSize).attr(\"height\", squareSize).attr(\"fill\", theme.componentFill).attr(\"stroke\", theme.componentStroke).attr(\"stroke-width\", 1);\n nodeEnter.filter((node) => node.inertia === true).append(\"line\").attr(\"class\", \"wardley-inertia\").attr(\"x1\", (node) => {\n const pos = positions.get(node.id);\n let offset = node.isPipelineParent ? squareSize / 2 + 15 : configValues.nodeRadius + 15;\n if (node.sourceStrategy) {\n offset += configValues.nodeRadius + 10;\n }\n return pos.x + offset;\n }).attr(\"y1\", (node) => {\n const pos = positions.get(node.id);\n const lineHeight = node.isPipelineParent ? squareSize : configValues.nodeRadius * 2;\n return pos.y - lineHeight / 2;\n }).attr(\"x2\", (node) => {\n const pos = positions.get(node.id);\n let offset = node.isPipelineParent ? squareSize / 2 + 15 : configValues.nodeRadius + 15;\n if (node.sourceStrategy) {\n offset += configValues.nodeRadius + 10;\n }\n return pos.x + offset;\n }).attr(\"y2\", (node) => {\n const pos = positions.get(node.id);\n const lineHeight = node.isPipelineParent ? squareSize : configValues.nodeRadius * 2;\n return pos.y + lineHeight / 2;\n }).attr(\"stroke\", theme.componentStroke).attr(\"stroke-width\", 6);\n nodeEnter.append(\"text\").attr(\"x\", (node) => {\n const pos = positions.get(node.id);\n if (node.className === \"anchor\") {\n return node.labelOffsetX !== void 0 ? pos.x + node.labelOffsetX : pos.x;\n }\n let defaultOffset = configValues.nodeLabelOffset;\n if (node.sourceStrategy && node.labelOffsetX === void 0) {\n defaultOffset += 10;\n }\n const customOffset = node.labelOffsetX ?? defaultOffset;\n return pos.x + customOffset;\n }).attr(\"y\", (node) => {\n const pos = positions.get(node.id);\n if (node.className === \"anchor\") {\n return node.labelOffsetY !== void 0 ? pos.y + node.labelOffsetY : pos.y - 3;\n }\n let defaultOffset = -configValues.nodeLabelOffset;\n if (node.sourceStrategy && node.labelOffsetY === void 0) {\n defaultOffset -= 10;\n }\n const customOffset = node.labelOffsetY ?? defaultOffset;\n return pos.y + customOffset;\n }).attr(\"class\", \"wardley-node-label\").attr(\"fill\", (node) => {\n if (node.className === \"evolved\") {\n return theme.evolutionStroke;\n }\n if (node.className === \"anchor\") {\n return \"#000\";\n }\n return theme.componentLabelColor;\n }).attr(\"font-size\", configValues.labelFontSize).attr(\"font-weight\", (node) => node.className === \"anchor\" ? \"bold\" : \"normal\").attr(\"text-anchor\", (node) => node.className === \"anchor\" ? \"middle\" : \"start\").attr(\"dominant-baseline\", (node) => node.className === \"anchor\" ? \"middle\" : \"auto\").text((node) => node.label);\n if (data.annotations.length > 0) {\n const annotationsGroup = root.append(\"g\").attr(\"class\", \"wardley-annotations\");\n data.annotations.forEach((annotation) => {\n const projectedCoords = annotation.coordinates.map((coord) => ({\n x: projectX(coord.x),\n y: projectY(coord.y)\n }));\n if (projectedCoords.length > 1) {\n for (let i = 0; i < projectedCoords.length - 1; i++) {\n annotationsGroup.append(\"line\").attr(\"class\", \"wardley-annotation-line\").attr(\"x1\", projectedCoords[i].x).attr(\"y1\", projectedCoords[i].y).attr(\"x2\", projectedCoords[i + 1].x).attr(\"y2\", projectedCoords[i + 1].y).attr(\"stroke\", theme.axisColor).attr(\"stroke-width\", 1.5).attr(\"stroke-dasharray\", \"4 4\");\n }\n }\n projectedCoords.forEach((coord) => {\n const annotationNode = annotationsGroup.append(\"g\").attr(\"class\", \"wardley-annotation\");\n annotationNode.append(\"circle\").attr(\"cx\", coord.x).attr(\"cy\", coord.y).attr(\"r\", 10).attr(\"fill\", \"white\").attr(\"stroke\", theme.axisColor).attr(\"stroke-width\", 1.5);\n annotationNode.append(\"text\").attr(\"x\", coord.x).attr(\"y\", coord.y).attr(\"text-anchor\", \"middle\").attr(\"dominant-baseline\", \"central\").attr(\"font-size\", 10).attr(\"fill\", theme.axisTextColor).attr(\"font-weight\", \"bold\").text(annotation.number);\n });\n });\n if (data.annotationsBox) {\n let boxX = projectX(data.annotationsBox.x);\n let boxY = projectY(data.annotationsBox.y);\n const padding = 10;\n const lineHeight = 16;\n const fontSize = 11;\n const textBoxGroup = annotationsGroup.append(\"g\").attr(\"class\", \"wardley-annotations-box\");\n const sortedAnnotations = [...data.annotations].filter((a) => a.text).sort((a, b) => a.number - b.number);\n const textElements = [];\n sortedAnnotations.forEach((annotation, idx) => {\n const text2 = textBoxGroup.append(\"text\").attr(\"x\", boxX + padding).attr(\"y\", boxY + padding + (idx + 1) * lineHeight).attr(\"font-size\", fontSize).attr(\"fill\", theme.axisTextColor).attr(\"text-anchor\", \"start\").attr(\"dominant-baseline\", \"middle\").text(`${annotation.number}. ${annotation.text}`);\n textElements.push(text2);\n });\n if (textElements.length > 0) {\n let maxWidth = 0;\n let maxHeight = 0;\n textElements.forEach((text2) => {\n const textNode = text2.node();\n const textWidth = textNode.getComputedTextLength();\n maxWidth = Math.max(maxWidth, textWidth);\n const bbox = textNode.getBBox();\n maxHeight = Math.max(maxHeight, bbox.height);\n });\n const boxWidth = maxWidth + padding * 2 + 105;\n const boxHeight = sortedAnnotations.length * lineHeight + padding * 2 + maxHeight / 2;\n const minX = configValues.padding;\n const maxX = width - configValues.padding - boxWidth;\n const minY = configValues.padding;\n const maxY = height - configValues.padding - boxHeight;\n boxX = Math.max(minX, Math.min(boxX, maxX));\n boxY = Math.max(minY, Math.min(boxY, maxY));\n textElements.forEach((text2, idx) => {\n text2.attr(\"x\", boxX + padding).attr(\"y\", boxY + padding + (idx + 1) * lineHeight);\n });\n textBoxGroup.insert(\"rect\", \"text\").attr(\"x\", boxX).attr(\"y\", boxY).attr(\"width\", boxWidth).attr(\"height\", boxHeight).attr(\"fill\", \"white\").attr(\"stroke\", theme.axisColor).attr(\"stroke-width\", 1.5).attr(\"rx\", 4).attr(\"ry\", 4);\n }\n }\n }\n if (data.notes.length > 0) {\n const notesGroup = root.append(\"g\").attr(\"class\", \"wardley-notes\");\n data.notes.forEach((note) => {\n const noteX = projectX(note.x);\n const noteY = projectY(note.y);\n notesGroup.append(\"text\").attr(\"x\", noteX).attr(\"y\", noteY).attr(\"text-anchor\", \"start\").attr(\"font-size\", 11).attr(\"fill\", theme.axisTextColor).attr(\"font-weight\", \"bold\").text(note.text);\n });\n }\n if (data.accelerators.length > 0) {\n const acceleratorsGroup = root.append(\"g\").attr(\"class\", \"wardley-accelerators\");\n data.accelerators.forEach((accelerator) => {\n const accX = projectX(accelerator.x);\n const accY = projectY(accelerator.y);\n const arrowWidth = 60;\n const arrowHeight = 30;\n const arrowHeadWidth = 20;\n const arrowPath = `\n M ${accX} ${accY - arrowHeight / 2}\n L ${accX + arrowWidth - arrowHeadWidth} ${accY - arrowHeight / 2}\n L ${accX + arrowWidth - arrowHeadWidth} ${accY - arrowHeight / 2 - 8}\n L ${accX + arrowWidth} ${accY}\n L ${accX + arrowWidth - arrowHeadWidth} ${accY + arrowHeight / 2 + 8}\n L ${accX + arrowWidth - arrowHeadWidth} ${accY + arrowHeight / 2}\n L ${accX} ${accY + arrowHeight / 2}\n Z\n `;\n acceleratorsGroup.append(\"path\").attr(\"d\", arrowPath).attr(\"fill\", \"white\").attr(\"stroke\", theme.componentStroke).attr(\"stroke-width\", 1);\n acceleratorsGroup.append(\"text\").attr(\"x\", accX + arrowWidth / 2).attr(\"y\", accY + arrowHeight / 2 + 15).attr(\"text-anchor\", \"middle\").attr(\"font-size\", 10).attr(\"fill\", theme.axisTextColor).attr(\"font-weight\", \"bold\").text(accelerator.name);\n });\n }\n if (data.deaccelerators.length > 0) {\n const deacceleratorsGroup = root.append(\"g\").attr(\"class\", \"wardley-deaccelerators\");\n data.deaccelerators.forEach((deaccelerator) => {\n const decX = projectX(deaccelerator.x);\n const decY = projectY(deaccelerator.y);\n const arrowWidth = 60;\n const arrowHeight = 30;\n const arrowHeadWidth = 20;\n const arrowPath = `\n M ${decX + arrowWidth} ${decY - arrowHeight / 2}\n L ${decX + arrowHeadWidth} ${decY - arrowHeight / 2}\n L ${decX + arrowHeadWidth} ${decY - arrowHeight / 2 - 8}\n L ${decX} ${decY}\n L ${decX + arrowHeadWidth} ${decY + arrowHeight / 2 + 8}\n L ${decX + arrowHeadWidth} ${decY + arrowHeight / 2}\n L ${decX + arrowWidth} ${decY + arrowHeight / 2}\n Z\n `;\n deacceleratorsGroup.append(\"path\").attr(\"d\", arrowPath).attr(\"fill\", \"white\").attr(\"stroke\", theme.componentStroke).attr(\"stroke-width\", 1);\n deacceleratorsGroup.append(\"text\").attr(\"x\", decX + arrowWidth / 2).attr(\"y\", decY + arrowHeight / 2 + 15).attr(\"text-anchor\", \"middle\").attr(\"font-size\", 10).attr(\"fill\", theme.axisTextColor).attr(\"font-weight\", \"bold\").text(deaccelerator.name);\n });\n }\n}, \"draw\");\nvar wardleyRenderer_default = {\n draw\n};\n\n// src/diagrams/wardley/wardleyDiagram.ts\nvar diagram = {\n parser,\n db: wardleyDb_default,\n renderer: wardleyRenderer_default,\n styles: /* @__PURE__ */ __name(() => \"\", \"styles\")\n};\nexport {\n diagram\n};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,IAAI,YAA4B,uBAAO,CAAC,OAAO,YAAY;AACzD,QAAM,aAAa,SAAS,IAAI,QAAQ,MAAM;AAC9C,MAAI,aAAa,KAAK,aAAa,KAAK;AACtC,UAAM,IAAI;AAAA,MACR,GAAG,OAAO,mEAAmE,KAAK;AAAA,IACpF;AAAA,EACF;AACA,SAAO;AACT,GAAG,WAAW;AACd,IAAI,gBAAgC,uBAAO,CAAC,YAAY,WAAW,YAAY;AAC7E,SAAO;AAAA,IACL,GAAG,UAAU,WAAW,GAAG,OAAO,YAAY;AAAA,IAC9C,GAAG,UAAU,YAAY,GAAG,OAAO,aAAa;AAAA,EAClD;AACF,GAAG,eAAe;AAClB,IAAI,kBAAkC,uBAAO,CAAC,SAAS;AACrD,MAAI,CAAC,MAAM;AACT,WAAO;AAAA,EACT;AACA,MAAI,SAAS,OAAO;AAClB,WAAO;AAAA,EACT;AACA,MAAI,SAAS,MAAM;AACjB,WAAO;AAAA,EACT;AACA,MAAI,SAAS,MAAM;AACjB,WAAO;AAAA,EACT;AACA,SAAO;AACT,GAAG,iBAAiB;AACpB,IAAI,uBAAuC,uBAAO,CAAC,UAAU;AAC3D,MAAI,CAAC,OAAO,WAAW,GAAG,GAAG;AAC3B,WAAO,CAAC;AAAA,EACV;AACA,QAAM,aAAa,eAAe,KAAK,KAAK;AAC5C,QAAM,YAAY,aAAa,CAAC;AAChC,MAAI,MAAM,SAAS,IAAI,GAAG;AACxB,WAAO,EAAE,MAAM,iBAAiB,OAAO,UAAU;AAAA,EACnD;AACA,MAAI,MAAM,SAAS,GAAG,GAAG;AACvB,WAAO,EAAE,MAAM,YAAY,OAAO,UAAU;AAAA,EAC9C;AACA,MAAI,MAAM,SAAS,GAAG,GAAG;AACvB,WAAO,EAAE,MAAM,WAAW,OAAO,UAAU;AAAA,EAC7C;AACA,SAAO,EAAE,OAAO,UAAU;AAC5B,GAAG,sBAAsB;AACzB,IAAI,aAA6B,uBAAO,CAAC,KAAK,OAAO;AACnD,mBAAiB,KAAK,EAAE;AACxB,MAAI,IAAI,MAAM;AACZ,OAAG,QAAQ,IAAI,KAAK,OAAO,IAAI,KAAK,MAAM;AAAA,EAC5C;AACA,MAAI,IAAI,WAAW;AACjB,UAAM,SAAS,IAAI,UAAU,OAAO,IAAI,CAAC,UAAU;AACjD,UAAI,MAAM,YAAY;AACpB,eAAO,GAAG,MAAM,KAAK,KAAK,CAAC,MAAM,MAAM,WAAW,KAAK,CAAC;AAAA,MAC1D;AACA,aAAO,MAAM,KAAK,KAAK;AAAA,IACzB,CAAC;AACD,UAAM,kBAAkB,IAAI,UAAU,OAAO,OAAO,CAAC,UAAU,MAAM,aAAa,MAAM,EAAE,IAAI,CAAC,UAAU,MAAM,QAAQ;AACvH,OAAG,WAAW,EAAE,QAAQ,gBAAgB,CAAC;AAAA,EAC3C;AACA,MAAI,QAAQ,QAAQ,CAAC,WAAW;AAC9B,UAAM,SAAS,cAAc,OAAO,YAAY,OAAO,WAAW,WAAW,OAAO,IAAI,GAAG;AAC3F,OAAG,QAAQ,OAAO,MAAM,OAAO,MAAM,OAAO,GAAG,OAAO,GAAG,QAAQ;AAAA,EACnE,CAAC;AACD,MAAI,WAAW,QAAQ,CAAC,cAAc;AACpC,UAAM,SAAS;AAAA,MACb,UAAU;AAAA,MACV,UAAU;AAAA,MACV,cAAc,UAAU,IAAI;AAAA,IAC9B;AACA,UAAM,eAAe,UAAU,SAAS,UAAU,MAAM,OAAO,KAAK,KAAK,UAAU,MAAM,UAAU;AACnG,UAAM,eAAe,UAAU,SAAS,UAAU,MAAM,OAAO,KAAK,KAAK,UAAU,MAAM,UAAU;AACnG,UAAM,iBAAiB,UAAU,WAAW;AAC5C,OAAG;AAAA,MACD,UAAU;AAAA,MACV,UAAU;AAAA,MACV,OAAO;AAAA,MACP,OAAO;AAAA,MACP;AAAA,MACA;AAAA,MACA;AAAA,MACA,UAAU;AAAA,MACV;AAAA,IACF;AAAA,EACF,CAAC;AACD,MAAI,MAAM,QAAQ,CAAC,SAAS;AAC1B,UAAM,SAAS,cAAc,KAAK,YAAY,KAAK,WAAW,SAAS,KAAK,IAAI,GAAG;AACnF,OAAG,QAAQ,KAAK,MAAM,OAAO,GAAG,OAAO,CAAC;AAAA,EAC1C,CAAC;AACD,MAAI,UAAU,QAAQ,CAAC,aAAa;AAClC,UAAM,aAAa,GAAG,QAAQ,SAAS,MAAM;AAC7C,QAAI,CAAC,cAAc,OAAO,WAAW,MAAM,UAAU;AACnD,YAAM,IAAI;AAAA,QACR,aAAa,SAAS,MAAM;AAAA,MAC9B;AAAA,IACF;AACA,UAAM,UAAU,WAAW;AAC3B,OAAG,cAAc,SAAS,MAAM;AAChC,aAAS,WAAW,QAAQ,CAAC,cAAc;AACzC,YAAM,cAAc,GAAG,SAAS,MAAM,IAAI,UAAU,IAAI;AACxD,YAAM,eAAe,UAAU,SAAS,UAAU,MAAM,OAAO,KAAK,KAAK,UAAU,MAAM,UAAU;AACnG,YAAM,eAAe,UAAU,SAAS,UAAU,MAAM,OAAO,KAAK,KAAK,UAAU,MAAM,UAAU;AACnG,YAAM,IAAI,UAAU,UAAU,WAAW,uBAAuB,UAAU,IAAI,aAAa;AAC3F,SAAG;AAAA,QACD;AAAA,QACA,UAAU;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AACA,SAAG,qBAAqB,SAAS,QAAQ,WAAW;AAAA,IACtD,CAAC;AAAA,EACH,CAAC;AACD,MAAI,MAAM,QAAQ,CAAC,SAAS;AAC1B,UAAM,WAAW,CAAC,CAAC,KAAK,UAAU,KAAK,MAAM,SAAS,MAAM,KAAK,KAAK,MAAM,SAAS,KAAK;AAC1F,QAAI,OAAO,gBAAgB,KAAK,QAAQ,KAAK,gBAAgB,KAAK,MAAM;AACxE,UAAM,EAAE,MAAM,WAAW,OAAO,UAAU,IAAI,qBAAqB,KAAK,KAAK;AAC7E,QAAI,CAAC,QAAQ,WAAW;AACtB,aAAO;AAAA,IACT;AACA,UAAM,aAAa,KAAK;AACxB,UAAM,QAAQ,aAAa;AAC3B,OAAG,QAAQ,KAAK,MAAM,KAAK,IAAI,UAAU,OAAO,IAAI;AAAA,EACtD,CAAC;AACD,MAAI,QAAQ,QAAQ,CAAC,WAAW;AAC9B,UAAM,OAAO,GAAG,QAAQ,OAAO,SAAS;AACxC,QAAI,MAAM,MAAM,QAAQ;AACtB,YAAM,SAAS,UAAU,OAAO,QAAQ,sBAAsB,OAAO,SAAS,GAAG;AACjF,SAAG,SAAS,OAAO,WAAW,QAAQ,KAAK,CAAC;AAAA,IAC9C;AAAA,EACF,CAAC;AACD,MAAI,IAAI,YAAY,SAAS,GAAG;AAC9B,UAAM,iBAAiB,IAAI,YAAY,CAAC;AACxC,UAAM,SAAS,cAAc,eAAe,GAAG,eAAe,GAAG,iBAAiB;AAClF,OAAG,kBAAkB,OAAO,GAAG,OAAO,CAAC;AAAA,EACzC;AACA,MAAI,WAAW,QAAQ,CAAC,eAAe;AACrC,UAAM,SAAS,cAAc,WAAW,GAAG,WAAW,GAAG,cAAc,WAAW,MAAM,EAAE;AAC1F,OAAG,cAAc,WAAW,QAAQ,CAAC,EAAE,GAAG,OAAO,GAAG,GAAG,OAAO,EAAE,CAAC,GAAG,WAAW,IAAI;AAAA,EACrF,CAAC;AACD,MAAI,aAAa,QAAQ,CAAC,gBAAgB;AACxC,UAAM,SAAS,cAAc,YAAY,GAAG,YAAY,GAAG,gBAAgB,YAAY,IAAI,GAAG;AAC9F,OAAG,eAAe,YAAY,MAAM,OAAO,GAAG,OAAO,CAAC;AAAA,EACxD,CAAC;AACD,MAAI,eAAe,QAAQ,CAAC,kBAAkB;AAC5C,UAAM,SAAS;AAAA,MACb,cAAc;AAAA,MACd,cAAc;AAAA,MACd,kBAAkB,cAAc,IAAI;AAAA,IACtC;AACA,OAAG,iBAAiB,cAAc,MAAM,OAAO,GAAG,OAAO,CAAC;AAAA,EAC5D,CAAC;AACH,GAAG,YAAY;AACf,IAAI,SAAS;AAAA,EACX,QAAQ;AAAA;AAAA,IAEN,IAAI;AAAA,EACN;AAAA,EACA,OAAuB,uBAAO,OAAO,UAAU;AAC7C,UAAM,MAAM,MAAM,MAAM,WAAW,KAAK;AACxC,QAAI,MAAM,GAAG;AACb,UAAM,KAAK,OAAO,QAAQ;AAC1B,QAAI,CAAC,MAAM,OAAO,GAAG,YAAY,YAAY;AAC3C,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAAA,IACF;AACA,eAAW,KAAK,EAAE;AAAA,EACpB,GAAG,OAAO;AACZ;AAGA,IAAI,iBAAiB,MAAM;AAAA,EACzB,cAAc;AACZ,SAAK,QAAwB,oBAAI,IAAI;AACrC,SAAK,QAAQ,CAAC;AACd,SAAK,SAAyB,oBAAI,IAAI;AACtC,SAAK,YAA4B,oBAAI,IAAI;AACzC,SAAK,cAAc,CAAC;AACpB,SAAK,QAAQ,CAAC;AACd,SAAK,eAAe,CAAC;AACrB,SAAK,iBAAiB,CAAC;AACvB,SAAK,OAAO,CAAC;AAAA,EACf;AAAA,EACA,OAAO;AACL,WAAO,MAAM,gBAAgB;AAAA,EAC/B;AAAA,EACA,QAAQ,MAAM;AACZ,UAAM,WAAW,KAAK,MAAM,IAAI,KAAK,EAAE,KAAK,EAAE,IAAI,KAAK,IAAI,OAAO,KAAK,MAAM;AAC7E,UAAM,SAAS;AAAA,MACb,GAAG;AAAA,MACH,GAAG;AAAA,MACH,WAAW,KAAK,aAAa,SAAS;AAAA,MACtC,cAAc,KAAK,gBAAgB,SAAS;AAAA,MAC5C,cAAc,KAAK,gBAAgB,SAAS;AAAA,IAC9C;AACA,SAAK,MAAM,IAAI,KAAK,IAAI,MAAM;AAAA,EAChC;AAAA,EACA,QAAQ,MAAM;AACZ,SAAK,MAAM,KAAK,IAAI;AAAA,EACtB;AAAA,EACA,SAAS,OAAO;AACd,SAAK,OAAO,IAAI,MAAM,QAAQ,KAAK;AAAA,EACrC;AAAA,EACA,cAAc,QAAQ;AACpB,SAAK,UAAU,IAAI,QAAQ,EAAE,QAAQ,cAAc,CAAC,EAAE,CAAC;AACvD,UAAM,OAAO,KAAK,MAAM,IAAI,MAAM;AAClC,QAAI,MAAM;AACR,WAAK,mBAAmB;AAAA,IAC1B;AAAA,EACF;AAAA,EACA,qBAAqB,gBAAgB,aAAa;AAChD,UAAM,WAAW,KAAK,UAAU,IAAI,cAAc;AAClD,QAAI,UAAU;AACZ,eAAS,aAAa,KAAK,WAAW;AAAA,IACxC;AACA,UAAM,OAAO,KAAK,MAAM,IAAI,WAAW;AACvC,QAAI,MAAM;AACR,WAAK,aAAa;AAAA,IACpB;AAAA,EACF;AAAA,EACA,cAAc,YAAY;AACxB,SAAK,YAAY,KAAK,UAAU;AAAA,EAClC;AAAA,EACA,QAAQ,MAAM;AACZ,SAAK,MAAM,KAAK,IAAI;AAAA,EACtB;AAAA,EACA,eAAe,aAAa;AAC1B,SAAK,aAAa,KAAK,WAAW;AAAA,EACpC;AAAA,EACA,iBAAiB,eAAe;AAC9B,SAAK,eAAe,KAAK,aAAa;AAAA,EACxC;AAAA,EACA,kBAAkB,GAAG,GAAG;AACtB,SAAK,iBAAiB,EAAE,GAAG,EAAE;AAAA,EAC/B;AAAA,EACA,QAAQ,SAAS;AACf,SAAK,OAAO;AAAA,MACV,GAAG,KAAK;AAAA,MACR,GAAG;AAAA,IACL;AAAA,EACF;AAAA,EACA,QAAQ,OAAO,QAAQ;AACrB,SAAK,OAAO,EAAE,OAAO,OAAO;AAAA,EAC9B;AAAA,EACA,QAAQ,IAAI;AACV,WAAO,KAAK,MAAM,IAAI,EAAE;AAAA,EAC1B;AAAA,EACA,QAAQ;AACN,UAAM,QAAQ,CAAC;AACf,eAAW,QAAQ,KAAK,MAAM,OAAO,GAAG;AACtC,UAAI,OAAO,KAAK,MAAM,YAAY,OAAO,KAAK,MAAM,UAAU;AAC5D,cAAM,IAAI,MAAM,SAAS,KAAK,KAAK,0BAA0B;AAAA,MAC/D;AACA,YAAM,KAAK,IAAI;AAAA,IACjB;AACA,WAAO;AAAA,MACL;AAAA,MACA,OAAO,CAAC,GAAG,KAAK,KAAK;AAAA,MACrB,QAAQ,CAAC,GAAG,KAAK,OAAO,OAAO,CAAC;AAAA,MAChC,WAAW,CAAC,GAAG,KAAK,UAAU,OAAO,CAAC;AAAA,MACtC,aAAa,CAAC,GAAG,KAAK,WAAW;AAAA,MACjC,OAAO,CAAC,GAAG,KAAK,KAAK;AAAA,MACrB,cAAc,CAAC,GAAG,KAAK,YAAY;AAAA,MACnC,gBAAgB,CAAC,GAAG,KAAK,cAAc;AAAA,MACvC,gBAAgB,KAAK;AAAA,MACrB,MAAM,EAAE,GAAG,KAAK,KAAK;AAAA,MACrB,MAAM,KAAK;AAAA,IACb;AAAA,EACF;AAAA,EACA,QAAQ;AACN,SAAK,MAAM,MAAM;AACjB,SAAK,QAAQ,CAAC;AACd,SAAK,OAAO,MAAM;AAClB,SAAK,UAAU,MAAM;AACrB,SAAK,cAAc,CAAC;AACpB,SAAK,QAAQ,CAAC;AACd,SAAK,eAAe,CAAC;AACrB,SAAK,iBAAiB,CAAC;AACvB,SAAK,iBAAiB;AACtB,SAAK,OAAO,CAAC;AACb,SAAK,OAAO;AAAA,EACd;AACF;AAGA,IAAI,UAAU,IAAI,eAAe;AACjC,SAAS,cAAc,MAAM;AAC3B,QAAM,SAAS,WAAU;AACzB,SAAO,aAAa,KAAK,KAAK,GAAG,MAAM;AACzC;AACA,OAAO,eAAe,eAAe;AACrC,SAASA,cAAa;AACpB,SAAO,WAAU,EAAE,cAAc;AACnC;AACA,OAAOA,aAAY,WAAW;AAC9B,SAAS,QAAQ,IAAI,OAAO,GAAG,GAAG,WAAW,cAAc,cAAc,SAAS,gBAAgB;AAChG,UAAQ,QAAQ;AAAA,IACd;AAAA,IACA,OAAO,cAAc,KAAK;AAAA,IAC1B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACH;AACA,OAAO,SAAS,SAAS;AACzB,SAAS,QAAQ,UAAU,UAAU,SAAS,OAAO,OAAO,MAAM;AAChE,UAAQ,QAAQ,EAAE,QAAQ,UAAU,QAAQ,UAAU,QAAQ,OAAO,KAAK,CAAC;AAC7E;AACA,OAAO,SAAS,SAAS;AACzB,SAAS,SAAS,QAAQ,SAAS,SAAS;AAC1C,UAAQ,SAAS,EAAE,QAAQ,SAAS,QAAQ,CAAC;AAC/C;AACA,OAAO,UAAU,UAAU;AAC3B,SAAS,cAAc,QAAQ,aAAa,MAAM;AAChD,UAAQ,cAAc;AAAA,IACpB;AAAA,IACA;AAAA,IACA,MAAM,OAAO,cAAc,IAAI,IAAI;AAAA,EACrC,CAAC;AACH;AACA,OAAO,eAAe,eAAe;AACrC,SAAS,QAAQ,MAAM,GAAG,GAAG;AAC3B,UAAQ,QAAQ;AAAA,IACd,MAAM,cAAc,IAAI;AAAA,IACxB;AAAA,IACA;AAAA,EACF,CAAC;AACH;AACA,OAAO,SAAS,SAAS;AACzB,SAAS,eAAe,MAAM,GAAG,GAAG;AAClC,UAAQ,eAAe;AAAA,IACrB,MAAM,cAAc,IAAI;AAAA,IACxB;AAAA,IACA;AAAA,EACF,CAAC;AACH;AACA,OAAO,gBAAgB,gBAAgB;AACvC,SAAS,iBAAiB,MAAM,GAAG,GAAG;AACpC,UAAQ,iBAAiB;AAAA,IACvB,MAAM,cAAc,IAAI;AAAA,IACxB;AAAA,IACA;AAAA,EACF,CAAC;AACH;AACA,OAAO,kBAAkB,kBAAkB;AAC3C,SAAS,kBAAkB,GAAG,GAAG;AAC/B,UAAQ,kBAAkB,GAAG,CAAC;AAChC;AACA,OAAO,mBAAmB,mBAAmB;AAC7C,SAAS,QAAQ,OAAO,QAAQ;AAC9B,UAAQ,QAAQ,OAAO,MAAM;AAC/B;AACA,OAAO,SAAS,SAAS;AACzB,SAAS,cAAc,QAAQ;AAC7B,UAAQ,cAAc,MAAM;AAC9B;AACA,OAAO,eAAe,eAAe;AACrC,SAAS,qBAAqB,gBAAgB,aAAa;AACzD,UAAQ,qBAAqB,gBAAgB,WAAW;AAC1D;AACA,OAAO,sBAAsB,sBAAsB;AACnD,SAAS,WAAW,SAAS;AAC3B,QAAM,YAAY,CAAC;AACnB,MAAI,QAAQ,QAAQ;AAClB,cAAU,SAAS,cAAc,QAAQ,MAAM;AAAA,EACjD;AACA,MAAI,QAAQ,QAAQ;AAClB,cAAU,SAAS,cAAc,QAAQ,MAAM;AAAA,EACjD;AACA,MAAI,QAAQ,QAAQ;AAClB,cAAU,SAAS,QAAQ,OAAO,IAAI,CAAC,UAAU,cAAc,KAAK,CAAC;AAAA,EACvE;AACA,MAAI,QAAQ,iBAAiB;AAC3B,cAAU,kBAAkB,QAAQ;AAAA,EACtC;AACA,UAAQ,QAAQ,SAAS;AAC3B;AACA,OAAO,YAAY,YAAY;AAC/B,SAAS,QAAQ,IAAI;AACnB,SAAO,QAAQ,QAAQ,EAAE;AAC3B;AACA,OAAO,SAAS,SAAS;AACzB,SAAS,iBAAiB;AACxB,SAAO,QAAQ,MAAM;AACvB;AACA,OAAO,gBAAgB,gBAAgB;AACvC,SAAS,SAAS;AAChB,UAAQ,MAAM;AACd,QAAM;AACR;AACA,OAAO,QAAQ,OAAO;AACtB,IAAI,oBAAoB;AAAA,EACtB,WAAWA;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAGA,IAAI,iBAAiB,CAAC,WAAW,gBAAgB,WAAW,WAAW;AACvE,IAAI,WAA2B,uBAAO,MAAM;AAC1C,QAAM,EAAE,eAAe,IAAI,WAAU;AACrC,SAAO;AAAA,IACL,iBAAiB,eAAe,SAAS,mBAAmB,eAAe,cAAc;AAAA,IACzF,WAAW,eAAe,SAAS,aAAa;AAAA,IAChD,eAAe,eAAe,SAAS,iBAAiB,eAAe,oBAAoB;AAAA,IAC3F,WAAW,eAAe,SAAS,aAAa;AAAA,IAChD,eAAe,eAAe,SAAS,iBAAiB;AAAA,IACxD,iBAAiB,eAAe,SAAS,mBAAmB;AAAA,IAC5D,qBAAqB,eAAe,SAAS,uBAAuB,eAAe,oBAAoB;AAAA,IACvG,YAAY,eAAe,SAAS,cAAc;AAAA,IAClD,iBAAiB,eAAe,SAAS,mBAAmB;AAAA,IAC5D,kBAAkB,eAAe,SAAS,oBAAoB;AAAA,IAC9D,qBAAqB,eAAe,SAAS,uBAAuB,eAAe,oBAAoB;AAAA,IACvG,gBAAgB,eAAe,SAAS,kBAAkB,eAAe,cAAc;AAAA,EACzF;AACF,GAAG,UAAU;AACb,IAAI,kBAAkC,uBAAO,MAAM;AACjD,QAAM,gBAAgB,WAAU,EAAE,cAAc;AAChD,SAAO;AAAA,IACL,OAAO,eAAe,SAAS;AAAA,IAC/B,QAAQ,eAAe,UAAU;AAAA,IACjC,SAAS,eAAe,WAAW;AAAA,IACnC,YAAY,eAAe,cAAc;AAAA,IACzC,iBAAiB,eAAe,mBAAmB;AAAA,IACnD,cAAc,eAAe,gBAAgB;AAAA,IAC7C,eAAe,eAAe,iBAAiB;AAAA,IAC/C,UAAU,eAAe,YAAY;AAAA,IACrC,aAAa,eAAe,eAAe;AAAA,EAC7C;AACF,GAAG,iBAAiB;AACpB,IAAI,OAAuB,uBAAO,CAAC,MAAM,IAAI,UAAU,YAAY;AACjE,MAAI,MAAM,4BAA4B,IAAI;AAC1C,QAAM,eAAe,gBAAgB;AACrC,QAAM,QAAQ,SAAS;AACvB,QAAM,aAAa,aAAa,aAAa;AAC7C,QAAM,KAAK,QAAQ;AACnB,QAAM,OAAO,GAAG,eAAe;AAC/B,QAAM,QAAQ,GAAG,gBAAgB;AACjC,QAAM,QAAQ,KAAK,MAAM,SAAS,aAAa;AAC/C,QAAM,SAAS,KAAK,MAAM,UAAU,aAAa;AACjD,QAAM,MAAM,iBAAiB,EAAE;AAC/B,MAAI,UAAU,GAAG,EAAE,OAAO;AAC1B,mBAAiB,KAAK,QAAQ,OAAO,aAAa,WAAW;AAC7D,MAAI,KAAK,WAAW,OAAO,KAAK,IAAI,MAAM,EAAE;AAC5C,QAAM,OAAO,IAAI,OAAO,GAAG,EAAE,KAAK,SAAS,aAAa;AACxD,QAAM,OAAO,IAAI,OAAO,MAAM;AAC9B,OAAK,OAAO,QAAQ,EAAE,KAAK,MAAM,SAAS,EAAE,EAAE,EAAE,KAAK,WAAW,WAAW,EAAE,KAAK,QAAQ,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,KAAK,eAAe,CAAC,EAAE,KAAK,gBAAgB,CAAC,EAAE,KAAK,UAAU,oBAAoB,EAAE,OAAO,MAAM,EAAE,KAAK,KAAK,uBAAuB,EAAE,KAAK,QAAQ,MAAM,eAAe,EAAE,KAAK,UAAU,MAAM;AAC5S,OAAK,OAAO,QAAQ,EAAE,KAAK,MAAM,kBAAkB,EAAE,EAAE,EAAE,KAAK,WAAW,WAAW,EAAE,KAAK,QAAQ,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,KAAK,eAAe,CAAC,EAAE,KAAK,gBAAgB,CAAC,EAAE,KAAK,UAAU,MAAM,EAAE,OAAO,MAAM,EAAE,KAAK,KAAK,uBAAuB,EAAE,KAAK,QAAQ,MAAM,UAAU,EAAE,KAAK,UAAU,MAAM;AAClS,OAAK,OAAO,QAAQ,EAAE,KAAK,MAAM,oBAAoB,EAAE,EAAE,EAAE,KAAK,WAAW,WAAW,EAAE,KAAK,QAAQ,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,KAAK,eAAe,CAAC,EAAE,KAAK,gBAAgB,CAAC,EAAE,KAAK,UAAU,MAAM,EAAE,OAAO,MAAM,EAAE,KAAK,KAAK,wBAAwB,EAAE,KAAK,QAAQ,MAAM,UAAU,EAAE,KAAK,UAAU,MAAM;AACrS,OAAK,OAAO,MAAM,EAAE,KAAK,SAAS,oBAAoB,EAAE,KAAK,SAAS,KAAK,EAAE,KAAK,UAAU,MAAM,EAAE,KAAK,QAAQ,MAAM,eAAe;AACtI,QAAM,aAAa,QAAQ,aAAa,UAAU;AAClD,QAAM,cAAc,SAAS,aAAa,UAAU;AACpD,MAAI,OAAO;AACT,SAAK,OAAO,MAAM,EAAE,KAAK,SAAS,eAAe,EAAE,KAAK,KAAK,QAAQ,CAAC,EAAE,KAAK,KAAK,aAAa,UAAU,CAAC,EAAE,KAAK,QAAQ,MAAM,aAAa,EAAE,KAAK,aAAa,aAAa,eAAe,IAAI,EAAE,KAAK,eAAe,MAAM,EAAE,KAAK,eAAe,QAAQ,EAAE,KAAK,qBAAqB,QAAQ,EAAE,KAAK,KAAK;AAAA,EAC5S;AACA,QAAM,WAA2B,uBAAO,CAAC,UAAU,aAAa,UAAU,QAAQ,MAAM,YAAY,UAAU;AAC9G,QAAM,WAA2B,uBAAO,CAAC,UAAU,SAAS,aAAa,UAAU,QAAQ,MAAM,aAAa,UAAU;AACxH,QAAM,YAAY,KAAK,OAAO,GAAG,EAAE,KAAK,SAAS,cAAc;AAC/D,YAAU,OAAO,MAAM,EAAE,KAAK,MAAM,aAAa,OAAO,EAAE,KAAK,MAAM,QAAQ,aAAa,OAAO,EAAE,KAAK,MAAM,SAAS,aAAa,OAAO,EAAE,KAAK,MAAM,SAAS,aAAa,OAAO,EAAE,KAAK,UAAU,MAAM,SAAS,EAAE,KAAK,gBAAgB,CAAC;AAC7O,YAAU,OAAO,MAAM,EAAE,KAAK,MAAM,aAAa,OAAO,EAAE,KAAK,MAAM,aAAa,OAAO,EAAE,KAAK,MAAM,aAAa,OAAO,EAAE,KAAK,MAAM,SAAS,aAAa,OAAO,EAAE,KAAK,UAAU,MAAM,SAAS,EAAE,KAAK,gBAAgB,CAAC;AAC5N,QAAM,SAAS,KAAK,KAAK,UAAU;AACnC,QAAM,SAAS,KAAK,KAAK,UAAU;AACnC,YAAU,OAAO,MAAM,EAAE,KAAK,SAAS,yCAAyC,EAAE,KAAK,KAAK,aAAa,UAAU,aAAa,CAAC,EAAE,KAAK,KAAK,SAAS,aAAa,UAAU,CAAC,EAAE,KAAK,QAAQ,MAAM,aAAa,EAAE,KAAK,aAAa,aAAa,YAAY,EAAE,KAAK,eAAe,MAAM,EAAE,KAAK,eAAe,QAAQ,EAAE,KAAK,MAAM;AACpU,YAAU,OAAO,MAAM,EAAE,KAAK,SAAS,yCAAyC,EAAE,KAAK,KAAK,aAAa,UAAU,CAAC,EAAE,KAAK,KAAK,aAAa,UAAU,cAAc,CAAC,EAAE,KAAK,QAAQ,MAAM,aAAa,EAAE,KAAK,aAAa,aAAa,YAAY,EAAE,KAAK,eAAe,MAAM,EAAE,KAAK,eAAe,QAAQ,EAAE;AAAA,IAC/S;AAAA,IACA,cAAc,aAAa,UAAU,CAAC,IAAI,aAAa,UAAU,cAAc,CAAC;AAAA,EAClF,EAAE,KAAK,MAAM;AACb,QAAM,SAAS,KAAK,KAAK,UAAU,KAAK,KAAK,OAAO,SAAS,IAAI,KAAK,KAAK,SAAS;AACpF,MAAI,OAAO,SAAS,GAAG;AACrB,UAAM,aAAa,KAAK,OAAO,GAAG,EAAE,KAAK,SAAS,gBAAgB;AAClE,UAAM,aAAa,KAAK,KAAK;AAC7B,UAAM,iBAAiB,CAAC;AACxB,QAAI,cAAc,WAAW,WAAW,OAAO,QAAQ;AACrD,UAAI,eAAe;AACnB,iBAAW,QAAQ,CAAC,aAAa;AAC/B,uBAAe,KAAK,EAAE,OAAO,cAAc,KAAK,SAAS,CAAC;AAC1D,uBAAe;AAAA,MACjB,CAAC;AAAA,IACH,OAAO;AACL,YAAM,aAAa,IAAI,OAAO;AAC9B,aAAO,QAAQ,CAAC,GAAG,UAAU;AAC3B,uBAAe,KAAK;AAAA,UAClB,OAAO,QAAQ;AAAA,UACf,MAAM,QAAQ,KAAK;AAAA,QACrB,CAAC;AAAA,MACH,CAAC;AAAA,IACH;AACA,WAAO,QAAQ,CAAC,OAAO,UAAU;AAC/B,YAAM,MAAM,eAAe,KAAK;AAChC,YAAM,SAAS,aAAa,UAAU,IAAI,QAAQ;AAClD,YAAM,OAAO,aAAa,UAAU,IAAI,MAAM;AAC9C,YAAM,WAAW,SAAS,QAAQ;AAClC,UAAI,QAAQ,GAAG;AACb,mBAAW,OAAO,MAAM,EAAE,KAAK,MAAM,MAAM,EAAE,KAAK,MAAM,MAAM,EAAE,KAAK,MAAM,aAAa,OAAO,EAAE,KAAK,MAAM,SAAS,aAAa,OAAO,EAAE,KAAK,UAAU,MAAM,EAAE,KAAK,gBAAgB,CAAC,EAAE,KAAK,oBAAoB,KAAK,EAAE,KAAK,WAAW,GAAG;AAAA,MAC/O;AACA,iBAAW,OAAO,MAAM,EAAE,KAAK,SAAS,qBAAqB,EAAE,KAAK,KAAK,OAAO,EAAE,KAAK,KAAK,SAAS,aAAa,UAAU,GAAG,EAAE,KAAK,QAAQ,MAAM,aAAa,EAAE,KAAK,aAAa,aAAa,eAAe,CAAC,EAAE,KAAK,eAAe,QAAQ,EAAE,KAAK,KAAK;AAAA,IAC9P,CAAC;AAAA,EACH;AACA,MAAI,aAAa,UAAU;AACzB,UAAM,YAAY,KAAK,OAAO,GAAG,EAAE,KAAK,SAAS,cAAc;AAC/D,aAAS,IAAI,GAAG,IAAI,GAAG,KAAK;AAC1B,YAAM,QAAQ,IAAI;AAClB,YAAM,IAAI,aAAa,UAAU,aAAa;AAC9C,gBAAU,OAAO,MAAM,EAAE,KAAK,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,KAAK,MAAM,aAAa,OAAO,EAAE,KAAK,MAAM,SAAS,aAAa,OAAO,EAAE,KAAK,UAAU,MAAM,SAAS,EAAE,KAAK,oBAAoB,KAAK;AAC9L,gBAAU,OAAO,MAAM,EAAE,KAAK,MAAM,aAAa,OAAO,EAAE,KAAK,MAAM,QAAQ,aAAa,OAAO,EAAE,KAAK,MAAM,SAAS,aAAa,UAAU,cAAc,KAAK,EAAE,KAAK,MAAM,SAAS,aAAa,UAAU,cAAc,KAAK,EAAE,KAAK,UAAU,MAAM,SAAS,EAAE,KAAK,oBAAoB,KAAK;AAAA,IACnS;AAAA,EACF;AACA,QAAM,YAA4B,oBAAI,IAAI;AAC1C,OAAK,MAAM,QAAQ,CAAC,SAAS;AAC3B,cAAU,IAAI,KAAK,IAAI;AAAA,MACrB,GAAG,SAAS,KAAK,CAAC;AAAA,MAClB,GAAG,SAAS,KAAK,CAAC;AAAA,MAClB;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AACD,MAAI,KAAK,UAAU,SAAS,GAAG;AAC7B,UAAM,gBAAgB,KAAK,OAAO,GAAG,EAAE,KAAK,SAAS,mBAAmB;AACxE,UAAM,qBAAqB,KAAK,OAAO,GAAG,EAAE,KAAK,SAAS,wBAAwB;AAClF,SAAK,UAAU,QAAQ,CAAC,aAAa;AACnC,UAAI,SAAS,aAAa,WAAW,GAAG;AACtC;AAAA,MACF;AACA,YAAM,mBAAmB,SAAS,aAAa,IAAI,CAAC,SAAS,EAAE,IAAI,KAAK,KAAK,UAAU,IAAI,GAAG,GAAG,MAAM,KAAK,MAAM,KAAK,CAAC,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,MAAM,EAAE,KAAK,IAAI,EAAE,KAAK,CAAC;AACjN,eAAS,IAAI,GAAG,IAAI,iBAAiB,SAAS,GAAG,KAAK;AACpD,cAAM,UAAU,iBAAiB,CAAC;AAClC,cAAM,OAAO,iBAAiB,IAAI,CAAC;AACnC,2BAAmB,OAAO,MAAM,EAAE,KAAK,SAAS,iCAAiC,EAAE,KAAK,MAAM,QAAQ,IAAI,CAAC,EAAE,KAAK,MAAM,QAAQ,IAAI,CAAC,EAAE,KAAK,MAAM,KAAK,IAAI,CAAC,EAAE,KAAK,MAAM,KAAK,IAAI,CAAC,EAAE,KAAK,UAAU,MAAM,UAAU,EAAE,KAAK,gBAAgB,CAAC,EAAE,KAAK,oBAAoB,KAAK;AAAA,MAC9Q;AACA,UAAI,OAAO;AACX,UAAI,OAAO;AACX,UAAI,IAAI;AACR,eAAS,aAAa,QAAQ,CAAC,gBAAgB;AAC7C,cAAM,MAAM,UAAU,IAAI,WAAW;AACrC,YAAI,KAAK;AACP,iBAAO,KAAK,IAAI,MAAM,IAAI,CAAC;AAC3B,iBAAO,KAAK,IAAI,MAAM,IAAI,CAAC;AAC3B,cAAI,IAAI;AAAA,QACV;AAAA,MACF,CAAC;AACD,UAAI,SAAS,YAAY,SAAS,WAAW;AAC3C,cAAM,UAAU;AAChB,cAAM,UAAU,aAAa,aAAa;AAC1C,cAAM,SAAS,IAAI,UAAU;AAC7B,cAAM,YAAY,UAAU,IAAI,SAAS,MAAM;AAC/C,YAAI,WAAW;AACb,gBAAM,WAAW,OAAO,QAAQ;AAChC,oBAAU,IAAI;AACd,oBAAU,IAAI,SAAS,aAAa;AAAA,QACtC;AACA,sBAAc,OAAO,MAAM,EAAE,KAAK,SAAS,sBAAsB,EAAE,KAAK,KAAK,OAAO,OAAO,EAAE,KAAK,KAAK,MAAM,EAAE,KAAK,SAAS,OAAO,OAAO,UAAU,CAAC,EAAE,KAAK,UAAU,OAAO,EAAE,KAAK,QAAQ,MAAM,EAAE,KAAK,UAAU,MAAM,SAAS,EAAE,KAAK,gBAAgB,GAAG,EAAE,KAAK,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC;AAAA,MAC3R;AAAA,IACF,CAAC;AAAA,EACH;AACA,QAAM,aAAa,KAAK,OAAO,GAAG,EAAE,KAAK,SAAS,eAAe;AACjE,QAAM,cAA8B,oBAAI,IAAI;AAC5C,OAAK,UAAU,QAAQ,CAAC,aAAa;AACnC,gBAAY,IAAI,SAAS,QAAQ,IAAI,IAAI,SAAS,YAAY,CAAC;AAAA,EACjE,CAAC;AACD,QAAM,aAAa,KAAK,MAAM,OAAO,CAAC,SAAS;AAC7C,QAAI,CAAC,UAAU,IAAI,KAAK,MAAM,KAAK,CAAC,UAAU,IAAI,KAAK,MAAM,GAAG;AAC9D,aAAO;AAAA,IACT;AACA,UAAM,qBAAqB,YAAY,IAAI,KAAK,MAAM;AACtD,QAAI,oBAAoB,IAAI,KAAK,MAAM,GAAG;AACxC,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT,CAAC;AACD,aAAW,UAAU,MAAM,EAAE,KAAK,UAAU,EAAE,MAAM,EAAE,OAAO,MAAM,EAAE,KAAK,SAAS,CAAC,SAAS,eAAe,KAAK,SAAS,0BAA0B,EAAE,EAAE,EAAE,KAAK,MAAM,CAAC,SAAS;AAC7K,UAAM,YAAY,UAAU,IAAI,KAAK,MAAM;AAC3C,UAAM,YAAY,UAAU,IAAI,KAAK,MAAM;AAC3C,UAAM,aAAa,KAAK,MAAM,KAAK,CAAC,MAAM,EAAE,OAAO,KAAK,MAAM;AAC9D,UAAM,SAAS,WAAW,mBAAmB,aAAa,KAAK,KAAK,CAAC,IAAI,aAAa;AACtF,UAAM,KAAK,UAAU,IAAI,UAAU;AACnC,UAAM,KAAK,UAAU,IAAI,UAAU;AACnC,UAAM,WAAW,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE;AAC5C,WAAO,UAAU,IAAI,KAAK,WAAW;AAAA,EACvC,CAAC,EAAE,KAAK,MAAM,CAAC,SAAS;AACtB,UAAM,YAAY,UAAU,IAAI,KAAK,MAAM;AAC3C,UAAM,YAAY,UAAU,IAAI,KAAK,MAAM;AAC3C,UAAM,aAAa,KAAK,MAAM,KAAK,CAAC,MAAM,EAAE,OAAO,KAAK,MAAM;AAC9D,UAAM,SAAS,WAAW,mBAAmB,aAAa,KAAK,KAAK,CAAC,IAAI,aAAa;AACtF,UAAM,KAAK,UAAU,IAAI,UAAU;AACnC,UAAM,KAAK,UAAU,IAAI,UAAU;AACnC,UAAM,WAAW,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE;AAC5C,WAAO,UAAU,IAAI,KAAK,WAAW;AAAA,EACvC,CAAC,EAAE,KAAK,MAAM,CAAC,SAAS;AACtB,UAAM,YAAY,UAAU,IAAI,KAAK,MAAM;AAC3C,UAAM,YAAY,UAAU,IAAI,KAAK,MAAM;AAC3C,UAAM,aAAa,KAAK,MAAM,KAAK,CAAC,MAAM,EAAE,OAAO,KAAK,MAAM;AAC9D,UAAM,SAAS,WAAW,mBAAmB,aAAa,KAAK,KAAK,CAAC,IAAI,aAAa;AACtF,UAAM,KAAK,UAAU,IAAI,UAAU;AACnC,UAAM,KAAK,UAAU,IAAI,UAAU;AACnC,UAAM,WAAW,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE;AAC5C,WAAO,UAAU,IAAI,KAAK,WAAW;AAAA,EACvC,CAAC,EAAE,KAAK,MAAM,CAAC,SAAS;AACtB,UAAM,YAAY,UAAU,IAAI,KAAK,MAAM;AAC3C,UAAM,YAAY,UAAU,IAAI,KAAK,MAAM;AAC3C,UAAM,aAAa,KAAK,MAAM,KAAK,CAAC,MAAM,EAAE,OAAO,KAAK,MAAM;AAC9D,UAAM,SAAS,WAAW,mBAAmB,aAAa,KAAK,KAAK,CAAC,IAAI,aAAa;AACtF,UAAM,KAAK,UAAU,IAAI,UAAU;AACnC,UAAM,KAAK,UAAU,IAAI,UAAU;AACnC,UAAM,WAAW,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE;AAC5C,WAAO,UAAU,IAAI,KAAK,WAAW;AAAA,EACvC,CAAC,EAAE,KAAK,UAAU,MAAM,UAAU,EAAE,KAAK,gBAAgB,CAAC,EAAE,KAAK,oBAAoB,CAAC,SAAS,KAAK,SAAS,QAAQ,IAAI,EAAE,KAAK,cAAc,CAAC,SAAS;AACtJ,QAAI,KAAK,SAAS,aAAa,KAAK,SAAS,iBAAiB;AAC5D,aAAO,uBAAuB,EAAE;AAAA,IAClC;AACA,WAAO;AAAA,EACT,CAAC,EAAE,KAAK,gBAAgB,CAAC,SAAS;AAChC,QAAI,KAAK,SAAS,cAAc,KAAK,SAAS,iBAAiB;AAC7D,aAAO,yBAAyB,EAAE;AAAA,IACpC;AACA,WAAO;AAAA,EACT,CAAC;AACD,aAAW,UAAU,MAAM,EAAE,KAAK,WAAW,OAAO,CAAC,SAAS,KAAK,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,MAAM,EAAE,KAAK,SAAS,oBAAoB,EAAE,KAAK,KAAK,CAAC,SAAS;AACxJ,UAAM,YAAY,UAAU,IAAI,KAAK,MAAM;AAC3C,UAAM,YAAY,UAAU,IAAI,KAAK,MAAM;AAC3C,UAAM,QAAQ,UAAU,IAAI,UAAU,KAAK;AAC3C,UAAM,KAAK,UAAU,IAAI,UAAU;AACnC,UAAM,KAAK,UAAU,IAAI,UAAU;AACnC,UAAM,WAAW,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE;AAC5C,UAAM,SAAS;AACf,UAAM,QAAQ,KAAK;AACnB,WAAO,OAAO,QAAQ;AAAA,EACxB,CAAC,EAAE,KAAK,KAAK,CAAC,SAAS;AACrB,UAAM,YAAY,UAAU,IAAI,KAAK,MAAM;AAC3C,UAAM,YAAY,UAAU,IAAI,KAAK,MAAM;AAC3C,UAAM,QAAQ,UAAU,IAAI,UAAU,KAAK;AAC3C,UAAM,KAAK,UAAU,IAAI,UAAU;AACnC,UAAM,KAAK,UAAU,IAAI,UAAU;AACnC,UAAM,WAAW,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE;AAC5C,UAAM,SAAS;AACf,UAAM,QAAQ,CAAC,KAAK;AACpB,WAAO,OAAO,QAAQ;AAAA,EACxB,CAAC,EAAE,KAAK,QAAQ,MAAM,aAAa,EAAE,KAAK,aAAa,aAAa,aAAa,EAAE,KAAK,eAAe,QAAQ,EAAE,KAAK,qBAAqB,QAAQ,EAAE,KAAK,aAAa,CAAC,SAAS;AAC/K,UAAM,YAAY,UAAU,IAAI,KAAK,MAAM;AAC3C,UAAM,YAAY,UAAU,IAAI,KAAK,MAAM;AAC3C,UAAM,QAAQ,UAAU,IAAI,UAAU,KAAK;AAC3C,UAAM,QAAQ,UAAU,IAAI,UAAU,KAAK;AAC3C,UAAM,KAAK,UAAU,IAAI,UAAU;AACnC,UAAM,KAAK,UAAU,IAAI,UAAU;AACnC,UAAM,WAAW,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE;AAC5C,UAAM,SAAS;AACf,UAAM,QAAQ,KAAK;AACnB,UAAM,QAAQ,CAAC,KAAK;AACpB,UAAM,SAAS,OAAO,QAAQ;AAC9B,UAAM,SAAS,OAAO,QAAQ;AAC9B,QAAI,QAAQ,KAAK,MAAM,IAAI,EAAE,IAAI,MAAM,KAAK;AAC5C,QAAI,QAAQ,MAAM,QAAQ,KAAK;AAC7B,eAAS;AAAA,IACX;AACA,WAAO,UAAU,KAAK,IAAI,MAAM,IAAI,MAAM;AAAA,EAC5C,CAAC,EAAE,KAAK,CAAC,SAAS,KAAK,KAAK;AAC5B,QAAM,aAAa,KAAK,OAAO,GAAG,EAAE,KAAK,SAAS,gBAAgB;AAClE,QAAM,sBAAsB,KAAK,OAAO,IAAI,CAAC,UAAU;AACrD,UAAM,SAAS,UAAU,IAAI,MAAM,MAAM;AACzC,QAAI,CAAC,QAAQ;AACX,aAAO;AAAA,IACT;AACA,UAAM,UAAU,SAAS,MAAM,OAAO;AACtC,UAAM,UAAU,SAAS,MAAM,OAAO;AACtC,UAAM,KAAK,UAAU,OAAO;AAC5B,UAAM,KAAK,UAAU,OAAO;AAC5B,UAAM,WAAW,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE;AAC5C,UAAM,YAAY,aAAa,aAAa;AAC5C,UAAM,aAAa,WAAW,YAAY,UAAU,KAAK,WAAW,YAAY;AAChF,UAAM,aAAa,WAAW,YAAY,UAAU,KAAK,WAAW,YAAY;AAChF,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF,CAAC,EAAE,OAAO,CAAC,UAAU,UAAU,IAAI;AACnC,aAAW,UAAU,MAAM,EAAE,KAAK,mBAAmB,EAAE,MAAM,EAAE,OAAO,MAAM,EAAE,KAAK,SAAS,eAAe,EAAE,KAAK,MAAM,CAAC,UAAU,MAAM,OAAO,CAAC,EAAE,KAAK,MAAM,CAAC,UAAU,MAAM,OAAO,CAAC,EAAE,KAAK,MAAM,CAAC,UAAU,MAAM,UAAU,EAAE,KAAK,MAAM,CAAC,UAAU,MAAM,UAAU,EAAE,KAAK,UAAU,MAAM,eAAe,EAAE,KAAK,gBAAgB,CAAC,EAAE,KAAK,oBAAoB,KAAK,EAAE,KAAK,cAAc,cAAc,EAAE,GAAG;AAC7Y,QAAM,aAAa,KAAK,OAAO,GAAG,EAAE,KAAK,SAAS,eAAe;AACjE,QAAM,YAAY,WAAW,UAAU,GAAG,EAAE,KAAK,KAAK,KAAK,EAAE,MAAM,EAAE,OAAO,GAAG,EAAE;AAAA,IAC/E;AAAA,IACA,CAAC,SAAS,CAAC,gBAAgB,KAAK,YAAY,iBAAiB,KAAK,SAAS,KAAK,EAAE,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAAA,EAC9G;AACA,YAAU,OAAO,CAAC,SAAS,KAAK,mBAAmB,WAAW,EAAE,OAAO,QAAQ,EAAE,KAAK,SAAS,2BAA2B,EAAE,KAAK,MAAM,CAAC,SAAS,UAAU,IAAI,KAAK,EAAE,EAAE,CAAC,EAAE,KAAK,MAAM,CAAC,SAAS,UAAU,IAAI,KAAK,EAAE,EAAE,CAAC,EAAE,KAAK,KAAK,aAAa,aAAa,CAAC,EAAE,KAAK,QAAQ,MAAM,EAAE,KAAK,UAAU,MAAM,eAAe,EAAE,KAAK,gBAAgB,CAAC;AAClV,YAAU,OAAO,CAAC,SAAS,KAAK,mBAAmB,KAAK,EAAE,OAAO,QAAQ,EAAE,KAAK,SAAS,qBAAqB,EAAE,KAAK,MAAM,CAAC,SAAS,UAAU,IAAI,KAAK,EAAE,EAAE,CAAC,EAAE,KAAK,MAAM,CAAC,SAAS,UAAU,IAAI,KAAK,EAAE,EAAE,CAAC,EAAE,KAAK,KAAK,aAAa,aAAa,CAAC,EAAE,KAAK,QAAQ,MAAM,EAAE,KAAK,UAAU,MAAM,eAAe,EAAE,KAAK,gBAAgB,CAAC;AACtU,YAAU,OAAO,CAAC,SAAS,KAAK,mBAAmB,OAAO,EAAE,OAAO,QAAQ,EAAE,KAAK,SAAS,uBAAuB,EAAE,KAAK,MAAM,CAAC,SAAS,UAAU,IAAI,KAAK,EAAE,EAAE,CAAC,EAAE,KAAK,MAAM,CAAC,SAAS,UAAU,IAAI,KAAK,EAAE,EAAE,CAAC,EAAE,KAAK,KAAK,aAAa,aAAa,CAAC,EAAE,KAAK,QAAQ,MAAM,EAAE,KAAK,UAAU,MAAM,EAAE,KAAK,gBAAgB,CAAC;AAC3T,QAAM,cAAc,UAAU,OAAO,CAAC,SAAS,KAAK,mBAAmB,QAAQ;AAC/E,cAAY,OAAO,QAAQ,EAAE,KAAK,SAAS,wBAAwB,EAAE,KAAK,MAAM,CAAC,SAAS,UAAU,IAAI,KAAK,EAAE,EAAE,CAAC,EAAE,KAAK,MAAM,CAAC,SAAS,UAAU,IAAI,KAAK,EAAE,EAAE,CAAC,EAAE,KAAK,KAAK,aAAa,aAAa,CAAC,EAAE,KAAK,QAAQ,OAAO,EAAE,KAAK,UAAU,MAAM,eAAe,EAAE,KAAK,gBAAgB,CAAC;AAC5R,YAAU;AAAA,IACR,CAAC,SAAS,CAAC,KAAK,oBAAoB,KAAK,mBAAmB,YAAY,KAAK,cAAc;AAAA,EAC7F,EAAE,OAAO,QAAQ,EAAE,KAAK,MAAM,CAAC,SAAS,UAAU,IAAI,KAAK,EAAE,EAAE,CAAC,EAAE,KAAK,MAAM,CAAC,SAAS,UAAU,IAAI,KAAK,EAAE,EAAE,CAAC,EAAE,KAAK,KAAK,aAAa,UAAU,EAAE,KAAK,QAAQ,MAAM,aAAa,EAAE,KAAK,UAAU,MAAM,eAAe,EAAE,KAAK,gBAAgB,CAAC;AAClP,QAAM,oBAAoB,aAAa,aAAa;AACpD,QAAM,iBAAiB,aAAa,aAAa;AACjD,cAAY,OAAO,MAAM,EAAE,KAAK,SAAS,qBAAqB,EAAE,KAAK,MAAM,CAAC,SAAS,UAAU,IAAI,KAAK,EAAE,EAAE,CAAC,EAAE,KAAK,MAAM,CAAC,SAAS,UAAU,IAAI,KAAK,EAAE,EAAE,IAAI,cAAc,EAAE,KAAK,MAAM,CAAC,SAAS,UAAU,IAAI,KAAK,EAAE,EAAE,IAAI,iBAAiB,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,SAAS,UAAU,IAAI,KAAK,EAAE,EAAE,IAAI,iBAAiB,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,KAAK,UAAU,MAAM,eAAe,EAAE,KAAK,gBAAgB,CAAC;AAC3Z,cAAY,OAAO,MAAM,EAAE,KAAK,SAAS,qBAAqB,EAAE,KAAK,MAAM,CAAC,SAAS,UAAU,IAAI,KAAK,EAAE,EAAE,IAAI,iBAAiB,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,SAAS,UAAU,IAAI,KAAK,EAAE,EAAE,IAAI,iBAAiB,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,SAAS,UAAU,IAAI,KAAK,EAAE,EAAE,IAAI,iBAAiB,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,SAAS,UAAU,IAAI,KAAK,EAAE,EAAE,IAAI,iBAAiB,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,KAAK,UAAU,MAAM,eAAe,EAAE,KAAK,gBAAgB,CAAC;AAC5d,cAAY,OAAO,MAAM,EAAE,KAAK,SAAS,qBAAqB,EAAE,KAAK,MAAM,CAAC,SAAS,UAAU,IAAI,KAAK,EAAE,EAAE,IAAI,iBAAiB,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,SAAS,UAAU,IAAI,KAAK,EAAE,EAAE,IAAI,iBAAiB,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,SAAS,UAAU,IAAI,KAAK,EAAE,EAAE,CAAC,EAAE,KAAK,MAAM,CAAC,SAAS,UAAU,IAAI,KAAK,EAAE,EAAE,IAAI,cAAc,EAAE,KAAK,UAAU,MAAM,eAAe,EAAE,KAAK,gBAAgB,CAAC;AAC3Z,cAAY,OAAO,QAAQ,EAAE,KAAK,SAAS,oBAAoB,EAAE,KAAK,MAAM,CAAC,SAAS,UAAU,IAAI,KAAK,EAAE,EAAE,CAAC,EAAE,KAAK,MAAM,CAAC,SAAS,UAAU,IAAI,KAAK,EAAE,EAAE,IAAI,cAAc,EAAE,KAAK,KAAK,iBAAiB,EAAE,KAAK,QAAQ,OAAO,EAAE,KAAK,UAAU,MAAM,eAAe,EAAE,KAAK,gBAAgB,CAAC;AAC/R,cAAY,OAAO,QAAQ,EAAE,KAAK,SAAS,oBAAoB,EAAE,KAAK,MAAM,CAAC,SAAS,UAAU,IAAI,KAAK,EAAE,EAAE,IAAI,iBAAiB,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,SAAS,UAAU,IAAI,KAAK,EAAE,EAAE,IAAI,iBAAiB,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,KAAK,KAAK,iBAAiB,EAAE,KAAK,QAAQ,OAAO,EAAE,KAAK,UAAU,MAAM,eAAe,EAAE,KAAK,gBAAgB,CAAC;AAChW,cAAY,OAAO,QAAQ,EAAE,KAAK,SAAS,oBAAoB,EAAE,KAAK,MAAM,CAAC,SAAS,UAAU,IAAI,KAAK,EAAE,EAAE,IAAI,iBAAiB,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,SAAS,UAAU,IAAI,KAAK,EAAE,EAAE,IAAI,iBAAiB,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,KAAK,KAAK,iBAAiB,EAAE,KAAK,QAAQ,OAAO,EAAE,KAAK,UAAU,MAAM,eAAe,EAAE,KAAK,gBAAgB,CAAC;AAChW,YAAU,OAAO,CAAC,SAAS,KAAK,qBAAqB,IAAI,EAAE,OAAO,MAAM,EAAE,KAAK,KAAK,CAAC,SAAS,UAAU,IAAI,KAAK,EAAE,EAAE,IAAI,aAAa,CAAC,EAAE,KAAK,KAAK,CAAC,SAAS,UAAU,IAAI,KAAK,EAAE,EAAE,IAAI,aAAa,CAAC,EAAE,KAAK,SAAS,UAAU,EAAE,KAAK,UAAU,UAAU,EAAE,KAAK,QAAQ,MAAM,aAAa,EAAE,KAAK,UAAU,MAAM,eAAe,EAAE,KAAK,gBAAgB,CAAC;AAC3V,YAAU,OAAO,CAAC,SAAS,KAAK,YAAY,IAAI,EAAE,OAAO,MAAM,EAAE,KAAK,SAAS,iBAAiB,EAAE,KAAK,MAAM,CAAC,SAAS;AACrH,UAAM,MAAM,UAAU,IAAI,KAAK,EAAE;AACjC,QAAI,SAAS,KAAK,mBAAmB,aAAa,IAAI,KAAK,aAAa,aAAa;AACrF,QAAI,KAAK,gBAAgB;AACvB,gBAAU,aAAa,aAAa;AAAA,IACtC;AACA,WAAO,IAAI,IAAI;AAAA,EACjB,CAAC,EAAE,KAAK,MAAM,CAAC,SAAS;AACtB,UAAM,MAAM,UAAU,IAAI,KAAK,EAAE;AACjC,UAAM,aAAa,KAAK,mBAAmB,aAAa,aAAa,aAAa;AAClF,WAAO,IAAI,IAAI,aAAa;AAAA,EAC9B,CAAC,EAAE,KAAK,MAAM,CAAC,SAAS;AACtB,UAAM,MAAM,UAAU,IAAI,KAAK,EAAE;AACjC,QAAI,SAAS,KAAK,mBAAmB,aAAa,IAAI,KAAK,aAAa,aAAa;AACrF,QAAI,KAAK,gBAAgB;AACvB,gBAAU,aAAa,aAAa;AAAA,IACtC;AACA,WAAO,IAAI,IAAI;AAAA,EACjB,CAAC,EAAE,KAAK,MAAM,CAAC,SAAS;AACtB,UAAM,MAAM,UAAU,IAAI,KAAK,EAAE;AACjC,UAAM,aAAa,KAAK,mBAAmB,aAAa,aAAa,aAAa;AAClF,WAAO,IAAI,IAAI,aAAa;AAAA,EAC9B,CAAC,EAAE,KAAK,UAAU,MAAM,eAAe,EAAE,KAAK,gBAAgB,CAAC;AAC/D,YAAU,OAAO,MAAM,EAAE,KAAK,KAAK,CAAC,SAAS;AAC3C,UAAM,MAAM,UAAU,IAAI,KAAK,EAAE;AACjC,QAAI,KAAK,cAAc,UAAU;AAC/B,aAAO,KAAK,iBAAiB,SAAS,IAAI,IAAI,KAAK,eAAe,IAAI;AAAA,IACxE;AACA,QAAI,gBAAgB,aAAa;AACjC,QAAI,KAAK,kBAAkB,KAAK,iBAAiB,QAAQ;AACvD,uBAAiB;AAAA,IACnB;AACA,UAAM,eAAe,KAAK,gBAAgB;AAC1C,WAAO,IAAI,IAAI;AAAA,EACjB,CAAC,EAAE,KAAK,KAAK,CAAC,SAAS;AACrB,UAAM,MAAM,UAAU,IAAI,KAAK,EAAE;AACjC,QAAI,KAAK,cAAc,UAAU;AAC/B,aAAO,KAAK,iBAAiB,SAAS,IAAI,IAAI,KAAK,eAAe,IAAI,IAAI;AAAA,IAC5E;AACA,QAAI,gBAAgB,CAAC,aAAa;AAClC,QAAI,KAAK,kBAAkB,KAAK,iBAAiB,QAAQ;AACvD,uBAAiB;AAAA,IACnB;AACA,UAAM,eAAe,KAAK,gBAAgB;AAC1C,WAAO,IAAI,IAAI;AAAA,EACjB,CAAC,EAAE,KAAK,SAAS,oBAAoB,EAAE,KAAK,QAAQ,CAAC,SAAS;AAC5D,QAAI,KAAK,cAAc,WAAW;AAChC,aAAO,MAAM;AAAA,IACf;AACA,QAAI,KAAK,cAAc,UAAU;AAC/B,aAAO;AAAA,IACT;AACA,WAAO,MAAM;AAAA,EACf,CAAC,EAAE,KAAK,aAAa,aAAa,aAAa,EAAE,KAAK,eAAe,CAAC,SAAS,KAAK,cAAc,WAAW,SAAS,QAAQ,EAAE,KAAK,eAAe,CAAC,SAAS,KAAK,cAAc,WAAW,WAAW,OAAO,EAAE,KAAK,qBAAqB,CAAC,SAAS,KAAK,cAAc,WAAW,WAAW,MAAM,EAAE,KAAK,CAAC,SAAS,KAAK,KAAK;AAC9T,MAAI,KAAK,YAAY,SAAS,GAAG;AAC/B,UAAM,mBAAmB,KAAK,OAAO,GAAG,EAAE,KAAK,SAAS,qBAAqB;AAC7E,SAAK,YAAY,QAAQ,CAAC,eAAe;AACvC,YAAM,kBAAkB,WAAW,YAAY,IAAI,CAAC,WAAW;AAAA,QAC7D,GAAG,SAAS,MAAM,CAAC;AAAA,QACnB,GAAG,SAAS,MAAM,CAAC;AAAA,MACrB,EAAE;AACF,UAAI,gBAAgB,SAAS,GAAG;AAC9B,iBAAS,IAAI,GAAG,IAAI,gBAAgB,SAAS,GAAG,KAAK;AACnD,2BAAiB,OAAO,MAAM,EAAE,KAAK,SAAS,yBAAyB,EAAE,KAAK,MAAM,gBAAgB,CAAC,EAAE,CAAC,EAAE,KAAK,MAAM,gBAAgB,CAAC,EAAE,CAAC,EAAE,KAAK,MAAM,gBAAgB,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,MAAM,gBAAgB,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,UAAU,MAAM,SAAS,EAAE,KAAK,gBAAgB,GAAG,EAAE,KAAK,oBAAoB,KAAK;AAAA,QAC/S;AAAA,MACF;AACA,sBAAgB,QAAQ,CAAC,UAAU;AACjC,cAAM,iBAAiB,iBAAiB,OAAO,GAAG,EAAE,KAAK,SAAS,oBAAoB;AACtF,uBAAe,OAAO,QAAQ,EAAE,KAAK,MAAM,MAAM,CAAC,EAAE,KAAK,MAAM,MAAM,CAAC,EAAE,KAAK,KAAK,EAAE,EAAE,KAAK,QAAQ,OAAO,EAAE,KAAK,UAAU,MAAM,SAAS,EAAE,KAAK,gBAAgB,GAAG;AACpK,uBAAe,OAAO,MAAM,EAAE,KAAK,KAAK,MAAM,CAAC,EAAE,KAAK,KAAK,MAAM,CAAC,EAAE,KAAK,eAAe,QAAQ,EAAE,KAAK,qBAAqB,SAAS,EAAE,KAAK,aAAa,EAAE,EAAE,KAAK,QAAQ,MAAM,aAAa,EAAE,KAAK,eAAe,MAAM,EAAE,KAAK,WAAW,MAAM;AAAA,MACnP,CAAC;AAAA,IACH,CAAC;AACD,QAAI,KAAK,gBAAgB;AACvB,UAAI,OAAO,SAAS,KAAK,eAAe,CAAC;AACzC,UAAI,OAAO,SAAS,KAAK,eAAe,CAAC;AACzC,YAAM,UAAU;AAChB,YAAM,aAAa;AACnB,YAAM,WAAW;AACjB,YAAM,eAAe,iBAAiB,OAAO,GAAG,EAAE,KAAK,SAAS,yBAAyB;AACzF,YAAM,oBAAoB,CAAC,GAAG,KAAK,WAAW,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,MAAM,EAAE,SAAS,EAAE,MAAM;AACxG,YAAM,eAAe,CAAC;AACtB,wBAAkB,QAAQ,CAAC,YAAY,QAAQ;AAC7C,cAAM,QAAQ,aAAa,OAAO,MAAM,EAAE,KAAK,KAAK,OAAO,OAAO,EAAE,KAAK,KAAK,OAAO,WAAW,MAAM,KAAK,UAAU,EAAE,KAAK,aAAa,QAAQ,EAAE,KAAK,QAAQ,MAAM,aAAa,EAAE,KAAK,eAAe,OAAO,EAAE,KAAK,qBAAqB,QAAQ,EAAE,KAAK,GAAG,WAAW,MAAM,KAAK,WAAW,IAAI,EAAE;AACrS,qBAAa,KAAK,KAAK;AAAA,MACzB,CAAC;AACD,UAAI,aAAa,SAAS,GAAG;AAC3B,YAAI,WAAW;AACf,YAAI,YAAY;AAChB,qBAAa,QAAQ,CAAC,UAAU;AAC9B,gBAAM,WAAW,MAAM,KAAK;AAC5B,gBAAM,YAAY,SAAS,sBAAsB;AACjD,qBAAW,KAAK,IAAI,UAAU,SAAS;AACvC,gBAAM,OAAO,SAAS,QAAQ;AAC9B,sBAAY,KAAK,IAAI,WAAW,KAAK,MAAM;AAAA,QAC7C,CAAC;AACD,cAAM,WAAW,WAAW,UAAU,IAAI;AAC1C,cAAM,YAAY,kBAAkB,SAAS,aAAa,UAAU,IAAI,YAAY;AACpF,cAAM,OAAO,aAAa;AAC1B,cAAM,OAAO,QAAQ,aAAa,UAAU;AAC5C,cAAM,OAAO,aAAa;AAC1B,cAAM,OAAO,SAAS,aAAa,UAAU;AAC7C,eAAO,KAAK,IAAI,MAAM,KAAK,IAAI,MAAM,IAAI,CAAC;AAC1C,eAAO,KAAK,IAAI,MAAM,KAAK,IAAI,MAAM,IAAI,CAAC;AAC1C,qBAAa,QAAQ,CAAC,OAAO,QAAQ;AACnC,gBAAM,KAAK,KAAK,OAAO,OAAO,EAAE,KAAK,KAAK,OAAO,WAAW,MAAM,KAAK,UAAU;AAAA,QACnF,CAAC;AACD,qBAAa,OAAO,QAAQ,MAAM,EAAE,KAAK,KAAK,IAAI,EAAE,KAAK,KAAK,IAAI,EAAE,KAAK,SAAS,QAAQ,EAAE,KAAK,UAAU,SAAS,EAAE,KAAK,QAAQ,OAAO,EAAE,KAAK,UAAU,MAAM,SAAS,EAAE,KAAK,gBAAgB,GAAG,EAAE,KAAK,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC;AAAA,MAClO;AAAA,IACF;AAAA,EACF;AACA,MAAI,KAAK,MAAM,SAAS,GAAG;AACzB,UAAM,aAAa,KAAK,OAAO,GAAG,EAAE,KAAK,SAAS,eAAe;AACjE,SAAK,MAAM,QAAQ,CAAC,SAAS;AAC3B,YAAM,QAAQ,SAAS,KAAK,CAAC;AAC7B,YAAM,QAAQ,SAAS,KAAK,CAAC;AAC7B,iBAAW,OAAO,MAAM,EAAE,KAAK,KAAK,KAAK,EAAE,KAAK,KAAK,KAAK,EAAE,KAAK,eAAe,OAAO,EAAE,KAAK,aAAa,EAAE,EAAE,KAAK,QAAQ,MAAM,aAAa,EAAE,KAAK,eAAe,MAAM,EAAE,KAAK,KAAK,IAAI;AAAA,IAC7L,CAAC;AAAA,EACH;AACA,MAAI,KAAK,aAAa,SAAS,GAAG;AAChC,UAAM,oBAAoB,KAAK,OAAO,GAAG,EAAE,KAAK,SAAS,sBAAsB;AAC/E,SAAK,aAAa,QAAQ,CAAC,gBAAgB;AACzC,YAAM,OAAO,SAAS,YAAY,CAAC;AACnC,YAAM,OAAO,SAAS,YAAY,CAAC;AACnC,YAAM,aAAa;AACnB,YAAM,cAAc;AACpB,YAAM,iBAAiB;AACvB,YAAM,YAAY;AAAA,YACZ,IAAI,IAAI,OAAO,cAAc,CAAC;AAAA,YAC9B,OAAO,aAAa,cAAc,IAAI,OAAO,cAAc,CAAC;AAAA,YAC5D,OAAO,aAAa,cAAc,IAAI,OAAO,cAAc,IAAI,CAAC;AAAA,YAChE,OAAO,UAAU,IAAI,IAAI;AAAA,YACzB,OAAO,aAAa,cAAc,IAAI,OAAO,cAAc,IAAI,CAAC;AAAA,YAChE,OAAO,aAAa,cAAc,IAAI,OAAO,cAAc,CAAC;AAAA,YAC5D,IAAI,IAAI,OAAO,cAAc,CAAC;AAAA;AAAA;AAGpC,wBAAkB,OAAO,MAAM,EAAE,KAAK,KAAK,SAAS,EAAE,KAAK,QAAQ,OAAO,EAAE,KAAK,UAAU,MAAM,eAAe,EAAE,KAAK,gBAAgB,CAAC;AACxI,wBAAkB,OAAO,MAAM,EAAE,KAAK,KAAK,OAAO,aAAa,CAAC,EAAE,KAAK,KAAK,OAAO,cAAc,IAAI,EAAE,EAAE,KAAK,eAAe,QAAQ,EAAE,KAAK,aAAa,EAAE,EAAE,KAAK,QAAQ,MAAM,aAAa,EAAE,KAAK,eAAe,MAAM,EAAE,KAAK,YAAY,IAAI;AAAA,IAClP,CAAC;AAAA,EACH;AACA,MAAI,KAAK,eAAe,SAAS,GAAG;AAClC,UAAM,sBAAsB,KAAK,OAAO,GAAG,EAAE,KAAK,SAAS,wBAAwB;AACnF,SAAK,eAAe,QAAQ,CAAC,kBAAkB;AAC7C,YAAM,OAAO,SAAS,cAAc,CAAC;AACrC,YAAM,OAAO,SAAS,cAAc,CAAC;AACrC,YAAM,aAAa;AACnB,YAAM,cAAc;AACpB,YAAM,iBAAiB;AACvB,YAAM,YAAY;AAAA,YACZ,OAAO,UAAU,IAAI,OAAO,cAAc,CAAC;AAAA,YAC3C,OAAO,cAAc,IAAI,OAAO,cAAc,CAAC;AAAA,YAC/C,OAAO,cAAc,IAAI,OAAO,cAAc,IAAI,CAAC;AAAA,YACnD,IAAI,IAAI,IAAI;AAAA,YACZ,OAAO,cAAc,IAAI,OAAO,cAAc,IAAI,CAAC;AAAA,YACnD,OAAO,cAAc,IAAI,OAAO,cAAc,CAAC;AAAA,YAC/C,OAAO,UAAU,IAAI,OAAO,cAAc,CAAC;AAAA;AAAA;AAGjD,0BAAoB,OAAO,MAAM,EAAE,KAAK,KAAK,SAAS,EAAE,KAAK,QAAQ,OAAO,EAAE,KAAK,UAAU,MAAM,eAAe,EAAE,KAAK,gBAAgB,CAAC;AAC1I,0BAAoB,OAAO,MAAM,EAAE,KAAK,KAAK,OAAO,aAAa,CAAC,EAAE,KAAK,KAAK,OAAO,cAAc,IAAI,EAAE,EAAE,KAAK,eAAe,QAAQ,EAAE,KAAK,aAAa,EAAE,EAAE,KAAK,QAAQ,MAAM,aAAa,EAAE,KAAK,eAAe,MAAM,EAAE,KAAK,cAAc,IAAI;AAAA,IACtP,CAAC;AAAA,EACH;AACF,GAAG,MAAM;AACT,IAAI,0BAA0B;AAAA,EAC5B;AACF;AAGA,IAAI,UAAU;AAAA,EACZ;AAAA,EACA,IAAI;AAAA,EACJ,UAAU;AAAA,EACV,QAAwB,uBAAO,MAAM,IAAI,QAAQ;AACnD;",
6
+ "names": ["getConfig2"]
7
+ }