@usine/executor 0.2.1 → 0.4.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 (250) hide show
  1. package/LICENSE +661 -21
  2. package/README.md +212 -37
  3. package/dist/child-command.d.ts +5 -8
  4. package/dist/child-command.d.ts.map +1 -1
  5. package/dist/child-command.js +10 -14
  6. package/dist/child-command.js.map +1 -1
  7. package/dist/child-environment.d.ts +19 -0
  8. package/dist/child-environment.d.ts.map +1 -0
  9. package/dist/child-environment.js +18 -0
  10. package/dist/child-environment.js.map +1 -0
  11. package/dist/claude-login-lock.d.ts +9 -0
  12. package/dist/claude-login-lock.d.ts.map +1 -0
  13. package/dist/claude-login-lock.js +15 -0
  14. package/dist/claude-login-lock.js.map +1 -0
  15. package/dist/cloudflare/client.d.ts +50 -0
  16. package/dist/cloudflare/client.d.ts.map +1 -0
  17. package/dist/cloudflare/client.js +108 -0
  18. package/dist/cloudflare/client.js.map +1 -0
  19. package/dist/cloudflare/cloudflare.d.ts +17 -0
  20. package/dist/cloudflare/cloudflare.d.ts.map +1 -0
  21. package/dist/cloudflare/cloudflare.js +704 -0
  22. package/dist/cloudflare/cloudflare.js.map +1 -0
  23. package/dist/cloudflare/model.d.ts +42 -0
  24. package/dist/cloudflare/model.d.ts.map +1 -0
  25. package/dist/cloudflare/model.js +2 -0
  26. package/dist/cloudflare/model.js.map +1 -0
  27. package/dist/cloudflare/shell/environment.d.ts +12 -0
  28. package/dist/cloudflare/shell/environment.d.ts.map +1 -0
  29. package/dist/cloudflare/shell/environment.js +12 -0
  30. package/dist/cloudflare/shell/environment.js.map +1 -0
  31. package/dist/cloudflare/shell/shell.d.ts +2 -0
  32. package/dist/cloudflare/shell/shell.d.ts.map +1 -0
  33. package/dist/cloudflare/shell/shell.js +155 -0
  34. package/dist/cloudflare/shell/shell.js.map +1 -0
  35. package/dist/credential-environment.d.ts +20 -0
  36. package/dist/credential-environment.d.ts.map +1 -0
  37. package/dist/credential-environment.js +20 -0
  38. package/dist/credential-environment.js.map +1 -0
  39. package/dist/durable-session.d.ts +81 -0
  40. package/dist/durable-session.d.ts.map +1 -0
  41. package/dist/durable-session.js +550 -0
  42. package/dist/durable-session.js.map +1 -0
  43. package/dist/exe-dev/commands.d.ts +23 -13
  44. package/dist/exe-dev/commands.d.ts.map +1 -1
  45. package/dist/exe-dev/commands.js +11 -57
  46. package/dist/exe-dev/commands.js.map +1 -1
  47. package/dist/exe-dev/exe-dev.d.ts +9 -3
  48. package/dist/exe-dev/exe-dev.d.ts.map +1 -1
  49. package/dist/exe-dev/exe-dev.js +61 -128
  50. package/dist/exe-dev/exe-dev.js.map +1 -1
  51. package/dist/exe-dev/grants.d.ts.map +1 -1
  52. package/dist/exe-dev/grants.js +35 -15
  53. package/dist/exe-dev/grants.js.map +1 -1
  54. package/dist/exe-dev/model.d.ts +15 -19
  55. package/dist/exe-dev/model.d.ts.map +1 -1
  56. package/dist/exe-dev/model.js +9 -12
  57. package/dist/exe-dev/model.js.map +1 -1
  58. package/dist/exe-dev/preflight.d.ts +8 -4
  59. package/dist/exe-dev/preflight.d.ts.map +1 -1
  60. package/dist/exe-dev/preflight.js +26 -35
  61. package/dist/exe-dev/preflight.js.map +1 -1
  62. package/dist/executor.d.ts +292 -44
  63. package/dist/executor.d.ts.map +1 -1
  64. package/dist/executor.js +187 -19
  65. package/dist/executor.js.map +1 -1
  66. package/dist/guard.d.ts +57 -7
  67. package/dist/guard.d.ts.map +1 -1
  68. package/dist/guard.js +274 -59
  69. package/dist/guard.js.map +1 -1
  70. package/dist/harness-preflight.d.ts +27 -5
  71. package/dist/harness-preflight.d.ts.map +1 -1
  72. package/dist/harness-preflight.js +32 -31
  73. package/dist/harness-preflight.js.map +1 -1
  74. package/dist/keyed-lock.d.ts +2 -3
  75. package/dist/keyed-lock.d.ts.map +1 -1
  76. package/dist/keyed-lock.js +2 -3
  77. package/dist/keyed-lock.js.map +1 -1
  78. package/dist/leftovers.d.ts +9 -0
  79. package/dist/leftovers.d.ts.map +1 -0
  80. package/dist/leftovers.js +14 -0
  81. package/dist/leftovers.js.map +1 -0
  82. package/dist/local/credentials.d.ts +21 -0
  83. package/dist/local/credentials.d.ts.map +1 -0
  84. package/dist/local/credentials.js +39 -0
  85. package/dist/local/credentials.js.map +1 -0
  86. package/dist/local/leftovers.d.ts +8 -0
  87. package/dist/local/leftovers.d.ts.map +1 -0
  88. package/dist/local/leftovers.js +23 -0
  89. package/dist/local/leftovers.js.map +1 -0
  90. package/dist/local/local.d.ts +17 -11
  91. package/dist/local/local.d.ts.map +1 -1
  92. package/dist/local/local.js +205 -132
  93. package/dist/local/local.js.map +1 -1
  94. package/dist/memory-preflight.d.ts +27 -0
  95. package/dist/memory-preflight.d.ts.map +1 -0
  96. package/dist/memory-preflight.js +83 -0
  97. package/dist/memory-preflight.js.map +1 -0
  98. package/dist/pre-push-hook.d.ts +20 -0
  99. package/dist/pre-push-hook.d.ts.map +1 -0
  100. package/dist/pre-push-hook.js +33 -0
  101. package/dist/pre-push-hook.js.map +1 -0
  102. package/dist/prepared-attempt.d.ts +41 -3
  103. package/dist/prepared-attempt.d.ts.map +1 -1
  104. package/dist/prepared-attempt.js +109 -31
  105. package/dist/prepared-attempt.js.map +1 -1
  106. package/dist/provision.d.ts +129 -15
  107. package/dist/provision.d.ts.map +1 -1
  108. package/dist/provision.js +428 -69
  109. package/dist/provision.js.map +1 -1
  110. package/dist/remote/commands.d.ts +51 -0
  111. package/dist/remote/commands.d.ts.map +1 -0
  112. package/dist/remote/commands.js +94 -0
  113. package/dist/remote/commands.js.map +1 -0
  114. package/dist/remote/container.d.ts +90 -0
  115. package/dist/remote/container.d.ts.map +1 -0
  116. package/dist/remote/container.js +480 -0
  117. package/dist/remote/container.js.map +1 -0
  118. package/dist/remote/leftovers.d.ts +14 -0
  119. package/dist/remote/leftovers.d.ts.map +1 -0
  120. package/dist/remote/leftovers.js +22 -0
  121. package/dist/remote/leftovers.js.map +1 -0
  122. package/dist/remote/liveness.d.ts +33 -0
  123. package/dist/remote/liveness.d.ts.map +1 -0
  124. package/dist/remote/liveness.js +196 -0
  125. package/dist/remote/liveness.js.map +1 -0
  126. package/dist/remote/machine.d.ts +110 -0
  127. package/dist/remote/machine.d.ts.map +1 -0
  128. package/dist/remote/machine.js +2 -0
  129. package/dist/remote/machine.js.map +1 -0
  130. package/dist/remote/remote.d.ts +28 -0
  131. package/dist/remote/remote.d.ts.map +1 -0
  132. package/dist/remote/remote.js +556 -0
  133. package/dist/remote/remote.js.map +1 -0
  134. package/dist/remote/sweep.d.ts +17 -0
  135. package/dist/remote/sweep.d.ts.map +1 -0
  136. package/dist/remote/sweep.js +117 -0
  137. package/dist/remote/sweep.js.map +1 -0
  138. package/dist/renewable-credential.d.ts +17 -0
  139. package/dist/renewable-credential.d.ts.map +1 -0
  140. package/dist/renewable-credential.js +58 -0
  141. package/dist/renewable-credential.js.map +1 -0
  142. package/dist/salvage.d.ts +38 -0
  143. package/dist/salvage.d.ts.map +1 -0
  144. package/dist/salvage.js +198 -0
  145. package/dist/salvage.js.map +1 -0
  146. package/dist/ssh/api-keys.d.ts +36 -0
  147. package/dist/ssh/api-keys.d.ts.map +1 -0
  148. package/dist/ssh/api-keys.js +72 -0
  149. package/dist/ssh/api-keys.js.map +1 -0
  150. package/dist/ssh/codex-homes.d.ts +21 -0
  151. package/dist/ssh/codex-homes.d.ts.map +1 -0
  152. package/dist/ssh/codex-homes.js +78 -0
  153. package/dist/ssh/codex-homes.js.map +1 -0
  154. package/dist/ssh/container.d.ts +32 -0
  155. package/dist/ssh/container.d.ts.map +1 -0
  156. package/dist/ssh/container.js +282 -0
  157. package/dist/ssh/container.js.map +1 -0
  158. package/dist/ssh/credentials.d.ts +43 -0
  159. package/dist/ssh/credentials.d.ts.map +1 -0
  160. package/dist/ssh/credentials.js +86 -0
  161. package/dist/ssh/credentials.js.map +1 -0
  162. package/dist/ssh/gateway/admin.d.ts +45 -0
  163. package/dist/ssh/gateway/admin.d.ts.map +1 -0
  164. package/dist/ssh/gateway/admin.js +129 -0
  165. package/dist/ssh/gateway/admin.js.map +1 -0
  166. package/dist/ssh/gateway/attachments.d.ts +31 -0
  167. package/dist/ssh/gateway/attachments.d.ts.map +1 -0
  168. package/dist/ssh/gateway/attachments.js +168 -0
  169. package/dist/ssh/gateway/attachments.js.map +1 -0
  170. package/dist/ssh/gateway/environment.d.ts +71 -0
  171. package/dist/ssh/gateway/environment.d.ts.map +1 -0
  172. package/dist/ssh/gateway/environment.js +148 -0
  173. package/dist/ssh/gateway/environment.js.map +1 -0
  174. package/dist/ssh/gateway/forward.d.ts +74 -0
  175. package/dist/ssh/gateway/forward.d.ts.map +1 -0
  176. package/dist/ssh/gateway/forward.js +247 -0
  177. package/dist/ssh/gateway/forward.js.map +1 -0
  178. package/dist/ssh/gateway/preflight.d.ts +67 -0
  179. package/dist/ssh/gateway/preflight.d.ts.map +1 -0
  180. package/dist/ssh/gateway/preflight.js +320 -0
  181. package/dist/ssh/gateway/preflight.js.map +1 -0
  182. package/dist/ssh/limits.d.ts +60 -0
  183. package/dist/ssh/limits.d.ts.map +1 -0
  184. package/dist/ssh/limits.js +84 -0
  185. package/dist/ssh/limits.js.map +1 -0
  186. package/dist/ssh/model.d.ts +153 -0
  187. package/dist/ssh/model.d.ts.map +1 -0
  188. package/dist/ssh/model.js +2 -0
  189. package/dist/ssh/model.js.map +1 -0
  190. package/dist/ssh/preflight.d.ts +35 -0
  191. package/dist/ssh/preflight.d.ts.map +1 -0
  192. package/dist/ssh/preflight.js +87 -0
  193. package/dist/ssh/preflight.js.map +1 -0
  194. package/dist/ssh/provisioner/boat.d.ts +33 -0
  195. package/dist/ssh/provisioner/boat.d.ts.map +1 -0
  196. package/dist/ssh/provisioner/boat.js +247 -0
  197. package/dist/ssh/provisioner/boat.js.map +1 -0
  198. package/dist/ssh/provisioner/hetzner.d.ts +32 -0
  199. package/dist/ssh/provisioner/hetzner.d.ts.map +1 -0
  200. package/dist/ssh/provisioner/hetzner.js +337 -0
  201. package/dist/ssh/provisioner/hetzner.js.map +1 -0
  202. package/dist/ssh/provisioner/host-key.d.ts +11 -0
  203. package/dist/ssh/provisioner/host-key.d.ts.map +1 -0
  204. package/dist/ssh/provisioner/host-key.js +57 -0
  205. package/dist/ssh/provisioner/host-key.js.map +1 -0
  206. package/dist/ssh/provisioner/http.d.ts +45 -0
  207. package/dist/ssh/provisioner/http.d.ts.map +1 -0
  208. package/dist/ssh/provisioner/http.js +72 -0
  209. package/dist/ssh/provisioner/http.js.map +1 -0
  210. package/dist/ssh/provisioner/machines.d.ts +48 -0
  211. package/dist/ssh/provisioner/machines.d.ts.map +1 -0
  212. package/dist/ssh/provisioner/machines.js +686 -0
  213. package/dist/ssh/provisioner/machines.js.map +1 -0
  214. package/dist/ssh/provisioner/model.d.ts +92 -0
  215. package/dist/ssh/provisioner/model.d.ts.map +1 -0
  216. package/dist/ssh/provisioner/model.js +37 -0
  217. package/dist/ssh/provisioner/model.js.map +1 -0
  218. package/dist/ssh/ssh.d.ts +23 -0
  219. package/dist/ssh/ssh.d.ts.map +1 -0
  220. package/dist/ssh/ssh.js +145 -0
  221. package/dist/ssh/ssh.js.map +1 -0
  222. package/dist/ssh/worker-records.d.ts +18 -0
  223. package/dist/ssh/worker-records.d.ts.map +1 -0
  224. package/dist/ssh/worker-records.js +100 -0
  225. package/dist/ssh/worker-records.js.map +1 -0
  226. package/dist/ssh/workers.d.ts +80 -0
  227. package/dist/ssh/workers.d.ts.map +1 -0
  228. package/dist/ssh/workers.js +247 -0
  229. package/dist/ssh/workers.js.map +1 -0
  230. package/package.json +25 -9
  231. package/dist/exe-dev/channel.d.ts +0 -12
  232. package/dist/exe-dev/channel.d.ts.map +0 -1
  233. package/dist/exe-dev/channel.js +0 -42
  234. package/dist/exe-dev/channel.js.map +0 -1
  235. package/dist/exe-dev/shell.d.ts +0 -12
  236. package/dist/exe-dev/shell.d.ts.map +0 -1
  237. package/dist/exe-dev/shell.js +0 -31
  238. package/dist/exe-dev/shell.js.map +0 -1
  239. package/dist/exe-dev/sweep.d.ts +0 -10
  240. package/dist/exe-dev/sweep.d.ts.map +0 -1
  241. package/dist/exe-dev/sweep.js +0 -117
  242. package/dist/exe-dev/sweep.js.map +0 -1
  243. package/dist/invalid-frame.d.ts +0 -17
  244. package/dist/invalid-frame.d.ts.map +0 -1
  245. package/dist/invalid-frame.js +0 -111
  246. package/dist/invalid-frame.js.map +0 -1
  247. package/dist/run-host-session.d.ts +0 -27
  248. package/dist/run-host-session.d.ts.map +0 -1
  249. package/dist/run-host-session.js +0 -303
  250. package/dist/run-host-session.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloudflare.js","sourceRoot":"","sources":["../../src/cloudflare/cloudflare.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAmB,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,kBAAkB,EAElB,WAAW,EACX,YAAY,GACb,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE7E,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACrF,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,OAAO,EAAuB,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAGhF,OAAO,EAAuB,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAO/E,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EACL,KAAK,IAAI,GAAG,EACZ,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,IAAI,EACJ,KAAK,EACL,MAAM,EACN,QAAQ,EACR,GAAG,EACH,MAAM,EACN,KAAK,GACN,MAAM,QAAQ,CAAC;AAGhB,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAA8B,MAAM,uBAAuB,CAAC;AACtF,OAAO,EAEL,kBAAkB,EAClB,QAAQ,EACR,aAAa,EAEb,sBAAsB,EACtB,aAAa,EACb,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAqB,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACpF,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,EAEd,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,cAAc,GAEf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAuB,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAgD,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE7F,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE1E,mGAAmG;AACnG,MAAM,SAAS,GAAG,GAAG,YAAY,YAAY,CAAC;AAE9C,0FAA0F;AAC1F,MAAM,iBAAiB,GAAG,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAEtD,sFAAsF;AACtF,MAAM,aAAa,GAAe;IAChC,OAAO,EAAE,OAAO,CAAC,QAAQ;IACzB,IAAI,EAAE,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,gBAAgB,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;CAClE,CAAC;AAEF,mGAAmG;AACnG,MAAM,uBAAuB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;CAKzC,CAAC,IAAI,EAAE,CAAC;AAET,gGAAgG;AAChG,MAAM,iBAAiB,GAAG;IACxB,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC5B,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE;CACuD,CAAC;AAE3E,MAAM,eAAe,GAAG;IACtB,SAAS,EAAE,wCAAwC;IACnD,MAAM,EAAE,+BAA+B;CACiB,CAAC;AAY3D,mDAAmD;AACnD,MAAM,SAAS,GAAG,CAAC,UAA0B,EAAE,SAAoB,EAAE,EAAE;IACrE,MAAM,KAAK,GAAG,GAAG,SAAS,UAAU,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAAC;IACrE,OAAO;QACL,KAAK;QACL,OAAO,EAAE,GAAG,KAAK,UAAU;QAC3B,QAAQ,EAAE,GAAG,SAAS,aAAa,WAAW,CAAC,SAAS,CAAC,EAAE;KACnD,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,MAAM,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;AAEjD,MAAM,cAAc,GAClB,CAAC,SAA4B,EAAE,EAAE,CACjC,CAAC,KAA0B,EAA0B,EAAE,CACrD,IAAI,sBAAsB,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;AAEpF,oEAAoE;AACpE,MAAM,QAAQ,GAAG,CACf,OAAgC,EAChC,KAAgB,EACsB,EAAE,CACxC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;IAC7C,MAAM,EAAE,GAAG,EAAE,CACX,MAAM,CAAC,IAAI,CACT,IAAI,qBAAqB,CAAC;QACxB,MAAM,EAAE,OAAO,CAAC,IAAI;QACpB,UAAU,EAAE,WAAW;QACvB,OAAO,EAAE,sBAAsB,OAAO,CAAC,IAAI,0DAA0D;QACrG,KAAK,EAAE,IAAI,KAAK,CAAC,uBAAuB,KAAK,CAAC,OAAO,EAAE,CAAC;KACzD,CAAC,CACH;IACH,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CACnB,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC;QACxD,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE;QACf,CAAC,CAAC,MAAM,CAAC,IAAI,CACT,IAAI,qBAAqB,CAAC;YACxB,MAAM,EAAE,OAAO,CAAC,IAAI;YACpB,UAAU,EAAE,eAAe;YAC3B,OAAO,EAAE,GAAG,eAAe,CAAC,QAAQ,CAAC,0BAA0B,OAAO,CAAC,IAAI,wCAAwC,QAAQ,sDAAsD;YACjL,KAAK,EAAE,IAAI,KAAK,CAAC,MAAM,QAAQ,MAAM,CAAC;SACvC,CAAC,CACH;CACR,CAAC,CAAC;AAEL,0GAA0G;AAC1G,MAAM,cAAc,GAAG,CACrB,OAAgC,EAChC,MAAiC,EACjC,QAAsB,EACtB,EAAE,CACF,IAAI,kBAAkB,CAAC;IACrB,QAAQ;IACR,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,CAC9B,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CACvB,IAAI,aAAa,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,gBAAgB,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CACrF;CACF,CAAC,CAAC;AAEL;;;GAGG;AACH,MAAM,aAAa,GAAG,CAAC,QAAsB,EAAE,EAAE,CAC/C,IAAI,kBAAkB,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;AAE7E,wFAAwF;AACxF,MAAM,aAAa,GACjB,uKAAuK,CAAC;AAE1K,4FAA4F;AAC5F,MAAM,YAAY,GAChB,CACE,SAAkC,EAClC,QAAwB,EACxB,KAAkB,EACJ,EAAE,CAClB,CAAC,KAAK,EAAE,EAAE,CACR,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC/D,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IACjF,IAAI,MAAM,CAAC,QAAQ,KAAK,aAAa;QACnC,OAAO,KAAK,CAAC,CAAC,IAAI,sBAAsB,CAAC;YACvC,SAAS;YACT,OAAO,EAAE,uBAAuB,KAAK,CAAC,WAAW,WAAW,OAAO,EAAE;YACrE,KAAK,EAAE,IAAI,KAAK,CACd,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,iCAAiC,aAAa,EAAE,CACzE;SACF,CAAC,CAAC;IACL,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACrC,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC;QACvB,OAAO,IAAI,uBAAuB,CAAC;YACjC,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,UAAU,EAAE,QAAQ;YACpB,OAAO,EAAE,GAAG,OAAO,wCAAwC;SAC5D,CAAC,CAAC;IACL,IACE,KAAK,CAAC,OAAO,KAAK,OAAO;QACzB,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,KAAK,aAAa,SAAS,EAAE,CAAC;QAEjF,OAAO,IAAI,uBAAuB,CAAC;YACjC,OAAO,EAAE,OAAO;YAChB,UAAU,EAAE,SAAS;YACrB,OAAO,EAAE,yBAAyB,qCAAqC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,+BAA+B,oDAAoD,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;SAC1N,CAAC,CAAC;IACL,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,wCAAwC,EAAE;QAC9D,OAAO,EAAE,KAAK,CAAC,WAAW;QAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,OAAO;KACR,CAAC,CAAC;IACH,OAAO,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;AACtD,CAAC,CAAC,CAAC;AAEP,MAAM,sBAAsB,GAAG,CAAC,OAAkC,EAAE,EAAE,CACpE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,iBAAiB,CAAC;IAC1C,MAAM,kBAAkB,GAAG,KAAK,CAAC,CAAC,kBAAkB,CAAC;IACrD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,eAAe,CAAC;IACtC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,iBAAiB,CAAC;QACvC,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,YAAY;KACvD,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,aAAa,CAAC;IAC7C,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,IAAI,YAAY,CAAC;IAEpE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAgC,CAAC;IACxD,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACtC,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;YAC3B,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CACtB,IAAI,KAAK,CAAC,4CAA4C,OAAO,CAAC,IAAI,SAAS,CAAC,CAC7E,CAAC;QACJ,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAC/B,MAAM,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,EAC/E;YACE,MAAM,EAAE,GAAG,EAAE,CACX,MAAM,CAAC,GAAG,CACR,IAAI,KAAK,CACP,uCAAuC,OAAO,CAAC,QAAQ,uBAAuB,CAC/E,CACF;YACH,MAAM,EAAE,MAAM,CAAC,OAAO;SACvB,CACF,CAAC;QACF,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACvD,MAAM,cAAc,GAAG;YACrB,GAAG,MAAM,CAAC,WAAW,CACnB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAC1C,MAAM,CAAC,OAAO,CACZ,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAC9E,CACF,CACF;YACD,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,MAAM;YACvD,CAAC,iBAAiB,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC;YAC1E,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC;SACnF,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE;YACxB,OAAO;YACP,KAAK;YACL,MAAM;YACN,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;YACxE,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;SACvF,CAAC,CAAC;IACL,CAAC;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D;;;;OAIG;IACH,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACpC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;QAChC,OAAO,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE;YAC5C,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1E,OAAO,CAAC,MAAM,EAAE,MAAM,CAAU,CAAC;QACnC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,sFAAsF;IACtF,MAAM,MAAM,GAAG,IAAI,GAAG,EAAe,CAAC;IACtC,MAAM,KAAK,GAAG,CAAC,IAAiB,EAAE,EAAE,CAClC,MAAM,CAAC,cAAc,CACnB,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EACnC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAC7C,CAAC;IAEJ,MAAM,SAAS,GAAG,CAAC,SAA4B,EAAE,IAAgB,EAAE,EAAE,CACnE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE;QACpD,MAAM,EAAE,GAAG,EAAE,CACX,MAAM,CAAC,IAAI,CACT,IAAI,sBAAsB,CAAC;YACzB,SAAS;YACT,OAAO,EAAE,+BAA+B,IAAI,iBAAiB;YAC7D,KAAK,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC;SACvB,CAAC,CACH;QACH,MAAM,EAAE,MAAM,CAAC,OAAO;KACvB,CAAC,CAAC;IAEL,sGAAsG;IACtG,MAAM,kBAAkB,GAAG,CAAC,MAAwB,EAAE,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAE9F,8EAA8E;IAC9E,MAAM,iBAAiB,GAAG,CACxB,MAAwB,EACxB,OAAgB,EACsB,EAAE,CACxC,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,CACtD,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAkB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CACtF,CAAC;IAEJ,MAAM,cAAc,GAAG,MAAM,CAAC,EAAE,CAAC,mCAAmC,CAAC,CAAC,QAAQ,CAAC,EAC7E,MAAwB,EACxB,IAAiB,EACjB,MAAc;QAEd,KAAK,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAClF,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM;aACvC,OAAO,CAAC,IAAI,CAAC;aACb,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACpD,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,8BAA8B,EAAE;YAC1F,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI;YAC3B,OAAO,EAAE,IAAI;YACb,MAAM;SACP,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH;;;;OAIG;IACH,MAAM,WAAW,GAAG,MAAM,CAAC,EAAE,CAAC,gCAAgC,CAAC,CAAC,QAAQ,CAAC,EACvE,MAAwB,EACxB,IAAiB,EACjB,MAAc;QAEd,MAAM,MAAM,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QACtE,KAAK,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAC1C,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAClC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CACd,MAAM,CAAC,OAAO,CAAC,2DAA2D,EAAE,MAAM,CAAC,CACpF,EACD,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CACxB,MAAM,CAAC,QAAQ,CACb,8FAA8F,EAC9F,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CACtC,CACF,EACD,MAAM,CAAC,MAAM,CACd,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH;;;OAGG;IACH,MAAM,UAAU,GAAG,MAAM,CAAC,EAAE,CAAC,+BAA+B,CAAC,CAAC,QAAQ,CAAC,EACrE,MAAwB,EACxB,IAAiB;QAEjB,KAAK,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAClF,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CACxC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EACrD,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CACxB,MAAM,CAAC,UAAU,CAAC,6DAA6D,EAAE;YAC/E,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI;YAC3B,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC,CACH,EACD,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAClC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH;;;;OAIG;IACH,MAAM,UAAU,GAAG,CAAC,MAAwB,EAAE,IAAiB,EAAE,SAAoB,EAAE,EAAE,CACvF,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAClC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,EACxC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,EAChD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,EACvD,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CACxB,MAAM,CAAC,QAAQ,CAAC,8DAA8D,EAAE;QAC9E,SAAS;QACT,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI;QAC3B,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,KAAK,CAAC,OAAO;KACvB,CAAC,CACH,EACD,MAAM,CAAC,MAAM,CACd,CAAC;IAEJ,yFAAyF;IACzF,MAAM,YAAY,GAAG,MAAM,CAAC,EAAE,CAAC,iCAAiC,CAAC,CAAC,QAAQ,CAAC,EACzE,SAA4B,EAC5B,MAAwB,EACxB,IAAiB;QAEjB,KAAK,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAClF,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM;aACrC,IAAI,CAAC,IAAI,CAAC;aACV,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACpD,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,yDAAyD,EAAE;YAC/E,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI;YAC3B,OAAO,EAAE,IAAI;YACb,OAAO;SACR,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,oDAAoD;IACpD,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC,2BAA2B,CAAC,CAAC,QAAQ,CAAC,EAC7D,SAA4B,EAC5B,MAAwB,EACxB,IAAiB,EACjB,IAAY;QAEZ,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE;YAClF,IAAI;YACJ,IAAI;SACL,CAAC,CAAC;QACH,IAAI,SAAS,CAAC,QAAQ,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAC1C,IAAI,SAAS,CAAC,QAAQ,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAC3C,OAAO,KAAK,CAAC,CAAC,IAAI,sBAAsB,CAAC;YACvC,SAAS;YACT,OAAO,EAAE,yBAAyB,IAAI,EAAE;YACxC,KAAK,EAAE,IAAI,KAAK,CACd,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,oBAAoB,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAC5E;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH;;;OAGG;IACH,MAAM,aAAa,GAAG,MAAM,CAAC,EAAE,CAAC,kCAAkC,CAAC,CAAC,QAAQ,CAAC,EAC3E,SAAkC,EAClC,MAAwB,EACxB,IAAiB,EACjB,OAAkB;QAElB,MAAM,MAAM,GAAG;YACb,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI;YAC3B,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,OAAO;YAClB,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK;YAC3B,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,YAAY;SAC1C,CAAC;QACF,KAAK,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAC1C,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM;aACjB,MAAM,CACL,IAAI,EACJ,IAAI,aAAa,CAAC;YAChB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,OAAO;YACP,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK;YAC3B,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,YAAY;YACzC,WAAW,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC;SAC7C,CAAC,CACH;aACA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACpD,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,yCAAyC,EAAE,MAAM,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEH;;;;;OAKG;IACH,MAAM,cAAc,GAAG,MAAM,CAAC,EAAE,CAAC,mCAAmC,CAAC,CAAC,QAAQ,CAAC,EAC7E,MAAwB,EACxB,IAAiB,EACjB,SAAoB,EACpB,UAA0B,EAC1B,WAA4B,EAC5B,SAA4B;QAE5B,MAAM,MAAM,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;QACrF,KAAK,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAC1C,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,CAC9B,SAAS,CAAC,IAAI,CACZ,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,EACtF,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,mCAAmC,EAAE,MAAM,CAAC,CAAC,EAC7E,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CACxB,MAAM,CAAC,QAAQ,CACb,4FAA4F,EAC5F,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CACtC,CACF,EACD,MAAM,CAAC,MAAM,CACd,CACF,CAAC;QACF,MAAM,OAAO,GAAG,CAAC,KAAgC,EAAE,EAAE,CACnD,SAAS,CAAC,IAAI,CACZ,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC1B,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CACjF,EACD,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAC3C,CAAC;QACJ,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,mBAAmB,CAC3C,kBAAkB,CAAC,KAAK,EACxB,UAAU,EACV,SAAS,EACT,WAAW,EACX,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAC9B,CAAC;QACF,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC;IACpE,CAAC,CAAC,CAAC;IAIH,mGAAmG;IACnG,MAAM,UAAU,GACd,CACE,SAA4B,EAC5B,MAAwB,EACxB,IAAiB,EACjB,MAAoC,EACpC,MAAiC,EACjC,EAAE,CACJ,CAAC,IAA2B,EAAE,EAAE,CAC9B,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CACxF,MAAM,CAAC,OAAO,CACZ,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;QAC1D,WAAW,EAAE;YACX,GAAG,kBAAkB,CAAC,MAAM,CAAC;YAC7B,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;SACxE;QACD,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE;YAC1B,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI;YACpC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK;SAC7B,CAAC;KACH,CAAC,CACH,CACF,CAAC;IAEN,MAAM,cAAc,GAClB,CACE,SAA4B,EAC5B,MAAwB,EACxB,IAAiB,EACjB,QAAgB,EAChB,MAAqB,EACrB,EAAE,CACJ,CAAC,OAAqB,EAAE,IAA2B,EAAE,EAAE,CACrD,MAAM,CAAC,OAAO,CAAC,IAAI,CACjB,MAAM,CAAC,OAAO,CACZ,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;QAC5D,GAAG,EAAE,QAAQ;QACb,WAAW,EAAE,kBAAkB,CAAC,MAAM,CAAC;QACvC,KAAK,EAAE,MAAM,CAAC,KAAK;KACpB,CAAC,CACH,EACD,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CACtF,CAAC;IAEN;;;;OAIG;IACH,MAAM,iBAAiB,GAAG,MAAM,CAAC,EAAE,CAAC,sCAAsC,CAAC,CAAC,QAAQ,CAAC,EACnF,OAAwB,EACxB,MAAwB,EACxB,IAAiB,EACjB,MAAkC,EAClC,YAA0C;QAE1C,KAAK,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC;YAChC,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAChE,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,aAAa,GAAG,CAAC,OAAuB,EAAE,EAAE,CAChD,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACrF,MAAM,SAAS,GAAG,CAChB,GAA0E,EAC1E,EAAE,CACF,eAAe,CACb;YACE,OAAO;YACP,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,GAAG;YACH,cAAc,EAAE,MAAM,CAAC,MAAM,CAC3B,GAAG,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CACnF;SACF,EACD,aAAa,CACd,CAAC;QACJ,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;YACxD,KAAK,CAAC,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YAC7C,KAAK,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACpF,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC;QACnC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAClB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,cAAc,CAClC,MAAM,EACN,IAAI,EACJ,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,WAAW,EACnB,SAAS,CACV,CAAC;YACF,KAAK,CAAC,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YAC7C,KAAK,CAAC,CAAC,SAAS,CACd,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAC9E,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;QACF,OAAO,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH;;;;;OAKG;IACH,MAAM,gBAAgB,GAAG,MAAM,CAAC,EAAE,CAAC,qCAAqC,CAAC,CAAC,QAAQ,CAAC,EACjF,MAAwB;QAExB,MAAM,MAAM,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;QACpE,KAAK,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAClD,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAC3C,CAAC;QACF,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QACrE,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CACrC,UAAU,EACV,CAAC,OAAO,EAAE,EAAE,CACV,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,aAAa,GACjB,OAAO,CAAC,OAAO;gBACf,CAAC,KAAK,CAAC,CAAC,QAAQ;qBACb,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE;oBACvD,IAAI;oBACJ,qCAAqC;oBACrC,IAAI;oBACJ,GAAG,SAAS,WAAW;iBACxB,CAAC;qBACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACzD,IAAI,aAAa,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9C,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CACtB,4EAA4E,EAC5E,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,OAAO,EAAE,CACjE,CAAC;gBACF,OAAO,KAAK,CAAC;YACf,CAAC;YACD,KAAK,CAAC,CAAC,cAAc,CACnB,MAAM,EACN,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,OAAO;gBACb,CAAC,CAAC,sCAAsC;gBACxC,CAAC,CAAC,2CAA2C,CAChD,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CACxB,MAAM,CAAC,UAAU,CACf,sEAAsE,EACtE;YACE,GAAG,MAAM;YACT,OAAO,EAAE,OAAO,CAAC,IAAI;YACrB,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CACF,CACF,EACD,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAClC,EACH,EAAE,WAAW,EAAE,CAAC,EAAE,CACnB,CAAC;QACF,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,0CAA0C,EAAE;YAChE,GAAG,MAAM;YACT,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM;SAC5C,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,kFAAkF;IAClF,MAAM,iBAAiB,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;QAC1C,QAAQ,EAAE,MAAM,CAAC,iBAAiB;QAClC,MAAM,EAAE,CAAC,IAAgB,EAAE,EAAE,CAC3B,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,IAAI,CAC7B,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAChC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CACxB,MAAM,CAAC,UAAU,CACf,0EAA0E,EAC1E;YACE,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CACF,CACF,EACD,MAAM,CAAC,MAAM,CACd;KACJ,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,4BAA4B,CAAC,CAAC,QAAQ,CAAC,EAC/D,OAAwB,EACxB,MAAuB,EACvB,YAA0C;QAE1C,KAAK,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3D,KAAK,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3D,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAC1D,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAClB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACnB,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YACpD,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM;iBACjC,GAAG,CAAC,IAAI,CAAC;iBACT,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACpD,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;YAChE,MAAM,OAAO,GACX,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC;gBAChD,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC5D,KAAK,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAClC,OAAO,EACP,OAAO;gBACL,CAAC,CAAC,MAAM,CAAC,IAAI,CAAwB,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CACnD,MAAM,CAAC,MAAM,CACX,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;oBAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,cAAc,CAClC,MAAM,EACN,IAAI,EACJ,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,WAAW,EACnB,SAAS,CACV,CAAC;oBACF,OAAO,KAAK,CAAC,CAAC,qBAAqB,CACjC,IAAI,EACJ,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,EAChE,OAAO,CACR,CAAC;gBACJ,CAAC,CAAC,CACH,CACF;gBACH,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,EACjB,MAAM,CACP,CAAC;YACF,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3B,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,qDAAqD,EAAE;oBAC3E,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,OAAO,EAAE,IAAI;iBACd,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YACD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,KAAK,CAAC,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,sBAAsB,CAAC,CAAC;gBAC5D,OAAO;YACT,CAAC;YACD,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,iBAAiB,CACvC,OAAO,EACP,MAAM,EACN,IAAI,EACJ,MAAM,CAAC,OAAO,EACd,YAAY,CACb,CAAC;YACF,IAAI,QAAQ,EAAE,CAAC;gBACb,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,yDAAyD,EAAE;oBAClF,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,OAAO,EAAE,IAAI;iBACd,CAAC,CAAC;gBACH,KAAK,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,kCAAkC,CAAC,CAAC;YACvE,CAAC;;gBAAM,KAAK,CAAC,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,6BAA6B,CAAC,CAAC;QAC5E,CAAC,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,MAAM,CAAC,EAAE,CAAC,8BAA8B,CAAC,CAAC,QAAQ,CAAC,EACnE,UAAsB,EACtB,MAAgC,EAChC,sBAA8B;QAE9B,KAAK,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QACzD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;QAC3B,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAC7C,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CACxB,KAAK,CAAC,OAAO;YACX,CAAC,CAAC,IAAI,qBAAqB,CAAC;gBACxB,MAAM,EAAE,UAAU;gBAClB,UAAU,EAAE,aAAa;gBACzB,OAAO,EAAE,4BAA4B,OAAO,CAAC,SAAS,CAAC,MAAM,2DAA2D,UAAU,yJAAyJ;gBAC3R,KAAK,EAAE,KAAK;aACb,CAAC;YACJ,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CACvC,CACF,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;YACxC,OAAO,KAAK,CAAC,CAAC,IAAI,qBAAqB,CAAC;gBACtC,MAAM,EAAE,UAAU;gBAClB,UAAU,EAAE,WAAW;gBACvB,OAAO,EAAE,4BAA4B,OAAO,CAAC,SAAS,CAAC,MAAM,kBAAkB,OAAO,CAAC,KAAK,+BAA+B,UAAU,mBAAmB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,GAAG;gBAC7L,KAAK,EAAE,IAAI,KAAK,CAAC,WAAW,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;aACvD,CAAC,CAAC;QACL,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpC,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACrC,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;QAClD,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;YAC1D,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAClB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAClB,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACnB,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,CAC9B,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,6BAA6B,CAAC,CAAC,IAAI,CAC9D,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CACxB,MAAM,CAAC,UAAU,CACf,uEAAuE,EACvE;oBACE,MAAM,EAAE,UAAU;oBAClB,OAAO,EAAE,KAAK,CAAC,OAAO;iBACvB,CACF,CACF,EACD,MAAM,CAAC,MAAM,CACd,CACF,CAAC;gBACF,KAAK,CAAC,CAAC,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC;gBACnE,KAAK,CAAC,CAAC,sBAAsB,CAC3B,UAAU,EACV,MAAM,CAAC,IAAI,EAAE,EACb,QAAQ,EACR,YAAY,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAC1D,MAAM,CACP,CAAC;YACJ,CAAC,CAAC,CACH,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,sCAAsC,EAAE;YAC5D,MAAM,EAAE,UAAU;YAClB,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,MAAM;YACnC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;SACtC,CAAC,CAAC;QACH,gFAAgF;QAChF,OAAO,aAAa,CAAC;IACvB,CAAC,EAAE,mBAAmB,CAAC,CAAC;IAExB,MAAM,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,4BAA4B,CAAC,CAAC,QAAQ,CAAC,EAAE,OAAwB;QACzF,MAAM,MAAM,GAAG;YACb,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B,CAAC;QACF,KAAK,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3D,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1D,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,sDAAsD,EAAE;gBAC/E,GAAG,MAAM;gBACT,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO;aAC3B,CAAC,CAAC;YACH,OAAO,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;QAC1B,CAAC;QACD,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAChE,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACpC,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACnB,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QACpD,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CACnB,OAAO,CAAC,QAAQ;YACd,CAAC,CAAC,mDAAmD;YACrD,CAAC,CAAC,sCAAsC,EAC1C,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CACxD,CAAC;QAEF,mFAAmF;QACnF,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ;YACjC,CAAC,CAAC,MAAM,CAAC,IAAI,CACT,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;gBACzB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM;qBACjC,GAAG,CAAC,IAAI,CAAC;qBACT,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBACpD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC;oBACnD,OAAO,KAAK,CAAC,CAAC,IAAI,sBAAsB,CAAC;wBACvC,SAAS,EAAE,SAAS;wBACpB,OAAO,EACL,0EAA0E;wBAC5E,KAAK,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC;qBACvB,CAAC,CAAC;gBACL,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBACtE,IAAI,GAAG,KAAK,MAAM,CAAC,QAAQ;oBACzB,OAAO,KAAK,CAAC,CAAC,IAAI,sBAAsB,CAAC;wBACvC,SAAS,EAAE,SAAS;wBACpB,OAAO,EAAE,mEAAmE;wBAC5E,KAAK,EAAE,IAAI,KAAK,CAAC,GAAG,CAAC;qBACtB,CAAC,CAAC;gBACL,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;oBAC5D,OAAO,KAAK,CAAC,CAAC,IAAI,sBAAsB,CAAC;wBACvC,SAAS,EAAE,SAAS;wBACpB,OAAO,EAAE,oDAAoD;wBAC7D,KAAK,EAAE,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;qBAClC,CAAC,CAAC;gBACL,KAAK,CAAC,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;gBAC7C,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CACH;YACH,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAElB,0FAA0F;QAC1F,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAiD,CAAC;QAEvF,mFAAmF;QACnF,gFAAgF;QAChF,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,CAC9B,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAChD,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC3D,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAClB,MAAM,QAAQ,GACZ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACtB,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE;oBACpB,gFAAgF;oBAChF,kFAAkF;oBAClF,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ;oBAC9B,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CACf,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC;iBACrF,CAAC,CAAC;YACL,IAAI,QAAQ,EAAE,CAAC;gBACb,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,iDAAiD,EAAE;oBACvE,GAAG,MAAM;oBACT,OAAO,EAAE,IAAI;oBACb,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;iBACjC,CAAC,CAAC;gBACH,KAAK,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,8BAA8B,CAAC,CAAC;gBACjE,OAAO;YACT,CAAC;YACD,KAAK,CAAC,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,uCAAuC,CAAC,CAAC,IAAI,CAC/E,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CACxB,MAAM,CAAC,QAAQ,CACb,uEAAuE,EACvE,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CACrD,CACF,EACD,MAAM,CAAC,MAAM,CACd,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClC,oFAAoF;YACpF,iEAAiE;YACjE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACtB,KAAK,CAAC,CAAC,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;gBACjE,KAAK,CAAC,CAAC,sBAAsB,CAC3B,OAAO,CAAC,MAAM,EACd,MAAM,CAAC,IAAI,EAAE,EACb,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EACrB,YAAY,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,EACxC,MAAM,CACP,CAAC;YACJ,CAAC;YACD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,cAAc,CAClC,MAAM,EACN,IAAI,EACJ,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,WAAW,EACnB,SAAS,CACV,CAAC;YACF,MAAM,IAAI,GAAG;gBACX,UAAU,EAAE,CAAC,SAA4B,EAAE,MAAc,EAAE,EAAE,CAC3D,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;gBACtE,WAAW,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC;gBAC1D,GAAG,EAAE,CAAC,SAAgC,EAAE,IAA2B,EAAE,EAAE,CACrE,UAAU,CACR,SAAS,EACT,MAAM,EACN,IAAI,EACJ,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EACnB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAClC,CAAC,IAAI,CAAC;aACV,CAAC;YACF,MAAM,GAAG,GAAgC;gBACvC,GAAG,IAAI;gBACP,WAAW,EAAE,MAAM,CAAC,MAAM,CACxB,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE;oBACtC,IAAI;oBACJ,GAAG,SAAS,QAAQ;oBACpB,GAAG,SAAS,WAAW;iBACxB,CAAC,CACH;gBACD,cAAc,EAAE,MAAM,CAAC,MAAM,CAC3B,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CACrE;gBACD,QAAQ,EAAE,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CACzD,MAAM,CAAC,MAAM,CACX,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE;oBACnC,IAAI;oBACJ,uBAAuB;oBACvB,IAAI;oBACJ,MAAM;oBACN,OAAO;iBACR,CAAC,CACH,CACF;aACF,CAAC;YACF,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE;gBACxC,MAAM,EAAE,GAAG,EAAE,CACX,iBAAiB,CAAC;oBAChB,OAAO;oBACP,GAAG,EAAE,sBAAsB,OAAO,CAAC,UAAU,MAAM;oBACnD,IAAI,EAAE,IAAI;oBACV,MAAM;oBACN,GAAG;iBACJ,CAAC;gBACJ,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CACf,gBAAgB,CAAC;oBACf,OAAO;oBACP,IAAI,EAAE,IAAI;oBACV,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE;oBACrC,GAAG;oBACH,IAAI;iBACL,CAAC;aACL,CAAC,CAAC;YACH,MAAM,gBAAgB,GAAG,MAAM,CAAC,EAAE,CAAC,qCAAqC,CAAC,CACvE,QAAQ,CAAC,EACP,QAGC,EACD,IAAiC;gBAEjC,KAAK,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;gBAChE,8EAA8E;gBAC9E,KAAK,CAAC,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;gBAC7C,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBACzC,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;YACpF,CAAC,EACD,CAAC,MAAM,EAAE,EAAE,CACT,MAAM,CAAC,IAAI,CACT,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CACxB,MAAM,CAAC,QAAQ,CACb,yEAAyE,EACzE;gBACE,GAAG,MAAM;gBACT,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,KAAK,CAAC,OAAO;aACvB,CACF,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAC5C,EACD,MAAM,CAAC,MAAM;YACb,oFAAoF;YACpF,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAC1D,CACJ,CAAC;YACF,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,cAAc,CAClD,MAAM,CAAC,mBAAmB,CAAC,CAAC,OAAO,EAAE,EAAE,CACrC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAClB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBAClC,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAC/C,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EACpB,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CACrE,CAAC;gBACF,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;YAChC,CAAC,CAAC,CACH,EACD,gBAAgB,EAChB,EAAE,aAAa,EAAE,IAAI,EAAE,CACxB,CAAC;YACF,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CACjD,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CACxB,eAAe,CAAC,KAAK,CAAC;YACpB,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,IAAI,sBAAsB,CAAC;gBACzB,SAAS,EAAE,SAAS;gBACpB,OAAO,EAAE,8CAA8C;gBACvD,KAAK;aACN,CAAC,CACP,CACF,CAAC;QACF,MAAM,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC;QACvC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,kCAAkC,EAAE;YACxD,GAAG,MAAM;YACT,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU;YACpC,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,CAAC,IAAyB,EAAE,EAAE,CAC7C,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,CAAC,EAAuB,EAAE,EAAE,CAC3C,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,EAAE;YAC3B,IAAI,EAAE,KAAK;YACX,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE;YACtB,WAAW,EAAE,gBAAgB,CAC3B,kBAAkB,CAAC,MAAM,CAAC,EAC1B,OAAO,CAAC,YAAY,EACpB,WAAW,CAAC,QAAQ,CACrB;YACD,iBAAiB,EAAE,MAAM,CAAC,OAAO,CAC/B,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAC7D;YACD,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CACnB,YAAY,CACV,QAAQ,CAAC,IAAI,EACb,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,EACjE,OAAO,CACR,CAAC,IAAI,CACJ,MAAM,CAAC,QAAQ,CACb,CAAC,KAAK,EAAE,EAAE,CACR,IAAI,YAAY,CAAC;gBACf,OAAO,EAAE,yCAAyC,KAAK,CAAC,OAAO,EAAE;gBACjE,KAAK,EAAE,KAAK;aACb,CAAC,CACL,CACF;YACH,eAAe,EAAE,CAAC,OAAO,EAAE,EAAE,CAC3B,qBAAqB,CACnB,QAAQ,CAAC,IAAI,EACb,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,EACjE,OAAO,CACR;YACH,eAAe,EAAE,QAAQ,CAAC,WAAW,CAAC,eAAe,CAAC;YACtD,gBAAgB,EAAE,QAAQ,CAAC,WAAW,CAAC,gBAAgB,CAAC;YACxD,aAAa,EAAE,CAAC,MAAM,EAAE,EAAE,CACxB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAClB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM;qBACjC,GAAG,CAAC,IAAI,CAAC;qBACT,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBACpD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;oBACtD,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,2DAA2D,EAAE;wBACjF,GAAG,MAAM;wBACT,OAAO,EAAE,IAAI;qBACd,CAAC,CAAC;oBACH,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;wBACxB,KAAK,CAAC,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,uBAAuB,CAAC,CAAC;oBAC/D,OAAO;gBACT,CAAC;gBACD,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,iBAAiB,CACvC,oBAAoB,CAAC,OAAO,CAAC,EAC7B,MAAM,EACN,IAAI,EACJ,MAAM,EACN,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CACrC,CAAC;gBACF,IAAI,QAAQ;oBACV,KAAK,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,uCAAuC,CAAC,CAAC;;oBACvE,KAAK,CAAC,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,kCAAkC,CAAC,CAAC;YAC/E,CAAC,CAAC;SACL,CAAC,CAAC;QACL,OAAO;YACL,SAAS,EAAE,QAAQ;YACnB,MAAM,EAAE,CAAC,EAAuB,EAAE,EAAE,CAClC,MAAM,CAAC,MAAM,CACX,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAClB,KAAK,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBAC3E,OAAO,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC7B,CAAC,CAAC,CACH;YACH,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC;YAClC,aAAa,EAAE,WAAW,CAAC,aAAa;SACzC,CAAC;IACJ,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpB,OAAO,QAAQ,CAAC,EAAE,CAAC;QACjB,IAAI,EAAE,YAAY;QAClB,OAAO;QACP,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,SAAS;QACT,OAAO;QACP,KAAK,EAAE,MAAM,CAAC,IAAI;KACnB,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CACnB,OAAkC,EASlC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC"}
