@rubytech/create-maxy-code 0.1.82 → 0.1.84

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 (156) hide show
  1. package/package.json +1 -1
  2. package/payload/platform/plugins/admin/PLUGIN.md +1 -1
  3. package/payload/platform/plugins/admin/hooks/__tests__/pre-tool-use-memory-write-revoke.test.sh +142 -24
  4. package/payload/platform/plugins/admin/hooks/__tests__/turn-completed-graph-write.test.sh +131 -218
  5. package/payload/platform/plugins/admin/hooks/pre-tool-use.sh +85 -17
  6. package/payload/platform/plugins/cloudflare/PLUGIN.md +2 -11
  7. package/payload/platform/plugins/cloudflare/scripts/setup-tunnel.sh +9 -7
  8. package/payload/platform/plugins/cloudflare/skills/setup-tunnel/SKILL.md +20 -10
  9. package/payload/platform/plugins/docs/references/cloudflare.md +10 -9
  10. package/payload/platform/scripts/seed-neo4j.sh +20 -14
  11. package/payload/platform/services/claude-session-manager/dist/jsonl-tail.d.ts +6 -0
  12. package/payload/platform/services/claude-session-manager/dist/jsonl-tail.d.ts.map +1 -1
  13. package/payload/platform/services/claude-session-manager/dist/jsonl-tail.js +21 -0
  14. package/payload/platform/services/claude-session-manager/dist/jsonl-tail.js.map +1 -1
  15. package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts +47 -0
  16. package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts.map +1 -1
  17. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js +265 -44
  18. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -1
  19. package/payload/platform/templates/agents/admin/IDENTITY.md +1 -1
  20. package/payload/platform/templates/specialists/agents/database-operator.md +8 -10
  21. package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-brochure/SKILL.md +3 -0
  22. package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-brochure/references/template.html +18 -8
  23. package/payload/server/{chunk-TFEIFU7F.js → chunk-BDFOTLPW.js} +1 -1
  24. package/payload/server/{chunk-W33UUYYR.js → chunk-BVDLDM6O.js} +1 -1
  25. package/payload/server/{chunk-VGMVEYX7.js → chunk-JRBCOVA4.js} +64 -5
  26. package/payload/server/{cloudflare-task-tracker-7P355PSD.js → cloudflare-task-tracker-M5ONAGUT.js} +2 -2
  27. package/payload/server/maxy-edge.js +2 -2
  28. package/payload/server/public/assets/Checkbox-B34vplI7.js +1 -0
  29. package/payload/server/public/assets/{admin-Dl273yTS.js → admin-BkTlPuP0.js} +5 -5
  30. package/payload/server/public/assets/{arc-aUiRP9AS.js → arc-DMDAZHAN.js} +1 -1
  31. package/payload/server/public/assets/architecture-YZFGNWBL-COhEvUpo.js +1 -0
  32. package/payload/server/public/assets/{architectureDiagram-Q4EWVU46-Iyf6H93s.js → architectureDiagram-Q4EWVU46-DQMCKDU2.js} +1 -1
  33. package/payload/server/public/assets/{blockDiagram-DXYQGD6D-e7l5Mhun.js → blockDiagram-DXYQGD6D-CqJNtiQY.js} +1 -1
  34. package/payload/server/public/assets/{brand-CTMGYFDd.css → brand-C_iHnsbT.css} +1 -1
  35. package/payload/server/public/assets/{brand-dPgPNs7n.js → brand-HqTMr1bV.js} +1 -1
  36. package/payload/server/public/assets/{c4Diagram-AHTNJAMY-bDICnX2_.js → c4Diagram-AHTNJAMY-BVAa1YL3.js} +1 -1
  37. package/payload/server/public/assets/channel-CZG4mVkt.js +1 -0
  38. package/payload/server/public/assets/{chunk-2KRD3SAO-BK3470lx.js → chunk-2KRD3SAO-Di4bO8ir.js} +1 -1
  39. package/payload/server/public/assets/chunk-336JU56O-XIsdqKyD.js +2 -0
  40. package/payload/server/public/assets/chunk-426QAEUC-Dw4mcMYK.js +1 -0
  41. package/payload/server/public/assets/{chunk-4BX2VUAB-BOvVdJLf.js → chunk-4BX2VUAB-DyEhFk-Z.js} +1 -1
  42. package/payload/server/public/assets/{chunk-4TB4RGXK-CzvvHuMJ.js → chunk-4TB4RGXK-BvrlG2FS.js} +1 -1
  43. package/payload/server/public/assets/{chunk-55IACEB6-BwZyF7vR.js → chunk-55IACEB6-BRJOZLpU.js} +1 -1
  44. package/payload/server/public/assets/{chunk-5FUZZQ4R-DxqHPDro.js → chunk-5FUZZQ4R-3-UZ9191.js} +1 -1
  45. package/payload/server/public/assets/{chunk-5PVQY5BW-BA6nMu9F.js → chunk-5PVQY5BW-DOeY60Lp.js} +1 -1
  46. package/payload/server/public/assets/{chunk-67CJDMHE-D5bhMrtY.js → chunk-67CJDMHE-BG6-9r6c.js} +1 -1
  47. package/payload/server/public/assets/{chunk-7N4EOEYR-Si7Lgrwc.js → chunk-7N4EOEYR-BvMbitX7.js} +1 -1
  48. package/payload/server/public/assets/{chunk-AA7GKIK3-DMuHtDqO.js → chunk-AA7GKIK3-CE8mGBD5.js} +1 -1
  49. package/payload/server/public/assets/{chunk-BSJP7CBP-L79XKVcb.js → chunk-BSJP7CBP-DP7LTBll.js} +1 -1
  50. package/payload/server/public/assets/{chunk-CIAEETIT-C0O7Upmg.js → chunk-CIAEETIT-VfnIdN-h.js} +1 -1
  51. package/payload/server/public/assets/{chunk-EDXVE4YY-gUSTktie.js → chunk-EDXVE4YY-BSbGSOxN.js} +1 -1
  52. package/payload/server/public/assets/{chunk-ENJZ2VHE-C-wW17kd.js → chunk-ENJZ2VHE-CszgAcWZ.js} +1 -1
  53. package/payload/server/public/assets/{chunk-FMBD7UC4-C_E43NFJ.js → chunk-FMBD7UC4-w-yBZsN2.js} +1 -1
  54. package/payload/server/public/assets/{chunk-FOC6F5B3-D9lWWHAu.js → chunk-FOC6F5B3-f9cFywhd.js} +1 -1
  55. package/payload/server/public/assets/{chunk-ICPOFSXX-zLc9NsO5.js → chunk-ICPOFSXX-rgw1I6pt.js} +2 -2
  56. package/payload/server/public/assets/{chunk-K5T4RW27-DuhsNH4c.js → chunk-K5T4RW27-B_ZUrFUq.js} +1 -1
  57. package/payload/server/public/assets/{chunk-KGLVRYIC-B4-A1Abi.js → chunk-KGLVRYIC-CcWTvRlI.js} +1 -1
  58. package/payload/server/public/assets/{chunk-LIHQZDEY-BxqgHRgT.js → chunk-LIHQZDEY-D-5-peQw.js} +1 -1
  59. package/payload/server/public/assets/{chunk-ORNJ4GCN-DEYQ5WaJ.js → chunk-ORNJ4GCN-B4Z5L25I.js} +1 -1
  60. package/payload/server/public/assets/{chunk-OYMX7WX6-Bt9RJ_rb.js → chunk-OYMX7WX6-DL4v2Nx4.js} +1 -1
  61. package/payload/server/public/assets/chunk-QZHKN3VN-CWh_0JsP.js +1 -0
  62. package/payload/server/public/assets/{chunk-U2HBQHQK-BAM6MO6g.js → chunk-U2HBQHQK-CwMCwyfq.js} +1 -1
  63. package/payload/server/public/assets/{chunk-X2U36JSP-DbOwgg1R.js → chunk-X2U36JSP-CvKfDVvq.js} +1 -1
  64. package/payload/server/public/assets/{chunk-XPW4576I-CBfZXZDB.js → chunk-XPW4576I-m1Y_r88I.js} +1 -1
  65. package/payload/server/public/assets/{chunk-YZCP3GAM-BXUfYLeM.js → chunk-YZCP3GAM-D7vju2_U.js} +1 -1
  66. package/payload/server/public/assets/{chunk-ZZ45TVLE-BBIHnMjI.js → chunk-ZZ45TVLE-sANOwJKn.js} +1 -1
  67. package/payload/server/public/assets/classDiagram-6PBFFD2Q-BoqQ3pHg.js +1 -0
  68. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-FoKuBK7n.js +1 -0
  69. package/payload/server/public/assets/clone-CT8AM-bU.js +1 -0
  70. package/payload/server/public/assets/{cose-bilkent-S5V4N54A-Br2gjtEO.js → cose-bilkent-S5V4N54A-BhtgY3T7.js} +1 -1
  71. package/payload/server/public/assets/{dagre-Bv8aHCaJ.js → dagre-CplqWwSs.js} +1 -1
  72. package/payload/server/public/assets/{dagre-KV5264BT-BZ0q7dDA.js → dagre-KV5264BT-DNbl5g9o.js} +1 -1
  73. package/payload/server/public/assets/data-BIDM6J5V.js +1 -0
  74. package/payload/server/public/assets/{device-url-actions-CK6x8-FQ.js → device-url-actions-nxh9PmIH.js} +1 -1
  75. package/payload/server/public/assets/{diagram-5BDNPKRD-Bbzy2KoW.js → diagram-5BDNPKRD-BCdMaYnY.js} +1 -1
  76. package/payload/server/public/assets/{diagram-G4DWMVQ6-CadVHWrV.js → diagram-G4DWMVQ6-8XhDBU0o.js} +1 -1
  77. package/payload/server/public/assets/{diagram-MMDJMWI5-DwJ6fVMv.js → diagram-MMDJMWI5-M-RMQgtx.js} +1 -1
  78. package/payload/server/public/assets/{diagram-TYMM5635-Bh8d1vg-.js → diagram-TYMM5635-BBHPIBvQ.js} +1 -1
  79. package/payload/server/public/assets/{erDiagram-SMLLAGMA-B1oTY2ob.js → erDiagram-SMLLAGMA-D6jOL-9s.js} +1 -1
  80. package/payload/server/public/assets/{flatten-Bo6YRmWl.js → flatten-BsWEYbBB.js} +1 -1
  81. package/payload/server/public/assets/{flowDiagram-DWJPFMVM-BZU76iLs.js → flowDiagram-DWJPFMVM-CiyTYRlU.js} +1 -1
  82. package/payload/server/public/assets/{ganttDiagram-T4ZO3ILL-PjhJx62i.js → ganttDiagram-T4ZO3ILL-DHSIpjfS.js} +1 -1
  83. package/payload/server/public/assets/gitGraph-7Q5UKJZL-DeTNsAO0.js +1 -0
  84. package/payload/server/public/assets/{gitGraphDiagram-UUTBAWPF-DLrxzJYi.js → gitGraphDiagram-UUTBAWPF-CEneVF3o.js} +1 -1
  85. package/payload/server/public/assets/graph-Cm-iWFqy.js +1 -0
  86. package/payload/server/public/assets/graph-labels-CFX6KkCz.js +1 -0
  87. package/payload/server/public/assets/{graphlib-D2ExKXiT.js → graphlib-CuF7rLfE.js} +1 -1
  88. package/payload/server/public/assets/info-OMHHGYJF-DJJ9GlS6.js +1 -0
  89. package/payload/server/public/assets/infoDiagram-42DDH7IO-wGl-JoP7.js +2 -0
  90. package/payload/server/public/assets/{isEmpty-D6Kr-M1M.js → isEmpty-BWl67LAZ.js} +1 -1
  91. package/payload/server/public/assets/{ishikawaDiagram-UXIWVN3A-Ed8ANWEq.js → ishikawaDiagram-UXIWVN3A-B3TxFNi_.js} +1 -1
  92. package/payload/server/public/assets/{journeyDiagram-VCZTEJTY-DF1gG775.js → journeyDiagram-VCZTEJTY-B5n8No7p.js} +1 -1
  93. package/payload/server/public/assets/{kanban-definition-6JOO6SKY-D8VcaKAp.js → kanban-definition-6JOO6SKY-ByGF39_h.js} +1 -1
  94. package/payload/server/public/assets/{line-CgMZIaVM.js → line-Br0FyyFW.js} +1 -1
  95. package/payload/server/public/assets/{linear-DOh_6k2k.js → linear-0O14Y6uf.js} +1 -1
  96. package/payload/server/public/assets/{mermaid-parser.core-ez9lChuL.js → mermaid-parser.core-BUcTjodx.js} +2 -2
  97. package/payload/server/public/assets/{mermaid.core-BiVW_Lka.js → mermaid.core-BKzdtZgG.js} +3 -3
  98. package/payload/server/public/assets/{mindmap-definition-QFDTVHPH-C-BlLBbo.js → mindmap-definition-QFDTVHPH-CobGMF9l.js} +1 -1
  99. package/payload/server/public/assets/{ordinal-BDi6f4xk.js → ordinal-krseTxxN.js} +1 -1
  100. package/payload/server/public/assets/packet-4T2RLAQJ-CGbvGkvF.js +1 -0
  101. package/payload/server/public/assets/{page-BQCQwUG5.js → page-B5NRnW0t.js} +1 -1
  102. package/payload/server/public/assets/{page-DStDaJgc.js → page-Ba0BAfpu.js} +2 -2
  103. package/payload/server/public/assets/pie-ZZUOXDRM-BZy8rjFn.js +1 -0
  104. package/payload/server/public/assets/{pieDiagram-DEJITSTG-BK0-LxVl.js → pieDiagram-DEJITSTG-DXFmGcNR.js} +1 -1
  105. package/payload/server/public/assets/{public-DMk9cZKl.js → public-DWfBzf83.js} +5 -5
  106. package/payload/server/public/assets/{quadrantDiagram-34T5L4WZ-vKAQHu-t.js → quadrantDiagram-34T5L4WZ-BnChStlO.js} +1 -1
  107. package/payload/server/public/assets/radar-PYXPWWZC-DcfWIVXr.js +1 -0
  108. package/payload/server/public/assets/{reduce-CGi9ik8i.js → reduce-tk-xY6Fv.js} +1 -1
  109. package/payload/server/public/assets/{requirementDiagram-MS252O5E-Df9sXR35.js → requirementDiagram-MS252O5E-DdiBKsyO.js} +1 -1
  110. package/payload/server/public/assets/{sankeyDiagram-XADWPNL6-DG6xirA4.js → sankeyDiagram-XADWPNL6-16-np_56.js} +1 -1
  111. package/payload/server/public/assets/{sequenceDiagram-FGHM5R23-B1a38KHX.js → sequenceDiagram-FGHM5R23-D67SCRpA.js} +1 -1
  112. package/payload/server/public/assets/{stateDiagram-FHFEXIEX-CRiIDR4O.js → stateDiagram-FHFEXIEX-CvNJX0YC.js} +1 -1
  113. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-CFw2U4iL.js +1 -0
  114. package/payload/server/public/assets/{timeline-definition-GMOUNBTQ-CkBOE7Y8.js → timeline-definition-GMOUNBTQ-BJE5YoBa.js} +1 -1
  115. package/payload/server/public/assets/treeView-SZITEDCU-3WugwVdj.js +1 -0
  116. package/payload/server/public/assets/treemap-W4RFUUIX-Cf5mDLlu.js +1 -0
  117. package/payload/server/public/assets/{vennDiagram-DHZGUBPP-CwKBydYc.js → vennDiagram-DHZGUBPP-DF17ddXt.js} +1 -1
  118. package/payload/server/public/assets/wardley-RL74JXVD-Bv4md4b3.js +1 -0
  119. package/payload/server/public/assets/{wardleyDiagram-NUSXRM2D-BWXYfzIr.js → wardleyDiagram-NUSXRM2D-xn_2XUOo.js} +1 -1
  120. package/payload/server/public/assets/{xychartDiagram-5P7HB3ND-D-4v5Dy_.js → xychartDiagram-5P7HB3ND-DVF8zf3f.js} +1 -1
  121. package/payload/server/public/data.html +5 -5
  122. package/payload/server/public/graph.html +6 -5
  123. package/payload/server/public/index.html +8 -7
  124. package/payload/server/public/public.html +5 -4
  125. package/payload/server/server.js +229 -22
  126. package/payload/server/public/assets/architecture-YZFGNWBL--v-pJPNp.js +0 -1
  127. package/payload/server/public/assets/channel-CkgyfA91.js +0 -1
  128. package/payload/server/public/assets/chunk-336JU56O-CbnUj19H.js +0 -2
  129. package/payload/server/public/assets/chunk-426QAEUC-DxGLqjw5.js +0 -1
  130. package/payload/server/public/assets/chunk-QZHKN3VN-Bd-GrQM6.js +0 -1
  131. package/payload/server/public/assets/classDiagram-6PBFFD2Q-PyvJekA9.js +0 -1
  132. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-6hFNhiTb.js +0 -1
  133. package/payload/server/public/assets/clone-CFIJrRLl.js +0 -1
  134. package/payload/server/public/assets/data-BgADjmk1.js +0 -1
  135. package/payload/server/public/assets/gitGraph-7Q5UKJZL-CI0s_tqn.js +0 -1
  136. package/payload/server/public/assets/graph-B1_erzSo.js +0 -1
  137. package/payload/server/public/assets/graph-labels-CpFvcba2.js +0 -1
  138. package/payload/server/public/assets/info-OMHHGYJF-g3gYW7Qm.js +0 -1
  139. package/payload/server/public/assets/infoDiagram-42DDH7IO-Cn0r9nCK.js +0 -2
  140. package/payload/server/public/assets/packet-4T2RLAQJ-CT0TB9HI.js +0 -1
  141. package/payload/server/public/assets/pie-ZZUOXDRM-CXLe7TFF.js +0 -1
  142. package/payload/server/public/assets/radar-PYXPWWZC-DnPLBl-D.js +0 -1
  143. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-C8cVmi_o.js +0 -1
  144. package/payload/server/public/assets/treeView-SZITEDCU-C3cb7Xwe.js +0 -1
  145. package/payload/server/public/assets/treemap-W4RFUUIX-Dc7G3Bgm.js +0 -1
  146. package/payload/server/public/assets/wardley-RL74JXVD-DtgibWAt.js +0 -1
  147. /package/payload/server/public/assets/{_baseFor-Cam2PbSt.js → _baseFor-BHtDrjIo.js} +0 -0
  148. /package/payload/server/public/assets/{array-DYRGGQae.js → array-DetWRiSa.js} +0 -0
  149. /package/payload/server/public/assets/{cytoscape.esm-nWsJMTNI.js → cytoscape.esm-C9yNhe1u.js} +0 -0
  150. /package/payload/server/public/assets/{defaultLocale-Du1XY3Dp.js → defaultLocale-_WRwicXn.js} +0 -0
  151. /package/payload/server/public/assets/{dist-BzAsli7o.js → dist-Bd4S37oi.js} +0 -0
  152. /package/payload/server/public/assets/{init-B5BXBRcm.js → init-sTEcj9YX.js} +0 -0
  153. /package/payload/server/public/assets/{katex-HOUACuRw.js → katex-s61Rgv6l.js} +0 -0
  154. /package/payload/server/public/assets/{path-CNO468J-.js → path-B0Ik7Tu9.js} +0 -0
  155. /package/payload/server/public/assets/{rough.esm-DRO6hWPh.js → rough.esm-DKRO8IF-.js} +0 -0
  156. /package/payload/server/public/assets/{src-CWiyyVfn.js → src-B6XdH6xq.js} +0 -0
