@reclaimprotocol/attestor-core 5.0.1-beta.21 → 5.0.1-beta.22

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 (132) hide show
  1. package/browser/resources/attestor-browser.min.mjs +9 -9
  2. package/lib/avs/abis/avsDirectoryABI.js +340 -0
  3. package/lib/avs/abis/delegationABI.js +1 -0
  4. package/lib/avs/abis/registryABI.js +725 -0
  5. package/lib/avs/client/create-claim-on-avs.js +140 -0
  6. package/lib/avs/config.js +20 -0
  7. package/lib/avs/contracts/factories/ReclaimServiceManager__factory.js +1166 -0
  8. package/lib/avs/contracts/factories/index.js +4 -0
  9. package/lib/avs/contracts/index.js +2 -0
  10. package/lib/avs/utils/contracts.js +33 -0
  11. package/lib/avs/utils/register.js +79 -0
  12. package/lib/avs/utils/tasks.js +41 -0
  13. package/lib/client/create-claim.js +432 -0
  14. package/lib/client/index.js +3 -0
  15. package/lib/client/tunnels/make-rpc-tcp-tunnel.js +51 -0
  16. package/lib/client/tunnels/make-rpc-tls-tunnel.js +131 -0
  17. package/lib/client/utils/attestor-pool.js +25 -0
  18. package/lib/client/utils/client-socket.js +97 -0
  19. package/lib/client/utils/message-handler.js +87 -0
  20. package/lib/config/index.js +44 -0
  21. package/lib/external-rpc/benchmark.js +69 -0
  22. package/lib/external-rpc/event-bus.js +14 -0
  23. package/lib/external-rpc/handle-incoming-msg.js +232 -0
  24. package/lib/external-rpc/index.js +3 -10399
  25. package/lib/external-rpc/jsc-polyfills/1.js +82 -0
  26. package/lib/external-rpc/jsc-polyfills/2.js +20 -0
  27. package/lib/external-rpc/jsc-polyfills/event.js +14 -0
  28. package/lib/external-rpc/jsc-polyfills/index.js +2 -0
  29. package/lib/external-rpc/jsc-polyfills/ws.js +81 -0
  30. package/lib/external-rpc/setup-browser.js +33 -0
  31. package/lib/external-rpc/setup-jsc.js +22 -0
  32. package/lib/external-rpc/types.js +1 -0
  33. package/lib/external-rpc/utils.js +100 -0
  34. package/lib/external-rpc/zk.js +63 -0
  35. package/lib/index.js +9 -8326
  36. package/lib/mechain/abis/governanceABI.js +458 -0
  37. package/lib/mechain/abis/taskABI.js +509 -0
  38. package/lib/mechain/client/create-claim-on-mechain.js +28 -0
  39. package/lib/mechain/client/index.js +1 -0
  40. package/lib/mechain/constants/index.js +3 -0
  41. package/lib/mechain/index.js +2 -0
  42. package/lib/proto/api.js +4363 -0
  43. package/lib/proto/tee-bundle.js +1316 -0
  44. package/lib/providers/http/index.js +653 -0
  45. package/lib/providers/http/patch-parse5-tree.js +32 -0
  46. package/lib/providers/http/utils.js +324 -0
  47. package/lib/providers/index.js +4 -0
  48. package/lib/server/create-server.js +103 -0
  49. package/lib/server/handlers/claimTeeBundle.js +252 -0
  50. package/lib/server/handlers/claimTunnel.js +73 -0
  51. package/lib/server/handlers/completeClaimOnChain.js +24 -0
  52. package/lib/server/handlers/createClaimOnChain.js +26 -0
  53. package/lib/server/handlers/createTaskOnMechain.js +47 -0
  54. package/lib/server/handlers/createTunnel.js +93 -0
  55. package/lib/server/handlers/disconnectTunnel.js +5 -0
  56. package/lib/server/handlers/fetchCertificateBytes.js +41 -0
  57. package/lib/server/handlers/index.js +22 -0
  58. package/lib/server/handlers/init.js +32 -0
  59. package/lib/server/handlers/toprf.js +16 -0
  60. package/lib/server/index.js +4 -0
  61. package/lib/server/socket.js +109 -0
  62. package/lib/server/tunnels/make-tcp-tunnel.js +177 -0
  63. package/lib/server/utils/apm.js +36 -0
  64. package/lib/server/utils/assert-valid-claim-request.js +325 -0
  65. package/lib/server/utils/config-env.js +4 -0
  66. package/lib/server/utils/dns.js +18 -0
  67. package/lib/server/utils/gcp-attestation.js +289 -0
  68. package/lib/server/utils/generics.d.ts +1 -1
  69. package/lib/server/utils/generics.js +51 -0
  70. package/lib/server/utils/iso.js +256 -0
  71. package/lib/server/utils/keep-alive.js +38 -0
  72. package/lib/server/utils/nitro-attestation.js +324 -0
  73. package/lib/server/utils/oprf-raw.js +54 -0
  74. package/lib/server/utils/process-handshake.js +215 -0
  75. package/lib/server/utils/proxy-session.js +6 -0
  76. package/lib/server/utils/tee-oprf-mpc-verification.js +90 -0
  77. package/lib/server/utils/tee-oprf-verification.js +174 -0
  78. package/lib/server/utils/tee-transcript-reconstruction.js +187 -0
  79. package/lib/server/utils/tee-verification.js +421 -0
  80. package/lib/server/utils/validation.js +38 -0
  81. package/lib/types/bgp.js +1 -0
  82. package/lib/types/claims.js +1 -0
  83. package/lib/types/client.js +1 -0
  84. package/lib/types/general.js +1 -0
  85. package/lib/types/handlers.js +1 -0
  86. package/lib/types/index.js +10 -0
  87. package/lib/types/providers.d.ts +3 -2
  88. package/lib/types/providers.gen.js +10 -0
  89. package/lib/types/providers.js +1 -0
  90. package/lib/types/rpc.js +1 -0
  91. package/lib/types/signatures.d.ts +1 -2
  92. package/lib/types/signatures.js +1 -0
  93. package/lib/types/tunnel.js +1 -0
  94. package/lib/types/zk.js +1 -0
  95. package/lib/utils/auth.js +59 -0
  96. package/lib/utils/b64-json.js +17 -0
  97. package/lib/utils/bgp-listener.js +119 -0
  98. package/lib/utils/claims.js +98 -0
  99. package/lib/utils/env.js +15 -0
  100. package/lib/utils/error.js +50 -0
  101. package/lib/utils/generics.js +317 -0
  102. package/lib/utils/http-parser.js +246 -0
  103. package/lib/utils/index.js +13 -0
  104. package/lib/utils/logger.js +91 -0
  105. package/lib/utils/prepare-packets.js +71 -0
  106. package/lib/utils/redactions.js +177 -0
  107. package/lib/utils/retries.js +24 -0
  108. package/lib/utils/signatures/eth.js +32 -0
  109. package/lib/utils/signatures/index.js +7 -0
  110. package/lib/utils/socket-base.js +92 -0
  111. package/lib/utils/tls.js +58 -0
  112. package/lib/utils/ws.js +22 -0
  113. package/lib/utils/zk.js +585 -0
  114. package/package.json +5 -3
  115. package/lib/scripts/check-avs-registration.d.ts +0 -1
  116. package/lib/scripts/fallbacks/crypto.d.ts +0 -1
  117. package/lib/scripts/fallbacks/empty.d.ts +0 -3
  118. package/lib/scripts/fallbacks/re2.d.ts +0 -1
  119. package/lib/scripts/fallbacks/snarkjs.d.ts +0 -1
  120. package/lib/scripts/fallbacks/stwo.d.ts +0 -6
  121. package/lib/scripts/generate-provider-types.d.ts +0 -5
  122. package/lib/scripts/generate-receipt.d.ts +0 -9
  123. package/lib/scripts/jsc-cli-rpc.d.ts +0 -1
  124. package/lib/scripts/register-avs-operator.d.ts +0 -1
  125. package/lib/scripts/start-server.d.ts +0 -1
  126. package/lib/scripts/update-avs-metadata.d.ts +0 -1
  127. package/lib/scripts/utils.d.ts +0 -1
  128. package/lib/scripts/whitelist-operator.d.ts +0 -1
  129. /package/lib/{scripts/build-browser.d.ts → avs/contracts/ReclaimServiceManager.js} +0 -0
  130. /package/lib/{scripts/build-jsc.d.ts → avs/contracts/common.js} +0 -0
  131. /package/lib/{scripts/build-lib.d.ts → avs/types/index.js} +0 -0
  132. /package/lib/{scripts/generate-toprf-keys.d.ts → mechain/types/index.js} +0 -0
