@diamondslab/diamonds 1.0.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 (229) hide show
  1. package/README.md +618 -0
  2. package/diamonds/README.md +3 -0
  3. package/dist/core/CallbackManager.d.ts +13 -0
  4. package/dist/core/CallbackManager.d.ts.map +1 -0
  5. package/dist/core/CallbackManager.js +95 -0
  6. package/dist/core/CallbackManager.js.map +1 -0
  7. package/dist/core/DeploymentManager.d.ts +10 -0
  8. package/dist/core/DeploymentManager.d.ts.map +1 -0
  9. package/dist/core/DeploymentManager.js +50 -0
  10. package/dist/core/DeploymentManager.js.map +1 -0
  11. package/dist/core/Diamond.d.ts +58 -0
  12. package/dist/core/Diamond.d.ts.map +1 -0
  13. package/dist/core/Diamond.js +146 -0
  14. package/dist/core/Diamond.js.map +1 -0
  15. package/dist/core/DiamondDeployer.d.ts +10 -0
  16. package/dist/core/DiamondDeployer.d.ts.map +1 -0
  17. package/dist/core/DiamondDeployer.js +33 -0
  18. package/dist/core/DiamondDeployer.js.map +1 -0
  19. package/dist/core/index.d.ts +5 -0
  20. package/dist/core/index.d.ts.map +1 -0
  21. package/dist/core/index.js +12 -0
  22. package/dist/core/index.js.map +1 -0
  23. package/dist/index.d.ts +6 -0
  24. package/dist/index.d.ts.map +1 -0
  25. package/dist/index.js +22 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/repositories/DBDeploymentRepository.d.ts +1 -0
  28. package/dist/repositories/DBDeploymentRepository.d.ts.map +1 -0
  29. package/dist/repositories/DBDeploymentRepository.js +20 -0
  30. package/dist/repositories/DBDeploymentRepository.js.map +1 -0
  31. package/dist/repositories/DeploymentRepository.d.ts +8 -0
  32. package/dist/repositories/DeploymentRepository.d.ts.map +1 -0
  33. package/dist/repositories/DeploymentRepository.js +7 -0
  34. package/dist/repositories/DeploymentRepository.js.map +1 -0
  35. package/dist/repositories/FileDeploymentRepository.d.ts +18 -0
  36. package/dist/repositories/FileDeploymentRepository.d.ts.map +1 -0
  37. package/dist/repositories/FileDeploymentRepository.js +58 -0
  38. package/dist/repositories/FileDeploymentRepository.js.map +1 -0
  39. package/dist/repositories/databaseHandler.d.ts +1 -0
  40. package/dist/repositories/databaseHandler.d.ts.map +1 -0
  41. package/dist/repositories/databaseHandler.js +13 -0
  42. package/dist/repositories/databaseHandler.js.map +1 -0
  43. package/dist/repositories/index.d.ts +4 -0
  44. package/dist/repositories/index.d.ts.map +1 -0
  45. package/dist/repositories/index.js +20 -0
  46. package/dist/repositories/index.js.map +1 -0
  47. package/dist/repositories/jsonFileHandler.d.ts +81 -0
  48. package/dist/repositories/jsonFileHandler.d.ts.map +1 -0
  49. package/dist/repositories/jsonFileHandler.js +223 -0
  50. package/dist/repositories/jsonFileHandler.js.map +1 -0
  51. package/dist/repositories/prismaDBHandler.d.ts +1 -0
  52. package/dist/repositories/prismaDBHandler.d.ts.map +1 -0
  53. package/dist/repositories/prismaDBHandler.js +11 -0
  54. package/dist/repositories/prismaDBHandler.js.map +1 -0
  55. package/dist/schemas/DeploymentSchema.d.ts +309 -0
  56. package/dist/schemas/DeploymentSchema.d.ts.map +1 -0
  57. package/dist/schemas/DeploymentSchema.js +56 -0
  58. package/dist/schemas/DeploymentSchema.js.map +1 -0
  59. package/dist/schemas/index.d.ts +2 -0
  60. package/dist/schemas/index.d.ts.map +1 -0
  61. package/dist/schemas/index.js +18 -0
  62. package/dist/schemas/index.js.map +1 -0
  63. package/dist/strategies/BaseDeploymentStrategy.d.ts +41 -0
  64. package/dist/strategies/BaseDeploymentStrategy.d.ts.map +1 -0
  65. package/dist/strategies/BaseDeploymentStrategy.js +545 -0
  66. package/dist/strategies/BaseDeploymentStrategy.js.map +1 -0
  67. package/dist/strategies/DeploymentStrategy.d.ts +19 -0
  68. package/dist/strategies/DeploymentStrategy.d.ts.map +1 -0
  69. package/dist/strategies/DeploymentStrategy.js +3 -0
  70. package/dist/strategies/DeploymentStrategy.js.map +1 -0
  71. package/dist/strategies/LocalDeploymentStrategy.d.ts +4 -0
  72. package/dist/strategies/LocalDeploymentStrategy.d.ts.map +1 -0
  73. package/dist/strategies/LocalDeploymentStrategy.js +8 -0
  74. package/dist/strategies/LocalDeploymentStrategy.js.map +1 -0
  75. package/dist/strategies/OZDefenderDeploymentStrategy.d.ts +62 -0
  76. package/dist/strategies/OZDefenderDeploymentStrategy.d.ts.map +1 -0
  77. package/dist/strategies/OZDefenderDeploymentStrategy.js +757 -0
  78. package/dist/strategies/OZDefenderDeploymentStrategy.js.map +1 -0
  79. package/dist/strategies/RPCDeploymentStrategy.d.ts +139 -0
  80. package/dist/strategies/RPCDeploymentStrategy.d.ts.map +1 -0
  81. package/dist/strategies/RPCDeploymentStrategy.js +710 -0
  82. package/dist/strategies/RPCDeploymentStrategy.js.map +1 -0
  83. package/dist/strategies/index.d.ts +6 -0
  84. package/dist/strategies/index.d.ts.map +1 -0
  85. package/dist/strategies/index.js +12 -0
  86. package/dist/strategies/index.js.map +1 -0
  87. package/dist/types/config.d.ts +26 -0
  88. package/dist/types/config.d.ts.map +1 -0
  89. package/dist/types/config.js +3 -0
  90. package/dist/types/config.js.map +1 -0
  91. package/dist/types/defender.d.ts +22 -0
  92. package/dist/types/defender.d.ts.map +1 -0
  93. package/dist/types/defender.js +3 -0
  94. package/dist/types/defender.js.map +1 -0
  95. package/dist/types/deployments.d.ts +71 -0
  96. package/dist/types/deployments.d.ts.map +1 -0
  97. package/dist/types/deployments.js +20 -0
  98. package/dist/types/deployments.js.map +1 -0
  99. package/dist/types/index.d.ts +5 -0
  100. package/dist/types/index.d.ts.map +1 -0
  101. package/dist/types/index.js +21 -0
  102. package/dist/types/index.js.map +1 -0
  103. package/dist/types/rpc.d.ts +35 -0
  104. package/dist/types/rpc.d.ts.map +1 -0
  105. package/dist/types/rpc.js +3 -0
  106. package/dist/types/rpc.js.map +1 -0
  107. package/dist/utils/common.d.ts +20 -0
  108. package/dist/utils/common.d.ts.map +1 -0
  109. package/dist/utils/common.js +45 -0
  110. package/dist/utils/common.js.map +1 -0
  111. package/dist/utils/configurationResolver.d.ts +30 -0
  112. package/dist/utils/configurationResolver.d.ts.map +1 -0
  113. package/dist/utils/configurationResolver.js +151 -0
  114. package/dist/utils/configurationResolver.js.map +1 -0
  115. package/dist/utils/contractMapping.d.ts +29 -0
  116. package/dist/utils/contractMapping.d.ts.map +1 -0
  117. package/dist/utils/contractMapping.js +224 -0
  118. package/dist/utils/contractMapping.js.map +1 -0
  119. package/dist/utils/defenderClients.d.ts +5 -0
  120. package/dist/utils/defenderClients.d.ts.map +1 -0
  121. package/dist/utils/defenderClients.js +21 -0
  122. package/dist/utils/defenderClients.js.map +1 -0
  123. package/dist/utils/defenderStore.d.ts +14 -0
  124. package/dist/utils/defenderStore.d.ts.map +1 -0
  125. package/dist/utils/defenderStore.js +92 -0
  126. package/dist/utils/defenderStore.js.map +1 -0
  127. package/dist/utils/diamondAbiGenerator.d.ts +113 -0
  128. package/dist/utils/diamondAbiGenerator.d.ts.map +1 -0
  129. package/dist/utils/diamondAbiGenerator.js +415 -0
  130. package/dist/utils/diamondAbiGenerator.js.map +1 -0
  131. package/dist/utils/diffDeployedFacets.d.ts +26 -0
  132. package/dist/utils/diffDeployedFacets.d.ts.map +1 -0
  133. package/dist/utils/diffDeployedFacets.js +106 -0
  134. package/dist/utils/diffDeployedFacets.js.map +1 -0
  135. package/dist/utils/index.d.ts +16 -0
  136. package/dist/utils/index.d.ts.map +1 -0
  137. package/dist/utils/index.js +35 -0
  138. package/dist/utils/index.js.map +1 -0
  139. package/dist/utils/loupe.d.ts +44 -0
  140. package/dist/utils/loupe.d.ts.map +1 -0
  141. package/dist/utils/loupe.js +128 -0
  142. package/dist/utils/loupe.js.map +1 -0
  143. package/dist/utils/rpcStore.d.ts +36 -0
  144. package/dist/utils/rpcStore.d.ts.map +1 -0
  145. package/dist/utils/rpcStore.js +166 -0
  146. package/dist/utils/rpcStore.js.map +1 -0
  147. package/dist/utils/signer.d.ts +36 -0
  148. package/dist/utils/signer.d.ts.map +1 -0
  149. package/dist/utils/signer.js +91 -0
  150. package/dist/utils/signer.js.map +1 -0
  151. package/dist/utils/txlogging.d.ts +13 -0
  152. package/dist/utils/txlogging.d.ts.map +1 -0
  153. package/dist/utils/txlogging.js +87 -0
  154. package/dist/utils/txlogging.js.map +1 -0
  155. package/dist/utils/workspaceSetup.d.ts +32 -0
  156. package/dist/utils/workspaceSetup.d.ts.map +1 -0
  157. package/dist/utils/workspaceSetup.js +311 -0
  158. package/dist/utils/workspaceSetup.js.map +1 -0
  159. package/docs/DIAMOND_ABI_CONFIGURATION_SUMMARY.md +40 -0
  160. package/docs/DIAMOND_ABI_GENERATION.md +220 -0
  161. package/docs/DIAMOND_ABI_GENERATOR_EXAMPLES.md +1204 -0
  162. package/docs/DIAMOND_ABI_GENERATOR_IMPLEMENTATION.md +947 -0
  163. package/docs/DIAMOND_ABI_GENERATOR_QUICK_REFERENCE.md +336 -0
  164. package/docs/README-DEFENDER.md +394 -0
  165. package/docs/README_DIAMOND_ABI_GENERATOR.md +303 -0
  166. package/docs/ROADMAP.md +250 -0
  167. package/docs/assets/image.png +0 -0
  168. package/docs/defender-integration.md +451 -0
  169. package/docs/diamond_module-BaseStrategy_design-v2.uxf +247 -0
  170. package/docs/diamond_module-BaseStrategy_design.uxf +272 -0
  171. package/docs/monitoring-troubleshooting.md +556 -0
  172. package/docs/testing-guide.md +713 -0
  173. package/examples/Diamond_Config_and_Deployment_examples/diamonds/ProxyDiamond/callbacks/ERC20ProxyFacet.ts +31 -0
  174. package/examples/Diamond_Config_and_Deployment_examples/diamonds/ProxyDiamond/proxydiamond.config.json +27 -0
  175. package/examples/Local_Hardhat_Deployer_Script_example/LocalDiamondDeployer.ts +180 -0
  176. package/examples/OZ_Defender_Deployer_Script_example/OZDiamondDeployer.ts +107 -0
  177. package/examples/OZ_Defender_Deployer_Script_example/run-oz-deploy.ts +17 -0
  178. package/examples/Test_examples/ProxyDiamondDeployment.test.ts +202 -0
  179. package/examples/defender-deployment/.env.example +35 -0
  180. package/examples/defender-deployment/README.md +415 -0
  181. package/examples/defender-deployment/contracts/ExampleDiamond.sol +41 -0
  182. package/examples/defender-deployment/contracts/ExampleFacet1.sol +84 -0
  183. package/examples/defender-deployment/contracts/ExampleFacet2.sol +104 -0
  184. package/examples/defender-deployment/contracts/UpgradeFacet.sol +92 -0
  185. package/examples/defender-deployment/deploy-script.ts +170 -0
  186. package/examples/defender-deployment/diamond-config.json +36 -0
  187. package/examples/defender-deployment/upgrade-script.ts +237 -0
  188. package/examples/hardhat-diamonds-config.example.ts +41 -0
  189. package/package.json +228 -0
  190. package/src/core/CallbackManager.ts +70 -0
  191. package/src/core/DeploymentManager.ts +64 -0
  192. package/src/core/Diamond.ts +197 -0
  193. package/src/core/DiamondDeployer.ts +36 -0
  194. package/src/core/index.ts +4 -0
  195. package/src/index.ts +5 -0
  196. package/src/repositories/DBDeploymentRepository.ts +22 -0
  197. package/src/repositories/DeploymentRepository.ts +12 -0
  198. package/src/repositories/FileDeploymentRepository.ts +67 -0
  199. package/src/repositories/databaseHandler.ts +14 -0
  200. package/src/repositories/index.ts +4 -0
  201. package/src/repositories/jsonFileHandler.ts +252 -0
  202. package/src/repositories/prismaDBHandler.ts +10 -0
  203. package/src/schemas/DeploymentSchema.ts +71 -0
  204. package/src/schemas/index.ts +1 -0
  205. package/src/strategies/BaseDeploymentStrategy.ts +649 -0
  206. package/src/strategies/DeploymentStrategy.ts +25 -0
  207. package/src/strategies/LocalDeploymentStrategy.ts +5 -0
  208. package/src/strategies/OZDefenderDeploymentStrategy.ts +849 -0
  209. package/src/strategies/RPCDeploymentStrategy.ts +881 -0
  210. package/src/strategies/index.ts +5 -0
  211. package/src/types/config.ts +34 -0
  212. package/src/types/defender.ts +24 -0
  213. package/src/types/deployments.ts +102 -0
  214. package/src/types/index.ts +4 -0
  215. package/src/types/rpc.ts +37 -0
  216. package/src/utils/common.ts +54 -0
  217. package/src/utils/configurationResolver.ts +141 -0
  218. package/src/utils/contractMapping.ts +220 -0
  219. package/src/utils/defenderClients.ts +22 -0
  220. package/src/utils/defenderStore.ts +62 -0
  221. package/src/utils/diamondAbiGenerator.ts +523 -0
  222. package/src/utils/diffDeployedFacets.ts +131 -0
  223. package/src/utils/index.ts +15 -0
  224. package/src/utils/loupe.ts +159 -0
  225. package/src/utils/rpcStore.ts +152 -0
  226. package/src/utils/signer.ts +93 -0
  227. package/src/utils/txlogging.ts +97 -0
  228. package/src/utils/workspaceSetup.ts +315 -0
  229. package/test/README.md +136 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OZDefenderDeploymentStrategy.js","sourceRoot":"","sources":["../../src/strategies/OZDefenderDeploymentStrategy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,139 @@