@@ -120,6 +120,78 @@ function expandPlaceholders(raw, vars) {
120
120
  return Object.prototype.hasOwnProperty.call(vars, name) ? vars[name] : m;
121
121
  });
122
122
  }
123
+ /** Task 215 — pull the `<server>` segment out of a qualified MCP tool name
124
+ * the way Claude Code's plugin-tool registry surfaces it. Two shapes
125
+ * exist in the wild:
126
+ *
127
+ * - Long prefix: `mcp__plugin_<plugin>_<server>__<tool>` — emitted by
128
+ * Claude Code when an MCP server is registered via plugin manifest
129
+ * (post-Task-209 native plugin-system path; what `--agent <name>`
130
+ * specialist spawns receive in Registry #1).
131
+ * - Short prefix: `mcp__<server>__<tool>` — emitted by Claude Code when
132
+ * an MCP server is registered via `--mcp-config <path>` (admin operator
133
+ * spawns; what Registry #2 produces directly).
134
+ *
135
+ * Both must resolve to the same `<server>` slug so the probe can match
136
+ * the qualified name against `toolSurface.mcpServers` keys, which the
137
+ * manager populates from PLUGIN.md basenames in `tool-surface.ts`. The
138
+ * pre-Task-215 inline regex `/^mcp__(.+?)__/` extracted `plugin_<plugin>_<server>`
139
+ * from the long-prefix shape (lazy match stops at the first `__`),
140
+ * which never matched any tool-surface key — the failure mode this
141
+ * helper closes.
142
+ *
143
+ * Returns `null` for any name that matches neither shape. The caller
144
+ * surfaces those names through the inventory line's `unparseable-tools=`
145
+ * field so a malformed agent-frontmatter entry can't masquerade as a
146
+ * missing server. */
147
+ export function extractServerNameFromQualifiedTool(qualified) {
148
+ // Long prefix has the literal `plugin` marker between `mcp__` and the
149
+ // plugin slug — Claude Code stamps it for every plugin-manifest MCP
150
+ // server, even when plugin and server slugs are equal (the common
151
+ // maxy case: plugin=memory, server=memory).
152
+ const longMatch = qualified.match(/^mcp__plugin_([^_]+)_([^_]+)__/);
153
+ if (longMatch)
154
+ return longMatch[2];
155
+ // Short prefix has no `plugin` marker; the first segment IS the server
156
+ // slug. Used by admin's `--mcp-config` registrations and by any
157
+ // historical fixture that predates the plugin-manifest rename.
158
+ const shortMatch = qualified.match(/^mcp__([^_]+)__/);
159
+ if (shortMatch)
160
+ return shortMatch[1];
161
+ return null;
162
+ }
163
+ /** Task 215 — classify the agent's frontmatter `tools:` list against the
164
+ * manager's tool-surface registry. Used by both the per-spawn `.mcp.json`
165
+ * writer (admin) and the tool-inventory probe (specialist). Returns the
166
+ * set of server names to spawn AND the two diagnostic sets the inventory
167
+ * line surfaces when non-empty: tokens that didn't parse at all
168
+ * (`unparseableTools`) and parseable tokens whose server isn't in the
169
+ * registry (`missingServers`). Both diagnostic sets are empty in the
170
+ * healthy case, so the existing log line shape stays unchanged for
171
+ * passing spawns. */
172
+ export function classifySpecialistTools(tools, toolSurfaceServers) {
173
+ const matchedServers = new Set();
174
+ const unparseable = [];
175
+ const missingSet = new Set();
176
+ for (const t of tools) {
177
+ const server = extractServerNameFromQualifiedTool(t);
178
+ if (server === null) {
179
+ unparseable.push(t);
180
+ continue;
181
+ }
182
+ if (toolSurfaceServers.has(server)) {
183
+ matchedServers.add(server);
184
+ }
185
+ else if (!missingSet.has(server)) {
186
+ missingSet.add(server);
187
+ }
188
+ }
189
+ return {
190
+ matchedServers,
191
+ unparseableTools: unparseable,
192
+ missingServers: Array.from(missingSet),
193
+ };
194
+ }
123
195
  /** Builds the placeholder map for per-spawn `mcp.json` env substitution.
124
196
  * Exported for Task 142 unit coverage that asserts `PLATFORM_PORT` and
125
197
  * `MAXY_BRAND_PORT` resolve from the manager process env. */
