@gzeoneth/gov-tracker 0.1.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 (203) hide show
  1. package/LICENSE +191 -0
  2. package/README.md +201 -0
  3. package/dist/abis.d.ts +79 -0
  4. package/dist/abis.d.ts.map +1 -0
  5. package/dist/abis.js +159 -0
  6. package/dist/abis.js.map +1 -0
  7. package/dist/cli/lib/cli.d.ts +92 -0
  8. package/dist/cli/lib/cli.d.ts.map +1 -0
  9. package/dist/cli/lib/cli.js +562 -0
  10. package/dist/cli/lib/cli.js.map +1 -0
  11. package/dist/cli/lib/election-check.d.ts +46 -0
  12. package/dist/cli/lib/election-check.d.ts.map +1 -0
  13. package/dist/cli/lib/election-check.js +136 -0
  14. package/dist/cli/lib/election-check.js.map +1 -0
  15. package/dist/cli/lib/json-state.d.ts +100 -0
  16. package/dist/cli/lib/json-state.d.ts.map +1 -0
  17. package/dist/cli/lib/json-state.js +225 -0
  18. package/dist/cli/lib/json-state.js.map +1 -0
  19. package/dist/cli/monitor.d.ts +3 -0
  20. package/dist/cli/monitor.d.ts.map +1 -0
  21. package/dist/cli/monitor.js +442 -0
  22. package/dist/cli/monitor.js.map +1 -0
  23. package/dist/constants.d.ts +235 -0
  24. package/dist/constants.d.ts.map +1 -0
  25. package/dist/constants.js +293 -0
  26. package/dist/constants.js.map +1 -0
  27. package/dist/discovery/governor-discovery.d.ts +84 -0
  28. package/dist/discovery/governor-discovery.d.ts.map +1 -0
  29. package/dist/discovery/governor-discovery.js +310 -0
  30. package/dist/discovery/governor-discovery.js.map +1 -0
  31. package/dist/discovery/security-council.d.ts +68 -0
  32. package/dist/discovery/security-council.d.ts.map +1 -0
  33. package/dist/discovery/security-council.js +181 -0
  34. package/dist/discovery/security-council.js.map +1 -0
  35. package/dist/discovery/timelock-discovery.d.ts +99 -0
  36. package/dist/discovery/timelock-discovery.d.ts.map +1 -0
  37. package/dist/discovery/timelock-discovery.js +322 -0
  38. package/dist/discovery/timelock-discovery.js.map +1 -0
  39. package/dist/election.d.ts +172 -0
  40. package/dist/election.d.ts.map +1 -0
  41. package/dist/election.js +464 -0
  42. package/dist/election.js.map +1 -0
  43. package/dist/index.d.ts +56 -0
  44. package/dist/index.d.ts.map +1 -0
  45. package/dist/index.js +164 -0
  46. package/dist/index.js.map +1 -0
  47. package/dist/stages/base.d.ts +127 -0
  48. package/dist/stages/base.d.ts.map +1 -0
  49. package/dist/stages/base.js +280 -0
  50. package/dist/stages/base.js.map +1 -0
  51. package/dist/stages/l2-to-l1-message.d.ts +108 -0
  52. package/dist/stages/l2-to-l1-message.d.ts.map +1 -0
  53. package/dist/stages/l2-to-l1-message.js +422 -0
  54. package/dist/stages/l2-to-l1-message.js.map +1 -0
  55. package/dist/stages/proposal-created.d.ts +20 -0
  56. package/dist/stages/proposal-created.d.ts.map +1 -0
  57. package/dist/stages/proposal-created.js +62 -0
  58. package/dist/stages/proposal-created.js.map +1 -0
  59. package/dist/stages/proposal-queued.d.ts +39 -0
  60. package/dist/stages/proposal-queued.d.ts.map +1 -0
  61. package/dist/stages/proposal-queued.js +131 -0
  62. package/dist/stages/proposal-queued.js.map +1 -0
  63. package/dist/stages/retryables.d.ts +79 -0
  64. package/dist/stages/retryables.d.ts.map +1 -0
  65. package/dist/stages/retryables.js +307 -0
  66. package/dist/stages/retryables.js.map +1 -0
  67. package/dist/stages/stage-builder.d.ts +46 -0
  68. package/dist/stages/stage-builder.d.ts.map +1 -0
  69. package/dist/stages/stage-builder.js +87 -0
  70. package/dist/stages/stage-builder.js.map +1 -0
  71. package/dist/stages/timelock.d.ts +100 -0
  72. package/dist/stages/timelock.d.ts.map +1 -0
  73. package/dist/stages/timelock.js +552 -0
  74. package/dist/stages/timelock.js.map +1 -0
  75. package/dist/stages/voting.d.ts +18 -0
  76. package/dist/stages/voting.d.ts.map +1 -0
  77. package/dist/stages/voting.js +109 -0
  78. package/dist/stages/voting.js.map +1 -0
  79. package/dist/tracker/context.d.ts +111 -0
  80. package/dist/tracker/context.d.ts.map +1 -0
  81. package/dist/tracker/context.js +264 -0
  82. package/dist/tracker/context.js.map +1 -0
  83. package/dist/tracker/discovery.d.ts +89 -0
  84. package/dist/tracker/discovery.d.ts.map +1 -0
  85. package/dist/tracker/discovery.js +228 -0
  86. package/dist/tracker/discovery.js.map +1 -0
  87. package/dist/tracker/execute.d.ts +44 -0
  88. package/dist/tracker/execute.d.ts.map +1 -0
  89. package/dist/tracker/execute.js +126 -0
  90. package/dist/tracker/execute.js.map +1 -0
  91. package/dist/tracker/index.d.ts +18 -0
  92. package/dist/tracker/index.d.ts.map +1 -0
  93. package/dist/tracker/index.js +70 -0
  94. package/dist/tracker/index.js.map +1 -0
  95. package/dist/tracker/pipeline.d.ts +47 -0
  96. package/dist/tracker/pipeline.d.ts.map +1 -0
  97. package/dist/tracker/pipeline.js +299 -0
  98. package/dist/tracker/pipeline.js.map +1 -0
  99. package/dist/tracker/query.d.ts +45 -0
  100. package/dist/tracker/query.d.ts.map +1 -0
  101. package/dist/tracker/query.js +159 -0
  102. package/dist/tracker/query.js.map +1 -0
  103. package/dist/tracker/state.d.ts +104 -0
  104. package/dist/tracker/state.d.ts.map +1 -0
  105. package/dist/tracker/state.js +287 -0
  106. package/dist/tracker/state.js.map +1 -0
  107. package/dist/tracker.d.ts +261 -0
  108. package/dist/tracker.d.ts.map +1 -0
  109. package/dist/tracker.js +556 -0
  110. package/dist/tracker.js.map +1 -0
  111. package/dist/types/config.d.ts +81 -0
  112. package/dist/types/config.d.ts.map +1 -0
  113. package/dist/types/config.js +6 -0
  114. package/dist/types/config.js.map +1 -0
  115. package/dist/types/core.d.ts +51 -0
  116. package/dist/types/core.d.ts.map +1 -0
  117. package/dist/types/core.js +6 -0
  118. package/dist/types/core.js.map +1 -0
  119. package/dist/types/cross-chain.d.ts +80 -0
  120. package/dist/types/cross-chain.d.ts.map +1 -0
  121. package/dist/types/cross-chain.js +6 -0
  122. package/dist/types/cross-chain.js.map +1 -0
  123. package/dist/types/election.d.ts +59 -0
  124. package/dist/types/election.d.ts.map +1 -0
  125. package/dist/types/election.js +6 -0
  126. package/dist/types/election.js.map +1 -0
  127. package/dist/types/governor.d.ts +71 -0
  128. package/dist/types/governor.d.ts.map +1 -0
  129. package/dist/types/governor.js +6 -0
  130. package/dist/types/governor.js.map +1 -0
  131. package/dist/types/index.d.ts +22 -0
  132. package/dist/types/index.d.ts.map +1 -0
  133. package/dist/types/index.js +21 -0
  134. package/dist/types/index.js.map +1 -0
  135. package/dist/types/stages.d.ts +189 -0
  136. package/dist/types/stages.d.ts.map +1 -0
  137. package/dist/types/stages.js +23 -0
  138. package/dist/types/stages.js.map +1 -0
  139. package/dist/types/timelock.d.ts +108 -0
  140. package/dist/types/timelock.d.ts.map +1 -0
  141. package/dist/types/timelock.js +6 -0
  142. package/dist/types/timelock.js.map +1 -0
  143. package/dist/types/tracking.d.ts +180 -0
  144. package/dist/types/tracking.d.ts.map +1 -0
  145. package/dist/types/tracking.js +6 -0
  146. package/dist/types/tracking.js.map +1 -0
  147. package/dist/types.d.ts +6 -0
  148. package/dist/types.d.ts.map +1 -0
  149. package/dist/types.js +22 -0
  150. package/dist/types.js.map +1 -0
  151. package/dist/utils/chain.d.ts +18 -0
  152. package/dist/utils/chain.d.ts.map +1 -0
  153. package/dist/utils/chain.js +34 -0
  154. package/dist/utils/chain.js.map +1 -0
  155. package/dist/utils/log-filters.d.ts +67 -0
  156. package/dist/utils/log-filters.d.ts.map +1 -0
  157. package/dist/utils/log-filters.js +116 -0
  158. package/dist/utils/log-filters.js.map +1 -0
  159. package/dist/utils/log-search.d.ts +76 -0
  160. package/dist/utils/log-search.d.ts.map +1 -0
  161. package/dist/utils/log-search.js +142 -0
  162. package/dist/utils/log-search.js.map +1 -0
  163. package/dist/utils/logger.d.ts +41 -0
  164. package/dist/utils/logger.d.ts.map +1 -0
  165. package/dist/utils/logger.js +50 -0
  166. package/dist/utils/logger.js.map +1 -0
  167. package/dist/utils/operation-id.d.ts +48 -0
  168. package/dist/utils/operation-id.d.ts.map +1 -0
  169. package/dist/utils/operation-id.js +102 -0
  170. package/dist/utils/operation-id.js.map +1 -0
  171. package/dist/utils/rpc-utils.d.ts +30 -0
  172. package/dist/utils/rpc-utils.d.ts.map +1 -0
  173. package/dist/utils/rpc-utils.js +99 -0
  174. package/dist/utils/rpc-utils.js.map +1 -0
  175. package/dist/utils/salt-computation.d.ts +78 -0
  176. package/dist/utils/salt-computation.d.ts.map +1 -0
  177. package/dist/utils/salt-computation.js +132 -0
  178. package/dist/utils/salt-computation.js.map +1 -0
  179. package/dist/utils/salt-resolver.d.ts +63 -0
  180. package/dist/utils/salt-resolver.d.ts.map +1 -0
  181. package/dist/utils/salt-resolver.js +144 -0
  182. package/dist/utils/salt-resolver.js.map +1 -0
  183. package/dist/utils/scoped-logger.d.ts +43 -0
  184. package/dist/utils/scoped-logger.d.ts.map +1 -0
  185. package/dist/utils/scoped-logger.js +72 -0
  186. package/dist/utils/scoped-logger.js.map +1 -0
  187. package/dist/utils/stage-helpers.d.ts +51 -0
  188. package/dist/utils/stage-helpers.d.ts.map +1 -0
  189. package/dist/utils/stage-helpers.js +143 -0
  190. package/dist/utils/stage-helpers.js.map +1 -0
  191. package/dist/utils/stage-metadata.d.ts +62 -0
  192. package/dist/utils/stage-metadata.d.ts.map +1 -0
  193. package/dist/utils/stage-metadata.js +140 -0
  194. package/dist/utils/stage-metadata.js.map +1 -0
  195. package/dist/utils/timing.d.ts +115 -0
  196. package/dist/utils/timing.d.ts.map +1 -0
  197. package/dist/utils/timing.js +303 -0
  198. package/dist/utils/timing.js.map +1 -0
  199. package/dist/utils/urls.d.ts +20 -0
  200. package/dist/utils/urls.d.ts.map +1 -0
  201. package/dist/utils/urls.js +51 -0
  202. package/dist/utils/urls.js.map +1 -0
  203. package/package.json +72 -0
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ /**
3
+ * Fluent API for constructing TrackedStage objects
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.StageBuilder = void 0;
7
+ class StageBuilder {
8
+ constructor(type, chain, status = "NOT_STARTED") {
9
+ this._stage = {
10
+ type,
11
+ status,
12
+ chain,
13
+ transactions: [],
14
+ data: {},
15
+ executable: false,
16
+ };
17
+ }
18
+ /**
19
+ * Set stage status
20
+ */
21
+ status(status) {
22
+ this._stage.status = status;
23
+ this._stage.executable = status === "READY";
24
+ return this;
25
+ }
26
+ /**
27
+ * Add data to the stage (merges with existing data)
28
+ */
29
+ data(data) {
30
+ this._stage.data = { ...this._stage.data, ...data };
31
+ return this;
32
+ }
33
+ /**
34
+ * Set timing information (merges with existing timing)
35
+ */
36
+ timing(timing) {
37
+ this._stage.timing = { ...this._stage.timing, ...timing };
38
+ return this;
39
+ }
40
+ /**
41
+ * Add a transaction to the stage
42
+ */
43
+ tx(hash, blockNumber, chain, options = {}) {
44
+ const tx = { hash, blockNumber, chain };
45
+ if (options.timestamp !== undefined)
46
+ tx.timestamp = options.timestamp;
47
+ if (options.logIndex !== undefined)
48
+ tx.logIndex = options.logIndex;
49
+ if (options.targetChain !== undefined)
50
+ tx.targetChain = options.targetChain;
51
+ if (options.description !== undefined)
52
+ tx.description = options.description;
53
+ this._stage.transactions = [...this._stage.transactions, tx];
54
+ return this;
55
+ }
56
+ /**
57
+ * Mark stage as skipped with reason
58
+ */
59
+ skip(reason) {
60
+ this._stage.status = "SKIPPED";
61
+ this._stage.executable = false;
62
+ this._stage.data = { ...this._stage.data, skipReason: reason };
63
+ return this;
64
+ }
65
+ /**
66
+ * Set transactions directly (for merging from multiple sources)
67
+ */
68
+ transactions(txs) {
69
+ this._stage.transactions = txs;
70
+ return this;
71
+ }
72
+ /**
73
+ * Set executable flag directly
74
+ */
75
+ executable(value) {
76
+ this._stage.executable = value;
77
+ return this;
78
+ }
79
+ /**
80
+ * Build and return the final stage object
81
+ */
82
+ build() {
83
+ return { ...this._stage };
84
+ }
85
+ }
86
+ exports.StageBuilder = StageBuilder;
87
+ //# sourceMappingURL=stage-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stage-builder.js","sourceRoot":"","sources":["../../src/stages/stage-builder.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAaH,MAAa,YAAY;IAGvB,YAAY,IAAe,EAAE,KAAgB,EAAE,SAAsB,aAAa;QAChF,IAAI,CAAC,MAAM,GAAG;YACZ,IAAI;YACJ,MAAM;YACN,KAAK;YACL,YAAY,EAAE,EAAE;YAChB,IAAI,EAAE,EAAE;YACR,UAAU,EAAE,KAAK;SAClB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,MAAmB;QACxB,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;QAC5B,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,MAAM,KAAK,OAAO,CAAC;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,IAAsB;QACzB,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC;QACpD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,MAA4B;QACjC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;QAC1D,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,EAAE,CACA,IAAY,EACZ,WAAmB,EACnB,KAAgB,EAChB,UAKI,EAAE;QAEN,MAAM,EAAE,GAAqB,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;QAC1D,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS;YAAE,EAAE,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACtE,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS;YAAE,EAAE,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACnE,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS;YAAE,EAAE,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QAC5E,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS;YAAE,EAAE,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QAC5E,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,MAAc;QACjB,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC;QAC/B,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC;QAC/B,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;QAC/D,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,GAAuB;QAClC,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,GAAG,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,KAAc;QACvB,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,KAAK;QACH,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;CACF;AA9FD,oCA8FC"}
@@ -0,0 +1,100 @@
1
+ /**
2
+ * Unified Timelock Stage Tracking and Preparation
3
+ *
4
+ * Handles both L1 and L2 timelock operations with chain-specific configurations.
5
+ * L2-specific: Security Council detection and enrichment
6
+ * L1-specific: Operation ID discovery from OutBox execution
7
+ */
8
+ import { ethers, BigNumber } from "ethers";
9
+ import { TrackedStage, TrackedStageData, TimelockState, CallScheduledData, OperationState, ChainType, StageType, PrepareResult, PrepareOptions, TimelockParams, TimelockBatchParams } from "../types";
10
+ /**
11
+ * Configuration for timelock tracking that differs between L1 and L2.
12
+ */
13
+ export interface TimelockTrackingConfig {
14
+ chain: ChainType;
15
+ stageType: StageType;
16
+ blockTimeSeconds: number;
17
+ logPrefix: string;
18
+ }
19
+ /**
20
+ * Options for timelock stage tracking.
21
+ */
22
+ export interface TrackTimelockOptions {
23
+ callScheduledData?: CallScheduledData;
24
+ cachedExecutionTxHash?: string;
25
+ /** Whether to check for Security Council enrichment (L2 only) */
26
+ checkSecurityCouncil?: boolean;
27
+ additionalPayload?: Record<string, unknown>;
28
+ /** All tracked stages (used for salt computation from other stages) */
29
+ allStages?: TrackedStage[];
30
+ }
31
+ /**
32
+ * Result from timelock stage tracking.
33
+ */
34
+ export interface TimelockStageResult {
35
+ stage: TrackedStage;
36
+ timelockState: TimelockState | null;
37
+ operationState: OperationState | null;
38
+ executionTxHash: string | null;
39
+ executionBlock: number | null;
40
+ }
41
+ /**
42
+ * Result from L1 timelock tracking (extends base result with L1-specific fields).
43
+ */
44
+ export interface L1TimelockResult extends TimelockStageResult {
45
+ l1OperationId: string | null;
46
+ l1ScheduleTxHash: string | null;
47
+ l1ScheduleBlock: number | null;
48
+ }
49
+ /**
50
+ * Find L1 operation ID from a known OutBox execution transaction.
51
+ */
52
+ export declare function findL1OperationIdFromTx(outboxTxHash: string, outboxTxBlock: number, l1Provider: ethers.providers.Provider): Promise<{
53
+ l1OperationId: string | null;
54
+ l1ScheduleTxHash: string;
55
+ l1ScheduleBlock: number;
56
+ }>;
57
+ /**
58
+ * Track L2 timelock stage (Stage 4)
59
+ */
60
+ export declare function trackL2Timelock(timelockAddress: string, operationId: string, provider: ethers.providers.Provider, fromBlock: number, callScheduledData: CallScheduledData, options?: {
61
+ cachedExecutionTxHash?: string;
62
+ allStages?: TrackedStage[];
63
+ }): Promise<TimelockStageResult>;
64
+ /**
65
+ * Track L1 timelock stage (Stage 6)
66
+ */
67
+ export declare function trackL1Timelock(l1Provider: ethers.providers.Provider, options?: {
68
+ outboxExecutionTx?: {
69
+ hash: string;
70
+ blockNumber: number;
71
+ } | null;
72
+ fromBlock?: number;
73
+ knownL1OperationId?: string;
74
+ allStages?: TrackedStage[];
75
+ }): Promise<L1TimelockResult>;
76
+ /**
77
+ * Calculate retryable execution value for L1 timelock operations.
78
+ */
79
+ export declare function calculateRetryableExecutionValue(_timelockAddress: string, target: string, data: string, provider: ethers.providers.Provider): Promise<BigNumber | null>;
80
+ /**
81
+ * Calculate batch retryable values for L1 timelock.
82
+ */
83
+ export declare function calculateBatchRetryableValues(timelockAddress: string, targets: string[], values: BigNumber[], payloads: string[], provider: ethers.providers.Provider): Promise<BigNumber[]>;
84
+ /**
85
+ * Prepare a single timelock operation for execution.
86
+ */
87
+ export declare function prepareTimelockOperation(timelockAddress: string, params: TimelockParams, operationId: string, stageData: TrackedStageData, provider: ethers.providers.Provider, options?: PrepareOptions): Promise<PrepareResult>;
88
+ /**
89
+ * Prepare a batch timelock operation for execution.
90
+ */
91
+ export declare function prepareTimelockBatch(timelockAddress: string, params: TimelockBatchParams, operationId: string, stageData: TrackedStageData, provider: ethers.providers.Provider, options?: PrepareOptions): Promise<PrepareResult>;
92
+ /**
93
+ * Prepare a timelock stage for execution (auto-detects single vs batch).
94
+ *
95
+ * @param stage - The timelock stage to prepare (salt should be pre-computed in stage.data)
96
+ * @param provider - Provider for the chain where timelock is deployed
97
+ * @param options - Preparation options (can override salt with options.salt)
98
+ */
99
+ export declare function prepareTimelockStage(stage: TrackedStage, provider: ethers.providers.Provider, options?: PrepareOptions): Promise<PrepareResult>;
100
+ //# sourceMappingURL=timelock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timelock.d.ts","sourceRoot":"","sources":["../../src/stages/timelock.ts"],"names":[],"mappings":"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"}