@@ -0,0 +1,1166 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ import { Contract, ContractFactory, Interface, } from "ethers";
5
+ const _abi = [
6
+ {
7
+ type: "constructor",
8
+ inputs: [
9
+ {
10
+ name: "_avsDirectory",
11
+ type: "address",
12
+ internalType: "address",
13
+ },
14
+ {
15
+ name: "_stakeRegistry",
16
+ type: "address",
17
+ internalType: "address",
18
+ },
19
+ {
20
+ name: "_delegationManager",
21
+ type: "address",
22
+ internalType: "address",
23
+ },
24
+ ],
25
+ stateMutability: "nonpayable",
26
+ },
27
+ {
28
+ type: "function",
29
+ name: "admins",
30
+ inputs: [
31
+ {
32
+ name: "",
33
+ type: "uint256",
34
+ internalType: "uint256",
35
+ },
36
+ ],
37
+ outputs: [
38
+ {
39
+ name: "",
40
+ type: "address",
41
+ internalType: "address",
42
+ },
43
+ ],
44
+ stateMutability: "view",
45
+ },
46
+ {
47
+ type: "function",
48
+ name: "allTaskHashes",
49
+ inputs: [
50
+ {
51
+ name: "",
52
+ type: "uint32",
53
+ internalType: "uint32",
54
+ },
55
+ ],
56
+ outputs: [
57
+ {
58
+ name: "",
59
+ type: "bytes32",
60
+ internalType: "bytes32",
61
+ },
62
+ ],
63
+ stateMutability: "view",
64
+ },
65
+ {
66
+ type: "function",
67
+ name: "avsDirectory",
68
+ inputs: [],
69
+ outputs: [
70
+ {
71
+ name: "",
72
+ type: "address",
73
+ internalType: "address",
74
+ },
75
+ ],
76
+ stateMutability: "view",
77
+ },
78
+ {
79
+ type: "function",
80
+ name: "checkSignerAddress",
81
+ inputs: [
82
+ {
83
+ name: "request",
84
+ type: "tuple",
85
+ internalType: "struct IReclaimServiceManager.ClaimRequest",
86
+ components: [
87
+ {
88
+ name: "provider",
89
+ type: "string",
90
+ internalType: "string",
91
+ },
92
+ {
93
+ name: "claimUserId",
94
+ type: "bytes32",
95
+ internalType: "bytes32",
96
+ },
97
+ {
98
+ name: "claimHash",
99
+ type: "bytes32",
100
+ internalType: "bytes32",
101
+ },
102
+ {
103
+ name: "requestedAt",
104
+ type: "uint32",
105
+ internalType: "uint32",
106
+ },
107
+ {
108
+ name: "owner",
109
+ type: "address",
110
+ internalType: "address",
111
+ },
112
+ ],
113
+ },
114
+ {
115
+ name: "requestSignature",
116
+ type: "bytes",
117
+ internalType: "bytes",
118
+ },
119
+ ],
120
+ outputs: [
121
+ {
122
+ name: "",
123
+ type: "address",
124
+ internalType: "address",
125
+ },
126
+ ],
127
+ stateMutability: "pure",
128
+ },
129
+ {
130
+ type: "function",
131
+ name: "createNewTask",
132
+ inputs: [
133
+ {
134
+ name: "request",
135
+ type: "tuple",
136
+ internalType: "struct IReclaimServiceManager.ClaimRequest",
137
+ components: [
138
+ {
139
+ name: "provider",
140
+ type: "string",
141
+ internalType: "string",
142
+ },
143
+ {
144
+ name: "claimUserId",
145
+ type: "bytes32",
146
+ internalType: "bytes32",
147
+ },
148
+ {
149
+ name: "claimHash",
150
+ type: "bytes32",
151
+ internalType: "bytes32",
152
+ },
153
+ {
154
+ name: "requestedAt",
155
+ type: "uint32",
156
+ internalType: "uint32",
157
+ },
158
+ {
159
+ name: "owner",
160
+ type: "address",
161
+ internalType: "address",
162
+ },
163
+ ],
164
+ },
165
+ {
166
+ name: "requestSignature",
167
+ type: "bytes",
168
+ internalType: "bytes",
169
+ },
170
+ ],
171
+ outputs: [],
172
+ stateMutability: "nonpayable",
173
+ },
174
+ {
175
+ type: "function",
176
+ name: "deregisterOperatorFromAVS",
177
+ inputs: [
178
+ {
179
+ name: "operator",
180
+ type: "address",
181
+ internalType: "address",
182
+ },
183
+ ],
184
+ outputs: [],
185
+ stateMutability: "nonpayable",
186
+ },
187
+ {
188
+ type: "function",
189
+ name: "encodeClaimRequest",
190
+ inputs: [
191
+ {
192
+ name: "request",
193
+ type: "tuple",
194
+ internalType: "struct IReclaimServiceManager.ClaimRequest",
195
+ components: [
196
+ {
197
+ name: "provider",
198
+ type: "string",
199
+ internalType: "string",
200
+ },
201
+ {
202
+ name: "claimUserId",
203
+ type: "bytes32",
204
+ internalType: "bytes32",
205
+ },
206
+ {
207
+ name: "claimHash",
208
+ type: "bytes32",
209
+ internalType: "bytes32",
210
+ },
211
+ {
212
+ name: "requestedAt",
213
+ type: "uint32",
214
+ internalType: "uint32",
215
+ },
216
+ {
217
+ name: "owner",
218
+ type: "address",
219
+ internalType: "address",
220
+ },
221
+ ],
222
+ },
223
+ ],
224
+ outputs: [
225
+ {
226
+ name: "",
227
+ type: "bytes",
228
+ internalType: "bytes",
229
+ },
230
+ ],
231
+ stateMutability: "pure",
232
+ },
233
+ {
234
+ type: "function",
235
+ name: "getMetadataForOperator",
236
+ inputs: [
237
+ {
238
+ name: "operator",
239
+ type: "address",
240
+ internalType: "address",
241
+ },
242
+ ],
243
+ outputs: [
244
+ {
245
+ name: "",
246
+ type: "tuple",
247
+ internalType: "struct IReclaimServiceManager.OperatorMetadata",
248
+ components: [
249
+ {
250
+ name: "addr",
251
+ type: "address",
252
+ internalType: "address",
253
+ },
254
+ {
255
+ name: "url",
256
+ type: "string",
257
+ internalType: "string",
258
+ },
259
+ ],
260
+ },
261
+ ],
262
+ stateMutability: "view",
263
+ },
264
+ {
265
+ type: "function",
266
+ name: "getOperatorRestakedStrategies",
267
+ inputs: [
268
+ {
269
+ name: "_operator",
270
+ type: "address",
271
+ internalType: "address",
272
+ },
273
+ ],
274
+ outputs: [
275
+ {
276
+ name: "",
277
+ type: "address[]",
278
+ internalType: "address[]",
279
+ },
280
+ ],
281
+ stateMutability: "view",
282
+ },
283
+ {
284
+ type: "function",
285
+ name: "getRestakeableStrategies",
286
+ inputs: [],
287
+ outputs: [
288
+ {
289
+ name: "",
290
+ type: "address[]",
291
+ internalType: "address[]",
292
+ },
293
+ ],
294
+ stateMutability: "view",
295
+ },
296
+ {
297
+ type: "function",
298
+ name: "isAdmin",
299
+ inputs: [
300
+ {
301
+ name: "_admin",
302
+ type: "address",
303
+ internalType: "address",
304
+ },
305
+ ],
306
+ outputs: [
307
+ {
308
+ name: "",
309
+ type: "bool",
310
+ internalType: "bool",
311
+ },
312
+ ],
313
+ stateMutability: "view",
314
+ },
315
+ {
316
+ type: "function",
317
+ name: "isOperatorWhitelisted",
318
+ inputs: [
319
+ {
320
+ name: "operator",
321
+ type: "address",
322
+ internalType: "address",
323
+ },
324
+ ],
325
+ outputs: [
326
+ {
327
+ name: "",
328
+ type: "bool",
329
+ internalType: "bool",
330
+ },
331
+ ],
332
+ stateMutability: "view",
333
+ },
334
+ {
335
+ type: "function",
336
+ name: "latestTaskNum",
337
+ inputs: [],
338
+ outputs: [
339
+ {
340
+ name: "",
341
+ type: "uint32",
342
+ internalType: "uint32",
343
+ },
344
+ ],
345
+ stateMutability: "view",
346
+ },
347
+ {
348
+ type: "function",
349
+ name: "operatorHasMinimumWeight",
350
+ inputs: [
351
+ {
352
+ name: "operator",
353
+ type: "address",
354
+ internalType: "address",
355
+ },
356
+ ],
357
+ outputs: [
358
+ {
359
+ name: "",
360
+ type: "bool",
361
+ internalType: "bool",
362
+ },
363
+ ],
364
+ stateMutability: "view",
365
+ },
366
+ {
367
+ type: "function",
368
+ name: "owner",
369
+ inputs: [],
370
+ outputs: [
371
+ {
372
+ name: "",
373
+ type: "address",
374
+ internalType: "address",
375
+ },
376
+ ],
377
+ stateMutability: "view",
378
+ },
379
+ {
380
+ type: "function",
381
+ name: "pause",
382
+ inputs: [
383
+ {
384
+ name: "newPausedStatus",
385
+ type: "uint256",
386
+ internalType: "uint256",
387
+ },
388
+ ],
389
+ outputs: [],
390
+ stateMutability: "nonpayable",
391
+ },
392
+ {
393
+ type: "function",
394
+ name: "pauseAll",
395
+ inputs: [],
396
+ outputs: [],
397
+ stateMutability: "nonpayable",
398
+ },
399
+ {
400
+ type: "function",
401
+ name: "paused",
402
+ inputs: [
403
+ {
404
+ name: "index",
405
+ type: "uint8",
406
+ internalType: "uint8",
407
+ },
408
+ ],
409
+ outputs: [
410
+ {
411
+ name: "",
412
+ type: "bool",
413
+ internalType: "bool",
414
+ },
415
+ ],
416
+ stateMutability: "view",
417
+ },
418
+ {
419
+ type: "function",
420
+ name: "paused",
421
+ inputs: [],
422
+ outputs: [
423
+ {
424
+ name: "",
425
+ type: "uint256",
426
+ internalType: "uint256",
427
+ },
428
+ ],
429
+ stateMutability: "view",
430
+ },
431
+ {
432
+ type: "function",
433
+ name: "pauserRegistry",
434
+ inputs: [],
435
+ outputs: [
436
+ {
437
+ name: "",
438
+ type: "address",
439
+ internalType: "contract IPauserRegistry",
440
+ },
441
+ ],
442
+ stateMutability: "view",
443
+ },
444
+ {
445
+ type: "function",
446
+ name: "payForRange",
447
+ inputs: [
448
+ {
449
+ name: "rangePayments",
450
+ type: "tuple[]",
451
+ internalType: "struct IPaymentCoordinator.RangePayment[]",
452
+ components: [
453
+ {
454
+ name: "strategiesAndMultipliers",
455
+ type: "tuple[]",
456
+ internalType: "struct IPaymentCoordinator.StrategyAndMultiplier[]",
457
+ components: [
458
+ {
459
+ name: "strategy",
460
+ type: "address",
461
+ internalType: "contract IStrategy",
462
+ },
463
+ {
464
+ name: "multiplier",
465
+ type: "uint96",
466
+ internalType: "uint96",
467
+ },
468
+ ],
469
+ },
470
+ {
471
+ name: "token",
472
+ type: "address",
473
+ internalType: "contract IERC20",
474
+ },
475
+ {
476
+ name: "amount",
477
+ type: "uint256",
478
+ internalType: "uint256",
479
+ },
480
+ {
481
+ name: "startTimestamp",
482
+ type: "uint32",
483
+ internalType: "uint32",
484
+ },
485
+ {
486
+ name: "duration",
487
+ type: "uint32",
488
+ internalType: "uint32",
489
+ },
490
+ ],
491
+ },
492
+ ],
493
+ outputs: [],
494
+ stateMutability: "nonpayable",
495
+ },
496
+ {
497
+ type: "function",
498
+ name: "registerOperatorToAVS",
499
+ inputs: [
500
+ {
501
+ name: "operator",
502
+ type: "address",
503
+ internalType: "address",
504
+ },
505
+ {
506
+ name: "operatorSignature",
507
+ type: "tuple",
508
+ internalType: "struct ISignatureUtils.SignatureWithSaltAndExpiry",
509
+ components: [
510
+ {
511
+ name: "signature",
512
+ type: "bytes",
513
+ internalType: "bytes",
514
+ },
515
+ {
516
+ name: "salt",
517
+ type: "bytes32",
518
+ internalType: "bytes32",
519
+ },
520
+ {
521
+ name: "expiry",
522
+ type: "uint256",
523
+ internalType: "uint256",
524
+ },
525
+ ],
526
+ },
527
+ ],
528
+ outputs: [],
529
+ stateMutability: "nonpayable",
530
+ },
531
+ {
532
+ type: "function",
533
+ name: "registeredOperators",
534
+ inputs: [
535
+ {
536
+ name: "",
537
+ type: "uint256",
538
+ internalType: "uint256",
539
+ },
540
+ ],
541
+ outputs: [
542
+ {
543
+ name: "addr",
544
+ type: "address",
545
+ internalType: "address",
546
+ },
547
+ {
548
+ name: "url",
549
+ type: "string",
550
+ internalType: "string",
551
+ },
552
+ ],
553
+ stateMutability: "view",
554
+ },
555
+ {
556
+ type: "function",
557
+ name: "renounceOwnership",
558
+ inputs: [],
559
+ outputs: [],
560
+ stateMutability: "nonpayable",
561
+ },
562
+ {
563
+ type: "function",
564
+ name: "setPauserRegistry",
565
+ inputs: [
566
+ {
567
+ name: "newPauserRegistry",
568
+ type: "address",
569
+ internalType: "contract IPauserRegistry",
570
+ },
571
+ ],
572
+ outputs: [],
573
+ stateMutability: "nonpayable",
574
+ },
575
+ {
576
+ type: "function",
577
+ name: "setup",
578
+ inputs: [
579
+ {
580
+ name: "initialAdmin",
581
+ type: "address",
582
+ internalType: "address",
583
+ },
584
+ ],
585
+ outputs: [],
586
+ stateMutability: "nonpayable",
587
+ },
588
+ {
589
+ type: "function",
590
+ name: "stakeRegistry",
591
+ inputs: [],
592
+ outputs: [
593
+ {
594
+ name: "",
595
+ type: "address",
596
+ internalType: "address",
597
+ },
598
+ ],
599
+ stateMutability: "view",
600
+ },
601
+ {
602
+ type: "function",
603
+ name: "taskCompleted",
604
+ inputs: [
605
+ {
606
+ name: "completedTask",
607
+ type: "tuple",
608
+ internalType: "struct IReclaimServiceManager.CompletedTask",
609
+ components: [
610
+ {
611
+ name: "task",
612
+ type: "tuple",
613
+ internalType: "struct IReclaimServiceManager.Task",
614
+ components: [
615
+ {
616
+ name: "request",
617
+ type: "tuple",
618
+ internalType: "struct IReclaimServiceManager.ClaimRequest",
619
+ components: [
620
+ {
621
+ name: "provider",
622
+ type: "string",
623
+ internalType: "string",
624
+ },
625
+ {
626
+ name: "claimUserId",
627
+ type: "bytes32",
628
+ internalType: "bytes32",
629
+ },
630
+ {
631
+ name: "claimHash",
632
+ type: "bytes32",
633
+ internalType: "bytes32",
634
+ },
635
+ {
636
+ name: "requestedAt",
637
+ type: "uint32",
638
+ internalType: "uint32",
639
+ },
640
+ {
641
+ name: "owner",
642
+ type: "address",
643
+ internalType: "address",
644
+ },
645
+ ],
646
+ },
647
+ {
648
+ name: "createdAt",
649
+ type: "uint32",
650
+ internalType: "uint32",
651
+ },
652
+ {
653
+ name: "expiresAt",
654
+ type: "uint32",
655
+ internalType: "uint32",
656
+ },
657
+ {
658
+ name: "minimumSignatures",
659
+ type: "uint8",
660
+ internalType: "uint8",
661
+ },
662
+ {
663
+ name: "operators",
664
+ type: "tuple[]",
665
+ internalType: "struct IReclaimServiceManager.Operator[]",
666
+ components: [
667
+ {
668
+ name: "addr",
669
+ type: "address",
670
+ internalType: "address",
671
+ },
672
+ {
673
+ name: "url",
674
+ type: "string",
675
+ internalType: "string",
676
+ },
677
+ ],
678
+ },
679
+ {
680
+ name: "feePaid",
681
+ type: "uint256",
682
+ internalType: "uint256",
683
+ },
684
+ ],
685
+ },
686
+ {
687
+ name: "signatures",
688
+ type: "bytes[]",
689
+ internalType: "bytes[]",
690
+ },
691
+ ],
692
+ },
693
+ {
694
+ name: "referenceTaskIndex",
695
+ type: "uint32",
696
+ internalType: "uint32",
697
+ },
698
+ ],
699
+ outputs: [],
700
+ stateMutability: "nonpayable",
701
+ },
702
+ {
703
+ type: "function",
704
+ name: "taskCreationMetadata",
705
+ inputs: [],
706
+ outputs: [
707
+ {
708
+ name: "maxTaskLifetimeS",
709
+ type: "uint32",
710
+ internalType: "uint32",
711
+ },
712
+ {
713
+ name: "minSignaturesPerTask",
714
+ type: "uint8",
715
+ internalType: "uint8",
716
+ },
717
+ {
718
+ name: "maxTaskCreationDelayS",
719
+ type: "uint32",
720
+ internalType: "uint32",
721
+ },
722
+ ],
723
+ stateMutability: "view",
724
+ },
725
+ {
726
+ type: "function",
727
+ name: "transferOwnership",
728
+ inputs: [
729
+ {
730
+ name: "newOwner",
731
+ type: "address",
732
+ internalType: "address",
733
+ },
734
+ ],
735
+ outputs: [],
736
+ stateMutability: "nonpayable",
737
+ },
738
+ {
739
+ type: "function",
740
+ name: "unpause",
741
+ inputs: [
742
+ {
743
+ name: "newPausedStatus",
744
+ type: "uint256",
745
+ internalType: "uint256",
746
+ },
747
+ ],
748
+ outputs: [],
749
+ stateMutability: "nonpayable",
750
+ },
751
+ {
752
+ type: "function",
753
+ name: "updateAVSMetadataURI",
754
+ inputs: [
755
+ {
756
+ name: "_metadataURI",
757
+ type: "string",
758
+ internalType: "string",
759
+ },
760
+ ],
761
+ outputs: [],
762
+ stateMutability: "nonpayable",
763
+ },
764
+ {
765
+ type: "function",
766
+ name: "updateOperatorMetadata",
767
+ inputs: [
768
+ {
769
+ name: "metadata",
770
+ type: "tuple",
771
+ internalType: "struct IReclaimServiceManager.OperatorMetadata",
772
+ components: [
773
+ {
774
+ name: "addr",
775
+ type: "address",
776
+ internalType: "address",
777
+ },
778
+ {
779
+ name: "url",
780
+ type: "string",
781
+ internalType: "string",
782
+ },
783
+ ],
784
+ },
785
+ ],
786
+ outputs: [],
787
+ stateMutability: "nonpayable",
788
+ },
789
+ {
790
+ type: "function",
791
+ name: "updateTaskCreationMetadata",
792
+ inputs: [
793
+ {
794
+ name: "newMetadata",
795
+ type: "tuple",
796
+ internalType: "struct IReclaimServiceManager.TaskCreationMetadata",
797
+ components: [
798
+ {
799
+ name: "maxTaskLifetimeS",
800
+ type: "uint32",
801
+ internalType: "uint32",
802
+ },
803
+ {
804
+ name: "minSignaturesPerTask",
805
+ type: "uint8",
806
+ internalType: "uint8",
807
+ },
808
+ {
809
+ name: "maxTaskCreationDelayS",
810
+ type: "uint32",
811
+ internalType: "uint32",
812
+ },
813
+ ],
814
+ },
815
+ ],
816
+ outputs: [],
817
+ stateMutability: "nonpayable",
818
+ },
819
+ {
820
+ type: "function",
821
+ name: "whitelistAddressAsOperator",
822
+ inputs: [
823
+ {
824
+ name: "operator",
825
+ type: "address",
826
+ internalType: "address",
827
+ },
828
+ {
829
+ name: "isWhitelisted",
830
+ type: "bool",
831
+ internalType: "bool",
832
+ },
833
+ ],
834
+ outputs: [],
835
+ stateMutability: "nonpayable",
836
+ },
837
+ {
838
+ type: "function",
839
+ name: "whitelistedOperators",
840
+ inputs: [
841
+ {
842
+ name: "",
843
+ type: "uint256",
844
+ internalType: "uint256",
845
+ },
846
+ ],
847
+ outputs: [
848
+ {
849
+ name: "",
850
+ type: "address",
851
+ internalType: "address",
852
+ },
853
+ ],
854
+ stateMutability: "view",
855
+ },
856
+ {
857
+ type: "event",
858
+ name: "Initialized",
859
+ inputs: [
860
+ {
861
+ name: "version",
862
+ type: "uint8",
863
+ indexed: false,
864
+ internalType: "uint8",
865
+ },
866
+ ],
867
+ anonymous: false,
868
+ },
869
+ {
870
+ type: "event",
871
+ name: "NewTaskCreated",
872
+ inputs: [
873
+ {
874
+ name: "taskIndex",
875
+ type: "uint32",
876
+ indexed: true,
877
+ internalType: "uint32",
878
+ },
879
+ {
880
+ name: "task",
881
+ type: "tuple",
882
+ indexed: false,
883
+ internalType: "struct IReclaimServiceManager.Task",
884
+ components: [
885
+ {
886
+ name: "request",
887
+ type: "tuple",
888
+ internalType: "struct IReclaimServiceManager.ClaimRequest",
889
+ components: [
890
+ {
891
+ name: "provider",
892
+ type: "string",
893
+ internalType: "string",
894
+ },
895
+ {
896
+ name: "claimUserId",
897
+ type: "bytes32",
898
+ internalType: "bytes32",
899
+ },
900
+ {
901
+ name: "claimHash",
902
+ type: "bytes32",
903
+ internalType: "bytes32",
904
+ },
905
+ {
906
+ name: "requestedAt",
907
+ type: "uint32",
908
+ internalType: "uint32",
909
+ },
910
+ {
911
+ name: "owner",
912
+ type: "address",
913
+ internalType: "address",
914
+ },
915
+ ],
916
+ },
917
+ {
918
+ name: "createdAt",
919
+ type: "uint32",
920
+ internalType: "uint32",
921
+ },
922
+ {
923
+ name: "expiresAt",
924
+ type: "uint32",
925
+ internalType: "uint32",
926
+ },
927
+ {
928
+ name: "minimumSignatures",
929
+ type: "uint8",
930
+ internalType: "uint8",
931
+ },
932
+ {
933
+ name: "operators",
934
+ type: "tuple[]",
935
+ internalType: "struct IReclaimServiceManager.Operator[]",
936
+ components: [
937
+ {
938
+ name: "addr",
939
+ type: "address",
940
+ internalType: "address",
941
+ },
942
+ {
943
+ name: "url",
944
+ type: "string",
945
+ internalType: "string",
946
+ },
947
+ ],
948
+ },
949
+ {
950
+ name: "feePaid",
951
+ type: "uint256",
952
+ internalType: "uint256",
953
+ },
954
+ ],
955
+ },
956
+ ],
957
+ anonymous: false,
958
+ },
959
+ {
960
+ type: "event",
961
+ name: "OwnershipTransferred",
962
+ inputs: [
963
+ {
964
+ name: "previousOwner",
965
+ type: "address",
966
+ indexed: true,
967
+ internalType: "address",
968
+ },
969
+ {
970
+ name: "newOwner",
971
+ type: "address",
972
+ indexed: true,
973
+ internalType: "address",
974
+ },
975
+ ],
976
+ anonymous: false,
977
+ },
978
+ {
979
+ type: "event",
980
+ name: "Paused",
981
+ inputs: [
982
+ {
983
+ name: "account",
984
+ type: "address",
985
+ indexed: true,
986
+ internalType: "address",
987
+ },
988
+ {
989
+ name: "newPausedStatus",
990
+ type: "uint256",
991
+ indexed: false,
992
+ internalType: "uint256",
993
+ },
994
+ ],
995
+ anonymous: false,
996
+ },
997
+ {
998
+ type: "event",
999
+ name: "PauserRegistrySet",
1000
+ inputs: [
1001
+ {
1002
+ name: "pauserRegistry",
1003
+ type: "address",
1004
+ indexed: false,
1005
+ internalType: "contract IPauserRegistry",
1006
+ },
1007
+ {
1008
+ name: "newPauserRegistry",
1009
+ type: "address",
1010
+ indexed: false,
1011
+ internalType: "contract IPauserRegistry",
1012
+ },
1013
+ ],
1014
+ anonymous: false,
1015
+ },
1016
+ {
1017
+ type: "event",
1018
+ name: "TaskCompleted",
1019
+ inputs: [
1020
+ {
1021
+ name: "taskIndex",
1022
+ type: "uint32",
1023
+ indexed: true,
1024
+ internalType: "uint32",
1025
+ },
1026
+ {
1027
+ name: "task",
1028
+ type: "tuple",
1029
+ indexed: false,
1030
+ internalType: "struct IReclaimServiceManager.CompletedTask",
1031
+ components: [
1032
+ {
1033
+ name: "task",
1034
+ type: "tuple",
1035
+ internalType: "struct IReclaimServiceManager.Task",
1036
+ components: [
1037
+ {
1038
+ name: "request",
1039
+ type: "tuple",
1040
+ internalType: "struct IReclaimServiceManager.ClaimRequest",
1041
+ components: [
1042
+ {
1043
+ name: "provider",
1044
+ type: "string",
1045
+ internalType: "string",
1046
+ },
1047
+ {
1048
+ name: "claimUserId",
1049
+ type: "bytes32",
1050
+ internalType: "bytes32",
1051
+ },
1052
+ {
1053
+ name: "claimHash",
1054
+ type: "bytes32",
1055
+ internalType: "bytes32",
1056
+ },
1057
+ {
1058
+ name: "requestedAt",
1059
+ type: "uint32",
1060
+ internalType: "uint32",
1061
+ },
1062
+ {
1063
+ name: "owner",
1064
+ type: "address",
1065
+ internalType: "address",
1066
+ },
1067
+ ],
1068
+ },
1069
+ {
1070
+ name: "createdAt",
1071
+ type: "uint32",
1072
+ internalType: "uint32",
1073
+ },
1074
+ {
1075
+ name: "expiresAt",
1076
+ type: "uint32",
1077
+ internalType: "uint32",
1078
+ },
1079
+ {
1080
+ name: "minimumSignatures",
1081
+ type: "uint8",
1082
+ internalType: "uint8",
1083
+ },
1084
+ {
1085
+ name: "operators",
1086
+ type: "tuple[]",
1087
+ internalType: "struct IReclaimServiceManager.Operator[]",
1088
+ components: [
1089
+ {
1090
+ name: "addr",
1091
+ type: "address",
1092
+ internalType: "address",
1093
+ },
1094
+ {
1095
+ name: "url",
1096
+ type: "string",
1097
+ internalType: "string",
1098
+ },
1099
+ ],
1100
+ },
1101
+ {
1102
+ name: "feePaid",
1103
+ type: "uint256",
1104
+ internalType: "uint256",
1105
+ },
1106
+ ],
1107
+ },
1108
+ {
1109
+ name: "signatures",
1110
+ type: "bytes[]",
1111
+ internalType: "bytes[]",
1112
+ },
1113
+ ],
1114
+ },
1115
+ ],
1116
+ anonymous: false,
1117
+ },
1118
+ {
1119
+ type: "event",
1120
+ name: "Unpaused",
1121
+ inputs: [
1122
+ {
1123
+ name: "account",
1124
+ type: "address",
1125
+ indexed: true,
1126
+ internalType: "address",
1127
+ },
1128
+ {
1129
+ name: "newPausedStatus",
1130
+ type: "uint256",
1131
+ indexed: false,
1132
+ internalType: "uint256",
1133
+ },
1134
+ ],
1135
+ anonymous: false,
1136
+ },
1137
+ ];
1138
+ const _bytecode = "0x610100604052348015610010575f5ffd5b50604051614a44380380614a4483398101604081905261002f91610140565b6001600160a01b0380841660a0528083166080525f60c081905290821660e052839083908361005c610068565b50505050505050610180565b5f54610100900460ff16156100d35760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff9081161015610123575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b80516001600160a01b038116811461013b575f5ffd5b919050565b5f5f5f60608486031215610152575f5ffd5b61015b84610125565b925061016960208501610125565b915061017760408501610125565b90509250925092565b60805160a05160c05160e0516148446102005f395f6120e401525f8181611e6c0152611f3f01525f81816103c30152818161232001528181612496015261250101525f818161039c015281816107d0015281816111930152818161149e015281816119150152818161198301528181611fa4015261294c01526148445ff3fe608060405234801561000f575f5ffd5b5060043610610213575f3560e01c8063715018a61161011f578063a98fb355116100a9578063d5dba76d11610079578063d5dba76d14610509578063e481af9d1461051c578063f289a7fb14610524578063f2fde38b14610577578063fabc1cbc1461058a575f5ffd5b8063a98fb355146104b0578063aa5b9cad146104c3578063abd3b6bd146104d6578063b224b979146104f6575f5ffd5b806394bb371b116100ef57806394bb371b146104365780639926ee7d14610456578063a3524f9514610469578063a364f4da1461047c578063a551c1b81461048f575f5ffd5b8063715018a6146103e5578063886f1195146103ed5780638b00ce7c146104005780638da5cb5b14610425575f5ffd5b80632e8da829116101a05780635c975abb116101705780635c975abb14610369578063630868dc1461037157806366d382031461038457806368304835146103975780636b3aa72e146103be575f5ffd5b80632e8da8291461030b57806333cfb7b71461031e578063595c6a671461033e5780635ac86ab714610346575f5ffd5b80631b445516116101e65780631b445516146102825780631be785ac146102955780631ee3ca10146102a857806324d7806c146102bb5780632d89f6fc146102de575f5ffd5b806310d67a2f14610217578063136439dd1461022c57806314bfd6d01461023f57806316bd83c31461026f575b5f5ffd5b61022a6102253660046133db565b61059d565b005b61022a61023a3660046133f6565b610656565b61025261024d3660046133f6565b610793565b6040516001600160a01b0390911681526020015b60405180910390f35b61022a61027d3660046135a7565b6107bb565b61022a6102903660046135d8565b610b18565b61022a6102a3366004613654565b610b2e565b61022a6102b63660046136ae565b610c23565b6102ce6102c93660046133db565b610ce2565b6040519015158152602001610266565b6102fd6102ec3660046136fc565b60cb6020525f908152604090205481565b604051908152602001610266565b6102ce6103193660046133db565b610d67565b61033161032c3660046133db565b610dd1565b6040516102669190613715565b61022a610de2565b6102ce610354366004613760565b609854600160ff9092169190911b9081161490565b6098546102fd565b61025261037f3660046133f6565b610ea6565b61022a6103923660046133db565b610eb5565b6102527f000000000000000000000000000000000000000000000000000000000000000081565b6102527f000000000000000000000000000000000000000000000000000000000000000081565b61022a611039565b609754610252906001600160a01b031681565b60c9546104109063ffffffff1681565b60405163ffffffff9091168152602001610266565b6033546001600160a01b0316610252565b6104496104443660046133db565b61104c565b60405161026691906137cd565b61022a6104643660046137df565b611188565b61022a610477366004613a33565b61122f565b61022a61048a3660046133db565b611493565b6104a261049d3660046133f6565b6114e4565b604051610266929190613b74565b61022a6104be366004613b97565b6115a2565b6102526104d1366004613bc8565b6115d0565b6104e96104e4366004613c2b565b611606565b6040516102669190613c5c565b61022a610504366004613bc8565b61162f565b6102ce6105173660046133db565b6118f2565b610331611a0c565b60ca5461054e9063ffffffff8082169160ff64010000000082041691650100000000009091041683565b6040805163ffffffff948516815260ff9093166020840152921691810191909152606001610266565b61022a6105853660046133db565b611a1b565b61022a6105983660046133f6565b611a91565b60975f9054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105ed573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106119190613c6e565b6001600160a01b0316336001600160a01b03161461064a5760405162461bcd60e51b815260040161064190613c89565b60405180910390fd5b61065381611bea565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa15801561069c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106c09190613cd3565b6106dc5760405162461bcd60e51b815260040161064190613cee565b609854818116146107555760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610641565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60cd81815481106107a2575f80fd5b5f918252602090912001546001600160a01b0316905081565b60405163ec7fbb3160e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ec7fbb3190602401602060405180830381865afa15801561081d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108419190613cd3565b15156001146108925760405162461bcd60e51b815260206004820152601b60248201527f4f70657261746f72206d757374206265207468652063616c6c657200000000006044820152606401610641565b80516001600160a01b031633146108fa5760405162461bcd60e51b815260206004820152602660248201527f4d657461646174612061646472657373206d757374206d61746368207468652060448201526531b0b63632b960d11b6064820152608401610641565b6020810151511580156109db575f5b60ce5481101561099d57825f01516001600160a01b031660ce828154811061093357610933613d36565b5f9182526020909120600290910201546001600160a01b0316036109955760ce818154811061096457610964613d36565b5f9182526020822060029091020180546001600160a01b03191681559061098e600183018261337c565b5050505050565b600101610909565b5060405162461bcd60e51b815260206004820152601260248201527113dc195c985d1bdc881b9bdd08199bdd5b9960721b6044820152606401610641565b5f5b60ce54811015610a8c57825f01516001600160a01b031660ce8281548110610a0757610a07613d36565b5f9182526020909120600290910201546001600160a01b031603610a84578260ce8281548110610a3957610a39613d36565b5f91825260209182902083516002929092020180546001600160a01b0319166001600160a01b03909216919091178155908201516001820190610a7c9082613dd5565b505050505050565b6001016109dd565b5060ce80546001810182555f9190915282517fd36cd1c74ef8d7326d8021b776c18fb5a5724b7f7bc93c2f42e43e10ef27d12a600290920291820180546001600160a01b0319166001600160a01b03909216919091178155602084015184927fd36cd1c74ef8d7326d8021b776c18fb5a5724b7f7bc93c2f42e43e10ef27d12b019061098e9082613dd5565b610b20611ce1565b610b2a8282611d3b565b5050565b610b3733610ce2565b610b535760405162461bcd60e51b815260040161064190613e8f565b8015610ba95760cc80546001810182555f919091527f47197230e1e4b29fc0bd84d7d78966c0925452aff72a2a121538b102457e9ebe0180546001600160a01b0384166001600160a01b03199091161790555050565b5f5b60cc5481101561099d57826001600160a01b031660cc8281548110610bd257610bd2613d36565b5f918252602090912001546001600160a01b031603610c1b5760cc8181548110610bfe57610bfe613d36565b5f91825260209091200180546001600160a01b0319169055505050565b600101610bab565b610c2c33610ce2565b610c485760405162461bcd60e51b815260040161064190613e8f565b805163ffffffff1615610c7157805160ca805463ffffffff191663ffffffff9092169190911790555b602081015160ff1615610ca457602081015160ca805460ff9092166401000000000264ff00000000199092169190911790555b604081015163ffffffff1615610653576040015160ca805463ffffffff909216650100000000000268ffffffff000000000019909216919091179055565b5f610cf56033546001600160a01b031690565b6001600160a01b03163303610d0c57506001919050565b5f5b60cd54811015610d5f57826001600160a01b031660cd8281548110610d3557610d35613d36565b5f918252602090912001546001600160a01b031603610d575750600192915050565b600101610d0e565b505f92915050565b5f610d7182610ce2565b15610d7e57506001919050565b5f5b60cc54811015610d5f57826001600160a01b031660cc8281548110610da757610da7613d36565b5f918252602090912001546001600160a01b031603610dc95750600192915050565b600101610d80565b6060610ddc82611f9f565b92915050565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610e28573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e4c9190613cd3565b610e685760405162461bcd60e51b815260040161064190613cee565b5f19609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60cc81815481106107a2575f80fd5b5f54610100900460ff1615808015610ed357505f54600160ff909116105b80610eec5750303b158015610eec57505f5460ff166001145b610f4f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610641565b5f805460ff191660011790558015610f70575f805461ff0019166101001790555b60408051606081018252610708815260016020820181905261012c919092015260ca805468ffffffffffffffffff191666012c010000070817905560cd805491820181555f527f83978b4c69c48dd978ab43fe30f077615294f938fb7f936d9eb340e51ea7db2e0180546001600160a01b0319166001600160a01b0384161790558015610b2a575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b611041611ce1565b61104a5f6122b8565b565b604080518082019091525f8152606060208201525f5b60ce5481101561099d57826001600160a01b031660ce828154811061108957611089613d36565b5f9182526020909120600290910201546001600160a01b0316036111805760ce81815481106110ba576110ba613d36565b5f9182526020918290206040805180820190915260029092020180546001600160a01b0316825260018101805492939192918401916110f890613d4a565b80601f016020809104026020016040519081016040528092919081815260200182805461112490613d4a565b801561116f5780601f106111465761010080835404028352916020019161116f565b820191905f5260205f20905b81548152906001019060200180831161115257829003601f168201915b505050505081525050915050919050565b600101611062565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146111d05760405162461bcd60e51b815260040161064190613ebc565b6111d982610d67565b6112255760405162461bcd60e51b815260206004820152601860248201527f4f70657261746f72206e6f742077686974656c697374656400000000000000006044820152606401610641565b610b2a8282612309565b63ffffffff81165f90815260cb60209081526040918290205484519251909261125a92909101614039565b60405160208183030381529060405280519060200120146112e35760405162461bcd60e51b815260206004820152603d60248201527f737570706c696564207461736b20646f6573206e6f74206d617463682074686560448201527f206f6e65207265636f7264656420696e2074686520636f6e74726163740000006064820152608401610641565b81516040015163ffffffff4281169116116113335760405162461bcd60e51b815260206004820152601060248201526f15185cdac81a185cc8195e1c1a5c995960821b6044820152606401610641565b6040805160c0810182528351518201519181019182528351516080908101516001600160a01b03166060830152845160209081015163ffffffff1682840152600160a08401529282528285015192820192909252835190910151515f906001600160401b038111156113a7576113a761340d565b6040519080825280602002602001820160405280156113d0578160200160208202803683370190505b5090505f5b8151811015611433578451608001518051829081106113f6576113f6613d36565b60200260200101515f015182828151811061141357611413613d36565b6001600160a01b03909216602092830291909101909101526001016113d5565b5061143e8282612357565b63ffffffff83165f81815260cb602052604080822091909155517fa5be567caa88ff11b6da2cf017f9cefffcafa24111a9ecbf0b0bc476944f0f099061148590879061404b565b60405180910390a250505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146114db5760405162461bcd60e51b815260040161064190613ebc565b61065381612477565b60ce81815481106114f3575f80fd5b5f918252602090912060029091020180546001820180546001600160a01b0390921693509061152190613d4a565b80601f016020809104026020016040519081016040528092919081815260200182805461154d90613d4a565b80156115985780601f1061156f57610100808354040283529160200191611598565b820191905f5260205f20905b81548152906001019060200180831161157b57829003601f168201915b5050505050905082565b6115ab33610ce2565b6115c75760405162461bcd60e51b815260040161064190613e8f565b610653816124ea565b5f5f836040516020016115e391906140ce565b60405160208183030381529060405290506115fe8184612536565b949350505050565b60608160405160200161161991906140ce565b6040516020818303038152906040529050919050565b60808201516001600160a01b031633146116f3575f8260405160200161165591906140ce565b60405160208183030381529060405290505f6116718284612536565b905083608001516001600160a01b0316816001600160a01b0316146116f05760405162461bcd60e51b815260206004820152602f60248201527f5369676e6572206f6620726571756573745369676e6174757265206973206e6f60448201526e3a103932b8bab2b9ba1737bbb732b960891b6064820152608401610641565b50505b5f611702836060015142612576565b60ca5490915063ffffffff650100000000009091048116908216111561176a5760405162461bcd60e51b815260206004820152601e60248201527f526571756573742074696d657374616d7020746f6f20666172206177617900006044820152606401610641565b6040805161016081018252606060c082018190525f60e08301819052610100830181905261012083018190526101408301819052928201839052808201839052608082015260a081019190915283815263ffffffff4281166020830181905260ca546117d79216906140f4565b63ffffffff1660408281019190915260ca54640100000000900460ff166060830152515f9061180a908390602001614039565b60408051808303601f19018152919052805160209091012060ca5490915061183d90640100000000900460ff16826125aa565b6080830152604051611853908390602001614039565b60408051601f19818403018152828252805160209182012060c9805463ffffffff9081165f90815260cb90945293909220555416907f7738d1b30deac7824a0580de02efde3bb766c7b7b5ea79da34869ebd887cebf3906118b5908590614039565b60405180910390a260c9546118d19063ffffffff1660016140f4565b60c9805463ffffffff191663ffffffff929092169190911790555050505050565b6040516398ec1ac960e01b81526001600160a01b0382811660048301525f9182917f000000000000000000000000000000000000000000000000000000000000000016906398ec1ac990602401602060405180830381865afa15801561195a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061197e9190614110565b90505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166340bf2fb76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119dd573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a019190614110565b909110159392505050565b6060611a16612947565b905090565b611a23611ce1565b6001600160a01b038116611a885760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610641565b610653816122b8565b60975f9054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ae1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b059190613c6e565b6001600160a01b0316336001600160a01b031614611b355760405162461bcd60e51b815260040161064190613c89565b609854198119609854191614611bb35760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610641565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610788565b6001600160a01b038116611c785760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610641565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b0316331461104a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610641565b5f5b81811015611f2757828282818110611d5757611d57613d36565b9050602002810190611d699190614127565b611d7a9060408101906020016133db565b6001600160a01b03166323b872dd3330868686818110611d9c57611d9c613d36565b9050602002810190611dae9190614127565b604080516001600160e01b031960e087901b1681526001600160a01b039485166004820152939092166024840152013560448201526064016020604051808303815f875af1158015611e02573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e269190613cd3565b50828282818110611e3957611e39613d36565b9050602002810190611e4b9190614127565b611e5c9060408101906020016133db565b6001600160a01b031663095ea7b37f0000000000000000000000000000000000000000000000000000000000000000858585818110611e9d57611e9d613d36565b9050602002810190611eaf9190614127565b604080516001600160e01b031960e086901b1681526001600160a01b039093166004840152013560248201526044016020604051808303815f875af1158015611efa573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f1e9190613cd3565b50600101611d3d565b50604051630da22a8b60e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690631b44551690611f7690859085906004016141d2565b5f604051808303815f87803b158015611f8d575f5ffd5b505af1158015610a7c573d5f5f3e3d5ffd5b60605f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631703a0186040518163ffffffff1660e01b81526004015f60405180830381865afa158015611ffd573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261202491908101906142e7565b8051519091505f816001600160401b038111156120435761204361340d565b60405190808252806020026020018201604052801561206c578160200160208202803683370190505b5090505f5b828110156120ca57835180518290811061208d5761208d613d36565b60200260200101515f01518282815181106120aa576120aa613d36565b6001600160a01b0390921660209283029190910190910152600101612071565b50604051639004134760e01b81525f906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063900413479061211b90899086906004016143e7565b5f60405180830381865afa158015612135573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261215c9190810190614445565b90505f836001600160401b038111156121775761217761340d565b6040519080825280602002602001820160405280156121a0578160200160208202803683370190505b5090505f5f5b858110156121e5575f8482815181106121c1576121c1613d36565b602002602001015111156121dd57816121d9816144d5565b9250505b6001016121a6565b505f816001600160401b038111156121ff576121ff61340d565b604051908082528060200260200182016040528015612228578160200160208202803683370190505b5090505f5b868110156122ab575f85828151811061224857612248613d36565b602002602001015111156122a35783818151811061226857612268613d36565b602002602001015182828151811061228257612282613d36565b60200260200101906001600160a01b031690816001600160a01b0316815250505b60010161222d565b5098975050505050505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b604051639926ee7d60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639926ee7d90611f7690859085906004016144ed565b5f8260200151511161239b5760405162461bcd60e51b815260206004820152600d60248201526c4e6f207369676e61747572657360981b6044820152606401610641565b5f6123a583612a7b565b90505f5b8251811015612471575f805b835181101561241a578483815181106123d0576123d0613d36565b60200260200101516001600160a01b03168482815181106123f3576123f3613d36565b60200260200101516001600160a01b031603612412576001915061241a565b6001016123b5565b50806124685760405162461bcd60e51b815260206004820152601a60248201527f4d697373696e67206174746573746f72207369676e61747572650000000000006044820152606401610641565b506001016123a9565b50505050565b6040516351b27a6d60e11b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a364f4da906024015b5f604051808303815f87803b1580156124d8575f5ffd5b505af115801561098e573d5f5f3e3d5ffd5b60405163a98fb35560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a98fb355906124c1908490600401613c5c565b5f5f6125428451612b46565b8460405160200161255492919061454e565b6040516020818303038152906040528051906020012090506115fe8184612c6b565b5f8163ffffffff168363ffffffff1611612599576125948383614588565b6125a3565b6125a38284614588565b9392505050565b60ce5460609060ff841611156126025760405162461bcd60e51b815260206004820152601e60248201527f496e7465726e616c3a204e6f7420656e6f756768206f70657261746f727300006044820152606401610641565b5f60ce805480602002602001604051908101604052809291908181526020015f905b828210156126fa575f848152602090819020604080518082019091526002850290910180546001600160a01b03168252600181018054929391929184019161266b90613d4a565b80601f016020809104026020016040519081016040528092919081815260200182805461269790613d4a565b80156126e25780601f106126b9576101008083540402835291602001916126e2565b820191905f5260205f20905b8154815290600101906020018083116126c557829003601f168201915b50505050508152505081526020019060010190612624565b505082519293505f91505060ff86166001600160401b038111156127205761272061340d565b60405190808252806020026020018201604052801561276557816020015b604080518082019091525f81526060602082015281526020019060019003908161273e5790505b5090505f5b81518160ff16101561293d575f83116127eb5760405162461bcd60e51b815260206004820152603760248201527f496e7465726e616c3a204665657320746f6f206c6f772e204e6f206f7065726160448201527f746f7273206c65667420746f207069636b2066726f6d2e0000000000000000006064820152608401610641565b5f836128336127fd60ff85168a6145a4565b60408051446020808301919091524282840152606080830194909452825180830390940184526080909101909152815191012090565b61283d91906145cb565b90505f85828151811061285257612852613d36565b602002602001015190508560018661286a91906145de565b8151811061287a5761287a613d36565b602002602001015186838151811061289457612894613d36565b60209081029190910101526128aa6001866145de565b94506128b8815f01516118f2565b6128c357505061276a565b805f0151848460ff16815181106128dc576128dc613d36565b60200260200101515f01906001600160a01b031690816001600160a01b0316815250508060200151848460ff168151811061291957612919613d36565b6020026020010151602001819052508280612933906145f1565b935050505061276a565b5095945050505050565b60605f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631703a0186040518163ffffffff1660e01b81526004015f60405180830381865afa1580156129a5573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526129cc91908101906142e7565b90505f815f0151516001600160401b038111156129eb576129eb61340d565b604051908082528060200260200182016040528015612a14578160200160208202803683370190505b5090505f5b825151811015612a74578251805182908110612a3757612a37613d36565b60200260200101515f0151828281518110612a5457612a54613d36565b6001600160a01b0390921660209283029190910190910152600101612a19565b5092915050565b60605f612a8a835f0151612c85565b90505f8360200151516001600160401b03811115612aaa57612aaa61340d565b604051908082528060200260200182016040528015612ad3578160200160208202803683370190505b5090505f5b846020015151811015612b3e57612b0c8386602001518381518110612aff57612aff613d36565b6020026020010151612536565b828281518110612b1e57612b1e613d36565b6001600160a01b0390921660209283029190910190910152600101612ad8565b509392505050565b6060815f03612b6c5750506040805180820190915260018152600360fc1b602082015290565b815f5b8115612b955780612b7f816144d5565b9150612b8e9050600a8361460f565b9150612b6f565b5f816001600160401b03811115612bae57612bae61340d565b6040519080825280601f01601f191660200182016040528015612bd8576020820181803683370190505b509050815b8515612c6257612bee6001826145de565b90505f612bfc600a8861460f565b612c0790600a614622565b612c1190886145de565b612c1c906030614639565b90505f8160f81b905080848481518110612c3857612c38613d36565b60200101906001600160f81b03191690815f1a905350612c59600a8961460f565b97505050612bdd565b50949350505050565b5f5f5f612c788585612cf4565b91509150612b3e81612d5f565b6060612cb4825f0151604051602001612ca091815260200190565b604051602081830303815290604052612f14565b612cc183602001516130c9565b612cd4846040015163ffffffff16612b46565b612ce18560600151612b46565b6040516020016116199493929190614652565b5f5f8251604103612d28576020830151604084015160608501515f1a612d1c87828585613224565b94509450505050612d58565b8251604003612d515760208301516040840151612d46868383613309565b935093505050612d58565b505f905060025b9250929050565b5f816004811115612d7257612d726146a8565b03612d7a5750565b6001816004811115612d8e57612d8e6146a8565b03612ddb5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610641565b6002816004811115612def57612def6146a8565b03612e3c5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610641565b6003816004811115612e5057612e506146a8565b03612ea85760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610641565b6004816004811115612ebc57612ebc6146a8565b036106535760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610641565b60605f82516002612f259190614622565b6001600160401b03811115612f3c57612f3c61340d565b6040519080825280601f01601f191660200182016040528015612f66576020820181803683370190505b5060408051808201909152601081526f181899199a1a9b1b9c1cb0b131b232b360811b60208201529091505f5b845181101561309f57818251868381518110612fb157612fb1613d36565b0160200151612fc3919060f81c61460f565b81518110612fd357612fd3613d36565b01602001516001600160f81b03191683612fee836002614622565b81518110612ffe57612ffe613d36565b60200101906001600160f81b03191690815f1a90535081825186838151811061302957613029613d36565b016020015161303b919060f81c6145cb565b8151811061304b5761304b613d36565b01602001516001600160f81b03191683613066836002614622565b6130719060016145a4565b8151811061308157613081613d36565b60200101906001600160f81b03191690815f1a905350600101612f93565b50816040516020016130b191906146bc565b60405160208183030381529060405292505050919050565b60408051602880825260608281019093525f91906020820181803683370190505090505f5b60148110156131fb575f6131038260136145de565b61310e906008614622565b6131199060026147ad565b61312c906001600160a01b03871661460f565b60f81b90505f60108260f81c61314291906147b8565b60f81b90505f8160f81c601061315891906147d9565b8360f81c61316691906147f5565b60f81b905061317482613342565b85613180866002614622565b8151811061319057613190613d36565b60200101906001600160f81b03191690815f1a9053506131af81613342565b856131bb866002614622565b6131c69060016145a4565b815181106131d6576131d6613d36565b60200101906001600160f81b03191690815f1a90535050600190920191506130ee9050565b508060405160200161320d91906146bc565b604051602081830303815290604052915050919050565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561325957505f90506003613300565b8460ff16601b1415801561327157508460ff16601c14155b1561328157505f90506004613300565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156132d2573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b0381166132fa575f60019250925050613300565b91505f90505b94509492505050565b5f806001600160ff1b0383168161332560ff86901c601b6145a4565b905061333387828885613224565b9350935050505b935093915050565b5f600a60f883901c10156133685761335f60f883901c6030614639565b60f81b92915050565b61335f60f883901c6057614639565b919050565b50805461338890613d4a565b5f825580601f10613397575050565b601f0160209004905f5260205f209061065391905f5b808211156133c2575f818401556001016133ad565b505090565b6001600160a01b0381168114610653575f5ffd5b5f602082840312156133eb575f5ffd5b81356125a3816133c7565b5f60208284031215613406575f5ffd5b5035919050565b634e487b7160e01b5f52604160045260245ffd5b604080519081016001600160401b03811182821017156134435761344361340d565b60405290565b604051606081016001600160401b03811182821017156134435761344361340d565b60405160c081016001600160401b03811182821017156134435761344361340d565b604051602081016001600160401b03811182821017156134435761344361340d565b604051601f8201601f191681016001600160401b03811182821017156134d7576134d761340d565b604052919050565b5f82601f8301126134ee575f5ffd5b8135602083015f5f6001600160401b0384111561350d5761350d61340d565b50601f8301601f1916602001613522816134af565b915050828152858383011115613536575f5ffd5b828260208301375f92810160200192909252509392505050565b5f60408284031215613560575f5ffd5b613568613421565b90508135613575816133c7565b815260208201356001600160401b0381111561358f575f5ffd5b61359b848285016134df565b60208301525092915050565b5f602082840312156135b7575f5ffd5b81356001600160401b038111156135cc575f5ffd5b6115fe84828501613550565b5f5f602083850312156135e9575f5ffd5b82356001600160401b038111156135fe575f5ffd5b8301601f8101851361360e575f5ffd5b80356001600160401b03811115613623575f5ffd5b8560208260051b8401011115613637575f5ffd5b6020919091019590945092505050565b8015158114610653575f5ffd5b5f5f60408385031215613665575f5ffd5b8235613670816133c7565b9150602083013561368081613647565b809150509250929050565b803563ffffffff81168114613377575f5ffd5b803560ff81168114613377575f5ffd5b5f60608284031280156136bf575f5ffd5b506136c8613449565b6136d18361368b565b81526136df6020840161369e565b60208201526136f06040840161368b565b60408201529392505050565b5f6020828403121561370c575f5ffd5b6125a38261368b565b602080825282518282018190525f918401906040840190835b818110156137555783516001600160a01b031683526020938401939092019160010161372e565b509095945050505050565b5f60208284031215613770575f5ffd5b6125a38261369e565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b60018060a01b0381511682525f6020820151604060208501526115fe6040850182613779565b602081525f6125a360208301846137a7565b5f5f604083850312156137f0575f5ffd5b82356137fb816133c7565b915060208301356001600160401b03811115613815575f5ffd5b830160608186031215613826575f5ffd5b61382e613449565b81356001600160401b03811115613843575f5ffd5b61384f878285016134df565b8252506020828101359082015260409182013591810191909152919491935090915050565b5f60a08284031215613884575f5ffd5b60405160a081016001600160401b03811182821017156138a6576138a661340d565b60405290508082356001600160401b038111156138c1575f5ffd5b6138cd858286016134df565b82525060208381013590820152604080840135908201526138f06060840161368b565b60608201526080830135613903816133c7565b6080919091015292915050565b5f6001600160401b038211156139285761392861340d565b5060051b60200190565b5f82601f830112613941575f5ffd5b813561395461394f82613910565b6134af565b8082825260208201915060208360051b860101925085831115613975575f5ffd5b602085015b8381101561293d5780356001600160401b03811115613997575f5ffd5b6139a6886020838a0101613550565b8452506020928301920161397a565b5f82601f8301126139c4575f5ffd5b81356139d261394f82613910565b8082825260208201915060208360051b8601019250858311156139f3575f5ffd5b602085015b8381101561293d5780356001600160401b03811115613a15575f5ffd5b613a24886020838a01016134df565b845250602092830192016139f8565b5f5f60408385031215613a44575f5ffd5b82356001600160401b03811115613a59575f5ffd5b830160408186031215613a6a575f5ffd5b613a72613421565b81356001600160401b03811115613a87575f5ffd5b820160c08188031215613a98575f5ffd5b613aa061346b565b81356001600160401b03811115613ab5575f5ffd5b613ac189828501613874565b825250613ad06020830161368b565b6020820152613ae16040830161368b565b6040820152613af26060830161369e565b606082015260808201356001600160401b03811115613b0f575f5ffd5b613b1b89828501613932565b60808301525060a09182013591810191909152815260208201356001600160401b03811115613b48575f5ffd5b613b54878285016139b5565b6020830152508093505050613b6b6020840161368b565b90509250929050565b6001600160a01b03831681526040602082018190525f906115fe90830184613779565b5f60208284031215613ba7575f5ffd5b81356001600160401b03811115613bbc575f5ffd5b6115fe848285016134df565b5f5f60408385031215613bd9575f5ffd5b82356001600160401b03811115613bee575f5ffd5b613bfa85828601613874565b92505060208301356001600160401b03811115613c15575f5ffd5b613c21858286016134df565b9150509250929050565b5f60208284031215613c3b575f5ffd5b81356001600160401b03811115613c50575f5ffd5b6115fe84828501613874565b602081525f6125a36020830184613779565b5f60208284031215613c7e575f5ffd5b81516125a3816133c7565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b5f60208284031215613ce3575f5ffd5b81516125a381613647565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b5f52603260045260245ffd5b600181811c90821680613d5e57607f821691505b602082108103613d7c57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115613dd05782821115613dd057805f5260205f20601f840160051c6020851015613dad57505f5b90810190601f840160051c035f5b81811015610a7c575f83820155600101613dbb565b505050565b81516001600160401b03811115613dee57613dee61340d565b613e0281613dfc8454613d4a565b84613d82565b6020601f821160018114613e34575f8315613e1d5750848201515b5f19600385901b1c1916600184901b17845561098e565b5f84815260208120601f198516915b82811015613e635787850151825560209485019460019092019101613e43565b5084821015613e8057868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b60208082526013908201527221b0b63632b91034b9903737ba1030b236b4b760691b604082015260600190565b6020808252604a908201527f4543445341536572766963654d616e61676572426173652e6f6e6c795374616b60408201527f6552656769737472793a2063616c6c6572206973206e6f7420746865207374616060820152696b65526567697374727960b01b608082015260a00190565b5f815160a08452613f4060a0850182613779565b602084810151908601526040808501519086015260608085015163ffffffff16908601526080938401516001600160a01b031693909401929092525090919050565b5f815160c08452613f9660c0850182613f2c565b905063ffffffff602084015116602085015263ffffffff604084015116604085015260ff60608401511660608501526080830151848203608086015281815180845260208401915060208160051b8501016020840193505f5b8281101561402057601f1986830301845261400b8286516137a7565b60209586019594909401939150600101613fef565b5060a087015160a0890152809550505050505092915050565b602081525f6125a36020830184613f82565b602081525f8251604060208401526140666060840182613f82565b602085810151858303601f19016040870152805180845292935081019181840191600582901b8501015f5b828110156140c257601f198683030184526140ad828651613779565b60209586019594909401939150600101614091565b50979650505050505050565b602081525f6125a36020830184613f2c565b634e487b7160e01b5f52601160045260245ffd5b63ffffffff8181168382160190811115610ddc57610ddc6140e0565b5f60208284031215614120575f5ffd5b5051919050565b5f8235609e1983360301811261413b575f5ffd5b9190910192915050565b8035613377816133c7565b6bffffffffffffffffffffffff81168114610653575f5ffd5b8183526020830192505f815f5b848110156141c8578135614189816133c7565b6001600160a01b0316865260208201356141a281614150565b6bffffffffffffffffffffffff1660208701526040958601959190910190600101614176565b5093949350505050565b602080825281018290525f6040600584901b830181019083018583609e1936839003015b878210156142da57868503603f190184528235818112614214575f5ffd5b8901803536829003601e1901811261422a575f5ffd5b81016020810190356001600160401b03811115614245575f5ffd5b8060061b3603821315614256575f5ffd5b60a0885261426860a089018284614169565b91505061427760208301614145565b6001600160a01b031660208801526040828101359088015261429b6060830161368b565b63ffffffff1660608801526142b26080830161368b565b63ffffffff8116608089015291509550506020938401939290920191600191909101906141f6565b5092979650505050505050565b5f602082840312156142f7575f5ffd5b81516001600160401b0381111561430c575f5ffd5b82016020818503121561431d575f5ffd5b61432561348d565b81516001600160401b0381111561433a575f5ffd5b80830192505084601f83011261434e575f5ffd5b815161435c61394f82613910565b8082825260208201915060208360061b86010192508783111561437d575f5ffd5b6020850194505b828510156143da576040858903121561439b575f5ffd5b6143a3613421565b85516143ae816133c7565b815260208601516143be81614150565b8060208301525080835250602082019150604085019450614384565b8352509095945050505050565b6001600160a01b03831681526040602080830182905283519183018290525f91908401906060840190835b818110156144395783516001600160a01b0316835260209384019390920191600101614412565b50909695505050505050565b5f60208284031215614455575f5ffd5b81516001600160401b0381111561446a575f5ffd5b8201601f8101841361447a575f5ffd5b805161448861394f82613910565b8082825260208201915060208360051b8501019250868311156144a9575f5ffd5b6020840193505b828410156144cb5783518252602093840193909101906144b0565b9695505050505050565b5f600182016144e6576144e66140e0565b5060010190565b60018060a01b0383168152604060208201525f82516060604084015261451660a0840182613779565b90506020840151606084015260408401516080840152809150509392505050565b5f81518060208401855e5f93019283525090919050565b7f19457468657265756d205369676e6564204d6573736167653a0a00000000000081525f6115fe614582601a840186614537565b84614537565b63ffffffff8281168282160390811115610ddc57610ddc6140e0565b80820180821115610ddc57610ddc6140e0565b634e487b7160e01b5f52601260045260245ffd5b5f826145d9576145d96145b7565b500690565b81810381811115610ddc57610ddc6140e0565b5f60ff821660ff8103614606576146066140e0565b60010192915050565b5f8261461d5761461d6145b7565b500490565b8082028115828204841417610ddc57610ddc6140e0565b60ff8181168382160190811115610ddc57610ddc6140e0565b5f61465d8287614537565b600560f91b81526146716001820187614537565b600560f91b815290506146876001820186614537565b600560f91b8152905061469d6001820185614537565b979650505050505050565b634e487b7160e01b5f52602160045260245ffd5b61060f60f31b81525f6125a36002830184614537565b6001815b600184111561333a578085048111156146f1576146f16140e0565b60018416156146ff57908102905b60019390931c9280026146d6565b5f8261471b57506001610ddc565b8161472757505f610ddc565b816001811461473d576002811461474757614763565b6001915050610ddc565b60ff841115614758576147586140e0565b50506001821b610ddc565b5060208310610133831016604e8410600b8410161715614786575081810a610ddc565b6147925f1984846146d2565b805f19048211156147a5576147a56140e0565b029392505050565b5f6125a3838361470d565b5f60ff8316806147ca576147ca6145b7565b8060ff84160491505092915050565b60ff8181168382160290811690818114612a7457612a746140e0565b60ff8281168282160390811115610ddc57610ddc6140e056fea2646970667358221220a51eaf07872263397e28bcc5982530f164b46c95f25372731d7576b5e5498adf64736f6c63430008210033";
1139
+ const isSuperArgs = (xs) => xs.length > 1;
1140
+ export class ReclaimServiceManager__factory extends ContractFactory {
1141
+ constructor(...args) {
1142
+ if (isSuperArgs(args)) {
1143
+ super(...args);
1144
+ }
1145
+ else {
1146
+ super(_abi, _bytecode, args[0]);
1147
+ }
1148
+ }
1149
+ getDeployTransaction(_avsDirectory, _stakeRegistry, _delegationManager, overrides) {
1150
+ return super.getDeployTransaction(_avsDirectory, _stakeRegistry, _delegationManager, overrides || {});
1151
+ }
1152
+ deploy(_avsDirectory, _stakeRegistry, _delegationManager, overrides) {
1153
+ return super.deploy(_avsDirectory, _stakeRegistry, _delegationManager, overrides || {});
1154
+ }
1155
+ connect(runner) {
1156
+ return super.connect(runner);
1157
+ }
1158
+ static bytecode = _bytecode;
1159
+ static abi = _abi;
1160
+ static createInterface() {
1161
+ return new Interface(_abi);
1162
+ }
1163
+ static connect(address, runner) {
1164
+ return new Contract(address, _abi, runner);
1165
+ }
1166
+ }