@reclaimprotocol/attestor-core 4.0.1 → 4.0.3

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 (42) hide show
  1. package/lib/client/create-claim.js +10 -6
  2. package/lib/client/utils/client-socket.d.ts +2 -2
  3. package/lib/client/utils/client-socket.js +14 -8
  4. package/lib/client/utils/message-handler.js +4 -3
  5. package/lib/config/index.d.ts +1 -0
  6. package/lib/config/index.js +3 -2
  7. package/lib/index.d.ts +1 -0
  8. package/lib/index.js +2 -1
  9. package/lib/mechain/abis/governanceABI.d.ts +50 -0
  10. package/lib/mechain/abis/governanceABI.js +462 -0
  11. package/lib/mechain/abis/taskABI.d.ts +157 -0
  12. package/lib/mechain/abis/taskABI.js +513 -0
  13. package/lib/mechain/client/create-claim-on-mechain.d.ts +10 -0
  14. package/lib/mechain/client/create-claim-on-mechain.js +32 -0
  15. package/lib/mechain/client/index.d.ts +1 -0
  16. package/lib/mechain/client/index.js +18 -0
  17. package/lib/mechain/constants/index.d.ts +3 -0
  18. package/lib/mechain/constants/index.js +7 -0
  19. package/lib/mechain/index.d.ts +2 -0
  20. package/lib/mechain/index.js +19 -0
  21. package/lib/mechain/types/index.d.ts +23 -0
  22. package/lib/mechain/types/index.js +3 -0
  23. package/lib/proto/api.d.ts +15 -0
  24. package/lib/proto/api.js +188 -2
  25. package/lib/providers/http/index.js +3 -3
  26. package/lib/server/handlers/createTaskOnMechain.d.ts +2 -0
  27. package/lib/server/handlers/createTaskOnMechain.js +52 -0
  28. package/lib/server/handlers/index.js +3 -1
  29. package/lib/server/socket.js +8 -9
  30. package/lib/tests/test.http-provider-utils.js +2 -2
  31. package/lib/types/client.d.ts +2 -2
  32. package/lib/utils/atomic-operations.d.ts +24 -0
  33. package/lib/utils/atomic-operations.js +65 -0
  34. package/lib/utils/connection-state-machine.d.ts +43 -0
  35. package/lib/utils/connection-state-machine.js +129 -0
  36. package/lib/utils/http-parser.js +3 -2
  37. package/lib/utils/resource-monitor.d.ts +61 -0
  38. package/lib/utils/resource-monitor.js +107 -0
  39. package/lib/utils/socket-base.js +2 -1
  40. package/lib/window-rpc/setup-window-rpc.js +32 -1
  41. package/lib/window-rpc/types.d.ts +14 -1
  42. package/package.json +1 -1
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ /**
3
+ * Atomic operations utility for preventing race conditions.
4
+ * Provides mutex-like locks using Promise-based mutual exclusion.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.AtomicOperations = void 0;
8
+ class AtomicOperations {
9
+ /**
10
+ * Execute a function with a named lock to prevent concurrent execution.
11
+ * @param lockName Unique identifier for the lock
12
+ * @param fn Function to execute atomically
13
+ * @returns Promise that resolves with the function's return value
14
+ */
15
+ static async withLock(lockName, fn) {
16
+ // Wait for any existing lock to complete
17
+ const existingLock = this.locks.get(lockName);
18
+ if (existingLock) {
19
+ await existingLock.catch(() => {
20
+ // Ignore errors from previous lock holders
21
+ });
22
+ }
23
+ // Create a new lock
24
+ let resolve;
25
+ let reject;
26
+ const lockPromise = new Promise((res, rej) => {
27
+ resolve = res;
28
+ reject = rej;
29
+ });
30
+ this.locks.set(lockName, lockPromise);
31
+ try {
32
+ // Execute the function
33
+ const result = await fn();
34
+ resolve();
35
+ return result;
36
+ }
37
+ catch (error) {
38
+ reject(error);
39
+ throw error;
40
+ }
41
+ finally {
42
+ // Clean up the lock if we're still the current holder
43
+ if (this.locks.get(lockName) === lockPromise) {
44
+ this.locks.delete(lockName);
45
+ }
46
+ }
47
+ }
48
+ /**
49
+ * Check if a lock is currently held.
50
+ * @param lockName Name of the lock to check
51
+ * @returns True if the lock is currently held
52
+ */
53
+ static isLocked(lockName) {
54
+ return this.locks.has(lockName);
55
+ }
56
+ /**
57
+ * Clear all locks (for testing/cleanup).
58
+ */
59
+ static clearAllLocks() {
60
+ this.locks.clear();
61
+ }
62
+ }
63
+ exports.AtomicOperations = AtomicOperations;
64
+ AtomicOperations.locks = new Map();
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRvbWljLW9wZXJhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvYXRvbWljLW9wZXJhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7R0FHRzs7O0FBRUgsTUFBYSxnQkFBZ0I7SUFHNUI7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBSSxRQUFnQixFQUFFLEVBQW9CO1FBQzlELHlDQUF5QztRQUN6QyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUM3QyxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ2xCLE1BQU0sWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUU7Z0JBQzdCLDJDQUEyQztZQUM1QyxDQUFDLENBQUMsQ0FBQTtRQUNILENBQUM7UUFFRCxvQkFBb0I7UUFDcEIsSUFBSSxPQUFtQixDQUFBO1FBQ3ZCLElBQUksTUFBNEIsQ0FBQTtRQUNoQyxNQUFNLFdBQVcsR0FBRyxJQUFJLE9BQU8sQ0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUNsRCxPQUFPLEdBQUcsR0FBRyxDQUFBO1lBQ2IsTUFBTSxHQUFHLEdBQUcsQ0FBQTtRQUNiLENBQUMsQ0FBQyxDQUFBO1FBRUYsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFBO1FBRXJDLElBQUksQ0FBQztZQUNKLHVCQUF1QjtZQUN2QixNQUFNLE1BQU0sR0FBRyxNQUFNLEVBQUUsRUFBRSxDQUFBO1lBQ3pCLE9BQVEsRUFBRSxDQUFBO1lBQ1YsT0FBTyxNQUFNLENBQUE7UUFDZCxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNoQixNQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7WUFDZCxNQUFNLEtBQUssQ0FBQTtRQUNaLENBQUM7Z0JBQVMsQ0FBQztZQUNWLHNEQUFzRDtZQUN0RCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLFdBQVcsRUFBRSxDQUFDO2dCQUM5QyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTtZQUM1QixDQUFDO1FBQ0YsQ0FBQztJQUNGLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFnQjtRQUMvQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQ2hDLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxhQUFhO1FBQ25CLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDbkIsQ0FBQzs7QUExREYsNENBMkRDO0FBMURlLHNCQUFLLEdBQUcsSUFBSSxHQUFHLEVBQXlCLENBQUEifQ==
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Connection state machine for managing atomic state transitions.
3
+ * Prevents race conditions in connection state management.
4
+ */
5
+ export declare enum ConnectionState {
6
+ CONNECTING = "connecting",
7
+ CONNECTED = "connected",
8
+ CLOSING = "closing",
9
+ CLOSED = "closed"
10
+ }
11
+ type StateChangeListener = (oldState: ConnectionState, newState: ConnectionState) => void;
12
+ export declare class ConnectionStateMachine {
13
+ private currentState;
14
+ private listeners;
15
+ private transitionLock;
16
+ constructor(initialState?: ConnectionState);
17
+ /**
18
+ * Get current state.
19
+ */
20
+ getState(): ConnectionState;
21
+ /**
22
+ * Check if the connection is in any of the specified states.
23
+ */
24
+ isInState(...states: ConnectionState[]): boolean;
25
+ /**
26
+ * Register a state change listener.
27
+ */
28
+ onStateChange(listener: StateChangeListener): () => void;
29
+ /**
30
+ * Attempt to transition from allowed states to a new state.
31
+ * @param fromStates Allowed states to transition from
32
+ * @param toState Target state
33
+ * @param action Optional action to execute during transition
34
+ * @returns Promise that resolves to true if transition succeeded
35
+ */
36
+ transition(fromStates: ConnectionState | ConnectionState[], toState: ConnectionState, action?: () => Promise<void>): Promise<boolean>;
37
+ /**
38
+ * Force a state change without checking allowed transitions.
39
+ * Use with caution - mainly for error recovery.
40
+ */
41
+ forceState(newState: ConnectionState): Promise<void>;
42
+ }
43
+ export {};
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+ /**
3
+ * Connection state machine for managing atomic state transitions.
4
+ * Prevents race conditions in connection state management.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.ConnectionStateMachine = exports.ConnectionState = void 0;
8
+ var ConnectionState;
9
+ (function (ConnectionState) {
10
+ ConnectionState["CONNECTING"] = "connecting";
11
+ ConnectionState["CONNECTED"] = "connected";
12
+ ConnectionState["CLOSING"] = "closing";
13
+ ConnectionState["CLOSED"] = "closed";
14
+ })(ConnectionState || (exports.ConnectionState = ConnectionState = {}));
15
+ class ConnectionStateMachine {
16
+ constructor(initialState = ConnectionState.CONNECTING) {
17
+ this.listeners = [];
18
+ this.transitionLock = null;
19
+ this.currentState = initialState;
20
+ }
21
+ /**
22
+ * Get current state.
23
+ */
24
+ getState() {
25
+ return this.currentState;
26
+ }
27
+ /**
28
+ * Check if the connection is in any of the specified states.
29
+ */
30
+ isInState(...states) {
31
+ return states.includes(this.currentState);
32
+ }
33
+ /**
34
+ * Register a state change listener.
35
+ */
36
+ onStateChange(listener) {
37
+ this.listeners.push(listener);
38
+ return () => {
39
+ const index = this.listeners.indexOf(listener);
40
+ if (index >= 0) {
41
+ this.listeners.splice(index, 1);
42
+ }
43
+ };
44
+ }
45
+ /**
46
+ * Attempt to transition from allowed states to a new state.
47
+ * @param fromStates Allowed states to transition from
48
+ * @param toState Target state
49
+ * @param action Optional action to execute during transition
50
+ * @returns Promise that resolves to true if transition succeeded
51
+ */
52
+ async transition(fromStates, toState, action) {
53
+ // Wait for any existing transition to complete
54
+ if (this.transitionLock) {
55
+ await this.transitionLock.catch(() => {
56
+ // Ignore errors from previous transitions
57
+ });
58
+ }
59
+ // Create a new transition lock
60
+ let resolve;
61
+ let reject;
62
+ this.transitionLock = new Promise((res, rej) => {
63
+ resolve = res;
64
+ reject = rej;
65
+ });
66
+ try {
67
+ const allowedStates = Array.isArray(fromStates) ? fromStates : [fromStates];
68
+ // Check if transition is allowed
69
+ if (!allowedStates.includes(this.currentState)) {
70
+ resolve();
71
+ return false;
72
+ }
73
+ // If already in target state, no need to transition
74
+ if (this.currentState === toState) {
75
+ resolve();
76
+ return true;
77
+ }
78
+ const oldState = this.currentState;
79
+ // Execute action if provided
80
+ if (action) {
81
+ await action();
82
+ }
83
+ // Update state
84
+ this.currentState = toState;
85
+ // Notify listeners
86
+ for (const listener of this.listeners) {
87
+ try {
88
+ listener(oldState, toState);
89
+ }
90
+ catch (error) {
91
+ // Don't let listener errors break the state machine
92
+ console.error('Error in state change listener:', error);
93
+ }
94
+ }
95
+ resolve();
96
+ return true;
97
+ }
98
+ catch (error) {
99
+ reject(error);
100
+ throw error;
101
+ }
102
+ finally {
103
+ // Clear the transition lock
104
+ this.transitionLock = null;
105
+ }
106
+ }
107
+ /**
108
+ * Force a state change without checking allowed transitions.
109
+ * Use with caution - mainly for error recovery.
110
+ */
111
+ async forceState(newState) {
112
+ if (this.transitionLock) {
113
+ await this.transitionLock.catch(() => { });
114
+ }
115
+ const oldState = this.currentState;
116
+ this.currentState = newState;
117
+ // Notify listeners
118
+ for (const listener of this.listeners) {
119
+ try {
120
+ listener(oldState, newState);
121
+ }
122
+ catch (error) {
123
+ console.error('Error in state change listener:', error);
124
+ }
125
+ }
126
+ }
127
+ }
128
+ exports.ConnectionStateMachine = ConnectionStateMachine;
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGlvbi1zdGF0ZS1tYWNoaW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2Nvbm5lY3Rpb24tc3RhdGUtbWFjaGluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHOzs7QUFFSCxJQUFZLGVBS1g7QUFMRCxXQUFZLGVBQWU7SUFDMUIsNENBQXlCLENBQUE7SUFDekIsMENBQXVCLENBQUE7SUFDdkIsc0NBQW1CLENBQUE7SUFDbkIsb0NBQWlCLENBQUE7QUFDbEIsQ0FBQyxFQUxXLGVBQWUsK0JBQWYsZUFBZSxRQUsxQjtBQUlELE1BQWEsc0JBQXNCO0lBS2xDLFlBQVksZUFBZ0MsZUFBZSxDQUFDLFVBQVU7UUFIOUQsY0FBUyxHQUEwQixFQUFFLENBQUE7UUFDckMsbUJBQWMsR0FBeUIsSUFBSSxDQUFBO1FBR2xELElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFBO0lBQ2pDLENBQUM7SUFFRDs7T0FFRztJQUNILFFBQVE7UUFDUCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUE7SUFDekIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsU0FBUyxDQUFDLEdBQUcsTUFBeUI7UUFDckMsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQTtJQUMxQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxhQUFhLENBQUMsUUFBNkI7UUFDMUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDN0IsT0FBTyxHQUFHLEVBQUU7WUFDWCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQTtZQUM5QyxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFBO1lBQ2hDLENBQUM7UUFD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
@@ -62,6 +62,7 @@ function makeHttpResponseParser() {
62
62
  }
