@homeflare/alchemy 0.39.0 → 0.41.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 (279) hide show
  1. package/README.md +10 -8
  2. package/dist/caddy/index.js.map +2 -2
  3. package/dist/ceph/auth-entity.d.ts +34 -0
  4. package/dist/ceph/auth-entity.d.ts.map +1 -0
  5. package/dist/ceph/ceph-argv-config.d.ts +10 -0
  6. package/dist/ceph/ceph-argv-config.d.ts.map +1 -0
  7. package/dist/ceph/ceph-argv.d.ts +19 -0
  8. package/dist/ceph/ceph-argv.d.ts.map +1 -0
  9. package/dist/ceph/ceph-auth-form.d.ts +54 -0
  10. package/dist/ceph/ceph-auth-form.d.ts.map +1 -0
  11. package/dist/ceph/ceph-auth-parse.d.ts +56 -0
  12. package/dist/ceph/ceph-auth-parse.d.ts.map +1 -0
  13. package/dist/ceph/ceph-auth-reconcile.d.ts +35 -0
  14. package/dist/ceph/ceph-auth-reconcile.d.ts.map +1 -0
  15. package/dist/ceph/ceph-config-options.d.ts +23 -0
  16. package/dist/ceph/ceph-config-options.d.ts.map +1 -0
  17. package/dist/ceph/ceph-key-leak-assert.d.ts +25 -0
  18. package/dist/ceph/ceph-key-leak-assert.d.ts.map +1 -0
  19. package/dist/ceph/ceph-transport.d.ts +37 -0
  20. package/dist/ceph/ceph-transport.d.ts.map +1 -0
  21. package/dist/ceph/fake-ceph-dial.d.ts +35 -0
  22. package/dist/ceph/fake-ceph-dial.d.ts.map +1 -0
  23. package/dist/ceph/index.d.ts +13 -0
  24. package/dist/ceph/index.d.ts.map +1 -0
  25. package/dist/ceph/index.js +1610 -0
  26. package/dist/ceph/index.js.map +38 -0
  27. package/dist/index.d.ts +1 -0
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/launchd/fake-runner.d.ts.map +1 -1
  30. package/dist/launchd/index.d.ts +1 -1
  31. package/dist/launchd/index.d.ts.map +1 -1
  32. package/dist/launchd/index.js +7 -1
  33. package/dist/launchd/index.js.map +5 -5
  34. package/dist/launchd/local-runner.d.ts.map +1 -1
  35. package/dist/launchd/runner.d.ts +21 -0
  36. package/dist/launchd/runner.d.ts.map +1 -1
  37. package/dist/launchd/sudo-runner.d.ts.map +1 -1
  38. package/dist/linux/directory-lifecycle.d.ts.map +1 -1
  39. package/dist/linux/fake-linux-host.d.ts.map +1 -1
  40. package/dist/linux/index.d.ts +1 -1
  41. package/dist/linux/index.d.ts.map +1 -1
  42. package/dist/linux/index.js +16 -4
  43. package/dist/linux/index.js.map +7 -7
  44. package/dist/linux/ssh-runner.d.ts.map +1 -1
  45. package/dist/linux/sudo-runner.d.ts.map +1 -1
  46. package/dist/opnsense/alias-form.d.ts +14 -1
  47. package/dist/opnsense/alias-form.d.ts.map +1 -1
  48. package/dist/opnsense/alias.d.ts +1 -1
  49. package/dist/opnsense/alias.d.ts.map +1 -1
  50. package/dist/opnsense/group-form.d.ts +8 -2
  51. package/dist/opnsense/group-form.d.ts.map +1 -1
  52. package/dist/opnsense/group.d.ts +1 -1
  53. package/dist/opnsense/group.d.ts.map +1 -1
  54. package/dist/opnsense/index.js +15 -7
  55. package/dist/opnsense/index.js.map +7 -7
  56. package/dist/opnsense/wire.d.ts +42 -12
  57. package/dist/opnsense/wire.d.ts.map +1 -1
  58. package/dist/proxmox/index.js +62 -39
  59. package/dist/proxmox/index.js.map +8 -7
  60. package/dist/proxmox/qemu-volume.d.ts +12 -2
  61. package/dist/proxmox/qemu-volume.d.ts.map +1 -1
  62. package/dist/proxmox/storage-form.d.ts +28 -3
  63. package/dist/proxmox/storage-form.d.ts.map +1 -1
  64. package/dist/proxmox/storage-plugin-options.d.ts +2 -0
  65. package/dist/proxmox/storage-plugin-options.d.ts.map +1 -0
  66. package/dist/proxmox/storage-wire.d.ts +28 -1
  67. package/dist/proxmox/storage-wire.d.ts.map +1 -1
  68. package/dist/proxmox/storage.d.ts +6 -1
  69. package/dist/proxmox/storage.d.ts.map +1 -1
  70. package/dist/release/index.d.ts +1 -1
  71. package/dist/release/index.d.ts.map +1 -1
  72. package/dist/release/index.js.map +2 -2
  73. package/dist/talos/credentials-write.d.ts +46 -0
  74. package/dist/talos/credentials-write.d.ts.map +1 -0
  75. package/dist/talos/credentials.d.ts +51 -9
  76. package/dist/talos/credentials.d.ts.map +1 -1
  77. package/dist/talos/fake-process.d.ts +56 -0
  78. package/dist/talos/fake-process.d.ts.map +1 -0
  79. package/dist/talos/index.d.ts +19 -4
  80. package/dist/talos/index.d.ts.map +1 -1
  81. package/dist/talos/index.js +357 -173
  82. package/dist/talos/index.js.map +16 -10
  83. package/dist/talos/kubeconfig-attrs.d.ts +4 -0
  84. package/dist/talos/kubeconfig-attrs.d.ts.map +1 -0
  85. package/dist/talos/kubeconfig.d.ts +41 -23
  86. package/dist/talos/kubeconfig.d.ts.map +1 -1
  87. package/dist/talos/machine-config-fixtures.d.ts +60 -0
  88. package/dist/talos/machine-config-fixtures.d.ts.map +1 -0
  89. package/dist/talos/machine-config-poll.d.ts +43 -0
  90. package/dist/talos/machine-config-poll.d.ts.map +1 -0
  91. package/dist/talos/machine-config-read.d.ts +49 -0
  92. package/dist/talos/machine-config-read.d.ts.map +1 -0
  93. package/dist/talos/resource.d.ts +18 -0
  94. package/dist/talos/resource.d.ts.map +1 -1
  95. package/dist/talos/talos-bootstrap-etcd.d.ts +38 -0
  96. package/dist/talos/talos-bootstrap-etcd.d.ts.map +1 -0
  97. package/dist/talos/talos-bootstrap.d.ts +87 -0
  98. package/dist/talos/talos-bootstrap.d.ts.map +1 -1
  99. package/dist/talos/talos-cluster-health.d.ts +43 -1
  100. package/dist/talos/talos-cluster-health.d.ts.map +1 -1
  101. package/dist/talos/talos-errors.d.ts +68 -0
  102. package/dist/talos/talos-errors.d.ts.map +1 -0
  103. package/dist/talos/talos-machine-config.d.ts +51 -15
  104. package/dist/talos/talos-machine-config.d.ts.map +1 -1
  105. package/dist/talos/talosctl.d.ts +7 -0
  106. package/dist/talos/talosctl.d.ts.map +1 -1
  107. package/dist/talos/values.d.ts +23 -3
  108. package/dist/talos/values.d.ts.map +1 -1
  109. package/dist/unifi/acl-rule-drift.d.ts +22 -0
  110. package/dist/unifi/acl-rule-drift.d.ts.map +1 -0
  111. package/dist/unifi/acl-rule-form.d.ts +90 -0
  112. package/dist/unifi/acl-rule-form.d.ts.map +1 -0
  113. package/dist/unifi/acl-rule-ordering-form.d.ts +49 -0
  114. package/dist/unifi/acl-rule-ordering-form.d.ts.map +1 -0
  115. package/dist/unifi/acl-rule-ordering.d.ts +54 -0
  116. package/dist/unifi/acl-rule-ordering.d.ts.map +1 -0
  117. package/dist/unifi/acl-rule.d.ts +49 -0
  118. package/dist/unifi/acl-rule.d.ts.map +1 -0
  119. package/dist/unifi/dns-policy-drift.d.ts +21 -0
  120. package/dist/unifi/dns-policy-drift.d.ts.map +1 -0
  121. package/dist/unifi/dns-policy-form.d.ts +97 -0
  122. package/dist/unifi/dns-policy-form.d.ts.map +1 -0
  123. package/dist/unifi/dns-policy.d.ts +55 -0
  124. package/dist/unifi/dns-policy.d.ts.map +1 -0
  125. package/dist/unifi/firewall-policy-drift.d.ts +26 -0
  126. package/dist/unifi/firewall-policy-drift.d.ts.map +1 -0
  127. package/dist/unifi/firewall-policy-form.d.ts +102 -0
  128. package/dist/unifi/firewall-policy-form.d.ts.map +1 -0
  129. package/dist/unifi/firewall-policy-ordering-form.d.ts +66 -0
  130. package/dist/unifi/firewall-policy-ordering-form.d.ts.map +1 -0
  131. package/dist/unifi/firewall-policy-ordering.d.ts +57 -0
  132. package/dist/unifi/firewall-policy-ordering.d.ts.map +1 -0
  133. package/dist/unifi/firewall-policy.d.ts +57 -0
  134. package/dist/unifi/firewall-policy.d.ts.map +1 -0
  135. package/dist/unifi/index.d.ts +7 -0
  136. package/dist/unifi/index.d.ts.map +1 -1
  137. package/dist/unifi/index.js +588 -3
  138. package/dist/unifi/index.js.map +24 -4
  139. package/dist/unifi/paginate.d.ts +0 -12
  140. package/dist/unifi/paginate.d.ts.map +1 -1
  141. package/dist/unifi/providers.d.ts +1 -1
  142. package/dist/unifi/providers.d.ts.map +1 -1
  143. package/dist/unifi/scan-source.d.ts +11 -0
  144. package/dist/unifi/scan-source.d.ts.map +1 -0
  145. package/dist/unifi/traffic-matching-list-drift.d.ts +22 -0
  146. package/dist/unifi/traffic-matching-list-drift.d.ts.map +1 -0
  147. package/dist/unifi/traffic-matching-list-form.d.ts +56 -0
  148. package/dist/unifi/traffic-matching-list-form.d.ts.map +1 -0
  149. package/dist/unifi/traffic-matching-list.d.ts +51 -0
  150. package/dist/unifi/traffic-matching-list.d.ts.map +1 -0
  151. package/dist/unifi/wifi-broadcast-drift.d.ts +22 -0
  152. package/dist/unifi/wifi-broadcast-drift.d.ts.map +1 -0
  153. package/dist/unifi/wifi-broadcast-form.d.ts +127 -0
  154. package/dist/unifi/wifi-broadcast-form.d.ts.map +1 -0
  155. package/dist/unifi/wifi-broadcast.d.ts +73 -0
  156. package/dist/unifi/wifi-broadcast.d.ts.map +1 -0
  157. package/docs/distilled-interim.md +7 -0
  158. package/docs/launchd.md +5 -3
  159. package/docs/provider-standard.md +5 -1
  160. package/docs/talos-argocd-dogfood.md +160 -0
  161. package/docs/unifi-acl-rule.md +122 -0
  162. package/docs/unifi-dns-policy.md +75 -0
  163. package/docs/unifi-firewall-policy.md +109 -0
  164. package/docs/unifi-traffic-matching-list.md +82 -0
  165. package/docs/unifi-wifi.md +120 -0
  166. package/docs/unifi.md +10 -5
  167. package/package.json +7 -3
  168. package/src/ceph/auth-entity.ts +74 -0
  169. package/src/ceph/ceph-argv-config.ts +78 -0
  170. package/src/ceph/ceph-argv.test.ts +226 -0
  171. package/src/ceph/ceph-argv.ts +189 -0
  172. package/src/ceph/ceph-auth-form.test.ts +103 -0
  173. package/src/ceph/ceph-auth-form.ts +107 -0
  174. package/src/ceph/ceph-auth-parse.test.ts +155 -0
  175. package/src/ceph/ceph-auth-parse.ts +121 -0
  176. package/src/ceph/ceph-auth-reconcile-secrecy.test.ts +82 -0
  177. package/src/ceph/ceph-auth-reconcile.test.ts +233 -0
  178. package/src/ceph/ceph-auth-reconcile.ts +119 -0
  179. package/src/ceph/ceph-config-options.test.ts +44 -0
  180. package/src/ceph/ceph-config-options.ts +36 -0
  181. package/src/ceph/ceph-key-leak-assert.ts +35 -0
  182. package/src/ceph/ceph-no-output-logging.test.ts +52 -0
  183. package/src/ceph/ceph-transport.test.ts +125 -0
  184. package/src/ceph/ceph-transport.ts +117 -0
  185. package/src/ceph/fake-ceph-dial.ts +55 -0
  186. package/src/ceph/index.ts +12 -0
  187. package/src/index.ts +1 -0
  188. package/src/launchd/fake-runner.ts +2 -0
  189. package/src/launchd/index.ts +8 -1
  190. package/src/launchd/local-runner.ts +16 -1
  191. package/src/launchd/runner.ts +22 -0
  192. package/src/launchd/sudo-runner.ts +3 -0
  193. package/src/linux/directory-lifecycle.ts +18 -3
  194. package/src/linux/directory-sudo.test.ts +59 -0
  195. package/src/linux/directory.test.ts +34 -8
  196. package/src/linux/fake-linux-host.ts +2 -0
  197. package/src/linux/index.ts +1 -0
  198. package/src/linux/ssh-runner.ts +4 -0
  199. package/src/linux/sudo-runner.ts +3 -0
  200. package/src/opnsense/alias-form.test.ts +24 -12
  201. package/src/opnsense/alias-form.ts +20 -7
  202. package/src/opnsense/alias.test.ts +13 -6
  203. package/src/opnsense/alias.ts +16 -10
  204. package/src/opnsense/group-form.test.ts +12 -8
  205. package/src/opnsense/group-form.ts +13 -4
  206. package/src/opnsense/group.test.ts +18 -7
  207. package/src/opnsense/group.ts +10 -3
  208. package/src/opnsense/wire.ts +57 -12
  209. package/src/proxmox/qemu-volume.test.ts +153 -4
  210. package/src/proxmox/qemu-volume.ts +71 -14
  211. package/src/proxmox/storage-form.ts +48 -8
  212. package/src/proxmox/storage-plugin-options.ts +45 -0
  213. package/src/proxmox/storage-update.test.ts +183 -0
  214. package/src/proxmox/storage-wire.ts +54 -7
  215. package/src/proxmox/storage.ts +18 -6
  216. package/src/release/index.ts +1 -0
  217. package/src/talos/credentials-write.test.ts +81 -0
  218. package/src/talos/credentials-write.ts +95 -0
  219. package/src/talos/credentials.test.ts +157 -0
  220. package/src/talos/credentials.ts +160 -90
  221. package/src/talos/fake-process.ts +94 -0
  222. package/src/talos/index.ts +39 -4
  223. package/src/talos/kubeconfig-attrs.ts +55 -0
  224. package/src/talos/kubeconfig.test.ts +256 -0
  225. package/src/talos/kubeconfig.ts +170 -90
  226. package/src/talos/machine-config-fixtures.ts +86 -0
  227. package/src/talos/machine-config-poll.test.ts +57 -0
  228. package/src/talos/machine-config-poll.ts +82 -0
  229. package/src/talos/machine-config-read.ts +118 -0
  230. package/src/talos/resource.ts +19 -0
  231. package/src/talos/secrets-gate.test.ts +63 -0
  232. package/src/talos/talos-bootstrap-etcd.ts +71 -0
  233. package/src/talos/talos-bootstrap.test.ts +218 -0
  234. package/src/talos/talos-bootstrap.ts +151 -45
  235. package/src/talos/talos-cluster-health.test.ts +143 -0
  236. package/src/talos/talos-cluster-health.ts +91 -28
  237. package/src/talos/talos-errors.ts +85 -0
  238. package/src/talos/talos-machine-config.test.ts +189 -0
  239. package/src/talos/talos-machine-config.ts +102 -88
  240. package/src/talos/talosctl.ts +8 -0
  241. package/src/talos/values.test.ts +34 -6
  242. package/src/talos/values.ts +41 -7
  243. package/src/unifi/acl-rule-drift.ts +57 -0
  244. package/src/unifi/acl-rule-form.ts +135 -0
  245. package/src/unifi/acl-rule-ordering-form.ts +79 -0
  246. package/src/unifi/acl-rule-ordering.test.ts +141 -0
  247. package/src/unifi/acl-rule-ordering.ts +70 -0
  248. package/src/unifi/acl-rule.test.ts +183 -0
  249. package/src/unifi/acl-rule.ts +61 -0
  250. package/src/unifi/discriminated-filter-decode.test.ts +134 -0
  251. package/src/unifi/dns-policy-drift.ts +48 -0
  252. package/src/unifi/dns-policy-form.ts +142 -0
  253. package/src/unifi/dns-policy.test.ts +154 -0
  254. package/src/unifi/dns-policy.ts +67 -0
  255. package/src/unifi/firewall-policy-drift.test.ts +151 -0
  256. package/src/unifi/firewall-policy-drift.ts +55 -0
  257. package/src/unifi/firewall-policy-filter-roundtrip.test.ts +143 -0
  258. package/src/unifi/firewall-policy-form.ts +146 -0
  259. package/src/unifi/firewall-policy-ordering-form.ts +111 -0
  260. package/src/unifi/firewall-policy-ordering.test.ts +185 -0
  261. package/src/unifi/firewall-policy-ordering.ts +87 -0
  262. package/src/unifi/firewall-policy.test.ts +183 -0
  263. package/src/unifi/firewall-policy.ts +73 -0
  264. package/src/unifi/index.ts +63 -0
  265. package/src/unifi/paginate.test.ts +24 -0
  266. package/src/unifi/paginate.ts +15 -3
  267. package/src/unifi/providers.ts +19 -1
  268. package/src/unifi/scan-source.ts +64 -0
  269. package/src/unifi/traffic-matching-list-drift.ts +40 -0
  270. package/src/unifi/traffic-matching-list-form.ts +77 -0
  271. package/src/unifi/traffic-matching-list.test.ts +202 -0
  272. package/src/unifi/traffic-matching-list.ts +78 -0
  273. package/src/unifi/wifi-broadcast-details-call.test.ts +92 -0
  274. package/src/unifi/wifi-broadcast-drift.ts +69 -0
  275. package/src/unifi/wifi-broadcast-form.ts +211 -0
  276. package/src/unifi/wifi-broadcast-secrets.test.ts +145 -0
  277. package/src/unifi/wifi-broadcast.test.ts +155 -0
  278. package/src/unifi/wifi-broadcast.ts +90 -0
  279. package/src/unifi/write-op-reference.test.ts +8 -54
@@ -1,12 +1,22 @@
1
1
  export type Disk = {
2
- /** `fresh`: either new-disk spelling above. `volume`: an existing volume, `storage:volname,...`. */
2
+ /** `fresh`: a new-disk spelling (`storage:GiB`, `storage:cloudinit`, or `storage:0,import-from=...`
3
+ * possibly with more options). `volume`: an existing volume, `storage:volname,...`. */
3
4
  readonly kind: 'fresh' | 'volume';
4
5
  readonly source: string;
5
6
  readonly volname: string;
6
7
  readonly size: string | undefined;
7
8
  readonly options: Map<string, string>;
8
9
  };
9
- /** `storage:volname,k=v,...` (or one of the two "fresh" spellings) into its comparable parts. */
10
+ /**
11
+ * `storage:volname,k=v,...` (or one of the "fresh" spellings) into its comparable parts.
12
+ * ⚠️ THE IMPORT SPELLING IS DETECTED AFTER THE GENERAL SPLIT, NOT BY ITS OWN REGEX: `import-from`'s
13
+ * value can itself contain a colon (e.g. `cephfs-tb4:import/talos-factory.raw`) and other options
14
+ * can come before or after it, so a regex anchored on `:0,import-from=` right after the colon (as
15
+ * the first cut had) misses that ordering and swallows everything after it into one opaque match.
16
+ * Splitting on commas like any `volume` spelling first, THEN checking for a literal `"0"` volname
17
+ * plus an `import-from` key among the parsed options, catches every ordering and keeps every other
18
+ * declared option (`iothread=1`, `discard=on`, …) visible to `judgeDisk` instead of swallowed.
19
+ */
10
20
  export declare const parseDisk: (text: string) => Disk;
11
21
  export type DiskVerdict = {
12
22
  readonly refuse?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"qemu-volume.d.ts","sourceRoot":"","sources":["../../src/proxmox/qemu-volume.ts"],"names":[],"mappings":"AA8BA,MAAM,MAAM,IAAI,GAAG;IACjB,oGAAoG;IACpG,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC,CAAC;AAEF,iGAAiG;AACjG,eAAO,MAAM,SAAS,SAAU,MAAM,KAAG,IAwBxC,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,iGAAiG;IACjG,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAmBF,eAAO,MAAM,SAAS,QAAS,MAAM,YAAY,MAAM,QAAQ,MAAM,KAAG,WA+BvE,CAAC"}
1
+ {"version":3,"file":"qemu-volume.d.ts","sourceRoot":"","sources":["../../src/proxmox/qemu-volume.ts"],"names":[],"mappings":"AA+DA,MAAM,MAAM,IAAI,GAAG;IACjB;4FACwF;IACxF,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,SAAS,SAAU,MAAM,KAAG,IA4BxC,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,iGAAiG;IACjG,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAmBF,eAAO,MAAM,SAAS,QAAS,MAAM,YAAY,MAAM,QAAQ,MAAM,KAAG,WAyCvE,CAAC"}
@@ -5,6 +5,7 @@
5
5
  */
6
6
  import type * as storage from '@distilled.cloud/proxmox/storage';
7
7
  import type { StorageProps } from './storage.ts';
8
+ import type { StorageAttributes } from './storage-wire.ts';
8
9
  export declare const STORAGE_CREATE = "pve:POST /storage";
9
10
  export declare const STORAGE_UPDATE = "pve:PUT /storage/{storage}";
10
11
  /**
@@ -26,6 +27,12 @@ export type StorageLocator = Record<string, string> & {
26
27
  keyring?: never;
27
28
  'encryption-key'?: never;
28
29
  };
30
+ /**
31
+ * The 7 fields `mutable()` reads, narrowed out of `StorageProps` — not `StorageProps` itself, so
32
+ * a partial diff (storage-wire.ts's `changedProps`, which carries none of `storage`/`locator`/
33
+ * `target`) can satisfy this type directly.
34
+ */
35
+ export type MutableFields = Pick<StorageProps, 'comment' | 'content' | 'disable' | 'nodes' | 'preallocation' | 'prune-backups' | 'shared'>;
29
36
  /**
30
37
  * ⚠️ THE BAG IS SPREAD FIRST SO NOTHING IN IT CAN SHADOW A FIELD THIS RESOURCE MANAGES. A stray
31
38
  * `storage` or `type` in a locator would otherwise rename the object being created, and PVE
@@ -39,8 +46,19 @@ export declare const createForm: (props: StorageProps) => Record<string, string>
39
46
  * (`PutStorageRequest` has no `type`, and the plugin locator fields it does carry are for a
40
47
  * different purpose: moving an existing volume, not re-pointing the definition), and comparing
41
48
  * either could only plan an update that no write can apply: a plan that reports work forever.
49
+ *
50
+ * ★ PARTIAL ON A KNOWN LIVE OBJECT — THE FIX FOR THE MEASURED BUG. `live === undefined` means
51
+ * there is no live row to diff against yet (`diff()`'s own early sanity check, run before any
52
+ * read; and the "about to create" branch in `reconcile()`) and this returns the FULL declared
53
+ * set, same as before this change. Once `live` is a real read, only `changedProps`
54
+ * (storage-wire.ts) — the declared fields that actually differ from what PVE just reported —
55
+ * reach the wire. Before this, `reconcile` PUT the full declared set whenever ANYTHING
56
+ * differed, so a declared `shared` that already MATCHED live still rode along on every update;
57
+ * for `storage-cephfs-tb4` (`content` was the only real drift, measured 2026-09-27) that meant
58
+ * sending `shared` to a plugin whose own `options()` never accepts it (storage-plugin-options.ts
59
+ * has the vendor citation), and PVE answered `unexpected property 'shared'`.
42
60
  */