@@ -152,16 +224,19 @@ function writePerSpawnMcpConfig(p) {
152
224
  // Task 165 — specialist spawn. Project the agent's `tools:`
153
225
  // frontmatter to the set of plugin namespaces it references; include
154
226
  // only those MCP servers. A specialist that only writes graph
155
- // (database-operator: memory, contacts, tasks) does not get the
227
+ // (database-operator: memory, contacts, work) does not get the
156
228
  // dozens of other admin servers stamped into its mcp.json.
157
- const specialistPluginNames = new Set();
158
- for (const t of p.specialistTools) {
159
- const m = t.match(/^mcp__(.+?)__/);
160
- if (m)
161
- specialistPluginNames.add(m[1]);
162
- }
229
+ //
230
+ // Task 215 uses `classifySpecialistTools` so post-Task-209
231
+ // long-prefix names (`mcp__plugin_<plugin>_<server>__<tool>`) resolve
232
+ // to their `<server>` slug rather than the legacy lazy-regex capture
233
+ // of `plugin_<plugin>_<server>`. This branch is dead for production
234
+ // (Task 207 dropped `.mcp.json` writes for specialists) but the
235
+ // classifier keeps it correct for any future caller and for tests
236
+ // that exercise the legacy path.
237
+ const { matchedServers } = classifySpecialistTools(p.specialistTools, p.toolSurface.mcpServers);
163
238
  for (const [name, desc] of p.toolSurface.mcpServers) {
164
- if (specialistPluginNames.has(name))
239
+ if (matchedServers.has(name))
165
240
  serversForRole.push([name, desc]);
166
241
  }
167
242
  }
@@ -268,24 +343,55 @@ function checkSlotsAndMaybeEvict(deps, args) {
268
343
  }
269
344
  return undefined;
270
345
  }