63
63
  else {
64
64
  remainingBodyBytes = -1;
65
+ break;
65
66
  // otherwise,
66
67
  // no content-length, no chunked transfer encoding
67
68
  // means wait till the stream ends
@@ -130,7 +131,7 @@ function makeHttpResponseParser() {
130
131
  throw new Error('stream ended before headers were complete');
131
132
  }
132
133
  if (remaining.length) {
133
- throw new Error('stream ended with remaining data');
134
+ throw new Error('stream ended before remaining data arrived');
134
135
  }
135
136
  if (remainingBodyBytes > 0) {
136
137
  throw new Error('stream ended before all body bytes were received');
@@ -248,4 +249,4 @@ function getHttpRequestDataFromTranscript(receipt) {
248
249
  return line;
249
250
  }
250
251
  }
251
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1wYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvaHR0cC1wYXJzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFrREEsd0RBbUxDO0FBT0QsNEVBeUVDO0FBclRELDhDQUE4RTtBQUc5RSxpREFBMkU7QUFDM0UscURBQTBEO0FBeUMxRCxNQUFNLG9CQUFvQixHQUFHLElBQUEscUJBQWUsRUFBQyxNQUFNLENBQUMsQ0FBQTtBQUVwRDs7R0FFRztBQUNILFNBQWdCLHNCQUFzQjtJQUNyQyw2QkFBNkI7SUFDN0IsTUFBTSxHQUFHLEdBQWlCO1FBQ3pCLFVBQVUsRUFBRSxDQUFDO1FBQ2IsYUFBYSxFQUFFLEVBQUU7UUFDakIsT0FBTyxFQUFFLEVBQUU7UUFDWCxJQUFJLEVBQUUsSUFBSSxVQUFVLEVBQUU7UUFDdEIsUUFBUSxFQUFFLEtBQUs7UUFDZixlQUFlLEVBQUUsS0FBSztRQUN0QixhQUFhLEVBQUMsSUFBSSxHQUFHLEVBQXNCO1FBQzNDLFlBQVksRUFBRSxDQUFDO0tBQ2YsQ0FBQTtJQUVELElBQUksa0JBQWtCLEdBQUcsQ0FBQyxDQUFBO0lBQzFCLElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQTtJQUNyQixJQUFJLFNBQVMsR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFBO0lBQ2hDLElBQUksY0FBYyxHQUFHLENBQUMsQ0FBQTtJQUV0QixPQUFPO1FBQ04sR0FBRztRQUNIOzs7V0FHUztRQUNULE9BQU8sQ0FBQyxJQUFnQjs7WUFDdkIscURBQXFEO1lBQ3JELFNBQVMsR0FBRyxJQUFBLDRCQUFzQixFQUFDLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUE7WUFDckQsdURBQXVEO1lBQ3ZELDhCQUE4QjtZQUM5QixJQUFHLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxDQUFDO2dCQUN6QixLQUFJLElBQUksSUFBSSxHQUFHLE9BQU8sRUFBRSxFQUFFLE9BQU8sSUFBSSxLQUFLLFdB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
252
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1wYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvaHR0cC1wYXJzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFrREEsd0RBb0xDO0FBT0QsNEVBeUVDO0FBdFRELDhDQUE4RTtBQUc5RSxpREFBMkU7QUFDM0UscURBQTBEO0FBeUMxRCxNQUFNLG9CQUFvQixHQUFHLElBQUEscUJBQWUsRUFBQyxNQUFNLENBQUMsQ0FBQTtBQUVwRDs7R0FFRztBQUNILFNBQWdCLHNCQUFzQjtJQUNyQyw2QkFBNkI7SUFDN0IsTUFBTSxHQUFHLEdBQWlCO1FBQ3pCLFVBQVUsRUFBRSxDQUFDO1FBQ2IsYUFBYSxFQUFFLEVBQUU7UUFDakIsT0FBTyxFQUFFLEVBQUU7UUFDWCxJQUFJLEVBQUUsSUFBSSxVQUFVLEVBQUU7UUFDdEIsUUFBUSxFQUFFLEtBQUs7UUFDZixlQUFlLEVBQUUsS0FBSztRQUN0QixhQUFhLEVBQUMsSUFBSSxHQUFHLEVBQXNCO1FBQzNDLFlBQVksRUFBRSxDQUFDO0tBQ2YsQ0FBQTtJQUVELElBQUksa0JBQWtCLEdBQUcsQ0FBQyxDQUFBO0lBQzFCLElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQTtJQUNyQixJQUFJLFNBQVMsR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFBO0lBQ2hDLElBQUksY0FBYyxHQUFHLENBQUMsQ0FBQTtJQUV0QixPQUFPO1FBQ04sR0FBRztRQUNIOzs7V0FHUztRQUNULE9BQU8sQ0FBQyxJQUFnQjs7WUFDdkIscURBQXFEO1lBQ3JELFNBQVMsR0FBRyxJQUFBLDRCQUFzQixFQUFDLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUE7WUFDckQsdURBQXVEO1lBQ3ZELDhCQUE4QjtZQUM5QixJQUFHLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxDQUFDO2dCQUN6QixLQUFJLElBQUksSUFBSSxHQUFHLE9BQU8sRUFBRSxFQUFFLE9BQU8sSUFBSSxLQUFLLFdB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
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Resource monitor for tracking resources and preventing leaks.
3
+ * Provides debugging capabilities and resource management.
4
+ */
5
+ import type { Logger } from '../types';
6
+ export interface ResourceInfo {
7
+ id: string;
8
+ type: string;
9
+ createdAt: Date;
10
+ metadata?: any;
11
+ }
12
+ export declare class ResourceMonitor {
13
+ private static instance;
14
+ private resources;
15
+ private logger;
16
+ private constructor();
17
+ /**
18
+ * Get or create the singleton ResourceMonitor instance.
19
+ */
20
+ static getInstance(logger: Logger): ResourceMonitor;
21
+ /**
22
+ * Track a new resource.
23
+ */
24
+ trackResource(id: string, type: string, metadata?: any): void;
25
+ /**
26
+ * Untrack a resource.
27
+ */
28
+ untrackResource(id: string): boolean;
29
+ /**
30
+ * Check if a resource is tracked.
31
+ */
32
+ isTracked(id: string): boolean;
33
+ /**
34
+ * Get information about a specific resource.
35
+ */
36
+ getResource(id: string): ResourceInfo | undefined;
37
+ /**
38
+ * Get all tracked resources.
39
+ */
40
+ getAllResources(): ResourceInfo[];
41
+ /**
42
+ * Get resources by type.
43
+ */
44
+ getResourcesByType(type: string): ResourceInfo[];
45
+ /**
46
+ * Get resources older than a specific age.
47
+ */
48
+ getResourcesOlderThan(ageMs: number): ResourceInfo[];
49
+ /**
50
+ * Log resource statistics.
51
+ */
52
+ logStats(): void;
53
+ /**
54
+ * Clear all tracked resources (for testing/cleanup).
55
+ */
56
+ clear(): void;
57
+ /**
58
+ * Reset the singleton instance (for testing).
59
+ */
60
+ static reset(): void;
61
+ }
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ /**
3
+ * Resource monitor for tracking resources and preventing leaks.
4
+ * Provides debugging capabilities and resource management.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.ResourceMonitor = void 0;
8
+ class ResourceMonitor {
9
+ constructor(logger) {
10
+ this.resources = new Map();
11
+ this.logger = logger;
12
+ }
13
+ /**
14
+ * Get or create the singleton ResourceMonitor instance.
15
+ */
16
+ static getInstance(logger) {
17
+ if (!ResourceMonitor.instance) {
18
+ ResourceMonitor.instance = new ResourceMonitor(logger);
19
+ }
20
+ return ResourceMonitor.instance;
21
+ }
22
+ /**
23
+ * Track a new resource.
24
+ */
25
+ trackResource(id, type, metadata) {
26
+ const resource = {
27
+ id,
28
+ type,
29
+ createdAt: new Date(),
30
+ metadata
31
+ };
32
+ this.resources.set(id, resource);
33
+ this.logger.trace({ id, type, metadata }, 'Resource tracked');
34
+ }
35
+ /**
36
+ * Untrack a resource.
37
+ */
38
+ untrackResource(id) {
39
+ const resource = this.resources.get(id);
40
+ if (resource) {
41
+ this.resources.delete(id);
42
+ this.logger.trace({ id, type: resource.type }, 'Resource untracked');
43
+ return true;
44
+ }
45
+ return false;
46
+ }
47
+ /**
48
+ * Check if a resource is tracked.
49
+ */
50
+ isTracked(id) {
51
+ return this.resources.has(id);
52
+ }
53
+ /**
54
+ * Get information about a specific resource.
55
+ */
56
+ getResource(id) {
57
+ return this.resources.get(id);
58
+ }
59
+ /**
60
+ * Get all tracked resources.
61
+ */
62
+ getAllResources() {
63
+ return Array.from(this.resources.values());
64
+ }
65
+ /**
66
+ * Get resources by type.
67
+ */
68
+ getResourcesByType(type) {
69
+ return Array.from(this.resources.values()).filter(r => r.type === type);
70
+ }
71
+ /**
72
+ * Get resources older than a specific age.
73
+ */
74
+ getResourcesOlderThan(ageMs) {
75
+ const cutoff = new Date(Date.now() - ageMs);
76
+ return Array.from(this.resources.values()).filter(r => r.createdAt < cutoff);
77
+ }
78
+ /**
79
+ * Log resource statistics.
80
+ */
81
+ logStats() {
82
+ const byType = new Map();
83
+ for (const resource of this.resources.values()) {
84
+ byType.set(resource.type, (byType.get(resource.type) || 0) + 1);
85
+ }
86
+ const stats = Object.fromEntries(byType);
87
+ this.logger.info({
88
+ totalResources: this.resources.size,
89
+ byType: stats
90
+ }, 'Resource statistics');
91
+ }
92
+ /**
93
+ * Clear all tracked resources (for testing/cleanup).
94
+ */
95
+ clear() {
96
+ this.resources.clear();
97
+ }
98
+ /**
99
+ * Reset the singleton instance (for testing).
100
+ */
101
+ static reset() {
102
+ ResourceMonitor.instance = null;
103
+ }
104
+ }
105
+ exports.ResourceMonitor = ResourceMonitor;
106
+ ResourceMonitor.instance = null;
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtbW9uaXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9yZXNvdXJjZS1tb25pdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7OztBQVdILE1BQWEsZUFBZTtJQUszQixZQUFvQixNQUFjO1FBSDFCLGNBQVMsR0FBRyxJQUFJLEdBQUcsRUFBd0IsQ0FBQTtRQUlsRCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQTtJQUNyQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQWM7UUFDaEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUMvQixlQUFlLENBQUMsUUFBUSxHQUFHLElBQUksZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ3ZELENBQUM7UUFDRCxPQUFPLGVBQWUsQ0FBQyxRQUFRLENBQUE7SUFDaEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsYUFBYSxDQUFDLEVBQVUsRUFBRSxJQUFZLEVBQUUsUUFBYztRQUNyRCxNQUFNLFFBQVEsR0FBaUI7WUFDOUIsRUFBRTtZQUNGLElBQUk7WUFDSixTQUFTLEVBQUUsSUFBSSxJQUFJLEVBQUU7WUFDckIsUUFBUTtTQUNSLENBQUE7UUFFRCxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUE7UUFDaEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxFQUFFLGtCQUFrQixDQUFDLENBQUE7SUFDOUQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZUFBZSxDQUFDLEVBQVU7UUFDekIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDdkMsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxT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
@@ -47,6 +47,7 @@ class AttestorSocket {
47
47
  }