1
+ import { JsonRpcProvider, Signer } from "ethers";
2
+ import { Diamond } from "../core/Diamond";
3
+ import { BaseDeploymentStrategy } from "./BaseDeploymentStrategy";
4
+ /**
5
+ * Error classes for RPC-specific failures
6
+ */
7
+ export declare class RPCConnectionError extends Error {
8
+ readonly originalError?: Error | undefined;
9
+ constructor(message: string, originalError?: Error | undefined);
10
+ }
11
+ export declare class TransactionFailedError extends Error {
12
+ readonly txHash?: string | undefined;
13
+ readonly originalError?: Error | undefined;
14
+ constructor(message: string, txHash?: string | undefined, originalError?: Error | undefined);
15
+ }
16
+ export declare class GasEstimationError extends Error {
17
+ readonly originalError?: Error | undefined;
18
+ constructor(message: string, originalError?: Error | undefined);
19
+ }
20
+ export declare class ContractDeploymentError extends Error {
21
+ readonly contractName?: string | undefined;
22
+ readonly originalError?: Error | undefined;
23
+ constructor(message: string, contractName?: string | undefined, originalError?: Error | undefined);
24
+ }
25
+ /**
26
+ * RPC Deployment Strategy for direct blockchain interaction
27
+ *
28
+ * This strategy enables direct RPC communication with blockchain networks
29
+ * for contract deployment, diamond cuts, and callback execution without
30
+ * relying on Hardhat's deployment abstractions.
31
+ */
32
+ export declare class RPCDeploymentStrategy extends BaseDeploymentStrategy {
33
+ private rpcUrl;
34
+ private privateKey;
35
+ private provider;
36
+ private signer;
37
+ private gasLimitMultiplier;
38
+ private maxRetries;
39
+ private retryDelayMs;
40
+ private store?;
41
+ /**
42
+ * Creates a new RPC Deployment Strategy
43
+ *
44
+ * @param rpcUrl - The RPC endpoint URL
45
+ * @param privateKey - The deployer's private key (0x prefixed)
46
+ * @param gasLimitMultiplier - Multiplier for gas limit estimates (default: 1.2)
47
+ * @param maxRetries - Maximum number of retries for failed operations (default: 3)
48
+ * @param retryDelayMs - Delay between retries in milliseconds (default: 2000)
49
+ * @param verbose - Enable verbose logging (default: false)
50
+ */
51
+ constructor(rpcUrl: string, privateKey: string, gasLimitMultiplier?: number, maxRetries?: number, retryDelayMs?: number, verbose?: boolean);
52
+ /**
53
+ * Initialize step tracking store for deployment
54
+ */
55
+ private initializeStore;
56
+ /**
57
+ * Save a deployment step with tracking
58
+ */
59
+ private saveStep;
60
+ /**
61
+ * Update step status with transaction details
62
+ */
63
+ private updateStepStatus;
64
+ /**
65
+ * Check if a step is already completed
66
+ */
67
+ private isStepCompleted;
68
+ /**
69
+ * Skip a step that's already completed
70
+ */
71
+ private skipCompletedStep;
72
+ /**
73
+ * Resolve diamond contract name handling multiple artifacts issue
74
+ */
75
+ private resolveDiamondContractName;
76
+ /**
77
+ * Validates constructor inputs
78
+ */
79
+ private validateConstructorInputs;
80
+ /**
81
+ * Retry wrapper for operations that may fail due to network issues
82
+ */
83
+ private withRetry;
84
+ /**
85
+ * Estimates gas for a transaction with safety multiplier
86
+ */
87
+ private estimateGasWithMultiplier;
88
+ /**
89
+ * Gets current gas price with optional premium
90
+ */
91
+ private getGasPrice;
92
+ /**
93
+ * Deploys a contract using RPC
94
+ */
95
+ private deployContract;
96
+ /**
97
+ * Override deployDiamondTasks to use RPC instead of Hardhat
98
+ */
99
+ protected deployDiamondTasks(diamond: Diamond): Promise<void>;
100
+ /**
101
+ * Override deployFacetsTasks to use RPC instead of Hardhat
102
+ */
103
+ protected deployFacetsTasks(diamond: Diamond): Promise<void>;
104
+ /**
105
+ * Override performDiamondCutTasks to use RPC instead of Hardhat
106
+ */
107
+ protected performDiamondCutTasks(diamond: Diamond): Promise<void>;
108
+ /**
109
+ * Executes initializer functions for deployed facets
110
+ */
111
+ private executeInitializerFunctions;
112
+ /**
113
+ * Checks network connection and validates signer
114
+ */
115
+ validateConnection(): Promise<void>;
116
+ /**
117
+ * Gets the provider instance
118
+ */
119
+ getProvider(): JsonRpcProvider;
120
+ /**
121
+ * Gets the signer instance
122
+ */
123
+ getSigner(): Signer;
124
+ /**
125
+ * Gets deployment strategy configuration
126
+ */
127
+ getConfig(): {
128
+ rpcUrl: string;
129
+ signerAddress: Promise<string>;
130
+ gasLimitMultiplier: number;
131
+ maxRetries: number;
132
+ retryDelayMs: number;
133
+ verbose: boolean;
134
+ };
135
+ preDeployDiamond(diamond: Diamond): Promise<void>;
136
+ protected preDeployFacetsTasks(diamond: Diamond): Promise<void>;
137
+ protected prePerformDiamondCutTasks(diamond: Diamond): Promise<void>;
138
+ }
139
+ //# sourceMappingURL=RPCDeploymentStrategy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RPCDeploymentStrategy.d.ts","sourceRoot":"","sources":["../../src/strategies/RPCDeploymentStrategy.ts"],"names":[],"mappings":"AACA,OAAO,EAAqC,eAAe,EAAc,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChG,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAU1C,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;aACE,aAAa,CAAC,EAAE,KAAK;gBAAtD,OAAO,EAAE,MAAM,EAAkB,aAAa,CAAC,EAAE,KAAK,YAAA;CAInE;AAED,qBAAa,sBAAuB,SAAQ,KAAK;aACF,MAAM,CAAC,EAAE,MAAM;aAAkB,aAAa,CAAC,EAAE,KAAK;gBAAvF,OAAO,EAAE,MAAM,EAAkB,MAAM,CAAC,EAAE,MAAM,YAAA,EAAkB,aAAa,CAAC,EAAE,KAAK,YAAA;CAIpG;AAED,qBAAa,kBAAmB,SAAQ,KAAK;aACE,aAAa,CAAC,EAAE,KAAK;gBAAtD,OAAO,EAAE,MAAM,EAAkB,aAAa,CAAC,EAAE,KAAK,YAAA;CAInE;AAED,qBAAa,uBAAwB,SAAQ,KAAK;aACH,YAAY,CAAC,EAAE,MAAM;aAAkB,aAAa,CAAC,EAAE,KAAK;gBAA7F,OAAO,EAAE,MAAM,EAAkB,YAAY,CAAC,EAAE,MAAM,YAAA,EAAkB,aAAa,CAAC,EAAE,KAAK,YAAA;CAI1G;AAED;;;;;;GAMG;AACH,qBAAa,qBAAsB,SAAQ,sBAAsB;IAmB7D,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,UAAU;IAnBpB,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,KAAK,CAAC,CAAqB;IAEnC;;;;;;;;;OASG;gBAEO,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAC1B,kBAAkB,GAAE,MAAY,EAChC,UAAU,GAAE,MAAU,EACtB,YAAY,GAAE,MAAa,EAC3B,OAAO,GAAE,OAAe;IAqB1B;;OAEG;YACW,eAAe;IA4B7B;;OAEG;IACH,OAAO,CAAC,QAAQ;IAkBhB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAyBxB;;OAEG;IACH,OAAO,CAAC,eAAe;IAIvB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAUzB;;OAEG;YACW,0BAA0B;IA4BxC;;OAEG;IACH,OAAO,CAAC,yBAAyB;IA4BjC;;OAEG;YACW,SAAS;IAqCvB;;OAEG;YACW,yBAAyB;IAsBvC;;OAEG;YACW,WAAW;IA0BzB;;OAEG;YACW,cAAc;IAiE5B;;OAEG;cACa,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IA6GnE;;OAEG;cACa,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAqFlE;;OAEG;cACa,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IA4GvE;;OAEG;YACW,2BAA2B;IAwDzC;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAyBzC;;OAEG;IACH,WAAW,IAAI,eAAe;IAI9B;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;OAEG;IACH,SAAS;;;;;;;;IAYH,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;cAKvC,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;cAcrD,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAa3E"}