@naylence/advanced-security 0.3.5-test.0 → 0.3.5-test.102

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 (221) hide show
  1. package/dist/browser/index.js +13412 -13006
  2. package/dist/browser/index.js.map +1 -1
  3. package/dist/cjs/browser.js +14 -28
  4. package/dist/cjs/browser.js.map +1 -1
  5. package/dist/cjs/index.js +5 -6
  6. package/dist/cjs/index.js.map +1 -1
  7. package/dist/cjs/naylence/fame/factory-manifest.js +15 -4
  8. package/dist/cjs/naylence/fame/factory-manifest.js.map +1 -1
  9. package/dist/cjs/naylence/fame/security/cert/browser-csr.js +103 -0
  10. package/dist/cjs/naylence/fame/security/cert/browser-csr.js.map +1 -0
  11. package/dist/cjs/naylence/fame/security/cert/ca-service-client.js +340 -39
  12. package/dist/cjs/naylence/fame/security/cert/ca-service-client.js.map +1 -1
  13. package/dist/cjs/naylence/fame/security/cert/ca-service-factory.js +7 -11
  14. package/dist/cjs/naylence/fame/security/cert/ca-service-factory.js.map +1 -1
  15. package/dist/cjs/naylence/fame/security/cert/ca-types.js +10 -7
  16. package/dist/cjs/naylence/fame/security/cert/ca-types.js.map +1 -1
  17. package/dist/cjs/naylence/fame/security/cert/csr-types.js +2 -0
  18. package/dist/cjs/naylence/fame/security/cert/csr-types.js.map +1 -0
  19. package/dist/cjs/naylence/fame/security/cert/default-ca-service-factory.js +6 -10
  20. package/dist/cjs/naylence/fame/security/cert/default-ca-service-factory.js.map +1 -1
  21. package/dist/cjs/naylence/fame/security/cert/default-ca-service.js +130 -66
  22. package/dist/cjs/naylence/fame/security/cert/default-ca-service.js.map +1 -1
  23. package/dist/cjs/naylence/fame/security/cert/default-certificate-manager-factory.js +12 -16
  24. package/dist/cjs/naylence/fame/security/cert/default-certificate-manager-factory.js.map +1 -1
  25. package/dist/cjs/naylence/fame/security/cert/default-certificate-manager.js +261 -103
  26. package/dist/cjs/naylence/fame/security/cert/default-certificate-manager.js.map +1 -1
  27. package/dist/cjs/naylence/fame/security/cert/grants.js +1 -4
  28. package/dist/cjs/naylence/fame/security/cert/grants.js.map +1 -1
  29. package/dist/cjs/naylence/fame/security/cert/index.js +13 -50
  30. package/dist/cjs/naylence/fame/security/cert/index.js.map +1 -1
  31. package/dist/cjs/naylence/fame/security/cert/internal-ca-service.js +77 -123
  32. package/dist/cjs/naylence/fame/security/cert/internal-ca-service.js.map +1 -1
  33. package/dist/cjs/naylence/fame/security/cert/node-ed25519-csr.js +156 -0
  34. package/dist/cjs/naylence/fame/security/cert/node-ed25519-csr.js.map +1 -0
  35. package/dist/cjs/naylence/fame/security/cert/oid-constants.js +7 -0
  36. package/dist/cjs/naylence/fame/security/cert/oid-constants.js.map +1 -0
  37. package/dist/cjs/naylence/fame/security/cert/trust-store/anchor-utils.js +119 -0
  38. package/dist/cjs/naylence/fame/security/cert/trust-store/anchor-utils.js.map +1 -0
  39. package/dist/cjs/naylence/fame/security/cert/trust-store/env-provider.js +123 -0
  40. package/dist/cjs/naylence/fame/security/cert/trust-store/env-provider.js.map +1 -0
  41. package/dist/cjs/naylence/fame/security/cert/trust-store/fame-ca-certs-parser.js +220 -0
  42. package/dist/cjs/naylence/fame/security/cert/trust-store/fame-ca-certs-parser.js.map +1 -0
  43. package/dist/cjs/naylence/fame/security/cert/trust-store/http-bundle-provider.js +411 -0
  44. package/dist/cjs/naylence/fame/security/cert/trust-store/http-bundle-provider.js.map +1 -0
  45. package/dist/cjs/naylence/fame/security/cert/trust-store/http-signed-bundle-provider.js +2 -0
  46. package/dist/cjs/naylence/fame/security/cert/trust-store/http-signed-bundle-provider.js.map +1 -0
  47. package/dist/cjs/naylence/fame/security/cert/trust-store/static-bundle-provider.js +37 -0
  48. package/dist/cjs/naylence/fame/security/cert/trust-store/static-bundle-provider.js.map +1 -0
  49. package/dist/cjs/naylence/fame/security/cert/trust-store/trust-store-provider.js +2 -0
  50. package/dist/cjs/naylence/fame/security/cert/trust-store/trust-store-provider.js.map +1 -0
  51. package/dist/cjs/naylence/fame/security/cert/util.js +25 -30
  52. package/dist/cjs/naylence/fame/security/cert/util.js.map +1 -1
  53. package/dist/cjs/naylence/fame/security/encryption/channel/channel-encryption-manager-factory.js +10 -14
  54. package/dist/cjs/naylence/fame/security/encryption/channel/channel-encryption-manager-factory.js.map +1 -1
  55. package/dist/cjs/naylence/fame/security/encryption/channel/channel-encryption-manager.js +32 -36
  56. package/dist/cjs/naylence/fame/security/encryption/channel/channel-encryption-manager.js.map +1 -1
  57. package/dist/cjs/naylence/fame/security/encryption/channel/index.js +2 -7
  58. package/dist/cjs/naylence/fame/security/encryption/channel/index.js.map +1 -1
  59. package/dist/cjs/naylence/fame/security/encryption/composite-encryption-manager-factory.js +10 -14
  60. package/dist/cjs/naylence/fame/security/encryption/composite-encryption-manager-factory.js.map +1 -1
  61. package/dist/cjs/naylence/fame/security/encryption/composite-encryption-manager.js +7 -11
  62. package/dist/cjs/naylence/fame/security/encryption/composite-encryption-manager.js.map +1 -1
  63. package/dist/cjs/naylence/fame/security/encryption/default-secure-channel-manager-factory.js +7 -11
  64. package/dist/cjs/naylence/fame/security/encryption/default-secure-channel-manager-factory.js.map +1 -1
  65. package/dist/cjs/naylence/fame/security/encryption/default-secure-channel-manager.js +19 -23
  66. package/dist/cjs/naylence/fame/security/encryption/default-secure-channel-manager.js.map +1 -1
  67. package/dist/cjs/naylence/fame/security/encryption/encryption-manager-registry.js +9 -15
  68. package/dist/cjs/naylence/fame/security/encryption/encryption-manager-registry.js.map +1 -1
  69. package/dist/cjs/naylence/fame/security/encryption/index.js +6 -15
  70. package/dist/cjs/naylence/fame/security/encryption/index.js.map +1 -1
  71. package/dist/cjs/naylence/fame/security/encryption/sealed/index.js +2 -7
  72. package/dist/cjs/naylence/fame/security/encryption/sealed/index.js.map +1 -1
  73. package/dist/cjs/naylence/fame/security/encryption/sealed/x25519-encryption-manager-factory.js +8 -12
  74. package/dist/cjs/naylence/fame/security/encryption/sealed/x25519-encryption-manager-factory.js.map +1 -1
  75. package/dist/cjs/naylence/fame/security/encryption/sealed/x25519-encryption-manager.js +26 -30
  76. package/dist/cjs/naylence/fame/security/encryption/sealed/x25519-encryption-manager.js.map +1 -1
  77. package/dist/cjs/naylence/fame/security/index.js +5 -10
  78. package/dist/cjs/naylence/fame/security/index.js.map +1 -1
  79. package/dist/cjs/naylence/fame/security/keys/index.js +2 -8
  80. package/dist/cjs/naylence/fame/security/keys/index.js.map +1 -1
  81. package/dist/cjs/naylence/fame/security/keys/x5c-key-manager-factory.js +9 -13
  82. package/dist/cjs/naylence/fame/security/keys/x5c-key-manager-factory.js.map +1 -1
  83. package/dist/cjs/naylence/fame/security/keys/x5c-key-manager.js +16 -52
  84. package/dist/cjs/naylence/fame/security/keys/x5c-key-manager.js.map +1 -1
  85. package/dist/cjs/naylence/fame/security/register-advanced-security-factories.js +8 -44
  86. package/dist/cjs/naylence/fame/security/register-advanced-security-factories.js.map +1 -1
  87. package/dist/cjs/naylence/fame/security/signing/eddsa-envelope-signer-factory.js +6 -43
  88. package/dist/cjs/naylence/fame/security/signing/eddsa-envelope-signer-factory.js.map +1 -1
  89. package/dist/cjs/naylence/fame/security/signing/eddsa-envelope-verifier-factory.js +8 -12
  90. package/dist/cjs/naylence/fame/security/signing/eddsa-envelope-verifier-factory.js.map +1 -1
  91. package/dist/cjs/naylence/fame/security/signing/eddsa-envelope-verifier.js +33 -70
  92. package/dist/cjs/naylence/fame/security/signing/eddsa-envelope-verifier.js.map +1 -1
  93. package/dist/cjs/naylence/fame/stickiness/aft-helper.js +8 -13
  94. package/dist/cjs/naylence/fame/stickiness/aft-helper.js.map +1 -1
  95. package/dist/cjs/naylence/fame/stickiness/aft-load-balancer-stickiness-manager-factory.js +12 -16
  96. package/dist/cjs/naylence/fame/stickiness/aft-load-balancer-stickiness-manager-factory.js.map +1 -1
  97. package/dist/cjs/naylence/fame/stickiness/aft-load-balancer-stickiness-manager.js +10 -14
  98. package/dist/cjs/naylence/fame/stickiness/aft-load-balancer-stickiness-manager.js.map +1 -1
  99. package/dist/cjs/naylence/fame/stickiness/aft-model.js +6 -14
  100. package/dist/cjs/naylence/fame/stickiness/aft-model.js.map +1 -1
  101. package/dist/cjs/naylence/fame/stickiness/aft-replica-stickiness-manager-factory.js +12 -16
  102. package/dist/cjs/naylence/fame/stickiness/aft-replica-stickiness-manager-factory.js.map +1 -1
  103. package/dist/cjs/naylence/fame/stickiness/aft-replica-stickiness-manager.js +13 -18
  104. package/dist/cjs/naylence/fame/stickiness/aft-replica-stickiness-manager.js.map +1 -1
  105. package/dist/cjs/naylence/fame/stickiness/aft-signer.js +23 -30
  106. package/dist/cjs/naylence/fame/stickiness/aft-signer.js.map +1 -1
  107. package/dist/cjs/naylence/fame/stickiness/aft-utils.js +3 -8
  108. package/dist/cjs/naylence/fame/stickiness/aft-utils.js.map +1 -1
  109. package/dist/cjs/naylence/fame/stickiness/aft-verifier.js +21 -28
  110. package/dist/cjs/naylence/fame/stickiness/aft-verifier.js.map +1 -1
  111. package/dist/cjs/naylence/fame/stickiness/index.js +10 -39
  112. package/dist/cjs/naylence/fame/stickiness/index.js.map +1 -1
  113. package/dist/cjs/naylence/fame/stickiness/stickiness-mode.js +3 -7
  114. package/dist/cjs/naylence/fame/stickiness/stickiness-mode.js.map +1 -1
  115. package/dist/cjs/naylence/fame/welcome/advanced-welcome-service-factory.js +14 -18
  116. package/dist/cjs/naylence/fame/welcome/advanced-welcome-service-factory.js.map +1 -1
  117. package/dist/cjs/naylence/fame/welcome/advanced-welcome-service.js +14 -18
  118. package/dist/cjs/naylence/fame/welcome/advanced-welcome-service.js.map +1 -1
  119. package/dist/cjs/naylence/fame/welcome/index.js +2 -8
  120. package/dist/cjs/naylence/fame/welcome/index.js.map +1 -1
  121. package/dist/cjs/plugin.js +8 -10
  122. package/dist/cjs/plugin.js.map +1 -1
  123. package/dist/cjs/version.js +8 -0
  124. package/dist/cjs/version.js.map +1 -0
  125. package/dist/esm/browser.js +3 -0
  126. package/dist/esm/browser.js.map +1 -1
  127. package/dist/esm/index.js +2 -0
  128. package/dist/esm/index.js.map +1 -1
  129. package/dist/esm/naylence/fame/factory-manifest.js +14 -0
  130. package/dist/esm/naylence/fame/factory-manifest.js.map +1 -1
  131. package/dist/esm/naylence/fame/security/cert/browser-csr.js +103 -0
  132. package/dist/esm/naylence/fame/security/cert/browser-csr.js.map +1 -0
  133. package/dist/esm/naylence/fame/security/cert/ca-server.js +35 -0
  134. package/dist/esm/naylence/fame/security/cert/ca-server.js.map +1 -1
  135. package/dist/esm/naylence/fame/security/cert/ca-service-client.js +331 -24
  136. package/dist/esm/naylence/fame/security/cert/ca-service-client.js.map +1 -1
  137. package/dist/esm/naylence/fame/security/cert/ca-types.js +8 -0
  138. package/dist/esm/naylence/fame/security/cert/ca-types.js.map +1 -1
  139. package/dist/esm/naylence/fame/security/cert/csr-types.js +2 -0
  140. package/dist/esm/naylence/fame/security/cert/csr-types.js.map +1 -0
  141. package/dist/esm/naylence/fame/security/cert/default-ca-service.js +102 -1
  142. package/dist/esm/naylence/fame/security/cert/default-ca-service.js.map +1 -1
  143. package/dist/esm/naylence/fame/security/cert/default-certificate-manager-factory.js +2 -2
  144. package/dist/esm/naylence/fame/security/cert/default-certificate-manager-factory.js.map +1 -1
  145. package/dist/esm/naylence/fame/security/cert/default-certificate-manager.js +239 -44
  146. package/dist/esm/naylence/fame/security/cert/default-certificate-manager.js.map +1 -1
  147. package/dist/esm/naylence/fame/security/cert/index.js +4 -1
  148. package/dist/esm/naylence/fame/security/cert/index.js.map +1 -1
  149. package/dist/esm/naylence/fame/security/cert/internal-ca-service.js +3 -6
  150. package/dist/esm/naylence/fame/security/cert/internal-ca-service.js.map +1 -1
  151. package/dist/esm/naylence/fame/security/cert/node-ed25519-csr.js +156 -0
  152. package/dist/esm/naylence/fame/security/cert/node-ed25519-csr.js.map +1 -0
  153. package/dist/esm/naylence/fame/security/cert/oid-constants.js +7 -0
  154. package/dist/esm/naylence/fame/security/cert/oid-constants.js.map +1 -0
  155. package/dist/esm/naylence/fame/security/cert/trust-store/anchor-utils.js +119 -0
  156. package/dist/esm/naylence/fame/security/cert/trust-store/anchor-utils.js.map +1 -0
  157. package/dist/esm/naylence/fame/security/cert/trust-store/env-provider.js +123 -0
  158. package/dist/esm/naylence/fame/security/cert/trust-store/env-provider.js.map +1 -0
  159. package/dist/esm/naylence/fame/security/cert/trust-store/fame-ca-certs-parser.js +220 -0
  160. package/dist/esm/naylence/fame/security/cert/trust-store/fame-ca-certs-parser.js.map +1 -0
  161. package/dist/esm/naylence/fame/security/cert/trust-store/http-bundle-provider.js +411 -0
  162. package/dist/esm/naylence/fame/security/cert/trust-store/http-bundle-provider.js.map +1 -0
  163. package/dist/esm/naylence/fame/security/cert/trust-store/http-signed-bundle-provider.js +2 -0
  164. package/dist/esm/naylence/fame/security/cert/trust-store/http-signed-bundle-provider.js.map +1 -0
  165. package/dist/esm/naylence/fame/security/cert/trust-store/static-bundle-provider.js +37 -0
  166. package/dist/esm/naylence/fame/security/cert/trust-store/static-bundle-provider.js.map +1 -0
  167. package/dist/esm/naylence/fame/security/cert/trust-store/trust-store-provider.js +2 -0
  168. package/dist/esm/naylence/fame/security/cert/trust-store/trust-store-provider.js.map +1 -0
  169. package/dist/esm/naylence/fame/security/cert/util.js +2 -3
  170. package/dist/esm/naylence/fame/security/cert/util.js.map +1 -1
  171. package/dist/esm/plugin.js +2 -0
  172. package/dist/esm/plugin.js.map +1 -1
  173. package/dist/esm/version.js +8 -0
  174. package/dist/esm/version.js.map +1 -0
  175. package/dist/types/browser.d.ts +3 -0
  176. package/dist/types/browser.d.ts.map +1 -1
  177. package/dist/types/index.d.ts +1 -0
  178. package/dist/types/index.d.ts.map +1 -1
  179. package/dist/types/naylence/fame/factory-manifest.d.ts +2 -0
  180. package/dist/types/naylence/fame/factory-manifest.d.ts.map +1 -1
  181. package/dist/types/naylence/fame/security/cert/browser-csr.d.ts +9 -0
  182. package/dist/types/naylence/fame/security/cert/browser-csr.d.ts.map +1 -0
  183. package/dist/types/naylence/fame/security/cert/ca-server.d.ts.map +1 -1
  184. package/dist/types/naylence/fame/security/cert/ca-service-client.d.ts.map +1 -1
  185. package/dist/types/naylence/fame/security/cert/ca-types.d.ts +32 -0
  186. package/dist/types/naylence/fame/security/cert/ca-types.d.ts.map +1 -1
  187. package/dist/types/naylence/fame/security/cert/csr-types.d.ts +5 -0
  188. package/dist/types/naylence/fame/security/cert/csr-types.d.ts.map +1 -0
  189. package/dist/types/naylence/fame/security/cert/default-ca-service.d.ts +2 -1
  190. package/dist/types/naylence/fame/security/cert/default-ca-service.d.ts.map +1 -1
  191. package/dist/types/naylence/fame/security/cert/default-certificate-manager-factory.d.ts +3 -3
  192. package/dist/types/naylence/fame/security/cert/default-certificate-manager-factory.d.ts.map +1 -1
  193. package/dist/types/naylence/fame/security/cert/default-certificate-manager.d.ts +32 -0
  194. package/dist/types/naylence/fame/security/cert/default-certificate-manager.d.ts.map +1 -1
  195. package/dist/types/naylence/fame/security/cert/index.d.ts +5 -1
  196. package/dist/types/naylence/fame/security/cert/index.d.ts.map +1 -1
  197. package/dist/types/naylence/fame/security/cert/internal-ca-service.d.ts +0 -3
  198. package/dist/types/naylence/fame/security/cert/internal-ca-service.d.ts.map +1 -1
  199. package/dist/types/naylence/fame/security/cert/node-ed25519-csr.d.ts +9 -0
  200. package/dist/types/naylence/fame/security/cert/node-ed25519-csr.d.ts.map +1 -0
  201. package/dist/types/naylence/fame/security/cert/oid-constants.d.ts +7 -0
  202. package/dist/types/naylence/fame/security/cert/oid-constants.d.ts.map +1 -0
  203. package/dist/types/naylence/fame/security/cert/trust-store/anchor-utils.d.ts +12 -0
  204. package/dist/types/naylence/fame/security/cert/trust-store/anchor-utils.d.ts.map +1 -0
  205. package/dist/types/naylence/fame/security/cert/trust-store/env-provider.d.ts +7 -0
  206. package/dist/types/naylence/fame/security/cert/trust-store/env-provider.d.ts.map +1 -0
  207. package/dist/types/naylence/fame/security/cert/trust-store/fame-ca-certs-parser.d.ts +9 -0
  208. package/dist/types/naylence/fame/security/cert/trust-store/fame-ca-certs-parser.d.ts.map +1 -0
  209. package/dist/types/naylence/fame/security/cert/trust-store/http-bundle-provider.d.ts +31 -0
  210. package/dist/types/naylence/fame/security/cert/trust-store/http-bundle-provider.d.ts.map +1 -0
  211. package/dist/types/naylence/fame/security/cert/trust-store/http-signed-bundle-provider.d.ts +2 -0
  212. package/dist/types/naylence/fame/security/cert/trust-store/http-signed-bundle-provider.d.ts.map +1 -0
  213. package/dist/types/naylence/fame/security/cert/trust-store/static-bundle-provider.d.ts +13 -0
  214. package/dist/types/naylence/fame/security/cert/trust-store/static-bundle-provider.d.ts.map +1 -0
  215. package/dist/types/naylence/fame/security/cert/trust-store/trust-store-provider.d.ts +37 -0
  216. package/dist/types/naylence/fame/security/cert/trust-store/trust-store-provider.d.ts.map +1 -0
  217. package/dist/types/naylence/fame/security/cert/util.d.ts.map +1 -1
  218. package/dist/types/plugin.d.ts.map +1 -1
  219. package/dist/types/version.d.ts +6 -0
  220. package/dist/types/version.d.ts.map +1 -0
  221. package/package.json +11 -7