346
+ /** Task 215 — single source of truth for matching probe results against
347
+ * the frontmatter allowlist. Builds the `offered` set with BOTH short
348
+ * and long prefix shapes so an agent file's `mcp__plugin_<plugin>_<server>__<tool>`
349
+ * declaration intersects with the probe's per-tool reply regardless of
350
+ * which Claude Code registry path registers the server at runtime.
351
+ * `mcpListedCount` is incremented per actual tool, not per prefix variant
352
+ * — the two prefixes refer to the same underlying tool. */
353
+ function buildOfferedSet(result) {
354
+ const offered = new Set();
355
+ let mcpListedCount = 0;
356
+ for (const [serverName, tools] of result) {
357
+ for (const tool of tools) {
358
+ offered.add(`mcp__${serverName}__${tool}`);
359
+ offered.add(`mcp__plugin_${serverName}_${serverName}__${tool}`);
360
+ mcpListedCount++;
361
+ }
362
+ }
363
+ return { offered, mcpListedCount };
364
+ }
365
+ /** Task 215 — render the optional `unparseable-tools=` and `missing-servers=`
366
+ * fields. Empty inputs return an empty string so the inventory line stays
367
+ * exactly the legacy shape when the spawn is healthy (no need to teach
368
+ * every operator-side grep to skip blank fields). */
369
+ function buildDiagnosticFields(unparseable, missing) {
370
+ let out = '';
371
+ if (unparseable.length > 0)
372
+ out += ` unparseable-tools=${unparseable.join(',')}`;
373
+ if (missing.length > 0)
374
+ out += ` missing-servers=${missing.join(',')}`;
375
+ return out;
376
+ }
271
377
  /** Task 178 — fire-and-forget aggregator. Probes each MCP server in the
272
378
  * spawn's resolved mcp.json for its `tools/list` reply, then emits one
273
379
  * `[pty-spawn-tool-inventory]` line per spawn. Specialist spawns only —
274
380
  * operator spawns have no agent frontmatter and the failure shape this
275
381
  * closes the gap on is recorder-specific. The function never throws;
276
382
  * probe errors emit a `[pty-spawn-tool-inventory-failed]` line on the
277
- * same logger so the gap is itself observable. */
383
+ * same logger so the gap is itself observable.
384
+ *
385
+ * Task 215 — accepts `unparseableTools` and `missingServers` from the
386
+ * caller's classifier so the line surfaces both diagnostic classes when
387
+ * non-empty. The two paths catch different defects: an unparseable token
388
+ * signals a malformed frontmatter entry; a missing server signals a typo
389
+ * or a stale plugin name that no longer maps to a tool-surface registry
390
+ * key. */
278
391
  function emitToolInventoryAsync(p) {
279
392
  p.readMcpToolInventory({ servers: p.resolvedServers, timeoutMs: p.timeoutMs })
280
393
  .then((result) => {
281
- const offered = new Set();
282
- let mcpListedCount = 0;
283
- for (const [serverName, tools] of result) {
284
- for (const tool of tools) {
285
- offered.add(`mcp__${serverName}__${tool}`);
286
- mcpListedCount++;
287
- }
288
- }
394
+ const { offered, mcpListedCount } = buildOfferedSet(result);
289
395
  const exposed = [];
290
396
  const notExposed = [];
291
397
  for (const name of p.frontmatterAllowlist) {
@@ -301,13 +407,86 @@ function emitToolInventoryAsync(p) {
301
407
  // plugin-system?) and `not-exposed` (does it match what the agent
302
408
  // declared?). When both reach the brief's target values, the
303
409
  // recorder turn produces real `tool_use` blocks.
304
- p.logger(`[pty-spawn-tool-inventory] sessionId=${p.sessionId} specialist=${p.specialist} argv-tools=0 mcp-listed-tools=${mcpListedCount} exposed=${exposed.join(',')} not-exposed=${notExposed.join(',')}`);
410
+ const diag = buildDiagnosticFields(p.unparseableTools, p.missingServers);
411
+ p.logger(`[pty-spawn-tool-inventory] sessionId=${p.sessionId} specialist=${p.specialist} argv-tools=0 mcp-listed-tools=${mcpListedCount} exposed=${exposed.join(',')} not-exposed=${notExposed.join(',')}${diag}`);
305
412
  })
306
413
  .catch((err) => {
307
414
  const msg = err instanceof Error ? err.message : String(err);
308
415
  p.logger(`[pty-spawn-tool-inventory-failed] sessionId=${p.sessionId} specialist=${p.specialist} err=${JSON.stringify(msg)}`);
309
416
  });
310
417
  }
418
+ const finalSnapshotState = new Map();
419
+ /** Watchdog ceiling for "model never produced a first turn" — if no
420
+ * `[recorder-turn]` lands within this window, the watchdog fires the
421
+ * final snapshot with `reason=first-turn-timeout`. 60 s is the same
422
+ * order-of-magnitude as the PID-file timeout and well below typical
423
+ * operator patience; tunable in tests via `__setFirstTurnTimeoutMsForTests`. */
424
+ const DEFAULT_FIRST_TURN_TIMEOUT_MS = 60_000;
425
+ let firstTurnTimeoutMs = DEFAULT_FIRST_TURN_TIMEOUT_MS;
426
+ /** Test seam. Production never calls this; the `__` prefix matches the
427
+ * in-repo convention for non-API helpers. */
428
+ export function __setFirstTurnTimeoutMsForTests(ms) {
429
+ firstTurnTimeoutMs = ms;
430
+ }
431
+ export function __resetFirstTurnTimeoutMsForTests() {
432
+ firstTurnTimeoutMs = DEFAULT_FIRST_TURN_TIMEOUT_MS;
433
+ }
434
+ /** Task 215 — fire the `[pty-spawn-tool-inventory-final]` line once per
435
+ * specialist spawn. Idempotent: a second call (e.g. watchdog races a
436
+ * late recorder-turn) is a no-op via the `fired` guard. Re-runs the
437
+ * probe against the same resolvedServers map the spawn-time probe used,
438
+ * so the line reports what the probe would observe AT first-turn
439
+ * time — the timing question Phase 1 of Task 215 was filed to answer.
440
+ *
441
+ * The probe is async and the PTY can exit while it's in flight. Both the
442
+ * `.then` and `.catch` paths gate emission on `finalSnapshotState.has`
443
+ * to suppress phantom lines for sessions whose PTY-exit cleanup ran
444
+ * while the probe was still running. The captured `state` reference
445
+ * still holds the logger, so the emission would mechanically work — but
446
+ * it would lie about a dead session, which is worse than no line. */
447
+ function fireFinalSnapshot(sessionId, reason) {
448
+ const state = finalSnapshotState.get(sessionId);
449
+ if (!state || state.fired)
450
+ return;
451
+ state.fired = true;
452
+ if (state.watchdog) {
453
+ clearTimeout(state.watchdog);
454
+ state.watchdog = null;
455
+ }
456
+ state.readMcpToolInventory({ servers: state.resolvedServers, timeoutMs: state.timeoutMs })
457
+ .then((result) => {
458
+ if (!finalSnapshotState.has(sessionId))
459
+ return;
460
+ const { offered, mcpListedCount } = buildOfferedSet(result);
461
+ const exposed = [];
462
+ const notExposed = [];
463
+ for (const name of state.frontmatterAllowlist) {
464
+ if (offered.has(name))
465
+ exposed.push(name);
466
+ else
467
+ notExposed.push(name);
468
+ }
469
+ const msSinceSpawn = Date.now() - state.spawnedAt;
470
+ const diag = buildDiagnosticFields(state.unparseableTools, state.missingServers);
471
+ state.logger(`[pty-spawn-tool-inventory-final] sessionId=${sessionId} specialist=${state.specialist} mcp-listed-tools=${mcpListedCount} exposed=${exposed.join(',')} not-exposed=${notExposed.join(',')} ms-since-spawn=${msSinceSpawn} reason=${reason}${diag}`);
472
+ })
473
+ .catch((err) => {
474
+ if (!finalSnapshotState.has(sessionId))
475
+ return;
476
+ const msg = err instanceof Error ? err.message : String(err);
477
+ state.logger(`[pty-spawn-tool-inventory-final-failed] sessionId=${sessionId} specialist=${state.specialist} reason=${reason} err=${JSON.stringify(msg)}`);
478
+ });
479
+ }
480
+ /** Test seam — clear any leftover per-spawn state between tests so a
481
+ * failing test doesn't pollute the next one's Map. Production never
482
+ * invokes this; the only legitimate eviction path is PTY exit. */
483
+ export function __clearFinalSnapshotStateForTests() {
484
+ for (const state of finalSnapshotState.values()) {
485
+ if (state.watchdog)
486
+ clearTimeout(state.watchdog);
487
+ }
488
+ finalSnapshotState.clear();
489
+ }
311
490
  export async function spawnClaudeSession(deps, args) {
312
491
  const rejection = checkSlotsAndMaybeEvict(deps, args);
313
492
  if (rejection) {
@@ -441,24 +620,19 @@ export async function spawnClaudeSession(deps, args) {
441
620
  : '';
442
621
  deps.logger(`tool-allowlist role=${args.role} count=${allowed.length} excluded=${excludedSample}`);
443
622
  }
444
- // Task 213 — admin operator spawns lose the memory write tools at the
445
- // CLI deny gate. Evidence in session d2aaa85e (2026-05-21): the admin
446
- // agent emitted `tool_use: memory-update` filling in for a recorder
447
- // turn that produced none, writing nodes that violated the
448
- // admin-does-not-write contract declared in IDENTITY.md. The recorder
449
- // (database-operator specialist) owns these writers; admin must never
450
- // hold them. Specialist spawns (recorder included) are governed by
451
- // their agent-frontmatter `tools:` allowlist and are not affected by
452
- // this disallow the names below intentionally use the runtime
453
- // post-Task-209 plugin namespace (`mcp__plugin_memory_memory__…`).
454
- if (args.role === 'admin' && !isSpecialistSpawn) {
455
- const disallowed = [
456
- 'mcp__plugin_memory_memory__memory-write',
457
- 'mcp__plugin_memory_memory__memory-update',
458
- ];
459
- argv.push('--disallowed-tools', disallowed.join(','));
460
- deps.logger(`pty-spawn-disallowed role=admin source=spawn-disallow tools=${disallowed.join(',')}`);
461
- }
623
+ // Task 222the admin memory-write/update revoke that Task 213 implemented
624
+ // at this CLI boundary has moved to the PreToolUse hook (see
625
+ // `platform/plugins/admin/hooks/pre-tool-use.sh`, wired in seed-neo4j.sh).
626
+ // The CLI `--disallowed-tools` flag was load-bearing in the wrong
627
+ // direction: it filters the tool surface of the spawned Claude Code
628
+ // process AND every in-window Task subagent spawned from it, so the
629
+ // admin-delegates-graph-write-to-database-operator contract introduced
630
+ // by Task 214 stopped working database-operator's frontmatter listed
631
+ // the writers, but the inherited CLI deny stripped them. The hook gates
632
+ // the same two writers per-tool-use and can distinguish admin direct
633
+ // (block) from a Task subagent caller (allow), which the CLI flag
634
+ // could not.
635
+ //
462
636
  // Task 207 — `--permission-mode bypassPermissions` for specialist spawns
463
637
  // when the caller has not explicitly set one. Headless specialists have
464
638
  // no operator to consent to write-tool invocations; default mode blocks
@@ -737,15 +911,16 @@ export async function spawnClaudeSession(deps, args) {
737
911
  bridgeSuffixHint: args.senderId,
738
912
  logDir: deps.logDir,
739
913
  });
740
- const specialistPluginNames = new Set();
741
- for (const t of specialistTools) {
742
- const m = t.match(/^mcp__(.+?)__/);
743
- if (m)
744
- specialistPluginNames.add(m[1]);
745
- }
914
+ // Task 215 classify the frontmatter list once. `matchedServers` is
915
+ // the set of `toolSurface.mcpServers` keys to spawn for the probe;
916
+ // `unparseableTools` and `missingServers` ride downstream into both
917
+ // the spawn-time and end-of-first-turn inventory lines, so a future
918
+ // namespace drift (or an agent file with a typo) can be told apart
919
+ // from a real MCP boot failure by reading server.log alone.
920
+ const { matchedServers, unparseableTools, missingServers } = classifySpecialistTools(specialistTools, deps.toolSurface.mcpServers);
746
921
  const resolvedServers = new Map();
747
922
  for (const [name, desc] of deps.toolSurface.mcpServers) {
748
- if (!specialistPluginNames.has(name))
923
+ if (!matchedServers.has(name))
749
924
  continue;
750
925
  const probeEnv = desc.env
751
926
  ? Object.fromEntries(Object.entries(desc.env).map(([k, v]) => [k, expandPlaceholders(v, placeholders)]))
@@ -762,15 +937,39 @@ export async function spawnClaudeSession(deps, args) {
762
937
  baseEnv: process.env,
763
938
  timeoutMs: req.timeoutMs,
764
939
  }));
940
+ const inventoryTimeoutMs = deps.toolInventoryProbeTimeoutMs ?? 5_000;
765
941
  emitToolInventoryAsync({
766
942
  sessionId: session.sessionId,
767
943
  specialist: args.specialist,
768
944
  frontmatterAllowlist: specialistTools,
769
945
  resolvedServers,
946
+ unparseableTools,
947
+ missingServers,
770
948
  readMcpToolInventory: readInventory,
771
- timeoutMs: deps.toolInventoryProbeTimeoutMs ?? 5_000,
949
+ timeoutMs: inventoryTimeoutMs,
772
950
  logger: deps.logger,
773
951
  });
952
+ // Task 215 — register the per-spawn state that the JsonlTail callback
953
+ // (or the watchdog timer) needs to fire the final snapshot. State is
954
+ // module-scoped so a stale entry past PTY exit is a leak; the exit
955
+ // handler below explicitly clears it. The watchdog covers the failure
956
+ // mode where the model emits zero useful content (the exact defect
957
+ // this task investigates): without the timer, a spawn that never
958
+ // produces a first turn would never emit a final snapshot, and the
959
+ // operator would have no signal at all for the broken case.
960
+ finalSnapshotState.set(session.sessionId, {
961
+ specialist: args.specialist,
962
+ frontmatterAllowlist: specialistTools,
963
+ resolvedServers,
964
+ unparseableTools,
965
+ missingServers,
966
+ readMcpToolInventory: readInventory,
967
+ timeoutMs: inventoryTimeoutMs,
968
+ logger: deps.logger,
969
+ spawnedAt: Date.now(),
970
+ fired: false,
971
+ watchdog: setTimeout(() => fireFinalSnapshot(session.sessionId, 'first-turn-timeout'), firstTurnTimeoutMs),
972
+ });
774
973
  }
775
974
  // Task 183 — register the specialist spawn with the JSONL tail. The
776
975
  // tail's state must exist BEFORE any JSONL modify event fires so the
@@ -780,13 +979,35 @@ export async function spawnClaudeSession(deps, args) {
780
979
  // correct semantic (nothing was launched on argv, so nothing can be
781
980
  // missing). Operator spawns do not register; the tail emits nothing for
782
981
  // them.
982
+ //
983
+ // Task 215 — `onFirstTurn` fires the `[pty-spawn-tool-inventory-final]`
984
+ // snapshot when the model emits its first non-thinking assistant
985
+ // record. Paired with the watchdog timer set above (in the Task-178
986
+ // probe block); whichever fires first wins, the other is a no-op via
987
+ // the `fired` guard inside `fireFinalSnapshot`.
783
988
  if (isSpecialistSpawn && deps.jsonlTail) {
784
989
  deps.jsonlTail.register(session.sessionId, {
785
990
  specialist: args.specialist,
786
991
  argvTools: [],
992
+ onFirstTurn: () => fireFinalSnapshot(session.sessionId, 'first-turn'),
787
993
  });
788
994
  pty.onExit(() => deps.jsonlTail?.unregister(session.sessionId));
789
995
  }
996
+ // Task 215 — PTY-exit cleanup for the final-snapshot state runs
997
+ // INDEPENDENTLY of the JsonlTail wiring. When `deps.jsonlTail` is
998
+ // undefined (test fixtures, partial-mock deployments), state was
999
+ // still registered above in the Task-178 probe block, and the
1000
+ // watchdog timer needs to be canceled on exit to prevent a leak
1001
+ // that fires `[pty-spawn-tool-inventory-final] reason=first-turn-timeout`
1002
+ // against a long-dead session 60 s later.
1003
+ if (isSpecialistSpawn && specialistTools !== null) {
1004
+ pty.onExit(() => {
1005
+ const state = finalSnapshotState.get(session.sessionId);
1006
+ if (state?.watchdog)
1007
+ clearTimeout(state.watchdog);
1008
+ finalSnapshotState.delete(session.sessionId);
1009
+ });
1010
+ }
790
1011
  deps.onSessionReady?.(session);
791
1012
  return { ok: true, session };
792
1013
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pty-spawner.js","sourceRoot":"","sources":["../src/pty-spawner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pty-spawner.js","sourceRoot":"","sources":["../src/pty-spawner.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,0DAA0D;AAC1D,wEAAwE;AACxE,uEAAuE;AACvE,+DAA+D;AAC/D,sEAAsE;AACtE,sEAAsE;AACtE,qBAAqB;AACrB,EAAE;AACF,oEAAoE;AACpE,2DAA2D;AAC3D,EAAE;AACF,oEAAoE;AACpE,sEAAsE;AACtE,2DAA2D;AAC3D,kEAAkE;AAClE,wDAAwD;AACxD,yEAAyE;AACzE,kEAAkE;AAClE,mEAAmE;AACnE,wEAAwE;AACxE,EAAE;AACF,yDAAyD;AACzD,gEAAgE;AAChE,2EAA2E;AAE3E,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAC5E,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEzC,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAGlD,OAAO,EACL,mBAAmB,GAGpB,MAAM,sBAAsB,CAAA;AAE7B,uEAAuE;AACvE,MAAM,YAAY,GAAG,yBAAyB,CAAA;AAC9C,MAAM,cAAc,GAAG,CAAC,GAAG,IAAI,CAAA;AAC/B,MAAM,kBAAkB,GAAG,IAAI,CAAA;AAO/B,SAAS,aAAa,CAAC,GAAc;IACnC,IAAI,GAAG,GAAG,EAAE,CAAA;IACZ,IAAI,GAAG,GAA+B,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QACxD,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;QACrC,IAAI,GAAG,CAAC,MAAM,GAAG,cAAc;YAAE,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC,CAAA;IAC/E,CAAC,CAAC,CAAA;IACF,OAAO;QACL,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG;QAClB,OAAO,EAAE,GAAG,EAAE;YACZ,IAAI,GAAG,EAAE,CAAC;gBAAC,GAAG,CAAC,OAAO,EAAE,CAAC;gBAAC,GAAG,GAAG,IAAI,CAAA;YAAC,CAAC;QACxC,CAAC;KACF,CAAA;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY;IACpC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACzF,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;AAChC,CAAC;AAED,OAAO,EACL,yBAAyB,GAK1B,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAqIpD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,cAAc,GAAwB,IAAI,GAAG,CAAC;IACzD,mBAAmB;IACnB,iBAAiB;IACjB,YAAY;IACZ,YAAY;CACb,CAAC,CAAA;AAsCF,MAAM,CAAC,MAAM,gBAAgB,GAA8B,CAAC,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,CAAC,CAAA;AAuC1H;;;;;;sBAMsB;AACtB,MAAM,UAAU,mBAAmB,CAAC,eAAuB,EAAE,UAAkB;IAC7E,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,EAAE,QAAQ,EAAE,GAAG,UAAU,KAAK,CAAC,CAAA;IAChE,IAAI,GAAW,CAAA;IACf,IAAI,CAAC;QACH,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAClC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC5D,MAAM,IAAI,KAAK,CACb,oDAAoD,IAAI,QAAQ,GAAG,EAAE,CACtE,CAAA;IACH,CAAC;IACD,sEAAsE;IACtE,yCAAyC;IACzC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAChC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CACb,sDAAsD,IAAI,EAAE,CAC7D,CAAA;IACH,CAAC;IACD,IAAI,SAAS,GAAkB,IAAI,CAAA;IACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QACrB,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,KAAK;YAAE,MAAK;QAChC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;QACvC,IAAI,CAAC,EAAE,CAAC;YAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAAC,MAAK;QAAC,CAAC;IACpC,CAAC;IACD,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,qDAAqD,IAAI,EAAE,CAC5D,CAAA;IACH,CAAC;IACD,OAAO,SAAS;SACb,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;AAChC,CAAC;AAED,SAAS,kBAAkB,CACzB,GAAW,EACX,IAAsC;IAEtC,OAAO,GAAG,CAAC,OAAO,CAAC,2BAA2B,EAAE,CAAC,CAAC,EAAE,IAAY,EAAE,EAAE;QAClE,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC1E,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;sBAuBsB;AACtB,MAAM,UAAU,kCAAkC,CAAC,SAAiB;IAClE,sEAAsE;IACtE,oEAAoE;IACpE,kEAAkE;IAClE,4CAA4C;IAC5C,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAA;IACnE,IAAI,SAAS;QAAE,OAAO,SAAS,CAAC,CAAC,CAAC,CAAA;IAClC,uEAAuE;IACvE,gEAAgE;IAChE,+DAA+D;IAC/D,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACrD,IAAI,UAAU;QAAE,OAAO,UAAU,CAAC,CAAC,CAAC,CAAA;IACpC,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;;;;;sBAQsB;AACtB,MAAM,UAAU,uBAAuB,CACrC,KAAwB,EACxB,kBAAgD;IAMhD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAA;IACxC,MAAM,WAAW,GAAa,EAAE,CAAA;IAChC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAA;IACpC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,kCAAkC,CAAC,CAAC,CAAC,CAAA;QACpD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACnB,SAAQ;QACV,CAAC;QACD,IAAI,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACnC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAC5B,CAAC;aAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACnC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACxB,CAAC;IACH,CAAC;IACD,OAAO;QACL,cAAc;QACd,gBAAgB,EAAE,WAAW;QAC7B,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;KACvC,CAAA;AACH,CAAC;AAED;;8DAE8D;AAC9D,MAAM,UAAU,oBAAoB,CAClC,CAAsG,EACtG,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,YAAY,GAAG,GAAG,CAAC,aAAa,CAAA;IACtC,MAAM,aAAa,GAAG,GAAG,CAAC,eAAe,CAAA;IACzC,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,wFAAwF,CAAC,CAAA;IAC3G,CAAC;IACD,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,+EAA+E,CAAC,CAAA;IAClG,CAAC;IACD,wEAAwE;IACxE,gEAAgE;IAChE,mDAAmD;IACnD,OAAO;QACL,aAAa,EAAE,CAAC,CAAC,YAAY;QAC7B,oBAAoB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,iBAAiB,CAAC;QACtE,UAAU,EAAE,CAAC,CAAC,SAAS;QACvB,OAAO,EAAE,CAAC,CAAC,MAAM,IAAI,EAAE;QACvB,UAAU,EAAE,CAAC,CAAC,gBAAgB;QAC9B,OAAO,EAAE,CAAC,CAAC,MAAM;QACjB,aAAa,EAAE,YAAY;QAC3B,eAAe,EAAE,aAAa;KAC/B,CAAA;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,CAAuB;IACrD,MAAM,cAAc,GAAkG,EAAE,CAAA;IACxH,IAAI,CAAC,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC;QAC/B,4DAA4D;QAC5D,qEAAqE;QACrE,8DAA8D;QAC9D,+DAA+D;QAC/D,2DAA2D;QAC3D,EAAE;QACF,6DAA6D;QAC7D,sEAAsE;QACtE,qEAAqE;QACrE,oEAAoE;QACpE,gEAAgE;QAChE,kEAAkE;QAClE,iCAAiC;QACjC,MAAM,EAAE,cAAc,EAAE,GAAG,uBAAuB,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;QAC/F,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;YACpD,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;QACjE,CAAC;IACH,CAAC;SAAM,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC9B,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,UAAU;YAAE,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;IACxF,CAAC;SAAM,CAAC;QACN,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAA;QAC3C,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;YACrC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;YAClC,IAAI,CAAC;gBAAE,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACpC,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;YACpD,IAAI,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;QACpE,CAAC;IACH,CAAC;IAED,wEAAwE;IACxE,qEAAqE;IACrE,6CAA6C;IAC7C,uEAAuE;IACvE,0DAA0D;IAC1D,MAAM,YAAY,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAA;IAE5C,MAAM,UAAU,GAAsF,EAAE,CAAA;IACxG,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,cAAc,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAsE;YAC/E,OAAO,EAAE,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC;YACvD,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;SAChE,CAAA;QACD,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAA2B,EAAE,CAAA;YACtC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,GAAG,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,EAAE,YAAY,CAAC,CAAA;YAC3F,KAAK,CAAC,GAAG,GAAG,GAAG,CAAA;QACjB,CAAC;QACD,UAAU,CAAC,IAAI,CAAC,GAAG,KAAK,CAAA;IAC1B,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IACvD,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,OAAO,CAAA;IACtF,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;IAC1C,IAAI,CAAC;QACH,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC3C,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;IACxC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC5D,CAAC,CAAC,MAAM,CAAC,kCAAkC,MAAM,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAC/E,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CAAA;IACnC,CAAC;IACD,MAAM,eAAe,GAAG,IAAI,GAAG,EAAoC,CAAA;IACnE,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACvD,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE;YACxB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,GAAG,EAAE,KAAK,CAAC,GAAG;SACf,CAAC,CAAA;IACJ,CAAC;IACD,OAAO;QACL,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC;QACzC,WAAW,EAAE,cAAc,CAAC,MAAM;QAClC,eAAe;KAChB,CAAA;AACH,CAAC;AAED;;;2DAG2D;AAC3D,SAAS,uBAAuB,CAC9B,IAAe,EACf,IAAe;IAEf,MAAM,iBAAiB,GAAG,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAA;IAC3F,IAAI,CAAC,iBAAiB;QAAE,OAAO,SAAS,CAAA;IAExC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAA;IACrE,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAA;IAE/D,IAAI,cAAc,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QAChD,MAAM,UAAU,GAAG,cAAc;aAC9B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC;aAC1D,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;QAC/C,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CACT,4CAA4C,IAAI,CAAC,SAAS,YAAY,cAAc,CAAC,MAAM,QAAQ,IAAI,CAAC,aAAa,eAAe,CACrI,CAAA;YACD,OAAO,EAAE,IAAI,EAAE,wBAAwB,EAAE,YAAY,EAAE,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,aAAa,EAAE,CAAA;QACzG,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;QACnD,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAC7B,IAAI,CAAC;gBAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;QACvC,IAAI,CAAC,MAAM,CACT,4CAA4C,IAAI,CAAC,SAAS,YAAY,cAAc,CAAC,MAAM,QAAQ,IAAI,CAAC,aAAa,YAAY,UAAU,CAAC,SAAS,EAAE,CACxJ,CAAA;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAC/D,IAAI,CAAC,MAAM,CACT,2CAA2C,QAAQ,CAAC,MAAM,YAAY,IAAI,CAAC,eAAe,aAAa,IAAI,CAAC,WAAW,wBAAwB,IAAI,CAAC,QAAQ,EAAE,CAC/J,CAAA;QACD,OAAO;YACL,IAAI,EAAE,yBAAyB;YAC/B,KAAK,EAAE,QAAQ,CAAC,MAAM;YACtB,OAAO,EAAE,IAAI,CAAC,eAAe;YAC7B,QAAQ,EAAE,IAAI,CAAC,WAAW;SAC3B,CAAA;IACH,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;;;;;4DAM4D;AAC5D,SAAS,eAAe,CAAC,MAAsB;IAC7C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAA;IACjC,IAAI,cAAc,GAAG,CAAC,CAAA;IACtB,KAAK,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;QACzC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,QAAQ,UAAU,KAAK,IAAI,EAAE,CAAC,CAAA;YAC1C,OAAO,CAAC,GAAG,CAAC,eAAe,UAAU,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC,CAAA;YAC/D,cAAc,EAAE,CAAA;QAClB,CAAC;IACH,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,CAAA;AACpC,CAAC;AAED;;;sDAGsD;AACtD,SAAS,qBAAqB,CAAC,WAA8B,EAAE,OAA0B;IACvF,IAAI,GAAG,GAAG,EAAE,CAAA;IACZ,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC;QAAE,GAAG,IAAI,sBAAsB,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;IAChF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,GAAG,IAAI,oBAAoB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;IACtE,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;;;;;;;;;;;;WAaW;AACX,SAAS,sBAAsB,CAAC,CAe/B;IACC,CAAC,CAAC,oBAAoB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,eAAe,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;SAC3E,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;QACf,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,eAAe,CAAC,MAAM,CAAC,CAAA;QAC3D,MAAM,OAAO,GAAa,EAAE,CAAA;QAC5B,MAAM,UAAU,GAAa,EAAE,CAAA;QAC/B,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,oBAAoB,EAAE,CAAC;YAC1C,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;;gBACpC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC5B,CAAC;QACD,oEAAoE;QACpE,sEAAsE;QACtE,sEAAsE;QACtE,oEAAoE;QACpE,kEAAkE;QAClE,6DAA6D;QAC7D,iDAAiD;QACjD,MAAM,IAAI,GAAG,qBAAqB,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC,cAAc,CAAC,CAAA;QACxE,CAAC,CAAC,MAAM,CACN,wCAAwC,CAAC,CAAC,SAAS,eAAe,CAAC,CAAC,UAAU,kCAAkC,cAAc,YAAY,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CACzM,CAAA;IACH,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC5D,CAAC,CAAC,MAAM,CACN,+CAA+C,CAAC,CAAC,SAAS,eAAe,CAAC,CAAC,UAAU,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CACnH,CAAA;IACH,CAAC,CAAC,CAAA;AACN,CAAC;AAuBD,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAA8B,CAAA;AAEhE;;;;iFAIiF;AACjF,MAAM,6BAA6B,GAAG,MAAM,CAAA;AAC5C,IAAI,kBAAkB,GAAG,6BAA6B,CAAA;AAEtD;8CAC8C;AAC9C,MAAM,UAAU,+BAA+B,CAAC,EAAU;IACxD,kBAAkB,GAAG,EAAE,CAAA;AACzB,CAAC;AACD,MAAM,UAAU,iCAAiC;IAC/C,kBAAkB,GAAG,6BAA6B,CAAA;AACpD,CAAC;AAED;;;;;;;;;;;;sEAYsE;AACtE,SAAS,iBAAiB,CAAC,SAAiB,EAAE,MAA2C;IACvF,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IAC/C,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK;QAAE,OAAM;IACjC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAA;IAClB,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACnB,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAC5B,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAA;IACvB,CAAC;IACD,KAAK,CAAC,oBAAoB,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,eAAe,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;SACvF,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;QACf,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,OAAM;QAC9C,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,eAAe,CAAC,MAAM,CAAC,CAAA;QAC3D,MAAM,OAAO,GAAa,EAAE,CAAA;QAC5B,MAAM,UAAU,GAAa,EAAE,CAAA;QAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,oBAAoB,EAAE,CAAC;YAC9C,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;;gBACpC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC5B,CAAC;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,CAAA;QACjD,MAAM,IAAI,GAAG,qBAAqB,CAAC,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,cAAc,CAAC,CAAA;QAChF,KAAK,CAAC,MAAM,CACV,8CAA8C,SAAS,eAAe,KAAK,CAAC,UAAU,qBAAqB,cAAc,YAAY,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,mBAAmB,YAAY,WAAW,MAAM,GAAG,IAAI,EAAE,CACpP,CAAA;IACH,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACb,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,OAAM;QAC9C,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC5D,KAAK,CAAC,MAAM,CACV,qDAAqD,SAAS,eAAe,KAAK,CAAC,UAAU,WAAW,MAAM,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAC5I,CAAA;IACH,CAAC,CAAC,CAAA;AACN,CAAC;AAED;;mEAEmE;AACnE,MAAM,UAAU,iCAAiC;IAC/C,KAAK,MAAM,KAAK,IAAI,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC;QAChD,IAAI,KAAK,CAAC,QAAQ;YAAE,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IAClD,CAAC;IACD,kBAAkB,CAAC,KAAK,EAAE,CAAA;AAC5B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAe,EAAE,IAAe;IACvE,MAAM,SAAS,GAAG,uBAAuB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IACrD,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAA;IAC3C,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IACxB,MAAM,YAAY,GAChB,IAAI,CAAC,iBAAiB,KAAK,SAAS;QAClC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE;QACrD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAA;IAEf,yEAAyE;IACzE,yEAAyE;IACzE,yEAAyE;IACzE,yEAAyE;IACzE,wEAAwE;IACxE,qBAAqB;IACrB,MAAM,iBAAiB,GAAG,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAA;IAC3F,IAAI,kBAAkB,GAAG,EAAE,CAAA;IAC3B,sEAAsE;IACtE,uEAAuE;IACvE,uEAAuE;IACvE,6DAA6D;IAC7D,IAAI,aAAa,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,CAAA;IAC9E,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,yBAAyB,CACxC,YAAY,EACZ,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAChD;YACE,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;SAC1C,CACF,CAAA;QACD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,IAAI,QAAQ,CAAC,MAAM,KAAK,iBAAiB,EAAE,CAAC;gBAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,iCAAiC,CAAA;gBACnF,IAAI,CAAC,MAAM,CAAC,2DAA2D,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;gBACpG,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,yBAAyB,EAAE,UAAU,EAAE,CAAA;YACrE,CAAC;YACD,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;YAC5C,MAAM,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAA;YACtE,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;YACzD,IAAI,CAAC,MAAM,CACT,kEAAkE,IAAI,CAAC,UAAU,SAAS,IAAI,CAAC,IAAI,SAAS,IAAI,QAAQ,GAAG,EAAE,CAC9H,CAAA;YACD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,qBAAqB,EAAE,UAAU,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAA;QAClF,CAAC;QACD,kBAAkB,GAAG,QAAQ,CAAC,KAAK,CAAA;QACnC,aAAa,GAAG;YACd,QAAQ,EAAE,QAAQ,CAAC,aAAa;YAChC,IAAI,EAAE,QAAQ,CAAC,SAAS;YACxB,UAAU,EAAE,QAAQ,CAAC,eAAe;YACpC,cAAc,EAAE,QAAQ,CAAC,mBAAmB;SAC7C,CAAA;QACD,IAAI,CAAC,MAAM,CACT,iCAAiC,IAAI,CAAC,IAAI,eAAe,IAAI,CAAC,UAAU,4BAA4B,MAAM,CAAC,UAAU,CAAC,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,QAAQ,CAAC,aAAa,cAAc,QAAQ,CAAC,SAAS,oBAAoB,QAAQ,CAAC,eAAe,wBAAwB,QAAQ,CAAC,mBAAmB,wBAAwB,QAAQ,CAAC,mBAAmB,2BAA2B,QAAQ,CAAC,sBAAsB,EAAE,CAC1a,CAAA;IACH,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,MAAM,CACT,sCAAsC,IAAI,CAAC,IAAI,eAAe,IAAI,CAAC,UAAU,kCAAkC,CAChH,CAAA;IACH,CAAC;IAED,gEAAgE;IAChE,sEAAsE;IACtE,mDAAmD;IACnD,MAAM,QAAQ,GAAG,iBAAiB,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,UAAW,CAAC,CAAA;IAC1E,MAAM,IAAI,GAAa,CAAC,WAAW,CAAC,CAAA;IACpC,IAAI,CAAC,QAAQ;QAAE,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;IAC5C,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,kBAAkB,CAAC,CAAA;IACzD,CAAC;IACD,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAA;IACnD,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;IACvC,CAAC;IACD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;IAClC,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9C,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;QAC7B,CAAC;IACH,CAAC;IACD,uEAAuE;IACvE,mEAAmE;IACnE,wEAAwE;IACxE,qEAAqE;IACrE,0BAA0B;IAC1B,IAAI,eAAe,GAA6B,IAAI,CAAA;IACpD,IAAI,aAAa,GAAG,CAAC,CAAA;IACrB,IAAI,iBAAiB,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,eAAe,GAAG,mBAAmB,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,UAAW,CAAC,CAAA;QAC/E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YAC/D,IAAI,CAAC,MAAM,CAAC,kDAAkD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;YACvF,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;QACzE,CAAC;QACD,+DAA+D;QAC/D,oEAAoE;QACpE,oEAAoE;QACpE,oEAAoE;QACpE,iEAAiE;QACjE,2BAA2B;QAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,EAAE,GAAG,CAAC,IAAI,CAAC,UAAW,CAAC,CAAA;QACpE,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAClC,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;YAChE,aAAa,GAAG,eAAe,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAA;YACxD,eAAe,GAAG,QAAQ,CAAA;QAC5B,CAAC;IACH,CAAC;IACD,sEAAsE;IACtE,kEAAkE;IAClE,qEAAqE;IACrE,sEAAsE;IACtE,uEAAuE;IACvE,iEAAiE;IACjE,qEAAqE;IACrE,mEAAmE;IACnE,qEAAqE;IACrE,8DAA8D;IAC9D,+DAA+D;IAC/D,MAAM,OAAO,GAAG,eAAe,KAAK,IAAI;QACtC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,EAAE;QAC7C,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAA;IAChG,IAAI,iBAAiB,EAAE,CAAC;QACtB,IAAI,CAAC,MAAM,CAAC,kCAAkC,IAAI,CAAC,UAAU,oDAAoD,aAAa,EAAE,CAAC,CAAA;IACnI,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAA;QACpC,CAAC;QACD,MAAM,cAAc,GAClB,IAAI,CAAC,IAAI,KAAK,QAAQ;YACpB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;YAChH,CAAC,CAAC,EAAE,CAAA;QACR,IAAI,CAAC,MAAM,CAAC,uBAAuB,IAAI,CAAC,IAAI,UAAU,OAAO,CAAC,MAAM,aAAa,cAAc,EAAE,CAAC,CAAA;IACpG,CAAC;IAED,4EAA4E;IAC5E,6DAA6D;IAC7D,2EAA2E;IAC3E,kEAAkE;IAClE,oEAAoE;IACpE,oEAAoE;IACpE,uEAAuE;IACvE,uEAAuE;IACvE,wEAAwE;IACxE,qEAAqE;IACrE,kEAAkE;IAClE,aAAa;IACb,EAAE;IACF,yEAAyE;IACzE,wEAAwE;IACxE,wEAAwE;IACxE,wEAAwE;IACxE,uEAAuE;IACvE,uEAAuE;IACvE,iBAAiB;IACjB,EAAE;IACF,8DAA8D;IAC9D,iEAAiE;IACjE,oEAAoE;IACpE,qEAAqE;IACrE,kEAAkE;IAClE,+DAA+D;IAC/D,mEAAmE;IACnE,2DAA2D;IAC3D,uEAAuE;IACvE,uEAAuE;IACvE,sDAAsD;IACtD,oEAAoE;IACpE,oEAAoE;IACpE,kCAAkC;IAClC,IAAI,iBAAiB,GAAG,EAAE,CAAA;IAC1B,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QAC7D,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;IACrD,CAAC;SAAM,IAAI,iBAAiB,EAAE,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAAA;QACnD,iBAAiB,GAAG,4CAA4C,CAAA;QAChE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAA;IAC5C,CAAC;IAED,uEAAuE;IACvE,wEAAwE;IACxE,8DAA8D;IAC9D,qEAAqE;IACrE,uEAAuE;IACvE,uEAAuE;IACvE,+DAA+D;IAC/D,IAAI,eAAe,GAAgC,IAAI,CAAA;IACvD,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,eAAe,GAAG,sBAAsB,CAAC;YACvC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,gBAAgB,EAAE,IAAI,CAAC,QAAQ;YAC/B,SAAS,EAAE,IAAI,CAAC,YAAY,IAAI,MAAM,EAAE;YACxC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,eAAe;SAChB,CAAC,CAAA;QACF,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC;YACxB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,yBAAyB,EAAE,UAAU,EAAE,eAAe,CAAC,MAAM,EAAE,CAAA;QAC7F,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,eAAe,CAAC,IAAI,CAAC,CAAA;QAC/C,sEAAsE;QACtE,yEAAyE;QACzE,uEAAuE;QACvE,qEAAqE;QACrE,IAAI,CAAC,MAAM,CACT,2CAA2C,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAClG,CAAA;IACH,CAAC;IAED,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IACjD,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC;QACvE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAA;IAC/C,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;QACzB,IAAI,CAAC,MAAM,CAAC,6BAA6B,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,CAAA;IACjE,CAAC;IACD,IAAI,eAAe,EAAE,CAAC;QACpB,IAAI,CAAC,MAAM,CACT,gCAAgC,eAAe,CAAC,WAAW,UAAU,OAAO,CAAC,MAAM,UAAU,eAAe,CAAC,KAAK,SAAS,eAAe,CAAC,IAAI,EAAE,CAClJ,CAAA;IACH,CAAC;SAAM,CAAC;QACN,iEAAiE;QACjE,qEAAqE;QACrE,yCAAyC;QACzC,IAAI,CAAC,MAAM,CACT,mCAAmC,IAAI,CAAC,UAAU,0BAA0B,CAC7E,CAAA;IACH,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QACjD,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAClD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;QAC1C,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,QAAQ,IAAI,CAAC,aAAa,MAAM,CAAC,CAAA;IAChE,CAAC;IAED,0EAA0E;IAC1E,yEAAyE;IACzE,wEAAwE;IACxE,qEAAqE;IACrE,iEAAiE;IACjE,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,IAAI,EAAE,EAAE,MAAM,CAAC,CAAA;IACxE,IAAI,gBAAgB,GAAG,KAAK,CAAA;IAC5B,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1D,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;QACpC,gBAAgB,GAAG,IAAI,CAAA;IACzB,CAAC;IAED,MAAM,aAAa,GAAG,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;IACjF,qEAAqE;IACrE,sEAAsE;IACtE,mEAAmE;IACnE,qDAAqD;IACrD,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAA;IAEnE,uEAAuE;IACvE,yEAAyE;IACzE,sEAAsE;IACtE,sDAAsD;IACtD,MAAM,QAAQ,GAAsB;QAClC,GAAG,OAAO,CAAC,GAAG;QACd,IAAI,EAAE,gBAAgB;QACtB,iBAAiB,EAAE,IAAI,CAAC,IAAI;QAC5B,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;QAC1C,4DAA4D;QAC5D,+DAA+D;QAC/D,2DAA2D;QAC3D,0BAA0B;QAC1B,eAAe,EAAE,IAAI,CAAC,UAAU,IAAI,EAAE;QACtC,6DAA6D;QAC7D,kEAAkE;QAClE,8DAA8D;QAC9D,8DAA8D;QAC9D,gEAAgE;QAChE,yBAAyB;QACzB,OAAO,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE;QAC1B,kEAAkE;QAClE,iEAAiE;QACjE,kEAAkE;QAClE,2CAA2C;QAC3C,gEAAgE;QAChE,+DAA+D;QAC/D,gEAAgE;QAChE,kEAAkE;QAClE,+BAA+B,EAAE,GAAG;KACrC,CAAA;IACD,qEAAqE;IACrE,qEAAqE;IACrE,oEAAoE;IACpE,iEAAiE;IACjE,oEAAoE;IACpE,oEAAoE;IACpE,yEAAyE;IACzE,0EAA0E;IAC1E,EAAE;IACF,oEAAoE;IACpE,mEAAmE;IACnE,kEAAkE;IAClE,kEAAkE;IAClE,gEAAgE;IAChE,mDAAmD;IACnD,MAAM,OAAO,GAAa,CAAC,iCAAiC,CAAC,CAAA;IAC7D,IAAI,iBAAiB,EAAE,CAAC;QACtB,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAA;QACpC,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,CAAA;QAC1C,QAAQ,CAAC,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAA;QACjD,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,IAAI,EAAE,CAAA;QAC/C,QAAQ,CAAC,cAAc,GAAG,IAAI,CAAC,oBAAoB,IAAI,EAAE,CAAA;QACzD,OAAO,CAAC,IAAI,CACV,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,mBAAmB,EAC7D,WAAW,EAAE,gBAAgB,CAC9B,CAAA;IACH,CAAC;IACD,MAAM,YAAY,GAAG,aAAa,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;IAErD,IAAI,CAAC,MAAM,CACT,6BAA6B,IAAI,CAAC,SAAS,eAAe,IAAI,CAAC,MAAM,+BAA+B,MAAM,CAAC,UAAU,CAAC,kBAAkB,EAAE,MAAM,CAAC,oBAAoB,IAAI,CAAC,cAAc,IAAI,SAAS,wBAAwB,MAAM,CAAC,UAAU,CAAC,iBAAiB,EAAE,MAAM,CAAC,WAAW,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,eAAe,IAAI,CAAC,UAAU,IAAI,MAAM,sBAAsB,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,iBAAiB,WAAW,WAAW,UAAU,kBAAkB,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,GAAG,YAAY,EAAE,CAChhB,CAAA;IACD,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAChC,IAAI,GAAc,CAAA;IAClB,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;IACrD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,GAAG,GAA4B,CAAA;QACtC,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,kBAAkB,CAAA;QAClF,MAAM,UAAU,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;QAC/C,IAAI,CAAC,MAAM,CAAC,uBAAuB,MAAM,gBAAgB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,iBAAiB,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa,EAAE,CAAC,CAAA;QACjI,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,CAAA;IAC1C,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,mBAAmB,GAAG,CAAC,GAAG,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa,EAAE,CAAC,CAAA;IAE1E,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,CAAA;IAE/B,+DAA+D;IAC/D,sEAAsE;IACtE,kEAAkE;IAClE,sEAAsE;IACtE,EAAE;IACF,wEAAwE;IACxE,qEAAqE;IACrE,2DAA2D;IAC3D,IAAI,WAAW,GAAkB,IAAI,CAAA;IACrC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,eAAe,CAAC;YACd,GAAG;YACH,SAAS,EAAE,IAAI,CAAC,mBAAmB;YACnC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE;gBACb,WAAW,GAAG,GAAG,CAAA;gBACjB,IAAI,CAAC,MAAM,CAAC,oBAAoB,GAAG,CAAC,GAAG,QAAQ,GAAG,EAAE,CAAC,CAAA;gBACrD,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAA;gBAChC,IAAI,CAAC,GAAG;oBAAE,OAAM;gBAChB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;gBAChC,IAAI,IAAI;oBAAE,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;gBACxB,IAAI,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,CAAA;YAC3B,CAAC;YACD,SAAS,EAAE,GAAG,EAAE;gBACd,IAAI,CAAC,MAAM,CAAC,2BAA2B,GAAG,CAAC,GAAG,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC,CAAA;YAC5E,CAAC;SACF,CAAC,CAAA;IACJ,CAAC;IAED,qEAAqE;IACrE,gEAAgE;IAChE,MAAM,YAAY,GAA+B,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAElE,8DAA8D;IAC9D,kEAAkE;IAClE,IAAI,GAAe,CAAA;IACnB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAA;IACrE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACnB,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;QACjC,IAAI,CAAC,OAAO,EAAE,CAAA;QACd,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC/D,IAAI,CAAC,MAAM,CAAC,4CAA4C,GAAG,CAAC,GAAG,WAAW,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,gBAAgB,gBAAgB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;QAC/I,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,UAAU,EAAE,CAAA;IAC9D,CAAC;IAED,YAAY,CAAC,OAAO,GAAG,GAAG,CAAC,SAAS,CAAA;IAEpC,MAAM,OAAO,GAAkB;QAC7B,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,eAAe,EAAE,GAAG,CAAC,eAAe,IAAI,WAAW,GAAG,CAAC,SAAS,EAAE;QAClE,YAAY,EAAE,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,SAAS;QAC/C,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,GAAG,EAAE,WAAW;QAChB,SAAS;QACT,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,GAAG;QACH,MAAM,EAAE,KAAK;QACb,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE,IAAI,CAAC,MAAM,KAAK,IAAI;QAC5B,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,GAAG,CAAC,KAAK,IAAI,IAAI;KACjD,CAAA;IACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAEvB,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QACzB,IAAI,CAAC,MAAM,CACT,2BAA2B,OAAO,CAAC,UAAU,IAAI,MAAM,cAAc,OAAO,CAAC,SAAS,QAAQ,GAAG,CAAC,GAAG,EAAE,CACxG,CAAA;IACH,CAAC;IAED,mEAAmE;IACnE,gEAAgE;IAChE,yEAAyE;IACzE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QACf,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;QACjC,IAAI,CAAC,OAAO,EAAE,CAAA;QACd,oBAAoB,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,CAAC,CAAA;IAC1F,CAAC,CAAC,CAAA;IAEF,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAA;IACrC,IAAI,CAAC,MAAM,CACT,qCAAqC,OAAO,CAAC,SAAS,QAAQ,GAAG,CAAC,GAAG,OAAO,UAAU,EAAE,CACzF,CAAA;IACD,IAAI,CAAC,MAAM,CACT,aAAa,GAAG,CAAC,GAAG,cAAc,OAAO,CAAC,SAAS,aAAa,IAAI,CAAC,QAAQ,SAAS,IAAI,CAAC,IAAI,YAAY,IAAI,CAAC,OAAO,mBAAmB,IAAI,CAAC,cAAc,IAAI,SAAS,kBAAkB,CAAC,QAAQ,eAAe,UAAU,EAAE,CACjO,CAAA;IACD,IAAI,CAAC,MAAM,CACT,yBAAyB,OAAO,CAAC,SAAS,4BAA4B,MAAM,CAAC,UAAU,CAAC,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,aAAa,CAAC,QAAQ,cAAc,aAAa,CAAC,IAAI,oBAAoB,aAAa,CAAC,UAAU,wBAAwB,aAAa,CAAC,cAAc,eAAe,IAAI,CAAC,UAAU,SAAS,IAAI,CAAC,IAAI,eAAe,IAAI,CAAC,UAAU,IAAI,MAAM,aAAa,IAAI,CAAC,IAAI,CAAC,QAAQ,YAAY,IAAI,CAAC,IAAI,CAAC,OAAO,aAAa,IAAI,CAAC,IAAI,CAAC,QAAQ,cAAc,YAAY,CAAC,SAAS,IAAI,MAAM,EAAE,CAC/f,CAAA;IAED,wEAAwE;IACxE,wEAAwE;IACxE,sEAAsE;IACtE,uEAAuE;IACvE,sEAAsE;IACtE,6DAA6D;IAC7D,EAAE;IACF,iEAAiE;IACjE,+DAA+D;IAC/D,wEAAwE;IACxE,mEAAmE;IACnE,qEAAqE;IACrE,uEAAuE;IACvE,wEAAwE;IACxE,iEAAiE;IACjE,mEAAmE;IACnE,kCAAkC;IAClC,IAAI,iBAAiB,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;QAClD,MAAM,YAAY,GAAG,oBAAoB,CAAC;YACxC,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,gBAAgB,EAAE,IAAI,CAAC,QAAQ;YAC/B,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAA;QACF,qEAAqE;QACrE,mEAAmE;QACnE,oEAAoE;QACpE,oEAAoE;QACpE,mEAAmE;QACnE,4DAA4D;QAC5D,MAAM,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,GACxD,uBAAuB,CAAC,eAAe,EAAE,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;QACvE,MAAM,eAAe,GAAG,IAAI,GAAG,EAAoC,CAAA;QACnE,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;YACvD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAQ;YACvC,MAAM,QAAQ,GAAuC,IAAI,CAAC,GAAG;gBAC3D,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;gBACxG,CAAC,CAAC,SAAS,CAAA;YACb,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE;gBACxB,OAAO,EAAE,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC;gBACvD,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;gBAC/D,GAAG,EAAE,QAAQ;aACd,CAAC,CAAA;QACJ,CAAC;QACD,MAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB;eAC1C,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,mBAAmB,CAAC;gBAC/B,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,OAAO,EAAE,OAAO,CAAC,GAAG;gBACpB,SAAS,EAAE,GAAG,CAAC,SAAS;aACzB,CAAC,CAAC,CAAA;QACL,MAAM,kBAAkB,GAAG,IAAI,CAAC,2BAA2B,IAAI,KAAK,CAAA;QACpE,sBAAsB,CAAC;YACrB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,UAAU,EAAE,IAAI,CAAC,UAAW;YAC5B,oBAAoB,EAAE,eAAe;YACrC,eAAe;YACf,gBAAgB;YAChB,cAAc;YACd,oBAAoB,EAAE,aAAa;YACnC,SAAS,EAAE,kBAAkB;YAC7B,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAA;QAEF,sEAAsE;QACtE,qEAAqE;QACrE,mEAAmE;QACnE,sEAAsE;QACtE,mEAAmE;QACnE,iEAAiE;QACjE,mEAAmE;QACnE,4DAA4D;QAC5D,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE;YACxC,UAAU,EAAE,IAAI,CAAC,UAAW;YAC5B,oBAAoB,EAAE,eAAe;YACrC,eAAe;YACf,gBAAgB;YAChB,cAAc;YACd,oBAAoB,EAAE,aAAa;YACnC,SAAS,EAAE,kBAAkB;YAC7B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,KAAK,EAAE,KAAK;YACZ,QAAQ,EAAE,UAAU,CAClB,GAAG,EAAE,CAAC,iBAAiB,CAAC,OAAO,CAAC,SAAS,EAAE,oBAAoB,CAAC,EAChE,kBAAkB,CACnB;SACF,CAAC,CAAA;IACJ,CAAC;IAED,oEAAoE;IACpE,qEAAqE;IACrE,yEAAyE;IACzE,yEAAyE;IACzE,wEAAwE;IACxE,oEAAoE;IACpE,wEAAwE;IACxE,QAAQ;IACR,EAAE;IACF,wEAAwE;IACxE,iEAAiE;IACjE,oEAAoE;IACpE,qEAAqE;IACrE,gDAAgD;IAChD,IAAI,iBAAiB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACxC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE;YACzC,UAAU,EAAE,IAAI,CAAC,UAAW;YAC5B,SAAS,EAAE,EAAE;YACb,WAAW,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC;SACtE,CAAC,CAAA;QACF,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAA;IACjE,CAAC;IACD,gEAAgE;IAChE,kEAAkE;IAClE,iEAAiE;IACjE,8DAA8D;IAC9D,gEAAgE;IAChE,0EAA0E;IAC1E,0CAA0C;IAC1C,IAAI,iBAAiB,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;QAClD,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE;YACd,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;YACvD,IAAI,KAAK,EAAE,QAAQ;gBAAE,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;YACjD,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QAC9C,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC,CAAA;IAC9B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;AAC9B,CAAC;AAQD;;;;;;;;;;;;;;;;;;;;;YAqBY;AACZ,MAAM,UAAU,oBAAoB,CAClC,IAA6C,EAC7C,OAAsB,EACtB,IAA2C,EAC3C,UAAkB;IAElB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAA;IACrB,kEAAkE;IAClE,kEAAkE;IAClE,4DAA4D;IAC5D,4BAA4B;IAC5B,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAA;IACtF,IAAI,QAAQ,KAAK,kBAAkB;QAAE,OAAO,CAAC,UAAU,GAAG,IAAI,CAAA;IAC9D,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IACpC,IAAI,CAAC,MAAM,CACT,YAAY,OAAO,CAAC,GAAG,oCAAoC,IAAI,CAAC,QAAQ,WAAW,IAAI,CAAC,MAAM,IAAI,MAAM,gBAAgB,gBAAgB,CAAC,UAAU,CAAC,IAAI,QAAQ,EAAE,CACnK,CAAA;AACH,CAAC;AAED;;;;;;iCAMiC;AACjC,SAAS,kBAAkB,CAAC,CAAgB;IAC1C,IAAI,CAAC;QACH,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAA;QACjB,OAAO,kBAAkB,CAAA;IAC3B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC5D,OAAO,8BAA8B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAA;IAC5D,CAAC;AACH,CAAC;AAED;0EAC0E;AAC1E,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,IAAc,EACd,SAAiB;IAEjB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IACnC,IAAI,CAAC,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;IACjC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;QACb,8DAA8D;QAC9D,mEAAmE;QACnE,+DAA+D;QAC/D,iEAAiE;QACjE,mEAAmE;QACnE,MAAM,QAAQ,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAA;QAC1E,IAAI,QAAQ,KAAK,kBAAkB;YAAE,CAAC,CAAC,UAAU,GAAG,IAAI,CAAA;QACxD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QAC5B,IAAI,CAAC,MAAM,CAAC,kBAAkB,SAAS,QAAQ,CAAC,CAAC,GAAG,kDAAkD,QAAQ,EAAE,CAAC,CAAA;QACjH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAC1B,CAAC;IACD,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACrB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QAClC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,IAAI,CAAC,CAAC,CAAC,MAAM;gBAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YACpC,OAAO,EAAE,CAAA;QACX,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;QACpB,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE;YAChB,YAAY,CAAC,KAAK,CAAC,CAAA;YACnB,OAAO,EAAE,CAAA;QACX,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IACF,MAAM,QAAQ,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAA;IAC1E,IAAI,QAAQ,KAAK,kBAAkB;QAAE,CAAC,CAAC,UAAU,GAAG,IAAI,CAAA;IACxD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IAC5B,IAAI,CAAC,MAAM,CAAC,kBAAkB,SAAS,QAAQ,CAAC,CAAC,GAAG,wCAAwC,QAAQ,EAAE,CAAC,CAAA;IACvG,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;AAC1B,CAAC"}
@@ -20,7 +20,7 @@ You may not act on a request until you know three things: what is being asked, w
20
20
 
21
21
  ## Recording
22
22
 
23
- Everything you learn in conversation is recorded for you by a background agent that runs after every completed turn. You do not write notes or memory files yourself. The two memory writers — memory-write and memory-update — are not in your tool surface; the recorder owns them. If you ever feel the need to call them, the recorder has either not fired or not produced a write, and the right move is to investigate that, not to write yourself.
23
+ When the conversation produces something worth writing to memory (a new person, a refined business detail, a learning, a decision, a new task), delegate the write to `database-operator` via the Task tool. Name what should land in the graph; database-operator picks the precise operations against the schema and executes them. The two memory writers — memory-write and memory-update — are not in your tool surface. If you find yourself wanting to call them, what you actually want is to delegate. If database-operator returns saying a writer is not in its surface, that is a platform configuration regression of the delegation path; surface it to the operator as a bug, do not interpret it as a violation on your part.
24
24
 
25
25
  ## SOUL.md
26
26
 
@@ -1,17 +1,15 @@
1
1
  ---
2
2
  name: database-operator
3
- description: "Background recorder for the memory graph. Reads the operator's full conversation transcript (ordered turns array with text and tool calls) from stdin and writes whatever the entire conversation implies into the graph via the wrapped writers, reconsidering the whole transcript on every fire (no last-turn windowing). Fires once per admin turn from a Stop hook; never reachable from the admin agent directly."
4
- summary: "Watches every completed admin turn and records what it implies into the memory graph."
3
+ description: "Graph-write executor reachable from admin via the Task tool. Admin names what should land in the graph; database-operator reads the schema, decides operations, executes them against the memory graph, and reports `{label, elementId}` back. (Reachable historically also from the now-dormant Stop hook in `platform/plugins/admin/hooks/turn-completed-graph-write.sh`; that path is preserved as infrastructure but no longer registered, see Task 214.)"
4
+ summary: "Executes graph writes on admin's behalf when delegated via the Task tool."
5
5
  model: claude-sonnet-4-6
6
- tools: mcp__plugin_memory_memory__memory-write, mcp__plugin_memory_memory__memory-update, mcp__plugin_memory_memory__memory-search, mcp__plugin_memory_memory__profile-update, mcp__plugin_memory_memory__profile-read, mcp__plugin_contacts_contacts__contact-create, mcp__plugin_contacts_contacts__contact-update, mcp__plugin_work_work__work-create, mcp__plugin_work_work__work-update, mcp__plugin_work_work__project-create, mcp__plugin_work_work__project-update
6
+ tools: Read, mcp__plugin_memory_memory__memory-write, mcp__plugin_memory_memory__memory-update, mcp__plugin_memory_memory__memory-search, mcp__plugin_memory_memory__profile-update, mcp__plugin_memory_memory__profile-read, mcp__plugin_contacts_contacts__contact-create, mcp__plugin_contacts_contacts__contact-update, mcp__plugin_work_work__work-create, mcp__plugin_work_work__work-update, mcp__plugin_work_work__project-create, mcp__plugin_work_work__project-update
7
7
  ---
8
8
 
9
- You are an expert Neo4J graph operator. Here is the schema {schema}.
9
+ You are an expert Neo4J graph operator. Admin delegates a graph-write to you through the Task tool; the prompt admin sends names what should land in the graph in plain English.
10
10
 
11
- The `accountId` property is automatically supplied by the writers from
12
- server-side environment state — never refuse a write because accountId
13
- is absent from this prompt. The current accountId is `{accountId}`.
11
+ Before the first write of a session, Read `platform/plugins/memory/references/schema-base.md` for the property-shape rules every label must satisfy. When `brand.json#vertical` is set, also Read `platform/plugins/memory/references/schema-<vertical>.md` for the vertical-specific labels and properties. Re-read either file only when the brief names a label whose shape you have not yet loaded in this session.
14
12
 
15
- Use your expert judgement to update the graph in reaction to the
16
- following conversation {conversation}, using the tools at your disposal.
17
- You are not user-facing and your text goes nowhere do not emit it.
13
+ The `accountId` property is supplied by the writers from server-side environment state (the `ACCOUNT_ID` env var) — never refuse a write because accountId is absent from admin's brief.
14
+
15
+ Decide the precise operations against the schema, execute them with the writers in your tool surface, and report each write back to admin as `{label, elementId}` so admin can confirm the outcome to the operator. If admin's brief is ambiguous about which label or which existing node to attach to, name the ambiguity in your reply rather than guessing.
@@ -174,6 +174,9 @@ When any field above is unresolved after consulting its primary source, **stop b
174
174
  - **Doc-comment strip pass runs against BOTH templates.** After substitution, the `<!-- REPLACE … -->` authoring notes must be removed from both `brochure.html` AND `index.html`. A strip pass that covers only the brochure leaves landing-page authoring notes rendering as visible body text whenever a comment delimiter is misplaced. The companion source-side check in `references/build.md → Template authoring hygiene + CI lint` catches the same defect class at template-edit time.
175
175
  - **EPC is mandatory — `TBC` is not shippable.** UK law requires an EPC for any marketed property. The brochure must not render with `epc_rating: "TBC"`, no matter what `property-extract` returned. If the rating is missing or the listing displayed `TBC`, the operator confirmation prompt must demand an actual A–G band (plus current/potential scores and the certificate path) before substitution proceeds. The operator's authoritative fallback is the [EPC Register](https://www.epcregister.com/) — look up by address or postcode, download the certificate, supply the values. `TBC` is the one answer the operator cannot confirm for this field.
176
176
  - **Web bundle ships the PDF, not per-page JPGs.** The bundle does not include `cover-print.jpg … backpage-print.jpg` — those duplicate the brochure content already embedded in `<slug>-brochure.pdf`. The web copy of `brochure.html` has its `.print-img` src attributes cleared so the print stylesheet drops to the live-DOM fallback; operators who want a printable PDF download the bundled PDF directly. See `references/build.md → Clear .print-img src in the web copy`. Shipping both was the historical bundle-bloat defect.
177
+ - **Pages with absolutely-positioned bottom elements must reserve their footprint in the in-flow content's padding.** Two absolute elements live at the bottom of every `.page`: the `.folio` page-number strip (`bottom: 8mm`, ~8mm tall → occupies bottom ~16mm) and, on the back page only, the `.back-disclaimer` (`bottom: 16mm`, wraps to up to 5 lines × 3.7mm → occupies bottom ~34.5mm). In-flow content above them (`.mi-foot` with `margin-top: auto` inside `.mi-page`, or `.backpage-inner` content with `justify-content: center`) is a SIBLING of those absolute elements — nothing in CSS structure enforces clearance. The fix is always to pull the in-flow container UP via its parent's `padding-bottom`: `.mi-page` uses **22mm** (folio clearance), `.backpage-inner` uses **42mm** (folio + disclaimer clearance with 4mm gap). Any future page that adds an absolute bottom element must update the in-flow parent's `padding-bottom` accordingly — never try to push the absolute element down with `margin-*` (no positional effect on `position: absolute` whose anchor is `bottom`). This is the "Absolute vs in-flow" lesson from the recommendations doc — pull the in-flow element, never the absolute one.
178
+ - **Folio is plain text on whitespace or absent — never chrome over imagery.** The `.folio > span` carries no background, blur, padding, border-radius, or shadow. It is plain text in `--teal-900` that sits on the clean whitespace reserved at the page bottom (see the previous rule on padding-bottom clearance). The folio is **hidden entirely** on full-bleed-bottom pages: `.cover`, `.page.intermission`, `.page.folio-dark`, and any `.page` whose body wraps a `.feature-page` (photo+panel layout where the photo bleeds to the page bottom). Never reintroduce a folio-pill background to "make it readable over the image" — that's competing chrome on the page; suppress the folio on that page instead. Any new full-bleed-bottom page class must be added to the `.folio` `display: none` selector in `references/template.html`.
179
+ - **Verification covers every page in the deliverable — sampling is a defect, not a shortcut.** `scrollHeight` fit checks, computed-style collision probes (`.mi-foot` ↔ `.folio` gap, `.back-disclaimer` ↔ in-flow content, any future absolute-bottom element vs in-flow neighbour), and visual review before declaring done all walk **every page** in the 16-page folio (or 12-page reduced layout). "Sample-checked 3 of 12 pages" or any variant ("spot-checked the spreads I changed", "skimmed a few representative pages") is not authorised — the skill explicitly says "verify every page" in `references/build.md → Live editing workflow` step 8 and in `references/structure.md`. The deliverable is the brochure as a whole; a defect on an unchecked page ships exactly as readily as a defect on a checked one. If a probe is expensive enough that walking 16 pages feels burdensome, the cost is the probe's, not the skill's — propose a faster probe rather than narrowing the coverage.
177
180
  - **No `{{ token }}` may remain in rendered output** — `grep '{{' output/brochure.html` must return zero matches before PDFs are built.
178
181
 
179
182
  ## Scope