48
48
  const msg = (0, utils_1.packRpcMessages)(...msgs);
49
49
  const bytes = api_1.RPCMessages.encode(msg).finish();
50
+ this.logger.trace({ msg }, 'sending messages');
50
51
  if ('sendPromise' in this.socket && this.socket.sendPromise) {
51
52
  await this.socket.sendPromise(bytes);
52
53
  }
@@ -91,4 +92,4 @@ class AttestorSocket {
91
92
  }
92
93
  }
93
94
  exports.AttestorSocket = AttestorSocket;
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ja2V0LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvc29ja2V0LWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsc0VBQW1FO0FBQ25FLHVDQUFvRTtBQUVwRSxxQ0FBd0U7QUFHeEU7OztHQUdHO0FBQ0gsTUFBYSxjQUFjO0lBTTFCLFlBQ1csTUFBK0IsRUFDbEMsUUFBcUIsRUFDckIsTUFBYztRQUZYLFdBQU0sR0FBTixNQUFNLENBQXlCO1FBQ2xDLGFBQVEsR0FBUixRQUFRLENBQWE7UUFDckIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQVBkLGdCQUFXLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQTtRQUV2QyxrQkFBYSxHQUFHLEtBQUssQ0FBQTtRQU9wQixNQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDMUMsTUFBTSxNQUFNLEdBQUcscUJBQWEsQ0FBQyxTQUFTLENBQ3JDLEtBQUssQ0FBQyxLQUFLO21CQUNQLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FDNUIsQ0FBQTtZQUNELE1BQU0sQ0FBQyxJQUFJLEdBQUcscUJBQXFCLENBQUE7WUFFbkMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLHVCQUF1QixFQUFFLE1BQU0sQ0FBQyxDQUFBO1FBQ3ZELENBQUMsQ0FBQyxDQUFBO1FBRUYsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUN0QyxJQUFJLENBQUMsZ0JBQWdCLENBQ3BCLHVCQUF1QixFQUN2QixJQUFJLHFCQUFhLENBQ2hCLGdCQUFnQixFQUNoQixtQkFBbUIsQ0FDbkIsQ0FDRCxDQUNELENBQUMsQ0FBQTtRQUVGLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRTtZQUNwRCxJQUFJLENBQUM7Z0JB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
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ja2V0LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvc29ja2V0LWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsc0VBQW1FO0FBQ25FLHVDQUFvRTtBQUVwRSxxQ0FBd0U7QUFHeEU7OztHQUdHO0FBQ0gsTUFBYSxjQUFjO0lBTTFCLFlBQ1csTUFBK0IsRUFDbEMsUUFBcUIsRUFDckIsTUFBYztRQUZYLFdBQU0sR0FBTixNQUFNLENBQXlCO1FBQ2xDLGFBQVEsR0FBUixRQUFRLENBQWE7UUFDckIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQVBkLGdCQUFXLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQTtRQUV2QyxrQkFBYSxHQUFHLEtBQUssQ0FBQTtRQU9wQixNQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDMUMsTUFBTSxNQUFNLEdBQUcscUJBQWEsQ0FBQyxTQUFTLENBQ3JDLEtBQUssQ0FBQyxLQUFLO21CQUNQLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FDNUIsQ0FBQTtZQUNELE1BQU0sQ0FBQyxJQUFJLEdBQUcscUJBQXFCLENBQUE7WUFFbkMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLHVCQUF1QixFQUFFLE1BQU0sQ0FBQyxDQUFBO1FBQ3ZELENBQUMsQ0FBQyxDQUFBO1FBRUYsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUN0QyxJQUFJLENBQUMsZ0JBQWdCLENBQ3BCLHVCQUF1QixFQUN2QixJQUFJLHFCQUFhLENBQ2hCLGdCQUFnQixFQUNoQixtQkFBbUIsQ0FDbkIsQ0FDRCxDQUNELENBQUMsQ0FBQTtRQUVGLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRTtZQUNwRCxJQUFJLENBQUM7Z0JB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
@@ -4,6 +4,7 @@ exports.setupWindowRpc = setupWindowRpc;
4
4
  const tls_1 = require("@reclaimprotocol/tls");
