@superbee/core 0.2.0-pre.41 → 0.2.0-pre.42

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 (264) hide show
  1. package/README.md +50 -9
  2. package/dist/backend.d.ts +17 -1
  3. package/dist/backend.d.ts.map +1 -1
  4. package/dist/backend.js +41 -6
  5. package/dist/backend.js.map +1 -1
  6. package/dist/body-pages.d.ts +20 -0
  7. package/dist/body-pages.d.ts.map +1 -0
  8. package/dist/body-pages.js +56 -0
  9. package/dist/body-pages.js.map +1 -0
  10. package/dist/body-replace-guards.d.ts +29 -3
  11. package/dist/body-replace-guards.d.ts.map +1 -1
  12. package/dist/body-replace-guards.js +112 -19
  13. package/dist/body-replace-guards.js.map +1 -1
  14. package/dist/bounded-yaml.d.ts +28 -0
  15. package/dist/bounded-yaml.d.ts.map +1 -0
  16. package/dist/bounded-yaml.js +182 -0
  17. package/dist/bounded-yaml.js.map +1 -0
  18. package/dist/builtin-recipes/site.d.ts +5 -0
  19. package/dist/builtin-recipes/site.d.ts.map +1 -0
  20. package/dist/builtin-recipes/site.js +83 -0
  21. package/dist/builtin-recipes/site.js.map +1 -0
  22. package/dist/builtin-recipes.d.ts.map +1 -1
  23. package/dist/builtin-recipes.js +22 -0
  24. package/dist/builtin-recipes.js.map +1 -1
  25. package/dist/bundle-health/index.d.ts +2 -2
  26. package/dist/bundle-health/index.d.ts.map +1 -1
  27. package/dist/bundle-health/index.js +1 -1
  28. package/dist/bundle-health/index.js.map +1 -1
  29. package/dist/bundle-health/legacy-page.d.ts +8 -26
  30. package/dist/bundle-health/legacy-page.d.ts.map +1 -1
  31. package/dist/bundle-health/legacy-page.js +10 -35
  32. package/dist/bundle-health/legacy-page.js.map +1 -1
  33. package/dist/bundle-health/report.d.ts +0 -16
  34. package/dist/bundle-health/report.d.ts.map +1 -1
  35. package/dist/bundle-health/report.js +24 -54
  36. package/dist/bundle-health/report.js.map +1 -1
  37. package/dist/bundle-ops.d.ts +4 -1
  38. package/dist/bundle-ops.d.ts.map +1 -1
  39. package/dist/bundle-ops.js +6 -2
  40. package/dist/bundle-ops.js.map +1 -1
  41. package/dist/bundle.d.ts +1 -1
  42. package/dist/bundle.d.ts.map +1 -1
  43. package/dist/bundle.js +1 -1
  44. package/dist/bundle.js.map +1 -1
  45. package/dist/cross-bundle.d.ts +2 -2
  46. package/dist/cross-bundle.js +2 -2
  47. package/dist/document-codec.d.ts +3 -1
  48. package/dist/document-codec.d.ts.map +1 -1
  49. package/dist/document-codec.js +3 -1
  50. package/dist/document-codec.js.map +1 -1
  51. package/dist/document-mutation.d.ts.map +1 -1
  52. package/dist/document-mutation.js +39 -9
  53. package/dist/document-mutation.js.map +1 -1
  54. package/dist/document-scan.d.ts +23 -0
  55. package/dist/document-scan.d.ts.map +1 -0
  56. package/dist/document-scan.js +70 -0
  57. package/dist/document-scan.js.map +1 -0
  58. package/dist/document-transfer.d.ts +110 -4
  59. package/dist/document-transfer.d.ts.map +1 -1
  60. package/dist/document-transfer.js +490 -30
  61. package/dist/document-transfer.js.map +1 -1
  62. package/dist/engine.d.ts +4 -19
  63. package/dist/engine.d.ts.map +1 -1
  64. package/dist/engine.js +7 -47
  65. package/dist/engine.js.map +1 -1
  66. package/dist/errors.d.ts +37 -1
  67. package/dist/errors.d.ts.map +1 -1
  68. package/dist/errors.js +75 -3
  69. package/dist/errors.js.map +1 -1
  70. package/dist/file-journaled-backend.d.ts.map +1 -1
  71. package/dist/file-journaled-backend.js +2 -2
  72. package/dist/file-journaled-backend.js.map +1 -1
  73. package/dist/filesystem-identity.d.ts +9 -0
  74. package/dist/filesystem-identity.d.ts.map +1 -1
  75. package/dist/filesystem-identity.js +186 -64
  76. package/dist/filesystem-identity.js.map +1 -1
  77. package/dist/filesystem-lock.d.ts +2 -2
  78. package/dist/filesystem-lock.d.ts.map +1 -1
  79. package/dist/filesystem-lock.js +81 -14
  80. package/dist/filesystem-lock.js.map +1 -1
  81. package/dist/filesystem-temp-name.d.ts +9 -0
  82. package/dist/filesystem-temp-name.d.ts.map +1 -0
  83. package/dist/filesystem-temp-name.js +20 -0
  84. package/dist/filesystem-temp-name.js.map +1 -0
  85. package/dist/filesystem.d.ts +6 -0
  86. package/dist/filesystem.d.ts.map +1 -1
  87. package/dist/filesystem.js +2 -1
  88. package/dist/filesystem.js.map +1 -1
  89. package/dist/frontmatter-contract.d.ts +14 -0
  90. package/dist/frontmatter-contract.d.ts.map +1 -1
  91. package/dist/frontmatter-contract.js +22 -0
  92. package/dist/frontmatter-contract.js.map +1 -1
  93. package/dist/frontmatter-splitter.d.ts +6 -0
  94. package/dist/frontmatter-splitter.d.ts.map +1 -1
  95. package/dist/frontmatter-splitter.js +8 -0
  96. package/dist/frontmatter-splitter.js.map +1 -1
  97. package/dist/frontmatter.d.ts +8 -1
  98. package/dist/frontmatter.d.ts.map +1 -1
  99. package/dist/frontmatter.js +43 -7
  100. package/dist/frontmatter.js.map +1 -1
  101. package/dist/hosted-client/client.d.ts +22 -5
  102. package/dist/hosted-client/client.d.ts.map +1 -1
  103. package/dist/hosted-client/client.js +57 -10
  104. package/dist/hosted-client/client.js.map +1 -1
  105. package/dist/hosted-client/index.d.ts +1 -0
  106. package/dist/hosted-client/index.d.ts.map +1 -1
  107. package/dist/hosted-client/index.js +1 -0
  108. package/dist/hosted-client/index.js.map +1 -1
  109. package/dist/hosted-client/view-content.d.ts +107 -0
  110. package/dist/hosted-client/view-content.d.ts.map +1 -0
  111. package/dist/hosted-client/view-content.js +155 -0
  112. package/dist/hosted-client/view-content.js.map +1 -0
  113. package/dist/hosted-transport/carrier.d.ts +1 -1
  114. package/dist/hosted-transport/carrier.d.ts.map +1 -1
  115. package/dist/hosted-transport/carrier.js +27 -18
  116. package/dist/hosted-transport/carrier.js.map +1 -1
  117. package/dist/hosted-transport/read-adapter.d.ts +1 -2
  118. package/dist/hosted-transport/read-adapter.d.ts.map +1 -1
  119. package/dist/hosted-transport/read-adapter.js.map +1 -1
  120. package/dist/identity-fold.d.ts +12 -14
  121. package/dist/identity-fold.d.ts.map +1 -1
  122. package/dist/identity-fold.js +17 -15
  123. package/dist/identity-fold.js.map +1 -1
  124. package/dist/index-projection.d.ts +2 -1
  125. package/dist/index-projection.d.ts.map +1 -1
  126. package/dist/index-projection.js +14 -5
  127. package/dist/index-projection.js.map +1 -1
  128. package/dist/index.d.ts +24 -15
  129. package/dist/index.d.ts.map +1 -1
  130. package/dist/index.js +19 -15
  131. package/dist/index.js.map +1 -1
  132. package/dist/indexeddb-backend.d.ts.map +1 -1
  133. package/dist/indexeddb-backend.js +2 -2
  134. package/dist/indexeddb-backend.js.map +1 -1
  135. package/dist/json-data.d.ts +3 -0
  136. package/dist/json-data.d.ts.map +1 -0
  137. package/dist/json-data.js +19 -0
  138. package/dist/json-data.js.map +1 -0
  139. package/dist/kind-authoring.d.ts +18 -0
  140. package/dist/kind-authoring.d.ts.map +1 -1
  141. package/dist/kind-authoring.js +54 -4
  142. package/dist/kind-authoring.js.map +1 -1
  143. package/dist/kind-coverage.d.ts +1 -0
  144. package/dist/kind-coverage.d.ts.map +1 -1
  145. package/dist/kind-coverage.js +4 -5
  146. package/dist/kind-coverage.js.map +1 -1
  147. package/dist/kind-undeclared-fields.d.ts +70 -0
  148. package/dist/kind-undeclared-fields.d.ts.map +1 -0
  149. package/dist/kind-undeclared-fields.js +120 -0
  150. package/dist/kind-undeclared-fields.js.map +1 -0
  151. package/dist/kinds-load.d.ts.map +1 -1
  152. package/dist/kinds-load.js +4 -1
  153. package/dist/kinds-load.js.map +1 -1
  154. package/dist/kinds.d.ts +9 -0
  155. package/dist/kinds.d.ts.map +1 -1
  156. package/dist/kinds.js +20 -0
  157. package/dist/kinds.js.map +1 -1
  158. package/dist/link-findings.d.ts +130 -0
  159. package/dist/link-findings.d.ts.map +1 -0
  160. package/dist/link-findings.js +272 -0
  161. package/dist/link-findings.js.map +1 -0
  162. package/dist/link-types.d.ts +7 -0
  163. package/dist/link-types.d.ts.map +1 -1
  164. package/dist/link-types.js +17 -2
  165. package/dist/link-types.js.map +1 -1
  166. package/dist/memory-backend.d.ts.map +1 -1
  167. package/dist/memory-backend.js +2 -2
  168. package/dist/memory-backend.js.map +1 -1
  169. package/dist/page.d.ts +3 -7
  170. package/dist/page.d.ts.map +1 -1
  171. package/dist/page.js +3 -7
  172. package/dist/page.js.map +1 -1
  173. package/dist/path-fold.d.ts +29 -16
  174. package/dist/path-fold.d.ts.map +1 -1
  175. package/dist/path-fold.js +30 -17
  176. package/dist/path-fold.js.map +1 -1
  177. package/dist/paths.d.ts +28 -0
  178. package/dist/paths.d.ts.map +1 -1
  179. package/dist/paths.js +82 -1
  180. package/dist/paths.js.map +1 -1
  181. package/dist/platform.d.ts +9 -0
  182. package/dist/platform.d.ts.map +1 -1
  183. package/dist/platform.js.map +1 -1
  184. package/dist/portable-frontmatter.d.ts +6 -0
  185. package/dist/portable-frontmatter.d.ts.map +1 -1
  186. package/dist/portable-frontmatter.js +26 -2
  187. package/dist/portable-frontmatter.js.map +1 -1
  188. package/dist/recipe-lifecycle/install.d.ts +4 -7
  189. package/dist/recipe-lifecycle/install.d.ts.map +1 -1
  190. package/dist/recipe-lifecycle/install.js +3 -20
  191. package/dist/recipe-lifecycle/install.js.map +1 -1
  192. package/dist/recipe-lifecycle/legacy-aliases.d.ts +1 -13
  193. package/dist/recipe-lifecycle/legacy-aliases.d.ts.map +1 -1
  194. package/dist/recipe-lifecycle/legacy-aliases.js +5 -34
  195. package/dist/recipe-lifecycle/legacy-aliases.js.map +1 -1
  196. package/dist/record-overlay/apply.d.ts.map +1 -1
  197. package/dist/record-overlay/apply.js +0 -4
  198. package/dist/record-overlay/apply.js.map +1 -1
  199. package/dist/record-overlay/findings.d.ts.map +1 -1
  200. package/dist/record-overlay/findings.js +4 -1
  201. package/dist/record-overlay/findings.js.map +1 -1
  202. package/dist/record-overlay/plan.js +3 -3
  203. package/dist/record-overlay/plan.js.map +1 -1
  204. package/dist/record-overlay/signal-text.d.ts +9 -2
  205. package/dist/record-overlay/signal-text.d.ts.map +1 -1
  206. package/dist/record-overlay/signal-text.js +21 -11
  207. package/dist/record-overlay/signal-text.js.map +1 -1
  208. package/dist/remote-backend.d.ts +9 -19
  209. package/dist/remote-backend.d.ts.map +1 -1
  210. package/dist/remote-backend.js +17 -5
  211. package/dist/remote-backend.js.map +1 -1
  212. package/dist/remote-operations.d.ts.map +1 -1
  213. package/dist/remote-operations.js +2 -0
  214. package/dist/remote-operations.js.map +1 -1
  215. package/dist/remote-parsers.d.ts +19 -0
  216. package/dist/remote-parsers.d.ts.map +1 -1
  217. package/dist/remote-parsers.js.map +1 -1
  218. package/dist/remote.d.ts +2 -4
  219. package/dist/remote.d.ts.map +1 -1
  220. package/dist/remote.js +2 -3
  221. package/dist/remote.js.map +1 -1
  222. package/dist/reserved-write.d.ts +9 -0
  223. package/dist/reserved-write.d.ts.map +1 -0
  224. package/dist/reserved-write.js +15 -0
  225. package/dist/reserved-write.js.map +1 -0
  226. package/dist/search/backend-source.d.ts +2 -2
  227. package/dist/search/backend-source.d.ts.map +1 -1
  228. package/dist/search/backend-source.js +30 -6
  229. package/dist/search/backend-source.js.map +1 -1
  230. package/dist/search/contract.d.ts +3 -0
  231. package/dist/search/contract.d.ts.map +1 -1
  232. package/dist/search/contract.js.map +1 -1
  233. package/dist/search/search.d.ts.map +1 -1
  234. package/dist/search/search.js +4 -1
  235. package/dist/search/search.js.map +1 -1
  236. package/dist/search/source.d.ts +3 -0
  237. package/dist/search/source.d.ts.map +1 -1
  238. package/dist/site-manifest.d.ts +49 -0
  239. package/dist/site-manifest.d.ts.map +1 -0
  240. package/dist/site-manifest.js +113 -0
  241. package/dist/site-manifest.js.map +1 -0
  242. package/dist/skip-reasons.d.ts +12 -0
  243. package/dist/skip-reasons.d.ts.map +1 -0
  244. package/dist/skip-reasons.js +15 -0
  245. package/dist/skip-reasons.js.map +1 -0
  246. package/dist/source-engine/driver.d.ts +1 -3
  247. package/dist/source-engine/driver.d.ts.map +1 -1
  248. package/dist/source-engine/driver.js +2 -18
  249. package/dist/source-engine/driver.js.map +1 -1
  250. package/dist/source-profiles/index.d.ts +1 -1
  251. package/dist/source-profiles/index.js +1 -1
  252. package/dist/string-identity-agreement.d.ts +1 -1
  253. package/dist/string-identity-agreement.d.ts.map +1 -1
  254. package/dist/string-identity-agreement.js +6 -0
  255. package/dist/string-identity-agreement.js.map +1 -1
  256. package/dist/system-documents.d.ts +13 -0
  257. package/dist/system-documents.d.ts.map +1 -0
  258. package/dist/system-documents.js +44 -0
  259. package/dist/system-documents.js.map +1 -0
  260. package/dist/types.d.ts +7 -0
  261. package/dist/types.d.ts.map +1 -1
  262. package/dist/validation.d.ts +5 -0
  263. package/dist/validation.d.ts.map +1 -1
  264. package/package.json +19 -7