43
- export declare const updateForm: (props: StorageProps) => Record<string, string>;
61
+ export declare const updateForm: (props: StorageProps, live: StorageAttributes | undefined) => Record<string, string>;
44
62
  /**
45
63
  * The actual `createStorage` call body — `createForm`, translated once. See `underscored`.
46
64
  * ⚠️ `as unknown as` — same load-bearing cast as `locatorForm`'s own ⚠️: a plain
@@ -49,6 +67,13 @@ export declare const updateForm: (props: StorageProps) => Record<string, string>
49
67
  * interface's own (all-optional-but-two) properties.
50
68
  */
51
69
  export declare const toDistilledCreate: (props: StorageProps) => storage.CreateStorageRequest;
52
- /** The actual `putStorage` call body — `updateForm`, translated once. See `toDistilledCreate`. */
53
- export declare const toDistilledUpdate: (props: StorageProps) => storage.PutStorageRequest;
70
+ /**
71
+ * The actual `putStorage` call body — translated once. See `toDistilledCreate`.
72
+ * ⚠️ TAKES THE ALREADY-BUILT FORM, NOT `props`+`live` — storage.ts's `reconcile` computes
73
+ * `updateForm(news, before)` exactly ONCE and passes that SAME object here and to `guardWrite`,
74
+ * so the vendor-constraint check and the wire body can never diverge. Two independent calls to
75
+ * `updateForm`, each running its own `changedProps`, would still agree today, but "the guard
76
+ * checks what is actually sent" (the house rule this fix follows) should not depend on that.
77
+ */
78
+ export declare const toDistilledUpdate: (form: Record<string, string>) => storage.PutStorageRequest;
54
79
  //# sourceMappingURL=storage-form.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"storage-form.d.ts","sourceRoot":"","sources":["../../src/proxmox/storage-form.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,KAAK,OAAO,MAAM,kCAAkC,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGjD,eAAO,MAAM,cAAc,sBAAsB,CAAC;AAClD,eAAO,MAAM,cAAc,+BAA+B,CAAC;AAE3D;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG;IACpD,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,OAAO,CAAC,EAAE,KAAK,CAAC;IAChB,gBAAgB,CAAC,EAAE,KAAK,CAAC;CAC1B,CAAC;AA4EF;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,UAAW,YAAY,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAKpE,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,UAAU,UAAW,YAAY,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAGpE,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,UAAW,YAAY,KAAG,OAAO,CAAC,oBACW,CAAC;AAE5E,kGAAkG;AAClG,eAAO,MAAM,iBAAiB,UAAW,YAAY,KAAG,OAAO,CAAC,iBACQ,CAAC"}