5
5
  const create_claim_on_avs_1 = require("../avs/client/create-claim-on-avs");
6
6
  const client_1 = require("../client");
7
+ const create_claim_on_mechain_1 = require("../mechain/client/create-claim-on-mechain");
7
8
  const utils_1 = require("../providers/http/utils");
8
9
  const utils_2 = require("../utils");
9
10
  const b64_json_1 = require("../utils/b64-json");
@@ -122,6 +123,36 @@ function setupWindowRpc() {
122
123
  response: avsRes,
123
124
  });
124
125
  break;
126
+ case 'createClaimOnMechain':
127
+ const mechainRes = await (0, create_claim_on_mechain_1.createClaimOnMechain)({
128
+ ...req.request,
129
+ context: req.request.context
130
+ ? JSON.parse(req.request.context)
131
+ : undefined,
132
+ zkOperators: getZkOperators(req.request.zkOperatorMode, req.request.zkEngine),
133
+ oprfOperators: getOprfOperators(req.request.zkOperatorMode, req.request.zkEngine),
134
+ client: {
135
+ url: defaultUrl,
136
+ },
137
+ logger,
138
+ onStep(step) {
139
+ sendMessage({
140
+ type: 'createClaimOnMechainStep',
141
+ step,
142
+ module: req.module,
143
+ id: req.id,
144
+ });
145
+ },
146
+ });
147
+ const claimResponses = [];
148
+ for (let i = 0; i < mechainRes.responses.length; i++) {
149
+ claimResponses[i] = (0, utils_3.mapToCreateClaimResponse)(mechainRes.responses[i]);
150
+ }
151
+ respond({
152
+ type: 'createClaimOnMechainDone',
153
+ response: { taskId: mechainRes.taskId, data: claimResponses },
154
+ });
155
+ break;
125
156
  case 'extractHtmlElement':