@@ -0,0 +1,42 @@
1
+ import type { SshCommand } from "@usine/agents/child-host";
2
+ import type { CloudflareImageName, CloudflareInstanceType, CloudflareLlmProvider, WorkerName } from "@usine/core/worker";
3
+ import type { Duration, Effect, Redacted } from "effect";
4
+ /** A provider API key that the Worker's outbound handler holds for each Attempt. */
5
+ export interface CloudflareProviderKey {
6
+ readonly provider: CloudflareLlmProvider;
7
+ readonly apiKey: Redacted.Redacted<string>;
8
+ }
9
+ /** How the executor reaches one `cloudflare` Worker's deployed Worker and what it runs there. */
10
+ export interface CloudflareWorkerAddress {
11
+ readonly name: WorkerName;
12
+ /** The deployed Worker's origin. */
13
+ readonly workerUrl: URL;
14
+ readonly accessClientId: Redacted.Redacted<string>;
15
+ readonly accessClientSecret: Redacted.Redacted<string>;
16
+ readonly image: CloudflareImageName;
17
+ readonly instanceType: CloudflareInstanceType;
18
+ /** At most one key per provider. */
19
+ readonly providers: ReadonlyArray<CloudflareProviderKey>;
20
+ }
21
+ export interface CloudflareExecutorOptions {
22
+ readonly workers: ReadonlyArray<CloudflareWorkerAddress>;
23
+ /**
24
+ * The identity of this usine instance, in kebab case, such as `github-app-123`. It's part of
25
+ * each sandbox's owner and name, so that orphan cleanup removes only this instance's sandboxes
26
+ * when instances share a deployed Worker.
27
+ */
28
+ readonly instance: string;
29
+ /**
30
+ * The local command that runs one command in a sandbox, with the arguments of an SSH client.
31
+ * Defaults to this package's `shell.js` under the running Node.js.
32
+ */
33
+ readonly shell?: SshCommand;
34
+ /** The timeout for the parent task's cancellation, then separately for the Attempt to finish. Defaults to 10 seconds. */
35
+ readonly interruptGrace?: Parameters<typeof Effect.timeoutOption>[1];
36
+ /**
37
+ * How often a running Attempt asks the Worker whether the platform is stopping its sandbox's
38
+ * container, which it does up to 15 minutes after SIGTERM. Defaults to 30 seconds.
39
+ */
40
+ readonly drainPollInterval?: Duration.Input;
41
+ }
42
+ //# sourceMappingURL=model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/cloudflare/model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EACV,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACrB,UAAU,EACX,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAEzD,oFAAoF;AACpF,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC;IACzC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;CAC5C;AAED,iGAAiG;AACjG,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,oCAAoC;IACpC,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC;IACxB,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnD,QAAQ,CAAC,kBAAkB,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACvD,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;IACpC,QAAQ,CAAC,YAAY,EAAE,sBAAsB,CAAC;IAC9C,oCAAoC;IACpC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAC;CAC1D;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,uBAAuB,CAAC,CAAC;IACzD;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IAC5B,yHAAyH;IACzH,QAAQ,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,OAAO,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IACrE;;;OAGG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC;CAC7C"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/cloudflare/model.ts"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * The variables of the sandbox shell's process environment: the Worker's origin and the Access
3
+ * service token. They never appear in its arguments, so process listings don't show the token.
4
+ */
5
+ export declare const SHELL_ENVIRONMENT: {
6
+ readonly workerUrl: "USINE_SANDBOX_WORKER_URL";
7
+ readonly accessClientId: "USINE_SANDBOX_ACCESS_CLIENT_ID";
8
+ readonly accessClientSecret: "USINE_SANDBOX_ACCESS_CLIENT_SECRET";
9
+ };
10
+ /** The exit code of the sandbox shell when it can't reach the sandbox or follow its command, as OpenSSH uses it. */
11
+ export declare const SHELL_FAILURE = 255;
12
+ //# sourceMappingURL=environment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../../src/cloudflare/shell/environment.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,iBAAiB;aAC5B,SAAS,EAAE,0BAA0B;aACrC,cAAc,EAAE,gCAAgC;aAChD,kBAAkB,EAAE,oCAAoC;CAChD,CAAC;AAEX,oHAAoH;AACpH,eAAO,MAAM,aAAa,MAAM,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * The variables of the sandbox shell's process environment: the Worker's origin and the Access
3
+ * service token. They never appear in its arguments, so process listings don't show the token.
4
+ */
5
+ export const SHELL_ENVIRONMENT = {
6
+ workerUrl: "USINE_SANDBOX_WORKER_URL",
7
+ accessClientId: "USINE_SANDBOX_ACCESS_CLIENT_ID",
8
+ accessClientSecret: "USINE_SANDBOX_ACCESS_CLIENT_SECRET",
9
+ };
10
+ /** The exit code of the sandbox shell when it can't reach the sandbox or follow its command, as OpenSSH uses it. */
11
+ export const SHELL_FAILURE = 255;
12
+ //# sourceMappingURL=environment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../../src/cloudflare/shell/environment.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,SAAS,EAAE,0BAA0B;IACrC,cAAc,EAAE,gCAAgC;IAChD,kBAAkB,EAAE,oCAAoC;CAChD,CAAC;AAEX,oHAAoH;AACpH,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=shell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../../src/cloudflare/shell/shell.ts"],"names":[],"mappings":""}
@@ -0,0 +1,155 @@
1
+ /**
2
+ * The sandbox shell: a stand-in for `ssh` that runs one command in a Cloudflare sandbox through
3
+ * the Worker's exec stream. It takes an SSH client's arguments, `[options] <sandbox> -- <command>`,
4
+ * relays stdin, stdout, and stderr, and exits with the command's exit code, or 255 if it can't
5
+ * reach the sandbox or follow the command. The executor uses it as a `RemoteShell`'s SSH command,
6
+ * so children and git commands run in a sandbox as they run over SSH.
7
+ *
8
+ * If the stream drops after the command started, it attaches to the command's output from the
9
+ * bytes it already wrote, a few times, so a short network failure doesn't lose an exit code. The
10
+ * command's stdin is closed at that point, as it is when an SSH connection drops.
11
+ */
12
+ // Imports only light modules: this program starts once per command in a sandbox.
13
+ import { ACCESS_CLIENT_ID_HEADER, ACCESS_CLIENT_SECRET_HEADER, attachPath, decodeOutputFrame, decodeServerMessage, encodeClientMessage, ExecStart, execPath, SandboxName, StdinEnd, } from "@usine/cloudflare/stream";
14
+ import * as Option from "effect/Option";
15
+ import * as Schema from "effect/Schema";
16
+ import { SHELL_ENVIRONMENT, SHELL_FAILURE } from "./environment.js";
17
+ const Settings = Schema.Struct({
18
+ [SHELL_ENVIRONMENT.workerUrl]: Schema.URLFromString,
19
+ [SHELL_ENVIRONMENT.accessClientId]: Schema.NonEmptyString,
20
+ [SHELL_ENVIRONMENT.accessClientSecret]: Schema.NonEmptyString,
21
+ });
22
+ /** The delays before each attach to a command whose stream dropped, in milliseconds. */
23
+ const REATTACH_DELAYS = [500, 1_000, 2_000, 4_000, 8_000];
24
+ /** The time a stream has to open, in milliseconds. */
25
+ const OPEN_TIMEOUT = 30_000;
26
+ const openSocket = (url, init) =>
27
+ // SAFETY: Node.js's global WebSocket (undici) takes a WebSocketInit with headers as its second
28
+ // argument from Node.js 22; lib.dom's declaration lists only subprotocols there.
29
+ new WebSocket(url, init);
30
+ const finish = (code, message) => {
31
+ if (message !== undefined)
32
+ process.stderr.write(`usine sandbox shell: ${message}\n`);
33
+ process.stdout.write("", () => process.stderr.write("", () => process.exit(code)));
34
+ };
35
+ const separator = process.argv.indexOf("--");
36
+ const destination = Schema.decodeUnknownOption(SandboxName)(process.argv[separator - 1]);
37
+ const command = process.argv[separator + 1];
38
+ const settings = Schema.decodeUnknownOption(Settings)(process.env);
39
+ if (separator < 0 || Option.isNone(destination) || command === undefined || command === "")
40
+ finish(SHELL_FAILURE, "expected [options] <sandbox> -- <command>");
41
+ else if (Option.isNone(settings))
42
+ finish(SHELL_FAILURE, `set ${Object.values(SHELL_ENVIRONMENT).join(", ")} in the environment`);
43
+ else {
44
+ const { [SHELL_ENVIRONMENT.workerUrl]: worker } = settings.value;
45
+ const init = {
46
+ headers: {
47
+ [ACCESS_CLIENT_ID_HEADER]: settings.value[SHELL_ENVIRONMENT.accessClientId],
48
+ [ACCESS_CLIENT_SECRET_HEADER]: settings.value[SHELL_ENVIRONMENT.accessClientSecret],
49
+ },
50
+ };
51
+ const written = { stdout: 0, stderr: 0 };
52
+ let stdinOpen = true;
53
+ /**
54
+ * Where stdin goes: buffered until the exec stream opens, then to it. Once that stream ends,
55
+ * stdin is dropped, as a dropped SSH connection drops it.
56
+ */
57
+ let stdinTarget = { _tag: "Buffering", chunks: [] };
58
+ process.stdin.on("data", (chunk) => {
59
+ const bytes = new Uint8Array(chunk);
60
+ if (stdinTarget._tag === "Buffering")
61
+ stdinTarget.chunks.push(bytes);
62
+ if (stdinTarget._tag === "Streaming")
63
+ stdinTarget.socket.send(bytes);
64
+ });
65
+ process.stdin.on("end", () => {
66
+ stdinOpen = false;
67
+ if (stdinTarget._tag === "Streaming")
68
+ stdinTarget.socket.send(encodeClientMessage(new StdinEnd()));
69
+ });
70
+ /** Opens one exec or attach stream and resolves when it ends. */
71
+ const stream = (url, start) => new Promise((resolve) => {
72
+ const socket = openSocket(new URL(url.href.replace(/^http/u, "ws")), init);
73
+ socket.binaryType = "arraybuffer";
74
+ let process_ = Option.none();
75
+ let settled = false;
76
+ const settle = (outcome) => {
77
+ if (settled)
78
+ return;
79
+ settled = true;
80
+ clearTimeout(timer);
81
+ if (start._tag === "Some")
82
+ stdinTarget = { _tag: "Dropped" };
83
+ resolve(outcome);
84
+ socket.close();
85
+ };
86
+ const timer = setTimeout(() => settle({ _tag: "Dropped", process: process_, reason: "the stream didn't open in time" }), OPEN_TIMEOUT);
87
+ socket.addEventListener("open", () => {
88
+ clearTimeout(timer);
89
+ Option.match(start, {
90
+ onNone: () => undefined,
91
+ onSome: (line) => {
92
+ socket.send(encodeClientMessage(new ExecStart({ command: line })));
93
+ if (stdinTarget._tag === "Buffering")
94
+ for (const chunk of stdinTarget.chunks)
95
+ socket.send(chunk);
96
+ stdinTarget = { _tag: "Streaming", socket };
97
+ if (!stdinOpen)
98
+ socket.send(encodeClientMessage(new StdinEnd()));
99
+ },
100
+ });
101
+ });
102
+ socket.addEventListener("message", (event) => {
103
+ if (event.data instanceof ArrayBuffer) {
104
+ Option.map(decodeOutputFrame(new Uint8Array(event.data)), ({ channel, bytes }) => {
105
+ written[channel] += bytes.length;
106
+ (channel === "stdout" ? process.stdout : process.stderr).write(bytes);
107
+ });
108
+ return;
109
+ }
110
+ Option.map(decodeServerMessage(String(event.data)), (message) => {
111
+ switch (message._tag) {
112
+ case "Started":
113
+ process_ = Option.some(message.process);
114
+ return;
115
+ case "Exited":
116
+ return settle({ _tag: "Exited", exitCode: message.exitCode });
117
+ case "StreamFailed":
118
+ return settle({ _tag: "Failed", message: message.message });
119
+ }
120
+ });
121
+ });
122
+ socket.addEventListener("close", (event) => settle({
123
+ _tag: "Dropped",
124
+ process: process_,
125
+ reason: `the stream closed with code ${String(event.code)}`,
126
+ }));
127
+ socket.addEventListener("error", () => settle({ _tag: "Dropped", process: process_, reason: "the stream failed" }));
128
+ });
129
+ const main = async () => {
130
+ const name = destination.value;
131
+ let outcome = await stream(new URL(execPath(name), worker), Option.some(command));
132
+ for (const delay of REATTACH_DELAYS) {
133
+ if (outcome._tag !== "Dropped" || Option.isNone(outcome.process))
134
+ break;
135
+ const process = outcome.process.value;
136
+ await new Promise((resolve) => setTimeout(resolve, delay));
137
+ const url = new URL(attachPath(name, process), worker);
138
+ url.searchParams.set("stdout", String(written.stdout));
139
+ url.searchParams.set("stderr", String(written.stderr));
140
+ const attached = await stream(url, Option.none());
141
+ outcome =
142
+ attached._tag === "Dropped" ? { ...attached, process: Option.some(process) } : attached;
143
+ }
144
+ switch (outcome._tag) {
145
+ case "Exited":
146
+ return finish(outcome.exitCode);
147
+ case "Failed":
148
+ return finish(SHELL_FAILURE, outcome.message);
149
+ case "Dropped":
150
+ return finish(SHELL_FAILURE, `lost sandbox ${name}: ${outcome.reason}`);
151
+ }
152
+ };
153
+ void main();
154
+ }
155
+ //# sourceMappingURL=shell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell.js","sourceRoot":"","sources":["../../../src/cloudflare/shell/shell.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,iFAAiF;AACjF,OAAO,EACL,uBAAuB,EACvB,2BAA2B,EAC3B,UAAU,EACV,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,SAAS,EACT,QAAQ,EAER,WAAW,EACX,QAAQ,GACT,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEpE,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7B,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,aAAa;IACnD,CAAC,iBAAiB,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,cAAc;IACzD,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC,cAAc;CAC9D,CAAC,CAAC;AAEH,wFAAwF;AACxF,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAU,CAAC;AACnE,sDAAsD;AACtD,MAAM,YAAY,GAAG,MAAM,CAAC;AAe5B,MAAM,UAAU,GAAG,CAAC,GAAQ,EAAE,IAAmB,EAAa,EAAE;AAC9D,+FAA+F;AAC/F,iFAAiF;AACjF,IAAI,SAAS,CAAC,GAAG,EAAE,IAAa,CAAC,CAAC;AAEpC,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,OAAgB,EAAE,EAAE;IAChD,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,OAAO,IAAI,CAAC,CAAC;IACrF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACrF,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC7C,MAAM,WAAW,GAAG,MAAM,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC;AACzF,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;AAC5C,MAAM,QAAQ,GAAG,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAEnE,IAAI,SAAS,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,EAAE;IACxF,MAAM,CAAC,aAAa,EAAE,2CAA2C,CAAC,CAAC;KAChE,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;IAC9B,MAAM,CAAC,aAAa,EAAE,OAAO,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;KAC5F,CAAC;IACJ,MAAM,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC;IACjE,MAAM,IAAI,GAAG;QACX,OAAO,EAAE;YACP,CAAC,uBAAuB,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,cAAc,CAAC;YAC3E,CAAC,2BAA2B,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,kBAAkB,CAAC;SACpF;KACF,CAAC;IACF,MAAM,OAAO,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IACzC,IAAI,SAAS,GAAG,IAAI,CAAC;IACrB;;;OAGG;IACH,IAAI,WAAW,GAGoB,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAErE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAiB,EAAE,EAAE;QAC7C,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,WAAW,CAAC,IAAI,KAAK,WAAW;YAAE,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrE,IAAI,WAAW,CAAC,IAAI,KAAK,WAAW;YAAE,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;QAC3B,SAAS,GAAG,KAAK,CAAC;QAClB,IAAI,WAAW,CAAC,IAAI,KAAK,WAAW;YAClC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,iEAAiE;IACjE,MAAM,MAAM,GAAG,CAAC,GAAQ,EAAE,KAA4B,EAAE,EAAE,CACxD,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE;QAC/B,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAC3E,MAAM,CAAC,UAAU,GAAG,aAAa,CAAC;QAClC,IAAI,QAAQ,GAA6B,MAAM,CAAC,IAAI,EAAE,CAAC;QACvD,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,MAAM,GAAG,CAAC,OAAgB,EAAE,EAAE;YAClC,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;gBAAE,WAAW,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;YAC7D,OAAO,CAAC,OAAO,CAAC,CAAC;YACjB,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC,CAAC;QACF,MAAM,KAAK,GAAG,UAAU,CACtB,GAAG,EAAE,CACH,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,gCAAgC,EAAE,CAAC,EAC1F,YAAY,CACb,CAAC;QACF,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE;YACnC,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE;gBAClB,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS;gBACvB,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;oBACf,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;oBACnE,IAAI,WAAW,CAAC,IAAI,KAAK,WAAW;wBAClC,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,MAAM;4BAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC7D,WAAW,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;oBAC5C,IAAI,CAAC,SAAS;wBAAE,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC;gBACnE,CAAC;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;YAC3C,IAAI,KAAK,CAAC,IAAI,YAAY,WAAW,EAAE,CAAC;gBACtC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;oBAC/E,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC;oBACjC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACxE,CAAC,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE;gBAC9D,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;oBACrB,KAAK,SAAS;wBACZ,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;wBACxC,OAAO;oBACT,KAAK,QAAQ;wBACX,OAAO,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;oBAChE,KAAK,cAAc;wBACjB,OAAO,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;gBAChE,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACzC,MAAM,CAAC;YACL,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,QAAQ;YACjB,MAAM,EAAE,+BAA+B,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;SAC5D,CAAC,CACH,CAAC;QACF,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CACpC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC,CAC5E,CAAC;IACJ,CAAC,CAAC,CAAC;IAEL,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;QACtB,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC;QAC/B,IAAI,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAClF,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;YACpC,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;gBAAE,MAAM;YACxE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;YACtC,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;YAC3D,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;YACvD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YACvD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YACvD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAClD,OAAO;gBACL,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC5F,CAAC;QACD,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,KAAK,QAAQ;gBACX,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAClC,KAAK,QAAQ;gBACX,OAAO,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YAChD,KAAK,SAAS;gBACZ,OAAO,MAAM,CAAC,aAAa,EAAE,gBAAgB,IAAI,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC,CAAC;IACF,KAAK,IAAI,EAAE,CAAC;AACd,CAAC"}
@@ -0,0 +1,20 @@
1
+ /** Returns the gh `hosts.yml` content that authenticates github.com with `token`. */
2
+ export declare const ghHostsConfig: (token: string) => string;
3
+ /** The gh `config.yml` content, required next to `hosts.yml`. */
4
+ export declare const GH_CONFIG = "version: \"1\"\n";
5
+ /**
6
+ * Returns the environment variables that point git and gh at the credential files in
7
+ * `directory`. git reads `directory/token` and gh reads `directory/hosts.yml` on each use, so
8
+ * renewing the token only requires rewriting those files.
9
+ */
10
+ export declare const credentialEnvironment: (directory: string) => {
11
+ GH_CONFIG_DIR: string;
12
+ GH_PROMPT_DISABLED: string;
13
+ USINE_GITHUB_TOKEN_FILE: string;
14
+ GIT_CONFIG_COUNT: string;
15
+ GIT_CONFIG_KEY_0: string;
16
+ GIT_CONFIG_VALUE_0: string;
17
+ GIT_CONFIG_KEY_1: string;
18
+ GIT_CONFIG_VALUE_1: string;
19
+ };
20
+ //# sourceMappingURL=credential-environment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credential-environment.d.ts","sourceRoot":"","sources":["../src/credential-environment.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,eAAO,MAAM,aAAa,UAAW,MAAM,KAAG,MACyJ,CAAC;AAExM,iEAAiE;AACjE,eAAO,MAAM,SAAS,qBAAmB,CAAC;AAE1C;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,cAAe,MAAM;;;;;;;;;CAWlB,CAAC"}
@@ -0,0 +1,20 @@
1
+ /** Returns the gh `hosts.yml` content that authenticates github.com with `token`. */
2
+ export const ghHostsConfig = (token) => `github.com:\n user: x-access-token\n oauth_token: ${JSON.stringify(token)}\n git_protocol: https\n users:\n x-access-token:\n oauth_token: ${JSON.stringify(token)}\n`;
3
+ /** The gh `config.yml` content, required next to `hosts.yml`. */
4
+ export const GH_CONFIG = 'version: "1"\n';
5
+ /**
6
+ * Returns the environment variables that point git and gh at the credential files in
7
+ * `directory`. git reads `directory/token` and gh reads `directory/hosts.yml` on each use, so
8
+ * renewing the token only requires rewriting those files.
9
+ */
10
+ export const credentialEnvironment = (directory) => ({
11
+ GH_CONFIG_DIR: directory,
12
+ GH_PROMPT_DISABLED: "1",
13
+ USINE_GITHUB_TOKEN_FILE: `${directory}/token`,
14
+ GIT_CONFIG_COUNT: "2",
15
+ GIT_CONFIG_KEY_0: "credential.helper",
16
+ GIT_CONFIG_VALUE_0: "",
17
+ GIT_CONFIG_KEY_1: "credential.helper",
18
+ GIT_CONFIG_VALUE_1: '!f() { if [ "$1" = get ]; then echo username=x-access-token; printf "password="; cat "$USINE_GITHUB_TOKEN_FILE"; echo; fi; }; f',
19
+ });
20
+ //# sourceMappingURL=credential-environment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credential-environment.js","sourceRoot":"","sources":["../src/credential-environment.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAa,EAAU,EAAE,CACrD,2DAA2D,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,4FAA4F,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;AAExM,iEAAiE;AACjE,MAAM,CAAC,MAAM,SAAS,GAAG,gBAAgB,CAAC;AAE1C;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,SAAiB,EAAE,EAAE,CACzD,CAAC;IACC,aAAa,EAAE,SAAS;IACxB,kBAAkB,EAAE,GAAG;IACvB,uBAAuB,EAAE,GAAG,SAAS,QAAQ;IAC7C,gBAAgB,EAAE,GAAG;IACrB,gBAAgB,EAAE,mBAAmB;IACrC,kBAAkB,EAAE,EAAE;IACtB,gBAAgB,EAAE,mBAAmB;IACrC,kBAAkB,EAChB,iIAAiI;CACpI,CAAkC,CAAC"}
@@ -0,0 +1,81 @@
1
+ import type { ChildHost } from "@usine/agents/child-host";
2
+ import * as AttemptChannel from "@usine/core/attempt/channel";
3
+ import { AgentFailure, type AttemptFailure, InfraFailure, RunawayFailure } from "@usine/core/attempt/failure";
4
+ import type { AttemptRecovery, RecoverySink } from "@usine/core/attempt/salvage";
5
+ import type { GatewayCredentialKind, MachineId } from "@usine/core/worker";
6
+ import type { AttemptWindowsRead, HarvestSpec } from "@usine/core/step/harvest";
7
+ import type { Comment, StepResult, StepResultFact } from "@usine/core/step/result";
8
+ import { AttemptRuntime } from "@usine/durable/attempt-runtime";
9
+ import { Effect, Option, Result, type Scope } from "effect";
10
+ import { type AttemptWorkspace, type CheckoutRequest, type ExecutorError, ExecutorOperationError } from "./executor.ts";
11
+ import { type AcquiredAttempt } from "./prepared-attempt.ts";
12
+ export interface DurableCheckout {
13
+ /** The host with the checkout, where the children run. */
14
+ readonly host: ChildHost;
15
+ /**
16
+ * The provider's ID of the machine that a provisioned Worker created for the Attempt, or `None`
17
+ * on other Workers.
18
+ */
19
+ readonly machine: Option.Option<MachineId>;
20
+ /** The complete environment for the children and harvesting commands (ADR 0011). */
21
+ readonly environment: Record<string, string>;
22
+ /**
23
+ * Returns the credential kind the Gateway injects for the children, from the Worker's latest
24
+ * preflight. Returns `None` if the children use their harness's own login.
25
+ */
26
+ readonly gatewayCredential: Effect.Effect<Option.Option<GatewayCredentialKind>>;
27
+ /**
28
+ * Returns the checkout's commits and pull requests, and the comments the Attempt posted on its
29
+ * Item within its own window and outside the windows of the Agent's other Attempts. Reads
30
+ * `windows` after GitHub lists the comments, and fails if they can't be read.
31
+ */
32
+ readonly harvest: (windows: AttemptWindowsRead<AttemptFailure>) => Effect.Effect<ReadonlyArray<StepResultFact>, AttemptFailure>;
33
+ /**
34
+ * Returns only the comments, filtered as in `harvest`, for an unsuccessful Attempt. Returns none
35
+ * if GitHub fails or the windows can't be read.
36
+ */
37
+ readonly harvestComments: (windows: AttemptWindowsRead<AttemptFailure>) => Effect.Effect<ReadonlyArray<Comment>>;
38
+ /** Keeps the checkout on disk so a restart can reattach the parent or repeat an unrecorded harvest. */
39
+ readonly keepForReattach: Effect.Effect<void>;
40
+ /**
41
+ * Keeps the checkout on disk, without salvage, while the parent task may still run in it.
42
+ * `reconcileKept` salvages it once a stop is confirmed.
43
+ */
44
+ readonly keepUntilStopped: Effect.Effect<void>;
45
+ /**
46
+ * Salvages the checkout that `keepUntilStopped` kept with a new credential, records the salvage
47
+ * through `record`, and removes the checkout once its work is pushed. Does nothing if the
48
+ * checkout is gone.
49
+ */
50
+ readonly reconcileKept: (record: AttemptChannel.Sink["salvage"]) => Effect.Effect<void, ExecutorError | AttemptFailure>;
51
+ }
52
+ /**
53
+ * A function that returns the comments the Attempt described by `spec` posted on its Item, read
54
+ * from its checkout with a new credential and filtered by `windows`. Fails only if the
55
+ * credential can't be acquired.
56
+ */
57
+ export type PostedCommentsHarvest = <W>(spec: HarvestSpec, windows: AttemptWindowsRead<W>) => Effect.Effect<ReadonlyArray<Comment>, ExecutorError>;
58
+ export interface DurableSessionOptions {
59
+ /** The timeout for each cancellation stage: the parent task's abort, then the Attempt's end. */
60
+ readonly interruptGrace: Parameters<typeof Effect.timeoutOption>[1];
61
+ }
62
+ /**
63
+ * Returns the session that runs Attempts whose Pi parent is a durable task in this process
64
+ * (`AttemptRuntime`), for every Worker kind. If a launch is interrupted without a stop, the
65
+ * parent task stays live and the checkout stays on disk for reattachment after restart; every
66
+ * other ending stops the parent task. If that stop can't be confirmed, the checkout stays on disk
67
+ * until a `cancel` confirms it (#523).
68
+ */
69
+ export declare const durableSessionFor: (options: DurableSessionOptions) => Effect.Effect<{
70
+ readonly launch: (prepared: AttemptWorkspace, io: AttemptChannel.Sink, checkout: DurableCheckout) => Effect.Effect<StepResult, AgentFailure | import("@usine/core/attempt/failure").BlockedFailure | import("@usine/core/attempt/failure").ChildSessionBudgetFailure | import("@usine/core/attempt/failure").DefectFailure | InfraFailure | import("@usine/core/attempt/failure").QuestionFailure | RunawayFailure, never>;
71
+ readonly prepare: (acquire: Effect.Effect<AcquiredAttempt, ExecutorError, Scope.Scope>, request: CheckoutRequest) => Effect.Effect<import("./executor.ts").PreparedAttempt, import("./executor.ts").CredentialUnavailableError | ExecutorOperationError | import("./executor.ts").WorkerCapabilityError, Scope.Scope>;
72
+ readonly cancel: (attemptId: string & import("effect/Brand").Brand<"AttemptId">, reason: "cancel" | "failed" | "startup") => Effect.Effect<void, import("./executor.ts").CredentialUnavailableError | ExecutorOperationError | import("./executor.ts").WorkerCapabilityError, never>;
73
+ readonly drain: (attemptId: string & import("effect/Brand").Brand<"AttemptId">, message: string) => Effect.Effect<boolean, ExecutorOperationError, never>;
74
+ readonly intervene: (attemptId: string & import("effect/Brand").Brand<"AttemptId">, intervention: AttemptChannel.Intervention) => Effect.Effect<undefined, AgentFailure | import("@usine/core/attempt/failure").BlockedFailure | import("@usine/core/attempt/failure").ChildSessionBudgetFailure | import("@usine/core/attempt/failure").DefectFailure | InfraFailure | import("@usine/core/attempt/failure").QuestionFailure | RunawayFailure, never>;
75
+ readonly isLive: (attemptId: string & import("effect/Brand").Brand<"AttemptId">) => Effect.Effect<boolean, AgentFailure | import("@usine/core/attempt/failure").BlockedFailure | import("@usine/core/attempt/failure").ChildSessionBudgetFailure | import("@usine/core/attempt/failure").DefectFailure | InfraFailure | import("@usine/core/attempt/failure").QuestionFailure | RunawayFailure, never>;
76
+ readonly outcome: (attemptId: string & import("effect/Brand").Brand<"AttemptId">) => Effect.Effect<Option.Option<Result.Result<StepResult, AgentFailure | import("@usine/core/attempt/failure").BlockedFailure | import("@usine/core/attempt/failure").ChildSessionBudgetFailure | import("@usine/core/attempt/failure").DefectFailure | InfraFailure | import("@usine/core/attempt/failure").QuestionFailure | RunawayFailure>>, AgentFailure | import("@usine/core/attempt/failure").BlockedFailure | import("@usine/core/attempt/failure").ChildSessionBudgetFailure | import("@usine/core/attempt/failure").DefectFailure | InfraFailure | import("@usine/core/attempt/failure").QuestionFailure | RunawayFailure, never>;
77
+ readonly stopForRecovery: (attempt: AttemptRecovery) => Effect.Effect<void, ExecutorOperationError, never>;
78
+ readonly recoverPostedComments: <E>(attempt: AttemptRecovery, harvest: Option.Option<PostedCommentsHarvest>, record: Pick<RecoverySink<E>, "comments" | "windows">) => Effect.Effect<void, never, never>;
79
+ readonly storedRequest: (attemptId: string & import("effect/Brand").Brand<"AttemptId">) => Effect.Effect<import("@usine/durable/attempt-runtime").StoredRequest, ExecutorOperationError, never>;
80
+ }, never, AttemptRuntime>;
81
+ //# sourceMappingURL=durable-session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"durable-session.d.ts","sourceRoot":"","sources":["../src/durable-session.ts"],"names":[],"mappings":"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"}