@@ -1 +1 @@
1
- {"version":3,"file":"internal-ca-service.js","sourceRoot":"","sources":["../../../../../../src/naylence/fame/security/cert/internal-ca-service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,cAAc,EACd,sBAAsB,EACtB,gBAAgB,EAChB,WAAW,EACX,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,eAAe,EACf,aAAa,EACb,QAAQ,IAAI,YAAY,EACxB,aAAa,EACb,IAAI,EACJ,eAAe,EACf,yBAAyB,EACzB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACd,QAAQ,EACR,OAAO,EACP,4BAA4B,EAC5B,sBAAsB,EACtB,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,0BAA0B,EAC1B,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAKtE,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,qDAAqD;AACrD,MAAM,CAAC,MAAM,OAAO,GAAG,qBAAqB,CAAC;AAC7C,MAAM,CAAC,MAAM,YAAY,GAAG,qBAAqB,CAAC;AAClD,MAAM,CAAC,MAAM,WAAW,GAAG,qBAAqB,CAAC;AACjD,MAAM,WAAW,GAAG,aAAa,CAAC;AAkBlC,IAAI,iBAAiB,GAAsC,IAAI,CAAC;AAGhE,IAAI,aAAa,GAA2B,IAAI,CAAC;AACjD,IAAI,mBAAmB,GAAiC,IAAI,CAAC;AAE7D;;GAEG;AACH,KAAK,UAAU,cAAc;IAC3B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,iBAAiB,GAAG,MAAM,CAAC,gBAAgB,CAAC;aACzC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;YACZ,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,eAAe,KAAK,UAAU,EAAE,CAAC;gBACrD,OAAO,GAA4B,CAAC;YACtC,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACf,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;YACvD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACP,CAAC;IAED,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED,KAAK,UAAU,YAAY;IACzB,IAAI,OAAO,UAAU,CAAC,MAAM,KAAK,WAAW,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACzE,OAAO,UAAU,CAAC,MAAM,CAAC;IAC3B,CAAC;IAED,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,IACE,OAAO,OAAO,KAAK,WAAW;YAC9B,OAAO,OAAO,CAAC,QAAQ,EAAE,IAAI,KAAK,QAAQ,EAC1C,CAAC;YACD,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE;gBACrD,MAAM,SAAS,GAAI,YAAkD;qBAClE,SAAS,CAAC;gBACb,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;oBACpC,MAAM,IAAI,KAAK,CACb,wDAAwD,CACzD,CAAC;gBACJ,CAAC;gBAEA,UAAsC,CAAC,MAAM,GAAG,SAAS,CAAC;gBAC3D,OAAO,SAAS,CAAC;YACnB,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,aAAa,GAAG,OAAO,CAAC,MAAM,CAC5B,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAChE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,KAAK,UAAU,eAAe;IAC5B,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,mBAAmB,GAAG,YAAY,EAAE,CAAC,IAAI,CACvC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAClC,CAAC;IACJ,CAAC;IAED,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED,KAAK,UAAU,uBAAuB,CACpC,GAAW,EACX,YAAwB,CAAC,MAAM,CAAC;IAEhC,MAAM,MAAM,GAAG,MAAM,eAAe,EAAE,CAAC;IACvC,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAE1B,IAAI,CAAC;QACH,OAAO,MAAM,MAAM,CAAC,SAAS,CAC3B,OAAO,EACP,GAAG,EACH,EAAE,IAAI,EAAE,SAAS,EAAE,EACnB,KAAK,EACL,SAAS,CACV,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,yCAA0C,KAAe,CAAC,OAAO,EAAE,CACpE,CAAC;IACJ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,sBAAsB,CACnC,GAAW,EACX,YAAwB,CAAC,QAAQ,CAAC;IAElC,MAAM,MAAM,GAAG,MAAM,eAAe,EAAE,CAAC;IACvC,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAE1B,IAAI,CAAC;QACH,OAAO,MAAM,MAAM,CAAC,SAAS,CAC3B,MAAM,EACN,GAAG,EACH,EAAE,IAAI,EAAE,SAAS,EAAE,EACnB,IAAI,EACJ,SAAS,CACV,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,wCAAyC,KAAe,CAAC,OAAO,EAAE,CACnE,CAAC;IACJ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,GAAwB;IAExB,MAAM,MAAM,GAAG,MAAM,eAAe,EAAE,CAAC;IACvC,IAAI,IAAiB,CAAC;IACtB,IAAI,GAAG,YAAY,WAAW,EAAE,CAAC;QAC/B,IAAI,GAAG,GAAG,CAAC;IACb,CAAC;SAAM,IAAI,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;QACxE,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC;IAC7B,CAAC;SAAM,CAAC;QACN,IAAI,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7C,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACpD,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,aAAa,CAAC,IAAgB;IACrC,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;AACrC,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAW;IACnC,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;IAC1D,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAChD,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,CAAC;AACtB,CAAC;AAcD,KAAK,UAAU,wBAAwB,CACrC,OAAgC;IAEhC,MAAM,MAAM,GAAG,MAAM,eAAe,EAAE,CAAC;IAEvC,MAAM,YAAY,EAAE,CAAC;IACrB,MAAM,SAAS,GAAG,oBAAoB,EAAE,CAAC;IAEzC,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAE/C,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC7E,MAAM,oBAAoB,GAAG,UAAU,CAAC,KAAK,CAC3C,WAAW,EACX,oBAAoB,CACrB,CAAC;IACF,oBAAoB,CAAC,SAAS,GAAG,IAAI,mBAAmB,CAAC;QACvD,SAAS,EAAE,WAAW;KACvB,CAAC,CAAC;IAEH,MAAM,kBAAkB,GAAG,IAAI,mBAAmB,CAAC;QACjD,SAAS,EAAE,WAAW;KACvB,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,MAAM;QAC3C,CAAC,CAAC,IAAI,UAAU,CACZ,OAAO,CAAC,UAAU,CAAC,GAAG,CACpB,CAAC,GAAG,EAAE,EAAE,CACN,IAAI,SAAS,CAAC;YACZ,MAAM,EAAE,GAAG,CAAC,IAAI;YAChB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,SAAS,EAAE,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC;SACtC,CAAC,CACL,CACF;QACH,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC;QACxC,OAAO,EAAE,OAAO,CAAC,EAAE;QACnB,YAAY,EAAE,gBAAgB,CAAC,SAAS,CAAC;QACzC,SAAS,EAAE,kBAAkB;QAC7B,MAAM,EAAE,UAAU;QAClB,QAAQ,EAAE,IAAI,QAAQ,CAAC;YACrB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B,CAAC;QACF,OAAO,EAAE,WAAW;QACpB,oBAAoB;QACpB,UAAU;KACX,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAE3E,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC;QAClC,cAAc;QACd,kBAAkB;QAClB,cAAc,EAAE,SAAS;KAC1B,CAAC,CAAC;IAEH,WAAW,CAAC,iBAAiB,GAAG,MAAM,CAAC;IAEvC,OAAO,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,QAAQ,CAAC,GAAgB,EAAE,KAAa;IAC/C,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IACnC,OAAO,cAAc,KAAK,UAAU,SAAS,CAAC,MAAM,CAAC,cAAc,KAAK,SAAS,CAAC;AACpF,CAAC;AAED,SAAS,OAAO,CAAC,IAAU,EAAE,IAAY;IACvC,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACxC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,CAAC;IAC9C,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAgB,EAAE;IAC9C,MAAM,UAAU,GAAI,UAA6C,CAAC,MAAM,CAAC;IACzE,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;IACrC,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IACnC,MAAM,CAAC,CAAC,CAAE,IAAI,IAAI,CAAC;IACnB,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAClC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CACpC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACb,CAAC;AAED,SAAS,iBAAiB;IACxB,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC;QAC7D,OAAO,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;IAC/B,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,MAAM,eAAe,GAAG,SAAS,CAAC;AAClC,MAAM,uBAAuB,GAAG,UAAU,CAAC;AAC3C,MAAM,gBAAgB,GAAG,UAAU,CAAC;AAEpC,SAAS,+BAA+B,CACtC,GAAW,EACX,KAAa;IAEb,OAAO,IAAI,yBAAyB,CAAC;QACnC,IAAI,qBAAqB,CAAC;YACxB,IAAI,EAAE,GAAG;YACT,KAAK,EAAE,IAAI,cAAc,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;SACjD,CAAC;KACH,CAAC,CAAC;AACL,CAAC;AAED,SAAS,oBAAoB,CAC3B,UAAkB,EAClB,YAAqB,EACrB,kBAA2B;IAE3B,MAAM,IAAI,GAAgC;QACxC,+BAA+B,CAAC,eAAe,EAAE,UAAU,CAAC;KAC7D,CAAC;IACF,IAAI,kBAAkB,EAAE,CAAC;QACvB,IAAI,CAAC,IAAI,CACP,+BAA+B,CAC7B,uBAAuB,EACvB,kBAAkB,CACnB,CACF,CAAC;IACJ,CAAC;IACD,IAAI,YAAY,EAAE,CAAC;QACjB,IAAI,CAAC,IAAI,CAAC,+BAA+B,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,SAAS,CAAC,IAAU;IAC3B,OAAO,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;AAC5D,CAAC;AAOD,SAAS,sBAAsB,CAC7B,IAA6B;IAE7B,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC3D,OAAO;QACL,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC;QAC9C,oBAAoB,EAAE,UAAU,CAAC,SAAS,CACxC,MAAM,CAAC,cAAc,CAAC,oBAAoB,CAC3C;KACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,gBAA2B,EAC3B,eAAoC,EACpC,OAAsE;IAEtE,MAAM,UAAU,GAIX,EAAE,CAAC;IAER,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,IAAI,OAAO,CAAC,UAAU,KAAK,IAAI,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACpE,gBAAgB,CAAC,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC;IAC1D,CAAC;IACD,UAAU,CAAC,IAAI,CAAC;QACd,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,YAAY,CAAC,gBAAgB,CAAC;KACtC,CAAC,CAAC;IAEH,MAAM,aAAa,GACjB,aAAa,CAAC,gBAAgB;QAC9B,aAAa,CAAC,WAAW;QACzB,aAAa,CAAC,OAAO,CAAC;IACxB,UAAU,CAAC,IAAI,CAAC;QACd,IAAI,EAAE,cAAc;QACpB,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,YAAY,CAAC,IAAI,YAAY,CAAC,aAAa,CAAC,CAAC;KACrD,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,MAAM,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IAClE,UAAU,CAAC,IAAI,CAAC;QACd,IAAI,EAAE,0BAA0B;QAChC,QAAQ,EAAE,KAAK;QACf,KAAK,EAAE,YAAY,CAAC,IAAI,oBAAoB,CAAC,YAAY,CAAC,CAAC;KAC5D,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,MAAM,oBAAoB,CAAC,eAAe,CAAC,CAAC;IACnE,UAAU,CAAC,IAAI,CAAC;QACd,IAAI,EAAE,4BAA4B;QAClC,QAAQ,EAAE,KAAK;QACf,KAAK,EAAE,YAAY,CACjB,IAAI,sBAAsB,CAAC;YACzB,aAAa,EAAE,IAAI,aAAa,CAAC,cAAc,CAAC;SACjD,CAAC,CACH;KACF,CAAC,CAAC;IAEH,IAAI,OAAO,CAAC,mBAAmB,EAAE,MAAM,EAAE,CAAC;QACxC,MAAM,iBAAiB,GAAG,IAAI,eAAe,CAC3C,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAC7B,CAAC,MAAM,EAAE,EAAE,CACT,IAAI,cAAc,CAAC,EAAE,IAAI,EAAE,IAAI,WAAW,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CACrE,CACF,CAAC;QACF,MAAM,WAAW,GAAG,IAAI,eAAe,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAC/D,UAAU,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,qBAAqB;YAC3B,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,YAAY,CAAC,WAAW,CAAC;SACjC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,SAAoB,EACpB,OAAe,EACf,MAAc,EACd,QAAgB,EAChB,YAAsB,EACtB,eAAoC;IAEpC,MAAM,UAAU,GAIX,EAAE,CAAC;IAER,UAAU,CAAC,IAAI,CAAC;QACd,IAAI,EAAE,oBAAoB;QAC1B,QAAQ,EAAE,KAAK;QACf,KAAK,EAAE,YAAY,CACjB,IAAI,sBAAsB,CAAC;YACzB,IAAI,WAAW,CAAC,EAAE,yBAAyB,EAAE,QAAQ,EAAE,CAAC;SACzD,CAAC,CACH;KACF,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,aAAa,CAAC,gBAAgB,CAAC;IACrD,UAAU,CAAC,IAAI,CAAC;QACd,IAAI,EAAE,cAAc;QACpB,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,YAAY,CAAC,IAAI,YAAY,CAAC,aAAa,CAAC,CAAC;KACrD,CAAC,CAAC;IAEH,UAAU,CAAC,IAAI,CAAC;QACd,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,KAAK;QACf,KAAK,EAAE,YAAY,CACjB,IAAI,gBAAgB,CAAC,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,CAC3D;KACF,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,MAAM,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAC3D,UAAU,CAAC,IAAI,CAAC;QACd,IAAI,EAAE,0BAA0B;QAChC,QAAQ,EAAE,KAAK;QACf,KAAK,EAAE,YAAY,CAAC,IAAI,oBAAoB,CAAC,YAAY,CAAC,CAAC;KAC5D,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,MAAM,oBAAoB,CAAC,eAAe,CAAC,CAAC;IACnE,UAAU,CAAC,IAAI,CAAC;QACd,IAAI,EAAE,4BAA4B;QAClC,QAAQ,EAAE,KAAK;QACf,KAAK,EAAE,YAAY,CACjB,IAAI,sBAAsB,CAAC;YACzB,aAAa,EAAE,IAAI,aAAa,CAAC,cAAc,CAAC;SACjD,CAAC,CACH;KACF,CAAC,CAAC;IAEH,UAAU,CAAC,IAAI,CAAC;QACd,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,KAAK;QACf,KAAK,EAAE,aAAa,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;KACxD,CAAC,CAAC;IAEH,UAAU,CAAC,IAAI,CAAC;QACd,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,KAAK;QACf,KAAK,EAAE,aAAa,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;KACvD,CAAC,CAAC;IAEH,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;QACxB,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAClD,UAAU,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,YAAY;YAClB,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,aAAa,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;SAC7D,CAAC,CAAC;IACL,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAmBD;;;;;GAKG;AACH,MAAM,OAAO,gBAAiB,SAAQ,SAAS;IAW7C,YAAY,OAAgC;QAC1C,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;QACvD,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IACvD,CAAC;IAEO,KAAK,CAAC,mBAAmB;QAC/B,MAAM,IAAI,GAAG,MAAM,cAAc,EAAE,CAAC;QACpC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACzD,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QACvE,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,GAAG,MAAM,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChE,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,sBAAsB;QAClC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE9C,IAAI,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACtB,IAAI,CAAC,WAAW,GAAG,IAAI,IAAI,CAAC,eAAe,CACzC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CACnC,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBACrB,IAAI,CAAC,UAAU,GAAG,MAAM,uBAAuB,CAC7C,IAAI,CAAC,kBAAkB,CACxB,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC;YACjC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC;QACjC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,kBAAkB;QACxB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAEO,UAAU;QAChB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAEO,qBAAqB;QAC3B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAEO,aAAa;QACnB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,gBAAgB,CACpB,GAA8B;QAE9B,oDAAoD;QACpD,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;QACnE,MAAM,oBAAoB,GACxB,WAAW,CAAC,wBAAwB,CAAC,aAAa,CAAC;QAErD,6CAA6C;QAC7C,MAAM,YAAY,GAAG,UAAU,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;QAChE,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QAE1D,8DAA8D;QAC9D,MAAM,YAAY,GAAG,GAAG,CAAC,YAAY,IAAI,YAAY,GAAG,CAAC,WAAW,EAAE,CAAC;QACvE,MAAM,OAAO,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC;QAEpC,6CAA6C;QAC7C,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,YAAY,CAC5C,YAAY,EACZ,GAAG,CAAC,WAAW,EAAE,6BAA6B;QAC9C,OAAO,EACP,YAAY,EACZ,QAAQ,EACR,CAAC,EAAE,8BAA8B;QACjC,SAAS,CACV,CAAC;QAEF,sCAAsC;QACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACjE,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;QAEnD,OAAO;YACL,cAAc;YACd,SAAS;SACV,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,YAAY,CAChB,YAAoB,EACpB,MAAc,EACd,OAAe,EACf,YAAoB,EACpB,QAAkB,EAClB,UAAkB,GAAG,EACrB,oBAA4B,eAAe;QAE3C,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACpC,MAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACjD,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAExC,MAAM,WAAW,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;QAC/C,IAAI,WAAW,KAAK,OAAO,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CACb,oEAAoE,CACrE,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAAG,QAAQ,IAAI,EAAE,CAAC;QACpC,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;YACnC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;YACpD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CACb,yBAAyB,OAAO,MAAM,KAAK,IAAI,eAAe,EAAE,CACjE,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,YAAY,EAAE,CAAC;QAErB,MAAM,SAAS,GAAG,MAAM,sBAAsB,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QACzE,MAAM,cAAc,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAC;QAE3D,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,KAAM,CAAC,CAAC;QACnD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAEvC,MAAM,QAAQ,GAAG,YAAY,iBAAiB,UAAU,OAAO,EAAE,CAAC;QAClE,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAC1C,SAAS,EACT,OAAO,EACP,MAAM,EACN,QAAQ,EACR,YAAY,EACZ,cAAc,CAAC,oBAAoB,CACpC,CAAC;QAEF,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC;QACvC,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,iDAAiD;QAEnF,MAAM,OAAO,GAAG,MAAM,wBAAwB,CAAC;YAC7C,OAAO,EAAE,WAAW;YACpB,MAAM,EAAE,UAAU;YAClB,gBAAgB,EAAE,SAAS;YAC3B,UAAU;YACV,SAAS;YACT,QAAQ;YACR,UAAU;SACX,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAC1C,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,oBAAoB,CACxB,YAAoB,EACpB,MAAc,EACd,cAAwB,EACxB,UAAkB,IAAI;QAEtB,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAElC,MAAM,YAAY,EAAE,CAAC;QAErB,MAAM,gBAAgB,GAAG,MAAM,sBAAsB,CAAC,YAAY,CAAC,CAAC;QAEpE,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,KAAM,CAAC,CAAC;QACnD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAEvC,MAAM,WAAW,GAAG,oBAAoB,CACtC,MAAM,EACN,eAAe,EACf,uBAAuB,CACxB,CAAC;QACF,MAAM,cAAc,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;QAExD,MAAM,UAAU,GAAG,MAAM,iBAAiB,CACxC,gBAAgB,EAChB,cAAc,CAAC,oBAAoB,EACnC;YACE,UAAU,EAAE,CAAC;YACb,mBAAmB,EAAE,cAAc,CAAC,MAAM;gBACxC,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;gBACvB,CAAC,CAAC,SAAS;SACd,CACF,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,wBAAwB,CAAC;YAC7C,OAAO,EAAE,WAAW;YACpB,MAAM,EAAE,cAAc,CAAC,IAAI;YAC3B,gBAAgB;YAChB,UAAU,EAAE,OAAO;YACnB,SAAS;YACT,QAAQ;YACR,UAAU;SACX,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAC1C,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,MAAM,MAAM,GAAG,MAAM,eAAe,EAAE,CAAC;IACvC,MAAM,YAAY,EAAE,CAAC;IAErB,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,WAAW,CACtC;QACE,IAAI,EAAE,SAAS;QACf,UAAU,EAAE,SAAS;KACJ,EACnB,IAAI,EACJ,CAAC,MAAM,EAAE,QAAQ,CAAC,CACnB,CAAC;IAEF,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAC1E,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAEvE,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;IAC1D,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IAE1D,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,KAAM,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;IAExC,MAAM,WAAW,GAAG,oBAAoB,CACtC,mBAAmB,EACnB,eAAe,CAChB,CAAC;IACF,MAAM,UAAU,GAAG,MAAM,iBAAiB,CACxC,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,SAAS,EACjB,EAAE,UAAU,EAAE,IAAI,EAAE,CACrB,CAAC;IAEF,MAAM,OAAO,GAAG,MAAM,wBAAwB,CAAC;QAC7C,OAAO,EAAE,WAAW;QACpB,MAAM,EAAE,WAAW;QACnB,gBAAgB,EAAE,OAAO,CAAC,SAAS;QACnC,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,SAAS;QACT,QAAQ;QACR,UAAU;KACX,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAErD,OAAO,CAAC,WAAW,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;AACjD,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,OAAe;IAEf,MAAM,IAAI,GAAG,MAAM,cAAc,EAAE,CAAC;IACpC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAE/C,kDAAkD;QAClD,qDAAqD;QACrD,OAAO,CAAC,GAAG,CAAC,iCAAiC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAE7D,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAAe;IAEf,MAAM,IAAI,GAAG,MAAM,cAAc,EAAE,CAAC;IACpC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAE/C,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC;QACtC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,OAAe;IAEf,MAAM,IAAI,GAAG,MAAM,cAAc,EAAE,CAAC;IACpC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAE/C,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QACvD,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;YAClC,OAAO,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QACzC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,OAAe;IAEf,MAAM,IAAI,GAAG,MAAM,cAAc,EAAE,CAAC;IACpC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAE/C,MAAM,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAC1D,IAAI,iBAAiB,EAAE,CAAC;YACtB,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;YAClC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;YAClD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;QACzD,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAAgB;IACrD,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0CAA0C;IAC1C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;QAC9C,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,kCAAkC;IAC7D,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,OAAe,EACf,YAAoB;IAEpB,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACnD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAEzC,sDAAsD;QACtD,yCAAyC;QACzC,kDAAkD;QAClD,kCAAkC;QAElC,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;QACnE,OAAO,KAAK,CAAC,CAAC,8CAA8C;IAC9D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;QACxD,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E;;GAEG;AACH,SAAS,QAAQ,CAAC,GAAW;IAC3B,MAAM,MAAM,GAAG,GAAG;SACf,OAAO,CAAC,sBAAsB,EAAE,EAAE,CAAC;SACnC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC;SACjC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAEtB,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACrC,6CAA6C;IAC7C,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,MAAc;IACpC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,MAAmB;IACzC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IACrC,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAAC,MAAc;IAC/B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QAC3C,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"internal-ca-service.js","sourceRoot":"","sources":["../../../../../../src/naylence/fame/security/cert/internal-ca-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,156 @@
1
+ import { AsnConvert, OctetString } from "@peculiar/asn1-schema";
2
+ import { Attributes, CertificationRequest, CertificationRequestInfo, } from "@peculiar/asn1-csr";
3
+ import { AlgorithmIdentifier, Attribute, AttributeTypeAndValue, AttributeValue, Extension, Extensions, GeneralName, Name, RelativeDistinguishedName, SubjectAlternativeName, SubjectPublicKeyInfo, id_ce_subjectAltName, } from "@peculiar/asn1-x509";
4
+ const ED25519_OID = "1.3.101.112";
5
+ const OID_COMMON_NAME = "2.5.4.3";
6
+ const EXTENSION_REQUEST_OID = "1.2.840.113549.1.9.14";
7
+ const LOGICAL_URI_PREFIX = "naylence://";
8
+ const CSR_PEM_TAG = "CERTIFICATE REQUEST";
9
+ export async function createEd25519CsrFromPem(options) {
10
+ const { privateKeyPem, publicKeyPem, commonName } = options;
11
+ const sanitizedLogicals = sanitizeLogicals(options.logicals);
12
+ const crypto = await ensureWebCrypto();
13
+ const privateKey = await crypto.subtle.importKey("pkcs8", pemToArrayBuffer(privateKeyPem), { name: "Ed25519" }, false, ["sign"]);
14
+ const publicKeyDer = pemToArrayBuffer(publicKeyPem);
15
+ const subjectPublicKeyInfo = AsnConvert.parse(publicKeyDer, SubjectPublicKeyInfo);
16
+ const subject = buildSubjectName(commonName);
17
+ const attributes = buildAttributes(sanitizedLogicals);
18
+ const requestInfo = new CertificationRequestInfo({
19
+ subject,
20
+ subjectPKInfo: subjectPublicKeyInfo,
21
+ attributes,
22
+ });
23
+ const requestInfoDer = AsnConvert.serialize(requestInfo);
24
+ const signature = await crypto.subtle.sign("Ed25519", privateKey, requestInfoDer);
25
+ const certificationRequest = new CertificationRequest({
26
+ certificationRequestInfo: requestInfo,
27
+ signatureAlgorithm: new AlgorithmIdentifier({
28
+ algorithm: ED25519_OID,
29
+ }),
30
+ signature: encodeBitString(signature),
31
+ });
32
+ const csrDer = AsnConvert.serialize(certificationRequest);
33
+ const csrPem = arrayBufferToPem(csrDer, CSR_PEM_TAG);
34
+ return { csrDer, csrPem };
35
+ }
36
+ function sanitizeLogicals(logicals) {
37
+ if (!Array.isArray(logicals)) {
38
+ return [];
39
+ }
40
+ const seen = new Set();
41
+ const result = [];
42
+ for (const entry of logicals) {
43
+ if (typeof entry !== "string") {
44
+ continue;
45
+ }
46
+ const trimmed = entry.trim();
47
+ if (!trimmed || seen.has(trimmed)) {
48
+ continue;
49
+ }
50
+ seen.add(trimmed);
51
+ result.push(trimmed);
52
+ }
53
+ return result;
54
+ }
55
+ function buildAttributes(logicals) {
56
+ const attributes = new Attributes();
57
+ if (logicals.length === 0) {
58
+ return attributes;
59
+ }
60
+ const san = new SubjectAlternativeName(logicals.map((logical) => new GeneralName({
61
+ uniformResourceIdentifier: `${LOGICAL_URI_PREFIX}${logical}`,
62
+ })));
63
+ const extensions = new Extensions([
64
+ new Extension({
65
+ extnID: id_ce_subjectAltName,
66
+ critical: false,
67
+ extnValue: new OctetString(AsnConvert.serialize(san)),
68
+ }),
69
+ ]);
70
+ attributes.push(new Attribute({
71
+ type: EXTENSION_REQUEST_OID,
72
+ values: [AsnConvert.serialize(extensions)],
73
+ }));
74
+ return attributes;
75
+ }
76
+ function buildSubjectName(commonName) {
77
+ const trimmed = commonName.trim();
78
+ if (trimmed.length === 0) {
79
+ throw new Error("commonName must be a non-empty string");
80
+ }
81
+ return new Name([
82
+ new RelativeDistinguishedName([
83
+ new AttributeTypeAndValue({
84
+ type: OID_COMMON_NAME,
85
+ value: new AttributeValue({ utf8String: trimmed }),
86
+ }),
87
+ ]),
88
+ ]);
89
+ }
90
+ async function ensureWebCrypto() {
91
+ if (globalThis.crypto?.subtle) {
92
+ return globalThis.crypto;
93
+ }
94
+ if (typeof process !== "undefined" && process?.versions?.node) {
95
+ const module = await import("node:crypto");
96
+ const webcrypto = module.webcrypto;
97
+ if (!webcrypto?.subtle) {
98
+ throw new Error("WebCrypto API is not available in this Node.js runtime");
99
+ }
100
+ globalThis.crypto = webcrypto;
101
+ return webcrypto;
102
+ }
103
+ throw new Error("WebCrypto API is not available in this environment");
104
+ }
105
+ function pemToArrayBuffer(pem) {
106
+ const normalized = pem
107
+ .replace(/-----BEGIN[^-]+-----/g, "")
108
+ .replace(/-----END[^-]+-----/g, "")
109
+ .replace(/\s+/g, "");
110
+ const bytes = base64ToBytes(normalized);
111
+ const copy = new Uint8Array(bytes.length);
112
+ copy.set(bytes);
113
+ return copy.buffer;
114
+ }
115
+ function base64ToBytes(base64) {
116
+ if (typeof Buffer !== "undefined") {
117
+ return Uint8Array.from(Buffer.from(base64, "base64"));
118
+ }
119
+ if (typeof globalThis.atob === "function") {
120
+ const binary = globalThis.atob(base64);
121
+ const bytes = new Uint8Array(binary.length);
122
+ for (let index = 0; index < binary.length; index += 1) {
123
+ bytes[index] = binary.charCodeAt(index);
124
+ }
125
+ return bytes;
126
+ }
127
+ throw new Error("Base64 decoding not available in this environment");
128
+ }
129
+ function arrayBufferToPem(buffer, tag) {
130
+ const base64 = bytesToBase64(new Uint8Array(buffer));
131
+ const lines = [];
132
+ for (let index = 0; index < base64.length; index += 64) {
133
+ lines.push(base64.slice(index, index + 64));
134
+ }
135
+ return `-----BEGIN ${tag}-----\n${lines.join("\n")}\n-----END ${tag}-----\n`;
136
+ }
137
+ function bytesToBase64(bytes) {
138
+ if (typeof Buffer !== "undefined") {
139
+ return Buffer.from(bytes).toString("base64");
140
+ }
141
+ if (typeof globalThis.btoa === "function") {
142
+ let binary = "";
143
+ for (let index = 0; index < bytes.length; index += 1) {
144
+ binary += String.fromCharCode(bytes[index]);
145
+ }
146
+ return globalThis.btoa(binary);
147
+ }
148
+ throw new Error("Base64 encoding not available in this environment");
149
+ }
150
+ function encodeBitString(signature) {
151
+ const signatureBytes = new Uint8Array(signature);
152
+ const result = new Uint8Array(signatureBytes.length + 1);
153
+ result.set(signatureBytes, 1);
154
+ return result.buffer;
155
+ }
156
+ //# sourceMappingURL=node-ed25519-csr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-ed25519-csr.js","sourceRoot":"","sources":["../../../../../../src/naylence/fame/security/cert/node-ed25519-csr.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Common certificate extension OIDs shared across server and client logic.
3
+ */
4
+ export const SID_OID = "1.3.6.1.4.1.58530.1";
5
+ export const LOGICALS_OID = "1.3.6.1.4.1.58530.2";
6
+ export const NODE_ID_OID = "1.3.6.1.4.1.58530.4";
7
+ //# sourceMappingURL=oid-constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oid-constants.js","sourceRoot":"","sources":["../../../../../../src/naylence/fame/security/cert/oid-constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,qBAAqB,CAAC;AAC7C,MAAM,CAAC,MAAM,YAAY,GAAG,qBAAqB,CAAC;AAClD,MAAM,CAAC,MAAM,WAAW,GAAG,qBAAqB,CAAC"}
@@ -0,0 +1,119 @@
1
+ import { sha256 } from "@noble/hashes/sha2.js";
2
+ import { X509Certificate } from "@peculiar/x509";
3
+ const PEM_HEADER = "-----BEGIN CERTIFICATE-----";
4
+ function normalizeLineEndings(value) {
5
+ return value.replace(/\r\n?/gu, "\n");
6
+ }
7
+ export function isPem(value) {
8
+ return typeof value === "string" && value.includes(PEM_HEADER);
9
+ }
10
+ export function extractPemBlocks(value) {
11
+ if (!isPem(value)) {
12
+ return [];
13
+ }
14
+ const normalized = normalizeLineEndings(value).trim();
15
+ const pattern = /-----BEGIN [^-]+-----[\s\S]*?-----END [^-]+-----/gu;
16
+ const matches = normalized.match(pattern);
17
+ if (!matches) {
18
+ return [];
19
+ }
20
+ return matches.map((block) => `${block.trim()}\n`);
21
+ }
22
+ export function pemChainToAnchors(pem) {
23
+ const anchors = [];
24
+ for (const block of extractPemBlocks(pem)) {
25
+ anchors.push({ pem: block });
26
+ }
27
+ return anchors;
28
+ }
29
+ export function anchorsToPem(anchors) {
30
+ const blocks = [];
31
+ for (const anchor of anchors) {
32
+ if (isPem(anchor.pem)) {
33
+ blocks.push(normalizePem(anchor.pem));
34
+ }
35
+ }
36
+ return blocks.join("\n");
37
+ }
38
+ export function normalizePem(pem) {
39
+ const blocks = extractPemBlocks(pem);
40
+ return blocks.join("\n");
41
+ }
42
+ export function computeSpkiSha256(pem) {
43
+ try {
44
+ const cert = new X509Certificate(pem);
45
+ const publicKey = cert.publicKey;
46
+ if (!publicKey?.rawData) {
47
+ return null;
48
+ }
49
+ const der = new Uint8Array(publicKey.rawData);
50
+ const digest = sha256(der);
51
+ return toBase64Url(digest);
52
+ }
53
+ catch {
54
+ return null;
55
+ }
56
+ }
57
+ export function withComputedSpki(anchors) {
58
+ return anchors.map((anchor) => {
59
+ if (anchor.spkiSha256) {
60
+ return anchor;
61
+ }
62
+ const spki = computeSpkiSha256(anchor.pem);
63
+ if (!spki) {
64
+ return anchor;
65
+ }
66
+ return { ...anchor, spkiSha256: spki };
67
+ });
68
+ }
69
+ export function dataUriToPem(dataUri) {
70
+ const match = /^data:(?<mime>[^;,]+)?(?:;charset=[^;,]+)?;base64,(?<data>.+)$/u.exec(dataUri);
71
+ if (!match?.groups?.data) {
72
+ return null;
73
+ }
74
+ const decodedBytes = base64ToBytes(match.groups.data);
75
+ const decoded = bytesToUtf8(decodedBytes);
76
+ return normalizePem(decoded);
77
+ }
78
+ export function toBase64Url(data) {
79
+ let base64;
80
+ if (typeof Buffer !== "undefined") {
81
+ base64 = Buffer.from(data).toString("base64");
82
+ }
83
+ else {
84
+ base64 = btoa(String.fromCharCode(...Array.from(data)));
85
+ }
86
+ return base64.replace(/=/gu, "").replace(/\+/gu, "-").replace(/\//gu, "_");
87
+ }
88
+ export function parsePemOrThrow(pem) {
89
+ const normalized = normalizePem(pem);
90
+ if (!normalized) {
91
+ throw new Error("Invalid PEM content");
92
+ }
93
+ return normalized;
94
+ }
95
+ function base64ToBytes(data) {
96
+ if (typeof Buffer !== "undefined") {
97
+ return Uint8Array.from(Buffer.from(data, "base64"));
98
+ }
99
+ const binary = atob(data);
100
+ const bytes = new Uint8Array(binary.length);
101
+ for (let index = 0; index < binary.length; index += 1) {
102
+ bytes[index] = binary.charCodeAt(index);
103
+ }
104
+ return bytes;
105
+ }
106
+ function bytesToUtf8(data) {
107
+ if (typeof TextDecoder !== "undefined") {
108
+ return new TextDecoder().decode(data);
109
+ }
110
+ if (typeof Buffer !== "undefined") {
111
+ return Buffer.from(data).toString("utf8");
112
+ }
113
+ let result = "";
114
+ for (const value of data) {
115
+ result += String.fromCharCode(value);
116
+ }
117
+ return result;
118
+ }
119
+ //# sourceMappingURL=anchor-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anchor-utils.js","sourceRoot":"","sources":["../../../../../../../src/naylence/fame/security/cert/trust-store/anchor-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,123 @@
1
+ import { HttpBundleProvider } from "./http-bundle-provider.js";
2
+ import { parseFameCaCerts } from "./fame-ca-certs-parser.js";
3
+ import { createProviderFromDataUri, createProviderFromPem, loadPemFromFile, } from "./static-bundle-provider.js";
4
+ export async function createTrustStoreProviderFromEnv(options = {}) {
5
+ const env = resolveEnv(options.env);
6
+ const rawSources = envValue(env, "FAME_CA_CERTS");
7
+ const hashPins = envValue(env, "FAME_CA_BUNDLE_SHA256");
8
+ const allowedSpkis = envValue(env, "FAME_CA_ALLOWED_ROOT_SPKIS");
9
+ const allowTofuRaw = envValue(env, "FAME_CA_ALLOW_TOFU");
10
+ const refreshIntervalRaw = envValue(env, "FAME_CA_REFRESH_INTERVAL_MS");
11
+ const sources = parseFameCaCerts(rawSources, {
12
+ hashPins,
13
+ allowedSpkis,
14
+ allowTofu: toScalar(allowTofuRaw),
15
+ refreshIntervalMs: toScalar(refreshIntervalRaw),
16
+ });
17
+ if (sources.length === 0) {
18
+ return null;
19
+ }
20
+ const providers = await Promise.all(sources.map((source) => buildProviderForSource(source, options)));
21
+ if (providers.length === 1) {
22
+ return providers[0];
23
+ }
24
+ return new CompositeTrustStoreProvider(providers);
25
+ }
26
+ class CompositeTrustStoreProvider {
27
+ constructor(providers) {
28
+ this.providers = providers;
29
+ }
30
+ async getRoots() {
31
+ const rootsLists = await Promise.all(this.providers.map((provider) => provider.getRoots()));
32
+ return rootsLists.flat();
33
+ }
34
+ onUpdate(callback) {
35
+ const unsubscribers = this.providers
36
+ .map((provider) => provider.onUpdate?.(callback) ?? null)
37
+ .filter((fn) => typeof fn === "function");
38
+ return () => {
39
+ for (const unsubscribe of unsubscribers) {
40
+ try {
41
+ unsubscribe();
42
+ }
43
+ catch {
44
+ // Swallow cleanup errors
45
+ }
46
+ }
47
+ };
48
+ }
49
+ }
50
+ async function buildProviderForSource(source, options) {
51
+ switch (source.type) {
52
+ case "INLINE_PEM":
53
+ return buildInlinePemProvider(source);
54
+ case "DATA_PEM":
55
+ return buildDataUriProvider(source);
56
+ case "FILE":
57
+ return buildFileProvider(source);
58
+ case "HTTPS_BUNDLE":
59
+ return buildHttpProvider(source, options);
60
+ default:
61
+ throw new Error(`Unsupported trust bundle source: ${source.type ?? "unknown"}`);
62
+ }
63
+ }
64
+ function buildInlinePemProvider(source) {
65
+ return createProviderFromPem(source.pem);
66
+ }
67
+ function buildDataUriProvider(source) {
68
+ return createProviderFromDataUri(source.dataUri);
69
+ }
70
+ async function buildFileProvider(source) {
71
+ const pem = await loadPemFromFile(source.path);
72
+ return createProviderFromPem(pem);
73
+ }
74
+ function buildHttpProvider(source, options) {
75
+ return new HttpBundleProvider({
76
+ url: source.url,
77
+ hashPins: source.hashPins,
78
+ allowedSpkis: source.allowedSpkis,
79
+ allowTofu: source.allowTofu,
80
+ refreshIntervalMs: source.refreshIntervalMs,
81
+ enforcePinsInBrowser: options.requirePinsInBrowser !== false,
82
+ });
83
+ }
84
+ function resolveEnv(fallback) {
85
+ if (fallback && typeof fallback === "object") {
86
+ return fallback;
87
+ }
88
+ if (isNodeEnvironment() && typeof process !== "undefined") {
89
+ return process.env;
90
+ }
91
+ if (typeof globalThis === "object" && globalThis) {
92
+ const scoped = globalThis;
93
+ if (scoped.__ENV__ && typeof scoped.__ENV__ === "object") {
94
+ return scoped.__ENV__;
95
+ }
96
+ if (scoped.env && typeof scoped.env === "object") {
97
+ return scoped.env;
98
+ }
99
+ }
100
+ return {};
101
+ }
102
+ function envValue(env, key) {
103
+ const direct = env[key];
104
+ if (typeof direct === "string" || Array.isArray(direct)) {
105
+ return direct;
106
+ }
107
+ if (typeof process !== "undefined" && process.env?.[key]) {
108
+ return process.env[key];
109
+ }
110
+ return null;
111
+ }
112
+ function toScalar(value) {
113
+ if (Array.isArray(value)) {
114
+ return value.length > 0 ? value[value.length - 1] ?? null : null;
115
+ }
116
+ return value;
117
+ }
118
+ function isNodeEnvironment() {
119
+ return (typeof process !== "undefined" &&
120
+ typeof process.versions !== "undefined" &&
121
+ typeof process.versions.node === "string");
122
+ }
123
+ //# sourceMappingURL=env-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-provider.js","sourceRoot":"","sources":["../../../../../../../src/naylence/fame/security/cert/trust-store/env-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,eAAe,GAChB,MAAM,6BAA6B,CAAC;AAgBrC,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,UAA2C,EAAE;IAE7C,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACpC,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IAElD,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC;IACxD,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,EAAE,4BAA4B,CAAC,CAAC;IACjE,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;IACzD,MAAM,kBAAkB,GAAG,QAAQ,CAAC,GAAG,EAAE,6BAA6B,CAAC,CAAC;IAExE,MAAM,OAAO,GAAG,gBAAgB,CAAC,UAAU,EAAE;QAC3C,QAAQ;QACR,YAAY;QACZ,SAAS,EAAE,QAAQ,CAAC,YAAY,CAAC;QACjC,iBAAiB,EAAE,QAAQ,CAAC,kBAAkB,CAAC;KAChD,CAAC,CAAC;IAEH,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CACjC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,sBAAsB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CACjE,CAAC;IAEF,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,SAAS,CAAC,CAAC,CAAuB,CAAC;IAC5C,CAAC;IAED,OAAO,IAAI,2BAA2B,CAAC,SAAS,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,2BAA2B;IAG/B,YAAmB,SAAwC;QACzD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAEM,KAAK,CAAC,QAAQ;QACnB,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAClC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CACtD,CAAC;QAEF,OAAO,UAAU,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAEM,QAAQ,CAAC,QAAoB;QAClC,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS;aACjC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC;aACxD,MAAM,CAAC,CAAC,EAAE,EAAoB,EAAE,CAAC,OAAO,EAAE,KAAK,UAAU,CAAC,CAAC;QAE9D,OAAO,GAAG,EAAE;YACV,KAAK,MAAM,WAAW,IAAI,aAAa,EAAE,CAAC;gBACxC,IAAI,CAAC;oBACH,WAAW,EAAE,CAAC;gBAChB,CAAC;gBAAC,MAAM,CAAC;oBACP,yBAAyB;gBAC3B,CAAC;YACH,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;CACF;AAED,KAAK,UAAU,sBAAsB,CACnC,MAAyB,EACzB,OAAwC;IAExC,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,YAAY;YACf,OAAO,sBAAsB,CAAC,MAAM,CAAC,CAAC;QACxC,KAAK,UAAU;YACb,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACtC,KAAK,MAAM;YACT,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACnC,KAAK,cAAc;YACjB,OAAO,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC5C;YACE,MAAM,IAAI,KAAK,CAAC,oCAAqC,MAA4B,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC,CAAC;IAC3G,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAuB;IACrD,OAAO,qBAAqB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAqB;IACjD,OAAO,yBAAyB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACnD,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,MAAqB;IACpD,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/C,OAAO,qBAAqB,CAAC,GAAG,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,iBAAiB,CACxB,MAAyB,EACzB,OAAwC;IAExC,OAAO,IAAI,kBAAkB,CAAC;QAC5B,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;QAC3C,oBAAoB,EAAE,OAAO,CAAC,oBAAoB,KAAK,KAAK;KAC7D,CAAC,CAAC;AACL,CAAC;AAED,SAAS,UAAU,CAAC,QAAyC;IAC3D,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC7C,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IAAI,iBAAiB,EAAE,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;QAC1D,OAAO,OAAO,CAAC,GAAyC,CAAC;IAC3D,CAAC;IAED,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,EAAE,CAAC;QACjD,MAAM,MAAM,GAAG,UAGd,CAAC;QAEF,IAAI,MAAM,CAAC,OAAO,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACzD,OAAO,MAAM,CAAC,OAAO,CAAC;QACxB,CAAC;QAED,IAAI,MAAM,CAAC,GAAG,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;YACjD,OAAO,MAAM,CAAC,GAAG,CAAC;QACpB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,QAAQ,CACf,GAA4B,EAC5B,GAAW;IAEX,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IACxB,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACxD,OAAO,MAA2B,CAAC;IACrC,CAAC;IAED,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;QACzD,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAW,CAAC;IACpC,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,QAAQ,CAAC,KAA+B;IAC/C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACnE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,iBAAiB;IACxB,OAAO,CACL,OAAO,OAAO,KAAK,WAAW;QAC9B,OAAO,OAAO,CAAC,QAAQ,KAAK,WAAW;QACvC,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAC1C,CAAC;AACJ,CAAC"}