126
157
  respond({
127
158
  type: 'extractHtmlElementDone',
@@ -257,4 +288,4 @@ function setupWindowRpc() {
257
288
  }
258
289
  }
259
290
  }
260
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXAtd2luZG93LXJwYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93aW5kb3ctcnBjL3NldHVwLXdpbmRvdy1ycGMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUE4QkEsd0NBdVRDO0FBclZELDhDQUFzRDtBQUV0RCw0RUFBcUU7QUFDckUsdUNBQWtEO0FBQ2xELG9EQUE2SDtBQUU3SCxxQ0FBd0Q7QUFDeEQsaURBQXdFO0FBQ3hFLG1EQUErQztBQUUvQyxnREFBc0o7QUFDdEosZ0VBQXFIO0FBRXJILE1BQU0sY0FBZSxTQUFRLEtBQUs7SUFDakMsWUFBNEIsSUFBMEI7UUFDckQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBRFcsU0FBSSxHQUFKLElBQUksQ0FBc0I7SUFFdEQsQ0FBQztDQUNEO0FBRUQsTUFBTSxhQUFhLEdBQUc7SUFDckIsZUFBZTtJQUNmLGFBQWE7Q0FDYixDQUFBO0FBRUQsSUFBSSxNQUFNLEdBQUcsY0FBTSxDQUFBO0FBRW5COzs7R0FHRztBQUNILFNBQWdCLGNBQWM7SUFDN0IsTUFBTSxHQUFHLElBQUEsa0JBQVUsRUFBQyxJQUFJLENBQUMsQ0FBQTtJQUV6QixNQUFNLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQTtJQUN4RCxNQUFNLFVBQVUsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFBO0lBRXBDLE1BQU0sVUFBVSxHQUFHLElBQUEsK0JBQXVCLEdBQUUsQ0FBQTtJQUU1QyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsVUFBVSxFQUFFLEVBQUUsa0JBQWtCLENBQUMsQ0FBQTtJQUUvQyxLQUFLLFVBQVUsYUFBYSxDQUFDLEtBQXdCO1FBQ3BELElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQTtRQUNYLElBQUksT0FBTyxHQUFHLEVBQUUsQ0FBQTtRQUNoQixJQUFJLENBQUM7WUFDSixJQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFD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
291
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXAtd2luZG93LXJwYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93aW5kb3ctcnBjL3NldHVwLXdpbmRvdy1ycGMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUErQkEsd0NBMlZDO0FBMVhELDhDQUFzRDtBQUV0RCw0RUFBcUU7QUFDckUsdUNBQWtEO0FBQ2xELHdGQUFpRjtBQUNqRixvREFBNkg7QUFFN0gscUNBQXdEO0FBQ3hELGlEQUF3RTtBQUN4RSxtREFBK0M7QUFFL0MsZ0RBQXNKO0FBQ3RKLGdFQUFxSDtBQUVySCxNQUFNLGNBQWUsU0FBUSxLQUFLO0lBQ2pDLFlBQTRCLElBQTBCO1FBQ3JELEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQURXLFNBQUksR0FBSixJQUFJLENBQXNCO0lBRXRELENBQUM7Q0FDRDtBQUVELE1BQU0sYUFBYSxHQUFHO0lBQ3JCLGVBQWU7SUFDZixhQUFhO0NBQ2IsQ0FBQTtBQUVELElBQUksTUFBTSxHQUFHLGNBQU0sQ0FBQTtBQUVuQjs7O0dBR0c7QUFDSCxTQUFnQixjQUFjO0lBQzdCLE1BQU0sR0FBRyxJQUFBLGtCQUFVLEVBQUMsSUFBSSxDQUFDLENBQUE7SUFFekIsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxhQUFhLEVBQUUsS0FBSyxDQUFDLENBQUE7SUFDeEQsTUFBTSxVQUFVLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQTtJQUVwQyxNQUFNLFVBQVUsR0FBRyxJQUFBLCtCQUF1QixHQUFFLENBQUE7SUFFNUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLFVBQVUsRUFBRSxFQUFFLGtCQUFrQixDQUFDLENBQUE7SUFFL0MsS0FBSyxVQUFVLGFBQWEsQ0FBQyxLQUF3QjtRQUNwRCxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUE7UUFDWCxJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUE7UUFDaEIsSUFBSSxDQUFDO1lBQ0osSUFBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDaEIsT0FBTTtZQUNQLENBQUM7WUFFRCxNQUFNLEdBQUcsR0FBeUIsQ0FDakMsT0FBTyxLQUFLLENBQUMsSUFBSSxLQUFLLFFBQVE7Z0JBQzdCLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsMkJBQWdCLENBQUM7Z0JBQzFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUNiLENBQUE7WUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsa0JBQWtCLENBQUMsQ0FBQTtZQUUvRCxpQ0FBaUM7WUFDakMsSUFBRyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7Z0JBQ3hDLE9BQU07WUFDUCxDQUFDO1lBRUQsRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUE7WUFDWCxPQUFPLEdBQUcsR0FBRyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUE7WUFFM0IsVUFBVSxDQUFDLGFBQWEsQ0FBQyxJQUFJLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO1lBQ2pELDJCQUEyQjtZQUMzQixJQUFHLENBQUMsWUFBWSxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztnQkFDNUMsT0FBTTtZQUNQLENBQUM7WUFFRCxJQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUNaLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSwrQkFBK0IsQ0FBQyxDQUFBO2dCQUNyRCxPQUFNO1lBQ1AsQ0FBQztZQUVELE1BQU0sQ0FBQyxJQUFJLENBQ1YsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFDN0Isd0JBQXdCLENBQ3hCLENBQUE7WUFFRCxRQUFRLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDbkIsS0FBSyxhQUFhO29CQUNqQixNQUFNLGNBQWMsR0FBRyxNQUFNLElBQUEsOEJBQXFCLEVBQUM7d0JBQ2xELEdBQUcsR0FBRyxDQUFDLE9BQU87d0JBQ2QsT0FBTyxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTzs0QkFDM0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7NEJBQ2pDLENBQUMsQ0FBQyxTQUFTO3dCQUNaLFdBQVcsRUFBRSxjQUFjLENBQzFCLEdBQUcsQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUNoRDt3QkFDRCxhQUFhLEVBQUUsZ0JBQWdCLENBQzlCLEdBQUcsQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUNoRDt3QkFDRCxNQUFNLEVBQUU7NEJBQ1AsR0FBRyxFQUFFLFVBQVU7NEJBQ2YsV0FBVyxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsV0FBVzt5QkFDcEM7d0JBQ0QsTUFBTTt3QkFDTixNQUFNLENBQUMsSUFBSTs0QkFDVixXQUFXLENBQUM7Z0NBQ1gsSUFBSSxFQUFFLGlCQUFpQjtnQ0FDdkIsSUFBSSxFQUFFO29DQUNMLElBQUksRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUM7d0NBQ25DLDBCQUEwQjt3Q0FDMUIsQ0FBQyxDQUFDLGtCQUFrQjt3Q0FDcEIsQ0FBQyxDQUFDLG1CQUFtQjtvQ0FDdEIsSUFBSTtpQ0FDSjtnQ0FDRCxNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU07Z0NBQ2xCLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRTs2QkFDVixDQUFDLENBQUE7d0JBQ0gsQ0FBQzt3QkFDRCxvQkFBb0IsRUFBRyxHQUFHLENBQUMsT0FBTyxDQUFDLG9CQUFvQjs0QkFDdEQsQ0FBQyxDQUFDLG9CQUFvQjs0QkFDdEIsQ0FBQyxDQUFDLFNBQVM7cUJBQ1osQ0FBQyxDQUFBO29CQUNGLE1BQU0sUUFBUSxHQUFHLElBQUEsZ0NBQXdCLEVBQ3hDLGNBQWMsQ0FDZCxDQUFBO29CQUNELE9BQU8sQ0FBQzt3QkFDUCxJQUFJLEVBQUUsaUJBQWlCO3dCQUN2QixRQUFRO3FCQUNSLENBQUMsQ0FBQTtvQkFDRixNQUFLO2dCQUNOLEtBQUssa0JBQWtCO29CQUN0QixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUEsc0NBQWdCLEVBQUM7d0JBQ3JDLEdBQUcsR0FBRyxDQUFDLE9BQU87d0JBQ2QsS0FBSyxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxLQUFLLFVBQVU7NEJBQ3RDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUU7NEJBQzFCLENBQUMsQ0FBQyxTQUFTO3dCQUNaLE9BQU8sRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU87NEJBQzNCLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDOzRCQUNqQyxDQUFDLENBQUMsU0FBUzt3QkFDWixXQUFXLEVBQUUsY0FBYyxDQUMxQixHQUFHLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FDaEQ7d0JBQ0QsYUFBYSxFQUFFLGdCQUFnQixDQUM5QixHQUFHLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FDaEQ7d0JBQ0QsTUFBTTt3QkFDTixNQUFNLENBQUMsSUFBSTs0QkFDVixXQUFXLENBQUM7Z0NBQ1gsSUFBSSxFQUFFLHNCQUFzQjtnQ0FDNUIsSUFBSTtnQ0FDSixNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU07Z0NBQ2xCLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRTs2QkFDVixDQUFDLENBQUE7d0JBQ0gsQ0FBQztxQkFDRCxDQUFDLENBQUE7b0JBQ0YsT0FBTyxDQUFDO3dCQUNQLElBQUksRUFBRSxzQkFBc0I7d0JBQzVCLFFBQVEsRUFBRSxNQUFNO3FCQUNoQixDQUFDLENBQUE7b0JBQ0YsTUFBSztnQkFDTixLQUFLLHNCQUFzQjtvQkFDMUIsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFBLDhDQUFvQixFQUFDO3dCQUM3QyxHQUFHLEdBQUcsQ0FBQyxPQUFPO3dCQUNkLE9BQU8sRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU87NEJBQzNCLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDOzRCQUNqQyxDQUFDLENBQUMsU0FBUzt3QkFDWixXQUFXLEVBQUUsY0FBYyxDQUMxQixHQUFHLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FDaEQ7d0JBQ0QsYUFBYSxFQUFFLGdCQUFnQixDQUM5QixHQUFHLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FDaEQ7d0JBQ0QsTUFBTSxFQUFFOzRCQUNQLEdBQUcsRUFBRSxVQUFVO3lCQUNmO3dCQUNELE1BQU07d0JBQ04sTUFBTSxDQUFDLElBQUk7NEJBQ1YsV0FBVyxDQUFDO2dDQUNYLElBQUksRUFBRSwwQkFBMEI7Z0NBQ2hDLElBQUk7Z0NBQ0osTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNO2dDQUNsQixFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUU7NkJBQ1YsQ0FBQyxDQUFBO3dCQUNILENBQUM7cUJBQ0QsQ0FBQyxDQUFBO29CQUNGLE1BQU0sY0FBYyxHQUEwQixFQUFFLENBQUE7b0JBQ2hELEtBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO3dCQUNyRCxjQUFjLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBQSxnQ0FBd0IsRUFBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7b0JBQ3RFLENBQUM7b0JBRUQsT0FBTyxDQUFDO3dCQUNQLElBQUksRUFBRSwwQkFBMEI7d0JBQ2hDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxVQUFVLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUU7cUJBQzdELENBQUMsQ0FBQTtvQkFDRixNQUFLO2dCQUNOLEtBQUssb0JBQW9CO29CQUN4QixPQUFPLENBQUM7d0JBQ1AsSUFBSSxFQUFFLHdCQUF3Qjt3QkFDOUIsUUFBUSxFQUFFLElBQUEsMEJBQWtCLEVBQzNCLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUNoQixHQUFHLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFDM0IsR0FBRyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQ3hCO3FCQUNELENBQUMsQ0FBQTtvQkFFRixNQUFLO2dCQUNOLEtBQUssdUJBQXVCO29CQUMzQixPQUFPLENBQUM7d0JBQ1AsSUFBSSxFQUFFLDJCQUEyQjt3QkFDakMsUUFBUSxFQUFFLElBQUEsNkJBQXFCLEVBQzlCLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUNoQixHQUFHLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FDcEI7cUJBQ0QsQ0FBQyxDQUFBO29CQUNGLE1BQUs7Z0JBQ04sS0FBSyx1QkFBdUI7b0JBQzNCLE9BQU8sQ0FBQzt3QkFDUCxJQUFJLEVBQUUsMkJBQTJCO3dCQUNqQyxRQUFRLEVBQUUsTUFBTSxJQUFBLDZCQUFxQixHQUFFO3FCQUN2QyxDQUFDLENBQUE7b0JBQ0YsTUFBSztnQkFDTixLQUFLLGFBQWE7b0JBQ2pCLE1BQU0sR0FBRyxJQUFBLGtCQUFVLEVBQ2xCLElBQUksRUFDSixHQUFHLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFDcEIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxhQUFhO3dCQUN4QixDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUNyQixXQUFXLENBQUM7NEJBQ1gsSUFBSSxFQUFFLEtBQUs7NEJBQ1gsS0FBSzs0QkFDTCxPQUFPOzRCQUNQLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTTs0QkFDbEIsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFO3lCQUNWLENBQUMsQ0FDRjt3QkFDRCxDQUFDLENBQUMsU0FBUyxDQUNaLENBQUE7b0JBQ0QsT0FBTyxDQUFDO3dCQUNQLElBQUksRUFBRSxpQkFBaUI7d0JBQ3ZCLFFBQVEsRUFBRSxTQUFTO3FCQUNuQixDQUFDLENBQUE7b0JBQ0YsTUFBSztnQkFDTixLQUFLLGFBQWE7b0JBQ2pCLE9BQU8sQ0FBQzt3QkFDUCxJQUFJLEVBQUUsaUJBQWlCO3dCQUN2QixRQUFRLEVBQUUsTUFBTSxJQUFBLHFCQUFTLEdBQUU7cUJBQzNCLENBQUMsQ0FBQTtvQkFDRixNQUFLO2dCQUNOO29CQUNDLE1BQUs7WUFDTixDQUFDO1FBQ0YsQ0FBQztRQUFDLE9BQU0sR0FBRyxFQUFFLENBQUM7WUFDYixNQUFNLENBQUMsS0FBSyxDQUNYLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLEVBQzNDLGNBQWMsQ0FDZCxDQUFBO1lBQ0QsT0FBTyxDQUFDO2dCQUNQLElBQUksRUFBRSxPQUFPO2dCQUNiLElBQUksRUFBRTtvQkFDTCxPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU87b0JBQ3BCLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSztpQkFDaEI7YUFDRCxDQUFDLENBQUE7UUFDSCxDQUFDO1FBRUQsU0FBUyxjQUFjLENBQ3RCLE9BQ0UsU0FBUyxFQUNYLFdBQXFCLFNBQVM7WUFFOUIsMEJBQTBCO1lBQzFCLElBQUcsSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUN2QixPQUFNO1lBQ1AsQ0FBQztZQUVELDJDQUEyQztZQUMzQyxrQ0FBa0M7WUFDbEMsTUFBTSxTQUFTLEdBQWdCLEVBQUUsQ0FBQTtZQUNqQyxLQUFJLE1BQU0sR0FBRyxJQUFJLGtDQUFrQixFQUFFLENBQUM7Z0JBQ3JDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFBLHVDQUF1QixFQUN2QyxHQUFHLEVBQ0gsdUJBQXVCLEVBQUUsRUFDekIsUUFBUSxDQUNSLENBQUE7WUFDRixDQUFDO1lBRUQsT0FBTyxTQUFTLENBQUE7UUFDakIsQ0FBQztRQUVELFNBQVMsZ0JBQWdCLENBQ3hCLE9BQ0UsU0FBUyxFQUNYLFdBQXFCLFNBQVM7WUFFOUIsMEJBQTBCO1lBQzFCLElBQUcsSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUN2QixPQUFNO1lBQ1AsQ0FBQztZQUVELDJDQUEyQztZQUMzQyxrQ0FBa0M7WUFDbEMsTUFBTSxTQUFTLEdBQWtCLEVBQUUsQ0FBQTtZQUNuQyxLQUFJLE1BQU0sR0FBRyxJQUFJLGtDQUFrQixFQUFFLENBQUM7Z0JBQ3JDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFBLHlDQUF5QixFQUN6QyxHQUFHLEVBQ0gsdUJBQXVCLEVBQUUsRUFDekIsUUFBUSxDQUNSLENBQUE7WUFDRixDQUFDO1lBRUQsT0FBTyxTQUFTLENBQUE7UUFDakIsQ0FBQztRQUVELFNBQVMsdUJBQXVCO1lBQy9CLE9BQU87Z0JBQ04sSUFBSSxFQUFFLFdBQVc7Z0JBQ2pCLFNBQVMsQ0FBQyxFQUFFO29CQUNYLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUE7b0JBRTlDLE9BQU8sR0FBRyxFQUFFO3dCQUNYLFVBQVUsQ0FBQyxtQkFBbUIsQ0FDN0IsU0FBUyxFQUNULE1BQU0sQ0FDTixDQUFBO29CQUNGLENBQUMsQ0FBQTtvQkFFRCxTQUFTLE1BQU0sQ0FBQyxHQUFtQjt3QkFDbEMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtvQkFDYixDQUFDO2dCQUNGLENBQUM7YUFDRCxDQUFBO1FBQ0YsQ0FBQztRQUVELFNBQVMsT0FBTyxDQUNmLElBQ3lCO1lBRXpCLE1BQU0sR0FBRyxHQUFHO2dCQUNYLEdBQUcsSUFBSTtnQkFDUCxFQUFFO2dCQUNGLE1BQU0sRUFBRSxlQUFlO2dCQUN2QixVQUFVLEVBQUUsSUFBSTthQUNRLENBQUE7WUFDekIsT0FBTyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDeEIsQ0FBQztRQUVELFNBQVMsV0FBVyxDQUFDLElBQTBCOztZQUM5QyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSw0QkFBaUIsQ0FBQyxDQUFBO1lBQ25ELElBQUcsT0FBTyxFQUFFLENBQUM7Z0JBQ1osTUFBQSxNQUFNLENBQUMsT0FBTyxDQUFDLDBDQUFFLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQTtZQUNsQyxDQUFDO2lCQUFNLENBQUM7Z0JBQ1AsS0FBSyxDQUFDLE1BQU8sQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUE7WUFDL0IsQ0FBQztRQUNGLENBQUM7UUFFRCxLQUFLLFVBQVUsb0JBQW9CLENBQUMsVUFBVSxFQUFFLFVBQVU7WUFJekQsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFBLCtDQUF1QyxFQUMzRCxVQUFVLEVBQ1YsVUFBVSxDQUNWLENBQUE7WUFDRCxNQUFNLE1BQU0sR0FBRyx1QkFBdUIsRUFBRSxDQUFBO1lBQ3hDLE1BQU0sRUFBRSxHQUFHLElBQUEsNEJBQW9CLEdBQUUsQ0FBQTtZQUNqQyxNQUFNLFVBQVUsR0FBRyxJQUFBLHVCQUFlLEVBQUMsc0JBQXNCLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFBO1lBQ3RFLE1BQU0sQ0FBQyxJQUFJLENBQUM7Z0JBQ1gsSUFBSSxFQUFFLHNCQUFzQjtnQkFDNUIsRUFBRTtnQkFDRixPQUFPLEVBQUU7b0JBQ1IsT0FBTyxFQUFFO3dCQUNSLEdBQUcsR0FBRzt3QkFDTixJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7NEJBQ2IsQ0FBQyxDQUFDLElBQUEscUJBQWUsRUFBQyxHQUFHLENBQUMsSUFBSSxDQUFDOzRCQUMzQixDQUFDLENBQUMsU0FBUztxQkFDWjtvQkFDRCxRQUFRLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxJQUFJLEVBQUcsSUFBQSxxQkFBZSxFQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtpQkFDdEQ7Z0JBQ0QsTUFBTSxFQUFFLGVBQWU7YUFDdkIsQ0FBQyxDQUFBO1lBQ0YsT0FBTyxNQUFNLFVBQVUsQ0FBQTtRQUN4QixDQUFDO0lBQ0YsQ0FBQztBQUNGLENBQUMifQ==