@@ -53,11 +53,12 @@
53
53
  */
54
54
  import { promises as fs } from "node:fs";
55
55
  import path from "node:path";
56
- import { createHash, randomUUID } from "node:crypto";
56
+ import { createHash } from "node:crypto";
57
57
  import { ConcurrentReplacementError, FilesystemIdentityAliasError, InvalidInputError } from "./errors.js";
58
58
  import { acquireFilesystemIdentityLock, filesystemMutationLockRoot } from "./filesystem-lock.js";
59
59
  import { captureFilesystemHostPolicy } from "./filesystem-host.js";
60
60
  import { foldSegment } from "./identity-fold.js";
61
+ import { identityTempName } from "./filesystem-temp-name.js";
61
62
  export { foldSegment };
62
63
  /**
63
64
  * A host can transiently deny replacement while another process is closing a read handle or a
@@ -156,7 +157,16 @@ async function existingAnchor(resolved) {
156
157
  async function foldedPhysicalRoot(root) {
157
158
  const { anchor, tail } = await existingAnchor(path.resolve(root));
158
159
  const anchorSegments = anchor.split(path.sep).filter((segment, index) => index === 0 || segment !== "");
159
- return [...anchorSegments, ...tail].map(foldSegment).join("/");
160
+ return [...anchorSegments, ...tail].map(foldRootSegment).join("/");
161
+ }
162
+ /**
163
+ * The bundle root's own segments fold with compatibility decomposition, which is wider than
164
+ * {@link foldSegment}. Every released build derives the root key this way, and processes on
165
+ * different builds exclude each other only while they derive the same root key. A wider root
166
+ * fold can only make two differently spelled roots share one lock.
167
+ */
168
+ function foldRootSegment(segment) {
169
+ return segment.normalize("NFKD").toLowerCase().toUpperCase().toLowerCase();
160
170
  }