1
+ {"version":3,"file":"storage-form.d.ts","sourceRoot":"","sources":["../../src/proxmox/storage-form.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,KAAK,OAAO,MAAM,kCAAkC,CAAC;AAEjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAG3D,eAAO,MAAM,cAAc,sBAAsB,CAAC;AAClD,eAAO,MAAM,cAAc,+BAA+B,CAAC;AAE3D;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG;IACpD,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,OAAO,CAAC,EAAE,KAAK,CAAC;IAChB,gBAAgB,CAAC,EAAE,KAAK,CAAC;CAC1B,CAAC;AA+CF;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,IAAI,CAC9B,YAAY,EACZ,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,eAAe,GAAG,eAAe,GAAG,QAAQ,CAC3F,CAAC;AAqCF;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,UAAW,YAAY,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAKpE,CAAC;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,UAAU,UACd,YAAY,QACb,iBAAiB,GAAG,SAAS,KAClC,MAAM,CAAC,MAAM,EAAE,MAAM,CAGtB,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,UAAW,YAAY,KAAG,OAAO,CAAC,oBACW,CAAC;AAE5E;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,SAAU,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAG,OAAO,CAAC,iBACd,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const sharedAccepted: (type: string) => boolean;
2
+ //# sourceMappingURL=storage-plugin-options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-plugin-options.d.ts","sourceRoot":"","sources":["../../src/proxmox/storage-plugin-options.ts"],"names":[],"mappings":"AA4CA,eAAO,MAAM,cAAc,SAAU,MAAM,KAAG,OAA0C,CAAC"}
@@ -6,6 +6,7 @@
6
6
  */
7
7
  import * as storage from '@distilled.cloud/proxmox/storage';
8
8
  import * as Effect from 'effect/Effect';
9
+ import type { MutableFields } from './storage-form.ts';
9
10
  import type { StorageProps } from './storage.ts';
10
11
  import { UNREADABLE, type Unreadable } from './unreadable-read.ts';
11
12
  export interface StorageAttributes {
@@ -52,9 +53,35 @@ export declare const readStorageOrFail: (props: StorageProps) => Effect.Effect<t
52
53
  export declare const readStorage: (props: StorageProps) => Effect.Effect<typeof UNREADABLE | StorageAttributes | undefined, import("@distilled.cloud/caddy").BadGateway | import("@distilled.cloud/caddy").BadRequest | import("@distilled.cloud/caddy").ConfigError | import("@distilled.cloud/caddy").Conflict | Error | import("@distilled.cloud/caddy").Forbidden | import("@distilled.cloud/caddy").GatewayTimeout | import("effect/unstable/http/HttpClientError").HttpClientError | import("@distilled.cloud/caddy").InternalServerError | import("@distilled.cloud/caddy").Locked | import("@distilled.cloud/caddy").NotFound | import("@distilled.cloud/proxmox/Errors").ParameterVerificationFailed | import("@distilled.cloud/proxmox/Errors").ProxmoxParseError | import("./distilled-pve.ts").PveClusterExhausted | import("@distilled.cloud/caddy").ServiceUnavailable | import("effect/Cause").TimeoutError | import("@distilled.cloud/caddy").TooManyRequests | import("@distilled.cloud/caddy").Unauthorized | import("@distilled.cloud/proxmox/Errors").UnknownProxmoxError | import("@distilled.cloud/caddy").UnprocessableEntity, import("effect/unstable/http/HttpClient").HttpClient>;
53
54
  /** `read`/`reconcile` return `Attributes | undefined`; only `diff` tells `UNREADABLE` apart. */
54
55
  export declare const dropUnreadable: (live: StorageAttributes | Unreadable | undefined) => StorageAttributes | undefined;
56
+ /**
57
+ * The declared fields (of the 7 `mutable()` — storage-form.ts — ever writes) whose value
58
+ * genuinely differs from what PVE just reported. `matches` below and storage-form.ts's
59
+ * `updateForm` share this one comparison, so the plan's noop/update verdict and the partial PUT
60
+ * body it sends can never disagree about what "changed" means for a list, a boolean or `shared`.
61
+ *
62
+ * ⛔ `shared` IS SKIPPED ENTIRELY FOR A TYPE THAT DOESN'T ACCEPT IT (storage-plugin-options.ts's
63
+ * `sharedAccepted`, vendor-cited there) — the same treatment `type` already gets below
64
+ * (create-only, never compared) and for the identical reason: PVE will never apply a `shared`
65
+ * PUT for cephfs/rbd/zfspool/… (it 500s, `unexpected property 'shared'` — the bug this family
66
+ * shipped with, measured 2026-09-27), so comparing it against a live value that can never move
67
+ * to match could only ever report `update` forever. Without this skip, `mutable()`'s own gate
68
+ * (storage-form.ts) would still keep `shared` out of the wire body, but `matches` would keep
69
+ * reporting drift for a field nothing can ever apply — a plan that never reaches noop.
70
+ */
71
+ export declare const changedProps: (live: StorageAttributes, props: StorageProps) => Partial<MutableFields>;
55
72
  /**
56
73
  * ⚠️ `type` IS NEVER COMPARED — CREATE-ONLY (`storage.ts`'s own `StorageProps.type` doc), so a
57
74
  * changed declaration plans `noop` on it, same as before the migration.
75
+ *
76
+ * ⛔ A DECLARED `shared` A TYPE CAN NEVER APPLY MUST FAIL LOUD, NOT NOOP FOREVER — PR 314's own
77
+ * red team, 2026-09-27. `changedProps` above leaves `shared` out of its result whenever the
78
+ * type is outside `sharedAccepted`, on purpose (PVE 500s on the PUT otherwise) — but that
79
+ * means a genuinely disagreeing declared value would otherwise vanish into an empty diff and
80
+ * report `noop` forever, with the recorded attribute silently stuck on whatever PVE already
81
+ * has. `maxfiles` (storage.ts's header) refuses that same class of bug at compile time; this is
82
+ * the update-time equivalent for a field that can't be typed away. So this checks the ONE case
83
+ * `changedProps` deliberately can't see — declared and live actually differ, on a type that can
84
+ * never carry the write — and dies with a message naming the fix, before `changedProps` runs.
58
85
  */
59
- export declare const matches: (attributes: StorageAttributes, props: StorageProps) => boolean;
86
+ export declare const matches: (attributes: StorageAttributes, props: StorageProps) => Effect.Effect<boolean, never, never>;
60
87
  //# sourceMappingURL=storage-wire.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"storage-wire.d.ts","sourceRoot":"","sources":["../../src/proxmox/storage-wire.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,OAAO,MAAM,kCAAkC,CAAC;AAC5D,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,KAAK,UAAU,EAAoB,MAAM,sBAAsB,CAAC;AAGrF,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,6FAA6F;IAC7F,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB;AAmBD,eAAO,MAAM,QAAQ,aAAc,MAAM,GAAG,SAAS,QAAQ,MAAM,YACN,CAAC;AAE9D,eAAO,MAAM,IAAI,GAAI,CAAC,YAAY,CAAC,GAAG,SAAS,QAAQ,CAAC,YACX,CAAC;AAwB9C;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,iBAAiB,UAAW,YAAY,mmCAGyC,CAAC;AAE/F;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,UAAW,YAAY,qlCAG5C,CAAC;AAEJ,gGAAgG;AAChG,eAAO,MAAM,cAAc,SAAU,iBAAiB,GAAG,UAAU,GAAG,SAAS,kCACvC,CAAC;AAEzC;;;GAGG;AACH,eAAO,MAAM,OAAO,eAAgB,iBAAiB,SAAS,YAAY,YAOjC,CAAC"}
1
+ {"version":3,"file":"storage-wire.d.ts","sourceRoot":"","sources":["../../src/proxmox/storage-wire.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,OAAO,MAAM,kCAAkC,CAAC;AAC5D,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,KAAK,UAAU,EAAoB,MAAM,sBAAsB,CAAC;AAGrF,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,6FAA6F;IAC7F,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB;AAmBD,eAAO,MAAM,QAAQ,aAAc,MAAM,GAAG,SAAS,QAAQ,MAAM,YACN,CAAC;AAE9D,eAAO,MAAM,IAAI,GAAI,CAAC,YAAY,CAAC,GAAG,SAAS,QAAQ,CAAC,YACX,CAAC;AAwB9C;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,iBAAiB,UAAW,YAAY,mmCAGyC,CAAC;AAE/F;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,UAAW,YAAY,qlCAG5C,CAAC;AAEJ,gGAAgG;AAChG,eAAO,MAAM,cAAc,SAAU,iBAAiB,GAAG,UAAU,GAAG,SAAS,kCACvC,CAAC;AAEzC;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,YAAY,SACjB,iBAAiB,SAChB,YAAY,KAClB,OAAO,CAAC,aAAa,CAYtB,CAAC;AAEH;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,OAAO,eAAgB,iBAAiB,SAAS,YAAY,yCAUK,CAAC"}
@@ -95,7 +95,12 @@ export interface StorageProps extends WithTarget {
95
95
  nodes?: string;
96
96
  /** Keeps the definition but stops PVE using it. */
97
97
  disable?: boolean;
98
- /** Tells PVE the same volumes are visible from every node — a claim, not a mechanism. */
98
+ /**
99
+ * Tells PVE the same volumes are visible from every node — a claim, not a mechanism.
100
+ * ⚠️ ONLY SENT WHEN THE TYPE'S OWN PLUGIN ACCEPTS IT (storage-plugin-options.ts, vendor-cited)
101
+ * — elsewhere it is dropped from the wire, and a disagreeing declared value dies the plan
102
+ * loud (storage-wire.ts's `matches`) rather than PUTting a field PVE would refuse outright.
103
+ */
99
104
  shared?: boolean;
100
105
  /** `off` | `metadata` | `falloc` | `full`. File-based plugins only. */
101
106
  preallocation?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/proxmox/storage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsEG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAC;AAI7C,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAYtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,gGAAgG;AAChG,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,CAAC;AAElD,MAAM,WAAW,YAAa,SAAQ,UAAU;IAC9C,6FAA6F;IAC7F,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,kEAAkE;IAClE,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,wFAAwF;IACxF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mDAAmD;IACnD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yFAAyF;IACzF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,uEAAuE;IACvE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+FAA+F;IAC/F,QAAQ,CAAC,EAAE,KAAK,CAAC;CAClB;AAED,MAAM,WAAW,cAAe,SAAQ,QAAQ,CAC9C,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,KAAK,EACL,eAAe,CAChB;CAAG;AAEJ,qGAAqG;AACrG,eAAO,MAAM,cAAc,iDAEzB,CAAC;AAEH,eAAO,MAAM,sBAAsB,oIAgGhC,CAAC"}
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/proxmox/storage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsEG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAC;AAI7C,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAYtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,gGAAgG;AAChG,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,CAAC;AAElD,MAAM,WAAW,YAAa,SAAQ,UAAU;IAC9C,6FAA6F;IAC7F,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,kEAAkE;IAClE,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,wFAAwF;IACxF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mDAAmD;IACnD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,uEAAuE;IACvE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+FAA+F;IAC/F,QAAQ,CAAC,EAAE,KAAK,CAAC;CAClB;AAED,MAAM,WAAW,cAAe,SAAQ,QAAQ,CAC9C,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,KAAK,EACL,eAAe,CAChB;CAAG;AAEJ,qGAAqG;AACrG,eAAO,MAAM,cAAc,iDAEzB,CAAC;AAEH,eAAO,MAAM,sBAAsB,oIAuGhC,CAAC"}
@@ -20,6 +20,6 @@ export { OPENBAO_RELEASES } from './openbao.ts';
20
20
  export { releaseProviders } from './providers.ts';
21
21
  export { ArchiveRefused, BinaryRefused, ChecksumMismatch, DownloadFailed } from './refused.ts';
22
22
  export { VICTORIA_RELEASES } from './victoria.ts';
23
- export type { ExecResult, FileStat, HostRunner, HostUser, WriteOptions, } from '../launchd/runner.ts';
23
+ export type { ExecResult, FileStat, HostPlatform, HostRunner, HostUser, WriteOptions, } from '../launchd/runner.ts';
24
24
  export { HostRunnerService, hostRunnerLayer } from '../launchd/runner.ts';
25
25
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/release/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,YAAY,EACV,cAAc,EACd,cAAc,EACd,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACnE,YAAY,EACV,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAChG,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC/F,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,YAAY,EACV,UAAU,EACV,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,YAAY,GACb,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/release/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,YAAY,EACV,cAAc,EACd,cAAc,EACd,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACnE,YAAY,EACV,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAChG,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC/F,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,YAAY,EACV,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,YAAY,GACb,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC"}
@@ -8,7 +8,7 @@
8
8
  "/**\n * Release.Binary's props, attributes and validation — the pure half of the provider.\n *\n * ★ THE PINNED ARCHIVE IS A PROP, NOT A LOOKUP. Repository, tag, exact asset name, size, the\n * archive's SHA-256, the member and the member's SHA-256 all arrive as props — usually spread from\n * a vendor data set (victoria.ts) by `catalogBinary()`. So the resource knows no vendor at all: a\n * second vendor is a second data module, never a change here, and the resource is the shape\n * Alchemy could accept (docs/release-binary-upstream.md).\n * ⛔ NOTHING ESTATE-SPECIFIC IS A CONSTANT HERE. The install directory, owner, group and mode are\n * the consuming stack's props. A stack that keeps binaries under `/opt/<estate>/obs/bin` says so\n * in its own code.\n * ⛔ EVERY PIN IS REQUIRED, AND WELL-FORMED OR REFUSED. There is no \"latest\", no optional digest and\n * no fallback to a checksum file fetched at apply — see victoria.ts for why a pin beats a fetch.\n */\nimport type { HostFileAttributes } from '../launchd/host-file-form.ts';\nimport { identityProblems, pathProblems } from '../launchd/host-file-form.ts';\nimport { pinProblems } from './binary-pins.ts';\n\n/** One release archive, pinned: where it is published, and the bytes it must be. */\nexport interface ReleaseArchive {\n /** The GitHub repository that publishes it, `owner/name`: `'VictoriaMetrics/VictoriaMetrics'`. */\n readonly repo: string;\n /** The release tag, exactly as published: `'v1.151.0'`. */\n readonly tag: string;\n /**\n * The asset's file name, whole: `'vmutils-darwin-arm64-v1.151.0.tar.gz'`. ⛔ Never a prefix or a\n * pattern — `-enterprise` and `-cluster` siblings share every prefix with it.\n */\n readonly asset: string;\n /** Bytes, per the release API. A download that runs past this is cut off and refused. */\n readonly size: number;\n /** The archive's SHA-256, lower-case hex, as the vendor's checksum file lists it. */\n readonly sha256: string;\n /**\n * The one directory the vendor wraps every entry in, exactly as its own archive names it —\n * `'alertmanager-0.33.1.darwin-arm64'`, never `'alertmanager-0.33.1.darwin-arm64/'` (no trailing\n * slash). Pinned from the walk-down, never derived from `asset` or `tag`: the vendor spells its\n * wrapper however it likes (`darwin_arm64`, an `-enterprise` suffix, no version at all), so a\n * computed name would drift onto a sibling the moment one vendor's naming changes. Omit it for a\n * flat archive (Victoria, OpenBao); the tar reader then refuses a directory entry exactly as it\n * always has (tar.ts).\n * @default undefined — no wrapping directory; the archive is flat.\n */\n readonly root?: string;\n}\n\nexport interface ReleaseBinaryProps {\n /** The pinned archive the binary comes out of. `catalogBinary()` fills it from a data set. */\n archive: ReleaseArchive;\n /** The archive member to extract, by its exact name: `'vmalert-prod'`. Nothing else is unpacked. */\n member: string;\n /** The member's own SHA-256 — what the installed file must hash to. */\n sha256: string;\n /**\n * The installed file name: `'vmalert'`. ★ Separate from `member` on purpose — VictoriaMetrics\n * names every member `<binary>-prod`, and a job's argv[0] should not carry that.\n */\n name: string;\n /**\n * The directory the binary is written into. ⛔ It must already exist — declare it with\n * `HostDirectory` and pass that resource's `path`, which also orders it first. ★ Give each\n * version its own directory (`catalogDirectory()`): an upgrade is then a new path — a\n * create-before-delete replace, never an overwrite under a running daemon — and a rollback is a\n * path. A new pin at the SAME path is refused (binary-diff.ts).\n */\n directory: string;\n /**\n * Permission bits. ⛔ Owner-readable and -executable, never group- or world-writable, never\n * setuid, setgid or sticky — a writable binary is whoever-can-write's code, run as whoever runs\n * the daemon. Its directory must not be group- or world-writable either (binary-lifecycle.ts).\n * @default 0o755\n */\n mode?: number;\n /** User name or numeric uid. Omitted: whoever the runner writes as. */\n owner?: string | number;\n /** Group name or numeric gid. Omitted: the directory's default group. */\n group?: string | number;\n}\n\nexport interface ReleaseBinaryAttributes extends HostFileAttributes {\n /** The archive the bytes came from, whole. */\n url: string;\n /** The archive member installed, by its exact name: `vmalert-prod`. */\n member: string;\n}\n\n/** Everything a download and its two checks need: one archive, one member, both digests. */\nexport type PinnedDownload = {\n readonly url: string;\n readonly size: number;\n /** The archive's pinned SHA-256. */\n readonly sha256: string;\n /** The archive member to extract, by exact name. */\n readonly member: string;\n /** The member's pinned SHA-256. */\n readonly memberSha256: string;\n /** The one declared leading directory to strip, if the archive has one — `archive.root`. */\n readonly root?: string;\n};\n\nexport const DEFAULT_BINARY_MODE = 0o755;\n\n/**\n * The release-asset URL. ★ GITHUB'S DOWNLOAD PATH, NOT THE API: it needs no token and spends no rate\n * limit (it redirects to a signed CDN URL — measured 2026-09-22 with HEAD). Every consumer the\n * estate census found publishes on GitHub except Grafana (grafana.com), which is not a\n * single-binary consumer anyway (docs/release-binary-catalogs.md). A second source kind arrives\n * with its first consumer, not before.\n */\nexport const releaseUrl = (repo: string, tag: string, asset: string): string =>\n `https://github.com/${repo}/releases/download/${tag}/${asset}`;\n\n/** Where a declaration puts its binary: `<directory>/<name>`. */\nexport const releaseBinaryPath = (props: {\n readonly directory: string;\n readonly name: string;\n}): string => `${props.directory}/${props.name}`;\n\n/** The download a declaration means. ⚠️ Validate first (binaryProblems): this trusts its input. */\nexport const pinnedDownload = (props: ReleaseBinaryProps): PinnedDownload => ({\n member: props.member,\n memberSha256: props.sha256,\n sha256: props.archive.sha256,\n size: props.archive.size,\n url: releaseUrl(props.archive.repo, props.archive.tag, props.archive.asset),\n // ⚠️ exactOptionalPropertyTypes: never spell out `root: undefined`; leave the key off entirely.\n ...(props.archive.root === undefined ? {} : { root: props.archive.root }),\n});\n\nexport const modeProblems = (mode: number): string[] => {\n if (!Number.isSafeInteger(mode) || mode < 0 || mode > 0o7777) return ['mode must be 0–0o7777'];\n const found: string[] = [];\n if ((mode & 0o7000) !== 0) found.push('mode must not set setuid, setgid or sticky');\n if ((mode & 0o022) !== 0) found.push('mode must not be group- or world-writable');\n if ((mode & 0o100) === 0) found.push('mode must let the owner execute it');\n // ⛔ AND READ IT: every plan re-hashes the binary, and a write is read back. MEASURED 2026-09-22,\n // an execute-only 0111 written by a non-root operator failed its read-back with EACCES.\n if ((mode & 0o400) === 0) found.push('mode must let the owner read it (it is re-hashed)');\n return found;\n};\n\n// `pinProblems` (imported above, for `binaryProblems` below) and the constant it needs,\n// `MAX_ARCHIVE`, moved to binary-pins.ts, split out to stay under the file-size cap; re-exported\n// here so every importer of './binary-form.ts' is unchanged.\nexport { MAX_ARCHIVE, pinProblems } from './binary-pins.ts';\n\n// ★ 'root' JOINED THIS LIST 2026-09-23. A state row from before this unit has no `root` at all\n// (`undefined`), and `undefined !== undefined` is false, so an old row with no root and a new\n// declaration that still has none does not move; declaring — or changing — a root does.\nconst ARCHIVE_KEYS = ['repo', 'tag', 'asset', 'size', 'sha256', 'root'] as const;\n\ntype Pins = Pick<ReleaseBinaryProps, 'archive' | 'member' | 'sha256'>;\n\n/** Whether two declarations pin different bytes: another archive, member or member digest. */\nexport const pinsMoved = (olds: Pins, news: Pins): boolean =>\n olds.member !== news.member ||\n olds.sha256 !== news.sha256 ||\n ARCHIVE_KEYS.some((key) => olds.archive[key] !== news.archive[key]);\n\n/**\n * ⛔ A NEW PIN IS A NEW PATH. The same path with other bytes would overwrite a binary under the\n * daemon running it, and leave no rollback but a re-download — so it is refused, at plan when the\n * path is resolved (binary-diff.ts) and at apply otherwise (binary-lifecycle.ts).\n */\nexport const inPlaceRefusal = (olds: Pins, news: Pins): string =>\n `a new pin (${news.archive.tag} ${news.member} ${news.sha256}) at the path of the installed ` +\n `one (${olds.archive.tag} ${olds.member} ${olds.sha256}) would overwrite it in place; give each ` +\n 'version its own directory (catalogDirectory), so an upgrade is a new path';\n\n/** Everything wrong with a declaration, before any host or network is asked anything. */\nexport const binaryProblems = (props: ReleaseBinaryProps): string[] => [\n ...pinProblems(props),\n ...pathProblems(props.directory).map((problem) => `directory: ${problem}`),\n ...modeProblems(props.mode ?? DEFAULT_BINARY_MODE),\n ...identityProblems('owner', props.owner),\n ...identityProblems('group', props.group),\n];\n",
9
9
  "/**\n * `Release.Binary` — one binary out of a pinned release archive, written onto a host and verified\n * twice: the archive against its pinned SHA-256, then the binary against its own.\n *\n * - reconcile — validate every prop; download the archive by its exact URL; verify it; unpack ONLY\n * the declared member; verify that; write it atomically through the HostRunner; read it back. A\n * file already holding the pinned bytes is never downloaded again.\n * - read — lstat plus the SHA-256 of the bytes; never runs the binary.\n * - diff — the pins, the path, then mode and owner against the live file (binary-diff.ts).\n * - replace — when the path moves (a new version is a new directory): create-before-delete.\n * - delete — removes the file, never the directory.\n *\n * ★ VENDOR-NEUTRAL. The pinned archive arrives as props, usually from a data set beside this\n * (victoria.ts) through `catalogBinary()`; nothing here knows a vendor, a package or a version.\n * ⛔ IT INSTALLS; IT NEVER STARTS. No launchctl, no systemctl, no restart: the job that runs the\n * binary is the stack's own `LaunchdJob`, which puts this resource's `path` in its argv so the\n * engine installs first and restarts the job when the path moves.\n * ⚠️ NOTHING IS ADOPTED WITHOUT `--adopt`, AT PLAN OR AT APPLY: the probe reads a file already at\n * the path as `Unowned` — even one holding exactly the pinned bytes (docs/ownership.md) — and\n * where the probe never ran (a prop was an Output) reconcile refuses it the same way. With\n * `--adopt`, a file holding the pinned bytes is recognised by its digest and taken over without\n * a download. ⛔ A file with OTHER bytes is never adopted, `--adopt` or not: that would be an\n * overwrite in place that the plan prints as `adopted` (binary-claim.ts, both halves).\n */\nimport { Resource } from 'alchemy';\nimport * as Provider from 'alchemy/Provider';\nimport * as Effect from 'effect/Effect';\nimport * as HttpClient from 'effect/unstable/http/HttpClient';\nimport { lift } from '../launchd/host-effect.ts';\nimport { HostRunnerService } from '../launchd/runner.ts';\nimport { adoptsAtApply } from '../ownership/adopt.ts';\nimport { noteUnfinished } from '../ownership/resume.ts';\nimport { diffBinary } from './binary-diff.ts';\nimport {\n type ReleaseBinaryAttributes,\n type ReleaseBinaryProps,\n releaseBinaryPath,\n} from './binary-form.ts';\nimport {\n NOTHING,\n deleteBinary,\n reconcileBinary,\n refreshBinary,\n refuse,\n} from './binary-lifecycle.ts';\nimport { readWithoutState } from './binary-read.ts';\nimport { declaredPinProblems } from './declared-pins.ts';\nimport { type DownloadPolicy, httpFetchArchive, sharingInFlight } from './download.ts';\n\nexport type { ReleaseBinaryAttributes, ReleaseBinaryProps } from './binary-form.ts';\n\nexport interface ReleaseBinary extends Resource<\n 'Release.Binary',\n ReleaseBinaryProps,\n ReleaseBinaryAttributes\n> {}\n\n/**\n * One binary from a pinned release archive, installed onto a host and verified against digests\n * the stack pins in code — the archive's, then the binary's own.\n *\n * ### Installing a binary\n *\n * The directory is declared first and passed by its `path`, which orders the two; the job that\n * runs the binary references the binary's `path`, which orders the job after it.\n *\n * **Example:**\n *\n * ```ts\n * const vmalertOf = { package: 'vmutils', version: '1.151.0', platform: 'darwin-arm64', binary: 'vmalert' };\n * const dir = yield* HostDirectory('vmutils-1.151.0', {\n * path: catalogDirectory('/opt/example/bin', vmalertOf),\n * mode: 0o755,\n * });\n * const vmalert = yield* ReleaseBinary('vmalert', {\n * ...catalogBinary(VICTORIA_RELEASES, vmalertOf),\n * directory: dir.path,\n * });\n * // LaunchdJob(…, { programArguments: [vmalert.path, '--httpListenAddr=127.0.0.1:8880'] })\n * ```\n *\n * @resource\n */\nexport const ReleaseBinary = Resource<ReleaseBinary>('Release.Binary');\n\n/** Test seams — NOT on the barrel. Every caller outside tests uses the defaults. */\nexport type ReleaseBinaryInternals = { readonly download?: DownloadPolicy };\n\nexport const makeReleaseBinaryProvider = (internals: ReleaseBinaryInternals = {}) =>\n Provider.effect(\n ReleaseBinary,\n Effect.gen(function* () {\n const runner = yield* HostRunnerService;\n const client = yield* HttpClient.HttpClient;\n const fetch = sharingInFlight(httpFetchArchive(client, internals.download));\n /**\n * ⛔ ONE PATH, ONE DECLARATION. MEASURED 2026-09-22 (binary-claims.test.ts, before this): two\n * resources installing one path in one deploy both planned `create`, shared one download,\n * and both recorded the file as theirs. Dropping either later — gating vmalert-logs off\n * along with its own ReleaseBinary, say — deleted the file the other still declared, and\n * that deploy reported the survivor `noop`. So a second resource claiming a path in the\n * same run is refused before it touches anything. Two jobs that run one binary share ONE\n * ReleaseBinary. ⚠️ Keyed by spelling: one file under two spellings is not caught here.\n */\n const claims = new Map<string, string>();\n const claim = (fqn: string, props: ReleaseBinaryProps): void => {\n const path = releaseBinaryPath(props);\n const holder = claims.get(path);\n if (holder !== undefined && holder !== fqn) {\n throw refuse(\n path,\n `is already installed by ${holder} in this deploy; declare each binary path once, ` +\n `and let every job that runs it share that one resource. ${NOTHING}`,\n );\n }\n claims.set(path, fqn);\n };\n return ReleaseBinary.Provider.of({\n list: () => Effect.succeed([]),\n\n // ⛔ The probe (no `output`) validates every prop first, so a malformed pin fails the plan\n // here — before any host call, let alone a download. A recovery read never fails its\n // caller (binary-read.ts): its props are the failed deploy's.\n read: ({ fqn, instanceId, olds, output }) =>\n output === undefined\n ? readWithoutState(runner, { fqn, instanceId, olds })\n : lift(() => refreshBinary(runner, output)),\n\n diff: ({ instanceId, news, olds, output }) =>\n output === undefined\n ? noteUnfinished(instanceId)\n : lift(() => diffBinary(runner, news, olds, output)),\n\n // ★ `--adopt` reaches the apply too: the probe never ran for a create with an Output prop.\n // ⛔ So do the pins AS DECLARED: `news` is resolved by now, and a first deploy is never\n // diffed, so only the stack's own record can show a digest that was an Output.\n reconcile: ({ fqn, instanceId, news, olds, output, session }) =>\n Effect.gen(function* () {\n const declared = yield* declaredPinProblems(fqn);\n const adopt = yield* adoptsAtApply({ fqn, instanceId, output });\n return yield* lift(async () => {\n claim(fqn, news);\n return reconcileBinary(runner, fetch, news, {\n adopt,\n declared,\n note: (message) => Effect.runPromise(session.note(message)),\n olds,\n output,\n });\n });\n }),\n\n /**\n * ⛔ NEVER REMOVE A FILE ANOTHER DECLARATION INSTALLED IN THIS DEPLOY. Alchemy runs every\n * delete (Apply.ts collectGarbage, Phase 2) only after every reconcile has succeeded, so a\n * claim by another name means the file is that resource's now, verified as its pin.\n * 🔴 MEASURED 2026-09-22 (adopt-parity.test.ts): a rename under --adopt — the new name\n * claimed the file, the old name's orphan delete removed it, and the deploy succeeded\n * with the binary gone. ★ Left in place rather than removed: a stray file is a tidy-up, a\n * missing binary is an outage. ⚠️ Keyed by spelling, like the claims themselves.\n * ★ A deleted resource gives its claim back, so a provider that outlives one deploy never\n * refuses the next resource declared at that path.\n */\n delete: ({ fqn, output, session }) =>\n lift(async () => {\n const holder = claims.get(output.path);\n if (holder !== undefined && holder !== fqn) {\n await Effect.runPromise(\n session.note(`${output.path} was installed by ${holder} in this deploy; kept`),\n );\n return;\n }\n await deleteBinary(runner, output);\n if (holder === fqn) claims.delete(output.path);\n }),\n });\n }),\n );\n\n/** The provider, as a stack uses it. It needs a HostRunnerService and an HttpClient. */\nexport const ReleaseBinaryProvider = () => makeReleaseBinaryProvider();\n",
10
10
  "/**\n * The one place a HostRunner's promises become Effects — plus the one probe of an unresolved\n * `news` both providers' diffs share. (The engine's adopt setting lives in ownership/adopt.ts.)\n *\n * ★ The lifecycle files are plain async functions over a HostRunner (see runner.ts for why the\n * runner is promise-based), so each provider handler is a single `lift(() => step(runner, …))`.\n * ⚠️ A thrown Error stays that Error — its message is the refusal a deploy prints. Anything else\n * thrown is wrapped, so the failure channel is always an Error with a readable message.\n */\nimport * as Effect from 'effect/Effect';\n\nexport const lift = <A>(step: () => Promise<A>): Effect.Effect<A, Error> =>\n Effect.tryPromise({\n catch: (cause) => (cause instanceof Error ? cause : new Error(String(cause))),\n try: step,\n });\n\n/**\n * A string prop of a diff's `news`, when that one prop is already resolved; `undefined` while it\n * is still an Output (a function-typed proxy), an Effect or a Config.\n * ★ For the identity props a diff must see even when the rest of `news` is unresolved — a plain\n * string is resolved by definition, so `typeof` is the whole test.\n */\nexport const resolvedString = (news: unknown, key: string): string | undefined => {\n if (typeof news !== 'object' || news === null) return undefined;\n const value = (news as Record<string, unknown>)[key];\n return typeof value === 'string' ? value : undefined;\n};\n",
11
- "/**\n * The one seam between the launchd providers and the host: every file read, file write and\n * `launchctl` call goes through a HostRunner, and nothing in this directory touches the host any\n * other way.\n *\n * ★ WHY A SEAM AND NOT DIRECT node:fs CALLS. launchd has no SDK — the provider renders a plist and\n * drives `launchctl` — so the only way to test the lifecycle without a real launchd (and without\n * writing /Library) is to swap the host out. fake-runner.ts is an in-memory host with a scripted\n * launchd; local-runner.ts is the real one. The same seam is where a consumer plugs in a runner\n * that reaches a host some other way.\n *\n * ★ PROMISES, NOT EFFECTS, ON PURPOSE. A consumer writing their own runner implements plain async\n * functions; the providers lift them into Effect at the call site (host-effect.ts).\n */\nimport * as Context from 'effect/Context';\nimport * as Layer from 'effect/Layer';\n\n/** One finished process. ⛔ `stdout` may carry anything the job's environment holds — never log it. */\nexport type ExecResult = {\n readonly exitCode: number;\n readonly stdout: string;\n readonly stderr: string;\n};\n\n/**\n * What `lstat` says about a path. ⚠️ lstat, not stat: a symlink is reported as a symlink, because\n * writing through one would change a file this resource never named.\n */\nexport type FileStat = {\n readonly kind: 'file' | 'directory' | 'symlink' | 'other';\n /** Permission bits only (`& 0o7777`), never the file-type bits. */\n readonly mode: number;\n readonly uid: number;\n readonly gid: number;\n readonly size: number;\n /**\n * The entry's identity, device and inode, when the runner can say. ★ Two spellings of ONE file\n * (`/tmp/x` and `/private/tmp/x`; `Bin` and `bin` on case-insensitive APFS) differ as strings\n * and match here, and a move must not delete its old path when that path IS the new file\n * (file-identity.ts). Optional: a runner that leaves them out gets a check after the fact.\n */\n readonly dev?: number;\n readonly ino?: number;\n};\n\nexport type WriteOptions = {\n /**\n * Permission bits for the final file. localRunner applies them BEFORE the file is visible at\n * `path`. ⚠️ sudoRunner's `install -S` does NOT: MEASURED 2026-09-22 on macOS 27.2 (an lstat\n * poller racing /usr/bin/install), the new inode appears at `path` as 0600 and is chmodded\n * 0.2–0.4 ms later. Never torn, never wider than declared, but briefly not executable.\n */\n readonly mode: number;\n /** Numeric owner; omitted means whoever the runner writes as. */\n readonly uid?: number;\n /** Numeric group; omitted means the directory's default. */\n readonly gid?: number;\n};\n\nexport type HostUser = { readonly uid: number; readonly gid: number; readonly home: string };\n\nexport interface HostRunner {\n /**\n * ⛔ DECLARED, NEVER INFERRED. `true` only when this runner can do every root-needing call the\n * providers make of it: every call already runs as root (a runner that talks to a root helper,\n * say), or the runner elevates exactly those calls (sudoRunner). The providers refuse\n * system-domain writes unless `effectiveUid()` is 0 or this is `true`, so claiming it falsely\n * turns that refusal into an EACCES halfway through a deploy.\n * ⛔ THE KIT NEVER ELEVATES SILENTLY. localRunner() never calls `sudo`: a deploy that prompts for\n * a password mid-plan, or quietly borrows a cached sudo ticket, is exactly the \"no silent sudo\"\n * failure. sudoRunner() does call `sudo -n`, but only when a stack passes it explicitly, only\n * for the argv shapes in sudo-allowlist.ts, and logging each one (decided 2026-09-21).\n */\n readonly privileged: boolean;\n /** The uid file writes and launchctl calls run as. */\n effectiveUid(): number;\n /** Run a program with an argv — ⛔ never through a shell. */\n exec(argv: readonly string[]): Promise<ExecResult>;\n /** File bytes, or `undefined` when nothing is at `path`. */\n readFile(path: string): Promise<Uint8Array | undefined>;\n /** lstat, or `undefined` when nothing is at `path`. */\n stat(path: string): Promise<FileStat | undefined>;\n /**\n * Write `bytes` so that `path` holds either the old file or the new one, never a torn mix:\n * a temporary file in the same directory, mode and owner set on it, then rename(2) over `path`\n * (sudoRunner: the mode just after the rename, measured — see WriteOptions.mode; the owner too,\n * ⚠️ REASONED NOT MEASURED, since measuring it needs root).\n * ⚠️ The parent directory must exist; creating it would invent an owner and mode nobody declared.\n */\n writeFileAtomic(path: string, bytes: Uint8Array, options: WriteOptions): Promise<void>;\n /**\n * PLAN TIME: refuse, reading only and writing nothing, a write this runner would refuse at\n * apply — so the plan shows it before any resource is applied. Optional: a runner without it\n * refuses at the write. ★ sudoRunner implements it with the checks it makes before `sudo -n`;\n * ⛔ it never elevates, so a plan still never calls sudo.\n */\n checkWrite?(path: string, options: WriteOptions): Promise<void>;\n /** Remove a file. Idempotent: nothing at `path` is success. */\n removeFile(path: string): Promise<void>;\n /** A user by name or numeric id, or `undefined` when the host has none. */\n lookupUser(nameOrId: string): Promise<HostUser | undefined>;\n /** A group's gid by name or numeric id, or `undefined` when the host has none. */\n lookupGroup(nameOrId: string): Promise<number | undefined>;\n /** Wait between launchctl polls. ★ Injected so a test never sleeps for real. */\n sleep(ms: number): Promise<void>;\n}\n\n/** The Effect service every launchd provider reads its runner from. */\nexport class HostRunnerService extends Context.Service<HostRunnerService, HostRunner>()(\n 'homeflare/launchd/HostRunner',\n) {}\n\n/** Provide a runner to the providers: `Layer.provide(hostRunnerLayer(localRunner()))`. */\nexport const hostRunnerLayer = (runner: HostRunner): Layer.Layer<HostRunnerService> =>\n Layer.succeed(HostRunnerService, runner);\n\n/** True when this runner may write root-owned paths and drive the system domain. */\nexport const canActAsRoot = (runner: HostRunner): boolean =>\n runner.privileged || runner.effectiveUid() === 0;\n",
11
+ "/**\n * The one seam between the launchd providers and the host: every file read, file write and\n * `launchctl` call goes through a HostRunner, and nothing in this directory touches the host any\n * other way.\n *\n * ★ WHY A SEAM AND NOT DIRECT node:fs CALLS. launchd has no SDK — the provider renders a plist and\n * drives `launchctl` — so the only way to test the lifecycle without a real launchd (and without\n * writing /Library) is to swap the host out. fake-runner.ts is an in-memory host with a scripted\n * launchd; local-runner.ts is the real one. The same seam is where a consumer plugs in a runner\n * that reaches a host some other way.\n *\n * ★ PROMISES, NOT EFFECTS, ON PURPOSE. A consumer writing their own runner implements plain async\n * functions; the providers lift them into Effect at the call site (host-effect.ts).\n */\nimport * as Context from 'effect/Context';\nimport * as Layer from 'effect/Layer';\n\n/** One finished process. ⛔ `stdout` may carry anything the job's environment holds — never log it. */\nexport type ExecResult = {\n readonly exitCode: number;\n readonly stdout: string;\n readonly stderr: string;\n};\n\n/**\n * What `lstat` says about a path. ⚠️ lstat, not stat: a symlink is reported as a symlink, because\n * writing through one would change a file this resource never named.\n */\nexport type FileStat = {\n readonly kind: 'file' | 'directory' | 'symlink' | 'other';\n /** Permission bits only (`& 0o7777`), never the file-type bits. */\n readonly mode: number;\n readonly uid: number;\n readonly gid: number;\n readonly size: number;\n /**\n * The entry's identity, device and inode, when the runner can say. ★ Two spellings of ONE file\n * (`/tmp/x` and `/private/tmp/x`; `Bin` and `bin` on case-insensitive APFS) differ as strings\n * and match here, and a move must not delete its old path when that path IS the new file\n * (file-identity.ts). Optional: a runner that leaves them out gets a check after the fact.\n */\n readonly dev?: number;\n readonly ino?: number;\n};\n\nexport type WriteOptions = {\n /**\n * Permission bits for the final file. localRunner applies them BEFORE the file is visible at\n * `path`. ⚠️ sudoRunner's `install -S` does NOT: MEASURED 2026-09-22 on macOS 27.2 (an lstat\n * poller racing /usr/bin/install), the new inode appears at `path` as 0600 and is chmodded\n * 0.2–0.4 ms later. Never torn, never wider than declared, but briefly not executable.\n */\n readonly mode: number;\n /** Numeric owner; omitted means whoever the runner writes as. */\n readonly uid?: number;\n /** Numeric group; omitted means the directory's default. */\n readonly gid?: number;\n};\n\nexport type HostUser = { readonly uid: number; readonly gid: number; readonly home: string };\n\n/**\n * The two host families a HostRunner ever actually targets. ★ Not `NodeJS.Platform`: nothing\n * here runs against `win32`/`aix`/etc, and a narrower type is what makes `runner.platform ===\n * 'darwin'` exhaustive rather than a string comparison that silently matches nothing.\n */\nexport type HostPlatform = 'darwin' | 'linux';\n\nexport interface HostRunner {\n /**\n * ⛔ DECLARED, NEVER INFERRED — same rule as `privileged`, and the same failure mode. The OS of\n * the TARGET this runner writes to, never of the process running Alchemy: `localRunner()` may\n * run ON either, but `sshRunner()`/`sshSudoRunner()` always reach a Linux host from wherever\n * Alchemy itself happens to run.\n * 🔴 INCIDENT, homeflare-ct100 2026-09-27: `Host.Directory`'s chmod/chown end-of-options token\n * (directory-lifecycle.ts `chmodChownEnd`) read `process.platform` — the Mac mini's own OS —\n * instead of the runner's target. Deploying from the Mac to CT100 (a Debian LXC over\n * `sshSudoRunner`) dropped GNU's required `--`, and `sudo-allowlist-dir.ts`'s `dirProgramProblem`\n * refused every chown with `SudoRefusedError` even though the path was under a declared prefix.\n * `localRunner()`'s own local deploys never showed it: there, `process.platform` and the\n * target happen to be the same machine. This field is the fix: every call site that needs to\n * know the target's OS reads `runner.platform`, never `process.platform`.\n */\n readonly platform: HostPlatform;\n /**\n * ⛔ DECLARED, NEVER INFERRED. `true` only when this runner can do every root-needing call the\n * providers make of it: every call already runs as root (a runner that talks to a root helper,\n * say), or the runner elevates exactly those calls (sudoRunner). The providers refuse\n * system-domain writes unless `effectiveUid()` is 0 or this is `true`, so claiming it falsely\n * turns that refusal into an EACCES halfway through a deploy.\n * ⛔ THE KIT NEVER ELEVATES SILENTLY. localRunner() never calls `sudo`: a deploy that prompts for\n * a password mid-plan, or quietly borrows a cached sudo ticket, is exactly the \"no silent sudo\"\n * failure. sudoRunner() does call `sudo -n`, but only when a stack passes it explicitly, only\n * for the argv shapes in sudo-allowlist.ts, and logging each one (decided 2026-09-21).\n */\n readonly privileged: boolean;\n /** The uid file writes and launchctl calls run as. */\n effectiveUid(): number;\n /** Run a program with an argv — ⛔ never through a shell. */\n exec(argv: readonly string[]): Promise<ExecResult>;\n /** File bytes, or `undefined` when nothing is at `path`. */\n readFile(path: string): Promise<Uint8Array | undefined>;\n /** lstat, or `undefined` when nothing is at `path`. */\n stat(path: string): Promise<FileStat | undefined>;\n /**\n * Write `bytes` so that `path` holds either the old file or the new one, never a torn mix:\n * a temporary file in the same directory, mode and owner set on it, then rename(2) over `path`\n * (sudoRunner: the mode just after the rename, measured — see WriteOptions.mode; the owner too,\n * ⚠️ REASONED NOT MEASURED, since measuring it needs root).\n * ⚠️ The parent directory must exist; creating it would invent an owner and mode nobody declared.\n */\n writeFileAtomic(path: string, bytes: Uint8Array, options: WriteOptions): Promise<void>;\n /**\n * PLAN TIME: refuse, reading only and writing nothing, a write this runner would refuse at\n * apply — so the plan shows it before any resource is applied. Optional: a runner without it\n * refuses at the write. ★ sudoRunner implements it with the checks it makes before `sudo -n`;\n * ⛔ it never elevates, so a plan still never calls sudo.\n */\n checkWrite?(path: string, options: WriteOptions): Promise<void>;\n /** Remove a file. Idempotent: nothing at `path` is success. */\n removeFile(path: string): Promise<void>;\n /** A user by name or numeric id, or `undefined` when the host has none. */\n lookupUser(nameOrId: string): Promise<HostUser | undefined>;\n /** A group's gid by name or numeric id, or `undefined` when the host has none. */\n lookupGroup(nameOrId: string): Promise<number | undefined>;\n /** Wait between launchctl polls. ★ Injected so a test never sleeps for real. */\n sleep(ms: number): Promise<void>;\n}\n\n/** The Effect service every launchd provider reads its runner from. */\nexport class HostRunnerService extends Context.Service<HostRunnerService, HostRunner>()(\n 'homeflare/launchd/HostRunner',\n) {}\n\n/** Provide a runner to the providers: `Layer.provide(hostRunnerLayer(localRunner()))`. */\nexport const hostRunnerLayer = (runner: HostRunner): Layer.Layer<HostRunnerService> =>\n Layer.succeed(HostRunnerService, runner);\n\n/** True when this runner may write root-owned paths and drive the system domain. */\nexport const canActAsRoot = (runner: HostRunner): boolean =>\n runner.privileged || runner.effectiveUid() === 0;\n",
12
12
  "/**\n * Whether a live object this stack holds no state for may be written — the apply-time half of the\n * house rule that NOTHING IS ADOPTED WITHOUT `--adopt` (decided 2026-09-21 for HostFile, LaunchdJob,\n * CaddyConfig and every Bao.* family). probe.ts is the plan-time half.\n *\n * ★ FAMILY-NEUTRAL ON PURPOSE. The engine questions here — what `--adopt` resolves to for one FQN,\n * whether this apply resumes the resource's own interrupted create — are the same for a vault\n * role, a launchd plist and a Caddy config, so they live once, outside every subpath's directory.\n */\nimport { AdoptPolicy } from 'alchemy/AdoptPolicy';\nimport { AlchemyContext } from 'alchemy/AlchemyContext';\nimport { Stack } from 'alchemy/Stack';\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\nimport { resumes, unfinished } from './resume.ts';\nimport { forgetRefusedCreate, isCreate } from './rows.ts';\n\n/**\n * Whether the resource at `fqn` may be adopted, resolved exactly as the planner resolves it (alchemy\n * beta.79 Plan.ts: `resource.Adopt ?? shouldAdopt`): a resource-scoped `adopt(…)`, else the\n * `AdoptPolicy` service, else `AlchemyContext.adopt`, else off.\n * ★ FOR A CREATE THE ENGINE NEVER PROBED. Alchemy skips the adoption probe while `news` holds an\n * Output, so an ownership check that must still honour `--adopt` can only run at apply. All three\n * reach the apply: Alchemist runs plan AND apply under the session context, which provides the\n * services from the CLI flag and the Stack the resources registered on (Alchemist/Session.ts,\n * routes/stack.ts; Apply.ts reads the same Stack).\n * ⛔ THE RESOURCE-SCOPED SETTING WINS, BOTH WAYS. The engine captures `adopt(…)` on the resource at\n * registration (Resource.ts `Adopt`, into `Stack.resources[fqn]`) and never hands it to a\n * provider. Reading only the deploy-wide flag let `--adopt` take over a resource declared\n * `.pipe(adopt(false))` — which the planner refuses — and refused one declared `adopt(true)`.\n * ⚠️ `resources` carries an `@internal` comment in Alchemy's source, but it is in the published types\n * and the planner reads `Adopt` from it. caddy/adopt-scope.test.ts registers through the real\n * `Resource`, so an upgrade that stops recording it there fails the suite.\n */\nexport const adoptEnabled = (fqn: string): Effect.Effect<boolean> =>\n Effect.gen(function* () {\n const stack = yield* Effect.serviceOption(Stack);\n const scoped = Option.isSome(stack) ? stack.value.resources[fqn]?.Adopt : undefined;\n if (scoped !== undefined) return scoped;\n const policy = yield* Effect.serviceOption(AdoptPolicy);\n if (Option.isSome(policy)) return policy.value;\n const context = yield* Effect.serviceOption(AlchemyContext);\n return Option.isSome(context) ? context.value.adopt : false;\n });\n\n/** The three fields of a `reconcile` (or `read`) call that say whose object this is. */\nexport type Owner = {\n readonly fqn: string;\n readonly instanceId: string;\n /** The attributes state holds; `undefined` on a create. */\n readonly output: unknown;\n};\n\n/**\n * Whether `--adopt` may speak for this apply's generation: a CREATE (rows.ts isCreate), or an\n * UNFINISHED generation whose row this plan's diff saw with no attributes (resume.ts) — the\n * resume Alchemy itself offers `--adopt` for (\"Cannot resume creating … Re-run with --adopt\").\n * ⛔ NOT A FRESH REPLACE'S NEW GENERATION. The planner never probes it and never offers it adoption,\n * so the identity it moves to was never asked about under `--adopt`: 🔴 MEASURED 2026-09-21\n * (launchd/adopt-apply.test.ts), a HostFile whose path changed onto a file it did not own\n * overwrote that file under a deploy-wide `--adopt` meant for something else. A Bao rename onto a\n * taken identity already fails the plan, `--adopt` or not (rename.ts judgeMove); this keeps the\n * apply to the same answer.\n */\nconst adoptable = (owner: Owner): Effect.Effect<boolean> =>\n Effect.gen(function* () {\n if (yield* isCreate(owner.fqn, owner.instanceId)) return true;\n return yield* unfinished(owner.instanceId);\n });\n\n/** Whether a stateless `reconcile` may take over a live object: adoption on, for an adoptable one. */\nexport const adoptsAtApply = (owner: Owner): Effect.Effect<boolean> =>\n Effect.gen(function* () {\n if (!(yield* adoptEnabled(owner.fqn))) return false;\n return yield* adoptable(owner);\n });\n\n/** A lifecycle helper's hook for refuseTakeover, bound to one call's Owner: `(what) => …`. */\nexport type Claim = (what: string) => Effect.Effect<void>;\n\n/**\n * `reconcile`'s check, called with the live object it found BEFORE any write: dies unless that\n * object may be written. It may when state already vouches for it (`output`), when this apply\n * resumes the resource's own interrupted create or replace and its diff proved the object that\n * generation's (resume.ts), or when adoption is on for a create or an unfinished generation\n * (adoptable).\n * ⛔ WHY IT EXISTS AT ALL: THE PROBE DOES NOT GUARD EVERY CREATE. Alchemy skips it while `news` holds\n * an Output (Plan.ts), a new generation of a replace is never probed, and an object can appear\n * between plan and apply. Each of those used to be a silent takeover: written over, then recorded\n * as ours, and deleted with the stack under `destroy`.\n * ⚠️ A CHECK, THEN A WRITE — NOT A LOCK. Two creates of one name in the same deploy run\n * concurrently, both read nothing, and both write (measured with the fakes, 2026-09-21). Nothing\n * between a read and a write can close that; declare each name once.\n * ⚠️ AN IDENTICAL OBJECT IS STILL A TAKEOVER (decided 2026-09-21). Nothing would be written, but the\n * state row would claim it, and a later delete would remove what another owner still relies on.\n * ⛔ A REFUSED CREATE FORGETS ITS `creating` ROW (rows.ts forgetRefusedCreate), or the next plan's\n * recovery read would adopt the very object this refused.\n */\nexport const refuseTakeover = (owner: Owner, what: string): Effect.Effect<void> =>\n Effect.gen(function* () {\n if (owner.output !== undefined) return;\n if (yield* resumes(owner.instanceId)) return;\n const may = yield* adoptable(owner);\n if (may && (yield* adoptEnabled(owner.fqn))) return;\n yield* forgetRefusedCreate(owner.fqn, owner.instanceId);\n const remedy = may\n ? 'Deploy with --adopt (or wrap the resource in adopt(true)) to take it over, or remove it first.'\n : 'It is the new identity of a replace, which --adopt does not cover: remove it first.';\n return yield* Effect.die(\n new Error(\n `${what}: already exists, and this stack holds no state for it — the plan could not ask ` +\n 'first (a prop was still an Output, a replace moved onto it, or it appeared after the ' +\n `plan). Nothing was written. ${remedy}`,\n ),\n );\n });\n\n/** refuseTakeover bound to one call's Owner, for a lifecycle helper that finds the live object. */\nexport const claimFor =\n (owner: Owner): Claim =>\n (what) =>\n refuseTakeover(owner, what);\n",
13
13
  "/**\n * Whether this apply RESUMES a create or replace the engine already started for this resource AND\n * the live object it will find is proven that generation's own — the one case in which a stateless\n * `reconcile` may write over a live object without `--adopt`.\n *\n * ★ HOW THE ENGINE TELLS US. Alchemy calls `diff` whenever a state row exists, and hands it `output`\n * = that row's attributes (alchemy beta.79 Plan.ts). A row with NO attributes is exactly an\n * unfinished generation: `creating` (a create interrupted after its write, before its commit),\n * `replacing` (the same for a replace), or `deleting` re-driven as a create. A fresh create is\n * never diffed at all. So the diff of such a row decides, and the apply that follows (the same\n * instance id: Apply.ts reuses the row's) finds the note.\n * ⛔ A ROW PROVES NOTHING BY ITSELF (red team, 2026-09-21). Apply commits it BEFORE reconcile runs, so\n * a deploy killed before the claim — an upstream that failed, a Ctrl-C — leaves a row whose create\n * never asked whose object sat at its identity. 🔴 MEASURED (openbao/adopt-holes.test.ts): with the\n * name an Output, the next deploy \"resumed\" that create and wrote over another owner's role, in\n * every family that had a note on the row alone. So the note is left only when the family's own\n * `read`, asked as the recovery read (probe.ts ownedRead: a recorded instance, a row carrying the\n * whole declaration, and a live object that matches it), answers \"ours\". For a `creating` row\n * that is the question Plan.ts already asked; for a `replacing` row it is the only time it is asked.\n * ⚠️ WHY NOT THE STATE STORE ALONE. At reconcile both look the same: Apply commits the fresh create's\n * `creating` row before calling reconcile, so a row with this instance id is always there.\n * ★ THE CHANNEL IS ALCHEMY'S OWN: `Artifacts`, the per-FQN bag the engine shares between one plan\n * and its apply (Artifacts.ts: \"diff computes … create / update reads the same artifact\").\n * Deploy.ts and the Alchemist session both hold one store across the pair.\n * ⚠️ IT FAILS CLOSED. No bag, a bag the plan never wrote, or an object the read cannot prove ours\n * reads as a fresh create, and adopt.ts then asks for `--adopt` — the safe direction.\n * ★ AN UNPROVEN RESUME IS STILL MARKED UNFINISHED (`noteUnfinished`), so `--adopt` can take it over\n * the way Alchemy's own \"Cannot resume creating … Re-run with --adopt\" offers for a create — while\n * a FRESH replace's new generation, which no diff ever saw without attributes, stays unadoptable.\n */\nimport { Unowned } from 'alchemy/AdoptPolicy';\nimport { Artifacts } from 'alchemy/Artifacts';\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\n\nconst PROVEN = 'homeflare/ownership/resumes';\nconst UNFINISHED = 'homeflare/ownership/unfinished';\n\nconst note = (key: string, instanceId: string): Effect.Effect<void> =>\n Effect.gen(function* () {\n const bag = yield* Effect.serviceOption(Artifacts);\n if (Option.isSome(bag)) yield* bag.value.set(key, instanceId);\n });\n\nconst noted = (key: string, instanceId: string): Effect.Effect<boolean> =>\n Effect.gen(function* () {\n const bag = yield* Effect.serviceOption(Artifacts);\n if (Option.isNone(bag)) return false;\n return (yield* bag.value.get<string>(key)) === instanceId;\n });\n\n/**\n * `diff`'s note for a row with no attributes: `instanceId` is an unfinished generation of this\n * resource's own, which `--adopt` may resume when nothing proves it (adopt.ts adoptable). Returns\n * `undefined`, a diff's \"defer to the engine\".\n */\nexport const noteUnfinished = (instanceId: string): Effect.Effect<undefined> =>\n Effect.as(note(UNFINISHED, instanceId), undefined);\n\n/**\n * Note `instanceId` unfinished, and a proven resume when `recovered` — the family's `read` of the\n * row's props, asked with no attributes — answers a plain object: ours. `Unowned`, nothing, or a\n * read that fails or dies proves nothing. ⚠️ Never fails the plan: an unproven resume is refused\n * at apply instead, unless `--adopt`.\n */\nexport const noteResume = <R>(\n instanceId: string,\n recovered: Effect.Effect<unknown, unknown, R>,\n): Effect.Effect<void, never, R> =>\n Effect.gen(function* () {\n yield* noteUnfinished(instanceId);\n const unproven = () => Effect.succeed(undefined);\n const found = yield* recovered.pipe(Effect.catch(unproven), Effect.catchDefect(unproven));\n if (found === undefined || found === null || Unowned.is(found)) return;\n yield* note(PROVEN, instanceId);\n });\n\n/** Whether the plan for this apply noted `instanceId` as a proven resumed create or replace. */\nexport const resumes = (instanceId: string): Effect.Effect<boolean> => noted(PROVEN, instanceId);\n\n/** Whether the plan for this apply saw `instanceId` as an unfinished generation (proven or not). */\nexport const unfinished = (instanceId: string): Effect.Effect<boolean> =>\n noted(UNFINISHED, instanceId);\n\n/** The fields of a `read` or `diff` call provingResumes uses; a family's own input carries more. */\ntype Ask = {\n readonly id: string;\n readonly fqn: string;\n readonly instanceId: string;\n readonly olds: unknown;\n readonly output: unknown;\n};\ntype Hook = Effect.Effect<unknown, unknown, unknown>;\n\n/** The two hooks provingResumes wraps, as Alchemy's ProviderService declares them. */\ninterface Resumable {\n read?(input: Ask): Hook;\n diff?(input: Ask): Hook;\n}\n\n/**\n * A provider whose `diff`, for a row with no attributes, first asks the provider's own `read` whether\n * the live object is that unfinished generation's (noteResume), then runs as written. Every Bao.*\n * family is built through it, so their diffs answer such a row with a plain `undefined`.\n */\nexport const provingResumes = <S extends Resumable>(service: S): S => {\n const { diff, read } = service;\n if (diff === undefined || read === undefined) return service;\n const proving: Resumable['diff'] = (input) =>\n Effect.gen(function* () {\n if (input.output === undefined) {\n yield* noteResume(input.instanceId, read({ ...input, output: undefined }));\n }\n return yield* diff(input);\n });\n // ⚠️ The one cast: `diff` keeps the family's own signature — it is the family's diff, run after.\n return { ...service, diff: proving } as S;\n};\n",
14
14
  "/**\n * The questions ownership/ asks of Alchemy's state store: does a row record this instance, and with\n * its whole declaration (probe.ts); is this apply a create rather than a replace's new generation\n * (adopt.ts); and — when reconcile refuses a create — forget the row Apply committed for it\n * (adopt.ts). Alchemy's own AWS.EC2.SecurityGroup provider reads the store the same way: the Stack\n * service names the stack and stage, and `State` yields the store.\n *\n * ⚠️ WITHOUT A STACK OR STATE IN CONTEXT, or with a store that errors, a row reads as \"not\n * recorded\" — the object is then `Unowned`, the safe answer — and nothing is forgotten, which\n * leaves the one gap forgetRefusedCreate exists to close. `alchemy deploy` and the Alchemist\n * session provide both.\n */\nimport { Stack } from 'alchemy/Stack';\nimport { State, type StateService, isActionState } from 'alchemy/State/State';\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\nimport { wholeDeclaration } from './whole.ts';\n\ntype Where = { readonly stack: string; readonly stage: string };\n\n/** The store, where this stack lives, and what it declares — or undefined outside a stack. */\nconst storeOf = Effect.gen(function* () {\n const stack = yield* Effect.serviceOption(Stack);\n const state = yield* Effect.serviceOption(State);\n if (Option.isNone(stack) || Option.isNone(state)) return undefined;\n const store: StateService = yield* state.value;\n const where: Where = { stack: stack.value.name, stage: stack.value.stage };\n return { resources: stack.value.resources, store, where };\n});\n\nconst rowAt = (store: StateService, where: Where, fqn: string) =>\n store.get({ ...where, fqn }).pipe(Effect.orElseSucceed(() => undefined));\n\n/** One generation of a persisted row, as far as ownership/ reads it. */\nexport type Generation = {\n readonly instanceId?: unknown;\n readonly status?: unknown;\n readonly props?: unknown;\n readonly attr?: unknown;\n readonly old?: unknown;\n /** Set by Apply on the `updating` row of an adoption, until that update commits (Apply.ts). */\n readonly adopting?: unknown;\n};\n\n/** The generation of a persisted row that carries `instanceId`: the row itself, or one in `old`. */\nconst generationOf = (row: unknown, instanceId: string): Generation | undefined => {\n let at = row;\n while (typeof at === 'object' && at !== null && !isActionState(at as never)) {\n const generation = at as Generation;\n if (generation.instanceId === instanceId) return generation;\n at = generation.old;\n }\n return undefined;\n};\n\n/** The generation `instanceId` names — at the FQN, or at a former FQN `renamedFrom` names. */\nexport const recordedGeneration = (\n fqn: string,\n instanceId: string,\n): Effect.Effect<Generation | undefined> =>\n Effect.gen(function* () {\n const found = yield* storeOf;\n if (found === undefined) return undefined;\n for (const at of [fqn, ...(found.resources[fqn]?.FormerFqns ?? [])]) {\n const generation = generationOf(yield* rowAt(found.store, found.where, at), instanceId);\n if (generation !== undefined) return generation;\n }\n return undefined;\n });\n\n/**\n * What the state store says of `instanceId` for this resource (at its FQN, or at a former FQN its\n * `renamedFrom` names — the planner migrates that row before it recovers it):\n * · `absent` — no row holds it. ★ This is what separates the probe from the recovery read: the\n * probe's instance id is minted for the probe (Plan.ts `generateInstanceId()`), 128 random bits\n * no row can hold.\n * · `partial` — a row holds it, but its props lack part of the declaration: a prop stripped at\n * commit because it was still an Output (whole.ts). Those props cannot prove an object ours.\n * · `whole` — a row holds it with every prop the declaration names.\n */\nexport type Recorded = 'absent' | 'partial' | 'whole';\n\nexport const recordedInstance = (fqn: string, instanceId: string): Effect.Effect<Recorded> =>\n Effect.gen(function* () {\n const generation = yield* recordedGeneration(fqn, instanceId);\n if (generation === undefined) return 'absent';\n return (yield* wholeDeclaration(fqn, generation.props)) ? 'whole' : 'partial';\n });\n\n/**\n * Whether this apply's `instanceId` is a CREATE: the row Apply committed for it is `creating`.\n * ⛔ A REPLACE'S NEW GENERATION IS NOT ONE. Apply commits it as `replacing`, and the planner never\n * offers it adoption — the probe runs only for a resource with no state — so `--adopt` must not\n * let it write over whatever sits at its new identity (adopt.ts adoptsAtApply).\n */\nexport const isCreate = (fqn: string, instanceId: string): Effect.Effect<boolean> =>\n Effect.map(\n recordedGeneration(fqn, instanceId),\n (generation) => generation?.status === 'creating',\n );\n\n/**\n * ⛔ A REFUSED CREATE MUST NOT LEAVE A ROW THAT CLAIMS THE OBJECT IT REFUSED. Apply commits a\n * `creating` row for this instance before it calls reconcile, and a failed reconcile leaves it\n * there. The next plan's recovery read would then find our instance id and an object that can\n * match its props — a prop that was an Output is stripped from the row, and an omitted prop is\n * \"not managed\" — and adopt exactly what this apply refused. 🔴 MEASURED 2026-09-21: Bao.Mount\n * and Bao.AuthMethod did (openbao/adopt-core.test.ts). So the row goes, and state reads as if\n * the create never started: the next plan probes, and the probe answers `Unowned`.\n * ⚠️ ONLY a `creating` row of THIS instance with no attributes — the one Apply just wrote. A\n * `replacing` row carries the previous generation in `old` and is never touched.\n */\nexport const forgetRefusedCreate = (fqn: string, instanceId: string): Effect.Effect<void> =>\n Effect.gen(function* () {\n const found = yield* storeOf;\n if (found === undefined) return;\n const row = yield* rowAt(found.store, found.where, fqn);\n const mine = row as { status?: unknown; instanceId?: unknown; attr?: unknown } | undefined;\n if (mine?.status !== 'creating' || mine.instanceId !== instanceId || mine.attr !== undefined) {\n return;\n }\n yield* found.store.delete({ ...found.where, fqn }).pipe(Effect.ignore);\n });\n",
@@ -31,7 +31,7 @@
31
31
  "/**\n * The release-binary provider with ONE HostRunner and its own HTTP client, as a single layer for a\n * host stack:\n *\n * const runner = localRunner();\n * Layer.mergeAll(launchdProviders(runner), releaseProviders(runner), …the stack's others)\n *\n * ★ PASS THE SAME RUNNER THE JOBS USE, so the binary and the daemon that runs it are written by one\n * identity on one host — a stack cannot install as one user and bootstrap as another by accident.\n * ⛔ THERE IS NO DEFAULT RUNNER. A binary is written wherever the runner reaches; a silent default to\n * \"this machine\" would install a Mac's daemons onto whichever laptop ran the deploy (the same\n * reasoning as linuxProviders()).\n * ★ `FetchHttpClient.layer` IS PROVIDED HERE, not left to the stack: the Mac host stack this exists\n * for provides no HTTP layer, and a missing one fails only at the first install.\n */\nimport * as Layer from 'effect/Layer';\nimport * as FetchHttpClient from 'effect/unstable/http/FetchHttpClient';\nimport { type HostRunner, hostRunnerLayer } from '../launchd/runner.ts';\nimport { ReleaseBinaryProvider } from './binary.ts';\n\nexport const releaseProviders = (runner: HostRunner) =>\n ReleaseBinaryProvider().pipe(\n Layer.provide(Layer.mergeAll(hostRunnerLayer(runner), FetchHttpClient.layer)),\n );\n",
32
32
  "/**\n * VictoriaMetrics' release archives, pinned — the first data set for Release.Binary, and vendor\n * facts only: every digest copied from the vendor's own checksum file for that archive and\n * cross-checked against GitHub's asset digest ON THE RECORDED DATE. Nothing here names a host, a\n * path, a user or an estate. victoria.test.ts holds every pin to the committed checksum files\n * (fixtures/victoria/) — ⚠️ consistency, not provenance: it cannot re-read GitHub, so a fixture\n * edited together with its pins passes, and review is the gate for that.\n *\n * ★ PINNED IN CODE, NOT FETCHED AT APPLY. The checksum file is published by the same account, on\n * the same release, over the same channel as the archive it describes — and these releases are\n * MUTABLE (`\"immutable\": false` on v1.151.0, v1.52.0 and v0.10.0, measured 2026-09-22; the\n * vendor's own release Makefile says to delete an asset in the UI to re-upload it). Whoever can\n * swap an archive can swap its checksum file in the same minute, and a provider that trusts\n * whatever checksum file it finds would install the new bytes and call them verified. A pin\n * committed here changes only through a reviewed kit release, so a swapped asset is a REFUSAL\n * that names the digest it expected. It also means an apply makes one request, not two, and a\n * plan knows exactly which bytes it will install without touching the network.\n * ⚠️ TRUST ROOT. At apply, these pins alone: the transport (TLS, the redirect, the CDN) can fail\n * a download, never pass other bytes. The pins' own root is the GitHub release over TLS as read\n * on RECORDED (trust on first use), uploaded from a maintainer's personal account.\n * VictoriaMetrics publishes no signature, cosign bundle, SLSA provenance or GitHub artifact\n * attestation for these archives (measured 2026-09-22: no .sig/.asc/.pem/.bundle assets; the\n * attestations API answers 404 for all four digests, next to a positive control that answers\n * 200). A checksum file proves the download is not corrupt — integrity — not who built it.\n * ⛔ A NEW VERSION IS A NEW ENTRY, WALKED DOWN THE SAME WAY — docs/release-binary-catalogs.md.\n * Never `latest`, never sorted by publish date: VictoriaLogs v1.51.1 was published AFTER v1.52.0.\n * ⛔ EXACT NAMES. `-enterprise`, `-cluster` and `-enterprise-cluster` archives sit beside each of\n * these with every prefix in common, so each asset name below is written out whole — never\n * composed from a package and a version, which is how a template drifts onto a sibling.\n * ★ THE VENDOR'S `-prod` SUFFIX IS DROPPED ON PURPOSE: every member is `<binary>-prod`, and\n * installing it as `<binary>` keeps a job's argv[0], `ps` and `pgrep` names identical to the\n * builds it replaces. The map is written out per package, never derived.\n */\nimport type { ReleaseCatalog } from './catalog.ts';\n\nconst RECORDED = '2026-09-22';\nconst DOWNLOAD = 'https://github.com/VictoriaMetrics';\n\nexport const VICTORIA_RELEASES: ReleaseCatalog = {\n packages: {\n 'victoria-logs': {\n binaries: { 'victoria-logs': 'victoria-logs-prod' },\n versions: {\n '1.52.0': {\n 'darwin-arm64': {\n asset: 'victoria-logs-darwin-arm64-v1.52.0.tar.gz',\n checksums: {\n recorded: RECORDED,\n sha256: 'd4ca686c3cceec78a0f4e733ef9ab3f857549131ea48cd6f89f701cda406ac4b',\n url: `${DOWNLOAD}/VictoriaLogs/releases/download/v1.52.0/victoria-logs-darwin-arm64-v1.52.0_checksums.txt`,\n },\n members: {\n 'victoria-logs-prod':\n '9e48809e314902782959b3a4e683a3087476759d0293791a0564921c676ca7be',\n },\n repo: 'VictoriaMetrics/VictoriaLogs',\n sha256: '3157d4b6181d8a7e3e30918e2cbfcd4cc4cb66263e3ef21ea91e4f20f8980883',\n size: 10_943_697,\n tag: 'v1.52.0',\n },\n },\n },\n },\n 'victoria-metrics': {\n // ⛔ The SINGLE-NODE archive. `…-cluster.tar.gz` holds vminsert/vmselect/vmstorage instead.\n binaries: { 'victoria-metrics': 'victoria-metrics-prod' },\n versions: {\n '1.151.0': {\n 'darwin-arm64': {\n asset: 'victoria-metrics-darwin-arm64-v1.151.0.tar.gz',\n checksums: {\n recorded: RECORDED,\n sha256: '735745ee0e7b2d5b8118883f2d0ed124c2a12d70261c16380128f5e362566d1e',\n url: `${DOWNLOAD}/VictoriaMetrics/releases/download/v1.151.0/victoria-metrics-darwin-arm64-v1.151.0_checksums.txt`,\n },\n members: {\n 'victoria-metrics-prod':\n '3c493a95ac1e9034a3261b230c4d62f3b186a04aafcdbacc99bfc110dc5de6a1',\n },\n repo: 'VictoriaMetrics/VictoriaMetrics',\n sha256: '8792437c4c0b63719fed7b44ad18d4b4167bbe6861ab3e84c7bb010c922e7582',\n size: 12_739_105,\n tag: 'v1.151.0',\n },\n },\n },\n },\n 'victoria-traces': {\n binaries: { 'victoria-traces': 'victoria-traces-prod' },\n versions: {\n '0.10.0': {\n 'darwin-arm64': {\n asset: 'victoria-traces-darwin-arm64-v0.10.0.tar.gz',\n checksums: {\n recorded: RECORDED,\n sha256: 'cd32bfc21900b48ba543124e43827a1d13d735e45d50dbfd742c0ca6640e1aae',\n url: `${DOWNLOAD}/VictoriaTraces/releases/download/v0.10.0/victoria-traces-darwin-arm64-v0.10.0_checksums.txt`,\n },\n members: {\n 'victoria-traces-prod':\n '4759ec89a466129b9eefc22244a111e1f489739340747805fd93b58fd0f7b2dd',\n },\n repo: 'VictoriaMetrics/VictoriaTraces',\n sha256: 'cbe83f1d409cbb85fbf1c890c4a9b7fd34c1d74acec4dce2e0ebe46fcb260e38',\n size: 11_126_077,\n tag: 'v0.10.0',\n },\n },\n },\n },\n vmutils: {\n // ★ ONE ARCHIVE, SEVEN TOOLS (measured: 264 MB unpacked). Only a declared member is extracted.\n // vmalert-logs is not a tool of its own: it is vmalert run with `--rule.defaultRuleType=vlogs`.\n binaries: {\n vmagent: 'vmagent-prod',\n vmalert: 'vmalert-prod',\n 'vmalert-tool': 'vmalert-tool-prod',\n vmauth: 'vmauth-prod',\n vmbackup: 'vmbackup-prod',\n vmctl: 'vmctl-prod',\n vmrestore: 'vmrestore-prod',\n },\n versions: {\n '1.151.0': {\n 'darwin-arm64': {\n asset: 'vmutils-darwin-arm64-v1.151.0.tar.gz',\n checksums: {\n recorded: RECORDED,\n sha256: 'fda5a64fce9022bee7614c3fda27271c0826f1d7b90f8b162e1f48c77c0df04b',\n url: `${DOWNLOAD}/VictoriaMetrics/releases/download/v1.151.0/vmutils-darwin-arm64-v1.151.0_checksums.txt`,\n },\n members: {\n 'vmagent-prod': 'd3b6fa1f71ef48beac619f15f8adfa7610e76605caf37db1ebfbb379b6692329',\n 'vmalert-prod': '62845795167e9ff47890e83ac4ac5934693c105767db88591c95a08f3c4fb354',\n 'vmalert-tool-prod':\n 'cbffb9495e4bb1457c9d45e0a7064b3a3a29b2cfd1ae24bfe8f00ec327c26998',\n // ⚠️ gitleaks' generic-api-key rule reads this one public digest as a key (its\n // entropy; measured 2026-09-22). It is the vendor's published SHA-256 of vmauth-prod.\n 'vmauth-prod': '398df9e0f5b7035d037e39ee9ff66a10ddde5333d832602463aa4d2865fdb508', // gitleaks:allow\n 'vmbackup-prod': '1974a2ee211b49bf581287808e010846f6c47ff135276214c6da628567777b9e',\n 'vmctl-prod': '998b111eee206b98e6d25fdf2fbaa455ecc17c7f9e7c3b2373e127cef762459f',\n 'vmrestore-prod': 'fc824df7215b01b57921ed46afde7fea6b6698adf13d9ea8e3fe36e194ef8190',\n },\n repo: 'VictoriaMetrics/VictoriaMetrics',\n sha256: '27d68bac90e28929214091ed9d27f2e9fef25a080407e2c8661ea9b52dd6b183',\n size: 123_584_800,\n tag: 'v1.151.0',\n },\n },\n },\n },\n },\n vendor: 'VictoriaMetrics',\n};\n"
33
33
  ],
34
- "mappings": ";AAgBA,IAAM,cACJ,gGACA;AAGF,IAAM,cACJ;AAGF,IAAM,cAAc;AAGpB,IAAM,YAAY;AAEX,IAAM,cAAc;AAG3B,IAAM,YAAY,CAAC,OAAmB,SAA2B;AAAA,EAC/D,IAAI,OAAO,UAAU;AAAA,IAAU,OAAO,YAAY,KAAK,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC;AAAA,EAC1E,IAAI,MAAM,QAAQ,KAAK,GAAG;AAAA,IACxB,OAAQ,MAAgC,QAAQ,CAAC,MAAM,UACrD,UAAU,MAAM,GAAG,QAAQ,OAAO,KAAK,IAAI,CAC7C;AAAA,EACF;AAAA,EACA,IAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAAA,IAC/C,OAAO,OAAO,QAAQ,KAAK,EAAE,QAAQ,EAAE,KAAK,UAAU,UAAU,MAAM,GAAG,QAAQ,KAAK,CAAC;AAAA,EACzF;AAAA,EACA,OAAO,CAAC;AAAA;AAOH,IAAM,oBAAoB,CAC/B,aACA,MACA,cACa;AAAA,EACb,MAAM,QAAkB,CAAC;AAAA,EACzB,YAAY,MAAM,UAAU,OAAO,QAAQ,eAAe,CAAC,CAAC,GAAG;AAAA,IAC7D,IAAI,YAAY,KAAK,IAAI;AAAA,MACvB,MAAM,KAAK,eAAe,6BAA6B,aAAa;AAAA,IACjE,SAAI,YAAY,KAAK,KAAK;AAAA,MAC7B,MAAM,KAAK,eAAe,6BAA6B,aAAa;AAAA,EACxE;AAAA,EACA,YAAY,OAAO,QAAQ,KAAK,QAAQ,GAAG;AAAA,IAEzC,IAAI,YAAY,KAAK,GAAG,GAAG;AAAA,MACzB,MAAM,KAAK,oBAAoB,OAAO,KAAK,8BAA8B,aAAa;AAAA,IACxF,EAAO,SAAI,UAAU,KAAK,GAAG,KAAK,QAAQ,IAAI,KAAK,QAAQ;AAAA,MACzD,MAAM,KAAK,oBAAoB,OAAO,QAAQ,CAAC,6BAA6B,aAAa;AAAA,IAC3F,EAAO,SAAI,YAAY,KAAK,GAAG,GAAG;AAAA,MAChC,MAAM,KAAK,oBAAoB,OAAO,KAAK,2BAA2B,aAAa;AAAA,IACrF;AAAA,EACF;AAAA,EACA,WAAW,QAAQ,UAAU,aAAa,CAAC,GAAG,WAAW,GAAG;AAAA,IAC1D,MAAM,KAAK,GAAG,6BAA6B,aAAa;AAAA,EAC1D;AAAA,EACA,OAAO;AAAA;AAIF,IAAM,qBAAqB,CAAC,YACjC,YAAY,KAAK,OAAO,IAAI,CAAC,gCAAgC,aAAa,IAAI,CAAC;;;AC9C1E,IAAM,eAAe;AAGrB,IAAM,mBAAmB,CAAC,MAAc,UAAiD;AAAA,EAC9F,IAAI,UAAU;AAAA,IAAW,OAAO,CAAC;AAAA,EACjC,IAAI,OAAO,UAAU,UAAU;AAAA,IAC7B,OAAO,OAAO,cAAc,KAAK,KAAK,SAAS,IAC3C,CAAC,IACD,CAAC,GAAG,wCAAwC;AAAA,EAClD;AAAA,EACA,OAAO,6BAA6B,KAAK,KAAK,KAAK,QAAQ,KAAK,KAAK,IACjE,CAAC,IACD,CAAC,GAAG,QAAQ,KAAK,UAAU,KAAK,qCAAqC;AAAA;AAOpE,IAAM,eAAe,CAAC,SAA2B;AAAA,EACtD,MAAM,QAAkB,CAAC;AAAA,EACzB,IAAI,CAAC,KAAK,WAAW,GAAG;AAAA,IAAG,MAAM,KAAK,uBAAuB;AAAA,EAG7D,IACE,KAAK,SAAS,GAAG,KACjB,KACG,MAAM,GAAG,EACT,MAAM,CAAC,EACP,KAAK,CAAC,SAAS,SAAS,MAAM,SAAS,OAAO,SAAS,IAAI,GAC9D;AAAA,IACA,MAAM,KAAK,6EAA6E;AAAA,EAC1F;AAAA,EACA,IAAI,KAAK,SAAS,MAAM;AAAA,IAAG,MAAM,KAAK,mBAAmB;AAAA,EACzD,OAAO;AAAA;AAGF,IAAM,eAAe,CAAC,UAAmC;AAAA,EAC9D,MAAM,QAAQ,aAAa,MAAM,IAAI;AAAA,EACrC,MAAM,OAAO,MAAM,QAAQ;AAAA,EAC3B,IAAI,CAAC,OAAO,cAAc,IAAI,KAAK,OAAO,KAAK,OAAO;AAAA,IAAQ,MAAM,KAAK,uBAAuB;AAAA,EAChG,MAAM,KAAK,GAAG,iBAAiB,SAAS,MAAM,KAAK,CAAC;AAAA,EACpD,MAAM,KAAK,GAAG,iBAAiB,SAAS,MAAM,KAAK,CAAC;AAAA,EACpD,MAAM,KAAK,GAAG,mBAAmB,MAAM,OAAO,CAAC;AAAA,EAC/C,OAAO;AAAA;;;ACrET,IAAM,QAAQ;AACP,IAAM,cAAc,KAAK;AAEhC,IAAM,OAAO;AACb,IAAM,UAAU;AAGhB,IAAM,UAAU;AAGhB,IAAM,iBAAiB,CAAC,MAAc,UACpC,CAAC,QAAQ,KAAK,KAAK,KAAK,UAAU,OAAO,UAAU,OAC/C,GAAG,sEAAsE,KAAK,UAAU,KAAK,MAC7F;AAGC,IAAM,cAAc,CAAC,UAKZ;AAAA,EACd,MAAM,UAAU,MAAM,WAAW,CAAC;AAAA,EAClC,MAAM,QAAkB,CAAC;AAAA,EACzB,MAAM,OAAO,CAAC,MAAc,UAAuC;AAAA,IACjE,IAAI,OAAO,UAAU;AAAA,MAAU,OAAO;AAAA,IACtC,MAAM,KAAK,GAAG,qCAAqC;AAAA,IACnD;AAAA;AAAA,EAEF,MAAM,OAAO,KAAK,gBAAgB,QAAQ,IAAI;AAAA,EAG9C,MAAM,WAAW,MAAM,MAAM,KAAK,QAAQ,GAAG,IAAI,CAAC;AAAA,EAClD,IAAI,SAAS,cAAc,CAAC,KAAK,KAAK,IAAI,KAAK,aAAa,OAAO,aAAa;AAAA,IAC9E,MAAM,KAAK,sCAAsC,KAAK,UAAU,IAAI,GAAG;AAAA,EACzE,YAAY,MAAM,UAAU;AAAA,IAC1B,CAAC,eAAe,QAAQ,GAAG;AAAA,IAC3B,CAAC,QAAQ,MAAM,IAAI;AAAA,EACrB,GAAY;AAAA,IACV,MAAM,QAAQ,KAAK,MAAM,KAAK;AAAA,IAC9B,MAAM,UAAU,UAAU,YAAY,YAAY,eAAe,MAAM,KAAK;AAAA,IAC5E,IAAI,YAAY;AAAA,MAAW,MAAM,KAAK,OAAO;AAAA,EAC/C;AAAA,EACA,MAAM,QAAQ,KAAK,iBAAiB,QAAQ,KAAK;AAAA,EACjD,IAAI,UAAU,WAAW;AAAA,IACvB,MAAM,UAAU,eAAe,iBAAiB,KAAK;AAAA,IACrD,IAAI,YAAY;AAAA,MAAW,MAAM,KAAK,OAAO;AAAA,IACxC,SAAI,CAAC,QAAQ,KAAK,KAAK;AAAA,MAC1B,MAAM,KAAK,6CAA6C,QAAQ;AAAA,EACpE;AAAA,EAIA,IAAI,QAAQ,SAAS,WAAW;AAAA,IAC9B,IAAI,OAAO,QAAQ,SAAS,UAAU;AAAA,MACpC,MAAM,KAAK,gDAAgD;AAAA,IAC7D,EAAO;AAAA,MACL,MAAM,UAAU,eAAe,gBAAgB,QAAQ,IAAI;AAAA,MAC3D,IAAI,YAAY;AAAA,QAAW,MAAM,KAAK,OAAO;AAAA;AAAA,EAEjD;AAAA,EAIA,MAAM,OAAO,QAAQ;AAAA,EACrB,IAAI,OAAO,SAAS,YAAY,CAAC,OAAO,cAAc,IAAI,KAAK,QAAQ,KAAK,OAAO,aAAa;AAAA,IAC9F,MAAM,KAAK,qDAAqD,OAAO,WAAW,GAAG;AAAA,EACvF;AAAA,EACA,YAAY,MAAM,UAAU;AAAA,IAC1B,CAAC,kBAAkB,QAAQ,MAAM;AAAA,IACjC,CAAC,UAAU,MAAM,MAAM;AAAA,EACzB,GAAY;AAAA,IACV,MAAM,QAAQ,KAAK,MAAM,KAAK;AAAA,IAC9B,IAAI,UAAU,aAAa,CAAC,MAAM,KAAK,KAAK;AAAA,MAC1C,MAAM,KAAK,GAAG,uCAAuC;AAAA,EACzD;AAAA,EACA,MAAM,SAAS,KAAK,UAAU,MAAM,MAAM;AAAA,EAE1C,IACE,WAAW,cACV,WAAW,MAAM,OAAO,WAAW,GAAG,KAAK,OAAO,MAAM,GAAG,EAAE,SAAS,IAAI,IAC3E;AAAA,IACA,MAAM,KAAK,sDAAsD,KAAK,UAAU,MAAM,GAAG;AAAA,EAC3F;AAAA,EACA,OAAO;AAAA;;;ACOF,IAAM,sBAAsB;AAS5B,IAAM,aAAa,CAAC,MAAc,KAAa,UACpD,sBAAsB,0BAA0B,OAAO;AAGlD,IAAM,oBAAoB,CAAC,UAGpB,GAAG,MAAM,aAAa,MAAM;AAGnC,IAAM,iBAAiB,CAAC,WAA+C;AAAA,EAC5E,QAAQ,MAAM;AAAA,EACd,cAAc,MAAM;AAAA,EACpB,QAAQ,MAAM,QAAQ;AAAA,EACtB,MAAM,MAAM,QAAQ;AAAA,EACpB,KAAK,WAAW,MAAM,QAAQ,MAAM,MAAM,QAAQ,KAAK,MAAM,QAAQ,KAAK;AAAA,KAEtE,MAAM,QAAQ,SAAS,YAAY,CAAC,IAAI,EAAE,MAAM,MAAM,QAAQ,KAAK;AACzE;AAEO,IAAM,eAAe,CAAC,SAA2B;AAAA,EACtD,IAAI,CAAC,OAAO,cAAc,IAAI,KAAK,OAAO,KAAK,OAAO;AAAA,IAAQ,OAAO,CAAC,uBAAuB;AAAA,EAC7F,MAAM,QAAkB,CAAC;AAAA,EACzB,KAAK,OAAO,UAAY;AAAA,IAAG,MAAM,KAAK,4CAA4C;AAAA,EAClF,KAAK,OAAO,QAAW;AAAA,IAAG,MAAM,KAAK,2CAA2C;AAAA,EAChF,KAAK,OAAO,QAAW;AAAA,IAAG,MAAM,KAAK,oCAAoC;AAAA,EAGzE,KAAK,OAAO,SAAW;AAAA,IAAG,MAAM,KAAK,mDAAmD;AAAA,EACxF,OAAO;AAAA;AAWT,IAAM,eAAe,CAAC,QAAQ,OAAO,SAAS,QAAQ,UAAU,MAAM;AAK/D,IAAM,YAAY,CAAC,MAAY,SACpC,KAAK,WAAW,KAAK,UACrB,KAAK,WAAW,KAAK,UACrB,aAAa,KAAK,CAAC,QAAQ,KAAK,QAAQ,SAAS,KAAK,QAAQ,IAAI;AAO7D,IAAM,iBAAiB,CAAC,MAAY,SACzC,cAAc,KAAK,QAAQ,OAAO,KAAK,UAAU,KAAK,0CACtD,QAAQ,KAAK,QAAQ,OAAO,KAAK,UAAU,KAAK,oDAChD;AAGK,IAAM,iBAAiB,CAAC,UAAwC;AAAA,EACrE,GAAG,YAAY,KAAK;AAAA,EACpB,GAAG,aAAa,MAAM,SAAS,EAAE,IAAI,CAAC,YAAY,cAAc,SAAS;AAAA,EACzE,GAAG,aAAa,MAAM,QAAQ,mBAAmB;AAAA,EACjD,GAAG,iBAAiB,SAAS,MAAM,KAAK;AAAA,EACxC,GAAG,iBAAiB,SAAS,MAAM,KAAK;AAC1C;;ACxJA;AACA;AACA;AACA;;;AClBA;AAEO,IAAM,OAAO,CAAI,SACf,kBAAW;AAAA,EAChB,OAAO,CAAC,UAAW,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC;AAAA,EAC3E,KAAK;AACP,CAAC;AAQI,IAAM,iBAAiB,CAAC,MAAe,QAAoC;AAAA,EAChF,IAAI,OAAO,SAAS,YAAY,SAAS;AAAA,IAAM;AAAA,EAC/C,MAAM,QAAS,KAAiC;AAAA,EAChD,OAAO,OAAO,UAAU,WAAW,QAAQ;AAAA;;;ACZ7C;AACA;AAAA;AA6FO,MAAM,0BAAkC,gBAAuC,EACpF,8BACF,EAAE;AAAC;AAGI,IAAM,kBAAkB,CAAC,WACxB,cAAQ,mBAAmB,MAAM;AAGlC,IAAM,eAAe,CAAC,WAC3B,OAAO,cAAc,OAAO,aAAa,MAAM;;;AC7GjD;AACA;AACA,kBAAS;AACT;AACA;;;ACiBA;AACA;AACA;AACA;AAEA,IAAM,SAAS;AACf,IAAM,aAAa;AAEnB,IAAM,OAAO,CAAC,KAAa,eAClB,YAAI,UAAU,GAAG;AAAA,EACtB,MAAM,MAAM,OAAc,sBAAc,SAAS;AAAA,EACjD,IAAW,cAAO,GAAG;AAAA,IAAG,OAAO,IAAI,MAAM,IAAI,KAAK,UAAU;AAAA,CAC7D;AAEH,IAAM,QAAQ,CAAC,KAAa,eACnB,YAAI,UAAU,GAAG;AAAA,EACtB,MAAM,MAAM,OAAc,sBAAc,SAAS;AAAA,EACjD,IAAW,cAAO,GAAG;AAAA,IAAG,OAAO;AAAA,EAC/B,QAAQ,OAAO,IAAI,MAAM,IAAY,GAAG,OAAO;AAAA,CAChD;AAOI,IAAM,iBAAiB,CAAC,eACtB,WAAG,KAAK,YAAY,UAAU,GAAG,SAAS;AAQ5C,IAAM,aAAa,CACxB,YACA,cAEO,YAAI,UAAU,GAAG;AAAA,EACtB,OAAO,eAAe,UAAU;AAAA,EAChC,MAAM,WAAW,MAAa,gBAAQ,SAAS;AAAA,EAC/C,MAAM,QAAQ,OAAO,UAAU,KAAY,cAAM,QAAQ,GAAU,oBAAY,QAAQ,CAAC;AAAA,EACxF,IAAI,UAAU,aAAa,UAAU,QAAQ,QAAQ,GAAG,KAAK;AAAA,IAAG;AAAA,EAChE,OAAO,KAAK,QAAQ,UAAU;AAAA,CAC/B;AAGI,IAAM,UAAU,CAAC,eAA+C,MAAM,QAAQ,UAAU;AAGxF,IAAM,aAAa,CAAC,eACzB,MAAM,YAAY,UAAU;AAuBvB,IAAM,iBAAiB,CAAsB,YAAkB;AAAA,EACpE,QAAQ,MAAM,SAAS;AAAA,EACvB,IAAI,SAAS,aAAa,SAAS;AAAA,IAAW,OAAO;AAAA,EACrD,MAAM,UAA6B,CAAC,UAC3B,YAAI,UAAU,GAAG;AAAA,IACtB,IAAI,MAAM,WAAW,WAAW;AAAA,MAC9B,OAAO,WAAW,MAAM,YAAY,KAAK,KAAK,OAAO,QAAQ,UAAU,CAAC,CAAC;AAAA,IAC3E;AAAA,IACA,OAAO,OAAO,KAAK,KAAK;AAAA,GACzB;AAAA,EAEH,OAAO,KAAK,SAAS,MAAM,QAAQ;AAAA;;;ACxGrC,kBAAS;AACT;AACA;AACA;;;ACIA;AACA;AACA;AAEA,IAAM,SAAS,CAAC,UAA4B,UAAU,aAAa,UAAU;AAE7E,IAAM,gBAAgB,CAAC,UAAqD;AAAA,EAC1E,IAAI,OAAO,UAAU,YAAY,UAAU,QAAQ,MAAM,QAAQ,KAAK;AAAA,IAAG,OAAO;AAAA,EAChF,MAAM,QAAiB,OAAO,eAAe,KAAK;AAAA,EAClD,OAAO,UAAU,OAAO,aAAa,UAAU;AAAA;AAO1C,IAAM,UAAU,CAAC,UAAmB,aAA+B;AAAA,EACxE,IAAI,OAAO,QAAQ;AAAA,IAAG,OAAO;AAAA,EAC7B,IAAI,OAAO,QAAQ;AAAA,IAAG,OAAO;AAAA,EAC7B,IAAI,MAAM,QAAQ,QAAQ,GAAG;AAAA,IAC3B,IAAI,CAAC,MAAM,QAAQ,QAAQ;AAAA,MAAG,OAAO;AAAA,IACrC,OAAO,SAAS,MAAM,CAAC,MAAM,UAAU,QAAQ,MAAM,SAAS,MAAM,CAAC;AAAA,EACvE;AAAA,EACA,IAAI,cAAc,QAAQ,GAAG;AAAA,IAC3B,IAAI,CAAC,cAAc,QAAQ;AAAA,MAAG,OAAO;AAAA,IACrC,OAAO,OAAO,QAAQ,QAAQ,EAAE,MAAM,EAAE,KAAK,UAAU,QAAQ,MAAM,SAAS,IAAI,CAAC;AAAA,EACrF;AAAA,EACA,OAAO;AAAA;AASF,IAAM,mBAAmB,CAAC,KAAa,UACrC,YAAW,sBAAc,KAAK,GAAG,CAAC,UAAU;AAAA,EACjD,MAAM,WAAkB,eAAO,KAAK,IAAI,MAAM,MAAM,UAAU,OAAO;AAAA,EACrE,OAAO,aAAa,aAAa,QAAQ,SAAS,OAAO,KAAK;AAAA,CAC/D;;;ADtCH,IAAM,UAAiB,YAAI,UAAU,GAAG;AAAA,EACtC,MAAM,QAAQ,OAAc,sBAAc,MAAK;AAAA,EAC/C,MAAM,QAAQ,OAAc,sBAAc,KAAK;AAAA,EAC/C,IAAW,eAAO,KAAK,KAAY,eAAO,KAAK;AAAA,IAAG;AAAA,EAClD,MAAM,QAAsB,OAAO,MAAM;AAAA,EACzC,MAAM,QAAe,EAAE,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM;AAAA,EACzE,OAAO,EAAE,WAAW,MAAM,MAAM,WAAW,OAAO,MAAM;AAAA,CACzD;AAED,IAAM,QAAQ,CAAC,OAAqB,OAAc,QAChD,MAAM,IAAI,KAAK,OAAO,IAAI,CAAC,EAAE,KAAY,sBAAc,MAAG;AAAA,EAAG;AAAA,CAAS,CAAC;AAczE,IAAM,eAAe,CAAC,KAAc,eAA+C;AAAA,EACjF,IAAI,KAAK;AAAA,EACT,OAAO,OAAO,OAAO,YAAY,OAAO,QAAQ,CAAC,cAAc,EAAW,GAAG;AAAA,IAC3E,MAAM,aAAa;AAAA,IACnB,IAAI,WAAW,eAAe;AAAA,MAAY,OAAO;AAAA,IACjD,KAAK,WAAW;AAAA,EAClB;AAAA,EACA;AAAA;AAIK,IAAM,qBAAqB,CAChC,KACA,eAEO,YAAI,UAAU,GAAG;AAAA,EACtB,MAAM,QAAQ,OAAO;AAAA,EACrB,IAAI,UAAU;AAAA,IAAW;AAAA,EACzB,WAAW,MAAM,CAAC,KAAK,GAAI,MAAM,UAAU,MAAM,cAAc,CAAC,CAAE,GAAG;AAAA,IACnE,MAAM,aAAa,aAAa,OAAO,MAAM,MAAM,OAAO,MAAM,OAAO,EAAE,GAAG,UAAU;AAAA,IACtF,IAAI,eAAe;AAAA,MAAW,OAAO;AAAA,EACvC;AAAA,EACA;AAAA,CACD;AAcI,IAAM,mBAAmB,CAAC,KAAa,eACrC,YAAI,UAAU,GAAG;AAAA,EACtB,MAAM,aAAa,OAAO,mBAAmB,KAAK,UAAU;AAAA,EAC5D,IAAI,eAAe;AAAA,IAAW,OAAO;AAAA,EACrC,QAAQ,OAAO,iBAAiB,KAAK,WAAW,KAAK,KAAK,UAAU;AAAA,CACrE;AAQI,IAAM,WAAW,CAAC,KAAa,eAC7B,YACL,mBAAmB,KAAK,UAAU,GAClC,CAAC,eAAe,YAAY,WAAW,UACzC;AAaK,IAAM,sBAAsB,CAAC,KAAa,eACxC,YAAI,UAAU,GAAG;AAAA,EACtB,MAAM,QAAQ,OAAO;AAAA,EACrB,IAAI,UAAU;AAAA,IAAW;AAAA,EACzB,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO,MAAM,OAAO,GAAG;AAAA,EACtD,MAAM,OAAO;AAAA,EACb,IAAI,MAAM,WAAW,cAAc,KAAK,eAAe,cAAc,KAAK,SAAS,WAAW;AAAA,IAC5F;AAAA,EACF;AAAA,EACA,OAAO,MAAM,MAAM,OAAO,KAAK,MAAM,OAAO,IAAI,CAAC,EAAE,KAAY,cAAM;AAAA,CACtE;;;AFxFI,IAAM,eAAe,CAAC,QACpB,YAAI,UAAU,GAAG;AAAA,EACtB,MAAM,QAAQ,OAAc,sBAAc,MAAK;AAAA,EAC/C,MAAM,SAAgB,eAAO,KAAK,IAAI,MAAM,MAAM,UAAU,MAAM,QAAQ;AAAA,EAC1E,IAAI,WAAW;AAAA,IAAW,OAAO;AAAA,EACjC,MAAM,SAAS,OAAc,sBAAc,WAAW;AAAA,EACtD,IAAW,eAAO,MAAM;AAAA,IAAG,OAAO,OAAO;AAAA,EACzC,MAAM,UAAU,OAAc,sBAAc,cAAc;AAAA,EAC1D,OAAc,eAAO,OAAO,IAAI,QAAQ,MAAM,QAAQ;AAAA,CACvD;AAqBH,IAAM,YAAY,CAAC,UACV,YAAI,UAAU,GAAG;AAAA,EACtB,IAAI,OAAO,SAAS,MAAM,KAAK,MAAM,UAAU;AAAA,IAAG,OAAO;AAAA,EACzD,OAAO,OAAO,WAAW,MAAM,UAAU;AAAA,CAC1C;AAGI,IAAM,gBAAgB,CAAC,UACrB,YAAI,UAAU,GAAG;AAAA,EACtB,IAAI,EAAE,OAAO,aAAa,MAAM,GAAG;AAAA,IAAI,OAAO;AAAA,EAC9C,OAAO,OAAO,UAAU,KAAK;AAAA,CAC9B;AAuBI,IAAM,iBAAiB,CAAC,OAAc,SACpC,YAAI,UAAU,GAAG;AAAA,EACtB,IAAI,MAAM,WAAW;AAAA,IAAW;AAAA,EAChC,IAAI,OAAO,QAAQ,MAAM,UAAU;AAAA,IAAG;AAAA,EACtC,MAAM,MAAM,OAAO,UAAU,KAAK;AAAA,EAClC,IAAI,QAAQ,OAAO,aAAa,MAAM,GAAG;AAAA,IAAI;AAAA,EAC7C,OAAO,oBAAoB,MAAM,KAAK,MAAM,UAAU;AAAA,EACtD,MAAM,SAAS,MACX,mGACA;AAAA,EACJ,OAAO,OAAc,YACnB,IAAI,MACF,GAAG,yFACD,0FACA,+BAA+B,QACnC,CACF;AAAA,CACD;AAGI,IAAM,WACX,CAAC,UACD,CAAC,SACC,eAAe,OAAO,IAAI;;;AIzF9B;;;ACTO,IAAM,YAAY,CACvB,GACA,MACwB;AAAA,EACxB,IAAI,MAAM,aAAa,MAAM;AAAA,IAAW,OAAO;AAAA,EAC/C,IAAI,EAAE,QAAQ,aAAa,EAAE,QAAQ,aAAa,EAAE,QAAQ,aAAa,EAAE,QAAQ,WAAW;AAAA,IAC5F;AAAA,EACF;AAAA,EACA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE;AAAA;AAIjC,IAAM,UAAU,OACrB,QACA,GACA,MACiC;AAAA,EACjC,IAAI,MAAM;AAAA,IAAG,OAAO;AAAA,EACpB,OAAO,MAAM,SAAS,MAAM,QAAQ,IAAI,CAAC,OAAO,KAAK,CAAC,GAAG,OAAO,KAAK,CAAC,CAAC,CAAC;AAAA,EACxE,OAAO,UAAU,MAAM,KAAK;AAAA;AAQvB,IAAM,eAAe,OAC1B,QACA,SACA,MACA,QACA,WACkB;AAAA,EAClB,MAAM,OAAO,MAAM,QAAQ,QAAQ,SAAS,IAAI;AAAA,EAChD,IAAI,SAAS;AAAA,IAAM;AAAA,EACnB,MAAM,OAAO;AAAA,EACb,IAAI,SAAS,aAAc,MAAM,OAAO,KAAK,IAAI,MAAO,WAAW;AAAA,IACjE,MAAM,OACJ,MACA,yBAAyB,gEACvB,2FACA,sCACJ;AAAA,EACF;AAAA;;;ACzDF;;;ACqBO,MAAM,mBAAmB,MAAM;AAAA,EAEzB;AAAA,EADX,WAAW,CACA,MACT,QACA;AAAA,IACA,MAAM,SAAS,SAAS,KAAK,WAAW,SAAS,QAAQ;AAAA,IAHhD;AAAA,IAIT,KAAK,OAAO;AAAA;AAEhB;AAEA,IAAM,SACJ;AAAA,IACA,0DACA;AAAA,IACA;AAAA;AAGF,IAAM,YAAY;AASlB,IAAM,YAAY;AAQX,IAAM,aAAa,CAAC,MAAc,SAAyB;AAAA,EAChE,MAAM,MAAM,UAAU,KAAK,IAAI;AAAA,EAC/B,IAAI,QAAQ,MAAM;AAAA,IAChB,MAAM,OAAO,IAAI,GAAG,YAAY,CAAC,KAAK;AAAA,IACtC,MAAM,IAAI,WACR,MACA,KAAK,KAAK,SAAS,EAAE,EAAE,YAAY,EAAE,SAAS,GAAG,GAAG,4BACtD;AAAA,EACF;AAAA,EACA,OAAO,KACJ,WAAW,KAAK,OAAO,EACvB,WAAW,KAAK,MAAM,EACtB,WAAW,KAAK,MAAM,EACtB,WAAW,MAAM,OAAO;AAAA;AAG7B,IAAM,iBAAgB,CAAC,UAA2B;AAAA,EAChD,MAAM,QAAQ,OAAO,eAAe,KAAK;AAAA,EACzC,OAAO,UAAU,OAAO,aAAa,UAAU;AAAA;AAGjD,IAAM,cAAc,CAAC,OAAgB,MAAc,OAAe,QAAwB;AAAA,EACxF,MAAM,MAAM,KAAK,OAAO,KAAK;AAAA,EAC7B,IAAI,QAAQ;AAAA,IAAW,MAAM,IAAI,WAAW,MAAM,sBAAsB,OAAO,SAAS,GAAG;AAAA,EAC3F,IAAI,OAAO,UAAU,UAAU;AAAA,IAC7B,IAAI,KAAK,GAAG,cAAc,WAAW,OAAO,IAAI,YAAY;AAAA,IAC5D;AAAA,EACF;AAAA,EACA,IAAI,OAAO,UAAU,WAAW;AAAA,IAC9B,IAAI,KAAK,GAAG,OAAO,QAAQ,SAAS,WAAW;AAAA,IAC/C;AAAA,EACF;AAAA,EACA,IAAI,OAAO,UAAU,UAAU;AAAA,IAE7B,IAAI,CAAC,OAAO,cAAc,KAAK,GAAG;AAAA,MAChC,MAAM,IAAI,WAAW,MAAM,GAAG,OAAO,KAAK,6CAA6C;AAAA,IACzF;AAAA,IACA,IAAI,KAAK,GAAG,eAAe,OAAO,UAAU,IAAI,IAAI,KAAK,aAAa;AAAA,IACtE;AAAA,EACF;AAAA,EACA,IAAI,MAAM,QAAQ,KAAK,GAAG;AAAA,IACxB,IAAI,MAAM,WAAW,GAAG;AAAA,MACtB,IAAI,KAAK,GAAG,aAAa;AAAA,MACzB;AAAA,IACF;AAAA,IACA,IAAI,KAAK,GAAG,YAAY;AAAA,IACxB,YAAY,OAAO,SAAU,MAA6B,QAAQ,GAAG;AAAA,MACnE,YAAY,MAAM,GAAG,QAAQ,OAAO,KAAK,MAAM,QAAQ,GAAG,GAAG;AAAA,IAC/D;AAAA,IACA,IAAI,KAAK,GAAG,aAAa;AAAA,IACzB;AAAA,EACF;AAAA,EACA,IAAI,OAAO,UAAU,YAAY,UAAU,QAAQ,eAAc,KAAK,GAAG;AAAA,IACvE,WAAW,OAAkC,MAAM,OAAO,GAAG;AAAA,IAC7D;AAAA,EACF;AAAA,EACA,MAAM,OAAO,UAAU,OAAO,SAAS,OAAO;AAAA,EAC9C,MAAM,IAAI,WAAW,MAAM,GAAG,+CAA+C;AAAA;AAG/E,IAAM,aAAa,CACjB,MACA,MACA,OACA,QACS;AAAA,EACT,MAAM,MAAM,KAAK,OAAO,KAAK;AAAA,EAE7B,MAAM,OAAO,OAAO,KAAK,IAAI,EAAE,KAAK;AAAA,EACpC,IAAI,KAAK,WAAW,GAAG;AAAA,IACrB,IAAI,KAAK,GAAG,YAAY;AAAA,IACxB;AAAA,EACF;AAAA,EACA,IAAI,KAAK,GAAG,WAAW;AAAA,EACvB,WAAW,OAAO,MAAM;AAAA,IACtB,MAAM,QAAQ,SAAS,KAAK,MAAM,GAAG,QAAQ;AAAA,IAC7C,IAAI,KAAK,GAAG,YAAa,WAAW,KAAK,KAAK,SAAS;AAAA,IACvD,YAAY,KAAK,MAAM,OAAO,QAAQ,GAAG,GAAG;AAAA,EAC9C;AAAA,EACA,IAAI,KAAK,GAAG,YAAY;AAAA;AAInB,IAAM,cAAc,CAAC,SAA4B;AAAA,EACtD,IAAI,OAAO,SAAS,YAAY,SAAS,QAAQ,MAAM,QAAQ,IAAI,KAAK,CAAC,eAAc,IAAI,GAAG;AAAA,IAC5F,MAAM,IAAI,WAAW,IAAI,iDAAiD;AAAA,EAC5E;AAAA,EACA,MAAM,MAAgB,CAAC;AAAA,EACvB,WAAW,MAAiC,IAAI,GAAG,GAAG;AAAA,EACtD,OAAO,GAAG,SAAS,IAAI,KAAK;AAAA,CAAI;AAAA;AAAA;AAAA;;;ADxE3B,IAAM,cAAc,CAAC,WAA6C;AAAA,EACvE,IAAI,WAAW;AAAA,IAAU,OAAO,EAAE,MAAM,SAAS;AAAA,EACjD,MAAM,QAAQ,eAAe,KAAK,MAAM;AAAA,EACxC,OAAO,QAAQ,OAAO,YAAY,YAAY,EAAE,MAAM,OAAO,KAAK,OAAO,MAAM,EAAE,EAAE;AAAA;AAG9E,IAAM,gBAAgB,CAAC,OAAe,WAAkC,GAAG,UAAU;AAOrF,IAAM,eAAe,CAC1B,OACA,QACA,SACW;AAAA,EACX,IAAI,OAAO,SAAS;AAAA,IAAU,OAAO,0BAA0B;AAAA,EAE/D,IAAI,SAAS,aAAa,CAAC,KAAK,WAAW,GAAG,GAAG;AAAA,IAC/C,MAAM,IAAI,MAAM,OAAO,OAAO,OAAO,GAAG,gDAAgD;AAAA,EAC1F;AAAA,EACA,OAAO,GAAG,6BAA6B;AAAA;AAIlC,IAAM,aAAgC;AAAA,EAC3C;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;AACF;AAEA,IAAM,eAAe,CAAC,UAAuC;AAAA,EAC3D,MAAM,OAAmC,CAAC;AAAA,EAC1C,IAAI,MAAM,WAAW;AAAA,IAAW,KAAK,YAAY,MAAM;AAAA,EACvD,IAAI,MAAM,SAAS;AAAA,IAAW,KAAK,UAAU,MAAM;AAAA,EACnD,IAAI,MAAM,QAAQ;AAAA,IAAW,KAAK,SAAS,MAAM;AAAA,EACjD,IAAI,MAAM,YAAY;AAAA,IAAW,KAAK,aAAa,MAAM;AAAA,EACzD,IAAI,MAAM,UAAU;AAAA,IAAW,KAAK,WAAW,MAAM;AAAA,EACrD,OAAO;AAAA;AAGT,IAAM,iBAAiB,CAAC,cAAqC;AAAA,EAC3D,IAAI,OAAO,cAAc;AAAA,IAAW,OAAO;AAAA,EAC3C,MAAM,OAAmC,CAAC;AAAA,EAC1C,IAAI,UAAU,mBAAmB;AAAA,IAAW,KAAK,oBAAoB,UAAU;AAAA,EAC/E,IAAI,UAAU,YAAY;AAAA,IAAW,KAAK,aAAa,UAAU;AAAA,EACjE,OAAO;AAAA;AAIF,IAAM,eAAe,CAAC,UAAsC;AAAA,EACjE,MAAM,OAAmC,KAAK,MAAM,UAAU;AAAA,EAC9D,KAAK,WAAW,MAAM;AAAA,EACtB,KAAK,sBAAsB,CAAC,GAAG,MAAM,gBAAgB;AAAA,EACrD,MAAM,MAAM,MAAM,eAAe,CAAC;AAAA,EAClC,IAAI,OAAO,KAAK,GAAG,EAAE,SAAS;AAAA,IAAG,KAAK,0BAA0B,KAAK,IAAI;AAAA,EACzE,IAAI,MAAM,cAAc;AAAA,IAAW,KAAK,eAAe,MAAM;AAAA,EAC7D,IAAI,MAAM,cAAc;AAAA,IAAW,KAAK,eAAe,eAAe,MAAM,SAAS;AAAA,EACrF,IAAI,MAAM,kBAAkB;AAAA,IAAW,KAAK,mBAAmB,MAAM;AAAA,EACrE,MAAM,WAAW,MAAM;AAAA,EACvB,IAAI,aAAa,WAAW;AAAA,IAC1B,KAAK,2BAA2B,MAAM,QAAQ,QAAQ,IACjD,SAAyC,IAAI,YAAY,IAC1D,aAAa,QAA4B;AAAA,EAC/C;AAAA,EACA,IAAI,MAAM,qBAAqB;AAAA,IAAW,KAAK,sBAAsB,MAAM;AAAA,EAC3E,IAAI,MAAM,oBAAoB;AAAA,IAAW,KAAK,qBAAqB,MAAM;AAAA,EACzE,IAAI,MAAM,sBAAsB;AAAA,IAAW,KAAK,uBAAuB,MAAM;AAAA,EAC7E,IAAI,MAAM,qBAAqB;AAAA,IAAW,KAAK,sBAAsB,MAAM;AAAA,EAC3E,IAAI,MAAM,aAAa;AAAA,IAAW,KAAK,cAAc,MAAM;AAAA,EAC3D,IAAI,MAAM,cAAc;AAAA,IAAW,KAAK,eAAe,MAAM;AAAA,EAC7D,OAAO;AAAA;AAGF,IAAM,YAAY,CAAC,UACxB,WAAW,QAAQ,EAAE,OAAO,KAAK,EAAE,OAAO,KAAK;AAG1C,IAAM,YAAY,CACvB,UACwD;AAAA,EACxD,MAAM,OAAO,YAAY,aAAa,KAAK,CAAC;AAAA,EAC5C,MAAM,QAAQ,IAAI,YAAY,EAAE,OAAO,IAAI;AAAA,EAC3C,OAAO,EAAE,OAAO,QAAQ,UAAU,KAAK,GAAG,KAAK;AAAA;;;AE/IjD,IAAM,YAAY,CAAC,UACjB,OAAO,UAAU,WAAW,QAAQ,QAAQ,KAAK,KAAK,IAAI,OAAO,KAAK,IAAI;AAGrE,IAAM,aAAa,OACxB,QACA,UACA,MACA,WAC4C;AAAA,EAC5C,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI,SAAS,UAAU,WAAW;AAAA,IAChC,MAAM,UAAU,SAAS,KAAK,MAAM,MAAM,OAAO,WAAW,OAAO,SAAS,KAAK,CAAC,IAAI;AAAA,IACtF,IAAI,QAAQ;AAAA,MAAW,MAAM,OAAO,MAAM,WAAW,OAAO,SAAS,KAAK,gBAAgB;AAAA,EAC5F;AAAA,EACA,IAAI,SAAS,UAAU,WAAW;AAAA,IAChC,MAAM,UAAU,SAAS,KAAK,KAAM,MAAM,OAAO,YAAY,OAAO,SAAS,KAAK,CAAC;AAAA,IACnF,IAAI,QAAQ;AAAA,MAAW,MAAM,OAAO,MAAM,YAAY,OAAO,SAAS,KAAK,gBAAgB;AAAA,EAC7F;AAAA,EACA,OAAO,KAAM,QAAQ,YAAY,CAAC,IAAI,EAAE,IAAI,MAAQ,QAAQ,YAAY,CAAC,IAAI,EAAE,IAAI,EAAG;AAAA;AAIjF,IAAM,qBAAqB,OAChC,QACA,SAC4C;AAAA,EAC5C,MAAM,OAAO,MAAM,OAAO,KAAK,IAAI;AAAA,EACnC,IAAI,SAAS;AAAA,IAAW;AAAA,EACxB,MAAM,QAAQ,KAAK,SAAS,SAAS,MAAM,OAAO,SAAS,IAAI,IAAI;AAAA,EACnE,OAAO;AAAA,IACL,KAAK,KAAK;AAAA,IACV,MAAM,KAAK;AAAA,IACX;AAAA,IACA,QAAQ,UAAU,YAAY,KAAK,UAAU,KAAK;AAAA,IAClD,MAAM,KAAK;AAAA,IACX,KAAK,KAAK;AAAA,EACZ;AAAA;AAGK,IAAM,iBAAiB,CAAC,UAAoC;AAAA,EACjE,MAAM,KAAK;AAAA,KACP,KAAK,QAAQ,YAAY,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI;AAAA,KAC9C,KAAK,QAAQ,YAAY,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI;AACpD;AAEO,IAAM,cAAc,CAAC,MAA0B,SACpD,KAAK,WAAW,KAAK,UACrB,KAAK,SAAS,KAAK,SAClB,KAAK,QAAQ,aAAa,KAAK,QAAQ,KAAK,SAC5C,KAAK,QAAQ,aAAa,KAAK,QAAQ,KAAK;AAOxC,IAAM,aAAa,OACxB,QACA,MACA,WACkB;AAAA,EAClB,MAAM,SAAS,OAAO,SAA8B;AAAA,IAClD,MAAM,OAAO,aAAa,KAAK,MAAM,eAAe,IAAI,CAAC;AAAA,IACzD,OAAO;AAAA;AAAA,EAMT,IAAI,KAAK,SAAS,OAAO,MAAM;AAAA,IAC7B,MAAM,OAAO,MAAM,QAAQ,QAAQ,KAAK,MAAM,OAAO,IAAI;AAAA,IACzD,OAAO,OAAO,EAAE,QAAQ,SAAS,OAAO,WAAW,UAAU,CAAC;AAAA,EAChE;AAAA,EACA,IAAI,KAAK,WAAW,OAAO;AAAA,IAAQ,OAAO,OAAO,EAAE,QAAQ,SAAS,CAAC;AAAA,EACrE,MAAM,OAAO,MAAM,mBAAmB,QAAQ,KAAK,IAAI;AAAA,EACvD,OAAO,SAAS,aAAa,YAAY,MAAM,IAAI,IAC/C,EAAE,QAAQ,OAAO,IACjB,OAAO,EAAE,QAAQ,SAAS,CAAC;AAAA;AAsB1B,IAAM,eAAe,OAC1B,QACA,MACA,QACA,QAAQ,UACwB;AAAA,EAChC,QAAQ,MAAM,WAAW;AAAA,EACzB,MAAM,OAAO,KAAK;AAAA,EAElB,IAAI,KAAK,QAAQ,aAAa,KAAK,QAAQ,OAAO,aAAa,KAAK,CAAC,aAAa,MAAM,GAAG;AAAA,IACzF,MAAM,OACJ,MACA,SAAS,OAAO,KAAK,KAAK,sEACxB,2FACA,mCACJ;AAAA,EACF;AAAA,EACA,MAAM,OAAO,MAAM,OAAO,KAAK,IAAI;AAAA,EACnC,IAAI,SAAS,aAAa,KAAK,SAAS,QAAQ;AAAA,IAC9C,MAAM,OACJ,MACA,QAAQ,KAAK,gEACf;AAAA,EACF;AAAA,EACA,MAAM,SAAS,SAAS,YAAY,YAAY,MAAM,mBAAmB,QAAQ,IAAI;AAAA,EAKrF,MAAM,QAAQ,WAAW,aAAa,OAAO,SAAS;AAAA,EACtD,MAAM,QAAQ,QAAQ,YAAY;AAAA,EASlC,MAAM,WAAW,SAAS,WAAW;AAAA,EACrC,IAAI,UAAU,aAAa,WAAW,aAAa,CAAC,YAAY,QAAQ,IAAI,KAAK,CAAC,UAAU;AAAA,IAC1F,MAAM,OACJ,MACA,6FACE,sBACJ;AAAA,EACF;AAAA,EACA,IAAI,WAAW,aAAa,CAAC,YAAY,QAAQ,IAAI,GAAG;AAAA,IACtD,MAAM,QAAQ,MAAM,KAAK,SAAS,MAAM;AAAA,IAGxC,IAAI,UAAU,KAAK,MAAM,KAAK,QAAQ;AAAA,MACpC,MAAM,OAAO,MAAM,qCAAqC,KAAK,8BAA8B;AAAA,IAC7F;AAAA,IACA,MAAM,OAAO,gBAAgB,MAAM,OAAO,eAAe,IAAI,CAAC;AAAA,EAChE;AAAA,EAOA,MAAM,WAAW,YAAY;AAAA,IAC3B,IAAI,WAAW;AAAA,MAAW,MAAM,OAAO,WAAW,IAAI,EAAE,MAAM,MAAG;AAAA,QAAG;AAAA,OAAS;AAAA;AAAA,EAE/E,MAAM,QAAQ,MAAM,mBAAmB,QAAQ,IAAI,EAAE,MAAM,OAAO,UAAmB;AAAA,IACnF,MAAM,SAAS;AAAA,IACf,MAAM,OAAO,MAAM,kDAAkD,OAAO,KAAK,GAAG;AAAA,GACrF;AAAA,EACD,IAAI,UAAU,aAAa,CAAC,YAAY,OAAO,IAAI,GAAG;AAAA,IACpD,MAAM,SAAS;AAAA,IACf,MAAM,OAAO,MAAM,wEAAwE;AAAA,EAC7F;AAAA,EAGA,IAAI;AAAA,IACF,MAAM,aACJ,QACA,OAAO,MACP,MACA,MAAM,gBAAgB,QAAQ,QAAQ,MAAM,GAC5C,MACF;AAAA,EACF,OAAO;AAAA;AAIF,IAAM,kBAAkB,OAC7B,QACA,QACA,WACkB;AAAA,EAClB,MAAM,OAAO,MAAM,OAAO,KAAK,OAAO,IAAI;AAAA,EAC1C,IAAI,SAAS;AAAA,IAAW;AAAA,EACxB,IAAI,KAAK,SAAS;AAAA,IAAQ,MAAM,OAAO,OAAO,MAAM,YAAY,KAAK,uBAAuB;AAAA,EAC5F,MAAM,OAAO,WAAW,OAAO,IAAI;AAAA;;;AC3LrC,IAAM,QAAQ;AAEd,IAAM,aAAa,CAAC,OAAe,WACjC,GAAG,UAAU,KAAK,yCAAyC,qBAAqB,gBAChF,iCAAiC,gEACjC;AAGK,IAAM,kBAAkB,CAAC,OAAe,WAC7C,UAAU,SAAS,YAAY,GAAG,UAAU,WAAW,OAAO,MAAM;AAQ/D,IAAM,eAAe,OAC1B,QACA,MACA,UACgC;AAAA,EAChC,MAAM,OAAO,MAAM,OAAO,KAAK,KAAK,IAAI;AAAA,EACxC,IAAI,MAAM,SAAS;AAAA,IAAQ;AAAA,EAC3B,MAAM,SAAS,MAAM,mBAAmB,QAAQ,KAAK,IAAI,IAAI,UAAU;AAAA,EACvE,IAAI,UAAU,KAAK;AAAA,IAAQ,OAAO,gBAAgB,OAAO,KAAK,MAAM;AAAA,EACpE,IAAI;AAAA,IAAO;AAAA,EACX,OACE,GAAG,0FACH,kFACA,+FACA,+FACA,8FACA;AAAA;;;AC/DJ;AAAA;AAGO,MAAM,sBAA2B,iBAAY,eAAe,EAEhE;AAAC;AAAA;AAGG,MAAM,uBAA4B,iBAAY,gBAAgB,EAIlE;AAAC;AAAA;AAGG,MAAM,yBAA8B,iBAAY,kBAAkB,EAKtE;AAAC;AAAA;AAGG,MAAM,uBAA4B,iBAAY,gBAAgB,EAElE;AAAC;;;ACAJ,IAAM,QAAQ;AAEd,IAAM,QAA0C;AAAA,EAC9C,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AACL;AAEA,IAAM,SAAS,CAAC,YAAoC,IAAI,eAAe,EAAE,QAAQ,CAAC;AAClF,IAAM,SAAS,IAAI,YAAY,SAAS,EAAE,OAAO,KAAK,CAAC;AACvD,IAAM,QAAQ,IAAI,YAAY,QAAQ;AAGtC,IAAM,QAAQ,CAAC,OAAmB,OAAe,WAA+B;AAAA,EAC9E,MAAM,QAAQ,MAAM,SAAS,OAAO,QAAQ,MAAM;AAAA,EAClD,MAAM,MAAM,MAAM,QAAQ,CAAC;AAAA,EAC3B,OAAO,QAAQ,KAAK,QAAQ,MAAM,SAAS,GAAG,GAAG;AAAA;AAGnD,IAAM,OAAO,CAAC,OAAmB,OAAe,WAA2B;AAAA,EACzE,IAAI;AAAA,IACF,OAAO,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,CAAC;AAAA,IAChD,MAAM;AAAA,IACN,MAAM,OAAO,4BAA4B;AAAA;AAAA;AAI7C,IAAM,QAAQ,CAAC,OAAmB,OAAe,QAAgB,SAAyB;AAAA,EACxF,MAAM,MAAM,MAAM,SAAS,OAAO,QAAQ,MAAM;AAAA,EAChD,MAAM,IAAI,MAAM,KAAK,SAAU;AAAA,IAAG,MAAM,OAAO,GAAG,0BAA0B;AAAA,EAC5E,MAAM,SAAS,MACZ,OAAO,GAAG,EACV,QAAQ,WAAW,EAAE,EACrB,QAAQ,OAAO,EAAE;AAAA,EACpB,IAAI,CAAC,WAAW,KAAK,MAAM;AAAA,IAAG,MAAM,OAAO,GAAG,sBAAsB,KAAK,UAAU,MAAM,GAAG;AAAA,EAC5F,OAAO,OAAO,SAAS,QAAQ,CAAC;AAAA;AAGlC,IAAM,gBAAgB,CAAC,UAA+B;AAAA,EACpD,IAAI,MAAM;AAAA,EAEV,SAAS,KAAK,EAAG,KAAK,OAAO,MAAM;AAAA,IAAG,OAAO,MAAM,OAAO,KAAK,MAAM,KAAQ,MAAM,OAAO;AAAA,EAC1F,OAAO,QAAQ,MAAM,OAAO,KAAK,GAAG,mBAAmB;AAAA;AAIzD,IAAM,cAAc,CAAC,SAAqC;AAAA,EACxD,IAAI,SAAS;AAAA,IAAI,OAAO;AAAA,EACxB,IAAI,KAAK,WAAW,GAAG;AAAA,IAAG,OAAO;AAAA,EACjC,IAAI,KAAK,MAAM,GAAG,EAAE,SAAS,IAAI;AAAA,IAAG,OAAO;AAAA,EAC3C;AAAA;AAIK,IAAM,cAAc,CAAC,UAA6C;AAAA,EACvE,MAAM,MAAM,IAAI,WAAW,MAAM,OAAO,CAAC,OAAO,SAAS,QAAQ,KAAK,QAAQ,CAAC,CAAC;AAAA,EAChF,IAAI,KAAK;AAAA,EACT,WAAW,QAAQ,OAAO;AAAA,IACxB,IAAI,IAAI,MAAM,EAAE;AAAA,IAChB,MAAM,KAAK;AAAA,EACb;AAAA,EACA,OAAO;AAAA;AAkBF,IAAM,YAAY,CAAC,QAA6B,SAAkB;AAAA,EACvE,MAAM,SAAS,IAAI,WAAW,KAAK;AAAA,EACnC,MAAM,UAAU,IAAI;AAAA,EACpB,MAAM,QAAkB,CAAC;AAAA,EACzB,MAAM,OAAO,IAAI;AAAA,EACjB,IAAI,QAA2C;AAAA,EAC/C,IAAI,SAAS;AAAA,EACb,IAAI,YAAY;AAAA,EAChB,IAAI,UAAU;AAAA,EACd,IAAI,QAAQ;AAAA,EACZ,IAAI,OAAO;AAAA,EACX,IAAI;AAAA,EACJ,IAAI,WAAW;AAAA,EACf,MAAM,aAAa,SAAS,YAAY,YAAY,GAAG;AAAA,EAEvD,MAAM,WAAW,MAAM;AAAA,IACrB,IAAI,UAAU;AAAA,MAAW,QAAQ,IAAI,MAAM,YAAY,KAAK,CAAC;AAAA,IAC7D,QAAQ;AAAA,IACR,QAAQ,UAAU,IAAI,QAAQ;AAAA;AAAA,EAGhC,MAAM,aAAa,MAAM;AAAA,IACvB,IAAI,OAAO,MAAM,CAAC,SAAS,SAAS,CAAC,GAAG;AAAA,MACtC,SAAS;AAAA,MACT,IAAI,UAAU;AAAA,QAAG,QAAQ;AAAA,MACzB;AAAA,IACF;AAAA,IACA,IAAI,QAAQ;AAAA,MAAG,MAAM,OAAO,0DAA0D;AAAA,IACtF,IAAI,CAAC,cAAc,MAAM;AAAA,MAAG,MAAM,OAAO,oCAAoC;AAAA,IAC7E,MAAM,QAAQ,MAAM,OAAO,OAAO,SAAS,KAAK,GAAG,CAAC;AAAA,IACpD,MAAM,QAAQ,UAAU;AAAA,IACxB,IAAI,CAAC,SAAS,UAAU;AAAA,MACtB,MAAM,OAAO,0CAA0C;AAAA,IACzD,MAAM,SAAS,QAAQ,KAAK,QAAQ,KAAK,GAAG,IAAI;AAAA,IAChD,MAAM,UAAU,WAAW,KAAK,KAAK,QAAQ,GAAG,GAAG,IAAI,GAAG,UAAU,KAAK,QAAQ,GAAG,GAAG;AAAA,IACvF,MAAM,UAAU,YAAY,OAAO;AAAA,IACnC,IAAI,YAAY;AAAA,MAAW,MAAM,OAAO,SAAS,KAAK,UAAU,OAAO,KAAK,SAAS;AAAA,IAIrF,IAAI,eAAe,aAAa,YAAY,YAAY;AAAA,MACtD,IAAI,UAAU;AAAA,QAGZ,MAAM,OAAO,UAAU,+DAA+D;AAAA,MACxF;AAAA,MACA,MAAM,QAAO,OAAO,aAAa,OAAO,QAAQ,CAAC;AAAA,MACjD,MAAM,OAAO,MAAM,QAAQ,KAAK,IAAI,UAAU,iBAAiB;AAAA,MAC/D,IAAI,UAAS,OAAO,SAAS,GAAG;AAAA,QAC9B,MAAM,OAAO,UAAU,6DAA6D;AAAA,MACtF;AAAA,MACA,WAAW;AAAA,MACX,QAAQ;AAAA,MACR;AAAA,IACF;AAAA,IACA,IAAI,WAAW;AAAA,IACf,IAAI,eAAe,WAAW;AAAA,MAC5B,IAAI,CAAC,QAAQ,WAAW,UAAU,GAAG;AAAA,QACnC,MAAM,OAAO,UAAU,0CAA0C,aAAa;AAAA,MAChF;AAAA,MAQA,WAAW,QAAQ,MAAM,WAAW,MAAM;AAAA,MAC1C,MAAM,kBAAkB,YAAY,QAAQ;AAAA,MAC5C,IAAI,oBAAoB,WAAW;AAAA,QACjC,MAAM,OACJ,UAAU,sBAAsB,KAAK,UAAU,QAAQ,YAAY,iBACrE;AAAA,MACF;AAAA,IACF;AAAA,IACA,OAAO;AAAA,IACP,MAAM,OAAO,OAAO,aAAa,OAAO,QAAQ,CAAC;AAAA,IACjD,IAAI,SAAS,OAAO,SAAS,QAAM;AAAA,MACjC,MAAM,OAAO,MAAM,SAAS,mBAAmB,KAAK,UAAU,IAAI;AAAA,MAClE,MAAM,OAAO,UAAU,eAAe,uCAAuC;AAAA,IAC/E;AAAA,IACA,IAAI,KAAK,IAAI,IAAI;AAAA,MAAG,MAAM,OAAO,UAAU,wBAAwB;AAAA,IACnE,KAAK,IAAI,IAAI;AAAA,IACb,MAAM,KAAK,IAAI;AAAA,IACf,YAAY,MAAM,QAAQ,KAAK,IAAI,UAAU,iBAAiB;AAAA,IAC9D,WAAW,QAAS,YAAY,SAAU;AAAA,IAC1C,QAAQ,OAAO,IAAI,IAAI,IAAI,CAAC,IAAI;AAAA,IAChC,QAAQ;AAAA,IACR,IAAI,cAAc;AAAA,MAAG,SAAS;AAAA;AAAA,EAGhC,MAAM,OAAO,CAAC,UAA4B;AAAA,IACxC,IAAI,KAAK;AAAA,IACT,OAAO,KAAK,MAAM,QAAQ;AAAA,MACxB,IAAI,UAAU,OAAO;AAAA,QACnB,IAAI,MAAM,SAAS,EAAE,EAAE,KAAK,CAAC,SAAS,SAAS,CAAC,GAAG;AAAA,UACjD,MAAM,OAAO,wCAAwC;AAAA,QACvD;AAAA,QACA;AAAA,MACF;AAAA,MACA,IAAI,UAAU,UAAU;AAAA,QACtB,MAAM,OAAO,KAAK,IAAI,QAAQ,QAAQ,MAAM,SAAS,EAAE;AAAA,QACvD,OAAO,IAAI,MAAM,SAAS,IAAI,KAAK,IAAI,GAAG,MAAM;AAAA,QAChD,UAAU;AAAA,QACV,MAAM;AAAA,QACN,IAAI,WAAW,OAAO;AAAA,UACpB,SAAS;AAAA,UACT,WAAW;AAAA,QACb;AAAA,MACF,EAAO,SAAI,UAAU,QAAQ;AAAA,QAC3B,MAAM,OAAO,KAAK,IAAI,WAAW,MAAM,SAAS,EAAE;AAAA,QAElD,OAAO,KAAK,MAAM,MAAM,IAAI,KAAK,IAAI,CAAC;AAAA,QACtC,aAAa;AAAA,QACb,MAAM;AAAA,QACN,IAAI,cAAc;AAAA,UAAG,SAAS;AAAA,MAChC,EAAO;AAAA,QACL,MAAM,OAAO,KAAK,IAAI,SAAS,MAAM,SAAS,EAAE;AAAA,QAChD,WAAW;AAAA,QACX,MAAM;AAAA,QACN,IAAI,YAAY;AAAA,UAAG,QAAQ;AAAA;AAAA,IAE/B;AAAA;AAAA,EAGF,MAAM,SAAS,MAAmB;AAAA,IAChC,IAAI,UAAU;AAAA,MAAO,MAAM,OAAO,oDAAoD;AAAA,IACtF,IAAI,eAAe,aAAa,CAAC,UAAU;AAAA,MACzC,MAAM,OAAO,sBAAsB,0CAA0C;AAAA,IAC/E;AAAA,IACA,OAAO,EAAE,SAAS,MAAM;AAAA;AAAA,EAG1B,OAAO,EAAE,QAAQ,KAAK;AAAA;;;AC3OxB,IAAM,QAAQ,KAAK;AAOZ,IAAM,iBAAiB,OAC5B,SACA,QACA,SACyB;AAAA,EACzB,MAAM,MAAM,UAAU,QAAQ,IAAI;AAAA,EAKlC,IAAI,SAAS;AAAA,EAKb,MAAM,SAAS,IAAI,eAA8C;AAAA,IAC/D,IAAI,CAAC,YAAY;AAAA,MACf,IAAI,UAAU,QAAQ,QAAQ;AAAA,QAC5B,WAAW,MAAM;AAAA,QACjB;AAAA,MACF;AAAA,MACA,WAAW,QAAQ,QAAQ,MAAM,QAAQ,SAAS,KAAK,CAAC;AAAA,MACxD,UAAU;AAAA;AAAA,EAEd,CAAC;AAAA,EAGD,MAAM,SAAS,IAAI,oBAAoB,MAAM;AAAA,EAC7C,MAAM,WAAW,OAAO,YAAY,MAAM,EAAE,UAAU;AAAA,EACtD,IAAI;AAAA,IACF,UAAS;AAAA,MACP,QAAQ,MAAM,UAAU,MAAM,SAAS,KAAK;AAAA,MAC5C,IAAI;AAAA,QAAM;AAAA,MACV,IAAI,KAAK,KAAK;AAAA,IAChB;AAAA,IACA,OAAO,OAAO;AAAA,IACd,MAAM,SAAS,OAAO,EAAE,MAAM,MAAG;AAAA,MAAG;AAAA,KAAS;AAAA,IAC7C,IAAI,iBAAiB;AAAA,MAAgB,MAAM;AAAA,IAC3C,MAAM,IAAI,eAAe,EAAE,SAAS,sBAAsB,OAAO,KAAK,KAAK,CAAC;AAAA;AAAA,EAE9E,OAAO,IAAI,OAAO;AAAA;AAGpB,IAAM,WAAW,CAAC,SAAiB,UAAkB,WACnD,IAAI,iBAAiB;AAAA,EACnB;AAAA,EACA;AAAA,EACA,SAAS,GAAG,qBAAqB,0BAA0B;AAAA,EAC3D;AACF,CAAC;AAOI,IAAM,iBAAiB,OAC5B,SACA,YACwB;AAAA,EACxB,MAAM,aAAa,UAAU,OAAO;AAAA,EACpC,IAAI,eAAe,QAAQ;AAAA,IAAQ,MAAM,SAAS,QAAQ,KAAK,QAAQ,QAAQ,UAAU;AAAA,EACzF,QAAQ,SAAS,UAAU,MAAM,eAAe,SAAS,IAAI,IAAI,CAAC,QAAQ,MAAM,CAAC,GAAG,QAAQ,IAAI;AAAA,EAChG,MAAM,QAAQ,QAAQ,IAAI,QAAQ,MAAM;AAAA,EACxC,IAAI,UAAU,WAAW;AAAA,IACvB,MAAM,QAAQ,QAAQ,SAAS,YAAY,KAAK,gBAAgB,QAAQ;AAAA,IACxE,MAAM,IAAI,eAAe;AAAA,MACvB,SAAS,GAAG,QAAQ,oCAAoC,QAAQ,UAAU,iBAAiB,MAAM,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,IAAI,KAAK;AAAA,IACtI,CAAC;AAAA,EACH;AAAA,EACA,MAAM,YAAY,UAAU,KAAK;AAAA,EACjC,IAAI,cAAc,QAAQ,cAAc;AAAA,IACtC,MAAM,SAAS,WAAW,QAAQ,WAAW,QAAQ,cAAc,SAAS;AAAA,EAC9E;AAAA,EACA,OAAO;AAAA;;;ACjEF,IAAM,UAAU;AAEhB,IAAM,UAAS,CAAC,MAAc,YACnC,IAAI,cAAc,EAAE,SAAS,kBAAkB,SAAS,UAAU,CAAC;AAGrE,IAAM,WAAW,CAAC,MAAc,UAA4B;AAAA,EAC1D,MAAM,MAAM,CAAC,YAAoB,kBAAkB,SAAS,YAAY;AAAA,EACxE,IAAI,iBAAiB,kBAAkB;AAAA,IACrC,QAAQ,QAAQ,UAAU,YAAY;AAAA,IACtC,OAAO,IAAI,iBAAiB,EAAE,QAAQ,UAAU,SAAS,IAAI,MAAM,OAAO,GAAG,QAAQ,CAAC;AAAA,EACxF;AAAA,EACA,IAAI,iBAAiB;AAAA,IAAgB,OAAO,IAAI,eAAe,EAAE,SAAS,IAAI,MAAM,OAAO,EAAE,CAAC;AAAA,EAC9F,IAAI,iBAAiB,gBAAgB;AAAA,IACnC,OAAO,IAAI,eAAe,EAAE,SAAS,IAAI,MAAM,OAAO,GAAG,WAAW,MAAM,UAAU,CAAC;AAAA,EACvF;AAAA,EACA,OAAO;AAAA;AAMF,IAAM,gBAAgB,OAC3B,QACA,UACqB;AAAA,EACrB,MAAM,OAAO,kBAAkB,KAAK;AAAA,EACpC,MAAM,WAAW,eAAe,KAAK;AAAA,EACrC,IAAI,SAAS,SAAS;AAAA,IAAG,MAAM,QAAO,MAAM,GAAG,SAAS,KAAK,IAAI,MAAM,SAAS;AAAA,EAChF,MAAM,MAAM,MAAM,WAAW,QAAQ,OAAO,MAAM,OAAM;AAAA,EACxD,MAAM,OAAO,MAAM,QAAQ;AAAA,EAC3B,OAAO,EAAE,UAAU,eAAe,KAAK,GAAG,MAAM,EAAE,MAAM,MAAM,QAAQ,MAAM,WAAW,IAAI,EAAE;AAAA;AAG/F,IAAM,aAAa,CACjB,OACA,cAC6B,KAAK,OAAO,QAAQ,SAAS,QAAQ,KAAK,SAAS,IAAI;AAO/E,IAAM,aAAa,OACxB,QACA,UACiD;AAAA,EACjD,QAAQ,UAAU,SAAS,MAAM,cAAc,QAAQ,KAAK;AAAA,EAC5D,MAAM,QAAQ,MAAM,mBAAmB,QAAQ,KAAK,IAAI;AAAA,EACxD,OAAO,UAAU,YAAY,YAAY,WAAW,OAAO,QAAQ;AAAA;AAI9D,IAAM,gBAAgB,OAC3B,QACA,WACiD;AAAA,EACjD,MAAM,QAAQ,MAAM,mBAAmB,QAAQ,OAAO,IAAI;AAAA,EAC1D,OAAO,UAAU,YAAY,YAAY,KAAK,OAAO,QAAQ,OAAO,QAAQ,KAAK,OAAO,IAAI;AAAA;AAQ9F,IAAM,iBAAiB,OAAO,QAAoB,UAA6C;AAAA,EAC7F,MAAM,OAAO,MAAM,OAAO,KAAK,MAAM,SAAS;AAAA,EAQ9C,IAAI,MAAM,SAAS,gBAAgB,KAAK,OAAO,QAAW,GAAG;AAAA,IAC3D,MAAM,QACJ,kBAAkB,KAAK,GACvB,aAAa,MAAM,mDACjB,GAAG,KAAK,KAAK,SAAS,CAAC,EAAE,SAAS,GAAG,GAAG,iDACxC,wCAAwC,SAC5C;AAAA,EACF;AAAA,EACA,IAAI,MAAM,SAAS;AAAA,IAAa;AAAA,EAChC,MAAM,MAAM,SAAS,YAAY,mBAAmB,QAAQ,KAAK;AAAA,EACjE,MAAM,QACJ,kBAAkB,KAAK,GACvB,aAAa,MAAM,aAAa,sDAAsD,SACxF;AAAA;AAoBK,IAAM,kBAAkB,OAC7B,QACA,OACA,OACA,UAA4B,CAAC,MACQ;AAAA,EACrC,QAAQ,QAAQ,OAAO,WAAW,CAAC,GAAG,cAAO,YAAS;AAAA,IAAG;AAAA,QAAc;AAAA,EAEvE,IAAI,SAAS,SAAS,GAAG;AAAA,IACvB,MAAM,QACJ,kBAAkB,KAAK,GACvB,GAAG,SAAS,KAAK,IAAI,sEACnB,8BAA8B,SAClC;AAAA,EACF;AAAA,EACA,QAAQ,UAAU,SAAS,MAAM,cAAc,QAAQ,KAAK;AAAA,EAE5D,MAAM,OAAO,QAAQ;AAAA,EACrB,IAAI,SAAS,aAAa,kBAAkB,IAAI,MAAM,KAAK,QAAQ,UAAU,MAAM,KAAK,GAAG;AAAA,IACzF,MAAM,QAAO,KAAK,MAAM,GAAG,eAAe,MAAM,KAAK,MAAM,SAAS;AAAA,EACtE;AAAA,EACA,MAAM,eAAe,QAAQ,KAAK;AAAA,EAKlC,IAAI,QAAQ,WAAW,WAAW;AAAA,IAChC,MAAM,UAAU,MAAM,aAAa,QAAQ,MAAM,KAAK;AAAA,IACtD,IAAI,YAAY;AAAA,MAAW,MAAM,QAAO,KAAK,MAAM,GAAG,YAAY,SAAS;AAAA,EAC7E;AAAA,EACA,MAAM,WAAW,OAAO,WAAgE;AAAA,IAGtF,IAAI,QAAQ,WAAW,KAAK,QAAQ;AAAA,MAClC,MAAM,QAAQ,MAAM,OAAO,SAAS,KAAK,IAAI;AAAA,MAC7C,IAAI,UAAU,aAAa,UAAU,KAAK,MAAM,KAAK;AAAA,QAAQ,OAAO;AAAA,IACtE;AAAA,IACA,MAAM,MAAK,eAAe,SAAS,QAAQ,OAAO,SAAS,IAAI,UAAU;AAAA,IACzE,IAAI;AAAA,MACF,MAAM,QAAQ,MAAM,eAAe,MAAM,MAAM,SAAS,KAAK,SAAS,IAAI,GAAG,QAAQ;AAAA,MACrF,MAAM,MAAK,YAAY,SAAS,UAAU,SAAS,cAAc;AAAA,MACjE,OAAO;AAAA,MACP,OAAO,OAAO;AAAA,MACd,MAAM,SAAS,KAAK,MAAM,KAAK;AAAA;AAAA;AAAA,EAGnC,MAAM,OAAO,EAAE,UAAU,OAAO,MAAM,OAAO,iBAAQ,KAAK;AAAA,EAC1D,OAAO,WAAW,MAAM,aAAa,QAAQ,MAAM,QAAQ,QAAQ,KAAK,GAAG,QAAQ;AAAA;AAI9E,IAAM,eAAe,CAAC,QAAoB,WAC/C,gBAAgB,QAAQ,QAAQ,OAAM;;;AT1JjC,IAAM,aAAa,OACxB,QACA,MACA,MACA,WAC8B;AAAA,EAC9B,MAAM,WAAW,YAAa,QAAQ,CAAC,CAAuC;AAAA,EAC9E,IAAI,SAAS,SAAS;AAAA,IAAG,MAAM,QAAO,OAAO,MAAM,GAAG,SAAS,KAAK,IAAI,MAAM,SAAS;AAAA,EAGvF,MAAM,WAAW,gBAAgB,OAAO,QAAQ,KAAK,MAAM;AAAA,EAC3D,IAAI,aAAa;AAAA,IAAW,MAAM,QAAO,OAAO,MAAM,GAAG,aAAa,SAAS;AAAA,EAE/E,MAAM,OAAO;AAAA,EACb,MAAM,YAAY,eAAe,MAAM,WAAW;AAAA,EAClD,MAAM,OAAO,cAAc,YAAY,YAAY,GAAG,aAAa,KAAK;AAAA,EACxE,MAAM,SAAS,UAAU,MAAM,IAAI;AAAA,EACnC,IAAI,UAAU,SAAS,OAAO,MAAM;AAAA,IAClC,MAAM,QAAO,OAAO,MAAM,GAAG,eAAe,MAAM,IAAI,MAAM,SAAS;AAAA,EACvE;AAAA,EAEA,IAAI,WAAW,IAAI;AAAA,IAAG,OAAO,WAAW,SAAS,MAAM,cAAc,QAAQ,IAAI,GAAG,MAAM,MAAM;AAAA,EAChG,IAAI,SAAS;AAAA,IAAW,OAAO,SAAS,OAAO,OAAO,YAAY,EAAE,QAAQ,UAAU;AAAA,EACtF,IAAI,KAAK,SAAS,KAAK,QAAQ,KAAK,WAAW,KAAK;AAAA,IAAQ,OAAO,EAAE,QAAQ,UAAU;AAAA,EACvF,OAAO,SAAS,EAAE,QAAQ,SAAS,IAAI;AAAA;;;AU9CzC,oBAAS;AACT;AAUO,IAAM,mBAAmB,CAAC,QAAoB,QAC5C,YAAI,UAAU,GAAG;AAAA,EACtB,MAAM,cAAc,OAAO,mBAAmB,IAAI,KAAK,IAAI,UAAU,OAAO;AAAA,EAC5E,MAAM,OAAO,KAAK,MAAM,WAAW,QAAQ,IAAI,IAA0B,CAAC;AAAA,EAC1E,MAAM,QAAQ,aACV,OAAO,KAAK,KACH,cAAM,CAAC,UACL,WACE,mBACL,GAAG,IAAI,+DAA+D,MAAM,eAC1E,qFACJ,GACA,SACF,CACF,CACF,IACA,OAAO;AAAA,EACX,OAAO,UAAU,YAAY,YAAY,SAAQ,KAAK;AAAA,CACvD;;;AChCH,kBAAS;AACT;AACA;AAIO,IAAM,sBAAsB,CAAC,QAC3B,YAAI,UAAU,GAAG;AAAA,EACtB,MAAM,QAAQ,OAAc,sBAAc,MAAK;AAAA,EAC/C,IAAW,eAAO,KAAK;AAAA,IAAG,OAAO,CAAC;AAAA,EAClC,MAAM,WAAoB,MAAM,MAAM,UAAU,MAAM;AAAA,EACtD,IAAI,OAAO,aAAa,YAAY,OAAO,aAAa;AAAA,IAAY,OAAO,CAAC;AAAA,EAC5E,IAAI,aAAa;AAAA,IAAM,OAAO,CAAC;AAAA,EAC/B,OAAO,YAAY,QAA6C,EAAE,IAChE,CAAC,YAAY,qCAAqC,SACpD;AAAA,CACD;;;ACtBH;AACA;AACA;AACA;AAgBA,IAAM,SAAS,CAAC,SAAiB,cAAuB,IAAI,eAAe,EAAE,SAAS,UAAU,CAAC;AAEjG,IAAM,UAAU,CAAC,KAAa,SACrB,YAAI,UAAU,GAAG;AAAA,EACtB,MAAM,SAAS,OAAkB;AAAA,EACjC,MAAM,WAAW,OAAO,OAAO,IAAI,GAAG;AAAA,EACtC,IAAI,SAAS,WAAW,KAAK;AAAA,IAC3B,OAAO,OAAO,OAAO,GAAG,aAAa,OAAO,SAAS,MAAM,KAAK,SAAS,UAAU,GAAG;AAAA,EACxF;AAAA,EAGA,MAAM,UAAU,IAAI,WAAW,IAAI;AAAA,EACnC,IAAI,QAAQ;AAAA,EACZ,OAAc,kBAAW,SAAS,QAAQ,CAAC,UAAU;AAAA,IACnD,IAAI,QAAQ,MAAM,SAAS,MAAM;AAAA,MAC/B,OAAc,aAAK,OAAO,GAAG,6BAA6B,OAAO,IAAI,WAAW,KAAK,CAAC;AAAA,IACxF;AAAA,IACA,QAAQ,IAAI,OAAO,KAAK;AAAA,IACxB,SAAS,MAAM;AAAA,IACf,OAAc;AAAA,GACf;AAAA,EACD,IAAI,UAAU,MAAM;AAAA,IAClB,OAAO,OAAO,OAAO,GAAG,QAAQ,OAAO,KAAK,yBAAyB,OAAO,IAAI,KAAK,IAAI;AAAA,EAC3F;AAAA,EACA,OAAO;AAAA,CACR,EAAE,KAEM,iBAAS,mBAAmB,CAAC,UAAiB,aAAK,OAAO,MAAM,SAAS,IAAI,CAAC,CAAC,CACxF;AAGK,IAAM,iBAAiB,CAC5B,KACA,MACA,SAAyB,CAAC,MAE1B,QAAQ,KAAK,IAAI,EAAE,KACV,sBAAc;AAAA,EACnB,UAAU,OAAO,WAAW;AAAA,EAC5B,QAAQ,MAAa,aAAK,OAAO,GAAG,qCAAqC,KAAK,CAAC;AACjF,CAAC,GACM,cAAM;AAAA,EACX,UAAmB,gBAAO,OAAO,WAAW,WAAW;AAAA,EACvD,OAAO,OAAO,WAAW;AAAA,EACzB,OAAO,CAAC,UAA0B,MAAM;AAC1C,CAAC,CACH;AAGK,IAAM,mBACX,CAAC,QAA+B,SAAyB,CAAC,MAC1D,CAAC,KAAK,SACG,mBACL,eAAe,KAAK,MAAM,MAAM,EAAE,KAAY,uBAA0B,uBAAY,MAAM,CAAC,CAC7F;AAUG,IAAM,kBAAkB,CAAC,UAAsC;AAAA,EACpE,MAAM,WAAW,IAAI;AAAA,EACrB,OAAO,CAAC,KAAK,SAAS;AAAA,IACpB,MAAM,MAAM,GAAG,OAAO,IAAI,KAAK;AAAA,IAC/B,MAAM,UAAU,SAAS,IAAI,GAAG;AAAA,IAChC,IAAI,YAAY;AAAA,MAAW,OAAO;AAAA,IAClC,MAAM,UAAU,MAAM,KAAK,IAAI,EAAE,QAAQ,MAAM,SAAS,OAAO,GAAG,CAAC;AAAA,IACnE,SAAS,IAAI,KAAK,OAAO;AAAA,IACzB,OAAO;AAAA;AAAA;;;AnBxBJ,IAAM,gBAAgB,SAAwB,gBAAgB;AAK9D,IAAM,4BAA4B,CAAC,YAAoC,CAAC,MACpE,gBACP,eACO,YAAI,UAAU,GAAG;AAAA,EACtB,MAAM,SAAS,OAAO;AAAA,EACtB,MAAM,SAAS,OAAkB;AAAA,EACjC,MAAM,QAAQ,gBAAgB,iBAAiB,QAAQ,UAAU,QAAQ,CAAC;AAAA,EAU1E,MAAM,SAAS,IAAI;AAAA,EACnB,MAAM,QAAQ,CAAC,KAAa,UAAoC;AAAA,IAC9D,MAAM,OAAO,kBAAkB,KAAK;AAAA,IACpC,MAAM,SAAS,OAAO,IAAI,IAAI;AAAA,IAC9B,IAAI,WAAW,aAAa,WAAW,KAAK;AAAA,MAC1C,MAAM,QACJ,MACA,2BAA2B,2DACzB,2DAA2D,SAC/D;AAAA,IACF;AAAA,IACA,OAAO,IAAI,MAAM,GAAG;AAAA;AAAA,EAEtB,OAAO,cAAc,SAAS,GAAG;AAAA,IAC/B,MAAM,MAAa,gBAAQ,CAAC,CAAC;AAAA,IAK7B,MAAM,GAAG,KAAK,YAAY,MAAM,aAC9B,WAAW,YACP,iBAAiB,QAAQ,EAAE,KAAK,YAAY,KAAK,CAAC,IAClD,KAAK,MAAM,cAAc,QAAQ,MAAM,CAAC;AAAA,IAE9C,MAAM,GAAG,YAAY,MAAM,MAAM,aAC/B,WAAW,YACP,eAAe,UAAU,IACzB,KAAK,MAAM,WAAW,QAAQ,MAAM,MAAM,MAAM,CAAC;AAAA,IAKvD,WAAW,GAAG,KAAK,YAAY,MAAM,MAAM,QAAQ,cAC1C,YAAI,UAAU,GAAG;AAAA,MACtB,MAAM,WAAW,OAAO,oBAAoB,GAAG;AAAA,MAC/C,MAAM,QAAQ,OAAO,cAAc,EAAE,KAAK,YAAY,OAAO,CAAC;AAAA,MAC9D,OAAO,OAAO,KAAK,YAAY;AAAA,QAC7B,MAAM,KAAK,IAAI;AAAA,QACf,OAAO,gBAAgB,QAAQ,OAAO,MAAM;AAAA,UAC1C;AAAA,UACA;AAAA,UACA,MAAM,CAAC,YAAmB,mBAAW,QAAQ,KAAK,OAAO,CAAC;AAAA,UAC1D;AAAA,UACA;AAAA,QACF,CAAC;AAAA,OACF;AAAA,KACF;AAAA,IAaH,QAAQ,GAAG,KAAK,QAAQ,cACtB,KAAK,YAAY;AAAA,MACf,MAAM,SAAS,OAAO,IAAI,OAAO,IAAI;AAAA,MACrC,IAAI,WAAW,aAAa,WAAW,KAAK;AAAA,QAC1C,MAAa,mBACX,QAAQ,KAAK,GAAG,OAAO,yBAAyB,6BAA6B,CAC/E;AAAA,QACA;AAAA,MACF;AAAA,MACA,MAAM,aAAa,QAAQ,MAAM;AAAA,MACjC,IAAI,WAAW;AAAA,QAAK,OAAO,OAAO,OAAO,IAAI;AAAA,KAC9C;AAAA,EACL,CAAC;AAAA,CACF,CACH;AAGK,IAAM,wBAAwB,MAAM,0BAA0B;;AoBpFrE,IAAM,SAAS,CAAC,UAAoC,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,IAAI;AAG7F,IAAM,MAAM,CAAC,QAAgB,QAAyB,OAAO,OAAO,QAAQ,GAAG;AAM/E,IAAM,eAAe,CAAC,SAAwB,WAAgD;AAAA,EAC5F,MAAM,SAAS,IAAI,QAAQ,SAAS,MAAM,IAAI,QAAQ,QAAQ,UAAU;AAAA,EACxE,MAAM,WACJ,QAAQ,aAAa,aAAa,IAAI,QAAQ,UAAU,MAAM,IAC1D,QAAQ,SAAS,SAAS,SAC1B;AAAA,EACN,IAAI,WAAW,aAAa,aAAa;AAAA,IAAW,OAAO;AAAA,EAC3D,OAAO,UAAU;AAAA;AAIZ,IAAM,kBAAkB,CAAC,SAAyB,YAAsC;AAAA,EAC7F,MAAM,QAAQ,IAAI,QAAQ,UAAU,QAAQ,OAAO,IAC/C,QAAQ,SAAS,QAAQ,WACzB;AAAA,EACJ,IAAI,UAAU,WAAW;AAAA,IACvB,OAAO;AAAA,MACL,GAAG,QAAQ,mBAAmB,QAAQ,mCAAmC,OAAO,OAAO,KAAK,QAAQ,QAAQ,CAAC;AAAA,IAC/G;AAAA,EACF;AAAA,EACA,MAAM,QAAkB,CAAC;AAAA,EACzB,IAAI,CAAC,IAAI,MAAM,UAAU,QAAQ,MAAM,GAAG;AAAA,IAGxC,MAAM,SAAS,OAAO,OAAO,MAAM,QAAQ,EAAE,SAAS,QAAQ,MAAM;AAAA,IACpE,MAAM,OAAO,SAAS,6DAA6D;AAAA,IACnF,MAAM,KACJ,GAAG,QAAQ,0BAA0B,QAAQ,UAAU,gBAAgB,OAAO,OAAO,KAAK,MAAM,QAAQ,CAAC,GAC3G;AAAA,EACF;AAAA,EACA,MAAM,YAAY,IAAI,MAAM,UAAU,QAAQ,OAAO,IACjD,MAAM,SAAS,QAAQ,WACvB;AAAA,EACJ,IAAI,cAAc,WAAW;AAAA,IAC3B,MAAM,KACJ,GAAG,QAAQ,WAAW,QAAQ,0CAA0C,OAAO,OAAO,KAAK,MAAM,QAAQ,CAAC,SACxG,iGACJ;AAAA,IACA,OAAO;AAAA,EACT;AAAA,EACA,MAAM,UAAU,IAAI,WAAW,QAAQ,QAAQ,IAAI,UAAU,QAAQ,YAAY;AAAA,EACjF,IAAI,YAAY,WAAW;AAAA,IACzB,MAAM,KACJ,GAAG,QAAQ,WAAW,QAAQ,uCAAuC,QAAQ,cAAc,OAAO,OAAO,KAAK,SAAS,CAAC,IAC1H;AAAA,EACF,EAAO,SAAI,MAAM,WAAW,GAAG;AAAA,IAC7B,MAAM,SAAS,MAAM,SAAS,QAAQ,WAAW;AAAA,IACjD,MAAM,SAAS,aAAa,SAAS,MAAM;AAAA,IAC3C,IAAI,WAAW,QAAQ;AAAA,MACrB,MAAM,KACJ,GAAG,QAAQ,WAAW,QAAQ,qBAAqB,yCACjD,0EACJ;AAAA,IACF,EAAO,SAAI,WAAW,WAAW;AAAA,MAC/B,MAAM,KACJ,GAAG,QAAQ,WAAW,QAAQ,sCAAsC,sBAClE,mDACJ;AAAA,IACF;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AAOF,IAAM,gBAAgB,CAAC,SAAyB,YAA0C;AAAA,EAC/F,MAAM,WAAW,gBAAgB,SAAS,OAAO;AAAA,EAEjD,MAAM,MAAM,CAAI,QAAiD,QAC/D,WAAW,aAAa,IAAI,QAAQ,GAAG,IAAI,OAAO,OAAO;AAAA,EAC3D,MAAM,QAAQ,IAAI,QAAQ,UAAU,QAAQ,OAAO;AAAA,EACnD,MAAM,UAAU,IAAI,IAAI,OAAO,UAAU,QAAQ,OAAO,GAAG,QAAQ,QAAQ;AAAA,EAC3E,MAAM,SAAS,IAAI,OAAO,UAAU,QAAQ,MAAM;AAAA,EAClD,MAAM,SACJ,WAAW,aAAa,YAAY,YAAY,YAAY,aAAa,SAAS,MAAM;AAAA,EAC1F,MAAM,SAAS,WAAW,SAAS,YAAY;AAAA,EAC/C,IACE,SAAS,SAAS,KAClB,YAAY,aACZ,WAAW,aACX,WAAW,WACX;AAAA,IACA,MAAM,IAAI,cAAc;AAAA,MACtB,SAAS,kBAAkB,QAAQ,WAAW,SAAS,KAAK,IAAI;AAAA,IAClE,CAAC;AAAA,EACH;AAAA,EACA,QAAQ,OAAO,MAAM,MAAM,QAAQ,eAAe,MAAM,QAAQ;AAAA,EAChE,OAAO;AAAA,IAEL,SAAS;AAAA,MACP;AAAA,MACA;AAAA,MACA,QAAQ;AAAA,MACR;AAAA,MACA;AAAA,SACI,SAAS,YAAY,CAAC,IAAI,EAAE,KAAK;AAAA,IACvC;AAAA,IACA;AAAA,IACA,MAAM,QAAQ;AAAA,IACd;AAAA,EACF;AAAA;AAIK,IAAM,mBAAmB,CAC9B,MACA,YACW,GAAG,QAAQ,QAAQ,WAAW,QAAQ;AAY5C,IAAM,iBAAiB,CAC5B,UACA,WACiC;AAAA,EACjC,WAAW,WAAW,UAAU;AAAA,IAC9B,YAAY,KAAK,UAAU,OAAO,QAAQ,QAAQ,QAAQ,GAAG;AAAA,MAC3D,YAAY,SAAS,cAAc,OAAO,QAAQ,MAAM,QAAQ,GAAG;AAAA,QACjE,YAAY,UAAU,YAAY,OAAO,QAAQ,SAAS,GAAG;AAAA,UAC3D,YAAY,QAAQ,WAAW,OAAO,QAAQ,MAAM,QAAQ,GAAG;AAAA,YAC7D,MAAM,SAAS,aAAa,SAAS,MAAM;AAAA,YAC3C,IAAI,WAAW,UAAU,WAAW,QAAQ;AAAA,cAC1C,OAAO,EAAE,QAAQ,SAAS,KAAK,UAAU,QAAQ,QAAQ,QAAQ,QAAQ;AAAA,YAC3E;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA;;AClNF,IAAM,WAAW;AACjB,IAAM,QAAO;AACb,IAAM,MAAM;AACZ,IAAM,WAAW,sBAAsB,2BAA0B;AAE1D,IAAM,mBAAmC;AAAA,EAC9C,UAAU;AAAA,IACR,SAAS;AAAA,MAGP,UAAU,EAAE,KAAK,MAAM;AAAA,MACvB,UAAU;AAAA,QACR,SAAS;AAAA,UACP,cAAc;AAAA,YACZ,OAAO;AAAA,YACP,WAAW;AAAA,cACT,UAAU;AAAA,cACV,QAAQ;AAAA,cACR,WAAW;AAAA,gBACT,MAAM;AAAA,gBACN,KAAK;AAAA,kBACH,aAAa;AAAA,kBACb,QAAQ;AAAA,kBACR,KAAK;AAAA,gBACP;AAAA,gBACA,QAAQ;AAAA,gBACR,KAAK,GAAG;AAAA,gBACR,UAAU;AAAA,cACZ;AAAA,cACA,KAAK,GAAG;AAAA,YACV;AAAA,YAIA,UAAU;AAAA,cACR,KAAK;AAAA,gBACH,UAAU;AAAA,gBACV,QAAQ;AAAA,cACV;AAAA,YACF;AAAA,YACA,SAAS,CAAC;AAAA,YACV,MAAM;AAAA,YACN,QAAQ;AAAA,YACR,MAAM;AAAA,YACN,KAAK;AAAA,UACP;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EACA,QAAQ;AACV;;ACtEA;AACA;AAIO,IAAM,mBAAmB,CAAC,WAC/B,sBAAsB,EAAE,KAChB,eAAc,gBAAS,gBAAgB,MAAM,GAAmB,qBAAK,CAAC,CAC9E;;ACYF,IAAM,YAAW;AACjB,IAAM,YAAW;AAEV,IAAM,oBAAoC;AAAA,EAC/C,UAAU;AAAA,IACR,iBAAiB;AAAA,MACf,UAAU,EAAE,iBAAiB,qBAAqB;AAAA,MAClD,UAAU;AAAA,QACR,UAAU;AAAA,UACR,gBAAgB;AAAA,YACd,OAAO;AAAA,YACP,WAAW;AAAA,cACT,UAAU;AAAA,cACV,QAAQ;AAAA,cACR,KAAK,GAAG;AAAA,YACV;AAAA,YACA,SAAS;AAAA,cACP,sBACE;AAAA,YACJ;AAAA,YACA,MAAM;AAAA,YACN,QAAQ;AAAA,YACR,MAAM;AAAA,YACN,KAAK;AAAA,UACP;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,oBAAoB;AAAA,MAElB,UAAU,EAAE,oBAAoB,wBAAwB;AAAA,MACxD,UAAU;AAAA,QACR,WAAW;AAAA,UACT,gBAAgB;AAAA,YACd,OAAO;AAAA,YACP,WAAW;AAAA,cACT,UAAU;AAAA,cACV,QAAQ;AAAA,cACR,KAAK,GAAG;AAAA,YACV;AAAA,YACA,SAAS;AAAA,cACP,yBACE;AAAA,YACJ;AAAA,YACA,MAAM;AAAA,YACN,QAAQ;AAAA,YACR,MAAM;AAAA,YACN,KAAK;AAAA,UACP;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,mBAAmB;AAAA,MACjB,UAAU,EAAE,mBAAmB,uBAAuB;AAAA,MACtD,UAAU;AAAA,QACR,UAAU;AAAA,UACR,gBAAgB;AAAA,YACd,OAAO;AAAA,YACP,WAAW;AAAA,cACT,UAAU;AAAA,cACV,QAAQ;AAAA,cACR,KAAK,GAAG;AAAA,YACV;AAAA,YACA,SAAS;AAAA,cACP,wBACE;AAAA,YACJ;AAAA,YACA,MAAM;AAAA,YACN,QAAQ;AAAA,YACR,MAAM;AAAA,YACN,KAAK;AAAA,UACP;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,SAAS;AAAA,MAGP,UAAU;AAAA,QACR,SAAS;AAAA,QACT,SAAS;AAAA,QACT,gBAAgB;AAAA,QAChB,QAAQ;AAAA,QACR,UAAU;AAAA,QACV,OAAO;AAAA,QACP,WAAW;AAAA,MACb;AAAA,MACA,UAAU;AAAA,QACR,WAAW;AAAA,UACT,gBAAgB;AAAA,YACd,OAAO;AAAA,YACP,WAAW;AAAA,cACT,UAAU;AAAA,cACV,QAAQ;AAAA,cACR,KAAK,GAAG;AAAA,YACV;AAAA,YACA,SAAS;AAAA,cACP,gBAAgB;AAAA,cAChB,gBAAgB;AAAA,cAChB,qBACE;AAAA,cAGF,eAAe;AAAA,cACf,iBAAiB;AAAA,cACjB,cAAc;AAAA,cACd,kBAAkB;AAAA,YACpB;AAAA,YACA,MAAM;AAAA,YACN,QAAQ;AAAA,YACR,MAAM;AAAA,YACN,KAAK;AAAA,UACP;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EACA,QAAQ;AACV;",
34
+ "mappings": "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",
35
35
  "debugId": "6B19B9957CE8671964756E2164756E21",
36
36
  "names": []
37
37
  }