161
171
  export async function identityKey(root, rel) {
162
172
  const foldedRel = relSegments(rel).map(foldSegment).join("/");
@@ -270,11 +280,37 @@ async function probeSegment(port, candidate, rel, segment) {
270
280
  function hasExact(listing, segment) {
271
281
  return listing.some((entry) => entry.name === segment);
272
282
  }
283
+ /** The one listed spelling other than `segment` that folds to it, for the refusal message only. */
284
+ function existingSpelling(names, segment) {
285
+ const folded = foldSegment(segment);
286
+ const matches = [...names].filter((name) => name !== segment && foldSegment(name) === folded);
287
+ return matches.length === 1 ? matches[0] : undefined;
288
+ }
289
+ /** "folder" or "file" for the entry an alias spelling reaches; position decides when its kind is unknown. */
290
+ function entryNoun(kind, leaf) {
291
+ if (kind === undefined)
292
+ return leaf ? "file" : "folder";
293
+ return kind === "directory" ? "folder" : "file";
294
+ }
295
+ function aliasRefusal(rel, segments, index, names, kind) {
296
+ const segment = segments[index];
297
+ return new FilesystemIdentityAliasError(rel, segment, existingSpelling(names, segment), entryNoun(kind, index === segments.length - 1), index);
298
+ }
299
+ /** {@link aliasRefusal} from a listing with kinds: the folded match's own kind names it. */
300
+ function aliasRefusalFromListing(rel, index, listing, leaf) {
301
+ const segment = relSegments(rel)[index];
302
+ const existing = existingSpelling(listing.map((entry) => entry.name), segment);
303
+ const kind = existing === undefined ? undefined : listing.find((entry) => entry.name === existing)?.kind;
304
+ return new FilesystemIdentityAliasError(rel, segment, existing, entryNoun(kind, leaf), index);
305
+ }
306
+ function listingView(names) {
307
+ return { has: (name) => names.has(name), names: () => names };
308
+ }
273
309
  /** One fresh `entries` call per use: the single-read protocol. */
274
310
  function freshListings(port) {
275
311
  return async (dir) => {
276
312
  const listing = await port.entries(dir);
277
- return listing === null ? null : { has: (name) => hasExact(listing, name) };
313
+ return listing === null ? null : { has: (name) => hasExact(listing, name), names: () => listing.map((entry) => entry.name) };
278
314
  };
279
315
  }
280
316
  /**
@@ -294,7 +330,7 @@ async function walkExact(port, rootResolved, segments, rel) {
294
330
  if (listing === null)
295
331
  return { state: "absent", depth: index };
296
332
  if (!hasExact(listing, segment))
297
- throw new FilesystemIdentityAliasError(rel, segment);
333
+ throw aliasRefusal(rel, segments, index, listing.map((entry) => entry.name), probed.kind);
298
334
  if (index === segments.length - 1)
299
335
  return { state: "exact", leaf: probed };
300
336
  if (probed.kind !== "directory")
@@ -305,7 +341,12 @@ async function walkExact(port, rootResolved, segments, rel) {
305
341
  }
306
342
  // ── observation ───────────────────────────────────────────────────────────────
307
343
  const MAX_RESTARTS = 3;
308
- /** O-PROBE: walk `rel` root to leaf recording each segment's witness; `null` when any segment is absent. */
344
+ /**
345
+ * O-PROBE: walk `rel` root to leaf recording each segment's witness. `complete` is false when a
346
+ * segment is absent or a non-leaf segment is not a directory; `recorded` then holds every segment
347
+ * that exists (the non-directory included), which the caller still confirms so an alias spelling of an existing
348
+ * directory prefix is refused rather than reported as absent.
349
+ */
309
350
  async function recordWalk(port, rootResolved, segments, rel) {
310
351
  const recorded = [];
311
352
  let parent = rootResolved;
@@ -314,13 +355,13 @@ async function recordWalk(port, rootResolved, segments, rel) {
314
355
  const candidate = path.join(parent, segment);
315
356
  const probed = await probeSegment(port, candidate, rel, segment);
316
357
  if (probed === null)
317
- return null;
318
- if (index < segments.length - 1 && probed.kind !== "directory")
319
- return null;
358
+ return { recorded, complete: false };
320
359
  recorded.push(probed);
360
+ if (index < segments.length - 1 && probed.kind !== "directory")
361
+ return { recorded, complete: false };
321
362
  parent = candidate;
322
363
  }
323
- return recorded;
364
+ return { recorded, complete: true };
324
365
  }
325
366
  /**
326
367
  * One listing walk under the confirmed-witness rule. Every DIRECTORY segment is probed and
@@ -335,9 +376,9 @@ async function recordWalk(port, rootResolved, segments, rel) {
335
376
  * (`handle` given) applies that leaf table against the handle's inode, probing the leaf
336
377
  * unconditionally.
337
378
  */
338
- async function confirmedWalk(port, rootResolved, segments, rel, recorded, handle, listings = freshListings(port)) {
379
+ async function confirmedWalk(port, rootResolved, segments, rel, recorded, handle, listings = freshListings(port), stopAt = segments.length) {
339
380
  let parent = rootResolved;
340
- for (let index = 0; index < segments.length; index++) {
381
+ for (let index = 0; index < stopAt; index++) {
341
382
  const segment = segments[index];
342
383
  const candidate = path.join(parent, segment);
343
384
  const listing = await listings(parent);
@@ -345,15 +386,17 @@ async function confirmedWalk(port, rootResolved, segments, rel, recorded, handle
345
386
  return "absent";
346
387
  const listed = listing.has(segment);
347
388
  if (handle !== null && index === segments.length - 1) {
348
- const verdict = classifyLeaf({ listed, probe: await probeSegment(port, candidate, rel, segment), handle });
389
+ const probe = await probeSegment(port, candidate, rel, segment);
390
+ const verdict = classifyLeaf({ listed, probe, handle });
349
391
  if (verdict === "aliased")
350
- throw new FilesystemIdentityAliasError(rel, segment);
392
+ throw aliasRefusal(rel, segments, index, listing.names(), probe?.kind);
351
393
  return verdict === "replaced" ? "restart" : verdict;
352
394
  }
353
395
  if (index < segments.length - 1 || !listed) {
354
- const verdict = confirmAlias(listed, await probeSegment(port, candidate, rel, segment), recorded[index]);
396
+ const probe = await probeSegment(port, candidate, rel, segment);
397
+ const verdict = confirmAlias(listed, probe, recorded[index]);
355
398
  if (verdict === "aliased")
356
- throw new FilesystemIdentityAliasError(rel, segment);
399
+ throw aliasRefusal(rel, segments, index, listing.names(), probe?.kind);
357
400
  if (verdict !== "continue")
358
401
  return verdict;
359
402
  }
@@ -361,6 +404,39 @@ async function confirmedWalk(port, rootResolved, segments, rel, recorded, handle
361
404
  }
362
405
  return "continue";
363
406
  }
407
+ /**
408
+ * An incomplete O-PROBE is ABSENT only once the segments that did exist are confirmed under their
409
+ * exact spelling. Without this, `Concepts/new.md` beside an existing `concepts/` would read as
410
+ * absent while every mutation of it refuses the alias, so a caller that treats absence as
411
+ * "may be created later" would promise a write that can never succeed.
412
+ *
413
+ * Parent listings come from a per-port witnessed cache, so batches of absent probes do not list a
414
+ * large directory once each. Only ABSENT may rest on a reused listing: a refusal or restart reached
415
+ * through one is re-decided with fresh listings. Where a directory witness can lie (network
416
+ * attribute caches, settable Windows directory times), an absent verdict can therefore miss a
417
+ * directory renamed to another case within the cache's life; writes still refuse it.
418
+ */
419
+ async function confirmPrefix(port, rootResolved, segments, rel, recorded) {
420
+ if (recorded.length === 0)
421
+ return "absent";
422
+ let kept = prefixListings.get(port);
423
+ if (kept === undefined)
424
+ prefixListings.set(port, (kept = new Map()));
425
+ const cached = witnessedListings(port, kept, Date.now, PREFIX_LISTING_CAPACITY);
426
+ let verdict;
427
+ try {
428
+ verdict = await confirmedWalk(port, rootResolved, segments, rel, recorded, null, cached.source, recorded.length);
429
+ }
430
+ catch (error) {
431
+ if (!cached.reused())
432
+ throw error;
433
+ kept.clear();
434
+ verdict = await confirmedWalk(port, rootResolved, segments, rel, recorded, null, freshListings(port), recorded.length);
435
+ }
436
+ if (verdict === "restart" && cached.reused())
437
+ kept.clear();
438
+ return verdict === "restart" ? "restart" : "absent";
439
+ }
364
440
  function countRestart(restarts, rel) {
365
441
  if (restarts >= MAX_RESTARTS)
366
442
  throw new ConcurrentReplacementError(rel, restarts + 1);
@@ -381,9 +457,15 @@ async function observeWith(port, rootResolved, rel, read, listings, onExact) {
381
457
  const segments = relSegments(rel);
382
458
  const target = path.join(rootResolved, ...segments);
383
459
  for (let restarts = 0;;) {
384
- const recorded = await recordWalk(port, rootResolved, segments, rel);
385
- if (recorded === null)
386
- return { state: "absent" };
460
+ const walk = await recordWalk(port, rootResolved, segments, rel);
461
+ if (!walk.complete) {
462
+ const prefix = await confirmPrefix(port, rootResolved, segments, rel, walk.recorded);
463
+ if (prefix === "absent")
464
+ return { state: "absent" };
465
+ restarts = countRestart(restarts, rel);
466
+ continue;
467
+ }
468
+ const recorded = walk.recorded;
387
469
  const verified = await confirmedWalk(port, rootResolved, segments, rel, recorded, null, listings);
388
470
  if (verified === "absent")
389
471
  return { state: "absent" };
@@ -434,9 +516,15 @@ export async function probeExact(port, root, rel) {
434
516
  const segments = relSegments(rel);
435
517
  const rootResolved = path.resolve(root);
436
518
  for (let restarts = 0;;) {
437
- const recorded = await recordWalk(port, rootResolved, segments, rel);
438
- if (recorded === null)
439
- return { state: "absent" };
519
+ const walk = await recordWalk(port, rootResolved, segments, rel);
520
+ if (!walk.complete) {
521
+ const prefix = await confirmPrefix(port, rootResolved, segments, rel, walk.recorded);
522
+ if (prefix === "absent")
523
+ return { state: "absent" };
524
+ restarts = countRestart(restarts, rel);
525
+ continue;
526
+ }
527
+ const recorded = walk.recorded;
440
528
  const leaf = recorded[recorded.length - 1];
441
529
  const verified = await confirmedWalk(port, rootResolved, segments, rel, recorded, null);
442
530
  const verdict = verified === "continue" ? await confirmedWalk(port, rootResolved, segments, rel, recorded, leaf) : verified;
@@ -457,9 +545,71 @@ export async function probeExact(port, root, rel) {
457
545
  * A time in the future (clock skew) is never settled.
458
546
  */
459
547
  const SETTLED_AFTER_NS = 3000000000n;
548
+ /**
549
+ * Whether a directory witness can detect change at all. Some volumes report times that never
550
+ * move: macOS gives an exFAT volume's root directory mtime and ctime 0 forever. A time at or
551
+ * before the epoch is never a real modification of a bundle directory, so such a witness is
552
+ * treated as absent and its listing is neither kept nor reused.
553
+ */
554
+ export function witnessCanDetectChange(witness) {
555
+ return witness.mtimeNs > 0n && witness.ctimeNs > 0n;
556
+ }
460
557
  function witnessKey(witness) {
461
558
  return `${witness.dev}:${witness.ino}:${witness.mtimeNs}:${witness.ctimeNs}`;
462
559
  }
560
+ /**
561
+ * A listing source that keeps each directory's listing while its settled change witness is
562
+ * unchanged (see {@link openObservationPass} for why a settled witness is a change detector on
563
+ * local disks). `reused()` says whether any listing it returned came from `kept`. A port without
564
+ * directory witnesses lists afresh on every use.
565
+ */
566
+ function witnessedListings(port, kept, now, capacity = Infinity) {
567
+ let reused = false;
568
+ const portWitness = port.directoryWitness?.bind(port);
569
+ if (portWitness === undefined)
570
+ return { source: freshListings(port), reused: () => false };
571
+ const witnessOf = async (dir) => {
572
+ const witness = await portWitness(dir);
573
+ return witness !== null && witnessCanDetectChange(witness) ? witness : null;
574
+ };
575
+ const settled = (witness) => {
576
+ const nowNs = BigInt(Math.floor(now())) * 1000000n;
577
+ const latest = witness.mtimeNs > witness.ctimeNs ? witness.mtimeNs : witness.ctimeNs;
578
+ return nowNs - latest >= SETTLED_AFTER_NS;
579
+ };
580
+ const source = async (dir) => {
581
+ const keep = kept.get(dir);
582
+ if (keep !== undefined) {
583
+ const current = await witnessOf(dir);
584
+ if (current !== null && witnessKey(current) === keep.witness) {
585
+ reused = true;
586
+ return listingView(keep.names);
587
+ }
588
+ kept.delete(dir);
589
+ }
590
+ const before = await witnessOf(dir);
591
+ const listing = await port.entries(dir);
592
+ if (listing === null)
593
+ return null;
594
+ const names = new Set(listing.map((entry) => entry.name));
595
+ const after = await witnessOf(dir);
596
+ if (before !== null && after !== null && witnessKey(before) === witnessKey(after) && settled(after)) {
597
+ kept.delete(dir);
598
+ kept.set(dir, { witness: witnessKey(after), names });
599
+ while (kept.size > capacity)
600
+ kept.delete(kept.keys().next().value);
601
+ }
602
+ return listingView(names);
603
+ };
604
+ return { source, reused: () => reused };
605
+ }
606
+ /**
607
+ * Prefix-confirmation listings kept per port, so a run of absent probes under one directory (a
608
+ * batch of `exists` calls) lists each parent once rather than once per probe. Bounded; entries
609
+ * are only ever reused under an unchanged settled witness.
610
+ */
611
+ const prefixListings = new WeakMap();
612
+ const PREFIX_LISTING_CAPACITY = 64;
463
613
  /**
464
614
  * Open an {@link ObservationPass} over `(port, root)`.
465
615
  *
@@ -496,41 +646,8 @@ export function openObservationPass(port, root, now = Date.now) {
496
646
  const rootResolved = path.resolve(root);
497
647
  const kept = new Map();
498
648
  const reusedVerdicts = [];
499
- const fresh = freshListings(port);
500
- const witnessOf = port.directoryWitness?.bind(port);
501
- const settled = (witness) => {
502
- const nowNs = BigInt(Math.floor(now())) * 1000000n;
503
- const latest = witness.mtimeNs > witness.ctimeNs ? witness.mtimeNs : witness.ctimeNs;
504
- return nowNs - latest >= SETTLED_AFTER_NS;
505
- };
506
649
  /** Listings for one observation; `reused()` says whether any came from the kept set. */
507
- const listingsFor = () => {
508
- let reused = false;
509
- if (witnessOf === undefined)
510
- return { source: fresh, reused: () => false };
511
- const source = async (dir) => {
512
- const keep = kept.get(dir);
513
- if (keep !== undefined) {
514
- const current = await witnessOf(dir);
515
- if (current !== null && witnessKey(current) === keep.witness) {
516
- reused = true;
517
- return keep.names;
518
- }
519
- kept.delete(dir);
520
- }
521
- const before = await witnessOf(dir);
522
- const listing = await port.entries(dir);
523
- if (listing === null)
524
- return null;
525
- const names = new Set(listing.map((entry) => entry.name));
526
- const after = await witnessOf(dir);
527
- if (before !== null && after !== null && witnessKey(before) === witnessKey(after) && settled(after)) {
528
- kept.set(dir, { witness: witnessKey(after), names });
529
- }
530
- return names;
531
- };
532
- return { source, reused: () => reused };
533
- };
650
+ const listingsFor = () => witnessedListings(port, kept, now);
534
651
  return {
535
652
  async observe(rel, read) {
536
653
  const listings = listingsFor();
@@ -661,7 +778,7 @@ async function readWhole(port, target) {
661
778
  await port.close(opened.handle);
662
779
  }
663
780
  }
664
- async function mkdirExact(port, parent, segment, isTail, rel) {
781
+ async function mkdirExact(port, parent, segment, isTail, rel, index = -1) {
665
782
  const outcome = await port.mkdir(path.join(parent, segment));
666
783
  if (outcome === "created")
667
784
  return;
@@ -672,8 +789,9 @@ async function mkdirExact(port, parent, segment, isTail, rel) {
672
789
  throw new FilesystemSymlinkEntryError(rel, segment);
673
790
  }
674
791
  const verdict = classifyMkdir(outcome, listing, segment, isTail);
675
- if (verdict === "aliased")
676
- throw new FilesystemIdentityAliasError(rel, segment);
792
+ if (verdict === "aliased") {
793
+ throw aliasRefusalFromListing(rel, index, listing, false);
794
+ }
677
795
  if (verdict === "shape-mismatch")
678
796
  throw new FilesystemShapeMismatchError(rel, segment);
679
797
  }
@@ -702,8 +820,9 @@ async function ensureExactDirectories(port, rootResolved, segments, existingDept
702
820
  }
703
821
  }
704
822
  let parent = path.join(rootResolved, ...segments.slice(0, existingDepth));
705
- for (const segment of segments.slice(existingDepth, -1)) {
706
- await mkdirExact(port, parent, segment, false, rel);
823
+ for (let index = existingDepth; index < segments.length - 1; index++) {
824
+ const segment = segments[index];
825
+ await mkdirExact(port, parent, segment, false, rel, index);
707
826
  parent = path.join(parent, segment);
708
827
  }
709
828
  }
@@ -733,7 +852,7 @@ async function createExactLeaf(port, tmp, target, rel, leaf, rootResolved) {
733
852
  const listing = (await port.entries(path.dirname(target))) ?? [];
734
853
  if (hasExact(listing, leaf))
735
854
  throw new ConcurrentReplacementError(rel, 1);
736
- throw new FilesystemIdentityAliasError(rel, leaf);
855
+ throw aliasRefusalFromListing(rel, relSegments(rel).length - 1, listing, true);
737
856
  }
738
857
  /**
739
858
  * Mutate `(root, rel)` inside its identity lock: claim the key, realize the exact state, and let
@@ -762,13 +881,13 @@ export async function mutateExact(port, root, rel, body) {
762
881
  async replace(bytes) {
763
882
  await ensureExactDirectories(port, rootResolved, segments, existingDepth, rel);
764
883
  const dir = path.dirname(target);
765
- // Unique per call, not per process: one process can issue two writes to the same
766
- // target within a millisecond, and the second's temp file must not clobber the first's.
767
- const tmpName = `.${leaf}.${process.pid}.${Date.now()}.${randomUUID()}.tmp`;
884
+ const tmpName = identityTempName(leaf);
768
885
  const tmp = path.join(dir, tmpName);
769
886
  await port.writeTemp(dir, tmpName, bytes);
770
887
  try {
771
888
  if (realized.state === "exact") {
889
+ // Best effort: a replacement that cannot carry the old permission bits still lands.
890
+ await port.copyMode?.(target, tmp).catch(() => { });
772
891
  // Replace: the target exists under our exact spelling, so any writer of an
773
892
  // equated spelling is refused at its own M-REALIZE; an atomic rename is safe.
774
893
  await replaceExistingLeaf(port, tmp, target, rel);
@@ -943,6 +1062,9 @@ export function createNodeFilesystemIdentityPort(hostPolicy) {
943
1062
  async rename(from, to) {
944
1063
  await fs.rename(from, to);
945
1064
  },
1065
+ async copyMode(from, to) {
1066
+ await fs.chmod(to, (await fs.lstat(from)).mode & 0o777);
1067
+ },
946
1068
  async unlink(target) {
947
1069
  await fs.unlink(target);
948
1070
  },
@@ -1 +1 @@
1
- {"version":3,"file":"filesystem-identity.js","sourceRoot":"","sources":["../src/filesystem-identity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"filesystem-identity.js","sourceRoot":"","sources":["../src/filesystem-identity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAEH,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AAGzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,0BAA0B,EAAE,4BAA4B,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC1G,OAAO,EAAE,6BAA6B,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AACjG,OAAO,EAAE,2BAA2B,EAA6B,MAAM,sBAAsB,CAAC;AAC9F,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D,OAAO,EAAE,WAAW,EAAE,CAAC;AAqFvB;;;;;;;GAOG;AACH,KAAK,UAAU,mBAAmB,CAChC,IAA4B,EAC5B,GAAW,EACX,MAAc,EACd,GAAW;IAEX,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,0BAA0B,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACnD,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,OAAO,2BAA4B,SAAQ,iBAAiB;IACvD,GAAG,CAAS;IACZ,OAAO,CAAS;IAEzB,YAAY,GAAW,EAAE,OAAe;QACtC,KAAK,CAAC,SAAS,GAAG,yCAAyC,OAAO,uDAAuD,CAAC,CAAC;QAC3H,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAC;QAC1C,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,4BAA6B,SAAQ,KAAK;IAC5C,GAAG,CAAS;IACZ,OAAO,CAAS;IAEzB,YAAY,GAAW,EAAE,OAAe;QACtC,KAAK,CAAC,SAAS,GAAG,mCAAmC,OAAO,oCAAoC,CAAC,CAAC;QAClG,IAAI,CAAC,IAAI,GAAG,8BAA8B,CAAC;QAC3C,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAED,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAEzD,SAAS,iBAAiB,CAAC,GAAY;IACrC,OAAO,iBAAiB,CAAC,GAAG,CAAE,GAA6B,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;AAC3E,CAAC;AAED;;;;GAIG;AACH,SAAS,WAAW,CAAC,GAAW;IAC9B,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,iBAAiB,CAAC,SAAS,MAAM,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;IACzF,CAAC;IACD,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,EAAE,IAAI,OAAO,KAAK,GAAG,CAAC,CAAC;IACvF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,EAAE,CAAC;QAC1E,MAAM,IAAI,iBAAiB,CAAC,SAAS,GAAG,qCAAqC,CAAC,CAAC;IACjF,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,iFAAiF;AAEjF,mGAAmG;AACnG,KAAK,UAAU,cAAc,CAAC,QAAgB;IAC5C,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,IAAI,SAAS,GAAG,QAAQ,CAAC;IACzB,SAAS,CAAC;QACR,IAAI,CAAC;YACH,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC;QACxD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC;gBAAE,MAAM,GAAG,CAAC;QACzC,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACvC,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QAC7D,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;QACvC,SAAS,GAAG,MAAM,CAAC;IACrB,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,kBAAkB,CAAC,IAAY;IAC5C,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAClE,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,CAAC,IAAI,OAAO,KAAK,EAAE,CAAC,CAAC;IACxG,OAAO,CAAC,GAAG,cAAc,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACrE,CAAC;AAED;;;;;GAKG;AACH,SAAS,eAAe,CAAC,OAAe;IACtC,OAAO,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC,WAAW,EAAE,CAAC,WAAW,EAAE,CAAC;AAC7E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAY,EAAE,GAAW;IACzD,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9D,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,yBAAyB,MAAM,kBAAkB,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5H,CAAC;AAED,iGAAiG;AACjG,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,IAAY;IAC1D,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,8BAA8B,MAAM,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACnH,CAAC;AAED,6FAA6F;AAC7F,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,IAA4B,EAAE,IAAY;IACpF,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,SAAS,GAAoC,EAAE,CAAC;IACtD,IAAI,OAAO,GAAG,QAAQ,CAAC;IACvB,SAAS,CAAC;QACR,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW;YAAE,MAAM,IAAI,iBAAiB,CAAC,+CAA+C,CAAC,CAAC;QAC3H,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,MAAM,KAAK,OAAO;YAAE,MAAM;QAC9B,OAAO,GAAG,MAAM,CAAC;IACnB,CAAC;IACD,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAyB,CAAC;AAE5D,uFAAuF;AACvF,MAAM,UAAU,mCAAmC,CACjD,KAA6B,EAC7B,IAAY,EACZ,UAAiC;IAEjC,MAAM,MAAM,GAAG,2BAA2B,CAAC,UAAU,CAAC,CAAC;IACvD,IAAI,QAA4B,CAAC;IACjC,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,QAAQ,KAAK,0BAA0B,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC9E,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,SAAS;QACT,KAAK,CAAC,GAAG,CAAI,IAAsB;YACjC,MAAM,GAAG,GAAG,MAAM,yBAAyB,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM,QAAQ,GAAG,SAAS,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,GAAG,QAAQ,IAAI,GAAG,EAAE,CAAC;YACtC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACvE,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;gBACnC,MAAM,OAAO,GAAG,MAAM,6BAA6B,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;gBACrH,IAAI,CAAC;oBAAC,OAAO,MAAM,IAAI,EAAE,CAAC;gBAAC,CAAC;wBAAS,CAAC;oBAAC,MAAM,OAAO,EAAE,CAAC;gBAAC,CAAC;YAC3D,CAAC,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAC7C,kBAAkB,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC1C,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,OAAO;gBAAE,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACpH,OAAO,GAAG,CAAC;QACb,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,iFAAiF;AAEjF,SAAS,WAAW,CAAC,CAAe,EAAE,CAAe;IACnD,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC;AAC5C,CAAC;AAID;;;;;;;;;;GAUG;AACH,MAAM,UAAU,YAAY,CAC1B,eAAwB,EACxB,KAAyB,EACzB,QAAsB;IAEtB,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,QAAQ,CAAC;IACpC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC;QAAE,OAAO,SAAS,CAAC;IACpD,OAAO,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;AAClD,CAAC;AAaD;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,QAAsB;IACjD,IAAI,QAAQ,CAAC,KAAK,KAAK,IAAI;QAAE,OAAO,QAAQ,CAAC;IAC7C,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,UAAU,CAAC;IACrE,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/C,CAAC;AAID;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAC3B,OAA6B,EAC7B,OAAsB,EACtB,OAAe,EACf,MAAe;IAEf,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;IAC9D,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7D,OAAO,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC;AACjE,CAAC;AAED,iFAAiF;AAEjF,gGAAgG;AAChG,KAAK,UAAU,YAAY,CACzB,IAA4B,EAC5B,SAAiB,EACjB,GAAW,EACX,OAAe;IAEf,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC3C,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;QAAE,MAAM,IAAI,2BAA2B,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACtG,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,QAAQ,CAAC,OAAsB,EAAE,OAAe;IACvD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;AACzD,CAAC;AAED,mGAAmG;AACnG,SAAS,gBAAgB,CAAC,KAAuB,EAAE,OAAe;IAChE,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,CAAC;IAC9F,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC;AAED,6GAA6G;AAC7G,SAAS,SAAS,CAAC,IAA2B,EAAE,IAAa;IAC3D,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;IACxD,OAAO,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;AAClD,CAAC;AAED,SAAS,YAAY,CACnB,GAAW,EACX,QAAkB,EAClB,KAAa,EACb,KAAuB,EACvB,IAA2B;IAE3B,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAE,CAAC;IACjC,OAAO,IAAI,4BAA4B,CAAC,GAAG,EAAE,OAAO,EAAE,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,SAAS,CAAC,IAAI,EAAE,KAAK,KAAK,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACjJ,CAAC;AAED,4FAA4F;AAC5F,SAAS,uBAAuB,CAAC,GAAW,EAAE,KAAa,EAAE,OAAsB,EAAE,IAAa;IAChG,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,CAAE,CAAC;IACzC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;IAC/E,MAAM,IAAI,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,IAAI,CAAC;IACzG,OAAO,IAAI,4BAA4B,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;AAChG,CAAC;AAWD,SAAS,WAAW,CAAC,KAAkB;IACrC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC;AAChE,CAAC;AAED,kEAAkE;AAClE,SAAS,aAAa,CAAC,IAA4B;IACjD,OAAO,KAAK,EAAE,GAAG,EAAE,EAAE;QACnB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACxC,OAAO,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;IAC/H,CAAC,CAAC;AACJ,CAAC;AAQD;;;;GAIG;AACH,KAAK,UAAU,SAAS,CACtB,IAA4B,EAC5B,YAAoB,EACpB,QAAkB,EAClB,GAAW;IAEX,IAAI,MAAM,GAAG,YAAY,CAAC;IAC1B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACrD,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAE,CAAC;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QACjE,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QAC9D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QAC/D,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;YAAE,MAAM,YAAY,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3H,IAAI,KAAK,KAAK,QAAQ,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAC3E,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW;YAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC;QAC7E,MAAM,GAAG,SAAS,CAAC;IACrB,CAAC;IACD,MAAM,IAAI,iBAAiB,CAAC,SAAS,GAAG,qCAAqC,CAAC,CAAC;AACjF,CAAC;AAED,iFAAiF;AAEjF,MAAM,YAAY,GAAG,CAAC,CAAC;AAMvB;;;;;GAKG;AACH,KAAK,UAAU,UAAU,CACvB,IAA4B,EAC5B,YAAoB,EACpB,QAAkB,EAClB,GAAW;IAEX,MAAM,QAAQ,GAAkB,EAAE,CAAC;IACnC,IAAI,MAAM,GAAG,YAAY,CAAC;IAC1B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACrD,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAE,CAAC;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QACjE,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QAC1D,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtB,IAAI,KAAK,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW;YAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QACrG,MAAM,GAAG,SAAS,CAAC;IACrB,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACtC,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,KAAK,UAAU,aAAa,CAC1B,IAA4B,EAC5B,YAAoB,EACpB,QAAkB,EAClB,GAAW,EACX,QAAuB,EACvB,MAA2B,EAC3B,WAA0B,aAAa,CAAC,IAAI,CAAC,EAC7C,SAAiB,QAAQ,CAAC,MAAM;IAEhC,IAAI,MAAM,GAAG,YAAY,CAAC;IAC1B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAE,CAAC;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,QAAQ,CAAC;QACtC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACpC,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,KAAK,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrD,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;YAChE,MAAM,OAAO,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YACxD,IAAI,OAAO,KAAK,SAAS;gBAAE,MAAM,YAAY,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YAClG,OAAO,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;QACtD,CAAC;QACD,IAAI,KAAK,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAC3C,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;YAChE,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAE,CAAC,CAAC;YAC9D,IAAI,OAAO,KAAK,SAAS;gBAAE,MAAM,YAAY,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YAClG,IAAI,OAAO,KAAK,UAAU;gBAAE,OAAO,OAAO,CAAC;QAC7C,CAAC;QACD,MAAM,GAAG,SAAS,CAAC;IACrB,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,KAAK,UAAU,aAAa,CAC1B,IAA4B,EAC5B,YAAoB,EACpB,QAAkB,EAClB,GAAW,EACX,QAAuB;IAEvB,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC3C,IAAI,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,IAAI,KAAK,SAAS;QAAE,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;IACrE,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC;IAChF,IAAI,OAA8B,CAAC;IACnC,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YAAE,MAAM,KAAK,CAAC;QAClC,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,OAAO,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACzH,CAAC;IACD,IAAI,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,CAAC,KAAK,EAAE,CAAC;IAC3D,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;AACtD,CAAC;AAED,SAAS,YAAY,CAAC,QAAgB,EAAE,GAAW;IACjD,IAAI,QAAQ,IAAI,YAAY;QAAE,MAAM,IAAI,0BAA0B,CAAC,GAAG,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC;IACtF,OAAO,QAAQ,GAAG,CAAC,CAAC;AACtB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,IAA4B,EAC5B,IAAY,EACZ,GAAW,EACX,IAA+D;IAE/D,OAAO,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/E,CAAC;AAED,wGAAwG;AACxG,KAAK,UAAU,WAAW,CACxB,IAA4B,EAC5B,YAAoB,EACpB,GAAW,EACX,IAA+D,EAC/D,QAAuB,EACvB,OAAiE;IAEjE,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,QAAQ,CAAC,CAAC;IAEpD,KAAK,IAAI,QAAQ,GAAG,CAAC,IAAM,CAAC;QAC1B,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;QACjE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YACrF,IAAI,MAAM,KAAK,QAAQ;gBAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;YACpD,QAAQ,GAAG,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YACvC,SAAS;QACX,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAClG,IAAI,QAAQ,KAAK,QAAQ;YAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;QACtD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,QAAQ,GAAG,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YACvC,SAAS;QACX,CAAC;QAED,IAAI,MAAkB,CAAC;QACvB,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,iBAAiB,CAAC,GAAG,CAAC;gBAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;YACvD,0GAA0G;YAC1G,qFAAqF;YACrF,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrC,QAAQ,GAAG,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;gBACvC,SAAS;YACX,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,IAAI,KAAe,CAAC;QACpB,IAAI,OAA8B,CAAC;QACnC,IAAI,CAAC;YACH,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC1C,IAAI,KAAK,KAAK,IAAI;gBAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;YAC/C,OAAO,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC/F,CAAC;gBAAS,CAAC;YACT,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;YACxB,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;YAC1D,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACnC,CAAC;QACD,IAAI,OAAO,KAAK,QAAQ;YAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;QACrD,QAAQ,GAAG,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACzC,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,IAA4B,EAC5B,IAAY,EACZ,GAAW;IAEX,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAExC,KAAK,IAAI,QAAQ,GAAG,CAAC,IAAM,CAAC;QAC1B,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;QACjE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YACrF,IAAI,MAAM,KAAK,QAAQ;gBAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;YACpD,QAAQ,GAAG,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YACvC,SAAS;QACX,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QACxF,MAAM,OAAO,GAAG,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,aAAa,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC5H,IAAI,OAAO,KAAK,OAAO;YAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAChE,IAAI,OAAO,KAAK,QAAQ;YAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;QACrD,QAAQ,GAAG,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACzC,CAAC;AACH,CAAC;AAED,iFAAiF;AAEjF;;;;;;;GAOG;AACH,MAAM,gBAAgB,GAAG,WAAc,CAAC;AAExC;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAyB;IAC9D,OAAO,OAAO,CAAC,OAAO,GAAG,EAAE,IAAI,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC;AACtD,CAAC;AAED,SAAS,UAAU,CAAC,OAAyB;IAC3C,OAAO,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;AAC/E,CAAC;AAeD;;;;;GAKG;AACH,SAAS,iBAAiB,CACxB,IAA4B,EAC5B,IAA8B,EAC9B,GAAiB,EACjB,QAAQ,GAAG,QAAQ;IAEnB,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACtD,IAAI,WAAW,KAAK,SAAS;QAAE,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC;IAC3F,MAAM,SAAS,GAAG,KAAK,EAAE,GAAW,EAAoC,EAAE;QACxE,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC;QACvC,OAAO,OAAO,KAAK,IAAI,IAAI,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9E,CAAC,CAAC;IACF,MAAM,OAAO,GAAG,CAAC,OAAyB,EAAW,EAAE;QACrD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,QAAU,CAAC;QACrD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;QACrF,OAAO,KAAK,GAAG,MAAM,IAAI,gBAAgB,CAAC;IAC5C,CAAC,CAAC;IACF,MAAM,MAAM,GAAkB,KAAK,EAAE,GAAG,EAAE,EAAE;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;YACrC,IAAI,OAAO,KAAK,IAAI,IAAI,UAAU,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC7D,MAAM,GAAG,IAAI,CAAC;gBACd,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjC,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;QACpC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAClC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1D,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,UAAU,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACpG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YACrD,OAAO,IAAI,CAAC,IAAI,GAAG,QAAQ;gBAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAM,CAAC,CAAC;QACtE,CAAC;QACD,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC,CAAC;IACF,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC;AAC1C,CAAC;AAED;;;;GAIG;AACH,MAAM,cAAc,GAAG,IAAI,OAAO,EAAoD,CAAC;AACvF,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAoBnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAA4B,EAAE,IAAY,EAAE,MAAoB,IAAI,CAAC,GAAG;IAC1G,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC5C,MAAM,cAAc,GAAoB,EAAE,CAAC;IAE3C,wFAAwF;IACxF,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAE7D,OAAO;QACL,KAAK,CAAC,OAAO,CAAI,GAAW,EAAE,IAA+D;YAC3F,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;YAC/B,IAAI,KAAgC,CAAC;YACrC,IAAI,QAAwB,CAAC;YAC7B,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE;oBAChG,KAAK,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;gBAChE,CAAC,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;oBAAE,MAAM,KAAK,CAAC;gBACpC,OAAO,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YACrD,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;gBAAE,OAAO,QAAQ,CAAC;YACxC,IAAI,QAAQ,CAAC,KAAK,KAAK,QAAQ;gBAAE,OAAO,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YACpF,IAAI,KAAK,KAAK,SAAS;gBAAE,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpD,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,KAAK,CAAC,MAAM;YACV,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;YAChC,MAAM,WAAW,GAAG,IAAI,GAAG,EAA8B,CAAC;YAC1D,MAAM,WAAW,GAAG,KAAK,EAAE,GAAW,EAA+B,EAAE;gBACrE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC1B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBACxC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC9F,CAAC;gBACD,OAAO,WAAW,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;YAC/B,CAAC,CAAC;YACF,IAAI,CAAC;gBACH,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;oBACrC,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;wBAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAC5F,CAAC;YACH,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,KAAK,EAAE,CAAC;gBACb,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;YAC5B,CAAC;YACD,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;QACpB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,kGAAkG;AAClG,KAAK,UAAU,UAAU,CACvB,IAA4B,EAC5B,YAAoB,EACpB,OAAsB,EACtB,WAAyD;IAEzD,IAAI,MAAM,GAAG,YAAY,CAAC;IAC1B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QAC7D,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAE,CAAC;QACzC,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,OAAO,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,OAAO,KAAK,CAAC;QAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,KAAK,KAAK,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAE,CAAC;QACnG,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;QACjG,MAAM,GAAG,SAAS,CAAC;IACrB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,iFAAiF;AAEjF;;;;;;;GAOG;AACH,MAAM,oBAAoB,GAAG,IAAI,OAAO,EAAuC,CAAC;AAEhF,SAAS,oBAAoB,CAAC,IAA4B;IACxD,IAAI,KAAK,GAAG,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;QAClB,oBAAoB,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,MAAM,GAAG,IAAI,GAAG,EAA4B,CAAC;AAEnD,SAAS,OAAO,CAAI,GAAW,EAAE,EAAoB;IACnD,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAClD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9B,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CACtB,GAAG,EAAE,CAAC,SAAS,EACf,GAAG,EAAE,CAAC,SAAS,CAChB,CAAC;IACF,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACzB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;QACrB,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,OAAO;YAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACb,CAAC;AAYD,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;AAEnE,SAAS,oBAAoB,CAAC,GAAW;IACvC,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,+CAA+C,GAAG,GAAG,CAA0B,CAAC;IACtG,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC;IACpB,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC;IACxB,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC;IACf,OAAO,GAAG,CAAC;AACb,CAAC;AAED,4EAA4E;AAC5E,KAAK,UAAU,SAAS,CAAC,IAA4B,EAAE,MAAc;IACnE,IAAI,MAAkB,CAAC;IACvB,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,iBAAiB,CAAC,GAAG,CAAE,GAA6B,EAAE,IAAI,IAAI,EAAE,CAAC;YAAE,OAAO,IAAI,CAAC;QACnF,MAAM,GAAG,CAAC;IACZ,CAAC;IACD,IAAI,CAAC;QACH,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,iBAAiB,CAAC,GAAG,CAAE,GAA6B,EAAE,IAAI,IAAI,EAAE,CAAC;YAAE,OAAO,IAAI,CAAC;QACnF,MAAM,GAAG,CAAC;IACZ,CAAC;YAAS,CAAC;QACT,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,UAAU,CACvB,IAA4B,EAC5B,MAAc,EACd,OAAe,EACf,MAAe,EACf,GAAW,EACX,KAAK,GAAG,CAAC,CAAC;IAEV,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC7D,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO;IAClC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,OAAO,KAAK,IAAI;QAAE,MAAM,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACzD,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,EAAE,CAAC;QAChF,MAAM,IAAI,2BAA2B,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IACD,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACjE,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,uBAAuB,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAC5D,CAAC;IACD,IAAI,OAAO,KAAK,gBAAgB;QAAE,MAAM,IAAI,4BAA4B,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AACzF,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,sBAAsB,CACnC,IAA4B,EAC5B,YAAoB,EACpB,QAAkB,EAClB,aAAqB,EACrB,GAAW;IAEX,IAAI,aAAa,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACrE,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,IAAI,SAAS,GAAG,YAAY,CAAC;QAC7B,SAAS,CAAC;YACR,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACvC,IAAI,MAAM,KAAK,SAAS;gBAAE,MAAM;YAChC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;YACvC,SAAS,GAAG,MAAM,CAAC;YACnB,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,IAAI;gBAAE,MAAM;QACpD,CAAC;QACD,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC;YAC3B,MAAM,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;YACtD,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IACD,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;IAC1E,KAAK,IAAI,KAAK,GAAG,aAAa,EAAE,KAAK,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;QACrE,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAE,CAAC;QACjC,MAAM,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAC3D,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,KAAK,UAAU,eAAe,CAC5B,IAA4B,EAC5B,GAAW,EACX,MAAc,EACd,GAAW,EACX,IAAY,EACZ,YAAoB;IAEpB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC7C,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACvC,OAAO;IACT,CAAC;IACD,IAAI,OAAO,KAAK,aAAa,EAAE,CAAC;QAC9B,oBAAoB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC7C,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC/B,OAAO;IACT,CAAC;IACD,MAAM,OAAO,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACjE,IAAI,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;QAAE,MAAM,IAAI,0BAA0B,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC1E,MAAM,uBAAuB,CAAC,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AACjF,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,IAA4B,EAC5B,IAAY,EACZ,GAAW,EACX,IAA8C;IAE9C,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,QAAQ,CAAC,CAAC;IACpD,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;IAC5C,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACzC,OAAO,OAAO,CAAC,GAAG,EAAE,KAAK,IAAI,EAAE;QAC7B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC;QACnE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;YACpE,IAAI,QAAQ,CAAC,KAAK,KAAK,gBAAgB;gBAAE,MAAM,IAAI,4BAA4B,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;YACvG,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;YACzF,MAAM,OAAO,GAAoB;gBAC/B,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,KAAK,CAAC,OAAO;oBACX,OAAO,QAAQ,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBACrE,CAAC;gBACD,KAAK,CAAC,OAAO,CAAC,KAAK;oBACjB,MAAM,sBAAsB,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;oBAC/E,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;oBACjC,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;oBACvC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;oBACpC,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;oBAC1C,IAAI,CAAC;wBACH,IAAI,QAAQ,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;4BAC/B,oFAAoF;4BACpF,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;4BACnD,2EAA2E;4BAC3E,8EAA8E;4BAC9E,MAAM,mBAAmB,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;4BAClD,OAAO;wBACT,CAAC;wBACD,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;4BACjD,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;4BAC/B,OAAO;wBACT,CAAC;wBACD,MAAM,eAAe,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;oBACpE,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;wBACvC,MAAM,GAAG,CAAC;oBACZ,CAAC;gBACH,CAAC;gBACD,KAAK,CAAC,MAAM;oBACV,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC5B,CAAC;aACF,CAAC;YACF,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;gBAAS,CAAC;YACT,MAAM,OAAO,EAAE,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,iFAAiF;AAEjF,SAAS,MAAM,CAAC,KAA+E;IAC7F,IAAI,KAAK,CAAC,cAAc,EAAE;QAAE,OAAO,SAAS,CAAC;IAC7C,IAAI,KAAK,CAAC,WAAW,EAAE;QAAE,OAAO,WAAW,CAAC;IAC5C,IAAI,KAAK,CAAC,MAAM,EAAE;QAAE,OAAO,MAAM,CAAC;IAClC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAS;IAC9C,MAAM,EAAE,WAAW;IACnB,UAAU,EAAE,MAAM;IAClB,UAAU,EAAE,QAAQ;IACpB,UAAU,EAAE,QAAQ;IACpB,UAAU,EAAE,QAAQ;IACpB,UAAU,EAAE,YAAY;IACxB,UAAU,EAAE,MAAM;IAClB,UAAU,EAAE,OAAO;IACnB,UAAU,EAAE,WAAW;IACvB,MAAM,EAAE,OAAO;IACf,UAAU,EAAE,QAAQ;IACpB,UAAU,EAAE,QAAQ;IACpB,MAAM,EAAE,UAAU;CACnB,CAAC,CAAC;AAEH,qGAAqG;AACrG,MAAM,UAAU,uBAAuB,CAAC,QAAyB,EAAE,cAA6B;IAC9F,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IACtC,OAAO,cAAc,KAAK,IAAI,IAAI,uBAAuB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AAChF,CAAC;AAED,gGAAgG;AAChG,SAAS,YAAY;IACnB,MAAM,OAAO,GAAG,IAAI,GAAG,EAA4B,CAAC;IACpD,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAClB,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/D,IAAI,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAC3B,CAAC,IAAI,EAAE,EAAE,CAAC,uBAAuB,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAC7D,GAAG,EAAE,CAAC,KAAK,CACZ,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;AACJ,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,gCAAgC,CAAC,UAAiC;IAChF,MAAM,MAAM,GAAG,2BAA2B,CAAC,UAAU,CAAC,CAAC;IACvD,MAAM,gBAAgB,GAAG,YAAY,EAAE,CAAC;IACxC,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;QACjD,qBAAqB,EAAE,MAAM,CAAC,qBAAqB;QACnD,KAAK,CAAC,KAAK,CAAC,MAAc;YACxB,IAAI,MAAa,CAAC;YAClB,IAAI,CAAC;gBACH,MAAM,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAClC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,iBAAiB,CAAC,GAAG,CAAC;oBAAE,OAAO,IAAI,CAAC;gBACxC,MAAM,GAAG,CAAC;YACZ,CAAC;YACD,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC;QACpE,CAAC;QACD,KAAK,CAAC,OAAO,CAAC,GAAW;YACvB,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC/D,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAChF,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,iBAAiB,CAAC,GAAG,CAAC;oBAAE,OAAO,IAAI,CAAC;gBACxC,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;QACD,KAAK,CAAC,gBAAgB,CAAC,GAAW;YAChC,IAAI,KAAK,CAAC;YACV,IAAI,CAAC;gBACH,KAAK,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,iBAAiB,CAAC,GAAG,CAAC;oBAAE,OAAO,IAAI,CAAC;gBACxC,MAAM,GAAG,CAAC;YACZ,CAAC;YACD,IAAI,CAAC,CAAC,MAAM,gBAAgB,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC3D,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;QAC5F,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,MAAc;YACvB,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAC1C,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;gBAClC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;YACpD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gBACrC,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;QACD,OAAO,CAAC,MAAkB;YACxB,OAAQ,MAAqB,CAAC,QAAQ,EAAE,CAAC;QAC3C,CAAC;QACD,KAAK,CAAC,MAAkB;YACtB,OAAQ,MAAqB,CAAC,KAAK,EAAE,CAAC;QACxC,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,MAAc;YACvB,OAAO,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAClD,CAAC;QACD,KAAK,CAAC,KAAK,CAAC,GAAW;YACrB,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACpB,OAAO,SAAS,CAAC;YACnB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ;oBAAE,OAAO,QAAQ,CAAC;gBACtE,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;QACD,KAAK,CAAC,SAAS,CAAC,GAAW,EAAE,IAAY,EAAE,KAAiB;YAC1D,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;QAClD,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,IAAY,EAAE,EAAU;YACjC,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACxB,OAAO,QAAQ,CAAC;YAClB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,IAAI,GAAI,GAA6B,CAAC,IAAI,CAAC;gBACjD,IAAI,IAAI,KAAK,QAAQ;oBAAE,OAAO,QAAQ,CAAC;gBACvC,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,OAAO;oBAAE,OAAO,aAAa,CAAC;gBAC9G,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,EAAU;YACnC,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC5B,CAAC;QACD,KAAK,CAAC,QAAQ,CAAC,IAAY,EAAE,EAAU;YACrC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;QAC1D,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,MAAc;YACzB,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;QACD,KAAK,CAAC,GAAW,EAAE,QAA4B;YAC7C,OAAO,6BAA6B,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,GAAG,EAAE,EAAE,EAAE,YAAY,EAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;QACrI,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -50,8 +50,8 @@ export declare function isPrivateFilesystemMutationLockRoot(facts: FilesystemMut
50
50
  * `mkdir` is the atomic claim. Locks live in a private per-user runtime namespace keyed by the
51
51
  * canonical target path, never inside the portable bundle: Git staging, establishment snapshots,
52
52
  * copying, and packaging cannot capture them. A valid same-host lock whose PID is absent is moved
53
- * to a token-fenced quarantine and retried; malformed, foreign-host, and live locks remain
54
- * fail-closed.
53
+ * to a token-fenced quarantine and retried; an empty lock directory older than the claim window is
54
+ * removed and retried; malformed, foreign-host, and live locks remain fail-closed.
55
55
  */
56
56
  export declare function acquireFilesystemMutationLock(target: string, options?: FilesystemMutationLockOptions): Promise<() => Promise<void>>;
57
57
  /** @internal Runtime lock directory for one identity key; the key is the whole path component. */
@@ -1 +1 @@
1
- {"version":3,"file":"filesystem-lock.d.ts","sourceRoot":"","sources":["../src/filesystem-lock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"filesystem-lock.d.ts","sourceRoot":"","sources":["../src/filesystem-lock.ts"],"names":[],"mappings":"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"}