eigenlayer_contract_deployer/bindings/core/
eigenpodmanager.rs

1#![allow(clippy::all, clippy::pedantic, clippy::nursery, warnings, unknown_lints, rustdoc::all, elided_lifetimes_in_paths)]
2use EigenPodManager::*;
3
4/**
5
6Generated by the following Solidity interface...
7```solidity
8interface EigenPodManager {
9    error CurrentlyPaused();
10    error EigenPodAlreadyExists();
11    error InputAddressZero();
12    error InvalidNewPausedStatus();
13    error InvalidShortString();
14    error InvalidStrategy();
15    error LegacyWithdrawalsNotCompleted();
16    error OnlyDelegationManager();
17    error OnlyEigenPod();
18    error OnlyPauser();
19    error OnlyProofTimestampSetter();
20    error OnlyUnpauser();
21    error SharesNegative();
22    error SharesNotMultipleOfGwei();
23    error StringTooLong(string str);
24
25    event BeaconChainETHDeposited(address indexed podOwner, uint256 amount);
26    event BeaconChainETHWithdrawalCompleted(address indexed podOwner, uint256 shares, uint96 nonce, address delegatedAddress, address withdrawer, bytes32 withdrawalRoot);
27    event BeaconChainSlashingFactorDecreased(address staker, uint64 prevBeaconChainSlashingFactor, uint64 newBeaconChainSlashingFactor);
28    event BurnableETHSharesIncreased(uint256 shares);
29    event Initialized(uint8 version);
30    event NewTotalShares(address indexed podOwner, int256 newTotalShares);
31    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
32    event Paused(address indexed account, uint256 newPausedStatus);
33    event PectraForkTimestampSet(uint64 newPectraForkTimestamp);
34    event PodDeployed(address indexed eigenPod, address indexed podOwner);
35    event PodSharesUpdated(address indexed podOwner, int256 sharesDelta);
36    event ProofTimestampSetterSet(address newProofTimestampSetter);
37    event Unpaused(address indexed account, uint256 newPausedStatus);
38
39    constructor(address _ethPOS, address _eigenPodBeacon, address _delegationManager, address _pauserRegistry, string _version);
40
41    function addShares(address staker, address strategy, uint256 shares) external returns (uint256, uint256);
42    function beaconChainETHStrategy() external view returns (address);
43    function beaconChainSlashingFactor(address podOwner) external view returns (uint64);
44    function burnableETHShares() external view returns (uint256);
45    function createPod() external returns (address);
46    function delegationManager() external view returns (address);
47    function eigenPodBeacon() external view returns (address);
48    function ethPOS() external view returns (address);
49    function getPod(address podOwner) external view returns (address);
50    function hasPod(address podOwner) external view returns (bool);
51    function increaseBurnableShares(address, uint256 addedSharesToBurn) external;
52    function initialize(address initialOwner, uint256 _initPausedStatus) external;
53    function numPods() external view returns (uint256);
54    function owner() external view returns (address);
55    function ownerToPod(address podOwner) external view returns (address);
56    function pause(uint256 newPausedStatus) external;
57    function pauseAll() external;
58    function paused(uint8 index) external view returns (bool);
59    function paused() external view returns (uint256);
60    function pauserRegistry() external view returns (address);
61    function pectraForkTimestamp() external view returns (uint64);
62    function podOwnerDepositShares(address podOwner) external view returns (int256 shares);
63    function proofTimestampSetter() external view returns (address);
64    function recordBeaconChainETHBalanceUpdate(address podOwner, uint256 prevRestakedBalanceWei, int256 balanceDeltaWei) external;
65    function removeDepositShares(address staker, address strategy, uint256 depositSharesToRemove) external returns (uint256);
66    function renounceOwnership() external;
67    function setPectraForkTimestamp(uint64 timestamp) external;
68    function setProofTimestampSetter(address newProofTimestampSetter) external;
69    function stake(bytes memory pubkey, bytes memory signature, bytes32 depositDataRoot) external payable;
70    function stakerDepositShares(address user, address strategy) external view returns (uint256 depositShares);
71    function transferOwnership(address newOwner) external;
72    function unpause(uint256 newPausedStatus) external;
73    function version() external view returns (string memory);
74    function withdrawSharesAsTokens(address staker, address strategy, address, uint256 shares) external;
75}
76```
77
78...which was generated by the following JSON ABI:
79```json
80[
81  {
82    "type": "constructor",
83    "inputs": [
84      {
85        "name": "_ethPOS",
86        "type": "address",
87        "internalType": "contract IETHPOSDeposit"
88      },
89      {
90        "name": "_eigenPodBeacon",
91        "type": "address",
92        "internalType": "contract IBeacon"
93      },
94      {
95        "name": "_delegationManager",
96        "type": "address",
97        "internalType": "contract IDelegationManager"
98      },
99      {
100        "name": "_pauserRegistry",
101        "type": "address",
102        "internalType": "contract IPauserRegistry"
103      },
104      {
105        "name": "_version",
106        "type": "string",
107        "internalType": "string"
108      }
109    ],
110    "stateMutability": "nonpayable"
111  },
112  {
113    "type": "function",
114    "name": "addShares",
115    "inputs": [
116      {
117        "name": "staker",
118        "type": "address",
119        "internalType": "address"
120      },
121      {
122        "name": "strategy",
123        "type": "address",
124        "internalType": "contract IStrategy"
125      },
126      {
127        "name": "shares",
128        "type": "uint256",
129        "internalType": "uint256"
130      }
131    ],
132    "outputs": [
133      {
134        "name": "",
135        "type": "uint256",
136        "internalType": "uint256"
137      },
138      {
139        "name": "",
140        "type": "uint256",
141        "internalType": "uint256"
142      }
143    ],
144    "stateMutability": "nonpayable"
145  },
146  {
147    "type": "function",
148    "name": "beaconChainETHStrategy",
149    "inputs": [],
150    "outputs": [
151      {
152        "name": "",
153        "type": "address",
154        "internalType": "contract IStrategy"
155      }
156    ],
157    "stateMutability": "view"
158  },
159  {
160    "type": "function",
161    "name": "beaconChainSlashingFactor",
162    "inputs": [
163      {
164        "name": "podOwner",
165        "type": "address",
166        "internalType": "address"
167      }
168    ],
169    "outputs": [
170      {
171        "name": "",
172        "type": "uint64",
173        "internalType": "uint64"
174      }
175    ],
176    "stateMutability": "view"
177  },
178  {
179    "type": "function",
180    "name": "burnableETHShares",
181    "inputs": [],
182    "outputs": [
183      {
184        "name": "",
185        "type": "uint256",
186        "internalType": "uint256"
187      }
188    ],
189    "stateMutability": "view"
190  },
191  {
192    "type": "function",
193    "name": "createPod",
194    "inputs": [],
195    "outputs": [
196      {
197        "name": "",
198        "type": "address",
199        "internalType": "address"
200      }
201    ],
202    "stateMutability": "nonpayable"
203  },
204  {
205    "type": "function",
206    "name": "delegationManager",
207    "inputs": [],
208    "outputs": [
209      {
210        "name": "",
211        "type": "address",
212        "internalType": "contract IDelegationManager"
213      }
214    ],
215    "stateMutability": "view"
216  },
217  {
218    "type": "function",
219    "name": "eigenPodBeacon",
220    "inputs": [],
221    "outputs": [
222      {
223        "name": "",
224        "type": "address",
225        "internalType": "contract IBeacon"
226      }
227    ],
228    "stateMutability": "view"
229  },
230  {
231    "type": "function",
232    "name": "ethPOS",
233    "inputs": [],
234    "outputs": [
235      {
236        "name": "",
237        "type": "address",
238        "internalType": "contract IETHPOSDeposit"
239      }
240    ],
241    "stateMutability": "view"
242  },
243  {
244    "type": "function",
245    "name": "getPod",
246    "inputs": [
247      {
248        "name": "podOwner",
249        "type": "address",
250        "internalType": "address"
251      }
252    ],
253    "outputs": [
254      {
255        "name": "",
256        "type": "address",
257        "internalType": "contract IEigenPod"
258      }
259    ],
260    "stateMutability": "view"
261  },
262  {
263    "type": "function",
264    "name": "hasPod",
265    "inputs": [
266      {
267        "name": "podOwner",
268        "type": "address",
269        "internalType": "address"
270      }
271    ],
272    "outputs": [
273      {
274        "name": "",
275        "type": "bool",
276        "internalType": "bool"
277      }
278    ],
279    "stateMutability": "view"
280  },
281  {
282    "type": "function",
283    "name": "increaseBurnableShares",
284    "inputs": [
285      {
286        "name": "",
287        "type": "address",
288        "internalType": "contract IStrategy"
289      },
290      {
291        "name": "addedSharesToBurn",
292        "type": "uint256",
293        "internalType": "uint256"
294      }
295    ],
296    "outputs": [],
297    "stateMutability": "nonpayable"
298  },
299  {
300    "type": "function",
301    "name": "initialize",
302    "inputs": [
303      {
304        "name": "initialOwner",
305        "type": "address",
306        "internalType": "address"
307      },
308      {
309        "name": "_initPausedStatus",
310        "type": "uint256",
311        "internalType": "uint256"
312      }
313    ],
314    "outputs": [],
315    "stateMutability": "nonpayable"
316  },
317  {
318    "type": "function",
319    "name": "numPods",
320    "inputs": [],
321    "outputs": [
322      {
323        "name": "",
324        "type": "uint256",
325        "internalType": "uint256"
326      }
327    ],
328    "stateMutability": "view"
329  },
330  {
331    "type": "function",
332    "name": "owner",
333    "inputs": [],
334    "outputs": [
335      {
336        "name": "",
337        "type": "address",
338        "internalType": "address"
339      }
340    ],
341    "stateMutability": "view"
342  },
343  {
344    "type": "function",
345    "name": "ownerToPod",
346    "inputs": [
347      {
348        "name": "podOwner",
349        "type": "address",
350        "internalType": "address"
351      }
352    ],
353    "outputs": [
354      {
355        "name": "",
356        "type": "address",
357        "internalType": "contract IEigenPod"
358      }
359    ],
360    "stateMutability": "view"
361  },
362  {
363    "type": "function",
364    "name": "pause",
365    "inputs": [
366      {
367        "name": "newPausedStatus",
368        "type": "uint256",
369        "internalType": "uint256"
370      }
371    ],
372    "outputs": [],
373    "stateMutability": "nonpayable"
374  },
375  {
376    "type": "function",
377    "name": "pauseAll",
378    "inputs": [],
379    "outputs": [],
380    "stateMutability": "nonpayable"
381  },
382  {
383    "type": "function",
384    "name": "paused",
385    "inputs": [
386      {
387        "name": "index",
388        "type": "uint8",
389        "internalType": "uint8"
390      }
391    ],
392    "outputs": [
393      {
394        "name": "",
395        "type": "bool",
396        "internalType": "bool"
397      }
398    ],
399    "stateMutability": "view"
400  },
401  {
402    "type": "function",
403    "name": "paused",
404    "inputs": [],
405    "outputs": [
406      {
407        "name": "",
408        "type": "uint256",
409        "internalType": "uint256"
410      }
411    ],
412    "stateMutability": "view"
413  },
414  {
415    "type": "function",
416    "name": "pauserRegistry",
417    "inputs": [],
418    "outputs": [
419      {
420        "name": "",
421        "type": "address",
422        "internalType": "contract IPauserRegistry"
423      }
424    ],
425    "stateMutability": "view"
426  },
427  {
428    "type": "function",
429    "name": "pectraForkTimestamp",
430    "inputs": [],
431    "outputs": [
432      {
433        "name": "",
434        "type": "uint64",
435        "internalType": "uint64"
436      }
437    ],
438    "stateMutability": "view"
439  },
440  {
441    "type": "function",
442    "name": "podOwnerDepositShares",
443    "inputs": [
444      {
445        "name": "podOwner",
446        "type": "address",
447        "internalType": "address"
448      }
449    ],
450    "outputs": [
451      {
452        "name": "shares",
453        "type": "int256",
454        "internalType": "int256"
455      }
456    ],
457    "stateMutability": "view"
458  },
459  {
460    "type": "function",
461    "name": "proofTimestampSetter",
462    "inputs": [],
463    "outputs": [
464      {
465        "name": "",
466        "type": "address",
467        "internalType": "address"
468      }
469    ],
470    "stateMutability": "view"
471  },
472  {
473    "type": "function",
474    "name": "recordBeaconChainETHBalanceUpdate",
475    "inputs": [
476      {
477        "name": "podOwner",
478        "type": "address",
479        "internalType": "address"
480      },
481      {
482        "name": "prevRestakedBalanceWei",
483        "type": "uint256",
484        "internalType": "uint256"
485      },
486      {
487        "name": "balanceDeltaWei",
488        "type": "int256",
489        "internalType": "int256"
490      }
491    ],
492    "outputs": [],
493    "stateMutability": "nonpayable"
494  },
495  {
496    "type": "function",
497    "name": "removeDepositShares",
498    "inputs": [
499      {
500        "name": "staker",
501        "type": "address",
502        "internalType": "address"
503      },
504      {
505        "name": "strategy",
506        "type": "address",
507        "internalType": "contract IStrategy"
508      },
509      {
510        "name": "depositSharesToRemove",
511        "type": "uint256",
512        "internalType": "uint256"
513      }
514    ],
515    "outputs": [
516      {
517        "name": "",
518        "type": "uint256",
519        "internalType": "uint256"
520      }
521    ],
522    "stateMutability": "nonpayable"
523  },
524  {
525    "type": "function",
526    "name": "renounceOwnership",
527    "inputs": [],
528    "outputs": [],
529    "stateMutability": "nonpayable"
530  },
531  {
532    "type": "function",
533    "name": "setPectraForkTimestamp",
534    "inputs": [
535      {
536        "name": "timestamp",
537        "type": "uint64",
538        "internalType": "uint64"
539      }
540    ],
541    "outputs": [],
542    "stateMutability": "nonpayable"
543  },
544  {
545    "type": "function",
546    "name": "setProofTimestampSetter",
547    "inputs": [
548      {
549        "name": "newProofTimestampSetter",
550        "type": "address",
551        "internalType": "address"
552      }
553    ],
554    "outputs": [],
555    "stateMutability": "nonpayable"
556  },
557  {
558    "type": "function",
559    "name": "stake",
560    "inputs": [
561      {
562        "name": "pubkey",
563        "type": "bytes",
564        "internalType": "bytes"
565      },
566      {
567        "name": "signature",
568        "type": "bytes",
569        "internalType": "bytes"
570      },
571      {
572        "name": "depositDataRoot",
573        "type": "bytes32",
574        "internalType": "bytes32"
575      }
576    ],
577    "outputs": [],
578    "stateMutability": "payable"
579  },
580  {
581    "type": "function",
582    "name": "stakerDepositShares",
583    "inputs": [
584      {
585        "name": "user",
586        "type": "address",
587        "internalType": "address"
588      },
589      {
590        "name": "strategy",
591        "type": "address",
592        "internalType": "contract IStrategy"
593      }
594    ],
595    "outputs": [
596      {
597        "name": "depositShares",
598        "type": "uint256",
599        "internalType": "uint256"
600      }
601    ],
602    "stateMutability": "view"
603  },
604  {
605    "type": "function",
606    "name": "transferOwnership",
607    "inputs": [
608      {
609        "name": "newOwner",
610        "type": "address",
611        "internalType": "address"
612      }
613    ],
614    "outputs": [],
615    "stateMutability": "nonpayable"
616  },
617  {
618    "type": "function",
619    "name": "unpause",
620    "inputs": [
621      {
622        "name": "newPausedStatus",
623        "type": "uint256",
624        "internalType": "uint256"
625      }
626    ],
627    "outputs": [],
628    "stateMutability": "nonpayable"
629  },
630  {
631    "type": "function",
632    "name": "version",
633    "inputs": [],
634    "outputs": [
635      {
636        "name": "",
637        "type": "string",
638        "internalType": "string"
639      }
640    ],
641    "stateMutability": "view"
642  },
643  {
644    "type": "function",
645    "name": "withdrawSharesAsTokens",
646    "inputs": [
647      {
648        "name": "staker",
649        "type": "address",
650        "internalType": "address"
651      },
652      {
653        "name": "strategy",
654        "type": "address",
655        "internalType": "contract IStrategy"
656      },
657      {
658        "name": "",
659        "type": "address",
660        "internalType": "contract IERC20"
661      },
662      {
663        "name": "shares",
664        "type": "uint256",
665        "internalType": "uint256"
666      }
667    ],
668    "outputs": [],
669    "stateMutability": "nonpayable"
670  },
671  {
672    "type": "event",
673    "name": "BeaconChainETHDeposited",
674    "inputs": [
675      {
676        "name": "podOwner",
677        "type": "address",
678        "indexed": true,
679        "internalType": "address"
680      },
681      {
682        "name": "amount",
683        "type": "uint256",
684        "indexed": false,
685        "internalType": "uint256"
686      }
687    ],
688    "anonymous": false
689  },
690  {
691    "type": "event",
692    "name": "BeaconChainETHWithdrawalCompleted",
693    "inputs": [
694      {
695        "name": "podOwner",
696        "type": "address",
697        "indexed": true,
698        "internalType": "address"
699      },
700      {
701        "name": "shares",
702        "type": "uint256",
703        "indexed": false,
704        "internalType": "uint256"
705      },
706      {
707        "name": "nonce",
708        "type": "uint96",
709        "indexed": false,
710        "internalType": "uint96"
711      },
712      {
713        "name": "delegatedAddress",
714        "type": "address",
715        "indexed": false,
716        "internalType": "address"
717      },
718      {
719        "name": "withdrawer",
720        "type": "address",
721        "indexed": false,
722        "internalType": "address"
723      },
724      {
725        "name": "withdrawalRoot",
726        "type": "bytes32",
727        "indexed": false,
728        "internalType": "bytes32"
729      }
730    ],
731    "anonymous": false
732  },
733  {
734    "type": "event",
735    "name": "BeaconChainSlashingFactorDecreased",
736    "inputs": [
737      {
738        "name": "staker",
739        "type": "address",
740        "indexed": false,
741        "internalType": "address"
742      },
743      {
744        "name": "prevBeaconChainSlashingFactor",
745        "type": "uint64",
746        "indexed": false,
747        "internalType": "uint64"
748      },
749      {
750        "name": "newBeaconChainSlashingFactor",
751        "type": "uint64",
752        "indexed": false,
753        "internalType": "uint64"
754      }
755    ],
756    "anonymous": false
757  },
758  {
759    "type": "event",
760    "name": "BurnableETHSharesIncreased",
761    "inputs": [
762      {
763        "name": "shares",
764        "type": "uint256",
765        "indexed": false,
766        "internalType": "uint256"
767      }
768    ],
769    "anonymous": false
770  },
771  {
772    "type": "event",
773    "name": "Initialized",
774    "inputs": [
775      {
776        "name": "version",
777        "type": "uint8",
778        "indexed": false,
779        "internalType": "uint8"
780      }
781    ],
782    "anonymous": false
783  },
784  {
785    "type": "event",
786    "name": "NewTotalShares",
787    "inputs": [
788      {
789        "name": "podOwner",
790        "type": "address",
791        "indexed": true,
792        "internalType": "address"
793      },
794      {
795        "name": "newTotalShares",
796        "type": "int256",
797        "indexed": false,
798        "internalType": "int256"
799      }
800    ],
801    "anonymous": false
802  },
803  {
804    "type": "event",
805    "name": "OwnershipTransferred",
806    "inputs": [
807      {
808        "name": "previousOwner",
809        "type": "address",
810        "indexed": true,
811        "internalType": "address"
812      },
813      {
814        "name": "newOwner",
815        "type": "address",
816        "indexed": true,
817        "internalType": "address"
818      }
819    ],
820    "anonymous": false
821  },
822  {
823    "type": "event",
824    "name": "Paused",
825    "inputs": [
826      {
827        "name": "account",
828        "type": "address",
829        "indexed": true,
830        "internalType": "address"
831      },
832      {
833        "name": "newPausedStatus",
834        "type": "uint256",
835        "indexed": false,
836        "internalType": "uint256"
837      }
838    ],
839    "anonymous": false
840  },
841  {
842    "type": "event",
843    "name": "PectraForkTimestampSet",
844    "inputs": [
845      {
846        "name": "newPectraForkTimestamp",
847        "type": "uint64",
848        "indexed": false,
849        "internalType": "uint64"
850      }
851    ],
852    "anonymous": false
853  },
854  {
855    "type": "event",
856    "name": "PodDeployed",
857    "inputs": [
858      {
859        "name": "eigenPod",
860        "type": "address",
861        "indexed": true,
862        "internalType": "address"
863      },
864      {
865        "name": "podOwner",
866        "type": "address",
867        "indexed": true,
868        "internalType": "address"
869      }
870    ],
871    "anonymous": false
872  },
873  {
874    "type": "event",
875    "name": "PodSharesUpdated",
876    "inputs": [
877      {
878        "name": "podOwner",
879        "type": "address",
880        "indexed": true,
881        "internalType": "address"
882      },
883      {
884        "name": "sharesDelta",
885        "type": "int256",
886        "indexed": false,
887        "internalType": "int256"
888      }
889    ],
890    "anonymous": false
891  },
892  {
893    "type": "event",
894    "name": "ProofTimestampSetterSet",
895    "inputs": [
896      {
897        "name": "newProofTimestampSetter",
898        "type": "address",
899        "indexed": false,
900        "internalType": "address"
901      }
902    ],
903    "anonymous": false
904  },
905  {
906    "type": "event",
907    "name": "Unpaused",
908    "inputs": [
909      {
910        "name": "account",
911        "type": "address",
912        "indexed": true,
913        "internalType": "address"
914      },
915      {
916        "name": "newPausedStatus",
917        "type": "uint256",
918        "indexed": false,
919        "internalType": "uint256"
920      }
921    ],
922    "anonymous": false
923  },
924  {
925    "type": "error",
926    "name": "CurrentlyPaused",
927    "inputs": []
928  },
929  {
930    "type": "error",
931    "name": "EigenPodAlreadyExists",
932    "inputs": []
933  },
934  {
935    "type": "error",
936    "name": "InputAddressZero",
937    "inputs": []
938  },
939  {
940    "type": "error",
941    "name": "InvalidNewPausedStatus",
942    "inputs": []
943  },
944  {
945    "type": "error",
946    "name": "InvalidShortString",
947    "inputs": []
948  },
949  {
950    "type": "error",
951    "name": "InvalidStrategy",
952    "inputs": []
953  },
954  {
955    "type": "error",
956    "name": "LegacyWithdrawalsNotCompleted",
957    "inputs": []
958  },
959  {
960    "type": "error",
961    "name": "OnlyDelegationManager",
962    "inputs": []
963  },
964  {
965    "type": "error",
966    "name": "OnlyEigenPod",
967    "inputs": []
968  },
969  {
970    "type": "error",
971    "name": "OnlyPauser",
972    "inputs": []
973  },
974  {
975    "type": "error",
976    "name": "OnlyProofTimestampSetter",
977    "inputs": []
978  },
979  {
980    "type": "error",
981    "name": "OnlyUnpauser",
982    "inputs": []
983  },
984  {
985    "type": "error",
986    "name": "SharesNegative",
987    "inputs": []
988  },
989  {
990    "type": "error",
991    "name": "SharesNotMultipleOfGwei",
992    "inputs": []
993  },
994  {
995    "type": "error",
996    "name": "StringTooLong",
997    "inputs": [
998      {
999        "name": "str",
1000        "type": "string",
1001        "internalType": "string"
1002      }
1003    ]
1004  }
1005]
1006```*/
1007#[allow(
1008    non_camel_case_types,
1009    non_snake_case,
1010    clippy::pub_underscore_fields,
1011    clippy::style,
1012    clippy::empty_structs_with_brackets
1013)]
1014pub mod EigenPodManager {
1015    use super::*;
1016    use alloy::sol_types as alloy_sol_types;
1017    /// The creation / init bytecode of the contract.
1018    ///
1019    /// ```text
1020    ///0x610120604052348015610010575f5ffd5b50604051612ec9380380612ec983398101604081905261002f916101e4565b80858585856001600160a01b03811661005b576040516339b190bb60e11b815260040160405180910390fd5b6001600160a01b0390811660805292831660a05290821660c0521660e05261008281610099565b610100525061008f6100df565b5050505050610338565b5f5f829050601f815111156100cc578260405163305a27a960e01b81526004016100c391906102e0565b60405180910390fd5b80516100d782610312565b179392505050565b5f54610100900460ff16156101465760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b60648201526084016100c3565b5f5460ff90811614610195575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146101ab575f5ffd5b50565b634e487b7160e01b5f52604160045260245ffd5b5f5b838110156101dc5781810151838201526020016101c4565b50505f910152565b5f5f5f5f5f60a086880312156101f8575f5ffd5b855161020381610197565b602087015190955061021481610197565b604087015190945061022581610197565b606087015190935061023681610197565b60808701519092506001600160401b03811115610251575f5ffd5b8601601f81018813610261575f5ffd5b80516001600160401b0381111561027a5761027a6101ae565b604051601f8201601f19908116603f011681016001600160401b03811182821017156102a8576102a86101ae565b6040528181528282016020018a10156102bf575f5ffd5b6102d08260208301602086016101c2565b8093505050509295509295909350565b602081525f82518060208401526102fe8160408501602087016101c2565b601f01601f19169190910160400192915050565b80516020808301519190811015610332575f198160200360031b1b821691505b50919050565b60805160a05160c05160e05161010051612b076103c25f395f610aab01525f81816105c3015281816107b901528181610a0101528181610c2b01528181610fba0152818161106e01526112ef01525f818161024d015281816110f801526118a101525f6103e301525f818161042a015281816106eb01528181610aeb01526114220152612b075ff3fe6080604052600436106101b5575f3560e01c80638da5cb5b116100ea578063cd6dc6871161008e578063cd6dc68714610549578063d48e889414610568578063debe1eab14610593578063ea4d3c9b146105b2578063f2fde38b146105e5578063f5d4fed314610604578063f6848d2414610619578063fabc1cbc14610638578063fe243a1714610657575f5ffd5b80638da5cb5b1461044c5780639104c319146104695780639b4e4634146104905780639ba06275146104a3578063a1ca780b146104d7578063a38406a3146104f6578063a3d75e0914610515578063a6a509be14610534575f5ffd5b8063595edbcb1161015c578063595edbcb146103045780635a26fbf4146103235780635ac86ab7146103425780635c975abb14610381578063715018a61461039f578063724af423146103b357806374cdd798146103d257806384d8106214610405578063886f119514610419575f5ffd5b80630d1e9de1146101b9578063136439dd146101da5780632704351a146101f9578063292b7b2b1461023c5780632eae418c1461027c57806350ff72251461029b57806354fd4d50146102cf578063595c6a67146102f0575b5f5ffd5b3480156101c4575f5ffd5b506101d86101d3366004611d00565b610676565b005b3480156101e5575f5ffd5b506101d86101f4366004611d1b565b6106d4565b348015610204575f5ffd5b50609f5461021f90600160a01b90046001600160401b031681565b6040516001600160401b0390911681526020015b60405180910390f35b348015610247575f5ffd5b5061026f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516102339190611d32565b348015610287575f5ffd5b506101d8610296366004611d46565b6107ae565b3480156102a6575f5ffd5b506102ba6102b5366004611d94565b6109f4565b60408051928352602083019190915201610233565b3480156102da575f5ffd5b506102e3610aa4565b6040516102339190611df4565b3480156102fb575f5ffd5b506101d8610ad4565b34801561030f575f5ffd5b50609f5461026f906001600160a01b031681565b34801561032e575f5ffd5b506101d861033d366004611e26565b610b88565b34801561034d575f5ffd5b5061037161035c366004611e4c565b606654600160ff9092169190911b9081161490565b6040519015158152602001610233565b34801561038c575f5ffd5b506066545b604051908152602001610233565b3480156103aa575f5ffd5b506101d8610c0e565b3480156103be575f5ffd5b506103916103cd366004611d94565b610c1f565b3480156103dd575f5ffd5b5061026f7f000000000000000000000000000000000000000000000000000000000000000081565b348015610410575f5ffd5b5061026f610d48565b348015610424575f5ffd5b5061026f7f000000000000000000000000000000000000000000000000000000000000000081565b348015610457575f5ffd5b506033546001600160a01b031661026f565b348015610474575f5ffd5b5061026f73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6101d861049e366004611ea9565b610dbb565b3480156104ae575f5ffd5b5061026f6104bd366004611d00565b60986020525f90815260409020546001600160a01b031681565b3480156104e2575f5ffd5b506101d86104f1366004611f1a565b610e8a565b348015610501575f5ffd5b5061026f610510366004611d00565b6110aa565b348015610520575f5ffd5b5061021f61052f366004611d00565b611169565b34801561053f575f5ffd5b5061039160995481565b348015610554575f5ffd5b506101d8610563366004611f4c565b6111c8565b348015610573575f5ffd5b50610391610582366004611d00565b609b6020525f908152604090205481565b34801561059e575f5ffd5b506101d86105ad366004611f4c565b6112e4565b3480156105bd575f5ffd5b5061026f7f000000000000000000000000000000000000000000000000000000000000000081565b3480156105f0575f5ffd5b506101d86105ff366004611d00565b611388565b34801561060f575f5ffd5b50610391609e5481565b348015610624575f5ffd5b50610371610633366004611d00565b611401565b348015610643575f5ffd5b506101d8610652366004611d1b565b611420565b348015610662575f5ffd5b50610391610671366004611f76565b611536565b61067e6115b6565b609f80546001600160a01b0319166001600160a01b0383161790556040517f7025c71a9fe60d709e71b377dc5f7c72c3e1d8539f8022574254e736ceca01e5906106c9908390611d32565b60405180910390a150565b60405163237dfb4760e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906346fbf68e90610720903390600401611d32565b602060405180830381865afa15801561073b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061075f9190611fad565b61077c57604051631d77d47760e21b815260040160405180910390fd5b60665481811681146107a15760405163c61dca5d60e01b815260040160405180910390fd5b6107aa82611610565b5050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107f75760405163f739589b60e01b815260040160405180910390fd5b6107ff61164d565b6001600160a01b03831673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac01461083c57604051632711b74d60e11b815260040160405180910390fd5b6001600160a01b038416610863576040516339b190bb60e11b815260040160405180910390fd5b5f81136108835760405163ef147de160e01b815260040160405180910390fd5b6001600160a01b0384165f908152609b602052604081205490829082121561096a575f6108af83611fe0565b90505f818511156108cd5750806108c68186611ffa565b92506108d3565b505f9150835b5f6108de828661200d565b6001600160a01b038a165f818152609b60205260409081902083905551919250907f4e2b791dedccd9fb30141b088cabf5c14a8912b52f59375c95c010700b8c61939061092e9085815260200190565b60405180910390a2886001600160a01b03165f5160206121a45f395f51905f528260405161095e91815260200190565b60405180910390a25050505b80156109e2576001600160a01b038681165f81815260986020526040908190205490516362483a2160e11b81526004810192909252602482018490529091169063c4907442906044015b5f604051808303815f87803b1580156109cb575f5ffd5b505af11580156109dd573d5f5f3e3d5ffd5b505050505b50506109ee600160c955565b50505050565b5f80336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610a3f5760405163f739589b60e01b815260040160405180910390fd5b610a4761164d565b6001600160a01b03841673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac014610a8457604051632711b74d60e11b815260040160405180910390fd5b610a8e85846116a6565b91509150610a9c600160c955565b935093915050565b6060610acf7f00000000000000000000000000000000000000000000000000000000000000006117da565b905090565b60405163237dfb4760e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906346fbf68e90610b20903390600401611d32565b602060405180830381865afa158015610b3b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b5f9190611fad565b610b7c57604051631d77d47760e21b815260040160405180910390fd5b610b865f19611610565b565b609f546001600160a01b03163314610bb357604051630986113760e41b815260040160405180910390fd5b609f805467ffffffffffffffff60a01b1916600160a01b6001600160401b038416908102919091179091556040519081527f1bc8f042a52db3a437620dea4548f2031fb2a16dd8d3b0b854295528dd2cdd33906020016106c9565b610c166115b6565b610b865f611817565b5f336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610c695760405163f739589b60e01b815260040160405180910390fd5b610c7161164d565b6001600160a01b03831673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac014610cae57604051632711b74d60e11b815260040160405180910390fd5b6001600160a01b0384165f908152609b6020526040812054610cd1908490612034565b90505f811215610cf45760405163ef147de160e01b815260040160405180910390fd5b6001600160a01b0385165f818152609b602052604090819020839055515f5160206121a45f395f51905f5290610d2d9084815260200190565b60405180910390a29050610d41600160c955565b9392505050565b6066545f908190600190811603610d725760405163840a48d560e01b815260040160405180910390fd5b610d7a61164d565b610d8333611401565b15610da15760405163031a852160e21b815260040160405180910390fd5b5f610daa611868565b925050610db7600160c955565b5090565b6066545f90600190811603610de35760405163840a48d560e01b815260040160405180910390fd5b610deb61164d565b335f908152609860205260409020546001600160a01b031680610e1357610e10611868565b90505b6040516326d3918d60e21b81526001600160a01b03821690639b4e4634903490610e49908b908b908b908b908b90600401612082565b5f604051808303818588803b158015610e60575f5ffd5b505af1158015610e72573d5f5f3e3d5ffd5b505050505050610e82600160c955565b505050505050565b6001600160a01b038084165f908152609860205260409020548491163314610ec5576040516312e16d7160e11b815260040160405180910390fd5b610ecd61164d565b6001600160a01b038416610ef4576040516339b190bb60e11b815260040160405180910390fd5b610f02633b9aca00836120cf565b15610f20576040516347d072bb60e11b815260040160405180910390fd5b6001600160a01b0384165f908152609b602052604081205490811215610f5957604051634b692bcf60e01b815260040160405180910390fd5b5f83131561101a575f5f610f6d87866116a6565b604051631e328e7960e11b81526001600160a01b038a8116600483015273beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0602483015260448201849052606482018390529294509092507f000000000000000000000000000000000000000000000000000000000000000090911690633c651cf2906084015f604051808303815f87803b158015610ffd575f5ffd5b505af115801561100f573d5f5f3e3d5ffd5b50505050505061109f565b5f83121561109f575f611036868661103187611fe0565b6119b6565b60405163305068e760e11b81526001600160a01b038881166004830152602482018590526001600160401b03831660448301529192507f0000000000000000000000000000000000000000000000000000000000000000909116906360a0d1ce906064016109b4565b506109ee600160c955565b6001600160a01b038082165f908152609860205260408120549091168061116357611160836001600160a01b03165f1b60405180610940016040528061090e81526020016121c461090e91397f000000000000000000000000000000000000000000000000000000000000000060405160200161112791906120ee565b60408051601f19818403018152908290526111459291602001612110565b60405160208183030381529060405280519060200120611aad565b90505b92915050565b6001600160a01b0381165f908152609d6020908152604080832081518083019092525460ff811615158083526101009091046001600160401b031692820192909252906111be57670de0b6b3a7640000610d41565b6020015192915050565b5f54610100900460ff16158080156111e657505f54600160ff909116105b806111ff5750303b1580156111ff57505f5460ff166001145b6112675760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff191660011790558015611288575f805461ff0019166101001790555b61129183611817565b61129a82611610565b80156112df575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461132d5760405163f739589b60e01b815260040160405180910390fd5b61133561164d565b80609e5f828254611346919061213e565b90915550506040518181527f1ed04b7fd262c0d9e50fa02957f32a81a151f03baaa367faeedc7521b001c4a49060200160405180910390a16107aa600160c955565b6113906115b6565b6001600160a01b0381166113f55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161125e565b6113fe81611817565b50565b6001600160a01b039081165f9081526098602052604090205416151590565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561147c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114a09190612151565b6001600160a01b0316336001600160a01b0316146114d15760405163794821ff60e01b815260040160405180910390fd5b606654801982198116146114f85760405163c61dca5d60e01b815260040160405180910390fd5b606682905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200160405180910390a25050565b5f6001600160a01b03821673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac01461157457604051632711b74d60e11b815260040160405180910390fd5b6001600160a01b0383165f908152609b6020526040812054126115ae576001600160a01b0383165f908152609b6020526040902054611160565b505f92915050565b6033546001600160a01b03163314610b865760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161125e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b600260c9540361169f5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161125e565b600260c955565b5f806001600160a01b0384166116cf576040516339b190bb60e11b815260040160405180910390fd5b5f8312156116f05760405163ef147de160e01b815260040160405180910390fd5b6001600160a01b0384165f908152609b60205260408120548491611714838361200d565b6001600160a01b0388165f818152609b60205260409081902083905551919250907f4e2b791dedccd9fb30141b088cabf5c14a8912b52f59375c95c010700b8c6193906117649086815260200190565b60405180910390a2866001600160a01b03165f5160206121a45f395f51905f528260405161179491815260200190565b60405180910390a25f81136117b1575f5f945094505050506117d3565b5f8212156117c6575f945092506117d3915050565b5092508391506117d39050565b9250929050565b60605f6117e683611ab9565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f60995f81546118779061216c565b9091555060408051610940810190915261090e8082525f9161190291839133916121c460208301397f00000000000000000000000000000000000000000000000000000000000000006040516020016118d091906120ee565b60408051601f19818403018152908290526118ee9291602001612110565b604051602081830303815290604052611ae0565b60405163189acdbd60e31b81529091506001600160a01b0382169063c4d66de890611931903390600401611d32565b5f604051808303815f87803b158015611948575f5ffd5b505af115801561195a573d5f5f3e3d5ffd5b5050335f8181526098602052604080822080546001600160a01b0319166001600160a01b038816908117909155905192945092507f21c99d0db02213c32fff5b05cf0a718ab5f858802b91498f80d82270289d856a91a3919050565b5f806119c28385611ffa565b90505f6119ce86611169565b90505f6119e56001600160401b0383168488611bde565b90505f6119f28284612184565b604080518082018252600181526001600160401b0385811660208084018281526001600160a01b038f165f818152609d845287902095518654925168ffffffffffffffffff1990931690151568ffffffffffffffff001916176101009286169290920291909117909455845193845291881691830191909152918101919091529091507fb160ab8589bf47dc04ea11b50d46678d21590cea2ed3e454e7bd3e41510f98cf9060600160405180910390a1979650505050505050565b5f611160838330611cc3565b5f60ff8216601f81111561116357604051632cd44ac360e21b815260040160405180910390fd5b5f83471015611b315760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e6365000000604482015260640161125e565b81515f03611b815760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f604482015260640161125e565b8282516020840186f590506001600160a01b038116610d415760405162461bcd60e51b8152602060048201526019602482015278437265617465323a204661696c6564206f6e206465706c6f7960381b604482015260640161125e565b5f80805f19858709858702925082811083820303915050805f03611c1557838281611c0b57611c0b6120bb565b0492505050610d41565b808411611c5c5760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b604482015260640161125e565b5f8486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091025f889003889004909101858311909403939093029303949094049190911702949350505050565b5f604051836040820152846020820152828152600b8101905060ff815360559020949350505050565b6001600160a01b03811681146113fe575f5ffd5b5f60208284031215611d10575f5ffd5b8135610d4181611cec565b5f60208284031215611d2b575f5ffd5b5035919050565b6001600160a01b0391909116815260200190565b5f5f5f5f60808587031215611d59575f5ffd5b8435611d6481611cec565b93506020850135611d7481611cec565b92506040850135611d8481611cec565b9396929550929360600135925050565b5f5f5f60608486031215611da6575f5ffd5b8335611db181611cec565b92506020840135611dc181611cec565b929592945050506040919091013590565b5f5b83811015611dec578181015183820152602001611dd4565b50505f910152565b602081525f8251806020840152611e12816040850160208701611dd2565b601f01601f19169190910160400192915050565b5f60208284031215611e36575f5ffd5b81356001600160401b0381168114610d41575f5ffd5b5f60208284031215611e5c575f5ffd5b813560ff81168114610d41575f5ffd5b5f5f83601f840112611e7c575f5ffd5b5081356001600160401b03811115611e92575f5ffd5b6020830191508360208285010111156117d3575f5ffd5b5f5f5f5f5f60608688031215611ebd575f5ffd5b85356001600160401b03811115611ed2575f5ffd5b611ede88828901611e6c565b90965094505060208601356001600160401b03811115611efc575f5ffd5b611f0888828901611e6c565b96999598509660400135949350505050565b5f5f5f60608486031215611f2c575f5ffd5b8335611f3781611cec565b95602085013595506040909401359392505050565b5f5f60408385031215611f5d575f5ffd5b8235611f6881611cec565b946020939093013593505050565b5f5f60408385031215611f87575f5ffd5b8235611f9281611cec565b91506020830135611fa281611cec565b809150509250929050565b5f60208284031215611fbd575f5ffd5b81518015158114610d41575f5ffd5b634e487b7160e01b5f52601160045260245ffd5b5f600160ff1b8201611ff457611ff4611fcc565b505f0390565b8181038181111561116357611163611fcc565b8082018281125f83128015821682158216171561202c5761202c611fcc565b505092915050565b8181035f83128015838313168383128216171561205357612053611fcc565b5092915050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b606081525f61209560608301878961205a565b82810360208401526120a881868861205a565b9150508260408301529695505050505050565b634e487b7160e01b5f52601260045260245ffd5b5f826120e957634e487b7160e01b5f52601260045260245ffd5b500790565b6001600160a01b039190911681526040602082018190525f9082015260600190565b5f8351612121818460208801611dd2565b835190830190612135818360208801611dd2565b01949350505050565b8082018082111561116357611163611fcc565b5f60208284031215612161575f5ffd5b8151610d4181611cec565b5f6001820161217d5761217d611fcc565b5060010190565b6001600160401b03828116828216039081111561116357611163611fcc56fed4def76d6d2bed6f14d5cd9af73cc2913d618d00edde42432e81c09bfe077098608060405260405161090e38038061090e83398101604081905261002291610460565b61002e82826000610035565b505061058a565b61003e83610100565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a260008251118061007f5750805b156100fb576100f9836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e99190610520565b836102a360201b6100291760201c565b505b505050565b610113816102cf60201b6100551760201c565b6101725760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101e6816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d79190610520565b6102cf60201b6100551760201c565b61024b5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610169565b806102827fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5060001b6102de60201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606102c883836040518060600160405280602781526020016108e7602791396102e1565b9392505050565b6001600160a01b03163b151590565b90565b6060600080856001600160a01b0316856040516102fe919061053b565b600060405180830381855af49150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b5090925090506103508683838761035a565b9695505050505050565b606083156103c65782516103bf576001600160a01b0385163b6103bf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610169565b50816103d0565b6103d083836103d8565b949350505050565b8151156103e85781518083602001fd5b8060405162461bcd60e51b81526004016101699190610557565b80516001600160a01b038116811461041957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561044f578181015183820152602001610437565b838111156100f95750506000910152565b6000806040838503121561047357600080fd5b61047c83610402565b60208401519092506001600160401b038082111561049957600080fd5b818501915085601f8301126104ad57600080fd5b8151818111156104bf576104bf61041e565b604051601f8201601f19908116603f011681019083821181831017156104e7576104e761041e565b8160405282815288602084870101111561050057600080fd5b610511836020830160208801610434565b80955050505050509250929050565b60006020828403121561053257600080fd5b6102c882610402565b6000825161054d818460208701610434565b9190910192915050565b6020815260008251806020840152610576816040850160208701610434565b601f01601f19169190910160400192915050565b61034e806105996000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b610100565b565b606061004e83836040518060600160405280602781526020016102f260279139610124565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100fb9190610249565b905090565b3660008037600080366000845af43d6000803e80801561011f573d6000f35b3d6000fd5b6060600080856001600160a01b03168560405161014191906102a2565b600060405180830381855af49150503d806000811461017c576040519150601f19603f3d011682016040523d82523d6000602084013e610181565b606091505b50915091506101928683838761019c565b9695505050505050565b6060831561020d578251610206576001600160a01b0385163b6102065760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b5081610217565b610217838361021f565b949350505050565b81511561022f5781518083602001fd5b8060405162461bcd60e51b81526004016101fd91906102be565b60006020828403121561025b57600080fd5b81516001600160a01b038116811461004e57600080fd5b60005b8381101561028d578181015183820152602001610275565b8381111561029c576000848401525b50505050565b600082516102b4818460208701610272565b9190910192915050565b60208152600082518060208401526102dd816040850160208701610272565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d51e81d3bc5ed20a26aeb05dce7e825c503b2061aa78628027300c8d65b9d89a64736f6c634300080c0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212204adde9af9966f43bd7bd6abe0928f73deb5bea1630991e97b24dab87b3d4ce6364736f6c634300081b0033
1021    /// ```
1022    #[rustfmt::skip]
1023    #[allow(clippy::all)]
1024    pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
1025        b"a\x01 `@R4\x80\x15a\0\x10W__\xFD[P`@Qa.\xC98\x03\x80a.\xC9\x839\x81\x01`@\x81\x90Ra\0/\x91a\x01\xE4V[\x80\x85\x85\x85\x85`\x01`\x01`\xA0\x1B\x03\x81\x16a\0[W`@Qc9\xB1\x90\xBB`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x90\x81\x16`\x80R\x92\x83\x16`\xA0R\x90\x82\x16`\xC0R\x16`\xE0Ra\0\x82\x81a\0\x99V[a\x01\0RPa\0\x8Fa\0\xDFV[PPPPPa\x038V[__\x82\x90P`\x1F\x81Q\x11\x15a\0\xCCW\x82`@Qc0Z'\xA9`\xE0\x1B\x81R`\x04\x01a\0\xC3\x91\x90a\x02\xE0V[`@Q\x80\x91\x03\x90\xFD[\x80Qa\0\xD7\x82a\x03\x12V[\x17\x93\x92PPPV[_Ta\x01\0\x90\x04`\xFF\x16\x15a\x01FW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FInitializable: contract is initi`D\x82\x01Rfalizing`\xC8\x1B`d\x82\x01R`\x84\x01a\0\xC3V[_T`\xFF\x90\x81\x16\x14a\x01\x95W_\x80T`\xFF\x19\x16`\xFF\x90\x81\x17\x90\x91U`@Q\x90\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1[V[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x01\xABW__\xFD[PV[cNH{q`\xE0\x1B_R`A`\x04R`$_\xFD[_[\x83\x81\x10\x15a\x01\xDCW\x81\x81\x01Q\x83\x82\x01R` \x01a\x01\xC4V[PP_\x91\x01RV[_____`\xA0\x86\x88\x03\x12\x15a\x01\xF8W__\xFD[\x85Qa\x02\x03\x81a\x01\x97V[` \x87\x01Q\x90\x95Pa\x02\x14\x81a\x01\x97V[`@\x87\x01Q\x90\x94Pa\x02%\x81a\x01\x97V[``\x87\x01Q\x90\x93Pa\x026\x81a\x01\x97V[`\x80\x87\x01Q\x90\x92P`\x01`\x01`@\x1B\x03\x81\x11\x15a\x02QW__\xFD[\x86\x01`\x1F\x81\x01\x88\x13a\x02aW__\xFD[\x80Q`\x01`\x01`@\x1B\x03\x81\x11\x15a\x02zWa\x02za\x01\xAEV[`@Q`\x1F\x82\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01`\x01`\x01`@\x1B\x03\x81\x11\x82\x82\x10\x17\x15a\x02\xA8Wa\x02\xA8a\x01\xAEV[`@R\x81\x81R\x82\x82\x01` \x01\x8A\x10\x15a\x02\xBFW__\xFD[a\x02\xD0\x82` \x83\x01` \x86\x01a\x01\xC2V[\x80\x93PPPP\x92\x95P\x92\x95\x90\x93PV[` \x81R_\x82Q\x80` \x84\x01Ra\x02\xFE\x81`@\x85\x01` \x87\x01a\x01\xC2V[`\x1F\x01`\x1F\x19\x16\x91\x90\x91\x01`@\x01\x92\x91PPV[\x80Q` \x80\x83\x01Q\x91\x90\x81\x10\x15a\x032W_\x19\x81` \x03`\x03\x1B\x1B\x82\x16\x91P[P\x91\x90PV[`\x80Q`\xA0Q`\xC0Q`\xE0Qa\x01\0Qa+\x07a\x03\xC2_9_a\n\xAB\x01R_\x81\x81a\x05\xC3\x01R\x81\x81a\x07\xB9\x01R\x81\x81a\n\x01\x01R\x81\x81a\x0C+\x01R\x81\x81a\x0F\xBA\x01R\x81\x81a\x10n\x01Ra\x12\xEF\x01R_\x81\x81a\x02M\x01R\x81\x81a\x10\xF8\x01Ra\x18\xA1\x01R_a\x03\xE3\x01R_\x81\x81a\x04*\x01R\x81\x81a\x06\xEB\x01R\x81\x81a\n\xEB\x01Ra\x14\"\x01Ra+\x07_\xF3\xFE`\x80`@R`\x046\x10a\x01\xB5W_5`\xE0\x1C\x80c\x8D\xA5\xCB[\x11a\0\xEAW\x80c\xCDm\xC6\x87\x11a\0\x8EW\x80c\xCDm\xC6\x87\x14a\x05IW\x80c\xD4\x8E\x88\x94\x14a\x05hW\x80c\xDE\xBE\x1E\xAB\x14a\x05\x93W\x80c\xEAM<\x9B\x14a\x05\xB2W\x80c\xF2\xFD\xE3\x8B\x14a\x05\xE5W\x80c\xF5\xD4\xFE\xD3\x14a\x06\x04W\x80c\xF6\x84\x8D$\x14a\x06\x19W\x80c\xFA\xBC\x1C\xBC\x14a\x068W\x80c\xFE$:\x17\x14a\x06WW__\xFD[\x80c\x8D\xA5\xCB[\x14a\x04LW\x80c\x91\x04\xC3\x19\x14a\x04iW\x80c\x9BNF4\x14a\x04\x90W\x80c\x9B\xA0bu\x14a\x04\xA3W\x80c\xA1\xCAx\x0B\x14a\x04\xD7W\x80c\xA3\x84\x06\xA3\x14a\x04\xF6W\x80c\xA3\xD7^\t\x14a\x05\x15W\x80c\xA6\xA5\t\xBE\x14a\x054W__\xFD[\x80cY^\xDB\xCB\x11a\x01\\W\x80cY^\xDB\xCB\x14a\x03\x04W\x80cZ&\xFB\xF4\x14a\x03#W\x80cZ\xC8j\xB7\x14a\x03BW\x80c\\\x97Z\xBB\x14a\x03\x81W\x80cqP\x18\xA6\x14a\x03\x9FW\x80crJ\xF4#\x14a\x03\xB3W\x80ct\xCD\xD7\x98\x14a\x03\xD2W\x80c\x84\xD8\x10b\x14a\x04\x05W\x80c\x88o\x11\x95\x14a\x04\x19W__\xFD[\x80c\r\x1E\x9D\xE1\x14a\x01\xB9W\x80c\x13d9\xDD\x14a\x01\xDAW\x80c'\x045\x1A\x14a\x01\xF9W\x80c)+{+\x14a\x02<W\x80c.\xAEA\x8C\x14a\x02|W\x80cP\xFFr%\x14a\x02\x9BW\x80cT\xFDMP\x14a\x02\xCFW\x80cY\\jg\x14a\x02\xF0W[__\xFD[4\x80\x15a\x01\xC4W__\xFD[Pa\x01\xD8a\x01\xD36`\x04a\x1D\0V[a\x06vV[\0[4\x80\x15a\x01\xE5W__\xFD[Pa\x01\xD8a\x01\xF46`\x04a\x1D\x1BV[a\x06\xD4V[4\x80\x15a\x02\x04W__\xFD[P`\x9FTa\x02\x1F\x90`\x01`\xA0\x1B\x90\x04`\x01`\x01`@\x1B\x03\x16\x81V[`@Q`\x01`\x01`@\x1B\x03\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x02GW__\xFD[Pa\x02o\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[`@Qa\x023\x91\x90a\x1D2V[4\x80\x15a\x02\x87W__\xFD[Pa\x01\xD8a\x02\x966`\x04a\x1DFV[a\x07\xAEV[4\x80\x15a\x02\xA6W__\xFD[Pa\x02\xBAa\x02\xB56`\x04a\x1D\x94V[a\t\xF4V[`@\x80Q\x92\x83R` \x83\x01\x91\x90\x91R\x01a\x023V[4\x80\x15a\x02\xDAW__\xFD[Pa\x02\xE3a\n\xA4V[`@Qa\x023\x91\x90a\x1D\xF4V[4\x80\x15a\x02\xFBW__\xFD[Pa\x01\xD8a\n\xD4V[4\x80\x15a\x03\x0FW__\xFD[P`\x9FTa\x02o\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[4\x80\x15a\x03.W__\xFD[Pa\x01\xD8a\x03=6`\x04a\x1E&V[a\x0B\x88V[4\x80\x15a\x03MW__\xFD[Pa\x03qa\x03\\6`\x04a\x1ELV[`fT`\x01`\xFF\x90\x92\x16\x91\x90\x91\x1B\x90\x81\x16\x14\x90V[`@Q\x90\x15\x15\x81R` \x01a\x023V[4\x80\x15a\x03\x8CW__\xFD[P`fT[`@Q\x90\x81R` \x01a\x023V[4\x80\x15a\x03\xAAW__\xFD[Pa\x01\xD8a\x0C\x0EV[4\x80\x15a\x03\xBEW__\xFD[Pa\x03\x91a\x03\xCD6`\x04a\x1D\x94V[a\x0C\x1FV[4\x80\x15a\x03\xDDW__\xFD[Pa\x02o\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[4\x80\x15a\x04\x10W__\xFD[Pa\x02oa\rHV[4\x80\x15a\x04$W__\xFD[Pa\x02o\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[4\x80\x15a\x04WW__\xFD[P`3T`\x01`\x01`\xA0\x1B\x03\x16a\x02oV[4\x80\x15a\x04tW__\xFD[Pa\x02os\xBE\xAC\x0E\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEB\xEA\xC0\x81V[a\x01\xD8a\x04\x9E6`\x04a\x1E\xA9V[a\r\xBBV[4\x80\x15a\x04\xAEW__\xFD[Pa\x02oa\x04\xBD6`\x04a\x1D\0V[`\x98` R_\x90\x81R`@\x90 T`\x01`\x01`\xA0\x1B\x03\x16\x81V[4\x80\x15a\x04\xE2W__\xFD[Pa\x01\xD8a\x04\xF16`\x04a\x1F\x1AV[a\x0E\x8AV[4\x80\x15a\x05\x01W__\xFD[Pa\x02oa\x05\x106`\x04a\x1D\0V[a\x10\xAAV[4\x80\x15a\x05 W__\xFD[Pa\x02\x1Fa\x05/6`\x04a\x1D\0V[a\x11iV[4\x80\x15a\x05?W__\xFD[Pa\x03\x91`\x99T\x81V[4\x80\x15a\x05TW__\xFD[Pa\x01\xD8a\x05c6`\x04a\x1FLV[a\x11\xC8V[4\x80\x15a\x05sW__\xFD[Pa\x03\x91a\x05\x826`\x04a\x1D\0V[`\x9B` R_\x90\x81R`@\x90 T\x81V[4\x80\x15a\x05\x9EW__\xFD[Pa\x01\xD8a\x05\xAD6`\x04a\x1FLV[a\x12\xE4V[4\x80\x15a\x05\xBDW__\xFD[Pa\x02o\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[4\x80\x15a\x05\xF0W__\xFD[Pa\x01\xD8a\x05\xFF6`\x04a\x1D\0V[a\x13\x88V[4\x80\x15a\x06\x0FW__\xFD[Pa\x03\x91`\x9ET\x81V[4\x80\x15a\x06$W__\xFD[Pa\x03qa\x0636`\x04a\x1D\0V[a\x14\x01V[4\x80\x15a\x06CW__\xFD[Pa\x01\xD8a\x06R6`\x04a\x1D\x1BV[a\x14 V[4\x80\x15a\x06bW__\xFD[Pa\x03\x91a\x06q6`\x04a\x1FvV[a\x156V[a\x06~a\x15\xB6V[`\x9F\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x83\x16\x17\x90U`@Q\x7Fp%\xC7\x1A\x9F\xE6\rp\x9Eq\xB3w\xDC_|r\xC3\xE1\xD8S\x9F\x80\"WBT\xE76\xCE\xCA\x01\xE5\x90a\x06\xC9\x90\x83\x90a\x1D2V[`@Q\x80\x91\x03\x90\xA1PV[`@Qc#}\xFBG`\xE1\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90cF\xFB\xF6\x8E\x90a\x07 \x903\x90`\x04\x01a\x1D2V[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x07;W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x07_\x91\x90a\x1F\xADV[a\x07|W`@Qc\x1Dw\xD4w`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`fT\x81\x81\x16\x81\x14a\x07\xA1W`@Qc\xC6\x1D\xCA]`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x07\xAA\x82a\x16\x10V[PPV[3`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14a\x07\xF7W`@Qc\xF79X\x9B`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x07\xFFa\x16MV[`\x01`\x01`\xA0\x1B\x03\x83\x16s\xBE\xAC\x0E\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEB\xEA\xC0\x14a\x08<W`@Qc'\x11\xB7M`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x84\x16a\x08cW`@Qc9\xB1\x90\xBB`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_\x81\x13a\x08\x83W`@Qc\xEF\x14}\xE1`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x84\x16_\x90\x81R`\x9B` R`@\x81 T\x90\x82\x90\x82\x12\x15a\tjW_a\x08\xAF\x83a\x1F\xE0V[\x90P_\x81\x85\x11\x15a\x08\xCDWP\x80a\x08\xC6\x81\x86a\x1F\xFAV[\x92Pa\x08\xD3V[P_\x91P\x83[_a\x08\xDE\x82\x86a \rV[`\x01`\x01`\xA0\x1B\x03\x8A\x16_\x81\x81R`\x9B` R`@\x90\x81\x90 \x83\x90UQ\x91\x92P\x90\x7FN+y\x1D\xED\xCC\xD9\xFB0\x14\x1B\x08\x8C\xAB\xF5\xC1J\x89\x12\xB5/Y7\\\x95\xC0\x10p\x0B\x8Ca\x93\x90a\t.\x90\x85\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA2\x88`\x01`\x01`\xA0\x1B\x03\x16_Q` a!\xA4_9_Q\x90_R\x82`@Qa\t^\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA2PPP[\x80\x15a\t\xE2W`\x01`\x01`\xA0\x1B\x03\x86\x81\x16_\x81\x81R`\x98` R`@\x90\x81\x90 T\x90QcbH:!`\xE1\x1B\x81R`\x04\x81\x01\x92\x90\x92R`$\x82\x01\x84\x90R\x90\x91\x16\x90c\xC4\x90tB\x90`D\x01[_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a\t\xCBW__\xFD[PZ\xF1\x15\x80\x15a\t\xDDW=__>=_\xFD[PPPP[PPa\t\xEE`\x01`\xC9UV[PPPPV[_\x803`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14a\n?W`@Qc\xF79X\x9B`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\nGa\x16MV[`\x01`\x01`\xA0\x1B\x03\x84\x16s\xBE\xAC\x0E\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEB\xEA\xC0\x14a\n\x84W`@Qc'\x11\xB7M`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\n\x8E\x85\x84a\x16\xA6V[\x91P\x91Pa\n\x9C`\x01`\xC9UV[\x93P\x93\x91PPV[``a\n\xCF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x17\xDAV[\x90P\x90V[`@Qc#}\xFBG`\xE1\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90cF\xFB\xF6\x8E\x90a\x0B \x903\x90`\x04\x01a\x1D2V[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0B;W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0B_\x91\x90a\x1F\xADV[a\x0B|W`@Qc\x1Dw\xD4w`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0B\x86_\x19a\x16\x10V[V[`\x9FT`\x01`\x01`\xA0\x1B\x03\x163\x14a\x0B\xB3W`@Qc\t\x86\x117`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x9F\x80Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\xA0\x1B\x19\x16`\x01`\xA0\x1B`\x01`\x01`@\x1B\x03\x84\x16\x90\x81\x02\x91\x90\x91\x17\x90\x91U`@Q\x90\x81R\x7F\x1B\xC8\xF0B\xA5-\xB3\xA47b\r\xEAEH\xF2\x03\x1F\xB2\xA1m\xD8\xD3\xB0\xB8T)U(\xDD,\xDD3\x90` \x01a\x06\xC9V[a\x0C\x16a\x15\xB6V[a\x0B\x86_a\x18\x17V[_3`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14a\x0CiW`@Qc\xF79X\x9B`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0Cqa\x16MV[`\x01`\x01`\xA0\x1B\x03\x83\x16s\xBE\xAC\x0E\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEB\xEA\xC0\x14a\x0C\xAEW`@Qc'\x11\xB7M`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x84\x16_\x90\x81R`\x9B` R`@\x81 Ta\x0C\xD1\x90\x84\x90a 4V[\x90P_\x81\x12\x15a\x0C\xF4W`@Qc\xEF\x14}\xE1`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x85\x16_\x81\x81R`\x9B` R`@\x90\x81\x90 \x83\x90UQ_Q` a!\xA4_9_Q\x90_R\x90a\r-\x90\x84\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA2\x90Pa\rA`\x01`\xC9UV[\x93\x92PPPV[`fT_\x90\x81\x90`\x01\x90\x81\x16\x03a\rrW`@Qc\x84\nH\xD5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\rza\x16MV[a\r\x833a\x14\x01V[\x15a\r\xA1W`@Qc\x03\x1A\x85!`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_a\r\xAAa\x18hV[\x92PPa\r\xB7`\x01`\xC9UV[P\x90V[`fT_\x90`\x01\x90\x81\x16\x03a\r\xE3W`@Qc\x84\nH\xD5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\r\xEBa\x16MV[3_\x90\x81R`\x98` R`@\x90 T`\x01`\x01`\xA0\x1B\x03\x16\x80a\x0E\x13Wa\x0E\x10a\x18hV[\x90P[`@Qc&\xD3\x91\x8D`\xE2\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x82\x16\x90c\x9BNF4\x904\x90a\x0EI\x90\x8B\x90\x8B\x90\x8B\x90\x8B\x90\x8B\x90`\x04\x01a \x82V[_`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a\x0E`W__\xFD[PZ\xF1\x15\x80\x15a\x0ErW=__>=_\xFD[PPPPPPa\x0E\x82`\x01`\xC9UV[PPPPPPV[`\x01`\x01`\xA0\x1B\x03\x80\x84\x16_\x90\x81R`\x98` R`@\x90 T\x84\x91\x163\x14a\x0E\xC5W`@Qc\x12\xE1mq`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0E\xCDa\x16MV[`\x01`\x01`\xA0\x1B\x03\x84\x16a\x0E\xF4W`@Qc9\xB1\x90\xBB`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0F\x02c;\x9A\xCA\0\x83a \xCFV[\x15a\x0F W`@QcG\xD0r\xBB`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x84\x16_\x90\x81R`\x9B` R`@\x81 T\x90\x81\x12\x15a\x0FYW`@QcKi+\xCF`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_\x83\x13\x15a\x10\x1AW__a\x0Fm\x87\x86a\x16\xA6V[`@Qc\x1E2\x8Ey`\xE1\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x8A\x81\x16`\x04\x83\x01Rs\xBE\xAC\x0E\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEB\xEA\xC0`$\x83\x01R`D\x82\x01\x84\x90R`d\x82\x01\x83\x90R\x92\x94P\x90\x92P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x91\x16\x90c<e\x1C\xF2\x90`\x84\x01_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a\x0F\xFDW__\xFD[PZ\xF1\x15\x80\x15a\x10\x0FW=__>=_\xFD[PPPPPPa\x10\x9FV[_\x83\x12\x15a\x10\x9FW_a\x106\x86\x86a\x101\x87a\x1F\xE0V[a\x19\xB6V[`@Qc0Ph\xE7`\xE1\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x88\x81\x16`\x04\x83\x01R`$\x82\x01\x85\x90R`\x01`\x01`@\x1B\x03\x83\x16`D\x83\x01R\x91\x92P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x91\x16\x90c`\xA0\xD1\xCE\x90`d\x01a\t\xB4V[Pa\t\xEE`\x01`\xC9UV[`\x01`\x01`\xA0\x1B\x03\x80\x82\x16_\x90\x81R`\x98` R`@\x81 T\x90\x91\x16\x80a\x11cWa\x11`\x83`\x01`\x01`\xA0\x1B\x03\x16_\x1B`@Q\x80a\t@\x01`@R\x80a\t\x0E\x81R` \x01a!\xC4a\t\x0E\x919\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`@Q` \x01a\x11'\x91\x90a \xEEV[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x90\x82\x90Ra\x11E\x92\x91` \x01a!\x10V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 a\x1A\xADV[\x90P[\x92\x91PPV[`\x01`\x01`\xA0\x1B\x03\x81\x16_\x90\x81R`\x9D` \x90\x81R`@\x80\x83 \x81Q\x80\x83\x01\x90\x92RT`\xFF\x81\x16\x15\x15\x80\x83Ra\x01\0\x90\x91\x04`\x01`\x01`@\x1B\x03\x16\x92\x82\x01\x92\x90\x92R\x90a\x11\xBEWg\r\xE0\xB6\xB3\xA7d\0\0a\rAV[` \x01Q\x92\x91PPV[_Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x80\x15a\x11\xE6WP_T`\x01`\xFF\x90\x91\x16\x10[\x80a\x11\xFFWP0;\x15\x80\x15a\x11\xFFWP_T`\xFF\x16`\x01\x14[a\x12gW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`.`$\x82\x01R\x7FInitializable: contract is alrea`D\x82\x01Rm\x19\x1EH\x1A[\x9A]\x1AX[\x1A^\x99Y`\x92\x1B`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[_\x80T`\xFF\x19\x16`\x01\x17\x90U\x80\x15a\x12\x88W_\x80Ta\xFF\0\x19\x16a\x01\0\x17\x90U[a\x12\x91\x83a\x18\x17V[a\x12\x9A\x82a\x16\x10V[\x80\x15a\x12\xDFW_\x80Ta\xFF\0\x19\x16\x90U`@Q`\x01\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1[PPPV[3`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14a\x13-W`@Qc\xF79X\x9B`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x135a\x16MV[\x80`\x9E_\x82\x82Ta\x13F\x91\x90a!>V[\x90\x91UPP`@Q\x81\x81R\x7F\x1E\xD0K\x7F\xD2b\xC0\xD9\xE5\x0F\xA0)W\xF3*\x81\xA1Q\xF0;\xAA\xA3g\xFA\xEE\xDCu!\xB0\x01\xC4\xA4\x90` \x01`@Q\x80\x91\x03\x90\xA1a\x07\xAA`\x01`\xC9UV[a\x13\x90a\x15\xB6V[`\x01`\x01`\xA0\x1B\x03\x81\x16a\x13\xF5W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`&`$\x82\x01R\x7FOwnable: new owner is the zero a`D\x82\x01Reddress`\xD0\x1B`d\x82\x01R`\x84\x01a\x12^V[a\x13\xFE\x81a\x18\x17V[PV[`\x01`\x01`\xA0\x1B\x03\x90\x81\x16_\x90\x81R`\x98` R`@\x90 T\x16\x15\x15\x90V[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16c\xEA\xB6mz`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x14|W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x14\xA0\x91\x90a!QV[`\x01`\x01`\xA0\x1B\x03\x163`\x01`\x01`\xA0\x1B\x03\x16\x14a\x14\xD1W`@QcyH!\xFF`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`fT\x80\x19\x82\x19\x81\x16\x14a\x14\xF8W`@Qc\xC6\x1D\xCA]`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`f\x82\x90U`@Q\x82\x81R3\x90\x7F5\x82\xD1\x82\x8E&\xBFV\xBD\x80\x15\x02\xBC\x02\x1A\xC0\xBC\x8A\xFBW\xC8&\xE4\x98kEY<\x8F\xAD8\x9C\x90` \x01`@Q\x80\x91\x03\x90\xA2PPV[_`\x01`\x01`\xA0\x1B\x03\x82\x16s\xBE\xAC\x0E\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEB\xEA\xC0\x14a\x15tW`@Qc'\x11\xB7M`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x83\x16_\x90\x81R`\x9B` R`@\x81 T\x12a\x15\xAEW`\x01`\x01`\xA0\x1B\x03\x83\x16_\x90\x81R`\x9B` R`@\x90 Ta\x11`V[P_\x92\x91PPV[`3T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x0B\x86W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01\x81\x90R`$\x82\x01R\x7FOwnable: caller is not the owner`D\x82\x01R`d\x01a\x12^V[`f\x81\x90U`@Q\x81\x81R3\x90\x7F\xAB@\xA3t\xBCQ\xDE7\"\0\xA8\xBC\x98\x1A\xF8\xC9\xEC\xDC\x08\xDF\xDA\xEF\x0B\xB6\xE0\x9F\x88\xF3\xC6\x16\xEF=\x90` \x01`@Q\x80\x91\x03\x90\xA2PV[`\x02`\xC9T\x03a\x16\x9FW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1F`$\x82\x01R\x7FReentrancyGuard: reentrant call\0`D\x82\x01R`d\x01a\x12^V[`\x02`\xC9UV[_\x80`\x01`\x01`\xA0\x1B\x03\x84\x16a\x16\xCFW`@Qc9\xB1\x90\xBB`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_\x83\x12\x15a\x16\xF0W`@Qc\xEF\x14}\xE1`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x84\x16_\x90\x81R`\x9B` R`@\x81 T\x84\x91a\x17\x14\x83\x83a \rV[`\x01`\x01`\xA0\x1B\x03\x88\x16_\x81\x81R`\x9B` R`@\x90\x81\x90 \x83\x90UQ\x91\x92P\x90\x7FN+y\x1D\xED\xCC\xD9\xFB0\x14\x1B\x08\x8C\xAB\xF5\xC1J\x89\x12\xB5/Y7\\\x95\xC0\x10p\x0B\x8Ca\x93\x90a\x17d\x90\x86\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA2\x86`\x01`\x01`\xA0\x1B\x03\x16_Q` a!\xA4_9_Q\x90_R\x82`@Qa\x17\x94\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA2_\x81\x13a\x17\xB1W__\x94P\x94PPPPa\x17\xD3V[_\x82\x12\x15a\x17\xC6W_\x94P\x92Pa\x17\xD3\x91PPV[P\x92P\x83\x91Pa\x17\xD3\x90PV[\x92P\x92\x90PV[``_a\x17\xE6\x83a\x1A\xB9V[`@\x80Q` \x80\x82R\x81\x83\x01\x90\x92R\x91\x92P_\x91\x90` \x82\x01\x81\x806\x837PPP\x91\x82RP` \x81\x01\x92\x90\x92RP\x90V[`3\x80T`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\x01`\x01`\xA0\x1B\x03\x19\x83\x16\x81\x17\x90\x93U`@Q\x91\x16\x91\x90\x82\x90\x7F\x8B\xE0\x07\x9CS\x16Y\x14\x13D\xCD\x1F\xD0\xA4\xF2\x84\x19I\x7F\x97\"\xA3\xDA\xAF\xE3\xB4\x18okdW\xE0\x90_\x90\xA3PPV[_`\x99_\x81Ta\x18w\x90a!lV[\x90\x91UP`@\x80Qa\t@\x81\x01\x90\x91Ra\t\x0E\x80\x82R_\x91a\x19\x02\x91\x83\x913\x91a!\xC4` \x83\x019\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`@Q` \x01a\x18\xD0\x91\x90a \xEEV[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x90\x82\x90Ra\x18\xEE\x92\x91` \x01a!\x10V[`@Q` \x81\x83\x03\x03\x81R\x90`@Ra\x1A\xE0V[`@Qc\x18\x9A\xCD\xBD`\xE3\x1B\x81R\x90\x91P`\x01`\x01`\xA0\x1B\x03\x82\x16\x90c\xC4\xD6m\xE8\x90a\x191\x903\x90`\x04\x01a\x1D2V[_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a\x19HW__\xFD[PZ\xF1\x15\x80\x15a\x19ZW=__>=_\xFD[PP3_\x81\x81R`\x98` R`@\x80\x82 \x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x88\x16\x90\x81\x17\x90\x91U\x90Q\x92\x94P\x92P\x7F!\xC9\x9D\r\xB0\"\x13\xC3/\xFF[\x05\xCF\nq\x8A\xB5\xF8X\x80+\x91I\x8F\x80\xD8\"p(\x9D\x85j\x91\xA3\x91\x90PV[_\x80a\x19\xC2\x83\x85a\x1F\xFAV[\x90P_a\x19\xCE\x86a\x11iV[\x90P_a\x19\xE5`\x01`\x01`@\x1B\x03\x83\x16\x84\x88a\x1B\xDEV[\x90P_a\x19\xF2\x82\x84a!\x84V[`@\x80Q\x80\x82\x01\x82R`\x01\x81R`\x01`\x01`@\x1B\x03\x85\x81\x16` \x80\x84\x01\x82\x81R`\x01`\x01`\xA0\x1B\x03\x8F\x16_\x81\x81R`\x9D\x84R\x87\x90 \x95Q\x86T\x92Qh\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x90\x93\x16\x90\x15\x15h\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x19\x16\x17a\x01\0\x92\x86\x16\x92\x90\x92\x02\x91\x90\x91\x17\x90\x94U\x84Q\x93\x84R\x91\x88\x16\x91\x83\x01\x91\x90\x91R\x91\x81\x01\x91\x90\x91R\x90\x91P\x7F\xB1`\xAB\x85\x89\xBFG\xDC\x04\xEA\x11\xB5\rFg\x8D!Y\x0C\xEA.\xD3\xE4T\xE7\xBD>AQ\x0F\x98\xCF\x90``\x01`@Q\x80\x91\x03\x90\xA1\x97\x96PPPPPPPV[_a\x11`\x83\x830a\x1C\xC3V[_`\xFF\x82\x16`\x1F\x81\x11\x15a\x11cW`@Qc,\xD4J\xC3`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_\x83G\x10\x15a\x1B1W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1D`$\x82\x01R\x7FCreate2: insufficient balance\0\0\0`D\x82\x01R`d\x01a\x12^V[\x81Q_\x03a\x1B\x81W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01\x81\x90R`$\x82\x01R\x7FCreate2: bytecode length is zero`D\x82\x01R`d\x01a\x12^V[\x82\x82Q` \x84\x01\x86\xF5\x90P`\x01`\x01`\xA0\x1B\x03\x81\x16a\rAW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x19`$\x82\x01RxCreate2: Failed on deploy`8\x1B`D\x82\x01R`d\x01a\x12^V[_\x80\x80_\x19\x85\x87\t\x85\x87\x02\x92P\x82\x81\x10\x83\x82\x03\x03\x91PP\x80_\x03a\x1C\x15W\x83\x82\x81a\x1C\x0BWa\x1C\x0Ba \xBBV[\x04\x92PPPa\rAV[\x80\x84\x11a\x1C\\W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x15`$\x82\x01RtMath: mulDiv overflow`X\x1B`D\x82\x01R`d\x01a\x12^V[_\x84\x86\x88\t`\x02`\x01\x87\x19\x81\x01\x88\x16\x97\x88\x90\x04`\x03\x81\x02\x83\x18\x80\x82\x02\x84\x03\x02\x80\x82\x02\x84\x03\x02\x80\x82\x02\x84\x03\x02\x80\x82\x02\x84\x03\x02\x80\x82\x02\x84\x03\x02\x90\x81\x02\x90\x92\x03\x90\x91\x02_\x88\x90\x03\x88\x90\x04\x90\x91\x01\x85\x83\x11\x90\x94\x03\x93\x90\x93\x02\x93\x03\x94\x90\x94\x04\x91\x90\x91\x17\x02\x94\x93PPPPV[_`@Q\x83`@\x82\x01R\x84` \x82\x01R\x82\x81R`\x0B\x81\x01\x90P`\xFF\x81S`U\x90 \x94\x93PPPPV[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x13\xFEW__\xFD[_` \x82\x84\x03\x12\x15a\x1D\x10W__\xFD[\x815a\rA\x81a\x1C\xECV[_` \x82\x84\x03\x12\x15a\x1D+W__\xFD[P5\x91\x90PV[`\x01`\x01`\xA0\x1B\x03\x91\x90\x91\x16\x81R` \x01\x90V[____`\x80\x85\x87\x03\x12\x15a\x1DYW__\xFD[\x845a\x1Dd\x81a\x1C\xECV[\x93P` \x85\x015a\x1Dt\x81a\x1C\xECV[\x92P`@\x85\x015a\x1D\x84\x81a\x1C\xECV[\x93\x96\x92\x95P\x92\x93``\x015\x92PPV[___``\x84\x86\x03\x12\x15a\x1D\xA6W__\xFD[\x835a\x1D\xB1\x81a\x1C\xECV[\x92P` \x84\x015a\x1D\xC1\x81a\x1C\xECV[\x92\x95\x92\x94PPP`@\x91\x90\x91\x015\x90V[_[\x83\x81\x10\x15a\x1D\xECW\x81\x81\x01Q\x83\x82\x01R` \x01a\x1D\xD4V[PP_\x91\x01RV[` \x81R_\x82Q\x80` \x84\x01Ra\x1E\x12\x81`@\x85\x01` \x87\x01a\x1D\xD2V[`\x1F\x01`\x1F\x19\x16\x91\x90\x91\x01`@\x01\x92\x91PPV[_` \x82\x84\x03\x12\x15a\x1E6W__\xFD[\x815`\x01`\x01`@\x1B\x03\x81\x16\x81\x14a\rAW__\xFD[_` \x82\x84\x03\x12\x15a\x1E\\W__\xFD[\x815`\xFF\x81\x16\x81\x14a\rAW__\xFD[__\x83`\x1F\x84\x01\x12a\x1E|W__\xFD[P\x815`\x01`\x01`@\x1B\x03\x81\x11\x15a\x1E\x92W__\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15a\x17\xD3W__\xFD[_____``\x86\x88\x03\x12\x15a\x1E\xBDW__\xFD[\x855`\x01`\x01`@\x1B\x03\x81\x11\x15a\x1E\xD2W__\xFD[a\x1E\xDE\x88\x82\x89\x01a\x1ElV[\x90\x96P\x94PP` \x86\x015`\x01`\x01`@\x1B\x03\x81\x11\x15a\x1E\xFCW__\xFD[a\x1F\x08\x88\x82\x89\x01a\x1ElV[\x96\x99\x95\x98P\x96`@\x015\x94\x93PPPPV[___``\x84\x86\x03\x12\x15a\x1F,W__\xFD[\x835a\x1F7\x81a\x1C\xECV[\x95` \x85\x015\x95P`@\x90\x94\x015\x93\x92PPPV[__`@\x83\x85\x03\x12\x15a\x1F]W__\xFD[\x825a\x1Fh\x81a\x1C\xECV[\x94` \x93\x90\x93\x015\x93PPPV[__`@\x83\x85\x03\x12\x15a\x1F\x87W__\xFD[\x825a\x1F\x92\x81a\x1C\xECV[\x91P` \x83\x015a\x1F\xA2\x81a\x1C\xECV[\x80\x91PP\x92P\x92\x90PV[_` \x82\x84\x03\x12\x15a\x1F\xBDW__\xFD[\x81Q\x80\x15\x15\x81\x14a\rAW__\xFD[cNH{q`\xE0\x1B_R`\x11`\x04R`$_\xFD[_`\x01`\xFF\x1B\x82\x01a\x1F\xF4Wa\x1F\xF4a\x1F\xCCV[P_\x03\x90V[\x81\x81\x03\x81\x81\x11\x15a\x11cWa\x11ca\x1F\xCCV[\x80\x82\x01\x82\x81\x12_\x83\x12\x80\x15\x82\x16\x82\x15\x82\x16\x17\x15a ,Wa ,a\x1F\xCCV[PP\x92\x91PPV[\x81\x81\x03_\x83\x12\x80\x15\x83\x83\x13\x16\x83\x83\x12\x82\x16\x17\x15a SWa Sa\x1F\xCCV[P\x92\x91PPV[\x81\x83R\x81\x81` \x85\x017P_\x82\x82\x01` \x90\x81\x01\x91\x90\x91R`\x1F\x90\x91\x01`\x1F\x19\x16\x90\x91\x01\x01\x90V[``\x81R_a \x95``\x83\x01\x87\x89a ZV[\x82\x81\x03` \x84\x01Ra \xA8\x81\x86\x88a ZV[\x91PP\x82`@\x83\x01R\x96\x95PPPPPPV[cNH{q`\xE0\x1B_R`\x12`\x04R`$_\xFD[_\x82a \xE9WcNH{q`\xE0\x1B_R`\x12`\x04R`$_\xFD[P\x07\x90V[`\x01`\x01`\xA0\x1B\x03\x91\x90\x91\x16\x81R`@` \x82\x01\x81\x90R_\x90\x82\x01R``\x01\x90V[_\x83Qa!!\x81\x84` \x88\x01a\x1D\xD2V[\x83Q\x90\x83\x01\x90a!5\x81\x83` \x88\x01a\x1D\xD2V[\x01\x94\x93PPPPV[\x80\x82\x01\x80\x82\x11\x15a\x11cWa\x11ca\x1F\xCCV[_` \x82\x84\x03\x12\x15a!aW__\xFD[\x81Qa\rA\x81a\x1C\xECV[_`\x01\x82\x01a!}Wa!}a\x1F\xCCV[P`\x01\x01\x90V[`\x01`\x01`@\x1B\x03\x82\x81\x16\x82\x82\x16\x03\x90\x81\x11\x15a\x11cWa\x11ca\x1F\xCCV\xFE\xD4\xDE\xF7mm+\xEDo\x14\xD5\xCD\x9A\xF7<\xC2\x91=a\x8D\0\xED\xDEBC.\x81\xC0\x9B\xFE\x07p\x98`\x80`@R`@Qa\t\x0E8\x03\x80a\t\x0E\x839\x81\x01`@\x81\x90Ra\0\"\x91a\x04`V[a\0.\x82\x82`\0a\x005V[PPa\x05\x8AV[a\0>\x83a\x01\0V[`@Q`\x01`\x01`\xA0\x1B\x03\x84\x16\x90\x7F\x1C\xF3\xB0:l\xF1\x9F\xA2\xBA\xBAM\xF1H\xE9\xDC\xAB\xED\xEA\x7F\x8A\\\x07\x84\x0E ~\\\x08\x9B\xE9]>\x90`\0\x90\xA2`\0\x82Q\x11\x80a\0\x7FWP\x80[\x15a\0\xFBWa\0\xF9\x83`\x01`\x01`\xA0\x1B\x03\x16c\\`\xDA\x1B`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\0\xC5W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\0\xE9\x91\x90a\x05 V[\x83a\x02\xA3` \x1Ba\0)\x17` \x1CV[P[PPPV[a\x01\x13\x81a\x02\xCF` \x1Ba\0U\x17` \x1CV[a\x01rW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FERC1967: new beacon is not a con`D\x82\x01Rd\x1D\x1C\x98X\xDD`\xDA\x1B`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[a\x01\xE6\x81`\x01`\x01`\xA0\x1B\x03\x16c\\`\xDA\x1B`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x01\xB3W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x01\xD7\x91\x90a\x05 V[a\x02\xCF` \x1Ba\0U\x17` \x1CV[a\x02KW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`0`$\x82\x01R\x7FERC1967: beacon implementation i`D\x82\x01Ro\x1C\xC8\x1B\x9B\xDD\x08\x18H\x18\xDB\xDB\x9D\x1C\x98X\xDD`\x82\x1B`d\x82\x01R`\x84\x01a\x01iV[\x80a\x02\x82\x7F\xA3\xF0\xADt\xE5B:\xEB\xFD\x80\xD3\xEFCFW\x835\xA9\xA7*\xEA\xEEY\xFFl\xB3X+5\x13=P`\0\x1Ba\x02\xDE` \x1Ba\0d\x17` \x1CV[\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16\x91\x90\x91\x17\x90UPV[``a\x02\xC8\x83\x83`@Q\x80``\x01`@R\x80`'\x81R` \x01a\x08\xE7`'\x919a\x02\xE1V[\x93\x92PPPV[`\x01`\x01`\xA0\x1B\x03\x16;\x15\x15\x90V[\x90V[```\0\x80\x85`\x01`\x01`\xA0\x1B\x03\x16\x85`@Qa\x02\xFE\x91\x90a\x05;V[`\0`@Q\x80\x83\x03\x81\x85Z\xF4\x91PP=\x80`\0\x81\x14a\x039W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x03>V[``\x91P[P\x90\x92P\x90Pa\x03P\x86\x83\x83\x87a\x03ZV[\x96\x95PPPPPPV[``\x83\x15a\x03\xC6W\x82Qa\x03\xBFW`\x01`\x01`\xA0\x1B\x03\x85\x16;a\x03\xBFW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1D`$\x82\x01R\x7FAddress: call to non-contract\0\0\0`D\x82\x01R`d\x01a\x01iV[P\x81a\x03\xD0V[a\x03\xD0\x83\x83a\x03\xD8V[\x94\x93PPPPV[\x81Q\x15a\x03\xE8W\x81Q\x80\x83` \x01\xFD[\x80`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x01i\x91\x90a\x05WV[\x80Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x04\x19W`\0\x80\xFD[\x91\x90PV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\0[\x83\x81\x10\x15a\x04OW\x81\x81\x01Q\x83\x82\x01R` \x01a\x047V[\x83\x81\x11\x15a\0\xF9WPP`\0\x91\x01RV[`\0\x80`@\x83\x85\x03\x12\x15a\x04sW`\0\x80\xFD[a\x04|\x83a\x04\x02V[` \x84\x01Q\x90\x92P`\x01`\x01`@\x1B\x03\x80\x82\x11\x15a\x04\x99W`\0\x80\xFD[\x81\x85\x01\x91P\x85`\x1F\x83\x01\x12a\x04\xADW`\0\x80\xFD[\x81Q\x81\x81\x11\x15a\x04\xBFWa\x04\xBFa\x04\x1EV[`@Q`\x1F\x82\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01\x90\x83\x82\x11\x81\x83\x10\x17\x15a\x04\xE7Wa\x04\xE7a\x04\x1EV[\x81`@R\x82\x81R\x88` \x84\x87\x01\x01\x11\x15a\x05\0W`\0\x80\xFD[a\x05\x11\x83` \x83\x01` \x88\x01a\x044V[\x80\x95PPPPPP\x92P\x92\x90PV[`\0` \x82\x84\x03\x12\x15a\x052W`\0\x80\xFD[a\x02\xC8\x82a\x04\x02V[`\0\x82Qa\x05M\x81\x84` \x87\x01a\x044V[\x91\x90\x91\x01\x92\x91PPV[` \x81R`\0\x82Q\x80` \x84\x01Ra\x05v\x81`@\x85\x01` \x87\x01a\x044V[`\x1F\x01`\x1F\x19\x16\x91\x90\x91\x01`@\x01\x92\x91PPV[a\x03N\x80a\x05\x99`\09`\0\xF3\xFE`\x80`@R6a\0\x13Wa\0\x11a\0\x17V[\0[a\0\x11[a\0'a\0\"a\0gV[a\x01\0V[V[``a\0N\x83\x83`@Q\x80``\x01`@R\x80`'\x81R` \x01a\x02\xF2`'\x919a\x01$V[\x93\x92PPPV[`\x01`\x01`\xA0\x1B\x03\x16;\x15\x15\x90V[\x90V[`\0a\0\x9A\x7F\xA3\xF0\xADt\xE5B:\xEB\xFD\x80\xD3\xEFCFW\x835\xA9\xA7*\xEA\xEEY\xFFl\xB3X+5\x13=PT`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16c\\`\xDA\x1B`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\0\xD7W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\0\xFB\x91\x90a\x02IV[\x90P\x90V[6`\0\x807`\0\x806`\0\x84Z\xF4=`\0\x80>\x80\x80\x15a\x01\x1FW=`\0\xF3[=`\0\xFD[```\0\x80\x85`\x01`\x01`\xA0\x1B\x03\x16\x85`@Qa\x01A\x91\x90a\x02\xA2V[`\0`@Q\x80\x83\x03\x81\x85Z\xF4\x91PP=\x80`\0\x81\x14a\x01|W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x01\x81V[``\x91P[P\x91P\x91Pa\x01\x92\x86\x83\x83\x87a\x01\x9CV[\x96\x95PPPPPPV[``\x83\x15a\x02\rW\x82Qa\x02\x06W`\x01`\x01`\xA0\x1B\x03\x85\x16;a\x02\x06W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1D`$\x82\x01R\x7FAddress: call to non-contract\0\0\0`D\x82\x01R`d\x01[`@Q\x80\x91\x03\x90\xFD[P\x81a\x02\x17V[a\x02\x17\x83\x83a\x02\x1FV[\x94\x93PPPPV[\x81Q\x15a\x02/W\x81Q\x80\x83` \x01\xFD[\x80`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x01\xFD\x91\x90a\x02\xBEV[`\0` \x82\x84\x03\x12\x15a\x02[W`\0\x80\xFD[\x81Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\0NW`\0\x80\xFD[`\0[\x83\x81\x10\x15a\x02\x8DW\x81\x81\x01Q\x83\x82\x01R` \x01a\x02uV[\x83\x81\x11\x15a\x02\x9CW`\0\x84\x84\x01R[PPPPV[`\0\x82Qa\x02\xB4\x81\x84` \x87\x01a\x02rV[\x91\x90\x91\x01\x92\x91PPV[` \x81R`\0\x82Q\x80` \x84\x01Ra\x02\xDD\x81`@\x85\x01` \x87\x01a\x02rV[`\x1F\x01`\x1F\x19\x16\x91\x90\x91\x01`@\x01\x92\x91PPV\xFEAddress: low-level delegate call failed\xA2dipfsX\"\x12 \xD5\x1E\x81\xD3\xBC^\xD2\n&\xAE\xB0]\xCE~\x82\\P; a\xAAxb\x80'0\x0C\x8De\xB9\xD8\x9AdsolcC\0\x08\x0C\x003Address: low-level delegate call failed\xA2dipfsX\"\x12 J\xDD\xE9\xAF\x99f\xF4;\xD7\xBDj\xBE\t(\xF7=\xEB[\xEA\x160\x99\x1E\x97\xB2M\xAB\x87\xB3\xD4\xCEcdsolcC\0\x08\x1B\x003",
1026    );
1027    /// The runtime bytecode of the contract, as deployed on the network.
1028    ///
1029    /// ```text
1030    ///0x6080604052600436106101b5575f3560e01c80638da5cb5b116100ea578063cd6dc6871161008e578063cd6dc68714610549578063d48e889414610568578063debe1eab14610593578063ea4d3c9b146105b2578063f2fde38b146105e5578063f5d4fed314610604578063f6848d2414610619578063fabc1cbc14610638578063fe243a1714610657575f5ffd5b80638da5cb5b1461044c5780639104c319146104695780639b4e4634146104905780639ba06275146104a3578063a1ca780b146104d7578063a38406a3146104f6578063a3d75e0914610515578063a6a509be14610534575f5ffd5b8063595edbcb1161015c578063595edbcb146103045780635a26fbf4146103235780635ac86ab7146103425780635c975abb14610381578063715018a61461039f578063724af423146103b357806374cdd798146103d257806384d8106214610405578063886f119514610419575f5ffd5b80630d1e9de1146101b9578063136439dd146101da5780632704351a146101f9578063292b7b2b1461023c5780632eae418c1461027c57806350ff72251461029b57806354fd4d50146102cf578063595c6a67146102f0575b5f5ffd5b3480156101c4575f5ffd5b506101d86101d3366004611d00565b610676565b005b3480156101e5575f5ffd5b506101d86101f4366004611d1b565b6106d4565b348015610204575f5ffd5b50609f5461021f90600160a01b90046001600160401b031681565b6040516001600160401b0390911681526020015b60405180910390f35b348015610247575f5ffd5b5061026f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516102339190611d32565b348015610287575f5ffd5b506101d8610296366004611d46565b6107ae565b3480156102a6575f5ffd5b506102ba6102b5366004611d94565b6109f4565b60408051928352602083019190915201610233565b3480156102da575f5ffd5b506102e3610aa4565b6040516102339190611df4565b3480156102fb575f5ffd5b506101d8610ad4565b34801561030f575f5ffd5b50609f5461026f906001600160a01b031681565b34801561032e575f5ffd5b506101d861033d366004611e26565b610b88565b34801561034d575f5ffd5b5061037161035c366004611e4c565b606654600160ff9092169190911b9081161490565b6040519015158152602001610233565b34801561038c575f5ffd5b506066545b604051908152602001610233565b3480156103aa575f5ffd5b506101d8610c0e565b3480156103be575f5ffd5b506103916103cd366004611d94565b610c1f565b3480156103dd575f5ffd5b5061026f7f000000000000000000000000000000000000000000000000000000000000000081565b348015610410575f5ffd5b5061026f610d48565b348015610424575f5ffd5b5061026f7f000000000000000000000000000000000000000000000000000000000000000081565b348015610457575f5ffd5b506033546001600160a01b031661026f565b348015610474575f5ffd5b5061026f73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6101d861049e366004611ea9565b610dbb565b3480156104ae575f5ffd5b5061026f6104bd366004611d00565b60986020525f90815260409020546001600160a01b031681565b3480156104e2575f5ffd5b506101d86104f1366004611f1a565b610e8a565b348015610501575f5ffd5b5061026f610510366004611d00565b6110aa565b348015610520575f5ffd5b5061021f61052f366004611d00565b611169565b34801561053f575f5ffd5b5061039160995481565b348015610554575f5ffd5b506101d8610563366004611f4c565b6111c8565b348015610573575f5ffd5b50610391610582366004611d00565b609b6020525f908152604090205481565b34801561059e575f5ffd5b506101d86105ad366004611f4c565b6112e4565b3480156105bd575f5ffd5b5061026f7f000000000000000000000000000000000000000000000000000000000000000081565b3480156105f0575f5ffd5b506101d86105ff366004611d00565b611388565b34801561060f575f5ffd5b50610391609e5481565b348015610624575f5ffd5b50610371610633366004611d00565b611401565b348015610643575f5ffd5b506101d8610652366004611d1b565b611420565b348015610662575f5ffd5b50610391610671366004611f76565b611536565b61067e6115b6565b609f80546001600160a01b0319166001600160a01b0383161790556040517f7025c71a9fe60d709e71b377dc5f7c72c3e1d8539f8022574254e736ceca01e5906106c9908390611d32565b60405180910390a150565b60405163237dfb4760e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906346fbf68e90610720903390600401611d32565b602060405180830381865afa15801561073b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061075f9190611fad565b61077c57604051631d77d47760e21b815260040160405180910390fd5b60665481811681146107a15760405163c61dca5d60e01b815260040160405180910390fd5b6107aa82611610565b5050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107f75760405163f739589b60e01b815260040160405180910390fd5b6107ff61164d565b6001600160a01b03831673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac01461083c57604051632711b74d60e11b815260040160405180910390fd5b6001600160a01b038416610863576040516339b190bb60e11b815260040160405180910390fd5b5f81136108835760405163ef147de160e01b815260040160405180910390fd5b6001600160a01b0384165f908152609b602052604081205490829082121561096a575f6108af83611fe0565b90505f818511156108cd5750806108c68186611ffa565b92506108d3565b505f9150835b5f6108de828661200d565b6001600160a01b038a165f818152609b60205260409081902083905551919250907f4e2b791dedccd9fb30141b088cabf5c14a8912b52f59375c95c010700b8c61939061092e9085815260200190565b60405180910390a2886001600160a01b03165f5160206121a45f395f51905f528260405161095e91815260200190565b60405180910390a25050505b80156109e2576001600160a01b038681165f81815260986020526040908190205490516362483a2160e11b81526004810192909252602482018490529091169063c4907442906044015b5f604051808303815f87803b1580156109cb575f5ffd5b505af11580156109dd573d5f5f3e3d5ffd5b505050505b50506109ee600160c955565b50505050565b5f80336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610a3f5760405163f739589b60e01b815260040160405180910390fd5b610a4761164d565b6001600160a01b03841673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac014610a8457604051632711b74d60e11b815260040160405180910390fd5b610a8e85846116a6565b91509150610a9c600160c955565b935093915050565b6060610acf7f00000000000000000000000000000000000000000000000000000000000000006117da565b905090565b60405163237dfb4760e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906346fbf68e90610b20903390600401611d32565b602060405180830381865afa158015610b3b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b5f9190611fad565b610b7c57604051631d77d47760e21b815260040160405180910390fd5b610b865f19611610565b565b609f546001600160a01b03163314610bb357604051630986113760e41b815260040160405180910390fd5b609f805467ffffffffffffffff60a01b1916600160a01b6001600160401b038416908102919091179091556040519081527f1bc8f042a52db3a437620dea4548f2031fb2a16dd8d3b0b854295528dd2cdd33906020016106c9565b610c166115b6565b610b865f611817565b5f336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610c695760405163f739589b60e01b815260040160405180910390fd5b610c7161164d565b6001600160a01b03831673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac014610cae57604051632711b74d60e11b815260040160405180910390fd5b6001600160a01b0384165f908152609b6020526040812054610cd1908490612034565b90505f811215610cf45760405163ef147de160e01b815260040160405180910390fd5b6001600160a01b0385165f818152609b602052604090819020839055515f5160206121a45f395f51905f5290610d2d9084815260200190565b60405180910390a29050610d41600160c955565b9392505050565b6066545f908190600190811603610d725760405163840a48d560e01b815260040160405180910390fd5b610d7a61164d565b610d8333611401565b15610da15760405163031a852160e21b815260040160405180910390fd5b5f610daa611868565b925050610db7600160c955565b5090565b6066545f90600190811603610de35760405163840a48d560e01b815260040160405180910390fd5b610deb61164d565b335f908152609860205260409020546001600160a01b031680610e1357610e10611868565b90505b6040516326d3918d60e21b81526001600160a01b03821690639b4e4634903490610e49908b908b908b908b908b90600401612082565b5f604051808303818588803b158015610e60575f5ffd5b505af1158015610e72573d5f5f3e3d5ffd5b505050505050610e82600160c955565b505050505050565b6001600160a01b038084165f908152609860205260409020548491163314610ec5576040516312e16d7160e11b815260040160405180910390fd5b610ecd61164d565b6001600160a01b038416610ef4576040516339b190bb60e11b815260040160405180910390fd5b610f02633b9aca00836120cf565b15610f20576040516347d072bb60e11b815260040160405180910390fd5b6001600160a01b0384165f908152609b602052604081205490811215610f5957604051634b692bcf60e01b815260040160405180910390fd5b5f83131561101a575f5f610f6d87866116a6565b604051631e328e7960e11b81526001600160a01b038a8116600483015273beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0602483015260448201849052606482018390529294509092507f000000000000000000000000000000000000000000000000000000000000000090911690633c651cf2906084015f604051808303815f87803b158015610ffd575f5ffd5b505af115801561100f573d5f5f3e3d5ffd5b50505050505061109f565b5f83121561109f575f611036868661103187611fe0565b6119b6565b60405163305068e760e11b81526001600160a01b038881166004830152602482018590526001600160401b03831660448301529192507f0000000000000000000000000000000000000000000000000000000000000000909116906360a0d1ce906064016109b4565b506109ee600160c955565b6001600160a01b038082165f908152609860205260408120549091168061116357611160836001600160a01b03165f1b60405180610940016040528061090e81526020016121c461090e91397f000000000000000000000000000000000000000000000000000000000000000060405160200161112791906120ee565b60408051601f19818403018152908290526111459291602001612110565b60405160208183030381529060405280519060200120611aad565b90505b92915050565b6001600160a01b0381165f908152609d6020908152604080832081518083019092525460ff811615158083526101009091046001600160401b031692820192909252906111be57670de0b6b3a7640000610d41565b6020015192915050565b5f54610100900460ff16158080156111e657505f54600160ff909116105b806111ff5750303b1580156111ff57505f5460ff166001145b6112675760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b5f805460ff191660011790558015611288575f805461ff0019166101001790555b61129183611817565b61129a82611610565b80156112df575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461132d5760405163f739589b60e01b815260040160405180910390fd5b61133561164d565b80609e5f828254611346919061213e565b90915550506040518181527f1ed04b7fd262c0d9e50fa02957f32a81a151f03baaa367faeedc7521b001c4a49060200160405180910390a16107aa600160c955565b6113906115b6565b6001600160a01b0381166113f55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161125e565b6113fe81611817565b50565b6001600160a01b039081165f9081526098602052604090205416151590565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561147c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114a09190612151565b6001600160a01b0316336001600160a01b0316146114d15760405163794821ff60e01b815260040160405180910390fd5b606654801982198116146114f85760405163c61dca5d60e01b815260040160405180910390fd5b606682905560405182815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200160405180910390a25050565b5f6001600160a01b03821673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac01461157457604051632711b74d60e11b815260040160405180910390fd5b6001600160a01b0383165f908152609b6020526040812054126115ae576001600160a01b0383165f908152609b6020526040902054611160565b505f92915050565b6033546001600160a01b03163314610b865760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161125e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a250565b600260c9540361169f5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161125e565b600260c955565b5f806001600160a01b0384166116cf576040516339b190bb60e11b815260040160405180910390fd5b5f8312156116f05760405163ef147de160e01b815260040160405180910390fd5b6001600160a01b0384165f908152609b60205260408120548491611714838361200d565b6001600160a01b0388165f818152609b60205260409081902083905551919250907f4e2b791dedccd9fb30141b088cabf5c14a8912b52f59375c95c010700b8c6193906117649086815260200190565b60405180910390a2866001600160a01b03165f5160206121a45f395f51905f528260405161179491815260200190565b60405180910390a25f81136117b1575f5f945094505050506117d3565b5f8212156117c6575f945092506117d3915050565b5092508391506117d39050565b9250929050565b60605f6117e683611ab9565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f60995f81546118779061216c565b9091555060408051610940810190915261090e8082525f9161190291839133916121c460208301397f00000000000000000000000000000000000000000000000000000000000000006040516020016118d091906120ee565b60408051601f19818403018152908290526118ee9291602001612110565b604051602081830303815290604052611ae0565b60405163189acdbd60e31b81529091506001600160a01b0382169063c4d66de890611931903390600401611d32565b5f604051808303815f87803b158015611948575f5ffd5b505af115801561195a573d5f5f3e3d5ffd5b5050335f8181526098602052604080822080546001600160a01b0319166001600160a01b038816908117909155905192945092507f21c99d0db02213c32fff5b05cf0a718ab5f858802b91498f80d82270289d856a91a3919050565b5f806119c28385611ffa565b90505f6119ce86611169565b90505f6119e56001600160401b0383168488611bde565b90505f6119f28284612184565b604080518082018252600181526001600160401b0385811660208084018281526001600160a01b038f165f818152609d845287902095518654925168ffffffffffffffffff1990931690151568ffffffffffffffff001916176101009286169290920291909117909455845193845291881691830191909152918101919091529091507fb160ab8589bf47dc04ea11b50d46678d21590cea2ed3e454e7bd3e41510f98cf9060600160405180910390a1979650505050505050565b5f611160838330611cc3565b5f60ff8216601f81111561116357604051632cd44ac360e21b815260040160405180910390fd5b5f83471015611b315760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e6365000000604482015260640161125e565b81515f03611b815760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f604482015260640161125e565b8282516020840186f590506001600160a01b038116610d415760405162461bcd60e51b8152602060048201526019602482015278437265617465323a204661696c6564206f6e206465706c6f7960381b604482015260640161125e565b5f80805f19858709858702925082811083820303915050805f03611c1557838281611c0b57611c0b6120bb565b0492505050610d41565b808411611c5c5760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b604482015260640161125e565b5f8486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091025f889003889004909101858311909403939093029303949094049190911702949350505050565b5f604051836040820152846020820152828152600b8101905060ff815360559020949350505050565b6001600160a01b03811681146113fe575f5ffd5b5f60208284031215611d10575f5ffd5b8135610d4181611cec565b5f60208284031215611d2b575f5ffd5b5035919050565b6001600160a01b0391909116815260200190565b5f5f5f5f60808587031215611d59575f5ffd5b8435611d6481611cec565b93506020850135611d7481611cec565b92506040850135611d8481611cec565b9396929550929360600135925050565b5f5f5f60608486031215611da6575f5ffd5b8335611db181611cec565b92506020840135611dc181611cec565b929592945050506040919091013590565b5f5b83811015611dec578181015183820152602001611dd4565b50505f910152565b602081525f8251806020840152611e12816040850160208701611dd2565b601f01601f19169190910160400192915050565b5f60208284031215611e36575f5ffd5b81356001600160401b0381168114610d41575f5ffd5b5f60208284031215611e5c575f5ffd5b813560ff81168114610d41575f5ffd5b5f5f83601f840112611e7c575f5ffd5b5081356001600160401b03811115611e92575f5ffd5b6020830191508360208285010111156117d3575f5ffd5b5f5f5f5f5f60608688031215611ebd575f5ffd5b85356001600160401b03811115611ed2575f5ffd5b611ede88828901611e6c565b90965094505060208601356001600160401b03811115611efc575f5ffd5b611f0888828901611e6c565b96999598509660400135949350505050565b5f5f5f60608486031215611f2c575f5ffd5b8335611f3781611cec565b95602085013595506040909401359392505050565b5f5f60408385031215611f5d575f5ffd5b8235611f6881611cec565b946020939093013593505050565b5f5f60408385031215611f87575f5ffd5b8235611f9281611cec565b91506020830135611fa281611cec565b809150509250929050565b5f60208284031215611fbd575f5ffd5b81518015158114610d41575f5ffd5b634e487b7160e01b5f52601160045260245ffd5b5f600160ff1b8201611ff457611ff4611fcc565b505f0390565b8181038181111561116357611163611fcc565b8082018281125f83128015821682158216171561202c5761202c611fcc565b505092915050565b8181035f83128015838313168383128216171561205357612053611fcc565b5092915050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b606081525f61209560608301878961205a565b82810360208401526120a881868861205a565b9150508260408301529695505050505050565b634e487b7160e01b5f52601260045260245ffd5b5f826120e957634e487b7160e01b5f52601260045260245ffd5b500790565b6001600160a01b039190911681526040602082018190525f9082015260600190565b5f8351612121818460208801611dd2565b835190830190612135818360208801611dd2565b01949350505050565b8082018082111561116357611163611fcc565b5f60208284031215612161575f5ffd5b8151610d4181611cec565b5f6001820161217d5761217d611fcc565b5060010190565b6001600160401b03828116828216039081111561116357611163611fcc56fed4def76d6d2bed6f14d5cd9af73cc2913d618d00edde42432e81c09bfe077098608060405260405161090e38038061090e83398101604081905261002291610460565b61002e82826000610035565b505061058a565b61003e83610100565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a260008251118061007f5750805b156100fb576100f9836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e99190610520565b836102a360201b6100291760201c565b505b505050565b610113816102cf60201b6100551760201c565b6101725760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101e6816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d79190610520565b6102cf60201b6100551760201c565b61024b5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610169565b806102827fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5060001b6102de60201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606102c883836040518060600160405280602781526020016108e7602791396102e1565b9392505050565b6001600160a01b03163b151590565b90565b6060600080856001600160a01b0316856040516102fe919061053b565b600060405180830381855af49150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b5090925090506103508683838761035a565b9695505050505050565b606083156103c65782516103bf576001600160a01b0385163b6103bf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610169565b50816103d0565b6103d083836103d8565b949350505050565b8151156103e85781518083602001fd5b8060405162461bcd60e51b81526004016101699190610557565b80516001600160a01b038116811461041957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561044f578181015183820152602001610437565b838111156100f95750506000910152565b6000806040838503121561047357600080fd5b61047c83610402565b60208401519092506001600160401b038082111561049957600080fd5b818501915085601f8301126104ad57600080fd5b8151818111156104bf576104bf61041e565b604051601f8201601f19908116603f011681019083821181831017156104e7576104e761041e565b8160405282815288602084870101111561050057600080fd5b610511836020830160208801610434565b80955050505050509250929050565b60006020828403121561053257600080fd5b6102c882610402565b6000825161054d818460208701610434565b9190910192915050565b6020815260008251806020840152610576816040850160208701610434565b601f01601f19169190910160400192915050565b61034e806105996000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b610100565b565b606061004e83836040518060600160405280602781526020016102f260279139610124565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100fb9190610249565b905090565b3660008037600080366000845af43d6000803e80801561011f573d6000f35b3d6000fd5b6060600080856001600160a01b03168560405161014191906102a2565b600060405180830381855af49150503d806000811461017c576040519150601f19603f3d011682016040523d82523d6000602084013e610181565b606091505b50915091506101928683838761019c565b9695505050505050565b6060831561020d578251610206576001600160a01b0385163b6102065760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b5081610217565b610217838361021f565b949350505050565b81511561022f5781518083602001fd5b8060405162461bcd60e51b81526004016101fd91906102be565b60006020828403121561025b57600080fd5b81516001600160a01b038116811461004e57600080fd5b60005b8381101561028d578181015183820152602001610275565b8381111561029c576000848401525b50505050565b600082516102b4818460208701610272565b9190910192915050565b60208152600082518060208401526102dd816040850160208701610272565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d51e81d3bc5ed20a26aeb05dce7e825c503b2061aa78628027300c8d65b9d89a64736f6c634300080c0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212204adde9af9966f43bd7bd6abe0928f73deb5bea1630991e97b24dab87b3d4ce6364736f6c634300081b0033
1031    /// ```
1032    #[rustfmt::skip]
1033    #[allow(clippy::all)]
1034    pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
1035        b"`\x80`@R`\x046\x10a\x01\xB5W_5`\xE0\x1C\x80c\x8D\xA5\xCB[\x11a\0\xEAW\x80c\xCDm\xC6\x87\x11a\0\x8EW\x80c\xCDm\xC6\x87\x14a\x05IW\x80c\xD4\x8E\x88\x94\x14a\x05hW\x80c\xDE\xBE\x1E\xAB\x14a\x05\x93W\x80c\xEAM<\x9B\x14a\x05\xB2W\x80c\xF2\xFD\xE3\x8B\x14a\x05\xE5W\x80c\xF5\xD4\xFE\xD3\x14a\x06\x04W\x80c\xF6\x84\x8D$\x14a\x06\x19W\x80c\xFA\xBC\x1C\xBC\x14a\x068W\x80c\xFE$:\x17\x14a\x06WW__\xFD[\x80c\x8D\xA5\xCB[\x14a\x04LW\x80c\x91\x04\xC3\x19\x14a\x04iW\x80c\x9BNF4\x14a\x04\x90W\x80c\x9B\xA0bu\x14a\x04\xA3W\x80c\xA1\xCAx\x0B\x14a\x04\xD7W\x80c\xA3\x84\x06\xA3\x14a\x04\xF6W\x80c\xA3\xD7^\t\x14a\x05\x15W\x80c\xA6\xA5\t\xBE\x14a\x054W__\xFD[\x80cY^\xDB\xCB\x11a\x01\\W\x80cY^\xDB\xCB\x14a\x03\x04W\x80cZ&\xFB\xF4\x14a\x03#W\x80cZ\xC8j\xB7\x14a\x03BW\x80c\\\x97Z\xBB\x14a\x03\x81W\x80cqP\x18\xA6\x14a\x03\x9FW\x80crJ\xF4#\x14a\x03\xB3W\x80ct\xCD\xD7\x98\x14a\x03\xD2W\x80c\x84\xD8\x10b\x14a\x04\x05W\x80c\x88o\x11\x95\x14a\x04\x19W__\xFD[\x80c\r\x1E\x9D\xE1\x14a\x01\xB9W\x80c\x13d9\xDD\x14a\x01\xDAW\x80c'\x045\x1A\x14a\x01\xF9W\x80c)+{+\x14a\x02<W\x80c.\xAEA\x8C\x14a\x02|W\x80cP\xFFr%\x14a\x02\x9BW\x80cT\xFDMP\x14a\x02\xCFW\x80cY\\jg\x14a\x02\xF0W[__\xFD[4\x80\x15a\x01\xC4W__\xFD[Pa\x01\xD8a\x01\xD36`\x04a\x1D\0V[a\x06vV[\0[4\x80\x15a\x01\xE5W__\xFD[Pa\x01\xD8a\x01\xF46`\x04a\x1D\x1BV[a\x06\xD4V[4\x80\x15a\x02\x04W__\xFD[P`\x9FTa\x02\x1F\x90`\x01`\xA0\x1B\x90\x04`\x01`\x01`@\x1B\x03\x16\x81V[`@Q`\x01`\x01`@\x1B\x03\x90\x91\x16\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x02GW__\xFD[Pa\x02o\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[`@Qa\x023\x91\x90a\x1D2V[4\x80\x15a\x02\x87W__\xFD[Pa\x01\xD8a\x02\x966`\x04a\x1DFV[a\x07\xAEV[4\x80\x15a\x02\xA6W__\xFD[Pa\x02\xBAa\x02\xB56`\x04a\x1D\x94V[a\t\xF4V[`@\x80Q\x92\x83R` \x83\x01\x91\x90\x91R\x01a\x023V[4\x80\x15a\x02\xDAW__\xFD[Pa\x02\xE3a\n\xA4V[`@Qa\x023\x91\x90a\x1D\xF4V[4\x80\x15a\x02\xFBW__\xFD[Pa\x01\xD8a\n\xD4V[4\x80\x15a\x03\x0FW__\xFD[P`\x9FTa\x02o\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[4\x80\x15a\x03.W__\xFD[Pa\x01\xD8a\x03=6`\x04a\x1E&V[a\x0B\x88V[4\x80\x15a\x03MW__\xFD[Pa\x03qa\x03\\6`\x04a\x1ELV[`fT`\x01`\xFF\x90\x92\x16\x91\x90\x91\x1B\x90\x81\x16\x14\x90V[`@Q\x90\x15\x15\x81R` \x01a\x023V[4\x80\x15a\x03\x8CW__\xFD[P`fT[`@Q\x90\x81R` \x01a\x023V[4\x80\x15a\x03\xAAW__\xFD[Pa\x01\xD8a\x0C\x0EV[4\x80\x15a\x03\xBEW__\xFD[Pa\x03\x91a\x03\xCD6`\x04a\x1D\x94V[a\x0C\x1FV[4\x80\x15a\x03\xDDW__\xFD[Pa\x02o\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[4\x80\x15a\x04\x10W__\xFD[Pa\x02oa\rHV[4\x80\x15a\x04$W__\xFD[Pa\x02o\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[4\x80\x15a\x04WW__\xFD[P`3T`\x01`\x01`\xA0\x1B\x03\x16a\x02oV[4\x80\x15a\x04tW__\xFD[Pa\x02os\xBE\xAC\x0E\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEB\xEA\xC0\x81V[a\x01\xD8a\x04\x9E6`\x04a\x1E\xA9V[a\r\xBBV[4\x80\x15a\x04\xAEW__\xFD[Pa\x02oa\x04\xBD6`\x04a\x1D\0V[`\x98` R_\x90\x81R`@\x90 T`\x01`\x01`\xA0\x1B\x03\x16\x81V[4\x80\x15a\x04\xE2W__\xFD[Pa\x01\xD8a\x04\xF16`\x04a\x1F\x1AV[a\x0E\x8AV[4\x80\x15a\x05\x01W__\xFD[Pa\x02oa\x05\x106`\x04a\x1D\0V[a\x10\xAAV[4\x80\x15a\x05 W__\xFD[Pa\x02\x1Fa\x05/6`\x04a\x1D\0V[a\x11iV[4\x80\x15a\x05?W__\xFD[Pa\x03\x91`\x99T\x81V[4\x80\x15a\x05TW__\xFD[Pa\x01\xD8a\x05c6`\x04a\x1FLV[a\x11\xC8V[4\x80\x15a\x05sW__\xFD[Pa\x03\x91a\x05\x826`\x04a\x1D\0V[`\x9B` R_\x90\x81R`@\x90 T\x81V[4\x80\x15a\x05\x9EW__\xFD[Pa\x01\xD8a\x05\xAD6`\x04a\x1FLV[a\x12\xE4V[4\x80\x15a\x05\xBDW__\xFD[Pa\x02o\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81V[4\x80\x15a\x05\xF0W__\xFD[Pa\x01\xD8a\x05\xFF6`\x04a\x1D\0V[a\x13\x88V[4\x80\x15a\x06\x0FW__\xFD[Pa\x03\x91`\x9ET\x81V[4\x80\x15a\x06$W__\xFD[Pa\x03qa\x0636`\x04a\x1D\0V[a\x14\x01V[4\x80\x15a\x06CW__\xFD[Pa\x01\xD8a\x06R6`\x04a\x1D\x1BV[a\x14 V[4\x80\x15a\x06bW__\xFD[Pa\x03\x91a\x06q6`\x04a\x1FvV[a\x156V[a\x06~a\x15\xB6V[`\x9F\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x83\x16\x17\x90U`@Q\x7Fp%\xC7\x1A\x9F\xE6\rp\x9Eq\xB3w\xDC_|r\xC3\xE1\xD8S\x9F\x80\"WBT\xE76\xCE\xCA\x01\xE5\x90a\x06\xC9\x90\x83\x90a\x1D2V[`@Q\x80\x91\x03\x90\xA1PV[`@Qc#}\xFBG`\xE1\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90cF\xFB\xF6\x8E\x90a\x07 \x903\x90`\x04\x01a\x1D2V[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x07;W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x07_\x91\x90a\x1F\xADV[a\x07|W`@Qc\x1Dw\xD4w`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`fT\x81\x81\x16\x81\x14a\x07\xA1W`@Qc\xC6\x1D\xCA]`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x07\xAA\x82a\x16\x10V[PPV[3`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14a\x07\xF7W`@Qc\xF79X\x9B`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x07\xFFa\x16MV[`\x01`\x01`\xA0\x1B\x03\x83\x16s\xBE\xAC\x0E\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEB\xEA\xC0\x14a\x08<W`@Qc'\x11\xB7M`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x84\x16a\x08cW`@Qc9\xB1\x90\xBB`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_\x81\x13a\x08\x83W`@Qc\xEF\x14}\xE1`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x84\x16_\x90\x81R`\x9B` R`@\x81 T\x90\x82\x90\x82\x12\x15a\tjW_a\x08\xAF\x83a\x1F\xE0V[\x90P_\x81\x85\x11\x15a\x08\xCDWP\x80a\x08\xC6\x81\x86a\x1F\xFAV[\x92Pa\x08\xD3V[P_\x91P\x83[_a\x08\xDE\x82\x86a \rV[`\x01`\x01`\xA0\x1B\x03\x8A\x16_\x81\x81R`\x9B` R`@\x90\x81\x90 \x83\x90UQ\x91\x92P\x90\x7FN+y\x1D\xED\xCC\xD9\xFB0\x14\x1B\x08\x8C\xAB\xF5\xC1J\x89\x12\xB5/Y7\\\x95\xC0\x10p\x0B\x8Ca\x93\x90a\t.\x90\x85\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA2\x88`\x01`\x01`\xA0\x1B\x03\x16_Q` a!\xA4_9_Q\x90_R\x82`@Qa\t^\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA2PPP[\x80\x15a\t\xE2W`\x01`\x01`\xA0\x1B\x03\x86\x81\x16_\x81\x81R`\x98` R`@\x90\x81\x90 T\x90QcbH:!`\xE1\x1B\x81R`\x04\x81\x01\x92\x90\x92R`$\x82\x01\x84\x90R\x90\x91\x16\x90c\xC4\x90tB\x90`D\x01[_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a\t\xCBW__\xFD[PZ\xF1\x15\x80\x15a\t\xDDW=__>=_\xFD[PPPP[PPa\t\xEE`\x01`\xC9UV[PPPPV[_\x803`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14a\n?W`@Qc\xF79X\x9B`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\nGa\x16MV[`\x01`\x01`\xA0\x1B\x03\x84\x16s\xBE\xAC\x0E\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEB\xEA\xC0\x14a\n\x84W`@Qc'\x11\xB7M`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\n\x8E\x85\x84a\x16\xA6V[\x91P\x91Pa\n\x9C`\x01`\xC9UV[\x93P\x93\x91PPV[``a\n\xCF\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a\x17\xDAV[\x90P\x90V[`@Qc#}\xFBG`\xE1\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x90cF\xFB\xF6\x8E\x90a\x0B \x903\x90`\x04\x01a\x1D2V[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0B;W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0B_\x91\x90a\x1F\xADV[a\x0B|W`@Qc\x1Dw\xD4w`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0B\x86_\x19a\x16\x10V[V[`\x9FT`\x01`\x01`\xA0\x1B\x03\x163\x14a\x0B\xB3W`@Qc\t\x86\x117`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x9F\x80Tg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF`\xA0\x1B\x19\x16`\x01`\xA0\x1B`\x01`\x01`@\x1B\x03\x84\x16\x90\x81\x02\x91\x90\x91\x17\x90\x91U`@Q\x90\x81R\x7F\x1B\xC8\xF0B\xA5-\xB3\xA47b\r\xEAEH\xF2\x03\x1F\xB2\xA1m\xD8\xD3\xB0\xB8T)U(\xDD,\xDD3\x90` \x01a\x06\xC9V[a\x0C\x16a\x15\xB6V[a\x0B\x86_a\x18\x17V[_3`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14a\x0CiW`@Qc\xF79X\x9B`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0Cqa\x16MV[`\x01`\x01`\xA0\x1B\x03\x83\x16s\xBE\xAC\x0E\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEB\xEA\xC0\x14a\x0C\xAEW`@Qc'\x11\xB7M`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x84\x16_\x90\x81R`\x9B` R`@\x81 Ta\x0C\xD1\x90\x84\x90a 4V[\x90P_\x81\x12\x15a\x0C\xF4W`@Qc\xEF\x14}\xE1`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x85\x16_\x81\x81R`\x9B` R`@\x90\x81\x90 \x83\x90UQ_Q` a!\xA4_9_Q\x90_R\x90a\r-\x90\x84\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA2\x90Pa\rA`\x01`\xC9UV[\x93\x92PPPV[`fT_\x90\x81\x90`\x01\x90\x81\x16\x03a\rrW`@Qc\x84\nH\xD5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\rza\x16MV[a\r\x833a\x14\x01V[\x15a\r\xA1W`@Qc\x03\x1A\x85!`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_a\r\xAAa\x18hV[\x92PPa\r\xB7`\x01`\xC9UV[P\x90V[`fT_\x90`\x01\x90\x81\x16\x03a\r\xE3W`@Qc\x84\nH\xD5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\r\xEBa\x16MV[3_\x90\x81R`\x98` R`@\x90 T`\x01`\x01`\xA0\x1B\x03\x16\x80a\x0E\x13Wa\x0E\x10a\x18hV[\x90P[`@Qc&\xD3\x91\x8D`\xE2\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x82\x16\x90c\x9BNF4\x904\x90a\x0EI\x90\x8B\x90\x8B\x90\x8B\x90\x8B\x90\x8B\x90`\x04\x01a \x82V[_`@Q\x80\x83\x03\x81\x85\x88\x80;\x15\x80\x15a\x0E`W__\xFD[PZ\xF1\x15\x80\x15a\x0ErW=__>=_\xFD[PPPPPPa\x0E\x82`\x01`\xC9UV[PPPPPPV[`\x01`\x01`\xA0\x1B\x03\x80\x84\x16_\x90\x81R`\x98` R`@\x90 T\x84\x91\x163\x14a\x0E\xC5W`@Qc\x12\xE1mq`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0E\xCDa\x16MV[`\x01`\x01`\xA0\x1B\x03\x84\x16a\x0E\xF4W`@Qc9\xB1\x90\xBB`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0F\x02c;\x9A\xCA\0\x83a \xCFV[\x15a\x0F W`@QcG\xD0r\xBB`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x84\x16_\x90\x81R`\x9B` R`@\x81 T\x90\x81\x12\x15a\x0FYW`@QcKi+\xCF`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_\x83\x13\x15a\x10\x1AW__a\x0Fm\x87\x86a\x16\xA6V[`@Qc\x1E2\x8Ey`\xE1\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x8A\x81\x16`\x04\x83\x01Rs\xBE\xAC\x0E\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEB\xEA\xC0`$\x83\x01R`D\x82\x01\x84\x90R`d\x82\x01\x83\x90R\x92\x94P\x90\x92P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x91\x16\x90c<e\x1C\xF2\x90`\x84\x01_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a\x0F\xFDW__\xFD[PZ\xF1\x15\x80\x15a\x10\x0FW=__>=_\xFD[PPPPPPa\x10\x9FV[_\x83\x12\x15a\x10\x9FW_a\x106\x86\x86a\x101\x87a\x1F\xE0V[a\x19\xB6V[`@Qc0Ph\xE7`\xE1\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x88\x81\x16`\x04\x83\x01R`$\x82\x01\x85\x90R`\x01`\x01`@\x1B\x03\x83\x16`D\x83\x01R\x91\x92P\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x90\x91\x16\x90c`\xA0\xD1\xCE\x90`d\x01a\t\xB4V[Pa\t\xEE`\x01`\xC9UV[`\x01`\x01`\xA0\x1B\x03\x80\x82\x16_\x90\x81R`\x98` R`@\x81 T\x90\x91\x16\x80a\x11cWa\x11`\x83`\x01`\x01`\xA0\x1B\x03\x16_\x1B`@Q\x80a\t@\x01`@R\x80a\t\x0E\x81R` \x01a!\xC4a\t\x0E\x919\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`@Q` \x01a\x11'\x91\x90a \xEEV[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x90\x82\x90Ra\x11E\x92\x91` \x01a!\x10V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 a\x1A\xADV[\x90P[\x92\x91PPV[`\x01`\x01`\xA0\x1B\x03\x81\x16_\x90\x81R`\x9D` \x90\x81R`@\x80\x83 \x81Q\x80\x83\x01\x90\x92RT`\xFF\x81\x16\x15\x15\x80\x83Ra\x01\0\x90\x91\x04`\x01`\x01`@\x1B\x03\x16\x92\x82\x01\x92\x90\x92R\x90a\x11\xBEWg\r\xE0\xB6\xB3\xA7d\0\0a\rAV[` \x01Q\x92\x91PPV[_Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x80\x15a\x11\xE6WP_T`\x01`\xFF\x90\x91\x16\x10[\x80a\x11\xFFWP0;\x15\x80\x15a\x11\xFFWP_T`\xFF\x16`\x01\x14[a\x12gW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`.`$\x82\x01R\x7FInitializable: contract is alrea`D\x82\x01Rm\x19\x1EH\x1A[\x9A]\x1AX[\x1A^\x99Y`\x92\x1B`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[_\x80T`\xFF\x19\x16`\x01\x17\x90U\x80\x15a\x12\x88W_\x80Ta\xFF\0\x19\x16a\x01\0\x17\x90U[a\x12\x91\x83a\x18\x17V[a\x12\x9A\x82a\x16\x10V[\x80\x15a\x12\xDFW_\x80Ta\xFF\0\x19\x16\x90U`@Q`\x01\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1[PPPV[3`\x01`\x01`\xA0\x1B\x03\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x16\x14a\x13-W`@Qc\xF79X\x9B`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x135a\x16MV[\x80`\x9E_\x82\x82Ta\x13F\x91\x90a!>V[\x90\x91UPP`@Q\x81\x81R\x7F\x1E\xD0K\x7F\xD2b\xC0\xD9\xE5\x0F\xA0)W\xF3*\x81\xA1Q\xF0;\xAA\xA3g\xFA\xEE\xDCu!\xB0\x01\xC4\xA4\x90` \x01`@Q\x80\x91\x03\x90\xA1a\x07\xAA`\x01`\xC9UV[a\x13\x90a\x15\xB6V[`\x01`\x01`\xA0\x1B\x03\x81\x16a\x13\xF5W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`&`$\x82\x01R\x7FOwnable: new owner is the zero a`D\x82\x01Reddress`\xD0\x1B`d\x82\x01R`\x84\x01a\x12^V[a\x13\xFE\x81a\x18\x17V[PV[`\x01`\x01`\xA0\x1B\x03\x90\x81\x16_\x90\x81R`\x98` R`@\x90 T\x16\x15\x15\x90V[\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16c\xEA\xB6mz`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x14|W=__>=_\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x14\xA0\x91\x90a!QV[`\x01`\x01`\xA0\x1B\x03\x163`\x01`\x01`\xA0\x1B\x03\x16\x14a\x14\xD1W`@QcyH!\xFF`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`fT\x80\x19\x82\x19\x81\x16\x14a\x14\xF8W`@Qc\xC6\x1D\xCA]`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`f\x82\x90U`@Q\x82\x81R3\x90\x7F5\x82\xD1\x82\x8E&\xBFV\xBD\x80\x15\x02\xBC\x02\x1A\xC0\xBC\x8A\xFBW\xC8&\xE4\x98kEY<\x8F\xAD8\x9C\x90` \x01`@Q\x80\x91\x03\x90\xA2PPV[_`\x01`\x01`\xA0\x1B\x03\x82\x16s\xBE\xAC\x0E\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEE\xEB\xEA\xC0\x14a\x15tW`@Qc'\x11\xB7M`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x83\x16_\x90\x81R`\x9B` R`@\x81 T\x12a\x15\xAEW`\x01`\x01`\xA0\x1B\x03\x83\x16_\x90\x81R`\x9B` R`@\x90 Ta\x11`V[P_\x92\x91PPV[`3T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x0B\x86W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01\x81\x90R`$\x82\x01R\x7FOwnable: caller is not the owner`D\x82\x01R`d\x01a\x12^V[`f\x81\x90U`@Q\x81\x81R3\x90\x7F\xAB@\xA3t\xBCQ\xDE7\"\0\xA8\xBC\x98\x1A\xF8\xC9\xEC\xDC\x08\xDF\xDA\xEF\x0B\xB6\xE0\x9F\x88\xF3\xC6\x16\xEF=\x90` \x01`@Q\x80\x91\x03\x90\xA2PV[`\x02`\xC9T\x03a\x16\x9FW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1F`$\x82\x01R\x7FReentrancyGuard: reentrant call\0`D\x82\x01R`d\x01a\x12^V[`\x02`\xC9UV[_\x80`\x01`\x01`\xA0\x1B\x03\x84\x16a\x16\xCFW`@Qc9\xB1\x90\xBB`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_\x83\x12\x15a\x16\xF0W`@Qc\xEF\x14}\xE1`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x84\x16_\x90\x81R`\x9B` R`@\x81 T\x84\x91a\x17\x14\x83\x83a \rV[`\x01`\x01`\xA0\x1B\x03\x88\x16_\x81\x81R`\x9B` R`@\x90\x81\x90 \x83\x90UQ\x91\x92P\x90\x7FN+y\x1D\xED\xCC\xD9\xFB0\x14\x1B\x08\x8C\xAB\xF5\xC1J\x89\x12\xB5/Y7\\\x95\xC0\x10p\x0B\x8Ca\x93\x90a\x17d\x90\x86\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA2\x86`\x01`\x01`\xA0\x1B\x03\x16_Q` a!\xA4_9_Q\x90_R\x82`@Qa\x17\x94\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA2_\x81\x13a\x17\xB1W__\x94P\x94PPPPa\x17\xD3V[_\x82\x12\x15a\x17\xC6W_\x94P\x92Pa\x17\xD3\x91PPV[P\x92P\x83\x91Pa\x17\xD3\x90PV[\x92P\x92\x90PV[``_a\x17\xE6\x83a\x1A\xB9V[`@\x80Q` \x80\x82R\x81\x83\x01\x90\x92R\x91\x92P_\x91\x90` \x82\x01\x81\x806\x837PPP\x91\x82RP` \x81\x01\x92\x90\x92RP\x90V[`3\x80T`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\x01`\x01`\xA0\x1B\x03\x19\x83\x16\x81\x17\x90\x93U`@Q\x91\x16\x91\x90\x82\x90\x7F\x8B\xE0\x07\x9CS\x16Y\x14\x13D\xCD\x1F\xD0\xA4\xF2\x84\x19I\x7F\x97\"\xA3\xDA\xAF\xE3\xB4\x18okdW\xE0\x90_\x90\xA3PPV[_`\x99_\x81Ta\x18w\x90a!lV[\x90\x91UP`@\x80Qa\t@\x81\x01\x90\x91Ra\t\x0E\x80\x82R_\x91a\x19\x02\x91\x83\x913\x91a!\xC4` \x83\x019\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`@Q` \x01a\x18\xD0\x91\x90a \xEEV[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x90\x82\x90Ra\x18\xEE\x92\x91` \x01a!\x10V[`@Q` \x81\x83\x03\x03\x81R\x90`@Ra\x1A\xE0V[`@Qc\x18\x9A\xCD\xBD`\xE3\x1B\x81R\x90\x91P`\x01`\x01`\xA0\x1B\x03\x82\x16\x90c\xC4\xD6m\xE8\x90a\x191\x903\x90`\x04\x01a\x1D2V[_`@Q\x80\x83\x03\x81_\x87\x80;\x15\x80\x15a\x19HW__\xFD[PZ\xF1\x15\x80\x15a\x19ZW=__>=_\xFD[PP3_\x81\x81R`\x98` R`@\x80\x82 \x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x88\x16\x90\x81\x17\x90\x91U\x90Q\x92\x94P\x92P\x7F!\xC9\x9D\r\xB0\"\x13\xC3/\xFF[\x05\xCF\nq\x8A\xB5\xF8X\x80+\x91I\x8F\x80\xD8\"p(\x9D\x85j\x91\xA3\x91\x90PV[_\x80a\x19\xC2\x83\x85a\x1F\xFAV[\x90P_a\x19\xCE\x86a\x11iV[\x90P_a\x19\xE5`\x01`\x01`@\x1B\x03\x83\x16\x84\x88a\x1B\xDEV[\x90P_a\x19\xF2\x82\x84a!\x84V[`@\x80Q\x80\x82\x01\x82R`\x01\x81R`\x01`\x01`@\x1B\x03\x85\x81\x16` \x80\x84\x01\x82\x81R`\x01`\x01`\xA0\x1B\x03\x8F\x16_\x81\x81R`\x9D\x84R\x87\x90 \x95Q\x86T\x92Qh\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x90\x93\x16\x90\x15\x15h\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\x19\x16\x17a\x01\0\x92\x86\x16\x92\x90\x92\x02\x91\x90\x91\x17\x90\x94U\x84Q\x93\x84R\x91\x88\x16\x91\x83\x01\x91\x90\x91R\x91\x81\x01\x91\x90\x91R\x90\x91P\x7F\xB1`\xAB\x85\x89\xBFG\xDC\x04\xEA\x11\xB5\rFg\x8D!Y\x0C\xEA.\xD3\xE4T\xE7\xBD>AQ\x0F\x98\xCF\x90``\x01`@Q\x80\x91\x03\x90\xA1\x97\x96PPPPPPPV[_a\x11`\x83\x830a\x1C\xC3V[_`\xFF\x82\x16`\x1F\x81\x11\x15a\x11cW`@Qc,\xD4J\xC3`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_\x83G\x10\x15a\x1B1W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1D`$\x82\x01R\x7FCreate2: insufficient balance\0\0\0`D\x82\x01R`d\x01a\x12^V[\x81Q_\x03a\x1B\x81W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01\x81\x90R`$\x82\x01R\x7FCreate2: bytecode length is zero`D\x82\x01R`d\x01a\x12^V[\x82\x82Q` \x84\x01\x86\xF5\x90P`\x01`\x01`\xA0\x1B\x03\x81\x16a\rAW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x19`$\x82\x01RxCreate2: Failed on deploy`8\x1B`D\x82\x01R`d\x01a\x12^V[_\x80\x80_\x19\x85\x87\t\x85\x87\x02\x92P\x82\x81\x10\x83\x82\x03\x03\x91PP\x80_\x03a\x1C\x15W\x83\x82\x81a\x1C\x0BWa\x1C\x0Ba \xBBV[\x04\x92PPPa\rAV[\x80\x84\x11a\x1C\\W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x15`$\x82\x01RtMath: mulDiv overflow`X\x1B`D\x82\x01R`d\x01a\x12^V[_\x84\x86\x88\t`\x02`\x01\x87\x19\x81\x01\x88\x16\x97\x88\x90\x04`\x03\x81\x02\x83\x18\x80\x82\x02\x84\x03\x02\x80\x82\x02\x84\x03\x02\x80\x82\x02\x84\x03\x02\x80\x82\x02\x84\x03\x02\x80\x82\x02\x84\x03\x02\x90\x81\x02\x90\x92\x03\x90\x91\x02_\x88\x90\x03\x88\x90\x04\x90\x91\x01\x85\x83\x11\x90\x94\x03\x93\x90\x93\x02\x93\x03\x94\x90\x94\x04\x91\x90\x91\x17\x02\x94\x93PPPPV[_`@Q\x83`@\x82\x01R\x84` \x82\x01R\x82\x81R`\x0B\x81\x01\x90P`\xFF\x81S`U\x90 \x94\x93PPPPV[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x13\xFEW__\xFD[_` \x82\x84\x03\x12\x15a\x1D\x10W__\xFD[\x815a\rA\x81a\x1C\xECV[_` \x82\x84\x03\x12\x15a\x1D+W__\xFD[P5\x91\x90PV[`\x01`\x01`\xA0\x1B\x03\x91\x90\x91\x16\x81R` \x01\x90V[____`\x80\x85\x87\x03\x12\x15a\x1DYW__\xFD[\x845a\x1Dd\x81a\x1C\xECV[\x93P` \x85\x015a\x1Dt\x81a\x1C\xECV[\x92P`@\x85\x015a\x1D\x84\x81a\x1C\xECV[\x93\x96\x92\x95P\x92\x93``\x015\x92PPV[___``\x84\x86\x03\x12\x15a\x1D\xA6W__\xFD[\x835a\x1D\xB1\x81a\x1C\xECV[\x92P` \x84\x015a\x1D\xC1\x81a\x1C\xECV[\x92\x95\x92\x94PPP`@\x91\x90\x91\x015\x90V[_[\x83\x81\x10\x15a\x1D\xECW\x81\x81\x01Q\x83\x82\x01R` \x01a\x1D\xD4V[PP_\x91\x01RV[` \x81R_\x82Q\x80` \x84\x01Ra\x1E\x12\x81`@\x85\x01` \x87\x01a\x1D\xD2V[`\x1F\x01`\x1F\x19\x16\x91\x90\x91\x01`@\x01\x92\x91PPV[_` \x82\x84\x03\x12\x15a\x1E6W__\xFD[\x815`\x01`\x01`@\x1B\x03\x81\x16\x81\x14a\rAW__\xFD[_` \x82\x84\x03\x12\x15a\x1E\\W__\xFD[\x815`\xFF\x81\x16\x81\x14a\rAW__\xFD[__\x83`\x1F\x84\x01\x12a\x1E|W__\xFD[P\x815`\x01`\x01`@\x1B\x03\x81\x11\x15a\x1E\x92W__\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15a\x17\xD3W__\xFD[_____``\x86\x88\x03\x12\x15a\x1E\xBDW__\xFD[\x855`\x01`\x01`@\x1B\x03\x81\x11\x15a\x1E\xD2W__\xFD[a\x1E\xDE\x88\x82\x89\x01a\x1ElV[\x90\x96P\x94PP` \x86\x015`\x01`\x01`@\x1B\x03\x81\x11\x15a\x1E\xFCW__\xFD[a\x1F\x08\x88\x82\x89\x01a\x1ElV[\x96\x99\x95\x98P\x96`@\x015\x94\x93PPPPV[___``\x84\x86\x03\x12\x15a\x1F,W__\xFD[\x835a\x1F7\x81a\x1C\xECV[\x95` \x85\x015\x95P`@\x90\x94\x015\x93\x92PPPV[__`@\x83\x85\x03\x12\x15a\x1F]W__\xFD[\x825a\x1Fh\x81a\x1C\xECV[\x94` \x93\x90\x93\x015\x93PPPV[__`@\x83\x85\x03\x12\x15a\x1F\x87W__\xFD[\x825a\x1F\x92\x81a\x1C\xECV[\x91P` \x83\x015a\x1F\xA2\x81a\x1C\xECV[\x80\x91PP\x92P\x92\x90PV[_` \x82\x84\x03\x12\x15a\x1F\xBDW__\xFD[\x81Q\x80\x15\x15\x81\x14a\rAW__\xFD[cNH{q`\xE0\x1B_R`\x11`\x04R`$_\xFD[_`\x01`\xFF\x1B\x82\x01a\x1F\xF4Wa\x1F\xF4a\x1F\xCCV[P_\x03\x90V[\x81\x81\x03\x81\x81\x11\x15a\x11cWa\x11ca\x1F\xCCV[\x80\x82\x01\x82\x81\x12_\x83\x12\x80\x15\x82\x16\x82\x15\x82\x16\x17\x15a ,Wa ,a\x1F\xCCV[PP\x92\x91PPV[\x81\x81\x03_\x83\x12\x80\x15\x83\x83\x13\x16\x83\x83\x12\x82\x16\x17\x15a SWa Sa\x1F\xCCV[P\x92\x91PPV[\x81\x83R\x81\x81` \x85\x017P_\x82\x82\x01` \x90\x81\x01\x91\x90\x91R`\x1F\x90\x91\x01`\x1F\x19\x16\x90\x91\x01\x01\x90V[``\x81R_a \x95``\x83\x01\x87\x89a ZV[\x82\x81\x03` \x84\x01Ra \xA8\x81\x86\x88a ZV[\x91PP\x82`@\x83\x01R\x96\x95PPPPPPV[cNH{q`\xE0\x1B_R`\x12`\x04R`$_\xFD[_\x82a \xE9WcNH{q`\xE0\x1B_R`\x12`\x04R`$_\xFD[P\x07\x90V[`\x01`\x01`\xA0\x1B\x03\x91\x90\x91\x16\x81R`@` \x82\x01\x81\x90R_\x90\x82\x01R``\x01\x90V[_\x83Qa!!\x81\x84` \x88\x01a\x1D\xD2V[\x83Q\x90\x83\x01\x90a!5\x81\x83` \x88\x01a\x1D\xD2V[\x01\x94\x93PPPPV[\x80\x82\x01\x80\x82\x11\x15a\x11cWa\x11ca\x1F\xCCV[_` \x82\x84\x03\x12\x15a!aW__\xFD[\x81Qa\rA\x81a\x1C\xECV[_`\x01\x82\x01a!}Wa!}a\x1F\xCCV[P`\x01\x01\x90V[`\x01`\x01`@\x1B\x03\x82\x81\x16\x82\x82\x16\x03\x90\x81\x11\x15a\x11cWa\x11ca\x1F\xCCV\xFE\xD4\xDE\xF7mm+\xEDo\x14\xD5\xCD\x9A\xF7<\xC2\x91=a\x8D\0\xED\xDEBC.\x81\xC0\x9B\xFE\x07p\x98`\x80`@R`@Qa\t\x0E8\x03\x80a\t\x0E\x839\x81\x01`@\x81\x90Ra\0\"\x91a\x04`V[a\0.\x82\x82`\0a\x005V[PPa\x05\x8AV[a\0>\x83a\x01\0V[`@Q`\x01`\x01`\xA0\x1B\x03\x84\x16\x90\x7F\x1C\xF3\xB0:l\xF1\x9F\xA2\xBA\xBAM\xF1H\xE9\xDC\xAB\xED\xEA\x7F\x8A\\\x07\x84\x0E ~\\\x08\x9B\xE9]>\x90`\0\x90\xA2`\0\x82Q\x11\x80a\0\x7FWP\x80[\x15a\0\xFBWa\0\xF9\x83`\x01`\x01`\xA0\x1B\x03\x16c\\`\xDA\x1B`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\0\xC5W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\0\xE9\x91\x90a\x05 V[\x83a\x02\xA3` \x1Ba\0)\x17` \x1CV[P[PPPV[a\x01\x13\x81a\x02\xCF` \x1Ba\0U\x17` \x1CV[a\x01rW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`%`$\x82\x01R\x7FERC1967: new beacon is not a con`D\x82\x01Rd\x1D\x1C\x98X\xDD`\xDA\x1B`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[a\x01\xE6\x81`\x01`\x01`\xA0\x1B\x03\x16c\\`\xDA\x1B`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x01\xB3W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x01\xD7\x91\x90a\x05 V[a\x02\xCF` \x1Ba\0U\x17` \x1CV[a\x02KW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`0`$\x82\x01R\x7FERC1967: beacon implementation i`D\x82\x01Ro\x1C\xC8\x1B\x9B\xDD\x08\x18H\x18\xDB\xDB\x9D\x1C\x98X\xDD`\x82\x1B`d\x82\x01R`\x84\x01a\x01iV[\x80a\x02\x82\x7F\xA3\xF0\xADt\xE5B:\xEB\xFD\x80\xD3\xEFCFW\x835\xA9\xA7*\xEA\xEEY\xFFl\xB3X+5\x13=P`\0\x1Ba\x02\xDE` \x1Ba\0d\x17` \x1CV[\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16\x91\x90\x91\x17\x90UPV[``a\x02\xC8\x83\x83`@Q\x80``\x01`@R\x80`'\x81R` \x01a\x08\xE7`'\x919a\x02\xE1V[\x93\x92PPPV[`\x01`\x01`\xA0\x1B\x03\x16;\x15\x15\x90V[\x90V[```\0\x80\x85`\x01`\x01`\xA0\x1B\x03\x16\x85`@Qa\x02\xFE\x91\x90a\x05;V[`\0`@Q\x80\x83\x03\x81\x85Z\xF4\x91PP=\x80`\0\x81\x14a\x039W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x03>V[``\x91P[P\x90\x92P\x90Pa\x03P\x86\x83\x83\x87a\x03ZV[\x96\x95PPPPPPV[``\x83\x15a\x03\xC6W\x82Qa\x03\xBFW`\x01`\x01`\xA0\x1B\x03\x85\x16;a\x03\xBFW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1D`$\x82\x01R\x7FAddress: call to non-contract\0\0\0`D\x82\x01R`d\x01a\x01iV[P\x81a\x03\xD0V[a\x03\xD0\x83\x83a\x03\xD8V[\x94\x93PPPPV[\x81Q\x15a\x03\xE8W\x81Q\x80\x83` \x01\xFD[\x80`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x01i\x91\x90a\x05WV[\x80Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x04\x19W`\0\x80\xFD[\x91\x90PV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\0[\x83\x81\x10\x15a\x04OW\x81\x81\x01Q\x83\x82\x01R` \x01a\x047V[\x83\x81\x11\x15a\0\xF9WPP`\0\x91\x01RV[`\0\x80`@\x83\x85\x03\x12\x15a\x04sW`\0\x80\xFD[a\x04|\x83a\x04\x02V[` \x84\x01Q\x90\x92P`\x01`\x01`@\x1B\x03\x80\x82\x11\x15a\x04\x99W`\0\x80\xFD[\x81\x85\x01\x91P\x85`\x1F\x83\x01\x12a\x04\xADW`\0\x80\xFD[\x81Q\x81\x81\x11\x15a\x04\xBFWa\x04\xBFa\x04\x1EV[`@Q`\x1F\x82\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01\x90\x83\x82\x11\x81\x83\x10\x17\x15a\x04\xE7Wa\x04\xE7a\x04\x1EV[\x81`@R\x82\x81R\x88` \x84\x87\x01\x01\x11\x15a\x05\0W`\0\x80\xFD[a\x05\x11\x83` \x83\x01` \x88\x01a\x044V[\x80\x95PPPPPP\x92P\x92\x90PV[`\0` \x82\x84\x03\x12\x15a\x052W`\0\x80\xFD[a\x02\xC8\x82a\x04\x02V[`\0\x82Qa\x05M\x81\x84` \x87\x01a\x044V[\x91\x90\x91\x01\x92\x91PPV[` \x81R`\0\x82Q\x80` \x84\x01Ra\x05v\x81`@\x85\x01` \x87\x01a\x044V[`\x1F\x01`\x1F\x19\x16\x91\x90\x91\x01`@\x01\x92\x91PPV[a\x03N\x80a\x05\x99`\09`\0\xF3\xFE`\x80`@R6a\0\x13Wa\0\x11a\0\x17V[\0[a\0\x11[a\0'a\0\"a\0gV[a\x01\0V[V[``a\0N\x83\x83`@Q\x80``\x01`@R\x80`'\x81R` \x01a\x02\xF2`'\x919a\x01$V[\x93\x92PPPV[`\x01`\x01`\xA0\x1B\x03\x16;\x15\x15\x90V[\x90V[`\0a\0\x9A\x7F\xA3\xF0\xADt\xE5B:\xEB\xFD\x80\xD3\xEFCFW\x835\xA9\xA7*\xEA\xEEY\xFFl\xB3X+5\x13=PT`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16c\\`\xDA\x1B`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\0\xD7W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\0\xFB\x91\x90a\x02IV[\x90P\x90V[6`\0\x807`\0\x806`\0\x84Z\xF4=`\0\x80>\x80\x80\x15a\x01\x1FW=`\0\xF3[=`\0\xFD[```\0\x80\x85`\x01`\x01`\xA0\x1B\x03\x16\x85`@Qa\x01A\x91\x90a\x02\xA2V[`\0`@Q\x80\x83\x03\x81\x85Z\xF4\x91PP=\x80`\0\x81\x14a\x01|W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x01\x81V[``\x91P[P\x91P\x91Pa\x01\x92\x86\x83\x83\x87a\x01\x9CV[\x96\x95PPPPPPV[``\x83\x15a\x02\rW\x82Qa\x02\x06W`\x01`\x01`\xA0\x1B\x03\x85\x16;a\x02\x06W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1D`$\x82\x01R\x7FAddress: call to non-contract\0\0\0`D\x82\x01R`d\x01[`@Q\x80\x91\x03\x90\xFD[P\x81a\x02\x17V[a\x02\x17\x83\x83a\x02\x1FV[\x94\x93PPPPV[\x81Q\x15a\x02/W\x81Q\x80\x83` \x01\xFD[\x80`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x01\xFD\x91\x90a\x02\xBEV[`\0` \x82\x84\x03\x12\x15a\x02[W`\0\x80\xFD[\x81Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\0NW`\0\x80\xFD[`\0[\x83\x81\x10\x15a\x02\x8DW\x81\x81\x01Q\x83\x82\x01R` \x01a\x02uV[\x83\x81\x11\x15a\x02\x9CW`\0\x84\x84\x01R[PPPPV[`\0\x82Qa\x02\xB4\x81\x84` \x87\x01a\x02rV[\x91\x90\x91\x01\x92\x91PPV[` \x81R`\0\x82Q\x80` \x84\x01Ra\x02\xDD\x81`@\x85\x01` \x87\x01a\x02rV[`\x1F\x01`\x1F\x19\x16\x91\x90\x91\x01`@\x01\x92\x91PPV\xFEAddress: low-level delegate call failed\xA2dipfsX\"\x12 \xD5\x1E\x81\xD3\xBC^\xD2\n&\xAE\xB0]\xCE~\x82\\P; a\xAAxb\x80'0\x0C\x8De\xB9\xD8\x9AdsolcC\0\x08\x0C\x003Address: low-level delegate call failed\xA2dipfsX\"\x12 J\xDD\xE9\xAF\x99f\xF4;\xD7\xBDj\xBE\t(\xF7=\xEB[\xEA\x160\x99\x1E\x97\xB2M\xAB\x87\xB3\xD4\xCEcdsolcC\0\x08\x1B\x003",
1036    );
1037    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1038    /**Custom error with signature `CurrentlyPaused()` and selector `0x840a48d5`.
1039```solidity
1040error CurrentlyPaused();
1041```*/
1042    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1043    #[derive(Clone)]
1044    pub struct CurrentlyPaused {}
1045    #[allow(
1046        non_camel_case_types,
1047        non_snake_case,
1048        clippy::pub_underscore_fields,
1049        clippy::style
1050    )]
1051    const _: () = {
1052        use alloy::sol_types as alloy_sol_types;
1053        #[doc(hidden)]
1054        type UnderlyingSolTuple<'a> = ();
1055        #[doc(hidden)]
1056        type UnderlyingRustTuple<'a> = ();
1057        #[cfg(test)]
1058        #[allow(dead_code, unreachable_patterns)]
1059        fn _type_assertion(
1060            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1061        ) {
1062            match _t {
1063                alloy_sol_types::private::AssertTypeEq::<
1064                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1065                >(_) => {}
1066            }
1067        }
1068        #[automatically_derived]
1069        #[doc(hidden)]
1070        impl ::core::convert::From<CurrentlyPaused> for UnderlyingRustTuple<'_> {
1071            fn from(value: CurrentlyPaused) -> Self {
1072                ()
1073            }
1074        }
1075        #[automatically_derived]
1076        #[doc(hidden)]
1077        impl ::core::convert::From<UnderlyingRustTuple<'_>> for CurrentlyPaused {
1078            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1079                Self {}
1080            }
1081        }
1082        #[automatically_derived]
1083        impl alloy_sol_types::SolError for CurrentlyPaused {
1084            type Parameters<'a> = UnderlyingSolTuple<'a>;
1085            type Token<'a> = <Self::Parameters<
1086                'a,
1087            > as alloy_sol_types::SolType>::Token<'a>;
1088            const SIGNATURE: &'static str = "CurrentlyPaused()";
1089            const SELECTOR: [u8; 4] = [132u8, 10u8, 72u8, 213u8];
1090            #[inline]
1091            fn new<'a>(
1092                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1093            ) -> Self {
1094                tuple.into()
1095            }
1096            #[inline]
1097            fn tokenize(&self) -> Self::Token<'_> {
1098                ()
1099            }
1100        }
1101    };
1102    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1103    /**Custom error with signature `EigenPodAlreadyExists()` and selector `0x0c6a1484`.
1104```solidity
1105error EigenPodAlreadyExists();
1106```*/
1107    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1108    #[derive(Clone)]
1109    pub struct EigenPodAlreadyExists {}
1110    #[allow(
1111        non_camel_case_types,
1112        non_snake_case,
1113        clippy::pub_underscore_fields,
1114        clippy::style
1115    )]
1116    const _: () = {
1117        use alloy::sol_types as alloy_sol_types;
1118        #[doc(hidden)]
1119        type UnderlyingSolTuple<'a> = ();
1120        #[doc(hidden)]
1121        type UnderlyingRustTuple<'a> = ();
1122        #[cfg(test)]
1123        #[allow(dead_code, unreachable_patterns)]
1124        fn _type_assertion(
1125            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1126        ) {
1127            match _t {
1128                alloy_sol_types::private::AssertTypeEq::<
1129                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1130                >(_) => {}
1131            }
1132        }
1133        #[automatically_derived]
1134        #[doc(hidden)]
1135        impl ::core::convert::From<EigenPodAlreadyExists> for UnderlyingRustTuple<'_> {
1136            fn from(value: EigenPodAlreadyExists) -> Self {
1137                ()
1138            }
1139        }
1140        #[automatically_derived]
1141        #[doc(hidden)]
1142        impl ::core::convert::From<UnderlyingRustTuple<'_>> for EigenPodAlreadyExists {
1143            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1144                Self {}
1145            }
1146        }
1147        #[automatically_derived]
1148        impl alloy_sol_types::SolError for EigenPodAlreadyExists {
1149            type Parameters<'a> = UnderlyingSolTuple<'a>;
1150            type Token<'a> = <Self::Parameters<
1151                'a,
1152            > as alloy_sol_types::SolType>::Token<'a>;
1153            const SIGNATURE: &'static str = "EigenPodAlreadyExists()";
1154            const SELECTOR: [u8; 4] = [12u8, 106u8, 20u8, 132u8];
1155            #[inline]
1156            fn new<'a>(
1157                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1158            ) -> Self {
1159                tuple.into()
1160            }
1161            #[inline]
1162            fn tokenize(&self) -> Self::Token<'_> {
1163                ()
1164            }
1165        }
1166    };
1167    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1168    /**Custom error with signature `InputAddressZero()` and selector `0x73632176`.
1169```solidity
1170error InputAddressZero();
1171```*/
1172    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1173    #[derive(Clone)]
1174    pub struct InputAddressZero {}
1175    #[allow(
1176        non_camel_case_types,
1177        non_snake_case,
1178        clippy::pub_underscore_fields,
1179        clippy::style
1180    )]
1181    const _: () = {
1182        use alloy::sol_types as alloy_sol_types;
1183        #[doc(hidden)]
1184        type UnderlyingSolTuple<'a> = ();
1185        #[doc(hidden)]
1186        type UnderlyingRustTuple<'a> = ();
1187        #[cfg(test)]
1188        #[allow(dead_code, unreachable_patterns)]
1189        fn _type_assertion(
1190            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1191        ) {
1192            match _t {
1193                alloy_sol_types::private::AssertTypeEq::<
1194                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1195                >(_) => {}
1196            }
1197        }
1198        #[automatically_derived]
1199        #[doc(hidden)]
1200        impl ::core::convert::From<InputAddressZero> for UnderlyingRustTuple<'_> {
1201            fn from(value: InputAddressZero) -> Self {
1202                ()
1203            }
1204        }
1205        #[automatically_derived]
1206        #[doc(hidden)]
1207        impl ::core::convert::From<UnderlyingRustTuple<'_>> for InputAddressZero {
1208            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1209                Self {}
1210            }
1211        }
1212        #[automatically_derived]
1213        impl alloy_sol_types::SolError for InputAddressZero {
1214            type Parameters<'a> = UnderlyingSolTuple<'a>;
1215            type Token<'a> = <Self::Parameters<
1216                'a,
1217            > as alloy_sol_types::SolType>::Token<'a>;
1218            const SIGNATURE: &'static str = "InputAddressZero()";
1219            const SELECTOR: [u8; 4] = [115u8, 99u8, 33u8, 118u8];
1220            #[inline]
1221            fn new<'a>(
1222                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1223            ) -> Self {
1224                tuple.into()
1225            }
1226            #[inline]
1227            fn tokenize(&self) -> Self::Token<'_> {
1228                ()
1229            }
1230        }
1231    };
1232    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1233    /**Custom error with signature `InvalidNewPausedStatus()` and selector `0xc61dca5d`.
1234```solidity
1235error InvalidNewPausedStatus();
1236```*/
1237    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1238    #[derive(Clone)]
1239    pub struct InvalidNewPausedStatus {}
1240    #[allow(
1241        non_camel_case_types,
1242        non_snake_case,
1243        clippy::pub_underscore_fields,
1244        clippy::style
1245    )]
1246    const _: () = {
1247        use alloy::sol_types as alloy_sol_types;
1248        #[doc(hidden)]
1249        type UnderlyingSolTuple<'a> = ();
1250        #[doc(hidden)]
1251        type UnderlyingRustTuple<'a> = ();
1252        #[cfg(test)]
1253        #[allow(dead_code, unreachable_patterns)]
1254        fn _type_assertion(
1255            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1256        ) {
1257            match _t {
1258                alloy_sol_types::private::AssertTypeEq::<
1259                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1260                >(_) => {}
1261            }
1262        }
1263        #[automatically_derived]
1264        #[doc(hidden)]
1265        impl ::core::convert::From<InvalidNewPausedStatus> for UnderlyingRustTuple<'_> {
1266            fn from(value: InvalidNewPausedStatus) -> Self {
1267                ()
1268            }
1269        }
1270        #[automatically_derived]
1271        #[doc(hidden)]
1272        impl ::core::convert::From<UnderlyingRustTuple<'_>> for InvalidNewPausedStatus {
1273            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1274                Self {}
1275            }
1276        }
1277        #[automatically_derived]
1278        impl alloy_sol_types::SolError for InvalidNewPausedStatus {
1279            type Parameters<'a> = UnderlyingSolTuple<'a>;
1280            type Token<'a> = <Self::Parameters<
1281                'a,
1282            > as alloy_sol_types::SolType>::Token<'a>;
1283            const SIGNATURE: &'static str = "InvalidNewPausedStatus()";
1284            const SELECTOR: [u8; 4] = [198u8, 29u8, 202u8, 93u8];
1285            #[inline]
1286            fn new<'a>(
1287                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1288            ) -> Self {
1289                tuple.into()
1290            }
1291            #[inline]
1292            fn tokenize(&self) -> Self::Token<'_> {
1293                ()
1294            }
1295        }
1296    };
1297    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1298    /**Custom error with signature `InvalidShortString()` and selector `0xb3512b0c`.
1299```solidity
1300error InvalidShortString();
1301```*/
1302    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1303    #[derive(Clone)]
1304    pub struct InvalidShortString {}
1305    #[allow(
1306        non_camel_case_types,
1307        non_snake_case,
1308        clippy::pub_underscore_fields,
1309        clippy::style
1310    )]
1311    const _: () = {
1312        use alloy::sol_types as alloy_sol_types;
1313        #[doc(hidden)]
1314        type UnderlyingSolTuple<'a> = ();
1315        #[doc(hidden)]
1316        type UnderlyingRustTuple<'a> = ();
1317        #[cfg(test)]
1318        #[allow(dead_code, unreachable_patterns)]
1319        fn _type_assertion(
1320            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1321        ) {
1322            match _t {
1323                alloy_sol_types::private::AssertTypeEq::<
1324                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1325                >(_) => {}
1326            }
1327        }
1328        #[automatically_derived]
1329        #[doc(hidden)]
1330        impl ::core::convert::From<InvalidShortString> for UnderlyingRustTuple<'_> {
1331            fn from(value: InvalidShortString) -> Self {
1332                ()
1333            }
1334        }
1335        #[automatically_derived]
1336        #[doc(hidden)]
1337        impl ::core::convert::From<UnderlyingRustTuple<'_>> for InvalidShortString {
1338            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1339                Self {}
1340            }
1341        }
1342        #[automatically_derived]
1343        impl alloy_sol_types::SolError for InvalidShortString {
1344            type Parameters<'a> = UnderlyingSolTuple<'a>;
1345            type Token<'a> = <Self::Parameters<
1346                'a,
1347            > as alloy_sol_types::SolType>::Token<'a>;
1348            const SIGNATURE: &'static str = "InvalidShortString()";
1349            const SELECTOR: [u8; 4] = [179u8, 81u8, 43u8, 12u8];
1350            #[inline]
1351            fn new<'a>(
1352                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1353            ) -> Self {
1354                tuple.into()
1355            }
1356            #[inline]
1357            fn tokenize(&self) -> Self::Token<'_> {
1358                ()
1359            }
1360        }
1361    };
1362    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1363    /**Custom error with signature `InvalidStrategy()` and selector `0x4e236e9a`.
1364```solidity
1365error InvalidStrategy();
1366```*/
1367    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1368    #[derive(Clone)]
1369    pub struct InvalidStrategy {}
1370    #[allow(
1371        non_camel_case_types,
1372        non_snake_case,
1373        clippy::pub_underscore_fields,
1374        clippy::style
1375    )]
1376    const _: () = {
1377        use alloy::sol_types as alloy_sol_types;
1378        #[doc(hidden)]
1379        type UnderlyingSolTuple<'a> = ();
1380        #[doc(hidden)]
1381        type UnderlyingRustTuple<'a> = ();
1382        #[cfg(test)]
1383        #[allow(dead_code, unreachable_patterns)]
1384        fn _type_assertion(
1385            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1386        ) {
1387            match _t {
1388                alloy_sol_types::private::AssertTypeEq::<
1389                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1390                >(_) => {}
1391            }
1392        }
1393        #[automatically_derived]
1394        #[doc(hidden)]
1395        impl ::core::convert::From<InvalidStrategy> for UnderlyingRustTuple<'_> {
1396            fn from(value: InvalidStrategy) -> Self {
1397                ()
1398            }
1399        }
1400        #[automatically_derived]
1401        #[doc(hidden)]
1402        impl ::core::convert::From<UnderlyingRustTuple<'_>> for InvalidStrategy {
1403            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1404                Self {}
1405            }
1406        }
1407        #[automatically_derived]
1408        impl alloy_sol_types::SolError for InvalidStrategy {
1409            type Parameters<'a> = UnderlyingSolTuple<'a>;
1410            type Token<'a> = <Self::Parameters<
1411                'a,
1412            > as alloy_sol_types::SolType>::Token<'a>;
1413            const SIGNATURE: &'static str = "InvalidStrategy()";
1414            const SELECTOR: [u8; 4] = [78u8, 35u8, 110u8, 154u8];
1415            #[inline]
1416            fn new<'a>(
1417                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1418            ) -> Self {
1419                tuple.into()
1420            }
1421            #[inline]
1422            fn tokenize(&self) -> Self::Token<'_> {
1423                ()
1424            }
1425        }
1426    };
1427    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1428    /**Custom error with signature `LegacyWithdrawalsNotCompleted()` and selector `0x4b692bcf`.
1429```solidity
1430error LegacyWithdrawalsNotCompleted();
1431```*/
1432    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1433    #[derive(Clone)]
1434    pub struct LegacyWithdrawalsNotCompleted {}
1435    #[allow(
1436        non_camel_case_types,
1437        non_snake_case,
1438        clippy::pub_underscore_fields,
1439        clippy::style
1440    )]
1441    const _: () = {
1442        use alloy::sol_types as alloy_sol_types;
1443        #[doc(hidden)]
1444        type UnderlyingSolTuple<'a> = ();
1445        #[doc(hidden)]
1446        type UnderlyingRustTuple<'a> = ();
1447        #[cfg(test)]
1448        #[allow(dead_code, unreachable_patterns)]
1449        fn _type_assertion(
1450            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1451        ) {
1452            match _t {
1453                alloy_sol_types::private::AssertTypeEq::<
1454                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1455                >(_) => {}
1456            }
1457        }
1458        #[automatically_derived]
1459        #[doc(hidden)]
1460        impl ::core::convert::From<LegacyWithdrawalsNotCompleted>
1461        for UnderlyingRustTuple<'_> {
1462            fn from(value: LegacyWithdrawalsNotCompleted) -> Self {
1463                ()
1464            }
1465        }
1466        #[automatically_derived]
1467        #[doc(hidden)]
1468        impl ::core::convert::From<UnderlyingRustTuple<'_>>
1469        for LegacyWithdrawalsNotCompleted {
1470            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1471                Self {}
1472            }
1473        }
1474        #[automatically_derived]
1475        impl alloy_sol_types::SolError for LegacyWithdrawalsNotCompleted {
1476            type Parameters<'a> = UnderlyingSolTuple<'a>;
1477            type Token<'a> = <Self::Parameters<
1478                'a,
1479            > as alloy_sol_types::SolType>::Token<'a>;
1480            const SIGNATURE: &'static str = "LegacyWithdrawalsNotCompleted()";
1481            const SELECTOR: [u8; 4] = [75u8, 105u8, 43u8, 207u8];
1482            #[inline]
1483            fn new<'a>(
1484                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1485            ) -> Self {
1486                tuple.into()
1487            }
1488            #[inline]
1489            fn tokenize(&self) -> Self::Token<'_> {
1490                ()
1491            }
1492        }
1493    };
1494    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1495    /**Custom error with signature `OnlyDelegationManager()` and selector `0xf739589b`.
1496```solidity
1497error OnlyDelegationManager();
1498```*/
1499    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1500    #[derive(Clone)]
1501    pub struct OnlyDelegationManager {}
1502    #[allow(
1503        non_camel_case_types,
1504        non_snake_case,
1505        clippy::pub_underscore_fields,
1506        clippy::style
1507    )]
1508    const _: () = {
1509        use alloy::sol_types as alloy_sol_types;
1510        #[doc(hidden)]
1511        type UnderlyingSolTuple<'a> = ();
1512        #[doc(hidden)]
1513        type UnderlyingRustTuple<'a> = ();
1514        #[cfg(test)]
1515        #[allow(dead_code, unreachable_patterns)]
1516        fn _type_assertion(
1517            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1518        ) {
1519            match _t {
1520                alloy_sol_types::private::AssertTypeEq::<
1521                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1522                >(_) => {}
1523            }
1524        }
1525        #[automatically_derived]
1526        #[doc(hidden)]
1527        impl ::core::convert::From<OnlyDelegationManager> for UnderlyingRustTuple<'_> {
1528            fn from(value: OnlyDelegationManager) -> Self {
1529                ()
1530            }
1531        }
1532        #[automatically_derived]
1533        #[doc(hidden)]
1534        impl ::core::convert::From<UnderlyingRustTuple<'_>> for OnlyDelegationManager {
1535            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1536                Self {}
1537            }
1538        }
1539        #[automatically_derived]
1540        impl alloy_sol_types::SolError for OnlyDelegationManager {
1541            type Parameters<'a> = UnderlyingSolTuple<'a>;
1542            type Token<'a> = <Self::Parameters<
1543                'a,
1544            > as alloy_sol_types::SolType>::Token<'a>;
1545            const SIGNATURE: &'static str = "OnlyDelegationManager()";
1546            const SELECTOR: [u8; 4] = [247u8, 57u8, 88u8, 155u8];
1547            #[inline]
1548            fn new<'a>(
1549                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1550            ) -> Self {
1551                tuple.into()
1552            }
1553            #[inline]
1554            fn tokenize(&self) -> Self::Token<'_> {
1555                ()
1556            }
1557        }
1558    };
1559    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1560    /**Custom error with signature `OnlyEigenPod()` and selector `0x25c2dae2`.
1561```solidity
1562error OnlyEigenPod();
1563```*/
1564    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1565    #[derive(Clone)]
1566    pub struct OnlyEigenPod {}
1567    #[allow(
1568        non_camel_case_types,
1569        non_snake_case,
1570        clippy::pub_underscore_fields,
1571        clippy::style
1572    )]
1573    const _: () = {
1574        use alloy::sol_types as alloy_sol_types;
1575        #[doc(hidden)]
1576        type UnderlyingSolTuple<'a> = ();
1577        #[doc(hidden)]
1578        type UnderlyingRustTuple<'a> = ();
1579        #[cfg(test)]
1580        #[allow(dead_code, unreachable_patterns)]
1581        fn _type_assertion(
1582            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1583        ) {
1584            match _t {
1585                alloy_sol_types::private::AssertTypeEq::<
1586                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1587                >(_) => {}
1588            }
1589        }
1590        #[automatically_derived]
1591        #[doc(hidden)]
1592        impl ::core::convert::From<OnlyEigenPod> for UnderlyingRustTuple<'_> {
1593            fn from(value: OnlyEigenPod) -> Self {
1594                ()
1595            }
1596        }
1597        #[automatically_derived]
1598        #[doc(hidden)]
1599        impl ::core::convert::From<UnderlyingRustTuple<'_>> for OnlyEigenPod {
1600            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1601                Self {}
1602            }
1603        }
1604        #[automatically_derived]
1605        impl alloy_sol_types::SolError for OnlyEigenPod {
1606            type Parameters<'a> = UnderlyingSolTuple<'a>;
1607            type Token<'a> = <Self::Parameters<
1608                'a,
1609            > as alloy_sol_types::SolType>::Token<'a>;
1610            const SIGNATURE: &'static str = "OnlyEigenPod()";
1611            const SELECTOR: [u8; 4] = [37u8, 194u8, 218u8, 226u8];
1612            #[inline]
1613            fn new<'a>(
1614                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1615            ) -> Self {
1616                tuple.into()
1617            }
1618            #[inline]
1619            fn tokenize(&self) -> Self::Token<'_> {
1620                ()
1621            }
1622        }
1623    };
1624    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1625    /**Custom error with signature `OnlyPauser()` and selector `0x75df51dc`.
1626```solidity
1627error OnlyPauser();
1628```*/
1629    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1630    #[derive(Clone)]
1631    pub struct OnlyPauser {}
1632    #[allow(
1633        non_camel_case_types,
1634        non_snake_case,
1635        clippy::pub_underscore_fields,
1636        clippy::style
1637    )]
1638    const _: () = {
1639        use alloy::sol_types as alloy_sol_types;
1640        #[doc(hidden)]
1641        type UnderlyingSolTuple<'a> = ();
1642        #[doc(hidden)]
1643        type UnderlyingRustTuple<'a> = ();
1644        #[cfg(test)]
1645        #[allow(dead_code, unreachable_patterns)]
1646        fn _type_assertion(
1647            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1648        ) {
1649            match _t {
1650                alloy_sol_types::private::AssertTypeEq::<
1651                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1652                >(_) => {}
1653            }
1654        }
1655        #[automatically_derived]
1656        #[doc(hidden)]
1657        impl ::core::convert::From<OnlyPauser> for UnderlyingRustTuple<'_> {
1658            fn from(value: OnlyPauser) -> Self {
1659                ()
1660            }
1661        }
1662        #[automatically_derived]
1663        #[doc(hidden)]
1664        impl ::core::convert::From<UnderlyingRustTuple<'_>> for OnlyPauser {
1665            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1666                Self {}
1667            }
1668        }
1669        #[automatically_derived]
1670        impl alloy_sol_types::SolError for OnlyPauser {
1671            type Parameters<'a> = UnderlyingSolTuple<'a>;
1672            type Token<'a> = <Self::Parameters<
1673                'a,
1674            > as alloy_sol_types::SolType>::Token<'a>;
1675            const SIGNATURE: &'static str = "OnlyPauser()";
1676            const SELECTOR: [u8; 4] = [117u8, 223u8, 81u8, 220u8];
1677            #[inline]
1678            fn new<'a>(
1679                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1680            ) -> Self {
1681                tuple.into()
1682            }
1683            #[inline]
1684            fn tokenize(&self) -> Self::Token<'_> {
1685                ()
1686            }
1687        }
1688    };
1689    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1690    /**Custom error with signature `OnlyProofTimestampSetter()` and selector `0x98611370`.
1691```solidity
1692error OnlyProofTimestampSetter();
1693```*/
1694    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1695    #[derive(Clone)]
1696    pub struct OnlyProofTimestampSetter {}
1697    #[allow(
1698        non_camel_case_types,
1699        non_snake_case,
1700        clippy::pub_underscore_fields,
1701        clippy::style
1702    )]
1703    const _: () = {
1704        use alloy::sol_types as alloy_sol_types;
1705        #[doc(hidden)]
1706        type UnderlyingSolTuple<'a> = ();
1707        #[doc(hidden)]
1708        type UnderlyingRustTuple<'a> = ();
1709        #[cfg(test)]
1710        #[allow(dead_code, unreachable_patterns)]
1711        fn _type_assertion(
1712            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1713        ) {
1714            match _t {
1715                alloy_sol_types::private::AssertTypeEq::<
1716                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1717                >(_) => {}
1718            }
1719        }
1720        #[automatically_derived]
1721        #[doc(hidden)]
1722        impl ::core::convert::From<OnlyProofTimestampSetter>
1723        for UnderlyingRustTuple<'_> {
1724            fn from(value: OnlyProofTimestampSetter) -> Self {
1725                ()
1726            }
1727        }
1728        #[automatically_derived]
1729        #[doc(hidden)]
1730        impl ::core::convert::From<UnderlyingRustTuple<'_>>
1731        for OnlyProofTimestampSetter {
1732            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1733                Self {}
1734            }
1735        }
1736        #[automatically_derived]
1737        impl alloy_sol_types::SolError for OnlyProofTimestampSetter {
1738            type Parameters<'a> = UnderlyingSolTuple<'a>;
1739            type Token<'a> = <Self::Parameters<
1740                'a,
1741            > as alloy_sol_types::SolType>::Token<'a>;
1742            const SIGNATURE: &'static str = "OnlyProofTimestampSetter()";
1743            const SELECTOR: [u8; 4] = [152u8, 97u8, 19u8, 112u8];
1744            #[inline]
1745            fn new<'a>(
1746                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1747            ) -> Self {
1748                tuple.into()
1749            }
1750            #[inline]
1751            fn tokenize(&self) -> Self::Token<'_> {
1752                ()
1753            }
1754        }
1755    };
1756    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1757    /**Custom error with signature `OnlyUnpauser()` and selector `0x794821ff`.
1758```solidity
1759error OnlyUnpauser();
1760```*/
1761    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1762    #[derive(Clone)]
1763    pub struct OnlyUnpauser {}
1764    #[allow(
1765        non_camel_case_types,
1766        non_snake_case,
1767        clippy::pub_underscore_fields,
1768        clippy::style
1769    )]
1770    const _: () = {
1771        use alloy::sol_types as alloy_sol_types;
1772        #[doc(hidden)]
1773        type UnderlyingSolTuple<'a> = ();
1774        #[doc(hidden)]
1775        type UnderlyingRustTuple<'a> = ();
1776        #[cfg(test)]
1777        #[allow(dead_code, unreachable_patterns)]
1778        fn _type_assertion(
1779            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1780        ) {
1781            match _t {
1782                alloy_sol_types::private::AssertTypeEq::<
1783                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1784                >(_) => {}
1785            }
1786        }
1787        #[automatically_derived]
1788        #[doc(hidden)]
1789        impl ::core::convert::From<OnlyUnpauser> for UnderlyingRustTuple<'_> {
1790            fn from(value: OnlyUnpauser) -> Self {
1791                ()
1792            }
1793        }
1794        #[automatically_derived]
1795        #[doc(hidden)]
1796        impl ::core::convert::From<UnderlyingRustTuple<'_>> for OnlyUnpauser {
1797            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1798                Self {}
1799            }
1800        }
1801        #[automatically_derived]
1802        impl alloy_sol_types::SolError for OnlyUnpauser {
1803            type Parameters<'a> = UnderlyingSolTuple<'a>;
1804            type Token<'a> = <Self::Parameters<
1805                'a,
1806            > as alloy_sol_types::SolType>::Token<'a>;
1807            const SIGNATURE: &'static str = "OnlyUnpauser()";
1808            const SELECTOR: [u8; 4] = [121u8, 72u8, 33u8, 255u8];
1809            #[inline]
1810            fn new<'a>(
1811                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1812            ) -> Self {
1813                tuple.into()
1814            }
1815            #[inline]
1816            fn tokenize(&self) -> Self::Token<'_> {
1817                ()
1818            }
1819        }
1820    };
1821    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1822    /**Custom error with signature `SharesNegative()` and selector `0xef147de1`.
1823```solidity
1824error SharesNegative();
1825```*/
1826    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1827    #[derive(Clone)]
1828    pub struct SharesNegative {}
1829    #[allow(
1830        non_camel_case_types,
1831        non_snake_case,
1832        clippy::pub_underscore_fields,
1833        clippy::style
1834    )]
1835    const _: () = {
1836        use alloy::sol_types as alloy_sol_types;
1837        #[doc(hidden)]
1838        type UnderlyingSolTuple<'a> = ();
1839        #[doc(hidden)]
1840        type UnderlyingRustTuple<'a> = ();
1841        #[cfg(test)]
1842        #[allow(dead_code, unreachable_patterns)]
1843        fn _type_assertion(
1844            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1845        ) {
1846            match _t {
1847                alloy_sol_types::private::AssertTypeEq::<
1848                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1849                >(_) => {}
1850            }
1851        }
1852        #[automatically_derived]
1853        #[doc(hidden)]
1854        impl ::core::convert::From<SharesNegative> for UnderlyingRustTuple<'_> {
1855            fn from(value: SharesNegative) -> Self {
1856                ()
1857            }
1858        }
1859        #[automatically_derived]
1860        #[doc(hidden)]
1861        impl ::core::convert::From<UnderlyingRustTuple<'_>> for SharesNegative {
1862            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1863                Self {}
1864            }
1865        }
1866        #[automatically_derived]
1867        impl alloy_sol_types::SolError for SharesNegative {
1868            type Parameters<'a> = UnderlyingSolTuple<'a>;
1869            type Token<'a> = <Self::Parameters<
1870                'a,
1871            > as alloy_sol_types::SolType>::Token<'a>;
1872            const SIGNATURE: &'static str = "SharesNegative()";
1873            const SELECTOR: [u8; 4] = [239u8, 20u8, 125u8, 225u8];
1874            #[inline]
1875            fn new<'a>(
1876                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1877            ) -> Self {
1878                tuple.into()
1879            }
1880            #[inline]
1881            fn tokenize(&self) -> Self::Token<'_> {
1882                ()
1883            }
1884        }
1885    };
1886    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1887    /**Custom error with signature `SharesNotMultipleOfGwei()` and selector `0x8fa0e576`.
1888```solidity
1889error SharesNotMultipleOfGwei();
1890```*/
1891    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1892    #[derive(Clone)]
1893    pub struct SharesNotMultipleOfGwei {}
1894    #[allow(
1895        non_camel_case_types,
1896        non_snake_case,
1897        clippy::pub_underscore_fields,
1898        clippy::style
1899    )]
1900    const _: () = {
1901        use alloy::sol_types as alloy_sol_types;
1902        #[doc(hidden)]
1903        type UnderlyingSolTuple<'a> = ();
1904        #[doc(hidden)]
1905        type UnderlyingRustTuple<'a> = ();
1906        #[cfg(test)]
1907        #[allow(dead_code, unreachable_patterns)]
1908        fn _type_assertion(
1909            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1910        ) {
1911            match _t {
1912                alloy_sol_types::private::AssertTypeEq::<
1913                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1914                >(_) => {}
1915            }
1916        }
1917        #[automatically_derived]
1918        #[doc(hidden)]
1919        impl ::core::convert::From<SharesNotMultipleOfGwei> for UnderlyingRustTuple<'_> {
1920            fn from(value: SharesNotMultipleOfGwei) -> Self {
1921                ()
1922            }
1923        }
1924        #[automatically_derived]
1925        #[doc(hidden)]
1926        impl ::core::convert::From<UnderlyingRustTuple<'_>> for SharesNotMultipleOfGwei {
1927            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1928                Self {}
1929            }
1930        }
1931        #[automatically_derived]
1932        impl alloy_sol_types::SolError for SharesNotMultipleOfGwei {
1933            type Parameters<'a> = UnderlyingSolTuple<'a>;
1934            type Token<'a> = <Self::Parameters<
1935                'a,
1936            > as alloy_sol_types::SolType>::Token<'a>;
1937            const SIGNATURE: &'static str = "SharesNotMultipleOfGwei()";
1938            const SELECTOR: [u8; 4] = [143u8, 160u8, 229u8, 118u8];
1939            #[inline]
1940            fn new<'a>(
1941                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
1942            ) -> Self {
1943                tuple.into()
1944            }
1945            #[inline]
1946            fn tokenize(&self) -> Self::Token<'_> {
1947                ()
1948            }
1949        }
1950    };
1951    #[derive(Default, Debug, PartialEq, Eq, Hash)]
1952    /**Custom error with signature `StringTooLong(string)` and selector `0x305a27a9`.
1953```solidity
1954error StringTooLong(string str);
1955```*/
1956    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1957    #[derive(Clone)]
1958    pub struct StringTooLong {
1959        #[allow(missing_docs)]
1960        pub str: alloy::sol_types::private::String,
1961    }
1962    #[allow(
1963        non_camel_case_types,
1964        non_snake_case,
1965        clippy::pub_underscore_fields,
1966        clippy::style
1967    )]
1968    const _: () = {
1969        use alloy::sol_types as alloy_sol_types;
1970        #[doc(hidden)]
1971        type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,);
1972        #[doc(hidden)]
1973        type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,);
1974        #[cfg(test)]
1975        #[allow(dead_code, unreachable_patterns)]
1976        fn _type_assertion(
1977            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1978        ) {
1979            match _t {
1980                alloy_sol_types::private::AssertTypeEq::<
1981                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1982                >(_) => {}
1983            }
1984        }
1985        #[automatically_derived]
1986        #[doc(hidden)]
1987        impl ::core::convert::From<StringTooLong> for UnderlyingRustTuple<'_> {
1988            fn from(value: StringTooLong) -> Self {
1989                (value.str,)
1990            }
1991        }
1992        #[automatically_derived]
1993        #[doc(hidden)]
1994        impl ::core::convert::From<UnderlyingRustTuple<'_>> for StringTooLong {
1995            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1996                Self { str: tuple.0 }
1997            }
1998        }
1999        #[automatically_derived]
2000        impl alloy_sol_types::SolError for StringTooLong {
2001            type Parameters<'a> = UnderlyingSolTuple<'a>;
2002            type Token<'a> = <Self::Parameters<
2003                'a,
2004            > as alloy_sol_types::SolType>::Token<'a>;
2005            const SIGNATURE: &'static str = "StringTooLong(string)";
2006            const SELECTOR: [u8; 4] = [48u8, 90u8, 39u8, 169u8];
2007            #[inline]
2008            fn new<'a>(
2009                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
2010            ) -> Self {
2011                tuple.into()
2012            }
2013            #[inline]
2014            fn tokenize(&self) -> Self::Token<'_> {
2015                (
2016                    <alloy::sol_types::sol_data::String as alloy_sol_types::SolType>::tokenize(
2017                        &self.str,
2018                    ),
2019                )
2020            }
2021        }
2022    };
2023    #[derive(Default, Debug, PartialEq, Eq, Hash)]
2024    /**Event with signature `BeaconChainETHDeposited(address,uint256)` and selector `0x35a85cabc603f48abb2b71d9fbd8adea7c449d7f0be900ae7a2986ea369c3d0d`.
2025```solidity
2026event BeaconChainETHDeposited(address indexed podOwner, uint256 amount);
2027```*/
2028    #[allow(
2029        non_camel_case_types,
2030        non_snake_case,
2031        clippy::pub_underscore_fields,
2032        clippy::style
2033    )]
2034    #[derive(Clone)]
2035    pub struct BeaconChainETHDeposited {
2036        #[allow(missing_docs)]
2037        pub podOwner: alloy::sol_types::private::Address,
2038        #[allow(missing_docs)]
2039        pub amount: alloy::sol_types::private::primitives::aliases::U256,
2040    }
2041    #[allow(
2042        non_camel_case_types,
2043        non_snake_case,
2044        clippy::pub_underscore_fields,
2045        clippy::style
2046    )]
2047    const _: () = {
2048        use alloy::sol_types as alloy_sol_types;
2049        #[automatically_derived]
2050        impl alloy_sol_types::SolEvent for BeaconChainETHDeposited {
2051            type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
2052            type DataToken<'a> = <Self::DataTuple<
2053                'a,
2054            > as alloy_sol_types::SolType>::Token<'a>;
2055            type TopicList = (
2056                alloy_sol_types::sol_data::FixedBytes<32>,
2057                alloy::sol_types::sol_data::Address,
2058            );
2059            const SIGNATURE: &'static str = "BeaconChainETHDeposited(address,uint256)";
2060            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
2061                53u8, 168u8, 92u8, 171u8, 198u8, 3u8, 244u8, 138u8, 187u8, 43u8, 113u8,
2062                217u8, 251u8, 216u8, 173u8, 234u8, 124u8, 68u8, 157u8, 127u8, 11u8,
2063                233u8, 0u8, 174u8, 122u8, 41u8, 134u8, 234u8, 54u8, 156u8, 61u8, 13u8,
2064            ]);
2065            const ANONYMOUS: bool = false;
2066            #[allow(unused_variables)]
2067            #[inline]
2068            fn new(
2069                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
2070                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
2071            ) -> Self {
2072                Self {
2073                    podOwner: topics.1,
2074                    amount: data.0,
2075                }
2076            }
2077            #[inline]
2078            fn check_signature(
2079                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
2080            ) -> alloy_sol_types::Result<()> {
2081                if topics.0 != Self::SIGNATURE_HASH {
2082                    return Err(
2083                        alloy_sol_types::Error::invalid_event_signature_hash(
2084                            Self::SIGNATURE,
2085                            topics.0,
2086                            Self::SIGNATURE_HASH,
2087                        ),
2088                    );
2089                }
2090                Ok(())
2091            }
2092            #[inline]
2093            fn tokenize_body(&self) -> Self::DataToken<'_> {
2094                (
2095                    <alloy::sol_types::sol_data::Uint<
2096                        256,
2097                    > as alloy_sol_types::SolType>::tokenize(&self.amount),
2098                )
2099            }
2100            #[inline]
2101            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
2102                (Self::SIGNATURE_HASH.into(), self.podOwner.clone())
2103            }
2104            #[inline]
2105            fn encode_topics_raw(
2106                &self,
2107                out: &mut [alloy_sol_types::abi::token::WordToken],
2108            ) -> alloy_sol_types::Result<()> {
2109                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
2110                    return Err(alloy_sol_types::Error::Overrun);
2111                }
2112                out[0usize] = alloy_sol_types::abi::token::WordToken(
2113                    Self::SIGNATURE_HASH,
2114                );
2115                out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
2116                    &self.podOwner,
2117                );
2118                Ok(())
2119            }
2120        }
2121        #[automatically_derived]
2122        impl alloy_sol_types::private::IntoLogData for BeaconChainETHDeposited {
2123            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
2124                From::from(self)
2125            }
2126            fn into_log_data(self) -> alloy_sol_types::private::LogData {
2127                From::from(&self)
2128            }
2129        }
2130        #[automatically_derived]
2131        impl From<&BeaconChainETHDeposited> for alloy_sol_types::private::LogData {
2132            #[inline]
2133            fn from(
2134                this: &BeaconChainETHDeposited,
2135            ) -> alloy_sol_types::private::LogData {
2136                alloy_sol_types::SolEvent::encode_log_data(this)
2137            }
2138        }
2139    };
2140    #[derive(Default, Debug, PartialEq, Eq, Hash)]
2141    /**Event with signature `BeaconChainETHWithdrawalCompleted(address,uint256,uint96,address,address,bytes32)` and selector `0xa6bab1d55a361fcea2eee2bc9491e4f01e6cf333df03c9c4f2c144466429f7d6`.
2142```solidity
2143event BeaconChainETHWithdrawalCompleted(address indexed podOwner, uint256 shares, uint96 nonce, address delegatedAddress, address withdrawer, bytes32 withdrawalRoot);
2144```*/
2145    #[allow(
2146        non_camel_case_types,
2147        non_snake_case,
2148        clippy::pub_underscore_fields,
2149        clippy::style
2150    )]
2151    #[derive(Clone)]
2152    pub struct BeaconChainETHWithdrawalCompleted {
2153        #[allow(missing_docs)]
2154        pub podOwner: alloy::sol_types::private::Address,
2155        #[allow(missing_docs)]
2156        pub shares: alloy::sol_types::private::primitives::aliases::U256,
2157        #[allow(missing_docs)]
2158        pub nonce: alloy::sol_types::private::primitives::aliases::U96,
2159        #[allow(missing_docs)]
2160        pub delegatedAddress: alloy::sol_types::private::Address,
2161        #[allow(missing_docs)]
2162        pub withdrawer: alloy::sol_types::private::Address,
2163        #[allow(missing_docs)]
2164        pub withdrawalRoot: alloy::sol_types::private::FixedBytes<32>,
2165    }
2166    #[allow(
2167        non_camel_case_types,
2168        non_snake_case,
2169        clippy::pub_underscore_fields,
2170        clippy::style
2171    )]
2172    const _: () = {
2173        use alloy::sol_types as alloy_sol_types;
2174        #[automatically_derived]
2175        impl alloy_sol_types::SolEvent for BeaconChainETHWithdrawalCompleted {
2176            type DataTuple<'a> = (
2177                alloy::sol_types::sol_data::Uint<256>,
2178                alloy::sol_types::sol_data::Uint<96>,
2179                alloy::sol_types::sol_data::Address,
2180                alloy::sol_types::sol_data::Address,
2181                alloy::sol_types::sol_data::FixedBytes<32>,
2182            );
2183            type DataToken<'a> = <Self::DataTuple<
2184                'a,
2185            > as alloy_sol_types::SolType>::Token<'a>;
2186            type TopicList = (
2187                alloy_sol_types::sol_data::FixedBytes<32>,
2188                alloy::sol_types::sol_data::Address,
2189            );
2190            const SIGNATURE: &'static str = "BeaconChainETHWithdrawalCompleted(address,uint256,uint96,address,address,bytes32)";
2191            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
2192                166u8, 186u8, 177u8, 213u8, 90u8, 54u8, 31u8, 206u8, 162u8, 238u8, 226u8,
2193                188u8, 148u8, 145u8, 228u8, 240u8, 30u8, 108u8, 243u8, 51u8, 223u8, 3u8,
2194                201u8, 196u8, 242u8, 193u8, 68u8, 70u8, 100u8, 41u8, 247u8, 214u8,
2195            ]);
2196            const ANONYMOUS: bool = false;
2197            #[allow(unused_variables)]
2198            #[inline]
2199            fn new(
2200                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
2201                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
2202            ) -> Self {
2203                Self {
2204                    podOwner: topics.1,
2205                    shares: data.0,
2206                    nonce: data.1,
2207                    delegatedAddress: data.2,
2208                    withdrawer: data.3,
2209                    withdrawalRoot: data.4,
2210                }
2211            }
2212            #[inline]
2213            fn check_signature(
2214                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
2215            ) -> alloy_sol_types::Result<()> {
2216                if topics.0 != Self::SIGNATURE_HASH {
2217                    return Err(
2218                        alloy_sol_types::Error::invalid_event_signature_hash(
2219                            Self::SIGNATURE,
2220                            topics.0,
2221                            Self::SIGNATURE_HASH,
2222                        ),
2223                    );
2224                }
2225                Ok(())
2226            }
2227            #[inline]
2228            fn tokenize_body(&self) -> Self::DataToken<'_> {
2229                (
2230                    <alloy::sol_types::sol_data::Uint<
2231                        256,
2232                    > as alloy_sol_types::SolType>::tokenize(&self.shares),
2233                    <alloy::sol_types::sol_data::Uint<
2234                        96,
2235                    > as alloy_sol_types::SolType>::tokenize(&self.nonce),
2236                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
2237                        &self.delegatedAddress,
2238                    ),
2239                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
2240                        &self.withdrawer,
2241                    ),
2242                    <alloy::sol_types::sol_data::FixedBytes<
2243                        32,
2244                    > as alloy_sol_types::SolType>::tokenize(&self.withdrawalRoot),
2245                )
2246            }
2247            #[inline]
2248            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
2249                (Self::SIGNATURE_HASH.into(), self.podOwner.clone())
2250            }
2251            #[inline]
2252            fn encode_topics_raw(
2253                &self,
2254                out: &mut [alloy_sol_types::abi::token::WordToken],
2255            ) -> alloy_sol_types::Result<()> {
2256                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
2257                    return Err(alloy_sol_types::Error::Overrun);
2258                }
2259                out[0usize] = alloy_sol_types::abi::token::WordToken(
2260                    Self::SIGNATURE_HASH,
2261                );
2262                out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
2263                    &self.podOwner,
2264                );
2265                Ok(())
2266            }
2267        }
2268        #[automatically_derived]
2269        impl alloy_sol_types::private::IntoLogData
2270        for BeaconChainETHWithdrawalCompleted {
2271            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
2272                From::from(self)
2273            }
2274            fn into_log_data(self) -> alloy_sol_types::private::LogData {
2275                From::from(&self)
2276            }
2277        }
2278        #[automatically_derived]
2279        impl From<&BeaconChainETHWithdrawalCompleted>
2280        for alloy_sol_types::private::LogData {
2281            #[inline]
2282            fn from(
2283                this: &BeaconChainETHWithdrawalCompleted,
2284            ) -> alloy_sol_types::private::LogData {
2285                alloy_sol_types::SolEvent::encode_log_data(this)
2286            }
2287        }
2288    };
2289    #[derive(Default, Debug, PartialEq, Eq, Hash)]
2290    /**Event with signature `BeaconChainSlashingFactorDecreased(address,uint64,uint64)` and selector `0xb160ab8589bf47dc04ea11b50d46678d21590cea2ed3e454e7bd3e41510f98cf`.
2291```solidity
2292event BeaconChainSlashingFactorDecreased(address staker, uint64 prevBeaconChainSlashingFactor, uint64 newBeaconChainSlashingFactor);
2293```*/
2294    #[allow(
2295        non_camel_case_types,
2296        non_snake_case,
2297        clippy::pub_underscore_fields,
2298        clippy::style
2299    )]
2300    #[derive(Clone)]
2301    pub struct BeaconChainSlashingFactorDecreased {
2302        #[allow(missing_docs)]
2303        pub staker: alloy::sol_types::private::Address,
2304        #[allow(missing_docs)]
2305        pub prevBeaconChainSlashingFactor: u64,
2306        #[allow(missing_docs)]
2307        pub newBeaconChainSlashingFactor: u64,
2308    }
2309    #[allow(
2310        non_camel_case_types,
2311        non_snake_case,
2312        clippy::pub_underscore_fields,
2313        clippy::style
2314    )]
2315    const _: () = {
2316        use alloy::sol_types as alloy_sol_types;
2317        #[automatically_derived]
2318        impl alloy_sol_types::SolEvent for BeaconChainSlashingFactorDecreased {
2319            type DataTuple<'a> = (
2320                alloy::sol_types::sol_data::Address,
2321                alloy::sol_types::sol_data::Uint<64>,
2322                alloy::sol_types::sol_data::Uint<64>,
2323            );
2324            type DataToken<'a> = <Self::DataTuple<
2325                'a,
2326            > as alloy_sol_types::SolType>::Token<'a>;
2327            type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,);
2328            const SIGNATURE: &'static str = "BeaconChainSlashingFactorDecreased(address,uint64,uint64)";
2329            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
2330                177u8, 96u8, 171u8, 133u8, 137u8, 191u8, 71u8, 220u8, 4u8, 234u8, 17u8,
2331                181u8, 13u8, 70u8, 103u8, 141u8, 33u8, 89u8, 12u8, 234u8, 46u8, 211u8,
2332                228u8, 84u8, 231u8, 189u8, 62u8, 65u8, 81u8, 15u8, 152u8, 207u8,
2333            ]);
2334            const ANONYMOUS: bool = false;
2335            #[allow(unused_variables)]
2336            #[inline]
2337            fn new(
2338                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
2339                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
2340            ) -> Self {
2341                Self {
2342                    staker: data.0,
2343                    prevBeaconChainSlashingFactor: data.1,
2344                    newBeaconChainSlashingFactor: data.2,
2345                }
2346            }
2347            #[inline]
2348            fn check_signature(
2349                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
2350            ) -> alloy_sol_types::Result<()> {
2351                if topics.0 != Self::SIGNATURE_HASH {
2352                    return Err(
2353                        alloy_sol_types::Error::invalid_event_signature_hash(
2354                            Self::SIGNATURE,
2355                            topics.0,
2356                            Self::SIGNATURE_HASH,
2357                        ),
2358                    );
2359                }
2360                Ok(())
2361            }
2362            #[inline]
2363            fn tokenize_body(&self) -> Self::DataToken<'_> {
2364                (
2365                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
2366                        &self.staker,
2367                    ),
2368                    <alloy::sol_types::sol_data::Uint<
2369                        64,
2370                    > as alloy_sol_types::SolType>::tokenize(
2371                        &self.prevBeaconChainSlashingFactor,
2372                    ),
2373                    <alloy::sol_types::sol_data::Uint<
2374                        64,
2375                    > as alloy_sol_types::SolType>::tokenize(
2376                        &self.newBeaconChainSlashingFactor,
2377                    ),
2378                )
2379            }
2380            #[inline]
2381            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
2382                (Self::SIGNATURE_HASH.into(),)
2383            }
2384            #[inline]
2385            fn encode_topics_raw(
2386                &self,
2387                out: &mut [alloy_sol_types::abi::token::WordToken],
2388            ) -> alloy_sol_types::Result<()> {
2389                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
2390                    return Err(alloy_sol_types::Error::Overrun);
2391                }
2392                out[0usize] = alloy_sol_types::abi::token::WordToken(
2393                    Self::SIGNATURE_HASH,
2394                );
2395                Ok(())
2396            }
2397        }
2398        #[automatically_derived]
2399        impl alloy_sol_types::private::IntoLogData
2400        for BeaconChainSlashingFactorDecreased {
2401            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
2402                From::from(self)
2403            }
2404            fn into_log_data(self) -> alloy_sol_types::private::LogData {
2405                From::from(&self)
2406            }
2407        }
2408        #[automatically_derived]
2409        impl From<&BeaconChainSlashingFactorDecreased>
2410        for alloy_sol_types::private::LogData {
2411            #[inline]
2412            fn from(
2413                this: &BeaconChainSlashingFactorDecreased,
2414            ) -> alloy_sol_types::private::LogData {
2415                alloy_sol_types::SolEvent::encode_log_data(this)
2416            }
2417        }
2418    };
2419    #[derive(Default, Debug, PartialEq, Eq, Hash)]
2420    /**Event with signature `BurnableETHSharesIncreased(uint256)` and selector `0x1ed04b7fd262c0d9e50fa02957f32a81a151f03baaa367faeedc7521b001c4a4`.
2421```solidity
2422event BurnableETHSharesIncreased(uint256 shares);
2423```*/
2424    #[allow(
2425        non_camel_case_types,
2426        non_snake_case,
2427        clippy::pub_underscore_fields,
2428        clippy::style
2429    )]
2430    #[derive(Clone)]
2431    pub struct BurnableETHSharesIncreased {
2432        #[allow(missing_docs)]
2433        pub shares: alloy::sol_types::private::primitives::aliases::U256,
2434    }
2435    #[allow(
2436        non_camel_case_types,
2437        non_snake_case,
2438        clippy::pub_underscore_fields,
2439        clippy::style
2440    )]
2441    const _: () = {
2442        use alloy::sol_types as alloy_sol_types;
2443        #[automatically_derived]
2444        impl alloy_sol_types::SolEvent for BurnableETHSharesIncreased {
2445            type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
2446            type DataToken<'a> = <Self::DataTuple<
2447                'a,
2448            > as alloy_sol_types::SolType>::Token<'a>;
2449            type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,);
2450            const SIGNATURE: &'static str = "BurnableETHSharesIncreased(uint256)";
2451            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
2452                30u8, 208u8, 75u8, 127u8, 210u8, 98u8, 192u8, 217u8, 229u8, 15u8, 160u8,
2453                41u8, 87u8, 243u8, 42u8, 129u8, 161u8, 81u8, 240u8, 59u8, 170u8, 163u8,
2454                103u8, 250u8, 238u8, 220u8, 117u8, 33u8, 176u8, 1u8, 196u8, 164u8,
2455            ]);
2456            const ANONYMOUS: bool = false;
2457            #[allow(unused_variables)]
2458            #[inline]
2459            fn new(
2460                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
2461                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
2462            ) -> Self {
2463                Self { shares: data.0 }
2464            }
2465            #[inline]
2466            fn check_signature(
2467                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
2468            ) -> alloy_sol_types::Result<()> {
2469                if topics.0 != Self::SIGNATURE_HASH {
2470                    return Err(
2471                        alloy_sol_types::Error::invalid_event_signature_hash(
2472                            Self::SIGNATURE,
2473                            topics.0,
2474                            Self::SIGNATURE_HASH,
2475                        ),
2476                    );
2477                }
2478                Ok(())
2479            }
2480            #[inline]
2481            fn tokenize_body(&self) -> Self::DataToken<'_> {
2482                (
2483                    <alloy::sol_types::sol_data::Uint<
2484                        256,
2485                    > as alloy_sol_types::SolType>::tokenize(&self.shares),
2486                )
2487            }
2488            #[inline]
2489            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
2490                (Self::SIGNATURE_HASH.into(),)
2491            }
2492            #[inline]
2493            fn encode_topics_raw(
2494                &self,
2495                out: &mut [alloy_sol_types::abi::token::WordToken],
2496            ) -> alloy_sol_types::Result<()> {
2497                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
2498                    return Err(alloy_sol_types::Error::Overrun);
2499                }
2500                out[0usize] = alloy_sol_types::abi::token::WordToken(
2501                    Self::SIGNATURE_HASH,
2502                );
2503                Ok(())
2504            }
2505        }
2506        #[automatically_derived]
2507        impl alloy_sol_types::private::IntoLogData for BurnableETHSharesIncreased {
2508            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
2509                From::from(self)
2510            }
2511            fn into_log_data(self) -> alloy_sol_types::private::LogData {
2512                From::from(&self)
2513            }
2514        }
2515        #[automatically_derived]
2516        impl From<&BurnableETHSharesIncreased> for alloy_sol_types::private::LogData {
2517            #[inline]
2518            fn from(
2519                this: &BurnableETHSharesIncreased,
2520            ) -> alloy_sol_types::private::LogData {
2521                alloy_sol_types::SolEvent::encode_log_data(this)
2522            }
2523        }
2524    };
2525    #[derive(Default, Debug, PartialEq, Eq, Hash)]
2526    /**Event with signature `Initialized(uint8)` and selector `0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498`.
2527```solidity
2528event Initialized(uint8 version);
2529```*/
2530    #[allow(
2531        non_camel_case_types,
2532        non_snake_case,
2533        clippy::pub_underscore_fields,
2534        clippy::style
2535    )]
2536    #[derive(Clone)]
2537    pub struct Initialized {
2538        #[allow(missing_docs)]
2539        pub version: u8,
2540    }
2541    #[allow(
2542        non_camel_case_types,
2543        non_snake_case,
2544        clippy::pub_underscore_fields,
2545        clippy::style
2546    )]
2547    const _: () = {
2548        use alloy::sol_types as alloy_sol_types;
2549        #[automatically_derived]
2550        impl alloy_sol_types::SolEvent for Initialized {
2551            type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,);
2552            type DataToken<'a> = <Self::DataTuple<
2553                'a,
2554            > as alloy_sol_types::SolType>::Token<'a>;
2555            type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,);
2556            const SIGNATURE: &'static str = "Initialized(uint8)";
2557            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
2558                127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8,
2559                19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8,
2560                146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8,
2561            ]);
2562            const ANONYMOUS: bool = false;
2563            #[allow(unused_variables)]
2564            #[inline]
2565            fn new(
2566                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
2567                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
2568            ) -> Self {
2569                Self { version: data.0 }
2570            }
2571            #[inline]
2572            fn check_signature(
2573                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
2574            ) -> alloy_sol_types::Result<()> {
2575                if topics.0 != Self::SIGNATURE_HASH {
2576                    return Err(
2577                        alloy_sol_types::Error::invalid_event_signature_hash(
2578                            Self::SIGNATURE,
2579                            topics.0,
2580                            Self::SIGNATURE_HASH,
2581                        ),
2582                    );
2583                }
2584                Ok(())
2585            }
2586            #[inline]
2587            fn tokenize_body(&self) -> Self::DataToken<'_> {
2588                (
2589                    <alloy::sol_types::sol_data::Uint<
2590                        8,
2591                    > as alloy_sol_types::SolType>::tokenize(&self.version),
2592                )
2593            }
2594            #[inline]
2595            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
2596                (Self::SIGNATURE_HASH.into(),)
2597            }
2598            #[inline]
2599            fn encode_topics_raw(
2600                &self,
2601                out: &mut [alloy_sol_types::abi::token::WordToken],
2602            ) -> alloy_sol_types::Result<()> {
2603                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
2604                    return Err(alloy_sol_types::Error::Overrun);
2605                }
2606                out[0usize] = alloy_sol_types::abi::token::WordToken(
2607                    Self::SIGNATURE_HASH,
2608                );
2609                Ok(())
2610            }
2611        }
2612        #[automatically_derived]
2613        impl alloy_sol_types::private::IntoLogData for Initialized {
2614            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
2615                From::from(self)
2616            }
2617            fn into_log_data(self) -> alloy_sol_types::private::LogData {
2618                From::from(&self)
2619            }
2620        }
2621        #[automatically_derived]
2622        impl From<&Initialized> for alloy_sol_types::private::LogData {
2623            #[inline]
2624            fn from(this: &Initialized) -> alloy_sol_types::private::LogData {
2625                alloy_sol_types::SolEvent::encode_log_data(this)
2626            }
2627        }
2628    };
2629    #[derive(Default, Debug, PartialEq, Eq, Hash)]
2630    /**Event with signature `NewTotalShares(address,int256)` and selector `0xd4def76d6d2bed6f14d5cd9af73cc2913d618d00edde42432e81c09bfe077098`.
2631```solidity
2632event NewTotalShares(address indexed podOwner, int256 newTotalShares);
2633```*/
2634    #[allow(
2635        non_camel_case_types,
2636        non_snake_case,
2637        clippy::pub_underscore_fields,
2638        clippy::style
2639    )]
2640    #[derive(Clone)]
2641    pub struct NewTotalShares {
2642        #[allow(missing_docs)]
2643        pub podOwner: alloy::sol_types::private::Address,
2644        #[allow(missing_docs)]
2645        pub newTotalShares: alloy::sol_types::private::primitives::aliases::I256,
2646    }
2647    #[allow(
2648        non_camel_case_types,
2649        non_snake_case,
2650        clippy::pub_underscore_fields,
2651        clippy::style
2652    )]
2653    const _: () = {
2654        use alloy::sol_types as alloy_sol_types;
2655        #[automatically_derived]
2656        impl alloy_sol_types::SolEvent for NewTotalShares {
2657            type DataTuple<'a> = (alloy::sol_types::sol_data::Int<256>,);
2658            type DataToken<'a> = <Self::DataTuple<
2659                'a,
2660            > as alloy_sol_types::SolType>::Token<'a>;
2661            type TopicList = (
2662                alloy_sol_types::sol_data::FixedBytes<32>,
2663                alloy::sol_types::sol_data::Address,
2664            );
2665            const SIGNATURE: &'static str = "NewTotalShares(address,int256)";
2666            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
2667                212u8, 222u8, 247u8, 109u8, 109u8, 43u8, 237u8, 111u8, 20u8, 213u8,
2668                205u8, 154u8, 247u8, 60u8, 194u8, 145u8, 61u8, 97u8, 141u8, 0u8, 237u8,
2669                222u8, 66u8, 67u8, 46u8, 129u8, 192u8, 155u8, 254u8, 7u8, 112u8, 152u8,
2670            ]);
2671            const ANONYMOUS: bool = false;
2672            #[allow(unused_variables)]
2673            #[inline]
2674            fn new(
2675                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
2676                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
2677            ) -> Self {
2678                Self {
2679                    podOwner: topics.1,
2680                    newTotalShares: data.0,
2681                }
2682            }
2683            #[inline]
2684            fn check_signature(
2685                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
2686            ) -> alloy_sol_types::Result<()> {
2687                if topics.0 != Self::SIGNATURE_HASH {
2688                    return Err(
2689                        alloy_sol_types::Error::invalid_event_signature_hash(
2690                            Self::SIGNATURE,
2691                            topics.0,
2692                            Self::SIGNATURE_HASH,
2693                        ),
2694                    );
2695                }
2696                Ok(())
2697            }
2698            #[inline]
2699            fn tokenize_body(&self) -> Self::DataToken<'_> {
2700                (
2701                    <alloy::sol_types::sol_data::Int<
2702                        256,
2703                    > as alloy_sol_types::SolType>::tokenize(&self.newTotalShares),
2704                )
2705            }
2706            #[inline]
2707            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
2708                (Self::SIGNATURE_HASH.into(), self.podOwner.clone())
2709            }
2710            #[inline]
2711            fn encode_topics_raw(
2712                &self,
2713                out: &mut [alloy_sol_types::abi::token::WordToken],
2714            ) -> alloy_sol_types::Result<()> {
2715                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
2716                    return Err(alloy_sol_types::Error::Overrun);
2717                }
2718                out[0usize] = alloy_sol_types::abi::token::WordToken(
2719                    Self::SIGNATURE_HASH,
2720                );
2721                out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
2722                    &self.podOwner,
2723                );
2724                Ok(())
2725            }
2726        }
2727        #[automatically_derived]
2728        impl alloy_sol_types::private::IntoLogData for NewTotalShares {
2729            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
2730                From::from(self)
2731            }
2732            fn into_log_data(self) -> alloy_sol_types::private::LogData {
2733                From::from(&self)
2734            }
2735        }
2736        #[automatically_derived]
2737        impl From<&NewTotalShares> for alloy_sol_types::private::LogData {
2738            #[inline]
2739            fn from(this: &NewTotalShares) -> alloy_sol_types::private::LogData {
2740                alloy_sol_types::SolEvent::encode_log_data(this)
2741            }
2742        }
2743    };
2744    #[derive(Default, Debug, PartialEq, Eq, Hash)]
2745    /**Event with signature `OwnershipTransferred(address,address)` and selector `0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0`.
2746```solidity
2747event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
2748```*/
2749    #[allow(
2750        non_camel_case_types,
2751        non_snake_case,
2752        clippy::pub_underscore_fields,
2753        clippy::style
2754    )]
2755    #[derive(Clone)]
2756    pub struct OwnershipTransferred {
2757        #[allow(missing_docs)]
2758        pub previousOwner: alloy::sol_types::private::Address,
2759        #[allow(missing_docs)]
2760        pub newOwner: alloy::sol_types::private::Address,
2761    }
2762    #[allow(
2763        non_camel_case_types,
2764        non_snake_case,
2765        clippy::pub_underscore_fields,
2766        clippy::style
2767    )]
2768    const _: () = {
2769        use alloy::sol_types as alloy_sol_types;
2770        #[automatically_derived]
2771        impl alloy_sol_types::SolEvent for OwnershipTransferred {
2772            type DataTuple<'a> = ();
2773            type DataToken<'a> = <Self::DataTuple<
2774                'a,
2775            > as alloy_sol_types::SolType>::Token<'a>;
2776            type TopicList = (
2777                alloy_sol_types::sol_data::FixedBytes<32>,
2778                alloy::sol_types::sol_data::Address,
2779                alloy::sol_types::sol_data::Address,
2780            );
2781            const SIGNATURE: &'static str = "OwnershipTransferred(address,address)";
2782            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
2783                139u8, 224u8, 7u8, 156u8, 83u8, 22u8, 89u8, 20u8, 19u8, 68u8, 205u8,
2784                31u8, 208u8, 164u8, 242u8, 132u8, 25u8, 73u8, 127u8, 151u8, 34u8, 163u8,
2785                218u8, 175u8, 227u8, 180u8, 24u8, 111u8, 107u8, 100u8, 87u8, 224u8,
2786            ]);
2787            const ANONYMOUS: bool = false;
2788            #[allow(unused_variables)]
2789            #[inline]
2790            fn new(
2791                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
2792                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
2793            ) -> Self {
2794                Self {
2795                    previousOwner: topics.1,
2796                    newOwner: topics.2,
2797                }
2798            }
2799            #[inline]
2800            fn check_signature(
2801                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
2802            ) -> alloy_sol_types::Result<()> {
2803                if topics.0 != Self::SIGNATURE_HASH {
2804                    return Err(
2805                        alloy_sol_types::Error::invalid_event_signature_hash(
2806                            Self::SIGNATURE,
2807                            topics.0,
2808                            Self::SIGNATURE_HASH,
2809                        ),
2810                    );
2811                }
2812                Ok(())
2813            }
2814            #[inline]
2815            fn tokenize_body(&self) -> Self::DataToken<'_> {
2816                ()
2817            }
2818            #[inline]
2819            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
2820                (
2821                    Self::SIGNATURE_HASH.into(),
2822                    self.previousOwner.clone(),
2823                    self.newOwner.clone(),
2824                )
2825            }
2826            #[inline]
2827            fn encode_topics_raw(
2828                &self,
2829                out: &mut [alloy_sol_types::abi::token::WordToken],
2830            ) -> alloy_sol_types::Result<()> {
2831                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
2832                    return Err(alloy_sol_types::Error::Overrun);
2833                }
2834                out[0usize] = alloy_sol_types::abi::token::WordToken(
2835                    Self::SIGNATURE_HASH,
2836                );
2837                out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
2838                    &self.previousOwner,
2839                );
2840                out[2usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
2841                    &self.newOwner,
2842                );
2843                Ok(())
2844            }
2845        }
2846        #[automatically_derived]
2847        impl alloy_sol_types::private::IntoLogData for OwnershipTransferred {
2848            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
2849                From::from(self)
2850            }
2851            fn into_log_data(self) -> alloy_sol_types::private::LogData {
2852                From::from(&self)
2853            }
2854        }
2855        #[automatically_derived]
2856        impl From<&OwnershipTransferred> for alloy_sol_types::private::LogData {
2857            #[inline]
2858            fn from(this: &OwnershipTransferred) -> alloy_sol_types::private::LogData {
2859                alloy_sol_types::SolEvent::encode_log_data(this)
2860            }
2861        }
2862    };
2863    #[derive(Default, Debug, PartialEq, Eq, Hash)]
2864    /**Event with signature `Paused(address,uint256)` and selector `0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d`.
2865```solidity
2866event Paused(address indexed account, uint256 newPausedStatus);
2867```*/
2868    #[allow(
2869        non_camel_case_types,
2870        non_snake_case,
2871        clippy::pub_underscore_fields,
2872        clippy::style
2873    )]
2874    #[derive(Clone)]
2875    pub struct Paused {
2876        #[allow(missing_docs)]
2877        pub account: alloy::sol_types::private::Address,
2878        #[allow(missing_docs)]
2879        pub newPausedStatus: alloy::sol_types::private::primitives::aliases::U256,
2880    }
2881    #[allow(
2882        non_camel_case_types,
2883        non_snake_case,
2884        clippy::pub_underscore_fields,
2885        clippy::style
2886    )]
2887    const _: () = {
2888        use alloy::sol_types as alloy_sol_types;
2889        #[automatically_derived]
2890        impl alloy_sol_types::SolEvent for Paused {
2891            type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
2892            type DataToken<'a> = <Self::DataTuple<
2893                'a,
2894            > as alloy_sol_types::SolType>::Token<'a>;
2895            type TopicList = (
2896                alloy_sol_types::sol_data::FixedBytes<32>,
2897                alloy::sol_types::sol_data::Address,
2898            );
2899            const SIGNATURE: &'static str = "Paused(address,uint256)";
2900            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
2901                171u8, 64u8, 163u8, 116u8, 188u8, 81u8, 222u8, 55u8, 34u8, 0u8, 168u8,
2902                188u8, 152u8, 26u8, 248u8, 201u8, 236u8, 220u8, 8u8, 223u8, 218u8, 239u8,
2903                11u8, 182u8, 224u8, 159u8, 136u8, 243u8, 198u8, 22u8, 239u8, 61u8,
2904            ]);
2905            const ANONYMOUS: bool = false;
2906            #[allow(unused_variables)]
2907            #[inline]
2908            fn new(
2909                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
2910                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
2911            ) -> Self {
2912                Self {
2913                    account: topics.1,
2914                    newPausedStatus: data.0,
2915                }
2916            }
2917            #[inline]
2918            fn check_signature(
2919                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
2920            ) -> alloy_sol_types::Result<()> {
2921                if topics.0 != Self::SIGNATURE_HASH {
2922                    return Err(
2923                        alloy_sol_types::Error::invalid_event_signature_hash(
2924                            Self::SIGNATURE,
2925                            topics.0,
2926                            Self::SIGNATURE_HASH,
2927                        ),
2928                    );
2929                }
2930                Ok(())
2931            }
2932            #[inline]
2933            fn tokenize_body(&self) -> Self::DataToken<'_> {
2934                (
2935                    <alloy::sol_types::sol_data::Uint<
2936                        256,
2937                    > as alloy_sol_types::SolType>::tokenize(&self.newPausedStatus),
2938                )
2939            }
2940            #[inline]
2941            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
2942                (Self::SIGNATURE_HASH.into(), self.account.clone())
2943            }
2944            #[inline]
2945            fn encode_topics_raw(
2946                &self,
2947                out: &mut [alloy_sol_types::abi::token::WordToken],
2948            ) -> alloy_sol_types::Result<()> {
2949                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
2950                    return Err(alloy_sol_types::Error::Overrun);
2951                }
2952                out[0usize] = alloy_sol_types::abi::token::WordToken(
2953                    Self::SIGNATURE_HASH,
2954                );
2955                out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
2956                    &self.account,
2957                );
2958                Ok(())
2959            }
2960        }
2961        #[automatically_derived]
2962        impl alloy_sol_types::private::IntoLogData for Paused {
2963            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
2964                From::from(self)
2965            }
2966            fn into_log_data(self) -> alloy_sol_types::private::LogData {
2967                From::from(&self)
2968            }
2969        }
2970        #[automatically_derived]
2971        impl From<&Paused> for alloy_sol_types::private::LogData {
2972            #[inline]
2973            fn from(this: &Paused) -> alloy_sol_types::private::LogData {
2974                alloy_sol_types::SolEvent::encode_log_data(this)
2975            }
2976        }
2977    };
2978    #[derive(Default, Debug, PartialEq, Eq, Hash)]
2979    /**Event with signature `PectraForkTimestampSet(uint64)` and selector `0x1bc8f042a52db3a437620dea4548f2031fb2a16dd8d3b0b854295528dd2cdd33`.
2980```solidity
2981event PectraForkTimestampSet(uint64 newPectraForkTimestamp);
2982```*/
2983    #[allow(
2984        non_camel_case_types,
2985        non_snake_case,
2986        clippy::pub_underscore_fields,
2987        clippy::style
2988    )]
2989    #[derive(Clone)]
2990    pub struct PectraForkTimestampSet {
2991        #[allow(missing_docs)]
2992        pub newPectraForkTimestamp: u64,
2993    }
2994    #[allow(
2995        non_camel_case_types,
2996        non_snake_case,
2997        clippy::pub_underscore_fields,
2998        clippy::style
2999    )]
3000    const _: () = {
3001        use alloy::sol_types as alloy_sol_types;
3002        #[automatically_derived]
3003        impl alloy_sol_types::SolEvent for PectraForkTimestampSet {
3004            type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,);
3005            type DataToken<'a> = <Self::DataTuple<
3006                'a,
3007            > as alloy_sol_types::SolType>::Token<'a>;
3008            type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,);
3009            const SIGNATURE: &'static str = "PectraForkTimestampSet(uint64)";
3010            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
3011                27u8, 200u8, 240u8, 66u8, 165u8, 45u8, 179u8, 164u8, 55u8, 98u8, 13u8,
3012                234u8, 69u8, 72u8, 242u8, 3u8, 31u8, 178u8, 161u8, 109u8, 216u8, 211u8,
3013                176u8, 184u8, 84u8, 41u8, 85u8, 40u8, 221u8, 44u8, 221u8, 51u8,
3014            ]);
3015            const ANONYMOUS: bool = false;
3016            #[allow(unused_variables)]
3017            #[inline]
3018            fn new(
3019                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
3020                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
3021            ) -> Self {
3022                Self {
3023                    newPectraForkTimestamp: data.0,
3024                }
3025            }
3026            #[inline]
3027            fn check_signature(
3028                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
3029            ) -> alloy_sol_types::Result<()> {
3030                if topics.0 != Self::SIGNATURE_HASH {
3031                    return Err(
3032                        alloy_sol_types::Error::invalid_event_signature_hash(
3033                            Self::SIGNATURE,
3034                            topics.0,
3035                            Self::SIGNATURE_HASH,
3036                        ),
3037                    );
3038                }
3039                Ok(())
3040            }
3041            #[inline]
3042            fn tokenize_body(&self) -> Self::DataToken<'_> {
3043                (
3044                    <alloy::sol_types::sol_data::Uint<
3045                        64,
3046                    > as alloy_sol_types::SolType>::tokenize(
3047                        &self.newPectraForkTimestamp,
3048                    ),
3049                )
3050            }
3051            #[inline]
3052            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
3053                (Self::SIGNATURE_HASH.into(),)
3054            }
3055            #[inline]
3056            fn encode_topics_raw(
3057                &self,
3058                out: &mut [alloy_sol_types::abi::token::WordToken],
3059            ) -> alloy_sol_types::Result<()> {
3060                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
3061                    return Err(alloy_sol_types::Error::Overrun);
3062                }
3063                out[0usize] = alloy_sol_types::abi::token::WordToken(
3064                    Self::SIGNATURE_HASH,
3065                );
3066                Ok(())
3067            }
3068        }
3069        #[automatically_derived]
3070        impl alloy_sol_types::private::IntoLogData for PectraForkTimestampSet {
3071            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
3072                From::from(self)
3073            }
3074            fn into_log_data(self) -> alloy_sol_types::private::LogData {
3075                From::from(&self)
3076            }
3077        }
3078        #[automatically_derived]
3079        impl From<&PectraForkTimestampSet> for alloy_sol_types::private::LogData {
3080            #[inline]
3081            fn from(this: &PectraForkTimestampSet) -> alloy_sol_types::private::LogData {
3082                alloy_sol_types::SolEvent::encode_log_data(this)
3083            }
3084        }
3085    };
3086    #[derive(Default, Debug, PartialEq, Eq, Hash)]
3087    /**Event with signature `PodDeployed(address,address)` and selector `0x21c99d0db02213c32fff5b05cf0a718ab5f858802b91498f80d82270289d856a`.
3088```solidity
3089event PodDeployed(address indexed eigenPod, address indexed podOwner);
3090```*/
3091    #[allow(
3092        non_camel_case_types,
3093        non_snake_case,
3094        clippy::pub_underscore_fields,
3095        clippy::style
3096    )]
3097    #[derive(Clone)]
3098    pub struct PodDeployed {
3099        #[allow(missing_docs)]
3100        pub eigenPod: alloy::sol_types::private::Address,
3101        #[allow(missing_docs)]
3102        pub podOwner: alloy::sol_types::private::Address,
3103    }
3104    #[allow(
3105        non_camel_case_types,
3106        non_snake_case,
3107        clippy::pub_underscore_fields,
3108        clippy::style
3109    )]
3110    const _: () = {
3111        use alloy::sol_types as alloy_sol_types;
3112        #[automatically_derived]
3113        impl alloy_sol_types::SolEvent for PodDeployed {
3114            type DataTuple<'a> = ();
3115            type DataToken<'a> = <Self::DataTuple<
3116                'a,
3117            > as alloy_sol_types::SolType>::Token<'a>;
3118            type TopicList = (
3119                alloy_sol_types::sol_data::FixedBytes<32>,
3120                alloy::sol_types::sol_data::Address,
3121                alloy::sol_types::sol_data::Address,
3122            );
3123            const SIGNATURE: &'static str = "PodDeployed(address,address)";
3124            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
3125                33u8, 201u8, 157u8, 13u8, 176u8, 34u8, 19u8, 195u8, 47u8, 255u8, 91u8,
3126                5u8, 207u8, 10u8, 113u8, 138u8, 181u8, 248u8, 88u8, 128u8, 43u8, 145u8,
3127                73u8, 143u8, 128u8, 216u8, 34u8, 112u8, 40u8, 157u8, 133u8, 106u8,
3128            ]);
3129            const ANONYMOUS: bool = false;
3130            #[allow(unused_variables)]
3131            #[inline]
3132            fn new(
3133                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
3134                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
3135            ) -> Self {
3136                Self {
3137                    eigenPod: topics.1,
3138                    podOwner: topics.2,
3139                }
3140            }
3141            #[inline]
3142            fn check_signature(
3143                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
3144            ) -> alloy_sol_types::Result<()> {
3145                if topics.0 != Self::SIGNATURE_HASH {
3146                    return Err(
3147                        alloy_sol_types::Error::invalid_event_signature_hash(
3148                            Self::SIGNATURE,
3149                            topics.0,
3150                            Self::SIGNATURE_HASH,
3151                        ),
3152                    );
3153                }
3154                Ok(())
3155            }
3156            #[inline]
3157            fn tokenize_body(&self) -> Self::DataToken<'_> {
3158                ()
3159            }
3160            #[inline]
3161            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
3162                (
3163                    Self::SIGNATURE_HASH.into(),
3164                    self.eigenPod.clone(),
3165                    self.podOwner.clone(),
3166                )
3167            }
3168            #[inline]
3169            fn encode_topics_raw(
3170                &self,
3171                out: &mut [alloy_sol_types::abi::token::WordToken],
3172            ) -> alloy_sol_types::Result<()> {
3173                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
3174                    return Err(alloy_sol_types::Error::Overrun);
3175                }
3176                out[0usize] = alloy_sol_types::abi::token::WordToken(
3177                    Self::SIGNATURE_HASH,
3178                );
3179                out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
3180                    &self.eigenPod,
3181                );
3182                out[2usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
3183                    &self.podOwner,
3184                );
3185                Ok(())
3186            }
3187        }
3188        #[automatically_derived]
3189        impl alloy_sol_types::private::IntoLogData for PodDeployed {
3190            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
3191                From::from(self)
3192            }
3193            fn into_log_data(self) -> alloy_sol_types::private::LogData {
3194                From::from(&self)
3195            }
3196        }
3197        #[automatically_derived]
3198        impl From<&PodDeployed> for alloy_sol_types::private::LogData {
3199            #[inline]
3200            fn from(this: &PodDeployed) -> alloy_sol_types::private::LogData {
3201                alloy_sol_types::SolEvent::encode_log_data(this)
3202            }
3203        }
3204    };
3205    #[derive(Default, Debug, PartialEq, Eq, Hash)]
3206    /**Event with signature `PodSharesUpdated(address,int256)` and selector `0x4e2b791dedccd9fb30141b088cabf5c14a8912b52f59375c95c010700b8c6193`.
3207```solidity
3208event PodSharesUpdated(address indexed podOwner, int256 sharesDelta);
3209```*/
3210    #[allow(
3211        non_camel_case_types,
3212        non_snake_case,
3213        clippy::pub_underscore_fields,
3214        clippy::style
3215    )]
3216    #[derive(Clone)]
3217    pub struct PodSharesUpdated {
3218        #[allow(missing_docs)]
3219        pub podOwner: alloy::sol_types::private::Address,
3220        #[allow(missing_docs)]
3221        pub sharesDelta: alloy::sol_types::private::primitives::aliases::I256,
3222    }
3223    #[allow(
3224        non_camel_case_types,
3225        non_snake_case,
3226        clippy::pub_underscore_fields,
3227        clippy::style
3228    )]
3229    const _: () = {
3230        use alloy::sol_types as alloy_sol_types;
3231        #[automatically_derived]
3232        impl alloy_sol_types::SolEvent for PodSharesUpdated {
3233            type DataTuple<'a> = (alloy::sol_types::sol_data::Int<256>,);
3234            type DataToken<'a> = <Self::DataTuple<
3235                'a,
3236            > as alloy_sol_types::SolType>::Token<'a>;
3237            type TopicList = (
3238                alloy_sol_types::sol_data::FixedBytes<32>,
3239                alloy::sol_types::sol_data::Address,
3240            );
3241            const SIGNATURE: &'static str = "PodSharesUpdated(address,int256)";
3242            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
3243                78u8, 43u8, 121u8, 29u8, 237u8, 204u8, 217u8, 251u8, 48u8, 20u8, 27u8,
3244                8u8, 140u8, 171u8, 245u8, 193u8, 74u8, 137u8, 18u8, 181u8, 47u8, 89u8,
3245                55u8, 92u8, 149u8, 192u8, 16u8, 112u8, 11u8, 140u8, 97u8, 147u8,
3246            ]);
3247            const ANONYMOUS: bool = false;
3248            #[allow(unused_variables)]
3249            #[inline]
3250            fn new(
3251                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
3252                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
3253            ) -> Self {
3254                Self {
3255                    podOwner: topics.1,
3256                    sharesDelta: data.0,
3257                }
3258            }
3259            #[inline]
3260            fn check_signature(
3261                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
3262            ) -> alloy_sol_types::Result<()> {
3263                if topics.0 != Self::SIGNATURE_HASH {
3264                    return Err(
3265                        alloy_sol_types::Error::invalid_event_signature_hash(
3266                            Self::SIGNATURE,
3267                            topics.0,
3268                            Self::SIGNATURE_HASH,
3269                        ),
3270                    );
3271                }
3272                Ok(())
3273            }
3274            #[inline]
3275            fn tokenize_body(&self) -> Self::DataToken<'_> {
3276                (
3277                    <alloy::sol_types::sol_data::Int<
3278                        256,
3279                    > as alloy_sol_types::SolType>::tokenize(&self.sharesDelta),
3280                )
3281            }
3282            #[inline]
3283            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
3284                (Self::SIGNATURE_HASH.into(), self.podOwner.clone())
3285            }
3286            #[inline]
3287            fn encode_topics_raw(
3288                &self,
3289                out: &mut [alloy_sol_types::abi::token::WordToken],
3290            ) -> alloy_sol_types::Result<()> {
3291                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
3292                    return Err(alloy_sol_types::Error::Overrun);
3293                }
3294                out[0usize] = alloy_sol_types::abi::token::WordToken(
3295                    Self::SIGNATURE_HASH,
3296                );
3297                out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
3298                    &self.podOwner,
3299                );
3300                Ok(())
3301            }
3302        }
3303        #[automatically_derived]
3304        impl alloy_sol_types::private::IntoLogData for PodSharesUpdated {
3305            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
3306                From::from(self)
3307            }
3308            fn into_log_data(self) -> alloy_sol_types::private::LogData {
3309                From::from(&self)
3310            }
3311        }
3312        #[automatically_derived]
3313        impl From<&PodSharesUpdated> for alloy_sol_types::private::LogData {
3314            #[inline]
3315            fn from(this: &PodSharesUpdated) -> alloy_sol_types::private::LogData {
3316                alloy_sol_types::SolEvent::encode_log_data(this)
3317            }
3318        }
3319    };
3320    #[derive(Default, Debug, PartialEq, Eq, Hash)]
3321    /**Event with signature `ProofTimestampSetterSet(address)` and selector `0x7025c71a9fe60d709e71b377dc5f7c72c3e1d8539f8022574254e736ceca01e5`.
3322```solidity
3323event ProofTimestampSetterSet(address newProofTimestampSetter);
3324```*/
3325    #[allow(
3326        non_camel_case_types,
3327        non_snake_case,
3328        clippy::pub_underscore_fields,
3329        clippy::style
3330    )]
3331    #[derive(Clone)]
3332    pub struct ProofTimestampSetterSet {
3333        #[allow(missing_docs)]
3334        pub newProofTimestampSetter: alloy::sol_types::private::Address,
3335    }
3336    #[allow(
3337        non_camel_case_types,
3338        non_snake_case,
3339        clippy::pub_underscore_fields,
3340        clippy::style
3341    )]
3342    const _: () = {
3343        use alloy::sol_types as alloy_sol_types;
3344        #[automatically_derived]
3345        impl alloy_sol_types::SolEvent for ProofTimestampSetterSet {
3346            type DataTuple<'a> = (alloy::sol_types::sol_data::Address,);
3347            type DataToken<'a> = <Self::DataTuple<
3348                'a,
3349            > as alloy_sol_types::SolType>::Token<'a>;
3350            type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,);
3351            const SIGNATURE: &'static str = "ProofTimestampSetterSet(address)";
3352            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
3353                112u8, 37u8, 199u8, 26u8, 159u8, 230u8, 13u8, 112u8, 158u8, 113u8, 179u8,
3354                119u8, 220u8, 95u8, 124u8, 114u8, 195u8, 225u8, 216u8, 83u8, 159u8,
3355                128u8, 34u8, 87u8, 66u8, 84u8, 231u8, 54u8, 206u8, 202u8, 1u8, 229u8,
3356            ]);
3357            const ANONYMOUS: bool = false;
3358            #[allow(unused_variables)]
3359            #[inline]
3360            fn new(
3361                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
3362                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
3363            ) -> Self {
3364                Self {
3365                    newProofTimestampSetter: data.0,
3366                }
3367            }
3368            #[inline]
3369            fn check_signature(
3370                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
3371            ) -> alloy_sol_types::Result<()> {
3372                if topics.0 != Self::SIGNATURE_HASH {
3373                    return Err(
3374                        alloy_sol_types::Error::invalid_event_signature_hash(
3375                            Self::SIGNATURE,
3376                            topics.0,
3377                            Self::SIGNATURE_HASH,
3378                        ),
3379                    );
3380                }
3381                Ok(())
3382            }
3383            #[inline]
3384            fn tokenize_body(&self) -> Self::DataToken<'_> {
3385                (
3386                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
3387                        &self.newProofTimestampSetter,
3388                    ),
3389                )
3390            }
3391            #[inline]
3392            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
3393                (Self::SIGNATURE_HASH.into(),)
3394            }
3395            #[inline]
3396            fn encode_topics_raw(
3397                &self,
3398                out: &mut [alloy_sol_types::abi::token::WordToken],
3399            ) -> alloy_sol_types::Result<()> {
3400                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
3401                    return Err(alloy_sol_types::Error::Overrun);
3402                }
3403                out[0usize] = alloy_sol_types::abi::token::WordToken(
3404                    Self::SIGNATURE_HASH,
3405                );
3406                Ok(())
3407            }
3408        }
3409        #[automatically_derived]
3410        impl alloy_sol_types::private::IntoLogData for ProofTimestampSetterSet {
3411            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
3412                From::from(self)
3413            }
3414            fn into_log_data(self) -> alloy_sol_types::private::LogData {
3415                From::from(&self)
3416            }
3417        }
3418        #[automatically_derived]
3419        impl From<&ProofTimestampSetterSet> for alloy_sol_types::private::LogData {
3420            #[inline]
3421            fn from(
3422                this: &ProofTimestampSetterSet,
3423            ) -> alloy_sol_types::private::LogData {
3424                alloy_sol_types::SolEvent::encode_log_data(this)
3425            }
3426        }
3427    };
3428    #[derive(Default, Debug, PartialEq, Eq, Hash)]
3429    /**Event with signature `Unpaused(address,uint256)` and selector `0x3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c`.
3430```solidity
3431event Unpaused(address indexed account, uint256 newPausedStatus);
3432```*/
3433    #[allow(
3434        non_camel_case_types,
3435        non_snake_case,
3436        clippy::pub_underscore_fields,
3437        clippy::style
3438    )]
3439    #[derive(Clone)]
3440    pub struct Unpaused {
3441        #[allow(missing_docs)]
3442        pub account: alloy::sol_types::private::Address,
3443        #[allow(missing_docs)]
3444        pub newPausedStatus: alloy::sol_types::private::primitives::aliases::U256,
3445    }
3446    #[allow(
3447        non_camel_case_types,
3448        non_snake_case,
3449        clippy::pub_underscore_fields,
3450        clippy::style
3451    )]
3452    const _: () = {
3453        use alloy::sol_types as alloy_sol_types;
3454        #[automatically_derived]
3455        impl alloy_sol_types::SolEvent for Unpaused {
3456            type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
3457            type DataToken<'a> = <Self::DataTuple<
3458                'a,
3459            > as alloy_sol_types::SolType>::Token<'a>;
3460            type TopicList = (
3461                alloy_sol_types::sol_data::FixedBytes<32>,
3462                alloy::sol_types::sol_data::Address,
3463            );
3464            const SIGNATURE: &'static str = "Unpaused(address,uint256)";
3465            const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
3466                53u8, 130u8, 209u8, 130u8, 142u8, 38u8, 191u8, 86u8, 189u8, 128u8, 21u8,
3467                2u8, 188u8, 2u8, 26u8, 192u8, 188u8, 138u8, 251u8, 87u8, 200u8, 38u8,
3468                228u8, 152u8, 107u8, 69u8, 89u8, 60u8, 143u8, 173u8, 56u8, 156u8,
3469            ]);
3470            const ANONYMOUS: bool = false;
3471            #[allow(unused_variables)]
3472            #[inline]
3473            fn new(
3474                topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
3475                data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
3476            ) -> Self {
3477                Self {
3478                    account: topics.1,
3479                    newPausedStatus: data.0,
3480                }
3481            }
3482            #[inline]
3483            fn check_signature(
3484                topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
3485            ) -> alloy_sol_types::Result<()> {
3486                if topics.0 != Self::SIGNATURE_HASH {
3487                    return Err(
3488                        alloy_sol_types::Error::invalid_event_signature_hash(
3489                            Self::SIGNATURE,
3490                            topics.0,
3491                            Self::SIGNATURE_HASH,
3492                        ),
3493                    );
3494                }
3495                Ok(())
3496            }
3497            #[inline]
3498            fn tokenize_body(&self) -> Self::DataToken<'_> {
3499                (
3500                    <alloy::sol_types::sol_data::Uint<
3501                        256,
3502                    > as alloy_sol_types::SolType>::tokenize(&self.newPausedStatus),
3503                )
3504            }
3505            #[inline]
3506            fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
3507                (Self::SIGNATURE_HASH.into(), self.account.clone())
3508            }
3509            #[inline]
3510            fn encode_topics_raw(
3511                &self,
3512                out: &mut [alloy_sol_types::abi::token::WordToken],
3513            ) -> alloy_sol_types::Result<()> {
3514                if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
3515                    return Err(alloy_sol_types::Error::Overrun);
3516                }
3517                out[0usize] = alloy_sol_types::abi::token::WordToken(
3518                    Self::SIGNATURE_HASH,
3519                );
3520                out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
3521                    &self.account,
3522                );
3523                Ok(())
3524            }
3525        }
3526        #[automatically_derived]
3527        impl alloy_sol_types::private::IntoLogData for Unpaused {
3528            fn to_log_data(&self) -> alloy_sol_types::private::LogData {
3529                From::from(self)
3530            }
3531            fn into_log_data(self) -> alloy_sol_types::private::LogData {
3532                From::from(&self)
3533            }
3534        }
3535        #[automatically_derived]
3536        impl From<&Unpaused> for alloy_sol_types::private::LogData {
3537            #[inline]
3538            fn from(this: &Unpaused) -> alloy_sol_types::private::LogData {
3539                alloy_sol_types::SolEvent::encode_log_data(this)
3540            }
3541        }
3542    };
3543    /**Constructor`.
3544```solidity
3545constructor(address _ethPOS, address _eigenPodBeacon, address _delegationManager, address _pauserRegistry, string _version);
3546```*/
3547    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3548    #[derive(Clone)]
3549    pub struct constructorCall {
3550        #[allow(missing_docs)]
3551        pub _ethPOS: alloy::sol_types::private::Address,
3552        #[allow(missing_docs)]
3553        pub _eigenPodBeacon: alloy::sol_types::private::Address,
3554        #[allow(missing_docs)]
3555        pub _delegationManager: alloy::sol_types::private::Address,
3556        #[allow(missing_docs)]
3557        pub _pauserRegistry: alloy::sol_types::private::Address,
3558        #[allow(missing_docs)]
3559        pub _version: alloy::sol_types::private::String,
3560    }
3561    const _: () = {
3562        use alloy::sol_types as alloy_sol_types;
3563        {
3564            #[doc(hidden)]
3565            type UnderlyingSolTuple<'a> = (
3566                alloy::sol_types::sol_data::Address,
3567                alloy::sol_types::sol_data::Address,
3568                alloy::sol_types::sol_data::Address,
3569                alloy::sol_types::sol_data::Address,
3570                alloy::sol_types::sol_data::String,
3571            );
3572            #[doc(hidden)]
3573            type UnderlyingRustTuple<'a> = (
3574                alloy::sol_types::private::Address,
3575                alloy::sol_types::private::Address,
3576                alloy::sol_types::private::Address,
3577                alloy::sol_types::private::Address,
3578                alloy::sol_types::private::String,
3579            );
3580            #[cfg(test)]
3581            #[allow(dead_code, unreachable_patterns)]
3582            fn _type_assertion(
3583                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3584            ) {
3585                match _t {
3586                    alloy_sol_types::private::AssertTypeEq::<
3587                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3588                    >(_) => {}
3589                }
3590            }
3591            #[automatically_derived]
3592            #[doc(hidden)]
3593            impl ::core::convert::From<constructorCall> for UnderlyingRustTuple<'_> {
3594                fn from(value: constructorCall) -> Self {
3595                    (
3596                        value._ethPOS,
3597                        value._eigenPodBeacon,
3598                        value._delegationManager,
3599                        value._pauserRegistry,
3600                        value._version,
3601                    )
3602                }
3603            }
3604            #[automatically_derived]
3605            #[doc(hidden)]
3606            impl ::core::convert::From<UnderlyingRustTuple<'_>> for constructorCall {
3607                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3608                    Self {
3609                        _ethPOS: tuple.0,
3610                        _eigenPodBeacon: tuple.1,
3611                        _delegationManager: tuple.2,
3612                        _pauserRegistry: tuple.3,
3613                        _version: tuple.4,
3614                    }
3615                }
3616            }
3617        }
3618        #[automatically_derived]
3619        impl alloy_sol_types::SolConstructor for constructorCall {
3620            type Parameters<'a> = (
3621                alloy::sol_types::sol_data::Address,
3622                alloy::sol_types::sol_data::Address,
3623                alloy::sol_types::sol_data::Address,
3624                alloy::sol_types::sol_data::Address,
3625                alloy::sol_types::sol_data::String,
3626            );
3627            type Token<'a> = <Self::Parameters<
3628                'a,
3629            > as alloy_sol_types::SolType>::Token<'a>;
3630            #[inline]
3631            fn new<'a>(
3632                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3633            ) -> Self {
3634                tuple.into()
3635            }
3636            #[inline]
3637            fn tokenize(&self) -> Self::Token<'_> {
3638                (
3639                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
3640                        &self._ethPOS,
3641                    ),
3642                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
3643                        &self._eigenPodBeacon,
3644                    ),
3645                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
3646                        &self._delegationManager,
3647                    ),
3648                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
3649                        &self._pauserRegistry,
3650                    ),
3651                    <alloy::sol_types::sol_data::String as alloy_sol_types::SolType>::tokenize(
3652                        &self._version,
3653                    ),
3654                )
3655            }
3656        }
3657    };
3658    #[derive(Default, Debug, PartialEq, Eq, Hash)]
3659    /**Function with signature `addShares(address,address,uint256)` and selector `0x50ff7225`.
3660```solidity
3661function addShares(address staker, address strategy, uint256 shares) external returns (uint256, uint256);
3662```*/
3663    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3664    #[derive(Clone)]
3665    pub struct addSharesCall {
3666        #[allow(missing_docs)]
3667        pub staker: alloy::sol_types::private::Address,
3668        #[allow(missing_docs)]
3669        pub strategy: alloy::sol_types::private::Address,
3670        #[allow(missing_docs)]
3671        pub shares: alloy::sol_types::private::primitives::aliases::U256,
3672    }
3673    #[derive(Default, Debug, PartialEq, Eq, Hash)]
3674    ///Container type for the return parameters of the [`addShares(address,address,uint256)`](addSharesCall) function.
3675    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3676    #[derive(Clone)]
3677    pub struct addSharesReturn {
3678        #[allow(missing_docs)]
3679        pub _0: alloy::sol_types::private::primitives::aliases::U256,
3680        #[allow(missing_docs)]
3681        pub _1: alloy::sol_types::private::primitives::aliases::U256,
3682    }
3683    #[allow(
3684        non_camel_case_types,
3685        non_snake_case,
3686        clippy::pub_underscore_fields,
3687        clippy::style
3688    )]
3689    const _: () = {
3690        use alloy::sol_types as alloy_sol_types;
3691        {
3692            #[doc(hidden)]
3693            type UnderlyingSolTuple<'a> = (
3694                alloy::sol_types::sol_data::Address,
3695                alloy::sol_types::sol_data::Address,
3696                alloy::sol_types::sol_data::Uint<256>,
3697            );
3698            #[doc(hidden)]
3699            type UnderlyingRustTuple<'a> = (
3700                alloy::sol_types::private::Address,
3701                alloy::sol_types::private::Address,
3702                alloy::sol_types::private::primitives::aliases::U256,
3703            );
3704            #[cfg(test)]
3705            #[allow(dead_code, unreachable_patterns)]
3706            fn _type_assertion(
3707                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3708            ) {
3709                match _t {
3710                    alloy_sol_types::private::AssertTypeEq::<
3711                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3712                    >(_) => {}
3713                }
3714            }
3715            #[automatically_derived]
3716            #[doc(hidden)]
3717            impl ::core::convert::From<addSharesCall> for UnderlyingRustTuple<'_> {
3718                fn from(value: addSharesCall) -> Self {
3719                    (value.staker, value.strategy, value.shares)
3720                }
3721            }
3722            #[automatically_derived]
3723            #[doc(hidden)]
3724            impl ::core::convert::From<UnderlyingRustTuple<'_>> for addSharesCall {
3725                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3726                    Self {
3727                        staker: tuple.0,
3728                        strategy: tuple.1,
3729                        shares: tuple.2,
3730                    }
3731                }
3732            }
3733        }
3734        {
3735            #[doc(hidden)]
3736            type UnderlyingSolTuple<'a> = (
3737                alloy::sol_types::sol_data::Uint<256>,
3738                alloy::sol_types::sol_data::Uint<256>,
3739            );
3740            #[doc(hidden)]
3741            type UnderlyingRustTuple<'a> = (
3742                alloy::sol_types::private::primitives::aliases::U256,
3743                alloy::sol_types::private::primitives::aliases::U256,
3744            );
3745            #[cfg(test)]
3746            #[allow(dead_code, unreachable_patterns)]
3747            fn _type_assertion(
3748                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3749            ) {
3750                match _t {
3751                    alloy_sol_types::private::AssertTypeEq::<
3752                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3753                    >(_) => {}
3754                }
3755            }
3756            #[automatically_derived]
3757            #[doc(hidden)]
3758            impl ::core::convert::From<addSharesReturn> for UnderlyingRustTuple<'_> {
3759                fn from(value: addSharesReturn) -> Self {
3760                    (value._0, value._1)
3761                }
3762            }
3763            #[automatically_derived]
3764            #[doc(hidden)]
3765            impl ::core::convert::From<UnderlyingRustTuple<'_>> for addSharesReturn {
3766                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3767                    Self { _0: tuple.0, _1: tuple.1 }
3768                }
3769            }
3770        }
3771        #[automatically_derived]
3772        impl alloy_sol_types::SolCall for addSharesCall {
3773            type Parameters<'a> = (
3774                alloy::sol_types::sol_data::Address,
3775                alloy::sol_types::sol_data::Address,
3776                alloy::sol_types::sol_data::Uint<256>,
3777            );
3778            type Token<'a> = <Self::Parameters<
3779                'a,
3780            > as alloy_sol_types::SolType>::Token<'a>;
3781            type Return = addSharesReturn;
3782            type ReturnTuple<'a> = (
3783                alloy::sol_types::sol_data::Uint<256>,
3784                alloy::sol_types::sol_data::Uint<256>,
3785            );
3786            type ReturnToken<'a> = <Self::ReturnTuple<
3787                'a,
3788            > as alloy_sol_types::SolType>::Token<'a>;
3789            const SIGNATURE: &'static str = "addShares(address,address,uint256)";
3790            const SELECTOR: [u8; 4] = [80u8, 255u8, 114u8, 37u8];
3791            #[inline]
3792            fn new<'a>(
3793                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3794            ) -> Self {
3795                tuple.into()
3796            }
3797            #[inline]
3798            fn tokenize(&self) -> Self::Token<'_> {
3799                (
3800                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
3801                        &self.staker,
3802                    ),
3803                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
3804                        &self.strategy,
3805                    ),
3806                    <alloy::sol_types::sol_data::Uint<
3807                        256,
3808                    > as alloy_sol_types::SolType>::tokenize(&self.shares),
3809                )
3810            }
3811            #[inline]
3812            fn abi_decode_returns(
3813                data: &[u8],
3814                validate: bool,
3815            ) -> alloy_sol_types::Result<Self::Return> {
3816                <Self::ReturnTuple<
3817                    '_,
3818                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
3819                    .map(Into::into)
3820            }
3821        }
3822    };
3823    #[derive(Default, Debug, PartialEq, Eq, Hash)]
3824    /**Function with signature `beaconChainETHStrategy()` and selector `0x9104c319`.
3825```solidity
3826function beaconChainETHStrategy() external view returns (address);
3827```*/
3828    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3829    #[derive(Clone)]
3830    pub struct beaconChainETHStrategyCall {}
3831    #[derive(Default, Debug, PartialEq, Eq, Hash)]
3832    ///Container type for the return parameters of the [`beaconChainETHStrategy()`](beaconChainETHStrategyCall) function.
3833    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3834    #[derive(Clone)]
3835    pub struct beaconChainETHStrategyReturn {
3836        #[allow(missing_docs)]
3837        pub _0: alloy::sol_types::private::Address,
3838    }
3839    #[allow(
3840        non_camel_case_types,
3841        non_snake_case,
3842        clippy::pub_underscore_fields,
3843        clippy::style
3844    )]
3845    const _: () = {
3846        use alloy::sol_types as alloy_sol_types;
3847        {
3848            #[doc(hidden)]
3849            type UnderlyingSolTuple<'a> = ();
3850            #[doc(hidden)]
3851            type UnderlyingRustTuple<'a> = ();
3852            #[cfg(test)]
3853            #[allow(dead_code, unreachable_patterns)]
3854            fn _type_assertion(
3855                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3856            ) {
3857                match _t {
3858                    alloy_sol_types::private::AssertTypeEq::<
3859                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3860                    >(_) => {}
3861                }
3862            }
3863            #[automatically_derived]
3864            #[doc(hidden)]
3865            impl ::core::convert::From<beaconChainETHStrategyCall>
3866            for UnderlyingRustTuple<'_> {
3867                fn from(value: beaconChainETHStrategyCall) -> Self {
3868                    ()
3869                }
3870            }
3871            #[automatically_derived]
3872            #[doc(hidden)]
3873            impl ::core::convert::From<UnderlyingRustTuple<'_>>
3874            for beaconChainETHStrategyCall {
3875                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3876                    Self {}
3877                }
3878            }
3879        }
3880        {
3881            #[doc(hidden)]
3882            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
3883            #[doc(hidden)]
3884            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
3885            #[cfg(test)]
3886            #[allow(dead_code, unreachable_patterns)]
3887            fn _type_assertion(
3888                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3889            ) {
3890                match _t {
3891                    alloy_sol_types::private::AssertTypeEq::<
3892                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3893                    >(_) => {}
3894                }
3895            }
3896            #[automatically_derived]
3897            #[doc(hidden)]
3898            impl ::core::convert::From<beaconChainETHStrategyReturn>
3899            for UnderlyingRustTuple<'_> {
3900                fn from(value: beaconChainETHStrategyReturn) -> Self {
3901                    (value._0,)
3902                }
3903            }
3904            #[automatically_derived]
3905            #[doc(hidden)]
3906            impl ::core::convert::From<UnderlyingRustTuple<'_>>
3907            for beaconChainETHStrategyReturn {
3908                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3909                    Self { _0: tuple.0 }
3910                }
3911            }
3912        }
3913        #[automatically_derived]
3914        impl alloy_sol_types::SolCall for beaconChainETHStrategyCall {
3915            type Parameters<'a> = ();
3916            type Token<'a> = <Self::Parameters<
3917                'a,
3918            > as alloy_sol_types::SolType>::Token<'a>;
3919            type Return = beaconChainETHStrategyReturn;
3920            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
3921            type ReturnToken<'a> = <Self::ReturnTuple<
3922                'a,
3923            > as alloy_sol_types::SolType>::Token<'a>;
3924            const SIGNATURE: &'static str = "beaconChainETHStrategy()";
3925            const SELECTOR: [u8; 4] = [145u8, 4u8, 195u8, 25u8];
3926            #[inline]
3927            fn new<'a>(
3928                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3929            ) -> Self {
3930                tuple.into()
3931            }
3932            #[inline]
3933            fn tokenize(&self) -> Self::Token<'_> {
3934                ()
3935            }
3936            #[inline]
3937            fn abi_decode_returns(
3938                data: &[u8],
3939                validate: bool,
3940            ) -> alloy_sol_types::Result<Self::Return> {
3941                <Self::ReturnTuple<
3942                    '_,
3943                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
3944                    .map(Into::into)
3945            }
3946        }
3947    };
3948    #[derive(Default, Debug, PartialEq, Eq, Hash)]
3949    /**Function with signature `beaconChainSlashingFactor(address)` and selector `0xa3d75e09`.
3950```solidity
3951function beaconChainSlashingFactor(address podOwner) external view returns (uint64);
3952```*/
3953    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3954    #[derive(Clone)]
3955    pub struct beaconChainSlashingFactorCall {
3956        #[allow(missing_docs)]
3957        pub podOwner: alloy::sol_types::private::Address,
3958    }
3959    #[derive(Default, Debug, PartialEq, Eq, Hash)]
3960    ///Container type for the return parameters of the [`beaconChainSlashingFactor(address)`](beaconChainSlashingFactorCall) function.
3961    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3962    #[derive(Clone)]
3963    pub struct beaconChainSlashingFactorReturn {
3964        #[allow(missing_docs)]
3965        pub _0: u64,
3966    }
3967    #[allow(
3968        non_camel_case_types,
3969        non_snake_case,
3970        clippy::pub_underscore_fields,
3971        clippy::style
3972    )]
3973    const _: () = {
3974        use alloy::sol_types as alloy_sol_types;
3975        {
3976            #[doc(hidden)]
3977            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
3978            #[doc(hidden)]
3979            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
3980            #[cfg(test)]
3981            #[allow(dead_code, unreachable_patterns)]
3982            fn _type_assertion(
3983                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3984            ) {
3985                match _t {
3986                    alloy_sol_types::private::AssertTypeEq::<
3987                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3988                    >(_) => {}
3989                }
3990            }
3991            #[automatically_derived]
3992            #[doc(hidden)]
3993            impl ::core::convert::From<beaconChainSlashingFactorCall>
3994            for UnderlyingRustTuple<'_> {
3995                fn from(value: beaconChainSlashingFactorCall) -> Self {
3996                    (value.podOwner,)
3997                }
3998            }
3999            #[automatically_derived]
4000            #[doc(hidden)]
4001            impl ::core::convert::From<UnderlyingRustTuple<'_>>
4002            for beaconChainSlashingFactorCall {
4003                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4004                    Self { podOwner: tuple.0 }
4005                }
4006            }
4007        }
4008        {
4009            #[doc(hidden)]
4010            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,);
4011            #[doc(hidden)]
4012            type UnderlyingRustTuple<'a> = (u64,);
4013            #[cfg(test)]
4014            #[allow(dead_code, unreachable_patterns)]
4015            fn _type_assertion(
4016                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4017            ) {
4018                match _t {
4019                    alloy_sol_types::private::AssertTypeEq::<
4020                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4021                    >(_) => {}
4022                }
4023            }
4024            #[automatically_derived]
4025            #[doc(hidden)]
4026            impl ::core::convert::From<beaconChainSlashingFactorReturn>
4027            for UnderlyingRustTuple<'_> {
4028                fn from(value: beaconChainSlashingFactorReturn) -> Self {
4029                    (value._0,)
4030                }
4031            }
4032            #[automatically_derived]
4033            #[doc(hidden)]
4034            impl ::core::convert::From<UnderlyingRustTuple<'_>>
4035            for beaconChainSlashingFactorReturn {
4036                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4037                    Self { _0: tuple.0 }
4038                }
4039            }
4040        }
4041        #[automatically_derived]
4042        impl alloy_sol_types::SolCall for beaconChainSlashingFactorCall {
4043            type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
4044            type Token<'a> = <Self::Parameters<
4045                'a,
4046            > as alloy_sol_types::SolType>::Token<'a>;
4047            type Return = beaconChainSlashingFactorReturn;
4048            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,);
4049            type ReturnToken<'a> = <Self::ReturnTuple<
4050                'a,
4051            > as alloy_sol_types::SolType>::Token<'a>;
4052            const SIGNATURE: &'static str = "beaconChainSlashingFactor(address)";
4053            const SELECTOR: [u8; 4] = [163u8, 215u8, 94u8, 9u8];
4054            #[inline]
4055            fn new<'a>(
4056                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4057            ) -> Self {
4058                tuple.into()
4059            }
4060            #[inline]
4061            fn tokenize(&self) -> Self::Token<'_> {
4062                (
4063                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
4064                        &self.podOwner,
4065                    ),
4066                )
4067            }
4068            #[inline]
4069            fn abi_decode_returns(
4070                data: &[u8],
4071                validate: bool,
4072            ) -> alloy_sol_types::Result<Self::Return> {
4073                <Self::ReturnTuple<
4074                    '_,
4075                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
4076                    .map(Into::into)
4077            }
4078        }
4079    };
4080    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4081    /**Function with signature `burnableETHShares()` and selector `0xf5d4fed3`.
4082```solidity
4083function burnableETHShares() external view returns (uint256);
4084```*/
4085    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4086    #[derive(Clone)]
4087    pub struct burnableETHSharesCall {}
4088    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4089    ///Container type for the return parameters of the [`burnableETHShares()`](burnableETHSharesCall) function.
4090    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4091    #[derive(Clone)]
4092    pub struct burnableETHSharesReturn {
4093        #[allow(missing_docs)]
4094        pub _0: alloy::sol_types::private::primitives::aliases::U256,
4095    }
4096    #[allow(
4097        non_camel_case_types,
4098        non_snake_case,
4099        clippy::pub_underscore_fields,
4100        clippy::style
4101    )]
4102    const _: () = {
4103        use alloy::sol_types as alloy_sol_types;
4104        {
4105            #[doc(hidden)]
4106            type UnderlyingSolTuple<'a> = ();
4107            #[doc(hidden)]
4108            type UnderlyingRustTuple<'a> = ();
4109            #[cfg(test)]
4110            #[allow(dead_code, unreachable_patterns)]
4111            fn _type_assertion(
4112                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4113            ) {
4114                match _t {
4115                    alloy_sol_types::private::AssertTypeEq::<
4116                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4117                    >(_) => {}
4118                }
4119            }
4120            #[automatically_derived]
4121            #[doc(hidden)]
4122            impl ::core::convert::From<burnableETHSharesCall>
4123            for UnderlyingRustTuple<'_> {
4124                fn from(value: burnableETHSharesCall) -> Self {
4125                    ()
4126                }
4127            }
4128            #[automatically_derived]
4129            #[doc(hidden)]
4130            impl ::core::convert::From<UnderlyingRustTuple<'_>>
4131            for burnableETHSharesCall {
4132                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4133                    Self {}
4134                }
4135            }
4136        }
4137        {
4138            #[doc(hidden)]
4139            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4140            #[doc(hidden)]
4141            type UnderlyingRustTuple<'a> = (
4142                alloy::sol_types::private::primitives::aliases::U256,
4143            );
4144            #[cfg(test)]
4145            #[allow(dead_code, unreachable_patterns)]
4146            fn _type_assertion(
4147                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4148            ) {
4149                match _t {
4150                    alloy_sol_types::private::AssertTypeEq::<
4151                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4152                    >(_) => {}
4153                }
4154            }
4155            #[automatically_derived]
4156            #[doc(hidden)]
4157            impl ::core::convert::From<burnableETHSharesReturn>
4158            for UnderlyingRustTuple<'_> {
4159                fn from(value: burnableETHSharesReturn) -> Self {
4160                    (value._0,)
4161                }
4162            }
4163            #[automatically_derived]
4164            #[doc(hidden)]
4165            impl ::core::convert::From<UnderlyingRustTuple<'_>>
4166            for burnableETHSharesReturn {
4167                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4168                    Self { _0: tuple.0 }
4169                }
4170            }
4171        }
4172        #[automatically_derived]
4173        impl alloy_sol_types::SolCall for burnableETHSharesCall {
4174            type Parameters<'a> = ();
4175            type Token<'a> = <Self::Parameters<
4176                'a,
4177            > as alloy_sol_types::SolType>::Token<'a>;
4178            type Return = burnableETHSharesReturn;
4179            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4180            type ReturnToken<'a> = <Self::ReturnTuple<
4181                'a,
4182            > as alloy_sol_types::SolType>::Token<'a>;
4183            const SIGNATURE: &'static str = "burnableETHShares()";
4184            const SELECTOR: [u8; 4] = [245u8, 212u8, 254u8, 211u8];
4185            #[inline]
4186            fn new<'a>(
4187                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4188            ) -> Self {
4189                tuple.into()
4190            }
4191            #[inline]
4192            fn tokenize(&self) -> Self::Token<'_> {
4193                ()
4194            }
4195            #[inline]
4196            fn abi_decode_returns(
4197                data: &[u8],
4198                validate: bool,
4199            ) -> alloy_sol_types::Result<Self::Return> {
4200                <Self::ReturnTuple<
4201                    '_,
4202                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
4203                    .map(Into::into)
4204            }
4205        }
4206    };
4207    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4208    /**Function with signature `createPod()` and selector `0x84d81062`.
4209```solidity
4210function createPod() external returns (address);
4211```*/
4212    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4213    #[derive(Clone)]
4214    pub struct createPodCall {}
4215    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4216    ///Container type for the return parameters of the [`createPod()`](createPodCall) function.
4217    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4218    #[derive(Clone)]
4219    pub struct createPodReturn {
4220        #[allow(missing_docs)]
4221        pub _0: alloy::sol_types::private::Address,
4222    }
4223    #[allow(
4224        non_camel_case_types,
4225        non_snake_case,
4226        clippy::pub_underscore_fields,
4227        clippy::style
4228    )]
4229    const _: () = {
4230        use alloy::sol_types as alloy_sol_types;
4231        {
4232            #[doc(hidden)]
4233            type UnderlyingSolTuple<'a> = ();
4234            #[doc(hidden)]
4235            type UnderlyingRustTuple<'a> = ();
4236            #[cfg(test)]
4237            #[allow(dead_code, unreachable_patterns)]
4238            fn _type_assertion(
4239                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4240            ) {
4241                match _t {
4242                    alloy_sol_types::private::AssertTypeEq::<
4243                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4244                    >(_) => {}
4245                }
4246            }
4247            #[automatically_derived]
4248            #[doc(hidden)]
4249            impl ::core::convert::From<createPodCall> for UnderlyingRustTuple<'_> {
4250                fn from(value: createPodCall) -> Self {
4251                    ()
4252                }
4253            }
4254            #[automatically_derived]
4255            #[doc(hidden)]
4256            impl ::core::convert::From<UnderlyingRustTuple<'_>> for createPodCall {
4257                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4258                    Self {}
4259                }
4260            }
4261        }
4262        {
4263            #[doc(hidden)]
4264            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
4265            #[doc(hidden)]
4266            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
4267            #[cfg(test)]
4268            #[allow(dead_code, unreachable_patterns)]
4269            fn _type_assertion(
4270                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4271            ) {
4272                match _t {
4273                    alloy_sol_types::private::AssertTypeEq::<
4274                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4275                    >(_) => {}
4276                }
4277            }
4278            #[automatically_derived]
4279            #[doc(hidden)]
4280            impl ::core::convert::From<createPodReturn> for UnderlyingRustTuple<'_> {
4281                fn from(value: createPodReturn) -> Self {
4282                    (value._0,)
4283                }
4284            }
4285            #[automatically_derived]
4286            #[doc(hidden)]
4287            impl ::core::convert::From<UnderlyingRustTuple<'_>> for createPodReturn {
4288                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4289                    Self { _0: tuple.0 }
4290                }
4291            }
4292        }
4293        #[automatically_derived]
4294        impl alloy_sol_types::SolCall for createPodCall {
4295            type Parameters<'a> = ();
4296            type Token<'a> = <Self::Parameters<
4297                'a,
4298            > as alloy_sol_types::SolType>::Token<'a>;
4299            type Return = createPodReturn;
4300            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
4301            type ReturnToken<'a> = <Self::ReturnTuple<
4302                'a,
4303            > as alloy_sol_types::SolType>::Token<'a>;
4304            const SIGNATURE: &'static str = "createPod()";
4305            const SELECTOR: [u8; 4] = [132u8, 216u8, 16u8, 98u8];
4306            #[inline]
4307            fn new<'a>(
4308                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4309            ) -> Self {
4310                tuple.into()
4311            }
4312            #[inline]
4313            fn tokenize(&self) -> Self::Token<'_> {
4314                ()
4315            }
4316            #[inline]
4317            fn abi_decode_returns(
4318                data: &[u8],
4319                validate: bool,
4320            ) -> alloy_sol_types::Result<Self::Return> {
4321                <Self::ReturnTuple<
4322                    '_,
4323                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
4324                    .map(Into::into)
4325            }
4326        }
4327    };
4328    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4329    /**Function with signature `delegationManager()` and selector `0xea4d3c9b`.
4330```solidity
4331function delegationManager() external view returns (address);
4332```*/
4333    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4334    #[derive(Clone)]
4335    pub struct delegationManagerCall {}
4336    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4337    ///Container type for the return parameters of the [`delegationManager()`](delegationManagerCall) function.
4338    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4339    #[derive(Clone)]
4340    pub struct delegationManagerReturn {
4341        #[allow(missing_docs)]
4342        pub _0: alloy::sol_types::private::Address,
4343    }
4344    #[allow(
4345        non_camel_case_types,
4346        non_snake_case,
4347        clippy::pub_underscore_fields,
4348        clippy::style
4349    )]
4350    const _: () = {
4351        use alloy::sol_types as alloy_sol_types;
4352        {
4353            #[doc(hidden)]
4354            type UnderlyingSolTuple<'a> = ();
4355            #[doc(hidden)]
4356            type UnderlyingRustTuple<'a> = ();
4357            #[cfg(test)]
4358            #[allow(dead_code, unreachable_patterns)]
4359            fn _type_assertion(
4360                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4361            ) {
4362                match _t {
4363                    alloy_sol_types::private::AssertTypeEq::<
4364                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4365                    >(_) => {}
4366                }
4367            }
4368            #[automatically_derived]
4369            #[doc(hidden)]
4370            impl ::core::convert::From<delegationManagerCall>
4371            for UnderlyingRustTuple<'_> {
4372                fn from(value: delegationManagerCall) -> Self {
4373                    ()
4374                }
4375            }
4376            #[automatically_derived]
4377            #[doc(hidden)]
4378            impl ::core::convert::From<UnderlyingRustTuple<'_>>
4379            for delegationManagerCall {
4380                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4381                    Self {}
4382                }
4383            }
4384        }
4385        {
4386            #[doc(hidden)]
4387            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
4388            #[doc(hidden)]
4389            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
4390            #[cfg(test)]
4391            #[allow(dead_code, unreachable_patterns)]
4392            fn _type_assertion(
4393                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4394            ) {
4395                match _t {
4396                    alloy_sol_types::private::AssertTypeEq::<
4397                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4398                    >(_) => {}
4399                }
4400            }
4401            #[automatically_derived]
4402            #[doc(hidden)]
4403            impl ::core::convert::From<delegationManagerReturn>
4404            for UnderlyingRustTuple<'_> {
4405                fn from(value: delegationManagerReturn) -> Self {
4406                    (value._0,)
4407                }
4408            }
4409            #[automatically_derived]
4410            #[doc(hidden)]
4411            impl ::core::convert::From<UnderlyingRustTuple<'_>>
4412            for delegationManagerReturn {
4413                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4414                    Self { _0: tuple.0 }
4415                }
4416            }
4417        }
4418        #[automatically_derived]
4419        impl alloy_sol_types::SolCall for delegationManagerCall {
4420            type Parameters<'a> = ();
4421            type Token<'a> = <Self::Parameters<
4422                'a,
4423            > as alloy_sol_types::SolType>::Token<'a>;
4424            type Return = delegationManagerReturn;
4425            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
4426            type ReturnToken<'a> = <Self::ReturnTuple<
4427                'a,
4428            > as alloy_sol_types::SolType>::Token<'a>;
4429            const SIGNATURE: &'static str = "delegationManager()";
4430            const SELECTOR: [u8; 4] = [234u8, 77u8, 60u8, 155u8];
4431            #[inline]
4432            fn new<'a>(
4433                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4434            ) -> Self {
4435                tuple.into()
4436            }
4437            #[inline]
4438            fn tokenize(&self) -> Self::Token<'_> {
4439                ()
4440            }
4441            #[inline]
4442            fn abi_decode_returns(
4443                data: &[u8],
4444                validate: bool,
4445            ) -> alloy_sol_types::Result<Self::Return> {
4446                <Self::ReturnTuple<
4447                    '_,
4448                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
4449                    .map(Into::into)
4450            }
4451        }
4452    };
4453    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4454    /**Function with signature `eigenPodBeacon()` and selector `0x292b7b2b`.
4455```solidity
4456function eigenPodBeacon() external view returns (address);
4457```*/
4458    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4459    #[derive(Clone)]
4460    pub struct eigenPodBeaconCall {}
4461    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4462    ///Container type for the return parameters of the [`eigenPodBeacon()`](eigenPodBeaconCall) function.
4463    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4464    #[derive(Clone)]
4465    pub struct eigenPodBeaconReturn {
4466        #[allow(missing_docs)]
4467        pub _0: alloy::sol_types::private::Address,
4468    }
4469    #[allow(
4470        non_camel_case_types,
4471        non_snake_case,
4472        clippy::pub_underscore_fields,
4473        clippy::style
4474    )]
4475    const _: () = {
4476        use alloy::sol_types as alloy_sol_types;
4477        {
4478            #[doc(hidden)]
4479            type UnderlyingSolTuple<'a> = ();
4480            #[doc(hidden)]
4481            type UnderlyingRustTuple<'a> = ();
4482            #[cfg(test)]
4483            #[allow(dead_code, unreachable_patterns)]
4484            fn _type_assertion(
4485                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4486            ) {
4487                match _t {
4488                    alloy_sol_types::private::AssertTypeEq::<
4489                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4490                    >(_) => {}
4491                }
4492            }
4493            #[automatically_derived]
4494            #[doc(hidden)]
4495            impl ::core::convert::From<eigenPodBeaconCall> for UnderlyingRustTuple<'_> {
4496                fn from(value: eigenPodBeaconCall) -> Self {
4497                    ()
4498                }
4499            }
4500            #[automatically_derived]
4501            #[doc(hidden)]
4502            impl ::core::convert::From<UnderlyingRustTuple<'_>> for eigenPodBeaconCall {
4503                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4504                    Self {}
4505                }
4506            }
4507        }
4508        {
4509            #[doc(hidden)]
4510            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
4511            #[doc(hidden)]
4512            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
4513            #[cfg(test)]
4514            #[allow(dead_code, unreachable_patterns)]
4515            fn _type_assertion(
4516                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4517            ) {
4518                match _t {
4519                    alloy_sol_types::private::AssertTypeEq::<
4520                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4521                    >(_) => {}
4522                }
4523            }
4524            #[automatically_derived]
4525            #[doc(hidden)]
4526            impl ::core::convert::From<eigenPodBeaconReturn>
4527            for UnderlyingRustTuple<'_> {
4528                fn from(value: eigenPodBeaconReturn) -> Self {
4529                    (value._0,)
4530                }
4531            }
4532            #[automatically_derived]
4533            #[doc(hidden)]
4534            impl ::core::convert::From<UnderlyingRustTuple<'_>>
4535            for eigenPodBeaconReturn {
4536                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4537                    Self { _0: tuple.0 }
4538                }
4539            }
4540        }
4541        #[automatically_derived]
4542        impl alloy_sol_types::SolCall for eigenPodBeaconCall {
4543            type Parameters<'a> = ();
4544            type Token<'a> = <Self::Parameters<
4545                'a,
4546            > as alloy_sol_types::SolType>::Token<'a>;
4547            type Return = eigenPodBeaconReturn;
4548            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
4549            type ReturnToken<'a> = <Self::ReturnTuple<
4550                'a,
4551            > as alloy_sol_types::SolType>::Token<'a>;
4552            const SIGNATURE: &'static str = "eigenPodBeacon()";
4553            const SELECTOR: [u8; 4] = [41u8, 43u8, 123u8, 43u8];
4554            #[inline]
4555            fn new<'a>(
4556                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4557            ) -> Self {
4558                tuple.into()
4559            }
4560            #[inline]
4561            fn tokenize(&self) -> Self::Token<'_> {
4562                ()
4563            }
4564            #[inline]
4565            fn abi_decode_returns(
4566                data: &[u8],
4567                validate: bool,
4568            ) -> alloy_sol_types::Result<Self::Return> {
4569                <Self::ReturnTuple<
4570                    '_,
4571                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
4572                    .map(Into::into)
4573            }
4574        }
4575    };
4576    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4577    /**Function with signature `ethPOS()` and selector `0x74cdd798`.
4578```solidity
4579function ethPOS() external view returns (address);
4580```*/
4581    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4582    #[derive(Clone)]
4583    pub struct ethPOSCall {}
4584    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4585    ///Container type for the return parameters of the [`ethPOS()`](ethPOSCall) function.
4586    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4587    #[derive(Clone)]
4588    pub struct ethPOSReturn {
4589        #[allow(missing_docs)]
4590        pub _0: alloy::sol_types::private::Address,
4591    }
4592    #[allow(
4593        non_camel_case_types,
4594        non_snake_case,
4595        clippy::pub_underscore_fields,
4596        clippy::style
4597    )]
4598    const _: () = {
4599        use alloy::sol_types as alloy_sol_types;
4600        {
4601            #[doc(hidden)]
4602            type UnderlyingSolTuple<'a> = ();
4603            #[doc(hidden)]
4604            type UnderlyingRustTuple<'a> = ();
4605            #[cfg(test)]
4606            #[allow(dead_code, unreachable_patterns)]
4607            fn _type_assertion(
4608                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4609            ) {
4610                match _t {
4611                    alloy_sol_types::private::AssertTypeEq::<
4612                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4613                    >(_) => {}
4614                }
4615            }
4616            #[automatically_derived]
4617            #[doc(hidden)]
4618            impl ::core::convert::From<ethPOSCall> for UnderlyingRustTuple<'_> {
4619                fn from(value: ethPOSCall) -> Self {
4620                    ()
4621                }
4622            }
4623            #[automatically_derived]
4624            #[doc(hidden)]
4625            impl ::core::convert::From<UnderlyingRustTuple<'_>> for ethPOSCall {
4626                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4627                    Self {}
4628                }
4629            }
4630        }
4631        {
4632            #[doc(hidden)]
4633            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
4634            #[doc(hidden)]
4635            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
4636            #[cfg(test)]
4637            #[allow(dead_code, unreachable_patterns)]
4638            fn _type_assertion(
4639                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4640            ) {
4641                match _t {
4642                    alloy_sol_types::private::AssertTypeEq::<
4643                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4644                    >(_) => {}
4645                }
4646            }
4647            #[automatically_derived]
4648            #[doc(hidden)]
4649            impl ::core::convert::From<ethPOSReturn> for UnderlyingRustTuple<'_> {
4650                fn from(value: ethPOSReturn) -> Self {
4651                    (value._0,)
4652                }
4653            }
4654            #[automatically_derived]
4655            #[doc(hidden)]
4656            impl ::core::convert::From<UnderlyingRustTuple<'_>> for ethPOSReturn {
4657                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4658                    Self { _0: tuple.0 }
4659                }
4660            }
4661        }
4662        #[automatically_derived]
4663        impl alloy_sol_types::SolCall for ethPOSCall {
4664            type Parameters<'a> = ();
4665            type Token<'a> = <Self::Parameters<
4666                'a,
4667            > as alloy_sol_types::SolType>::Token<'a>;
4668            type Return = ethPOSReturn;
4669            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
4670            type ReturnToken<'a> = <Self::ReturnTuple<
4671                'a,
4672            > as alloy_sol_types::SolType>::Token<'a>;
4673            const SIGNATURE: &'static str = "ethPOS()";
4674            const SELECTOR: [u8; 4] = [116u8, 205u8, 215u8, 152u8];
4675            #[inline]
4676            fn new<'a>(
4677                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4678            ) -> Self {
4679                tuple.into()
4680            }
4681            #[inline]
4682            fn tokenize(&self) -> Self::Token<'_> {
4683                ()
4684            }
4685            #[inline]
4686            fn abi_decode_returns(
4687                data: &[u8],
4688                validate: bool,
4689            ) -> alloy_sol_types::Result<Self::Return> {
4690                <Self::ReturnTuple<
4691                    '_,
4692                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
4693                    .map(Into::into)
4694            }
4695        }
4696    };
4697    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4698    /**Function with signature `getPod(address)` and selector `0xa38406a3`.
4699```solidity
4700function getPod(address podOwner) external view returns (address);
4701```*/
4702    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4703    #[derive(Clone)]
4704    pub struct getPodCall {
4705        #[allow(missing_docs)]
4706        pub podOwner: alloy::sol_types::private::Address,
4707    }
4708    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4709    ///Container type for the return parameters of the [`getPod(address)`](getPodCall) function.
4710    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4711    #[derive(Clone)]
4712    pub struct getPodReturn {
4713        #[allow(missing_docs)]
4714        pub _0: alloy::sol_types::private::Address,
4715    }
4716    #[allow(
4717        non_camel_case_types,
4718        non_snake_case,
4719        clippy::pub_underscore_fields,
4720        clippy::style
4721    )]
4722    const _: () = {
4723        use alloy::sol_types as alloy_sol_types;
4724        {
4725            #[doc(hidden)]
4726            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
4727            #[doc(hidden)]
4728            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
4729            #[cfg(test)]
4730            #[allow(dead_code, unreachable_patterns)]
4731            fn _type_assertion(
4732                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4733            ) {
4734                match _t {
4735                    alloy_sol_types::private::AssertTypeEq::<
4736                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4737                    >(_) => {}
4738                }
4739            }
4740            #[automatically_derived]
4741            #[doc(hidden)]
4742            impl ::core::convert::From<getPodCall> for UnderlyingRustTuple<'_> {
4743                fn from(value: getPodCall) -> Self {
4744                    (value.podOwner,)
4745                }
4746            }
4747            #[automatically_derived]
4748            #[doc(hidden)]
4749            impl ::core::convert::From<UnderlyingRustTuple<'_>> for getPodCall {
4750                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4751                    Self { podOwner: tuple.0 }
4752                }
4753            }
4754        }
4755        {
4756            #[doc(hidden)]
4757            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
4758            #[doc(hidden)]
4759            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
4760            #[cfg(test)]
4761            #[allow(dead_code, unreachable_patterns)]
4762            fn _type_assertion(
4763                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4764            ) {
4765                match _t {
4766                    alloy_sol_types::private::AssertTypeEq::<
4767                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4768                    >(_) => {}
4769                }
4770            }
4771            #[automatically_derived]
4772            #[doc(hidden)]
4773            impl ::core::convert::From<getPodReturn> for UnderlyingRustTuple<'_> {
4774                fn from(value: getPodReturn) -> Self {
4775                    (value._0,)
4776                }
4777            }
4778            #[automatically_derived]
4779            #[doc(hidden)]
4780            impl ::core::convert::From<UnderlyingRustTuple<'_>> for getPodReturn {
4781                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4782                    Self { _0: tuple.0 }
4783                }
4784            }
4785        }
4786        #[automatically_derived]
4787        impl alloy_sol_types::SolCall for getPodCall {
4788            type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
4789            type Token<'a> = <Self::Parameters<
4790                'a,
4791            > as alloy_sol_types::SolType>::Token<'a>;
4792            type Return = getPodReturn;
4793            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
4794            type ReturnToken<'a> = <Self::ReturnTuple<
4795                'a,
4796            > as alloy_sol_types::SolType>::Token<'a>;
4797            const SIGNATURE: &'static str = "getPod(address)";
4798            const SELECTOR: [u8; 4] = [163u8, 132u8, 6u8, 163u8];
4799            #[inline]
4800            fn new<'a>(
4801                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4802            ) -> Self {
4803                tuple.into()
4804            }
4805            #[inline]
4806            fn tokenize(&self) -> Self::Token<'_> {
4807                (
4808                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
4809                        &self.podOwner,
4810                    ),
4811                )
4812            }
4813            #[inline]
4814            fn abi_decode_returns(
4815                data: &[u8],
4816                validate: bool,
4817            ) -> alloy_sol_types::Result<Self::Return> {
4818                <Self::ReturnTuple<
4819                    '_,
4820                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
4821                    .map(Into::into)
4822            }
4823        }
4824    };
4825    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4826    /**Function with signature `hasPod(address)` and selector `0xf6848d24`.
4827```solidity
4828function hasPod(address podOwner) external view returns (bool);
4829```*/
4830    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4831    #[derive(Clone)]
4832    pub struct hasPodCall {
4833        #[allow(missing_docs)]
4834        pub podOwner: alloy::sol_types::private::Address,
4835    }
4836    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4837    ///Container type for the return parameters of the [`hasPod(address)`](hasPodCall) function.
4838    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4839    #[derive(Clone)]
4840    pub struct hasPodReturn {
4841        #[allow(missing_docs)]
4842        pub _0: bool,
4843    }
4844    #[allow(
4845        non_camel_case_types,
4846        non_snake_case,
4847        clippy::pub_underscore_fields,
4848        clippy::style
4849    )]
4850    const _: () = {
4851        use alloy::sol_types as alloy_sol_types;
4852        {
4853            #[doc(hidden)]
4854            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
4855            #[doc(hidden)]
4856            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
4857            #[cfg(test)]
4858            #[allow(dead_code, unreachable_patterns)]
4859            fn _type_assertion(
4860                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4861            ) {
4862                match _t {
4863                    alloy_sol_types::private::AssertTypeEq::<
4864                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4865                    >(_) => {}
4866                }
4867            }
4868            #[automatically_derived]
4869            #[doc(hidden)]
4870            impl ::core::convert::From<hasPodCall> for UnderlyingRustTuple<'_> {
4871                fn from(value: hasPodCall) -> Self {
4872                    (value.podOwner,)
4873                }
4874            }
4875            #[automatically_derived]
4876            #[doc(hidden)]
4877            impl ::core::convert::From<UnderlyingRustTuple<'_>> for hasPodCall {
4878                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4879                    Self { podOwner: tuple.0 }
4880                }
4881            }
4882        }
4883        {
4884            #[doc(hidden)]
4885            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,);
4886            #[doc(hidden)]
4887            type UnderlyingRustTuple<'a> = (bool,);
4888            #[cfg(test)]
4889            #[allow(dead_code, unreachable_patterns)]
4890            fn _type_assertion(
4891                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4892            ) {
4893                match _t {
4894                    alloy_sol_types::private::AssertTypeEq::<
4895                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4896                    >(_) => {}
4897                }
4898            }
4899            #[automatically_derived]
4900            #[doc(hidden)]
4901            impl ::core::convert::From<hasPodReturn> for UnderlyingRustTuple<'_> {
4902                fn from(value: hasPodReturn) -> Self {
4903                    (value._0,)
4904                }
4905            }
4906            #[automatically_derived]
4907            #[doc(hidden)]
4908            impl ::core::convert::From<UnderlyingRustTuple<'_>> for hasPodReturn {
4909                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4910                    Self { _0: tuple.0 }
4911                }
4912            }
4913        }
4914        #[automatically_derived]
4915        impl alloy_sol_types::SolCall for hasPodCall {
4916            type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
4917            type Token<'a> = <Self::Parameters<
4918                'a,
4919            > as alloy_sol_types::SolType>::Token<'a>;
4920            type Return = hasPodReturn;
4921            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,);
4922            type ReturnToken<'a> = <Self::ReturnTuple<
4923                'a,
4924            > as alloy_sol_types::SolType>::Token<'a>;
4925            const SIGNATURE: &'static str = "hasPod(address)";
4926            const SELECTOR: [u8; 4] = [246u8, 132u8, 141u8, 36u8];
4927            #[inline]
4928            fn new<'a>(
4929                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4930            ) -> Self {
4931                tuple.into()
4932            }
4933            #[inline]
4934            fn tokenize(&self) -> Self::Token<'_> {
4935                (
4936                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
4937                        &self.podOwner,
4938                    ),
4939                )
4940            }
4941            #[inline]
4942            fn abi_decode_returns(
4943                data: &[u8],
4944                validate: bool,
4945            ) -> alloy_sol_types::Result<Self::Return> {
4946                <Self::ReturnTuple<
4947                    '_,
4948                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
4949                    .map(Into::into)
4950            }
4951        }
4952    };
4953    #[derive(Default, Debug, PartialEq, Eq, Hash)]
4954    /**Function with signature `increaseBurnableShares(address,uint256)` and selector `0xdebe1eab`.
4955```solidity
4956function increaseBurnableShares(address, uint256 addedSharesToBurn) external;
4957```*/
4958    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4959    #[derive(Clone)]
4960    pub struct increaseBurnableSharesCall {
4961        #[allow(missing_docs)]
4962        pub _0: alloy::sol_types::private::Address,
4963        #[allow(missing_docs)]
4964        pub addedSharesToBurn: alloy::sol_types::private::primitives::aliases::U256,
4965    }
4966    ///Container type for the return parameters of the [`increaseBurnableShares(address,uint256)`](increaseBurnableSharesCall) function.
4967    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4968    #[derive(Clone)]
4969    pub struct increaseBurnableSharesReturn {}
4970    #[allow(
4971        non_camel_case_types,
4972        non_snake_case,
4973        clippy::pub_underscore_fields,
4974        clippy::style
4975    )]
4976    const _: () = {
4977        use alloy::sol_types as alloy_sol_types;
4978        {
4979            #[doc(hidden)]
4980            type UnderlyingSolTuple<'a> = (
4981                alloy::sol_types::sol_data::Address,
4982                alloy::sol_types::sol_data::Uint<256>,
4983            );
4984            #[doc(hidden)]
4985            type UnderlyingRustTuple<'a> = (
4986                alloy::sol_types::private::Address,
4987                alloy::sol_types::private::primitives::aliases::U256,
4988            );
4989            #[cfg(test)]
4990            #[allow(dead_code, unreachable_patterns)]
4991            fn _type_assertion(
4992                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4993            ) {
4994                match _t {
4995                    alloy_sol_types::private::AssertTypeEq::<
4996                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4997                    >(_) => {}
4998                }
4999            }
5000            #[automatically_derived]
5001            #[doc(hidden)]
5002            impl ::core::convert::From<increaseBurnableSharesCall>
5003            for UnderlyingRustTuple<'_> {
5004                fn from(value: increaseBurnableSharesCall) -> Self {
5005                    (value._0, value.addedSharesToBurn)
5006                }
5007            }
5008            #[automatically_derived]
5009            #[doc(hidden)]
5010            impl ::core::convert::From<UnderlyingRustTuple<'_>>
5011            for increaseBurnableSharesCall {
5012                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5013                    Self {
5014                        _0: tuple.0,
5015                        addedSharesToBurn: tuple.1,
5016                    }
5017                }
5018            }
5019        }
5020        {
5021            #[doc(hidden)]
5022            type UnderlyingSolTuple<'a> = ();
5023            #[doc(hidden)]
5024            type UnderlyingRustTuple<'a> = ();
5025            #[cfg(test)]
5026            #[allow(dead_code, unreachable_patterns)]
5027            fn _type_assertion(
5028                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5029            ) {
5030                match _t {
5031                    alloy_sol_types::private::AssertTypeEq::<
5032                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5033                    >(_) => {}
5034                }
5035            }
5036            #[automatically_derived]
5037            #[doc(hidden)]
5038            impl ::core::convert::From<increaseBurnableSharesReturn>
5039            for UnderlyingRustTuple<'_> {
5040                fn from(value: increaseBurnableSharesReturn) -> Self {
5041                    ()
5042                }
5043            }
5044            #[automatically_derived]
5045            #[doc(hidden)]
5046            impl ::core::convert::From<UnderlyingRustTuple<'_>>
5047            for increaseBurnableSharesReturn {
5048                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5049                    Self {}
5050                }
5051            }
5052        }
5053        #[automatically_derived]
5054        impl alloy_sol_types::SolCall for increaseBurnableSharesCall {
5055            type Parameters<'a> = (
5056                alloy::sol_types::sol_data::Address,
5057                alloy::sol_types::sol_data::Uint<256>,
5058            );
5059            type Token<'a> = <Self::Parameters<
5060                'a,
5061            > as alloy_sol_types::SolType>::Token<'a>;
5062            type Return = increaseBurnableSharesReturn;
5063            type ReturnTuple<'a> = ();
5064            type ReturnToken<'a> = <Self::ReturnTuple<
5065                'a,
5066            > as alloy_sol_types::SolType>::Token<'a>;
5067            const SIGNATURE: &'static str = "increaseBurnableShares(address,uint256)";
5068            const SELECTOR: [u8; 4] = [222u8, 190u8, 30u8, 171u8];
5069            #[inline]
5070            fn new<'a>(
5071                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5072            ) -> Self {
5073                tuple.into()
5074            }
5075            #[inline]
5076            fn tokenize(&self) -> Self::Token<'_> {
5077                (
5078                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
5079                        &self._0,
5080                    ),
5081                    <alloy::sol_types::sol_data::Uint<
5082                        256,
5083                    > as alloy_sol_types::SolType>::tokenize(&self.addedSharesToBurn),
5084                )
5085            }
5086            #[inline]
5087            fn abi_decode_returns(
5088                data: &[u8],
5089                validate: bool,
5090            ) -> alloy_sol_types::Result<Self::Return> {
5091                <Self::ReturnTuple<
5092                    '_,
5093                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
5094                    .map(Into::into)
5095            }
5096        }
5097    };
5098    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5099    /**Function with signature `initialize(address,uint256)` and selector `0xcd6dc687`.
5100```solidity
5101function initialize(address initialOwner, uint256 _initPausedStatus) external;
5102```*/
5103    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5104    #[derive(Clone)]
5105    pub struct initializeCall {
5106        #[allow(missing_docs)]
5107        pub initialOwner: alloy::sol_types::private::Address,
5108        #[allow(missing_docs)]
5109        pub _initPausedStatus: alloy::sol_types::private::primitives::aliases::U256,
5110    }
5111    ///Container type for the return parameters of the [`initialize(address,uint256)`](initializeCall) function.
5112    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5113    #[derive(Clone)]
5114    pub struct initializeReturn {}
5115    #[allow(
5116        non_camel_case_types,
5117        non_snake_case,
5118        clippy::pub_underscore_fields,
5119        clippy::style
5120    )]
5121    const _: () = {
5122        use alloy::sol_types as alloy_sol_types;
5123        {
5124            #[doc(hidden)]
5125            type UnderlyingSolTuple<'a> = (
5126                alloy::sol_types::sol_data::Address,
5127                alloy::sol_types::sol_data::Uint<256>,
5128            );
5129            #[doc(hidden)]
5130            type UnderlyingRustTuple<'a> = (
5131                alloy::sol_types::private::Address,
5132                alloy::sol_types::private::primitives::aliases::U256,
5133            );
5134            #[cfg(test)]
5135            #[allow(dead_code, unreachable_patterns)]
5136            fn _type_assertion(
5137                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5138            ) {
5139                match _t {
5140                    alloy_sol_types::private::AssertTypeEq::<
5141                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5142                    >(_) => {}
5143                }
5144            }
5145            #[automatically_derived]
5146            #[doc(hidden)]
5147            impl ::core::convert::From<initializeCall> for UnderlyingRustTuple<'_> {
5148                fn from(value: initializeCall) -> Self {
5149                    (value.initialOwner, value._initPausedStatus)
5150                }
5151            }
5152            #[automatically_derived]
5153            #[doc(hidden)]
5154            impl ::core::convert::From<UnderlyingRustTuple<'_>> for initializeCall {
5155                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5156                    Self {
5157                        initialOwner: tuple.0,
5158                        _initPausedStatus: tuple.1,
5159                    }
5160                }
5161            }
5162        }
5163        {
5164            #[doc(hidden)]
5165            type UnderlyingSolTuple<'a> = ();
5166            #[doc(hidden)]
5167            type UnderlyingRustTuple<'a> = ();
5168            #[cfg(test)]
5169            #[allow(dead_code, unreachable_patterns)]
5170            fn _type_assertion(
5171                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5172            ) {
5173                match _t {
5174                    alloy_sol_types::private::AssertTypeEq::<
5175                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5176                    >(_) => {}
5177                }
5178            }
5179            #[automatically_derived]
5180            #[doc(hidden)]
5181            impl ::core::convert::From<initializeReturn> for UnderlyingRustTuple<'_> {
5182                fn from(value: initializeReturn) -> Self {
5183                    ()
5184                }
5185            }
5186            #[automatically_derived]
5187            #[doc(hidden)]
5188            impl ::core::convert::From<UnderlyingRustTuple<'_>> for initializeReturn {
5189                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5190                    Self {}
5191                }
5192            }
5193        }
5194        #[automatically_derived]
5195        impl alloy_sol_types::SolCall for initializeCall {
5196            type Parameters<'a> = (
5197                alloy::sol_types::sol_data::Address,
5198                alloy::sol_types::sol_data::Uint<256>,
5199            );
5200            type Token<'a> = <Self::Parameters<
5201                'a,
5202            > as alloy_sol_types::SolType>::Token<'a>;
5203            type Return = initializeReturn;
5204            type ReturnTuple<'a> = ();
5205            type ReturnToken<'a> = <Self::ReturnTuple<
5206                'a,
5207            > as alloy_sol_types::SolType>::Token<'a>;
5208            const SIGNATURE: &'static str = "initialize(address,uint256)";
5209            const SELECTOR: [u8; 4] = [205u8, 109u8, 198u8, 135u8];
5210            #[inline]
5211            fn new<'a>(
5212                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5213            ) -> Self {
5214                tuple.into()
5215            }
5216            #[inline]
5217            fn tokenize(&self) -> Self::Token<'_> {
5218                (
5219                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
5220                        &self.initialOwner,
5221                    ),
5222                    <alloy::sol_types::sol_data::Uint<
5223                        256,
5224                    > as alloy_sol_types::SolType>::tokenize(&self._initPausedStatus),
5225                )
5226            }
5227            #[inline]
5228            fn abi_decode_returns(
5229                data: &[u8],
5230                validate: bool,
5231            ) -> alloy_sol_types::Result<Self::Return> {
5232                <Self::ReturnTuple<
5233                    '_,
5234                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
5235                    .map(Into::into)
5236            }
5237        }
5238    };
5239    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5240    /**Function with signature `numPods()` and selector `0xa6a509be`.
5241```solidity
5242function numPods() external view returns (uint256);
5243```*/
5244    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5245    #[derive(Clone)]
5246    pub struct numPodsCall {}
5247    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5248    ///Container type for the return parameters of the [`numPods()`](numPodsCall) function.
5249    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5250    #[derive(Clone)]
5251    pub struct numPodsReturn {
5252        #[allow(missing_docs)]
5253        pub _0: alloy::sol_types::private::primitives::aliases::U256,
5254    }
5255    #[allow(
5256        non_camel_case_types,
5257        non_snake_case,
5258        clippy::pub_underscore_fields,
5259        clippy::style
5260    )]
5261    const _: () = {
5262        use alloy::sol_types as alloy_sol_types;
5263        {
5264            #[doc(hidden)]
5265            type UnderlyingSolTuple<'a> = ();
5266            #[doc(hidden)]
5267            type UnderlyingRustTuple<'a> = ();
5268            #[cfg(test)]
5269            #[allow(dead_code, unreachable_patterns)]
5270            fn _type_assertion(
5271                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5272            ) {
5273                match _t {
5274                    alloy_sol_types::private::AssertTypeEq::<
5275                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5276                    >(_) => {}
5277                }
5278            }
5279            #[automatically_derived]
5280            #[doc(hidden)]
5281            impl ::core::convert::From<numPodsCall> for UnderlyingRustTuple<'_> {
5282                fn from(value: numPodsCall) -> Self {
5283                    ()
5284                }
5285            }
5286            #[automatically_derived]
5287            #[doc(hidden)]
5288            impl ::core::convert::From<UnderlyingRustTuple<'_>> for numPodsCall {
5289                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5290                    Self {}
5291                }
5292            }
5293        }
5294        {
5295            #[doc(hidden)]
5296            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
5297            #[doc(hidden)]
5298            type UnderlyingRustTuple<'a> = (
5299                alloy::sol_types::private::primitives::aliases::U256,
5300            );
5301            #[cfg(test)]
5302            #[allow(dead_code, unreachable_patterns)]
5303            fn _type_assertion(
5304                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5305            ) {
5306                match _t {
5307                    alloy_sol_types::private::AssertTypeEq::<
5308                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5309                    >(_) => {}
5310                }
5311            }
5312            #[automatically_derived]
5313            #[doc(hidden)]
5314            impl ::core::convert::From<numPodsReturn> for UnderlyingRustTuple<'_> {
5315                fn from(value: numPodsReturn) -> Self {
5316                    (value._0,)
5317                }
5318            }
5319            #[automatically_derived]
5320            #[doc(hidden)]
5321            impl ::core::convert::From<UnderlyingRustTuple<'_>> for numPodsReturn {
5322                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5323                    Self { _0: tuple.0 }
5324                }
5325            }
5326        }
5327        #[automatically_derived]
5328        impl alloy_sol_types::SolCall for numPodsCall {
5329            type Parameters<'a> = ();
5330            type Token<'a> = <Self::Parameters<
5331                'a,
5332            > as alloy_sol_types::SolType>::Token<'a>;
5333            type Return = numPodsReturn;
5334            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
5335            type ReturnToken<'a> = <Self::ReturnTuple<
5336                'a,
5337            > as alloy_sol_types::SolType>::Token<'a>;
5338            const SIGNATURE: &'static str = "numPods()";
5339            const SELECTOR: [u8; 4] = [166u8, 165u8, 9u8, 190u8];
5340            #[inline]
5341            fn new<'a>(
5342                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5343            ) -> Self {
5344                tuple.into()
5345            }
5346            #[inline]
5347            fn tokenize(&self) -> Self::Token<'_> {
5348                ()
5349            }
5350            #[inline]
5351            fn abi_decode_returns(
5352                data: &[u8],
5353                validate: bool,
5354            ) -> alloy_sol_types::Result<Self::Return> {
5355                <Self::ReturnTuple<
5356                    '_,
5357                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
5358                    .map(Into::into)
5359            }
5360        }
5361    };
5362    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5363    /**Function with signature `owner()` and selector `0x8da5cb5b`.
5364```solidity
5365function owner() external view returns (address);
5366```*/
5367    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5368    #[derive(Clone)]
5369    pub struct ownerCall {}
5370    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5371    ///Container type for the return parameters of the [`owner()`](ownerCall) function.
5372    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5373    #[derive(Clone)]
5374    pub struct ownerReturn {
5375        #[allow(missing_docs)]
5376        pub _0: alloy::sol_types::private::Address,
5377    }
5378    #[allow(
5379        non_camel_case_types,
5380        non_snake_case,
5381        clippy::pub_underscore_fields,
5382        clippy::style
5383    )]
5384    const _: () = {
5385        use alloy::sol_types as alloy_sol_types;
5386        {
5387            #[doc(hidden)]
5388            type UnderlyingSolTuple<'a> = ();
5389            #[doc(hidden)]
5390            type UnderlyingRustTuple<'a> = ();
5391            #[cfg(test)]
5392            #[allow(dead_code, unreachable_patterns)]
5393            fn _type_assertion(
5394                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5395            ) {
5396                match _t {
5397                    alloy_sol_types::private::AssertTypeEq::<
5398                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5399                    >(_) => {}
5400                }
5401            }
5402            #[automatically_derived]
5403            #[doc(hidden)]
5404            impl ::core::convert::From<ownerCall> for UnderlyingRustTuple<'_> {
5405                fn from(value: ownerCall) -> Self {
5406                    ()
5407                }
5408            }
5409            #[automatically_derived]
5410            #[doc(hidden)]
5411            impl ::core::convert::From<UnderlyingRustTuple<'_>> for ownerCall {
5412                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5413                    Self {}
5414                }
5415            }
5416        }
5417        {
5418            #[doc(hidden)]
5419            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
5420            #[doc(hidden)]
5421            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
5422            #[cfg(test)]
5423            #[allow(dead_code, unreachable_patterns)]
5424            fn _type_assertion(
5425                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5426            ) {
5427                match _t {
5428                    alloy_sol_types::private::AssertTypeEq::<
5429                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5430                    >(_) => {}
5431                }
5432            }
5433            #[automatically_derived]
5434            #[doc(hidden)]
5435            impl ::core::convert::From<ownerReturn> for UnderlyingRustTuple<'_> {
5436                fn from(value: ownerReturn) -> Self {
5437                    (value._0,)
5438                }
5439            }
5440            #[automatically_derived]
5441            #[doc(hidden)]
5442            impl ::core::convert::From<UnderlyingRustTuple<'_>> for ownerReturn {
5443                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5444                    Self { _0: tuple.0 }
5445                }
5446            }
5447        }
5448        #[automatically_derived]
5449        impl alloy_sol_types::SolCall for ownerCall {
5450            type Parameters<'a> = ();
5451            type Token<'a> = <Self::Parameters<
5452                'a,
5453            > as alloy_sol_types::SolType>::Token<'a>;
5454            type Return = ownerReturn;
5455            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
5456            type ReturnToken<'a> = <Self::ReturnTuple<
5457                'a,
5458            > as alloy_sol_types::SolType>::Token<'a>;
5459            const SIGNATURE: &'static str = "owner()";
5460            const SELECTOR: [u8; 4] = [141u8, 165u8, 203u8, 91u8];
5461            #[inline]
5462            fn new<'a>(
5463                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5464            ) -> Self {
5465                tuple.into()
5466            }
5467            #[inline]
5468            fn tokenize(&self) -> Self::Token<'_> {
5469                ()
5470            }
5471            #[inline]
5472            fn abi_decode_returns(
5473                data: &[u8],
5474                validate: bool,
5475            ) -> alloy_sol_types::Result<Self::Return> {
5476                <Self::ReturnTuple<
5477                    '_,
5478                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
5479                    .map(Into::into)
5480            }
5481        }
5482    };
5483    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5484    /**Function with signature `ownerToPod(address)` and selector `0x9ba06275`.
5485```solidity
5486function ownerToPod(address podOwner) external view returns (address);
5487```*/
5488    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5489    #[derive(Clone)]
5490    pub struct ownerToPodCall {
5491        #[allow(missing_docs)]
5492        pub podOwner: alloy::sol_types::private::Address,
5493    }
5494    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5495    ///Container type for the return parameters of the [`ownerToPod(address)`](ownerToPodCall) function.
5496    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5497    #[derive(Clone)]
5498    pub struct ownerToPodReturn {
5499        #[allow(missing_docs)]
5500        pub _0: alloy::sol_types::private::Address,
5501    }
5502    #[allow(
5503        non_camel_case_types,
5504        non_snake_case,
5505        clippy::pub_underscore_fields,
5506        clippy::style
5507    )]
5508    const _: () = {
5509        use alloy::sol_types as alloy_sol_types;
5510        {
5511            #[doc(hidden)]
5512            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
5513            #[doc(hidden)]
5514            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
5515            #[cfg(test)]
5516            #[allow(dead_code, unreachable_patterns)]
5517            fn _type_assertion(
5518                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5519            ) {
5520                match _t {
5521                    alloy_sol_types::private::AssertTypeEq::<
5522                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5523                    >(_) => {}
5524                }
5525            }
5526            #[automatically_derived]
5527            #[doc(hidden)]
5528            impl ::core::convert::From<ownerToPodCall> for UnderlyingRustTuple<'_> {
5529                fn from(value: ownerToPodCall) -> Self {
5530                    (value.podOwner,)
5531                }
5532            }
5533            #[automatically_derived]
5534            #[doc(hidden)]
5535            impl ::core::convert::From<UnderlyingRustTuple<'_>> for ownerToPodCall {
5536                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5537                    Self { podOwner: tuple.0 }
5538                }
5539            }
5540        }
5541        {
5542            #[doc(hidden)]
5543            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
5544            #[doc(hidden)]
5545            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
5546            #[cfg(test)]
5547            #[allow(dead_code, unreachable_patterns)]
5548            fn _type_assertion(
5549                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5550            ) {
5551                match _t {
5552                    alloy_sol_types::private::AssertTypeEq::<
5553                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5554                    >(_) => {}
5555                }
5556            }
5557            #[automatically_derived]
5558            #[doc(hidden)]
5559            impl ::core::convert::From<ownerToPodReturn> for UnderlyingRustTuple<'_> {
5560                fn from(value: ownerToPodReturn) -> Self {
5561                    (value._0,)
5562                }
5563            }
5564            #[automatically_derived]
5565            #[doc(hidden)]
5566            impl ::core::convert::From<UnderlyingRustTuple<'_>> for ownerToPodReturn {
5567                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5568                    Self { _0: tuple.0 }
5569                }
5570            }
5571        }
5572        #[automatically_derived]
5573        impl alloy_sol_types::SolCall for ownerToPodCall {
5574            type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
5575            type Token<'a> = <Self::Parameters<
5576                'a,
5577            > as alloy_sol_types::SolType>::Token<'a>;
5578            type Return = ownerToPodReturn;
5579            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
5580            type ReturnToken<'a> = <Self::ReturnTuple<
5581                'a,
5582            > as alloy_sol_types::SolType>::Token<'a>;
5583            const SIGNATURE: &'static str = "ownerToPod(address)";
5584            const SELECTOR: [u8; 4] = [155u8, 160u8, 98u8, 117u8];
5585            #[inline]
5586            fn new<'a>(
5587                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5588            ) -> Self {
5589                tuple.into()
5590            }
5591            #[inline]
5592            fn tokenize(&self) -> Self::Token<'_> {
5593                (
5594                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
5595                        &self.podOwner,
5596                    ),
5597                )
5598            }
5599            #[inline]
5600            fn abi_decode_returns(
5601                data: &[u8],
5602                validate: bool,
5603            ) -> alloy_sol_types::Result<Self::Return> {
5604                <Self::ReturnTuple<
5605                    '_,
5606                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
5607                    .map(Into::into)
5608            }
5609        }
5610    };
5611    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5612    /**Function with signature `pause(uint256)` and selector `0x136439dd`.
5613```solidity
5614function pause(uint256 newPausedStatus) external;
5615```*/
5616    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5617    #[derive(Clone)]
5618    pub struct pauseCall {
5619        #[allow(missing_docs)]
5620        pub newPausedStatus: alloy::sol_types::private::primitives::aliases::U256,
5621    }
5622    ///Container type for the return parameters of the [`pause(uint256)`](pauseCall) function.
5623    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5624    #[derive(Clone)]
5625    pub struct pauseReturn {}
5626    #[allow(
5627        non_camel_case_types,
5628        non_snake_case,
5629        clippy::pub_underscore_fields,
5630        clippy::style
5631    )]
5632    const _: () = {
5633        use alloy::sol_types as alloy_sol_types;
5634        {
5635            #[doc(hidden)]
5636            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
5637            #[doc(hidden)]
5638            type UnderlyingRustTuple<'a> = (
5639                alloy::sol_types::private::primitives::aliases::U256,
5640            );
5641            #[cfg(test)]
5642            #[allow(dead_code, unreachable_patterns)]
5643            fn _type_assertion(
5644                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5645            ) {
5646                match _t {
5647                    alloy_sol_types::private::AssertTypeEq::<
5648                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5649                    >(_) => {}
5650                }
5651            }
5652            #[automatically_derived]
5653            #[doc(hidden)]
5654            impl ::core::convert::From<pauseCall> for UnderlyingRustTuple<'_> {
5655                fn from(value: pauseCall) -> Self {
5656                    (value.newPausedStatus,)
5657                }
5658            }
5659            #[automatically_derived]
5660            #[doc(hidden)]
5661            impl ::core::convert::From<UnderlyingRustTuple<'_>> for pauseCall {
5662                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5663                    Self { newPausedStatus: tuple.0 }
5664                }
5665            }
5666        }
5667        {
5668            #[doc(hidden)]
5669            type UnderlyingSolTuple<'a> = ();
5670            #[doc(hidden)]
5671            type UnderlyingRustTuple<'a> = ();
5672            #[cfg(test)]
5673            #[allow(dead_code, unreachable_patterns)]
5674            fn _type_assertion(
5675                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5676            ) {
5677                match _t {
5678                    alloy_sol_types::private::AssertTypeEq::<
5679                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5680                    >(_) => {}
5681                }
5682            }
5683            #[automatically_derived]
5684            #[doc(hidden)]
5685            impl ::core::convert::From<pauseReturn> for UnderlyingRustTuple<'_> {
5686                fn from(value: pauseReturn) -> Self {
5687                    ()
5688                }
5689            }
5690            #[automatically_derived]
5691            #[doc(hidden)]
5692            impl ::core::convert::From<UnderlyingRustTuple<'_>> for pauseReturn {
5693                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5694                    Self {}
5695                }
5696            }
5697        }
5698        #[automatically_derived]
5699        impl alloy_sol_types::SolCall for pauseCall {
5700            type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,);
5701            type Token<'a> = <Self::Parameters<
5702                'a,
5703            > as alloy_sol_types::SolType>::Token<'a>;
5704            type Return = pauseReturn;
5705            type ReturnTuple<'a> = ();
5706            type ReturnToken<'a> = <Self::ReturnTuple<
5707                'a,
5708            > as alloy_sol_types::SolType>::Token<'a>;
5709            const SIGNATURE: &'static str = "pause(uint256)";
5710            const SELECTOR: [u8; 4] = [19u8, 100u8, 57u8, 221u8];
5711            #[inline]
5712            fn new<'a>(
5713                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5714            ) -> Self {
5715                tuple.into()
5716            }
5717            #[inline]
5718            fn tokenize(&self) -> Self::Token<'_> {
5719                (
5720                    <alloy::sol_types::sol_data::Uint<
5721                        256,
5722                    > as alloy_sol_types::SolType>::tokenize(&self.newPausedStatus),
5723                )
5724            }
5725            #[inline]
5726            fn abi_decode_returns(
5727                data: &[u8],
5728                validate: bool,
5729            ) -> alloy_sol_types::Result<Self::Return> {
5730                <Self::ReturnTuple<
5731                    '_,
5732                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
5733                    .map(Into::into)
5734            }
5735        }
5736    };
5737    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5738    /**Function with signature `pauseAll()` and selector `0x595c6a67`.
5739```solidity
5740function pauseAll() external;
5741```*/
5742    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5743    #[derive(Clone)]
5744    pub struct pauseAllCall {}
5745    ///Container type for the return parameters of the [`pauseAll()`](pauseAllCall) function.
5746    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5747    #[derive(Clone)]
5748    pub struct pauseAllReturn {}
5749    #[allow(
5750        non_camel_case_types,
5751        non_snake_case,
5752        clippy::pub_underscore_fields,
5753        clippy::style
5754    )]
5755    const _: () = {
5756        use alloy::sol_types as alloy_sol_types;
5757        {
5758            #[doc(hidden)]
5759            type UnderlyingSolTuple<'a> = ();
5760            #[doc(hidden)]
5761            type UnderlyingRustTuple<'a> = ();
5762            #[cfg(test)]
5763            #[allow(dead_code, unreachable_patterns)]
5764            fn _type_assertion(
5765                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5766            ) {
5767                match _t {
5768                    alloy_sol_types::private::AssertTypeEq::<
5769                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5770                    >(_) => {}
5771                }
5772            }
5773            #[automatically_derived]
5774            #[doc(hidden)]
5775            impl ::core::convert::From<pauseAllCall> for UnderlyingRustTuple<'_> {
5776                fn from(value: pauseAllCall) -> Self {
5777                    ()
5778                }
5779            }
5780            #[automatically_derived]
5781            #[doc(hidden)]
5782            impl ::core::convert::From<UnderlyingRustTuple<'_>> for pauseAllCall {
5783                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5784                    Self {}
5785                }
5786            }
5787        }
5788        {
5789            #[doc(hidden)]
5790            type UnderlyingSolTuple<'a> = ();
5791            #[doc(hidden)]
5792            type UnderlyingRustTuple<'a> = ();
5793            #[cfg(test)]
5794            #[allow(dead_code, unreachable_patterns)]
5795            fn _type_assertion(
5796                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5797            ) {
5798                match _t {
5799                    alloy_sol_types::private::AssertTypeEq::<
5800                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5801                    >(_) => {}
5802                }
5803            }
5804            #[automatically_derived]
5805            #[doc(hidden)]
5806            impl ::core::convert::From<pauseAllReturn> for UnderlyingRustTuple<'_> {
5807                fn from(value: pauseAllReturn) -> Self {
5808                    ()
5809                }
5810            }
5811            #[automatically_derived]
5812            #[doc(hidden)]
5813            impl ::core::convert::From<UnderlyingRustTuple<'_>> for pauseAllReturn {
5814                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5815                    Self {}
5816                }
5817            }
5818        }
5819        #[automatically_derived]
5820        impl alloy_sol_types::SolCall for pauseAllCall {
5821            type Parameters<'a> = ();
5822            type Token<'a> = <Self::Parameters<
5823                'a,
5824            > as alloy_sol_types::SolType>::Token<'a>;
5825            type Return = pauseAllReturn;
5826            type ReturnTuple<'a> = ();
5827            type ReturnToken<'a> = <Self::ReturnTuple<
5828                'a,
5829            > as alloy_sol_types::SolType>::Token<'a>;
5830            const SIGNATURE: &'static str = "pauseAll()";
5831            const SELECTOR: [u8; 4] = [89u8, 92u8, 106u8, 103u8];
5832            #[inline]
5833            fn new<'a>(
5834                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5835            ) -> Self {
5836                tuple.into()
5837            }
5838            #[inline]
5839            fn tokenize(&self) -> Self::Token<'_> {
5840                ()
5841            }
5842            #[inline]
5843            fn abi_decode_returns(
5844                data: &[u8],
5845                validate: bool,
5846            ) -> alloy_sol_types::Result<Self::Return> {
5847                <Self::ReturnTuple<
5848                    '_,
5849                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
5850                    .map(Into::into)
5851            }
5852        }
5853    };
5854    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5855    /**Function with signature `paused(uint8)` and selector `0x5ac86ab7`.
5856```solidity
5857function paused(uint8 index) external view returns (bool);
5858```*/
5859    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5860    #[derive(Clone)]
5861    pub struct paused_0Call {
5862        #[allow(missing_docs)]
5863        pub index: u8,
5864    }
5865    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5866    ///Container type for the return parameters of the [`paused(uint8)`](paused_0Call) function.
5867    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5868    #[derive(Clone)]
5869    pub struct paused_0Return {
5870        #[allow(missing_docs)]
5871        pub _0: bool,
5872    }
5873    #[allow(
5874        non_camel_case_types,
5875        non_snake_case,
5876        clippy::pub_underscore_fields,
5877        clippy::style
5878    )]
5879    const _: () = {
5880        use alloy::sol_types as alloy_sol_types;
5881        {
5882            #[doc(hidden)]
5883            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,);
5884            #[doc(hidden)]
5885            type UnderlyingRustTuple<'a> = (u8,);
5886            #[cfg(test)]
5887            #[allow(dead_code, unreachable_patterns)]
5888            fn _type_assertion(
5889                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5890            ) {
5891                match _t {
5892                    alloy_sol_types::private::AssertTypeEq::<
5893                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5894                    >(_) => {}
5895                }
5896            }
5897            #[automatically_derived]
5898            #[doc(hidden)]
5899            impl ::core::convert::From<paused_0Call> for UnderlyingRustTuple<'_> {
5900                fn from(value: paused_0Call) -> Self {
5901                    (value.index,)
5902                }
5903            }
5904            #[automatically_derived]
5905            #[doc(hidden)]
5906            impl ::core::convert::From<UnderlyingRustTuple<'_>> for paused_0Call {
5907                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5908                    Self { index: tuple.0 }
5909                }
5910            }
5911        }
5912        {
5913            #[doc(hidden)]
5914            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,);
5915            #[doc(hidden)]
5916            type UnderlyingRustTuple<'a> = (bool,);
5917            #[cfg(test)]
5918            #[allow(dead_code, unreachable_patterns)]
5919            fn _type_assertion(
5920                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
5921            ) {
5922                match _t {
5923                    alloy_sol_types::private::AssertTypeEq::<
5924                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
5925                    >(_) => {}
5926                }
5927            }
5928            #[automatically_derived]
5929            #[doc(hidden)]
5930            impl ::core::convert::From<paused_0Return> for UnderlyingRustTuple<'_> {
5931                fn from(value: paused_0Return) -> Self {
5932                    (value._0,)
5933                }
5934            }
5935            #[automatically_derived]
5936            #[doc(hidden)]
5937            impl ::core::convert::From<UnderlyingRustTuple<'_>> for paused_0Return {
5938                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
5939                    Self { _0: tuple.0 }
5940                }
5941            }
5942        }
5943        #[automatically_derived]
5944        impl alloy_sol_types::SolCall for paused_0Call {
5945            type Parameters<'a> = (alloy::sol_types::sol_data::Uint<8>,);
5946            type Token<'a> = <Self::Parameters<
5947                'a,
5948            > as alloy_sol_types::SolType>::Token<'a>;
5949            type Return = paused_0Return;
5950            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,);
5951            type ReturnToken<'a> = <Self::ReturnTuple<
5952                'a,
5953            > as alloy_sol_types::SolType>::Token<'a>;
5954            const SIGNATURE: &'static str = "paused(uint8)";
5955            const SELECTOR: [u8; 4] = [90u8, 200u8, 106u8, 183u8];
5956            #[inline]
5957            fn new<'a>(
5958                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
5959            ) -> Self {
5960                tuple.into()
5961            }
5962            #[inline]
5963            fn tokenize(&self) -> Self::Token<'_> {
5964                (
5965                    <alloy::sol_types::sol_data::Uint<
5966                        8,
5967                    > as alloy_sol_types::SolType>::tokenize(&self.index),
5968                )
5969            }
5970            #[inline]
5971            fn abi_decode_returns(
5972                data: &[u8],
5973                validate: bool,
5974            ) -> alloy_sol_types::Result<Self::Return> {
5975                <Self::ReturnTuple<
5976                    '_,
5977                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
5978                    .map(Into::into)
5979            }
5980        }
5981    };
5982    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5983    /**Function with signature `paused()` and selector `0x5c975abb`.
5984```solidity
5985function paused() external view returns (uint256);
5986```*/
5987    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5988    #[derive(Clone)]
5989    pub struct paused_1Call {}
5990    #[derive(Default, Debug, PartialEq, Eq, Hash)]
5991    ///Container type for the return parameters of the [`paused()`](paused_1Call) function.
5992    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
5993    #[derive(Clone)]
5994    pub struct paused_1Return {
5995        #[allow(missing_docs)]
5996        pub _0: alloy::sol_types::private::primitives::aliases::U256,
5997    }
5998    #[allow(
5999        non_camel_case_types,
6000        non_snake_case,
6001        clippy::pub_underscore_fields,
6002        clippy::style
6003    )]
6004    const _: () = {
6005        use alloy::sol_types as alloy_sol_types;
6006        {
6007            #[doc(hidden)]
6008            type UnderlyingSolTuple<'a> = ();
6009            #[doc(hidden)]
6010            type UnderlyingRustTuple<'a> = ();
6011            #[cfg(test)]
6012            #[allow(dead_code, unreachable_patterns)]
6013            fn _type_assertion(
6014                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6015            ) {
6016                match _t {
6017                    alloy_sol_types::private::AssertTypeEq::<
6018                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6019                    >(_) => {}
6020                }
6021            }
6022            #[automatically_derived]
6023            #[doc(hidden)]
6024            impl ::core::convert::From<paused_1Call> for UnderlyingRustTuple<'_> {
6025                fn from(value: paused_1Call) -> Self {
6026                    ()
6027                }
6028            }
6029            #[automatically_derived]
6030            #[doc(hidden)]
6031            impl ::core::convert::From<UnderlyingRustTuple<'_>> for paused_1Call {
6032                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6033                    Self {}
6034                }
6035            }
6036        }
6037        {
6038            #[doc(hidden)]
6039            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
6040            #[doc(hidden)]
6041            type UnderlyingRustTuple<'a> = (
6042                alloy::sol_types::private::primitives::aliases::U256,
6043            );
6044            #[cfg(test)]
6045            #[allow(dead_code, unreachable_patterns)]
6046            fn _type_assertion(
6047                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6048            ) {
6049                match _t {
6050                    alloy_sol_types::private::AssertTypeEq::<
6051                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6052                    >(_) => {}
6053                }
6054            }
6055            #[automatically_derived]
6056            #[doc(hidden)]
6057            impl ::core::convert::From<paused_1Return> for UnderlyingRustTuple<'_> {
6058                fn from(value: paused_1Return) -> Self {
6059                    (value._0,)
6060                }
6061            }
6062            #[automatically_derived]
6063            #[doc(hidden)]
6064            impl ::core::convert::From<UnderlyingRustTuple<'_>> for paused_1Return {
6065                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6066                    Self { _0: tuple.0 }
6067                }
6068            }
6069        }
6070        #[automatically_derived]
6071        impl alloy_sol_types::SolCall for paused_1Call {
6072            type Parameters<'a> = ();
6073            type Token<'a> = <Self::Parameters<
6074                'a,
6075            > as alloy_sol_types::SolType>::Token<'a>;
6076            type Return = paused_1Return;
6077            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
6078            type ReturnToken<'a> = <Self::ReturnTuple<
6079                'a,
6080            > as alloy_sol_types::SolType>::Token<'a>;
6081            const SIGNATURE: &'static str = "paused()";
6082            const SELECTOR: [u8; 4] = [92u8, 151u8, 90u8, 187u8];
6083            #[inline]
6084            fn new<'a>(
6085                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
6086            ) -> Self {
6087                tuple.into()
6088            }
6089            #[inline]
6090            fn tokenize(&self) -> Self::Token<'_> {
6091                ()
6092            }
6093            #[inline]
6094            fn abi_decode_returns(
6095                data: &[u8],
6096                validate: bool,
6097            ) -> alloy_sol_types::Result<Self::Return> {
6098                <Self::ReturnTuple<
6099                    '_,
6100                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
6101                    .map(Into::into)
6102            }
6103        }
6104    };
6105    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6106    /**Function with signature `pauserRegistry()` and selector `0x886f1195`.
6107```solidity
6108function pauserRegistry() external view returns (address);
6109```*/
6110    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6111    #[derive(Clone)]
6112    pub struct pauserRegistryCall {}
6113    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6114    ///Container type for the return parameters of the [`pauserRegistry()`](pauserRegistryCall) function.
6115    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6116    #[derive(Clone)]
6117    pub struct pauserRegistryReturn {
6118        #[allow(missing_docs)]
6119        pub _0: alloy::sol_types::private::Address,
6120    }
6121    #[allow(
6122        non_camel_case_types,
6123        non_snake_case,
6124        clippy::pub_underscore_fields,
6125        clippy::style
6126    )]
6127    const _: () = {
6128        use alloy::sol_types as alloy_sol_types;
6129        {
6130            #[doc(hidden)]
6131            type UnderlyingSolTuple<'a> = ();
6132            #[doc(hidden)]
6133            type UnderlyingRustTuple<'a> = ();
6134            #[cfg(test)]
6135            #[allow(dead_code, unreachable_patterns)]
6136            fn _type_assertion(
6137                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6138            ) {
6139                match _t {
6140                    alloy_sol_types::private::AssertTypeEq::<
6141                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6142                    >(_) => {}
6143                }
6144            }
6145            #[automatically_derived]
6146            #[doc(hidden)]
6147            impl ::core::convert::From<pauserRegistryCall> for UnderlyingRustTuple<'_> {
6148                fn from(value: pauserRegistryCall) -> Self {
6149                    ()
6150                }
6151            }
6152            #[automatically_derived]
6153            #[doc(hidden)]
6154            impl ::core::convert::From<UnderlyingRustTuple<'_>> for pauserRegistryCall {
6155                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6156                    Self {}
6157                }
6158            }
6159        }
6160        {
6161            #[doc(hidden)]
6162            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
6163            #[doc(hidden)]
6164            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
6165            #[cfg(test)]
6166            #[allow(dead_code, unreachable_patterns)]
6167            fn _type_assertion(
6168                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6169            ) {
6170                match _t {
6171                    alloy_sol_types::private::AssertTypeEq::<
6172                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6173                    >(_) => {}
6174                }
6175            }
6176            #[automatically_derived]
6177            #[doc(hidden)]
6178            impl ::core::convert::From<pauserRegistryReturn>
6179            for UnderlyingRustTuple<'_> {
6180                fn from(value: pauserRegistryReturn) -> Self {
6181                    (value._0,)
6182                }
6183            }
6184            #[automatically_derived]
6185            #[doc(hidden)]
6186            impl ::core::convert::From<UnderlyingRustTuple<'_>>
6187            for pauserRegistryReturn {
6188                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6189                    Self { _0: tuple.0 }
6190                }
6191            }
6192        }
6193        #[automatically_derived]
6194        impl alloy_sol_types::SolCall for pauserRegistryCall {
6195            type Parameters<'a> = ();
6196            type Token<'a> = <Self::Parameters<
6197                'a,
6198            > as alloy_sol_types::SolType>::Token<'a>;
6199            type Return = pauserRegistryReturn;
6200            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
6201            type ReturnToken<'a> = <Self::ReturnTuple<
6202                'a,
6203            > as alloy_sol_types::SolType>::Token<'a>;
6204            const SIGNATURE: &'static str = "pauserRegistry()";
6205            const SELECTOR: [u8; 4] = [136u8, 111u8, 17u8, 149u8];
6206            #[inline]
6207            fn new<'a>(
6208                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
6209            ) -> Self {
6210                tuple.into()
6211            }
6212            #[inline]
6213            fn tokenize(&self) -> Self::Token<'_> {
6214                ()
6215            }
6216            #[inline]
6217            fn abi_decode_returns(
6218                data: &[u8],
6219                validate: bool,
6220            ) -> alloy_sol_types::Result<Self::Return> {
6221                <Self::ReturnTuple<
6222                    '_,
6223                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
6224                    .map(Into::into)
6225            }
6226        }
6227    };
6228    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6229    /**Function with signature `pectraForkTimestamp()` and selector `0x2704351a`.
6230```solidity
6231function pectraForkTimestamp() external view returns (uint64);
6232```*/
6233    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6234    #[derive(Clone)]
6235    pub struct pectraForkTimestampCall {}
6236    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6237    ///Container type for the return parameters of the [`pectraForkTimestamp()`](pectraForkTimestampCall) function.
6238    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6239    #[derive(Clone)]
6240    pub struct pectraForkTimestampReturn {
6241        #[allow(missing_docs)]
6242        pub _0: u64,
6243    }
6244    #[allow(
6245        non_camel_case_types,
6246        non_snake_case,
6247        clippy::pub_underscore_fields,
6248        clippy::style
6249    )]
6250    const _: () = {
6251        use alloy::sol_types as alloy_sol_types;
6252        {
6253            #[doc(hidden)]
6254            type UnderlyingSolTuple<'a> = ();
6255            #[doc(hidden)]
6256            type UnderlyingRustTuple<'a> = ();
6257            #[cfg(test)]
6258            #[allow(dead_code, unreachable_patterns)]
6259            fn _type_assertion(
6260                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6261            ) {
6262                match _t {
6263                    alloy_sol_types::private::AssertTypeEq::<
6264                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6265                    >(_) => {}
6266                }
6267            }
6268            #[automatically_derived]
6269            #[doc(hidden)]
6270            impl ::core::convert::From<pectraForkTimestampCall>
6271            for UnderlyingRustTuple<'_> {
6272                fn from(value: pectraForkTimestampCall) -> Self {
6273                    ()
6274                }
6275            }
6276            #[automatically_derived]
6277            #[doc(hidden)]
6278            impl ::core::convert::From<UnderlyingRustTuple<'_>>
6279            for pectraForkTimestampCall {
6280                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6281                    Self {}
6282                }
6283            }
6284        }
6285        {
6286            #[doc(hidden)]
6287            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,);
6288            #[doc(hidden)]
6289            type UnderlyingRustTuple<'a> = (u64,);
6290            #[cfg(test)]
6291            #[allow(dead_code, unreachable_patterns)]
6292            fn _type_assertion(
6293                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6294            ) {
6295                match _t {
6296                    alloy_sol_types::private::AssertTypeEq::<
6297                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6298                    >(_) => {}
6299                }
6300            }
6301            #[automatically_derived]
6302            #[doc(hidden)]
6303            impl ::core::convert::From<pectraForkTimestampReturn>
6304            for UnderlyingRustTuple<'_> {
6305                fn from(value: pectraForkTimestampReturn) -> Self {
6306                    (value._0,)
6307                }
6308            }
6309            #[automatically_derived]
6310            #[doc(hidden)]
6311            impl ::core::convert::From<UnderlyingRustTuple<'_>>
6312            for pectraForkTimestampReturn {
6313                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6314                    Self { _0: tuple.0 }
6315                }
6316            }
6317        }
6318        #[automatically_derived]
6319        impl alloy_sol_types::SolCall for pectraForkTimestampCall {
6320            type Parameters<'a> = ();
6321            type Token<'a> = <Self::Parameters<
6322                'a,
6323            > as alloy_sol_types::SolType>::Token<'a>;
6324            type Return = pectraForkTimestampReturn;
6325            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,);
6326            type ReturnToken<'a> = <Self::ReturnTuple<
6327                'a,
6328            > as alloy_sol_types::SolType>::Token<'a>;
6329            const SIGNATURE: &'static str = "pectraForkTimestamp()";
6330            const SELECTOR: [u8; 4] = [39u8, 4u8, 53u8, 26u8];
6331            #[inline]
6332            fn new<'a>(
6333                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
6334            ) -> Self {
6335                tuple.into()
6336            }
6337            #[inline]
6338            fn tokenize(&self) -> Self::Token<'_> {
6339                ()
6340            }
6341            #[inline]
6342            fn abi_decode_returns(
6343                data: &[u8],
6344                validate: bool,
6345            ) -> alloy_sol_types::Result<Self::Return> {
6346                <Self::ReturnTuple<
6347                    '_,
6348                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
6349                    .map(Into::into)
6350            }
6351        }
6352    };
6353    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6354    /**Function with signature `podOwnerDepositShares(address)` and selector `0xd48e8894`.
6355```solidity
6356function podOwnerDepositShares(address podOwner) external view returns (int256 shares);
6357```*/
6358    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6359    #[derive(Clone)]
6360    pub struct podOwnerDepositSharesCall {
6361        #[allow(missing_docs)]
6362        pub podOwner: alloy::sol_types::private::Address,
6363    }
6364    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6365    ///Container type for the return parameters of the [`podOwnerDepositShares(address)`](podOwnerDepositSharesCall) function.
6366    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6367    #[derive(Clone)]
6368    pub struct podOwnerDepositSharesReturn {
6369        #[allow(missing_docs)]
6370        pub shares: alloy::sol_types::private::primitives::aliases::I256,
6371    }
6372    #[allow(
6373        non_camel_case_types,
6374        non_snake_case,
6375        clippy::pub_underscore_fields,
6376        clippy::style
6377    )]
6378    const _: () = {
6379        use alloy::sol_types as alloy_sol_types;
6380        {
6381            #[doc(hidden)]
6382            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
6383            #[doc(hidden)]
6384            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
6385            #[cfg(test)]
6386            #[allow(dead_code, unreachable_patterns)]
6387            fn _type_assertion(
6388                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6389            ) {
6390                match _t {
6391                    alloy_sol_types::private::AssertTypeEq::<
6392                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6393                    >(_) => {}
6394                }
6395            }
6396            #[automatically_derived]
6397            #[doc(hidden)]
6398            impl ::core::convert::From<podOwnerDepositSharesCall>
6399            for UnderlyingRustTuple<'_> {
6400                fn from(value: podOwnerDepositSharesCall) -> Self {
6401                    (value.podOwner,)
6402                }
6403            }
6404            #[automatically_derived]
6405            #[doc(hidden)]
6406            impl ::core::convert::From<UnderlyingRustTuple<'_>>
6407            for podOwnerDepositSharesCall {
6408                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6409                    Self { podOwner: tuple.0 }
6410                }
6411            }
6412        }
6413        {
6414            #[doc(hidden)]
6415            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Int<256>,);
6416            #[doc(hidden)]
6417            type UnderlyingRustTuple<'a> = (
6418                alloy::sol_types::private::primitives::aliases::I256,
6419            );
6420            #[cfg(test)]
6421            #[allow(dead_code, unreachable_patterns)]
6422            fn _type_assertion(
6423                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6424            ) {
6425                match _t {
6426                    alloy_sol_types::private::AssertTypeEq::<
6427                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6428                    >(_) => {}
6429                }
6430            }
6431            #[automatically_derived]
6432            #[doc(hidden)]
6433            impl ::core::convert::From<podOwnerDepositSharesReturn>
6434            for UnderlyingRustTuple<'_> {
6435                fn from(value: podOwnerDepositSharesReturn) -> Self {
6436                    (value.shares,)
6437                }
6438            }
6439            #[automatically_derived]
6440            #[doc(hidden)]
6441            impl ::core::convert::From<UnderlyingRustTuple<'_>>
6442            for podOwnerDepositSharesReturn {
6443                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6444                    Self { shares: tuple.0 }
6445                }
6446            }
6447        }
6448        #[automatically_derived]
6449        impl alloy_sol_types::SolCall for podOwnerDepositSharesCall {
6450            type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
6451            type Token<'a> = <Self::Parameters<
6452                'a,
6453            > as alloy_sol_types::SolType>::Token<'a>;
6454            type Return = podOwnerDepositSharesReturn;
6455            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Int<256>,);
6456            type ReturnToken<'a> = <Self::ReturnTuple<
6457                'a,
6458            > as alloy_sol_types::SolType>::Token<'a>;
6459            const SIGNATURE: &'static str = "podOwnerDepositShares(address)";
6460            const SELECTOR: [u8; 4] = [212u8, 142u8, 136u8, 148u8];
6461            #[inline]
6462            fn new<'a>(
6463                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
6464            ) -> Self {
6465                tuple.into()
6466            }
6467            #[inline]
6468            fn tokenize(&self) -> Self::Token<'_> {
6469                (
6470                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
6471                        &self.podOwner,
6472                    ),
6473                )
6474            }
6475            #[inline]
6476            fn abi_decode_returns(
6477                data: &[u8],
6478                validate: bool,
6479            ) -> alloy_sol_types::Result<Self::Return> {
6480                <Self::ReturnTuple<
6481                    '_,
6482                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
6483                    .map(Into::into)
6484            }
6485        }
6486    };
6487    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6488    /**Function with signature `proofTimestampSetter()` and selector `0x595edbcb`.
6489```solidity
6490function proofTimestampSetter() external view returns (address);
6491```*/
6492    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6493    #[derive(Clone)]
6494    pub struct proofTimestampSetterCall {}
6495    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6496    ///Container type for the return parameters of the [`proofTimestampSetter()`](proofTimestampSetterCall) function.
6497    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6498    #[derive(Clone)]
6499    pub struct proofTimestampSetterReturn {
6500        #[allow(missing_docs)]
6501        pub _0: alloy::sol_types::private::Address,
6502    }
6503    #[allow(
6504        non_camel_case_types,
6505        non_snake_case,
6506        clippy::pub_underscore_fields,
6507        clippy::style
6508    )]
6509    const _: () = {
6510        use alloy::sol_types as alloy_sol_types;
6511        {
6512            #[doc(hidden)]
6513            type UnderlyingSolTuple<'a> = ();
6514            #[doc(hidden)]
6515            type UnderlyingRustTuple<'a> = ();
6516            #[cfg(test)]
6517            #[allow(dead_code, unreachable_patterns)]
6518            fn _type_assertion(
6519                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6520            ) {
6521                match _t {
6522                    alloy_sol_types::private::AssertTypeEq::<
6523                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6524                    >(_) => {}
6525                }
6526            }
6527            #[automatically_derived]
6528            #[doc(hidden)]
6529            impl ::core::convert::From<proofTimestampSetterCall>
6530            for UnderlyingRustTuple<'_> {
6531                fn from(value: proofTimestampSetterCall) -> Self {
6532                    ()
6533                }
6534            }
6535            #[automatically_derived]
6536            #[doc(hidden)]
6537            impl ::core::convert::From<UnderlyingRustTuple<'_>>
6538            for proofTimestampSetterCall {
6539                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6540                    Self {}
6541                }
6542            }
6543        }
6544        {
6545            #[doc(hidden)]
6546            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
6547            #[doc(hidden)]
6548            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
6549            #[cfg(test)]
6550            #[allow(dead_code, unreachable_patterns)]
6551            fn _type_assertion(
6552                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6553            ) {
6554                match _t {
6555                    alloy_sol_types::private::AssertTypeEq::<
6556                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6557                    >(_) => {}
6558                }
6559            }
6560            #[automatically_derived]
6561            #[doc(hidden)]
6562            impl ::core::convert::From<proofTimestampSetterReturn>
6563            for UnderlyingRustTuple<'_> {
6564                fn from(value: proofTimestampSetterReturn) -> Self {
6565                    (value._0,)
6566                }
6567            }
6568            #[automatically_derived]
6569            #[doc(hidden)]
6570            impl ::core::convert::From<UnderlyingRustTuple<'_>>
6571            for proofTimestampSetterReturn {
6572                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6573                    Self { _0: tuple.0 }
6574                }
6575            }
6576        }
6577        #[automatically_derived]
6578        impl alloy_sol_types::SolCall for proofTimestampSetterCall {
6579            type Parameters<'a> = ();
6580            type Token<'a> = <Self::Parameters<
6581                'a,
6582            > as alloy_sol_types::SolType>::Token<'a>;
6583            type Return = proofTimestampSetterReturn;
6584            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
6585            type ReturnToken<'a> = <Self::ReturnTuple<
6586                'a,
6587            > as alloy_sol_types::SolType>::Token<'a>;
6588            const SIGNATURE: &'static str = "proofTimestampSetter()";
6589            const SELECTOR: [u8; 4] = [89u8, 94u8, 219u8, 203u8];
6590            #[inline]
6591            fn new<'a>(
6592                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
6593            ) -> Self {
6594                tuple.into()
6595            }
6596            #[inline]
6597            fn tokenize(&self) -> Self::Token<'_> {
6598                ()
6599            }
6600            #[inline]
6601            fn abi_decode_returns(
6602                data: &[u8],
6603                validate: bool,
6604            ) -> alloy_sol_types::Result<Self::Return> {
6605                <Self::ReturnTuple<
6606                    '_,
6607                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
6608                    .map(Into::into)
6609            }
6610        }
6611    };
6612    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6613    /**Function with signature `recordBeaconChainETHBalanceUpdate(address,uint256,int256)` and selector `0xa1ca780b`.
6614```solidity
6615function recordBeaconChainETHBalanceUpdate(address podOwner, uint256 prevRestakedBalanceWei, int256 balanceDeltaWei) external;
6616```*/
6617    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6618    #[derive(Clone)]
6619    pub struct recordBeaconChainETHBalanceUpdateCall {
6620        #[allow(missing_docs)]
6621        pub podOwner: alloy::sol_types::private::Address,
6622        #[allow(missing_docs)]
6623        pub prevRestakedBalanceWei: alloy::sol_types::private::primitives::aliases::U256,
6624        #[allow(missing_docs)]
6625        pub balanceDeltaWei: alloy::sol_types::private::primitives::aliases::I256,
6626    }
6627    ///Container type for the return parameters of the [`recordBeaconChainETHBalanceUpdate(address,uint256,int256)`](recordBeaconChainETHBalanceUpdateCall) function.
6628    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6629    #[derive(Clone)]
6630    pub struct recordBeaconChainETHBalanceUpdateReturn {}
6631    #[allow(
6632        non_camel_case_types,
6633        non_snake_case,
6634        clippy::pub_underscore_fields,
6635        clippy::style
6636    )]
6637    const _: () = {
6638        use alloy::sol_types as alloy_sol_types;
6639        {
6640            #[doc(hidden)]
6641            type UnderlyingSolTuple<'a> = (
6642                alloy::sol_types::sol_data::Address,
6643                alloy::sol_types::sol_data::Uint<256>,
6644                alloy::sol_types::sol_data::Int<256>,
6645            );
6646            #[doc(hidden)]
6647            type UnderlyingRustTuple<'a> = (
6648                alloy::sol_types::private::Address,
6649                alloy::sol_types::private::primitives::aliases::U256,
6650                alloy::sol_types::private::primitives::aliases::I256,
6651            );
6652            #[cfg(test)]
6653            #[allow(dead_code, unreachable_patterns)]
6654            fn _type_assertion(
6655                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6656            ) {
6657                match _t {
6658                    alloy_sol_types::private::AssertTypeEq::<
6659                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6660                    >(_) => {}
6661                }
6662            }
6663            #[automatically_derived]
6664            #[doc(hidden)]
6665            impl ::core::convert::From<recordBeaconChainETHBalanceUpdateCall>
6666            for UnderlyingRustTuple<'_> {
6667                fn from(value: recordBeaconChainETHBalanceUpdateCall) -> Self {
6668                    (value.podOwner, value.prevRestakedBalanceWei, value.balanceDeltaWei)
6669                }
6670            }
6671            #[automatically_derived]
6672            #[doc(hidden)]
6673            impl ::core::convert::From<UnderlyingRustTuple<'_>>
6674            for recordBeaconChainETHBalanceUpdateCall {
6675                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6676                    Self {
6677                        podOwner: tuple.0,
6678                        prevRestakedBalanceWei: tuple.1,
6679                        balanceDeltaWei: tuple.2,
6680                    }
6681                }
6682            }
6683        }
6684        {
6685            #[doc(hidden)]
6686            type UnderlyingSolTuple<'a> = ();
6687            #[doc(hidden)]
6688            type UnderlyingRustTuple<'a> = ();
6689            #[cfg(test)]
6690            #[allow(dead_code, unreachable_patterns)]
6691            fn _type_assertion(
6692                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6693            ) {
6694                match _t {
6695                    alloy_sol_types::private::AssertTypeEq::<
6696                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6697                    >(_) => {}
6698                }
6699            }
6700            #[automatically_derived]
6701            #[doc(hidden)]
6702            impl ::core::convert::From<recordBeaconChainETHBalanceUpdateReturn>
6703            for UnderlyingRustTuple<'_> {
6704                fn from(value: recordBeaconChainETHBalanceUpdateReturn) -> Self {
6705                    ()
6706                }
6707            }
6708            #[automatically_derived]
6709            #[doc(hidden)]
6710            impl ::core::convert::From<UnderlyingRustTuple<'_>>
6711            for recordBeaconChainETHBalanceUpdateReturn {
6712                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6713                    Self {}
6714                }
6715            }
6716        }
6717        #[automatically_derived]
6718        impl alloy_sol_types::SolCall for recordBeaconChainETHBalanceUpdateCall {
6719            type Parameters<'a> = (
6720                alloy::sol_types::sol_data::Address,
6721                alloy::sol_types::sol_data::Uint<256>,
6722                alloy::sol_types::sol_data::Int<256>,
6723            );
6724            type Token<'a> = <Self::Parameters<
6725                'a,
6726            > as alloy_sol_types::SolType>::Token<'a>;
6727            type Return = recordBeaconChainETHBalanceUpdateReturn;
6728            type ReturnTuple<'a> = ();
6729            type ReturnToken<'a> = <Self::ReturnTuple<
6730                'a,
6731            > as alloy_sol_types::SolType>::Token<'a>;
6732            const SIGNATURE: &'static str = "recordBeaconChainETHBalanceUpdate(address,uint256,int256)";
6733            const SELECTOR: [u8; 4] = [161u8, 202u8, 120u8, 11u8];
6734            #[inline]
6735            fn new<'a>(
6736                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
6737            ) -> Self {
6738                tuple.into()
6739            }
6740            #[inline]
6741            fn tokenize(&self) -> Self::Token<'_> {
6742                (
6743                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
6744                        &self.podOwner,
6745                    ),
6746                    <alloy::sol_types::sol_data::Uint<
6747                        256,
6748                    > as alloy_sol_types::SolType>::tokenize(
6749                        &self.prevRestakedBalanceWei,
6750                    ),
6751                    <alloy::sol_types::sol_data::Int<
6752                        256,
6753                    > as alloy_sol_types::SolType>::tokenize(&self.balanceDeltaWei),
6754                )
6755            }
6756            #[inline]
6757            fn abi_decode_returns(
6758                data: &[u8],
6759                validate: bool,
6760            ) -> alloy_sol_types::Result<Self::Return> {
6761                <Self::ReturnTuple<
6762                    '_,
6763                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
6764                    .map(Into::into)
6765            }
6766        }
6767    };
6768    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6769    /**Function with signature `removeDepositShares(address,address,uint256)` and selector `0x724af423`.
6770```solidity
6771function removeDepositShares(address staker, address strategy, uint256 depositSharesToRemove) external returns (uint256);
6772```*/
6773    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6774    #[derive(Clone)]
6775    pub struct removeDepositSharesCall {
6776        #[allow(missing_docs)]
6777        pub staker: alloy::sol_types::private::Address,
6778        #[allow(missing_docs)]
6779        pub strategy: alloy::sol_types::private::Address,
6780        #[allow(missing_docs)]
6781        pub depositSharesToRemove: alloy::sol_types::private::primitives::aliases::U256,
6782    }
6783    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6784    ///Container type for the return parameters of the [`removeDepositShares(address,address,uint256)`](removeDepositSharesCall) function.
6785    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6786    #[derive(Clone)]
6787    pub struct removeDepositSharesReturn {
6788        #[allow(missing_docs)]
6789        pub _0: alloy::sol_types::private::primitives::aliases::U256,
6790    }
6791    #[allow(
6792        non_camel_case_types,
6793        non_snake_case,
6794        clippy::pub_underscore_fields,
6795        clippy::style
6796    )]
6797    const _: () = {
6798        use alloy::sol_types as alloy_sol_types;
6799        {
6800            #[doc(hidden)]
6801            type UnderlyingSolTuple<'a> = (
6802                alloy::sol_types::sol_data::Address,
6803                alloy::sol_types::sol_data::Address,
6804                alloy::sol_types::sol_data::Uint<256>,
6805            );
6806            #[doc(hidden)]
6807            type UnderlyingRustTuple<'a> = (
6808                alloy::sol_types::private::Address,
6809                alloy::sol_types::private::Address,
6810                alloy::sol_types::private::primitives::aliases::U256,
6811            );
6812            #[cfg(test)]
6813            #[allow(dead_code, unreachable_patterns)]
6814            fn _type_assertion(
6815                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6816            ) {
6817                match _t {
6818                    alloy_sol_types::private::AssertTypeEq::<
6819                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6820                    >(_) => {}
6821                }
6822            }
6823            #[automatically_derived]
6824            #[doc(hidden)]
6825            impl ::core::convert::From<removeDepositSharesCall>
6826            for UnderlyingRustTuple<'_> {
6827                fn from(value: removeDepositSharesCall) -> Self {
6828                    (value.staker, value.strategy, value.depositSharesToRemove)
6829                }
6830            }
6831            #[automatically_derived]
6832            #[doc(hidden)]
6833            impl ::core::convert::From<UnderlyingRustTuple<'_>>
6834            for removeDepositSharesCall {
6835                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6836                    Self {
6837                        staker: tuple.0,
6838                        strategy: tuple.1,
6839                        depositSharesToRemove: tuple.2,
6840                    }
6841                }
6842            }
6843        }
6844        {
6845            #[doc(hidden)]
6846            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
6847            #[doc(hidden)]
6848            type UnderlyingRustTuple<'a> = (
6849                alloy::sol_types::private::primitives::aliases::U256,
6850            );
6851            #[cfg(test)]
6852            #[allow(dead_code, unreachable_patterns)]
6853            fn _type_assertion(
6854                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6855            ) {
6856                match _t {
6857                    alloy_sol_types::private::AssertTypeEq::<
6858                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6859                    >(_) => {}
6860                }
6861            }
6862            #[automatically_derived]
6863            #[doc(hidden)]
6864            impl ::core::convert::From<removeDepositSharesReturn>
6865            for UnderlyingRustTuple<'_> {
6866                fn from(value: removeDepositSharesReturn) -> Self {
6867                    (value._0,)
6868                }
6869            }
6870            #[automatically_derived]
6871            #[doc(hidden)]
6872            impl ::core::convert::From<UnderlyingRustTuple<'_>>
6873            for removeDepositSharesReturn {
6874                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6875                    Self { _0: tuple.0 }
6876                }
6877            }
6878        }
6879        #[automatically_derived]
6880        impl alloy_sol_types::SolCall for removeDepositSharesCall {
6881            type Parameters<'a> = (
6882                alloy::sol_types::sol_data::Address,
6883                alloy::sol_types::sol_data::Address,
6884                alloy::sol_types::sol_data::Uint<256>,
6885            );
6886            type Token<'a> = <Self::Parameters<
6887                'a,
6888            > as alloy_sol_types::SolType>::Token<'a>;
6889            type Return = removeDepositSharesReturn;
6890            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
6891            type ReturnToken<'a> = <Self::ReturnTuple<
6892                'a,
6893            > as alloy_sol_types::SolType>::Token<'a>;
6894            const SIGNATURE: &'static str = "removeDepositShares(address,address,uint256)";
6895            const SELECTOR: [u8; 4] = [114u8, 74u8, 244u8, 35u8];
6896            #[inline]
6897            fn new<'a>(
6898                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
6899            ) -> Self {
6900                tuple.into()
6901            }
6902            #[inline]
6903            fn tokenize(&self) -> Self::Token<'_> {
6904                (
6905                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
6906                        &self.staker,
6907                    ),
6908                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
6909                        &self.strategy,
6910                    ),
6911                    <alloy::sol_types::sol_data::Uint<
6912                        256,
6913                    > as alloy_sol_types::SolType>::tokenize(&self.depositSharesToRemove),
6914                )
6915            }
6916            #[inline]
6917            fn abi_decode_returns(
6918                data: &[u8],
6919                validate: bool,
6920            ) -> alloy_sol_types::Result<Self::Return> {
6921                <Self::ReturnTuple<
6922                    '_,
6923                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
6924                    .map(Into::into)
6925            }
6926        }
6927    };
6928    #[derive(Default, Debug, PartialEq, Eq, Hash)]
6929    /**Function with signature `renounceOwnership()` and selector `0x715018a6`.
6930```solidity
6931function renounceOwnership() external;
6932```*/
6933    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6934    #[derive(Clone)]
6935    pub struct renounceOwnershipCall {}
6936    ///Container type for the return parameters of the [`renounceOwnership()`](renounceOwnershipCall) function.
6937    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
6938    #[derive(Clone)]
6939    pub struct renounceOwnershipReturn {}
6940    #[allow(
6941        non_camel_case_types,
6942        non_snake_case,
6943        clippy::pub_underscore_fields,
6944        clippy::style
6945    )]
6946    const _: () = {
6947        use alloy::sol_types as alloy_sol_types;
6948        {
6949            #[doc(hidden)]
6950            type UnderlyingSolTuple<'a> = ();
6951            #[doc(hidden)]
6952            type UnderlyingRustTuple<'a> = ();
6953            #[cfg(test)]
6954            #[allow(dead_code, unreachable_patterns)]
6955            fn _type_assertion(
6956                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6957            ) {
6958                match _t {
6959                    alloy_sol_types::private::AssertTypeEq::<
6960                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6961                    >(_) => {}
6962                }
6963            }
6964            #[automatically_derived]
6965            #[doc(hidden)]
6966            impl ::core::convert::From<renounceOwnershipCall>
6967            for UnderlyingRustTuple<'_> {
6968                fn from(value: renounceOwnershipCall) -> Self {
6969                    ()
6970                }
6971            }
6972            #[automatically_derived]
6973            #[doc(hidden)]
6974            impl ::core::convert::From<UnderlyingRustTuple<'_>>
6975            for renounceOwnershipCall {
6976                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
6977                    Self {}
6978                }
6979            }
6980        }
6981        {
6982            #[doc(hidden)]
6983            type UnderlyingSolTuple<'a> = ();
6984            #[doc(hidden)]
6985            type UnderlyingRustTuple<'a> = ();
6986            #[cfg(test)]
6987            #[allow(dead_code, unreachable_patterns)]
6988            fn _type_assertion(
6989                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
6990            ) {
6991                match _t {
6992                    alloy_sol_types::private::AssertTypeEq::<
6993                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
6994                    >(_) => {}
6995                }
6996            }
6997            #[automatically_derived]
6998            #[doc(hidden)]
6999            impl ::core::convert::From<renounceOwnershipReturn>
7000            for UnderlyingRustTuple<'_> {
7001                fn from(value: renounceOwnershipReturn) -> Self {
7002                    ()
7003                }
7004            }
7005            #[automatically_derived]
7006            #[doc(hidden)]
7007            impl ::core::convert::From<UnderlyingRustTuple<'_>>
7008            for renounceOwnershipReturn {
7009                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7010                    Self {}
7011                }
7012            }
7013        }
7014        #[automatically_derived]
7015        impl alloy_sol_types::SolCall for renounceOwnershipCall {
7016            type Parameters<'a> = ();
7017            type Token<'a> = <Self::Parameters<
7018                'a,
7019            > as alloy_sol_types::SolType>::Token<'a>;
7020            type Return = renounceOwnershipReturn;
7021            type ReturnTuple<'a> = ();
7022            type ReturnToken<'a> = <Self::ReturnTuple<
7023                'a,
7024            > as alloy_sol_types::SolType>::Token<'a>;
7025            const SIGNATURE: &'static str = "renounceOwnership()";
7026            const SELECTOR: [u8; 4] = [113u8, 80u8, 24u8, 166u8];
7027            #[inline]
7028            fn new<'a>(
7029                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
7030            ) -> Self {
7031                tuple.into()
7032            }
7033            #[inline]
7034            fn tokenize(&self) -> Self::Token<'_> {
7035                ()
7036            }
7037            #[inline]
7038            fn abi_decode_returns(
7039                data: &[u8],
7040                validate: bool,
7041            ) -> alloy_sol_types::Result<Self::Return> {
7042                <Self::ReturnTuple<
7043                    '_,
7044                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
7045                    .map(Into::into)
7046            }
7047        }
7048    };
7049    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7050    /**Function with signature `setPectraForkTimestamp(uint64)` and selector `0x5a26fbf4`.
7051```solidity
7052function setPectraForkTimestamp(uint64 timestamp) external;
7053```*/
7054    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7055    #[derive(Clone)]
7056    pub struct setPectraForkTimestampCall {
7057        #[allow(missing_docs)]
7058        pub timestamp: u64,
7059    }
7060    ///Container type for the return parameters of the [`setPectraForkTimestamp(uint64)`](setPectraForkTimestampCall) function.
7061    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7062    #[derive(Clone)]
7063    pub struct setPectraForkTimestampReturn {}
7064    #[allow(
7065        non_camel_case_types,
7066        non_snake_case,
7067        clippy::pub_underscore_fields,
7068        clippy::style
7069    )]
7070    const _: () = {
7071        use alloy::sol_types as alloy_sol_types;
7072        {
7073            #[doc(hidden)]
7074            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<64>,);
7075            #[doc(hidden)]
7076            type UnderlyingRustTuple<'a> = (u64,);
7077            #[cfg(test)]
7078            #[allow(dead_code, unreachable_patterns)]
7079            fn _type_assertion(
7080                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7081            ) {
7082                match _t {
7083                    alloy_sol_types::private::AssertTypeEq::<
7084                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7085                    >(_) => {}
7086                }
7087            }
7088            #[automatically_derived]
7089            #[doc(hidden)]
7090            impl ::core::convert::From<setPectraForkTimestampCall>
7091            for UnderlyingRustTuple<'_> {
7092                fn from(value: setPectraForkTimestampCall) -> Self {
7093                    (value.timestamp,)
7094                }
7095            }
7096            #[automatically_derived]
7097            #[doc(hidden)]
7098            impl ::core::convert::From<UnderlyingRustTuple<'_>>
7099            for setPectraForkTimestampCall {
7100                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7101                    Self { timestamp: tuple.0 }
7102                }
7103            }
7104        }
7105        {
7106            #[doc(hidden)]
7107            type UnderlyingSolTuple<'a> = ();
7108            #[doc(hidden)]
7109            type UnderlyingRustTuple<'a> = ();
7110            #[cfg(test)]
7111            #[allow(dead_code, unreachable_patterns)]
7112            fn _type_assertion(
7113                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7114            ) {
7115                match _t {
7116                    alloy_sol_types::private::AssertTypeEq::<
7117                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7118                    >(_) => {}
7119                }
7120            }
7121            #[automatically_derived]
7122            #[doc(hidden)]
7123            impl ::core::convert::From<setPectraForkTimestampReturn>
7124            for UnderlyingRustTuple<'_> {
7125                fn from(value: setPectraForkTimestampReturn) -> Self {
7126                    ()
7127                }
7128            }
7129            #[automatically_derived]
7130            #[doc(hidden)]
7131            impl ::core::convert::From<UnderlyingRustTuple<'_>>
7132            for setPectraForkTimestampReturn {
7133                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7134                    Self {}
7135                }
7136            }
7137        }
7138        #[automatically_derived]
7139        impl alloy_sol_types::SolCall for setPectraForkTimestampCall {
7140            type Parameters<'a> = (alloy::sol_types::sol_data::Uint<64>,);
7141            type Token<'a> = <Self::Parameters<
7142                'a,
7143            > as alloy_sol_types::SolType>::Token<'a>;
7144            type Return = setPectraForkTimestampReturn;
7145            type ReturnTuple<'a> = ();
7146            type ReturnToken<'a> = <Self::ReturnTuple<
7147                'a,
7148            > as alloy_sol_types::SolType>::Token<'a>;
7149            const SIGNATURE: &'static str = "setPectraForkTimestamp(uint64)";
7150            const SELECTOR: [u8; 4] = [90u8, 38u8, 251u8, 244u8];
7151            #[inline]
7152            fn new<'a>(
7153                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
7154            ) -> Self {
7155                tuple.into()
7156            }
7157            #[inline]
7158            fn tokenize(&self) -> Self::Token<'_> {
7159                (
7160                    <alloy::sol_types::sol_data::Uint<
7161                        64,
7162                    > as alloy_sol_types::SolType>::tokenize(&self.timestamp),
7163                )
7164            }
7165            #[inline]
7166            fn abi_decode_returns(
7167                data: &[u8],
7168                validate: bool,
7169            ) -> alloy_sol_types::Result<Self::Return> {
7170                <Self::ReturnTuple<
7171                    '_,
7172                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
7173                    .map(Into::into)
7174            }
7175        }
7176    };
7177    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7178    /**Function with signature `setProofTimestampSetter(address)` and selector `0x0d1e9de1`.
7179```solidity
7180function setProofTimestampSetter(address newProofTimestampSetter) external;
7181```*/
7182    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7183    #[derive(Clone)]
7184    pub struct setProofTimestampSetterCall {
7185        #[allow(missing_docs)]
7186        pub newProofTimestampSetter: alloy::sol_types::private::Address,
7187    }
7188    ///Container type for the return parameters of the [`setProofTimestampSetter(address)`](setProofTimestampSetterCall) function.
7189    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7190    #[derive(Clone)]
7191    pub struct setProofTimestampSetterReturn {}
7192    #[allow(
7193        non_camel_case_types,
7194        non_snake_case,
7195        clippy::pub_underscore_fields,
7196        clippy::style
7197    )]
7198    const _: () = {
7199        use alloy::sol_types as alloy_sol_types;
7200        {
7201            #[doc(hidden)]
7202            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
7203            #[doc(hidden)]
7204            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
7205            #[cfg(test)]
7206            #[allow(dead_code, unreachable_patterns)]
7207            fn _type_assertion(
7208                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7209            ) {
7210                match _t {
7211                    alloy_sol_types::private::AssertTypeEq::<
7212                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7213                    >(_) => {}
7214                }
7215            }
7216            #[automatically_derived]
7217            #[doc(hidden)]
7218            impl ::core::convert::From<setProofTimestampSetterCall>
7219            for UnderlyingRustTuple<'_> {
7220                fn from(value: setProofTimestampSetterCall) -> Self {
7221                    (value.newProofTimestampSetter,)
7222                }
7223            }
7224            #[automatically_derived]
7225            #[doc(hidden)]
7226            impl ::core::convert::From<UnderlyingRustTuple<'_>>
7227            for setProofTimestampSetterCall {
7228                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7229                    Self {
7230                        newProofTimestampSetter: tuple.0,
7231                    }
7232                }
7233            }
7234        }
7235        {
7236            #[doc(hidden)]
7237            type UnderlyingSolTuple<'a> = ();
7238            #[doc(hidden)]
7239            type UnderlyingRustTuple<'a> = ();
7240            #[cfg(test)]
7241            #[allow(dead_code, unreachable_patterns)]
7242            fn _type_assertion(
7243                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7244            ) {
7245                match _t {
7246                    alloy_sol_types::private::AssertTypeEq::<
7247                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7248                    >(_) => {}
7249                }
7250            }
7251            #[automatically_derived]
7252            #[doc(hidden)]
7253            impl ::core::convert::From<setProofTimestampSetterReturn>
7254            for UnderlyingRustTuple<'_> {
7255                fn from(value: setProofTimestampSetterReturn) -> Self {
7256                    ()
7257                }
7258            }
7259            #[automatically_derived]
7260            #[doc(hidden)]
7261            impl ::core::convert::From<UnderlyingRustTuple<'_>>
7262            for setProofTimestampSetterReturn {
7263                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7264                    Self {}
7265                }
7266            }
7267        }
7268        #[automatically_derived]
7269        impl alloy_sol_types::SolCall for setProofTimestampSetterCall {
7270            type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
7271            type Token<'a> = <Self::Parameters<
7272                'a,
7273            > as alloy_sol_types::SolType>::Token<'a>;
7274            type Return = setProofTimestampSetterReturn;
7275            type ReturnTuple<'a> = ();
7276            type ReturnToken<'a> = <Self::ReturnTuple<
7277                'a,
7278            > as alloy_sol_types::SolType>::Token<'a>;
7279            const SIGNATURE: &'static str = "setProofTimestampSetter(address)";
7280            const SELECTOR: [u8; 4] = [13u8, 30u8, 157u8, 225u8];
7281            #[inline]
7282            fn new<'a>(
7283                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
7284            ) -> Self {
7285                tuple.into()
7286            }
7287            #[inline]
7288            fn tokenize(&self) -> Self::Token<'_> {
7289                (
7290                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
7291                        &self.newProofTimestampSetter,
7292                    ),
7293                )
7294            }
7295            #[inline]
7296            fn abi_decode_returns(
7297                data: &[u8],
7298                validate: bool,
7299            ) -> alloy_sol_types::Result<Self::Return> {
7300                <Self::ReturnTuple<
7301                    '_,
7302                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
7303                    .map(Into::into)
7304            }
7305        }
7306    };
7307    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7308    /**Function with signature `stake(bytes,bytes,bytes32)` and selector `0x9b4e4634`.
7309```solidity
7310function stake(bytes memory pubkey, bytes memory signature, bytes32 depositDataRoot) external payable;
7311```*/
7312    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7313    #[derive(Clone)]
7314    pub struct stakeCall {
7315        #[allow(missing_docs)]
7316        pub pubkey: alloy::sol_types::private::Bytes,
7317        #[allow(missing_docs)]
7318        pub signature: alloy::sol_types::private::Bytes,
7319        #[allow(missing_docs)]
7320        pub depositDataRoot: alloy::sol_types::private::FixedBytes<32>,
7321    }
7322    ///Container type for the return parameters of the [`stake(bytes,bytes,bytes32)`](stakeCall) function.
7323    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7324    #[derive(Clone)]
7325    pub struct stakeReturn {}
7326    #[allow(
7327        non_camel_case_types,
7328        non_snake_case,
7329        clippy::pub_underscore_fields,
7330        clippy::style
7331    )]
7332    const _: () = {
7333        use alloy::sol_types as alloy_sol_types;
7334        {
7335            #[doc(hidden)]
7336            type UnderlyingSolTuple<'a> = (
7337                alloy::sol_types::sol_data::Bytes,
7338                alloy::sol_types::sol_data::Bytes,
7339                alloy::sol_types::sol_data::FixedBytes<32>,
7340            );
7341            #[doc(hidden)]
7342            type UnderlyingRustTuple<'a> = (
7343                alloy::sol_types::private::Bytes,
7344                alloy::sol_types::private::Bytes,
7345                alloy::sol_types::private::FixedBytes<32>,
7346            );
7347            #[cfg(test)]
7348            #[allow(dead_code, unreachable_patterns)]
7349            fn _type_assertion(
7350                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7351            ) {
7352                match _t {
7353                    alloy_sol_types::private::AssertTypeEq::<
7354                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7355                    >(_) => {}
7356                }
7357            }
7358            #[automatically_derived]
7359            #[doc(hidden)]
7360            impl ::core::convert::From<stakeCall> for UnderlyingRustTuple<'_> {
7361                fn from(value: stakeCall) -> Self {
7362                    (value.pubkey, value.signature, value.depositDataRoot)
7363                }
7364            }
7365            #[automatically_derived]
7366            #[doc(hidden)]
7367            impl ::core::convert::From<UnderlyingRustTuple<'_>> for stakeCall {
7368                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7369                    Self {
7370                        pubkey: tuple.0,
7371                        signature: tuple.1,
7372                        depositDataRoot: tuple.2,
7373                    }
7374                }
7375            }
7376        }
7377        {
7378            #[doc(hidden)]
7379            type UnderlyingSolTuple<'a> = ();
7380            #[doc(hidden)]
7381            type UnderlyingRustTuple<'a> = ();
7382            #[cfg(test)]
7383            #[allow(dead_code, unreachable_patterns)]
7384            fn _type_assertion(
7385                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7386            ) {
7387                match _t {
7388                    alloy_sol_types::private::AssertTypeEq::<
7389                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7390                    >(_) => {}
7391                }
7392            }
7393            #[automatically_derived]
7394            #[doc(hidden)]
7395            impl ::core::convert::From<stakeReturn> for UnderlyingRustTuple<'_> {
7396                fn from(value: stakeReturn) -> Self {
7397                    ()
7398                }
7399            }
7400            #[automatically_derived]
7401            #[doc(hidden)]
7402            impl ::core::convert::From<UnderlyingRustTuple<'_>> for stakeReturn {
7403                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7404                    Self {}
7405                }
7406            }
7407        }
7408        #[automatically_derived]
7409        impl alloy_sol_types::SolCall for stakeCall {
7410            type Parameters<'a> = (
7411                alloy::sol_types::sol_data::Bytes,
7412                alloy::sol_types::sol_data::Bytes,
7413                alloy::sol_types::sol_data::FixedBytes<32>,
7414            );
7415            type Token<'a> = <Self::Parameters<
7416                'a,
7417            > as alloy_sol_types::SolType>::Token<'a>;
7418            type Return = stakeReturn;
7419            type ReturnTuple<'a> = ();
7420            type ReturnToken<'a> = <Self::ReturnTuple<
7421                'a,
7422            > as alloy_sol_types::SolType>::Token<'a>;
7423            const SIGNATURE: &'static str = "stake(bytes,bytes,bytes32)";
7424            const SELECTOR: [u8; 4] = [155u8, 78u8, 70u8, 52u8];
7425            #[inline]
7426            fn new<'a>(
7427                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
7428            ) -> Self {
7429                tuple.into()
7430            }
7431            #[inline]
7432            fn tokenize(&self) -> Self::Token<'_> {
7433                (
7434                    <alloy::sol_types::sol_data::Bytes as alloy_sol_types::SolType>::tokenize(
7435                        &self.pubkey,
7436                    ),
7437                    <alloy::sol_types::sol_data::Bytes as alloy_sol_types::SolType>::tokenize(
7438                        &self.signature,
7439                    ),
7440                    <alloy::sol_types::sol_data::FixedBytes<
7441                        32,
7442                    > as alloy_sol_types::SolType>::tokenize(&self.depositDataRoot),
7443                )
7444            }
7445            #[inline]
7446            fn abi_decode_returns(
7447                data: &[u8],
7448                validate: bool,
7449            ) -> alloy_sol_types::Result<Self::Return> {
7450                <Self::ReturnTuple<
7451                    '_,
7452                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
7453                    .map(Into::into)
7454            }
7455        }
7456    };
7457    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7458    /**Function with signature `stakerDepositShares(address,address)` and selector `0xfe243a17`.
7459```solidity
7460function stakerDepositShares(address user, address strategy) external view returns (uint256 depositShares);
7461```*/
7462    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7463    #[derive(Clone)]
7464    pub struct stakerDepositSharesCall {
7465        #[allow(missing_docs)]
7466        pub user: alloy::sol_types::private::Address,
7467        #[allow(missing_docs)]
7468        pub strategy: alloy::sol_types::private::Address,
7469    }
7470    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7471    ///Container type for the return parameters of the [`stakerDepositShares(address,address)`](stakerDepositSharesCall) function.
7472    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7473    #[derive(Clone)]
7474    pub struct stakerDepositSharesReturn {
7475        #[allow(missing_docs)]
7476        pub depositShares: alloy::sol_types::private::primitives::aliases::U256,
7477    }
7478    #[allow(
7479        non_camel_case_types,
7480        non_snake_case,
7481        clippy::pub_underscore_fields,
7482        clippy::style
7483    )]
7484    const _: () = {
7485        use alloy::sol_types as alloy_sol_types;
7486        {
7487            #[doc(hidden)]
7488            type UnderlyingSolTuple<'a> = (
7489                alloy::sol_types::sol_data::Address,
7490                alloy::sol_types::sol_data::Address,
7491            );
7492            #[doc(hidden)]
7493            type UnderlyingRustTuple<'a> = (
7494                alloy::sol_types::private::Address,
7495                alloy::sol_types::private::Address,
7496            );
7497            #[cfg(test)]
7498            #[allow(dead_code, unreachable_patterns)]
7499            fn _type_assertion(
7500                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7501            ) {
7502                match _t {
7503                    alloy_sol_types::private::AssertTypeEq::<
7504                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7505                    >(_) => {}
7506                }
7507            }
7508            #[automatically_derived]
7509            #[doc(hidden)]
7510            impl ::core::convert::From<stakerDepositSharesCall>
7511            for UnderlyingRustTuple<'_> {
7512                fn from(value: stakerDepositSharesCall) -> Self {
7513                    (value.user, value.strategy)
7514                }
7515            }
7516            #[automatically_derived]
7517            #[doc(hidden)]
7518            impl ::core::convert::From<UnderlyingRustTuple<'_>>
7519            for stakerDepositSharesCall {
7520                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7521                    Self {
7522                        user: tuple.0,
7523                        strategy: tuple.1,
7524                    }
7525                }
7526            }
7527        }
7528        {
7529            #[doc(hidden)]
7530            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
7531            #[doc(hidden)]
7532            type UnderlyingRustTuple<'a> = (
7533                alloy::sol_types::private::primitives::aliases::U256,
7534            );
7535            #[cfg(test)]
7536            #[allow(dead_code, unreachable_patterns)]
7537            fn _type_assertion(
7538                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7539            ) {
7540                match _t {
7541                    alloy_sol_types::private::AssertTypeEq::<
7542                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7543                    >(_) => {}
7544                }
7545            }
7546            #[automatically_derived]
7547            #[doc(hidden)]
7548            impl ::core::convert::From<stakerDepositSharesReturn>
7549            for UnderlyingRustTuple<'_> {
7550                fn from(value: stakerDepositSharesReturn) -> Self {
7551                    (value.depositShares,)
7552                }
7553            }
7554            #[automatically_derived]
7555            #[doc(hidden)]
7556            impl ::core::convert::From<UnderlyingRustTuple<'_>>
7557            for stakerDepositSharesReturn {
7558                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7559                    Self { depositShares: tuple.0 }
7560                }
7561            }
7562        }
7563        #[automatically_derived]
7564        impl alloy_sol_types::SolCall for stakerDepositSharesCall {
7565            type Parameters<'a> = (
7566                alloy::sol_types::sol_data::Address,
7567                alloy::sol_types::sol_data::Address,
7568            );
7569            type Token<'a> = <Self::Parameters<
7570                'a,
7571            > as alloy_sol_types::SolType>::Token<'a>;
7572            type Return = stakerDepositSharesReturn;
7573            type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
7574            type ReturnToken<'a> = <Self::ReturnTuple<
7575                'a,
7576            > as alloy_sol_types::SolType>::Token<'a>;
7577            const SIGNATURE: &'static str = "stakerDepositShares(address,address)";
7578            const SELECTOR: [u8; 4] = [254u8, 36u8, 58u8, 23u8];
7579            #[inline]
7580            fn new<'a>(
7581                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
7582            ) -> Self {
7583                tuple.into()
7584            }
7585            #[inline]
7586            fn tokenize(&self) -> Self::Token<'_> {
7587                (
7588                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
7589                        &self.user,
7590                    ),
7591                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
7592                        &self.strategy,
7593                    ),
7594                )
7595            }
7596            #[inline]
7597            fn abi_decode_returns(
7598                data: &[u8],
7599                validate: bool,
7600            ) -> alloy_sol_types::Result<Self::Return> {
7601                <Self::ReturnTuple<
7602                    '_,
7603                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
7604                    .map(Into::into)
7605            }
7606        }
7607    };
7608    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7609    /**Function with signature `transferOwnership(address)` and selector `0xf2fde38b`.
7610```solidity
7611function transferOwnership(address newOwner) external;
7612```*/
7613    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7614    #[derive(Clone)]
7615    pub struct transferOwnershipCall {
7616        #[allow(missing_docs)]
7617        pub newOwner: alloy::sol_types::private::Address,
7618    }
7619    ///Container type for the return parameters of the [`transferOwnership(address)`](transferOwnershipCall) function.
7620    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7621    #[derive(Clone)]
7622    pub struct transferOwnershipReturn {}
7623    #[allow(
7624        non_camel_case_types,
7625        non_snake_case,
7626        clippy::pub_underscore_fields,
7627        clippy::style
7628    )]
7629    const _: () = {
7630        use alloy::sol_types as alloy_sol_types;
7631        {
7632            #[doc(hidden)]
7633            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
7634            #[doc(hidden)]
7635            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
7636            #[cfg(test)]
7637            #[allow(dead_code, unreachable_patterns)]
7638            fn _type_assertion(
7639                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7640            ) {
7641                match _t {
7642                    alloy_sol_types::private::AssertTypeEq::<
7643                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7644                    >(_) => {}
7645                }
7646            }
7647            #[automatically_derived]
7648            #[doc(hidden)]
7649            impl ::core::convert::From<transferOwnershipCall>
7650            for UnderlyingRustTuple<'_> {
7651                fn from(value: transferOwnershipCall) -> Self {
7652                    (value.newOwner,)
7653                }
7654            }
7655            #[automatically_derived]
7656            #[doc(hidden)]
7657            impl ::core::convert::From<UnderlyingRustTuple<'_>>
7658            for transferOwnershipCall {
7659                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7660                    Self { newOwner: tuple.0 }
7661                }
7662            }
7663        }
7664        {
7665            #[doc(hidden)]
7666            type UnderlyingSolTuple<'a> = ();
7667            #[doc(hidden)]
7668            type UnderlyingRustTuple<'a> = ();
7669            #[cfg(test)]
7670            #[allow(dead_code, unreachable_patterns)]
7671            fn _type_assertion(
7672                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7673            ) {
7674                match _t {
7675                    alloy_sol_types::private::AssertTypeEq::<
7676                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7677                    >(_) => {}
7678                }
7679            }
7680            #[automatically_derived]
7681            #[doc(hidden)]
7682            impl ::core::convert::From<transferOwnershipReturn>
7683            for UnderlyingRustTuple<'_> {
7684                fn from(value: transferOwnershipReturn) -> Self {
7685                    ()
7686                }
7687            }
7688            #[automatically_derived]
7689            #[doc(hidden)]
7690            impl ::core::convert::From<UnderlyingRustTuple<'_>>
7691            for transferOwnershipReturn {
7692                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7693                    Self {}
7694                }
7695            }
7696        }
7697        #[automatically_derived]
7698        impl alloy_sol_types::SolCall for transferOwnershipCall {
7699            type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
7700            type Token<'a> = <Self::Parameters<
7701                'a,
7702            > as alloy_sol_types::SolType>::Token<'a>;
7703            type Return = transferOwnershipReturn;
7704            type ReturnTuple<'a> = ();
7705            type ReturnToken<'a> = <Self::ReturnTuple<
7706                'a,
7707            > as alloy_sol_types::SolType>::Token<'a>;
7708            const SIGNATURE: &'static str = "transferOwnership(address)";
7709            const SELECTOR: [u8; 4] = [242u8, 253u8, 227u8, 139u8];
7710            #[inline]
7711            fn new<'a>(
7712                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
7713            ) -> Self {
7714                tuple.into()
7715            }
7716            #[inline]
7717            fn tokenize(&self) -> Self::Token<'_> {
7718                (
7719                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
7720                        &self.newOwner,
7721                    ),
7722                )
7723            }
7724            #[inline]
7725            fn abi_decode_returns(
7726                data: &[u8],
7727                validate: bool,
7728            ) -> alloy_sol_types::Result<Self::Return> {
7729                <Self::ReturnTuple<
7730                    '_,
7731                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
7732                    .map(Into::into)
7733            }
7734        }
7735    };
7736    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7737    /**Function with signature `unpause(uint256)` and selector `0xfabc1cbc`.
7738```solidity
7739function unpause(uint256 newPausedStatus) external;
7740```*/
7741    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7742    #[derive(Clone)]
7743    pub struct unpauseCall {
7744        #[allow(missing_docs)]
7745        pub newPausedStatus: alloy::sol_types::private::primitives::aliases::U256,
7746    }
7747    ///Container type for the return parameters of the [`unpause(uint256)`](unpauseCall) function.
7748    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7749    #[derive(Clone)]
7750    pub struct unpauseReturn {}
7751    #[allow(
7752        non_camel_case_types,
7753        non_snake_case,
7754        clippy::pub_underscore_fields,
7755        clippy::style
7756    )]
7757    const _: () = {
7758        use alloy::sol_types as alloy_sol_types;
7759        {
7760            #[doc(hidden)]
7761            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
7762            #[doc(hidden)]
7763            type UnderlyingRustTuple<'a> = (
7764                alloy::sol_types::private::primitives::aliases::U256,
7765            );
7766            #[cfg(test)]
7767            #[allow(dead_code, unreachable_patterns)]
7768            fn _type_assertion(
7769                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7770            ) {
7771                match _t {
7772                    alloy_sol_types::private::AssertTypeEq::<
7773                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7774                    >(_) => {}
7775                }
7776            }
7777            #[automatically_derived]
7778            #[doc(hidden)]
7779            impl ::core::convert::From<unpauseCall> for UnderlyingRustTuple<'_> {
7780                fn from(value: unpauseCall) -> Self {
7781                    (value.newPausedStatus,)
7782                }
7783            }
7784            #[automatically_derived]
7785            #[doc(hidden)]
7786            impl ::core::convert::From<UnderlyingRustTuple<'_>> for unpauseCall {
7787                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7788                    Self { newPausedStatus: tuple.0 }
7789                }
7790            }
7791        }
7792        {
7793            #[doc(hidden)]
7794            type UnderlyingSolTuple<'a> = ();
7795            #[doc(hidden)]
7796            type UnderlyingRustTuple<'a> = ();
7797            #[cfg(test)]
7798            #[allow(dead_code, unreachable_patterns)]
7799            fn _type_assertion(
7800                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7801            ) {
7802                match _t {
7803                    alloy_sol_types::private::AssertTypeEq::<
7804                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7805                    >(_) => {}
7806                }
7807            }
7808            #[automatically_derived]
7809            #[doc(hidden)]
7810            impl ::core::convert::From<unpauseReturn> for UnderlyingRustTuple<'_> {
7811                fn from(value: unpauseReturn) -> Self {
7812                    ()
7813                }
7814            }
7815            #[automatically_derived]
7816            #[doc(hidden)]
7817            impl ::core::convert::From<UnderlyingRustTuple<'_>> for unpauseReturn {
7818                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7819                    Self {}
7820                }
7821            }
7822        }
7823        #[automatically_derived]
7824        impl alloy_sol_types::SolCall for unpauseCall {
7825            type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,);
7826            type Token<'a> = <Self::Parameters<
7827                'a,
7828            > as alloy_sol_types::SolType>::Token<'a>;
7829            type Return = unpauseReturn;
7830            type ReturnTuple<'a> = ();
7831            type ReturnToken<'a> = <Self::ReturnTuple<
7832                'a,
7833            > as alloy_sol_types::SolType>::Token<'a>;
7834            const SIGNATURE: &'static str = "unpause(uint256)";
7835            const SELECTOR: [u8; 4] = [250u8, 188u8, 28u8, 188u8];
7836            #[inline]
7837            fn new<'a>(
7838                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
7839            ) -> Self {
7840                tuple.into()
7841            }
7842            #[inline]
7843            fn tokenize(&self) -> Self::Token<'_> {
7844                (
7845                    <alloy::sol_types::sol_data::Uint<
7846                        256,
7847                    > as alloy_sol_types::SolType>::tokenize(&self.newPausedStatus),
7848                )
7849            }
7850            #[inline]
7851            fn abi_decode_returns(
7852                data: &[u8],
7853                validate: bool,
7854            ) -> alloy_sol_types::Result<Self::Return> {
7855                <Self::ReturnTuple<
7856                    '_,
7857                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
7858                    .map(Into::into)
7859            }
7860        }
7861    };
7862    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7863    /**Function with signature `version()` and selector `0x54fd4d50`.
7864```solidity
7865function version() external view returns (string memory);
7866```*/
7867    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7868    #[derive(Clone)]
7869    pub struct versionCall {}
7870    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7871    ///Container type for the return parameters of the [`version()`](versionCall) function.
7872    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7873    #[derive(Clone)]
7874    pub struct versionReturn {
7875        #[allow(missing_docs)]
7876        pub _0: alloy::sol_types::private::String,
7877    }
7878    #[allow(
7879        non_camel_case_types,
7880        non_snake_case,
7881        clippy::pub_underscore_fields,
7882        clippy::style
7883    )]
7884    const _: () = {
7885        use alloy::sol_types as alloy_sol_types;
7886        {
7887            #[doc(hidden)]
7888            type UnderlyingSolTuple<'a> = ();
7889            #[doc(hidden)]
7890            type UnderlyingRustTuple<'a> = ();
7891            #[cfg(test)]
7892            #[allow(dead_code, unreachable_patterns)]
7893            fn _type_assertion(
7894                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7895            ) {
7896                match _t {
7897                    alloy_sol_types::private::AssertTypeEq::<
7898                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7899                    >(_) => {}
7900                }
7901            }
7902            #[automatically_derived]
7903            #[doc(hidden)]
7904            impl ::core::convert::From<versionCall> for UnderlyingRustTuple<'_> {
7905                fn from(value: versionCall) -> Self {
7906                    ()
7907                }
7908            }
7909            #[automatically_derived]
7910            #[doc(hidden)]
7911            impl ::core::convert::From<UnderlyingRustTuple<'_>> for versionCall {
7912                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7913                    Self {}
7914                }
7915            }
7916        }
7917        {
7918            #[doc(hidden)]
7919            type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,);
7920            #[doc(hidden)]
7921            type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,);
7922            #[cfg(test)]
7923            #[allow(dead_code, unreachable_patterns)]
7924            fn _type_assertion(
7925                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
7926            ) {
7927                match _t {
7928                    alloy_sol_types::private::AssertTypeEq::<
7929                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
7930                    >(_) => {}
7931                }
7932            }
7933            #[automatically_derived]
7934            #[doc(hidden)]
7935            impl ::core::convert::From<versionReturn> for UnderlyingRustTuple<'_> {
7936                fn from(value: versionReturn) -> Self {
7937                    (value._0,)
7938                }
7939            }
7940            #[automatically_derived]
7941            #[doc(hidden)]
7942            impl ::core::convert::From<UnderlyingRustTuple<'_>> for versionReturn {
7943                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
7944                    Self { _0: tuple.0 }
7945                }
7946            }
7947        }
7948        #[automatically_derived]
7949        impl alloy_sol_types::SolCall for versionCall {
7950            type Parameters<'a> = ();
7951            type Token<'a> = <Self::Parameters<
7952                'a,
7953            > as alloy_sol_types::SolType>::Token<'a>;
7954            type Return = versionReturn;
7955            type ReturnTuple<'a> = (alloy::sol_types::sol_data::String,);
7956            type ReturnToken<'a> = <Self::ReturnTuple<
7957                'a,
7958            > as alloy_sol_types::SolType>::Token<'a>;
7959            const SIGNATURE: &'static str = "version()";
7960            const SELECTOR: [u8; 4] = [84u8, 253u8, 77u8, 80u8];
7961            #[inline]
7962            fn new<'a>(
7963                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
7964            ) -> Self {
7965                tuple.into()
7966            }
7967            #[inline]
7968            fn tokenize(&self) -> Self::Token<'_> {
7969                ()
7970            }
7971            #[inline]
7972            fn abi_decode_returns(
7973                data: &[u8],
7974                validate: bool,
7975            ) -> alloy_sol_types::Result<Self::Return> {
7976                <Self::ReturnTuple<
7977                    '_,
7978                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
7979                    .map(Into::into)
7980            }
7981        }
7982    };
7983    #[derive(Default, Debug, PartialEq, Eq, Hash)]
7984    /**Function with signature `withdrawSharesAsTokens(address,address,address,uint256)` and selector `0x2eae418c`.
7985```solidity
7986function withdrawSharesAsTokens(address staker, address strategy, address, uint256 shares) external;
7987```*/
7988    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
7989    #[derive(Clone)]
7990    pub struct withdrawSharesAsTokensCall {
7991        #[allow(missing_docs)]
7992        pub staker: alloy::sol_types::private::Address,
7993        #[allow(missing_docs)]
7994        pub strategy: alloy::sol_types::private::Address,
7995        #[allow(missing_docs)]
7996        pub _2: alloy::sol_types::private::Address,
7997        #[allow(missing_docs)]
7998        pub shares: alloy::sol_types::private::primitives::aliases::U256,
7999    }
8000    ///Container type for the return parameters of the [`withdrawSharesAsTokens(address,address,address,uint256)`](withdrawSharesAsTokensCall) function.
8001    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
8002    #[derive(Clone)]
8003    pub struct withdrawSharesAsTokensReturn {}
8004    #[allow(
8005        non_camel_case_types,
8006        non_snake_case,
8007        clippy::pub_underscore_fields,
8008        clippy::style
8009    )]
8010    const _: () = {
8011        use alloy::sol_types as alloy_sol_types;
8012        {
8013            #[doc(hidden)]
8014            type UnderlyingSolTuple<'a> = (
8015                alloy::sol_types::sol_data::Address,
8016                alloy::sol_types::sol_data::Address,
8017                alloy::sol_types::sol_data::Address,
8018                alloy::sol_types::sol_data::Uint<256>,
8019            );
8020            #[doc(hidden)]
8021            type UnderlyingRustTuple<'a> = (
8022                alloy::sol_types::private::Address,
8023                alloy::sol_types::private::Address,
8024                alloy::sol_types::private::Address,
8025                alloy::sol_types::private::primitives::aliases::U256,
8026            );
8027            #[cfg(test)]
8028            #[allow(dead_code, unreachable_patterns)]
8029            fn _type_assertion(
8030                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
8031            ) {
8032                match _t {
8033                    alloy_sol_types::private::AssertTypeEq::<
8034                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
8035                    >(_) => {}
8036                }
8037            }
8038            #[automatically_derived]
8039            #[doc(hidden)]
8040            impl ::core::convert::From<withdrawSharesAsTokensCall>
8041            for UnderlyingRustTuple<'_> {
8042                fn from(value: withdrawSharesAsTokensCall) -> Self {
8043                    (value.staker, value.strategy, value._2, value.shares)
8044                }
8045            }
8046            #[automatically_derived]
8047            #[doc(hidden)]
8048            impl ::core::convert::From<UnderlyingRustTuple<'_>>
8049            for withdrawSharesAsTokensCall {
8050                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
8051                    Self {
8052                        staker: tuple.0,
8053                        strategy: tuple.1,
8054                        _2: tuple.2,
8055                        shares: tuple.3,
8056                    }
8057                }
8058            }
8059        }
8060        {
8061            #[doc(hidden)]
8062            type UnderlyingSolTuple<'a> = ();
8063            #[doc(hidden)]
8064            type UnderlyingRustTuple<'a> = ();
8065            #[cfg(test)]
8066            #[allow(dead_code, unreachable_patterns)]
8067            fn _type_assertion(
8068                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
8069            ) {
8070                match _t {
8071                    alloy_sol_types::private::AssertTypeEq::<
8072                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
8073                    >(_) => {}
8074                }
8075            }
8076            #[automatically_derived]
8077            #[doc(hidden)]
8078            impl ::core::convert::From<withdrawSharesAsTokensReturn>
8079            for UnderlyingRustTuple<'_> {
8080                fn from(value: withdrawSharesAsTokensReturn) -> Self {
8081                    ()
8082                }
8083            }
8084            #[automatically_derived]
8085            #[doc(hidden)]
8086            impl ::core::convert::From<UnderlyingRustTuple<'_>>
8087            for withdrawSharesAsTokensReturn {
8088                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
8089                    Self {}
8090                }
8091            }
8092        }
8093        #[automatically_derived]
8094        impl alloy_sol_types::SolCall for withdrawSharesAsTokensCall {
8095            type Parameters<'a> = (
8096                alloy::sol_types::sol_data::Address,
8097                alloy::sol_types::sol_data::Address,
8098                alloy::sol_types::sol_data::Address,
8099                alloy::sol_types::sol_data::Uint<256>,
8100            );
8101            type Token<'a> = <Self::Parameters<
8102                'a,
8103            > as alloy_sol_types::SolType>::Token<'a>;
8104            type Return = withdrawSharesAsTokensReturn;
8105            type ReturnTuple<'a> = ();
8106            type ReturnToken<'a> = <Self::ReturnTuple<
8107                'a,
8108            > as alloy_sol_types::SolType>::Token<'a>;
8109            const SIGNATURE: &'static str = "withdrawSharesAsTokens(address,address,address,uint256)";
8110            const SELECTOR: [u8; 4] = [46u8, 174u8, 65u8, 140u8];
8111            #[inline]
8112            fn new<'a>(
8113                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
8114            ) -> Self {
8115                tuple.into()
8116            }
8117            #[inline]
8118            fn tokenize(&self) -> Self::Token<'_> {
8119                (
8120                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
8121                        &self.staker,
8122                    ),
8123                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
8124                        &self.strategy,
8125                    ),
8126                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
8127                        &self._2,
8128                    ),
8129                    <alloy::sol_types::sol_data::Uint<
8130                        256,
8131                    > as alloy_sol_types::SolType>::tokenize(&self.shares),
8132                )
8133            }
8134            #[inline]
8135            fn abi_decode_returns(
8136                data: &[u8],
8137                validate: bool,
8138            ) -> alloy_sol_types::Result<Self::Return> {
8139                <Self::ReturnTuple<
8140                    '_,
8141                > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
8142                    .map(Into::into)
8143            }
8144        }
8145    };
8146    ///Container for all the [`EigenPodManager`](self) function calls.
8147    #[derive()]
8148    pub enum EigenPodManagerCalls {
8149        #[allow(missing_docs)]
8150        addShares(addSharesCall),
8151        #[allow(missing_docs)]
8152        beaconChainETHStrategy(beaconChainETHStrategyCall),
8153        #[allow(missing_docs)]
8154        beaconChainSlashingFactor(beaconChainSlashingFactorCall),
8155        #[allow(missing_docs)]
8156        burnableETHShares(burnableETHSharesCall),
8157        #[allow(missing_docs)]
8158        createPod(createPodCall),
8159        #[allow(missing_docs)]
8160        delegationManager(delegationManagerCall),
8161        #[allow(missing_docs)]
8162        eigenPodBeacon(eigenPodBeaconCall),
8163        #[allow(missing_docs)]
8164        ethPOS(ethPOSCall),
8165        #[allow(missing_docs)]
8166        getPod(getPodCall),
8167        #[allow(missing_docs)]
8168        hasPod(hasPodCall),
8169        #[allow(missing_docs)]
8170        increaseBurnableShares(increaseBurnableSharesCall),
8171        #[allow(missing_docs)]
8172        initialize(initializeCall),
8173        #[allow(missing_docs)]
8174        numPods(numPodsCall),
8175        #[allow(missing_docs)]
8176        owner(ownerCall),
8177        #[allow(missing_docs)]
8178        ownerToPod(ownerToPodCall),
8179        #[allow(missing_docs)]
8180        pause(pauseCall),
8181        #[allow(missing_docs)]
8182        pauseAll(pauseAllCall),
8183        #[allow(missing_docs)]
8184        paused_0(paused_0Call),
8185        #[allow(missing_docs)]
8186        paused_1(paused_1Call),
8187        #[allow(missing_docs)]
8188        pauserRegistry(pauserRegistryCall),
8189        #[allow(missing_docs)]
8190        pectraForkTimestamp(pectraForkTimestampCall),
8191        #[allow(missing_docs)]
8192        podOwnerDepositShares(podOwnerDepositSharesCall),
8193        #[allow(missing_docs)]
8194        proofTimestampSetter(proofTimestampSetterCall),
8195        #[allow(missing_docs)]
8196        recordBeaconChainETHBalanceUpdate(recordBeaconChainETHBalanceUpdateCall),
8197        #[allow(missing_docs)]
8198        removeDepositShares(removeDepositSharesCall),
8199        #[allow(missing_docs)]
8200        renounceOwnership(renounceOwnershipCall),
8201        #[allow(missing_docs)]
8202        setPectraForkTimestamp(setPectraForkTimestampCall),
8203        #[allow(missing_docs)]
8204        setProofTimestampSetter(setProofTimestampSetterCall),
8205        #[allow(missing_docs)]
8206        stake(stakeCall),
8207        #[allow(missing_docs)]
8208        stakerDepositShares(stakerDepositSharesCall),
8209        #[allow(missing_docs)]
8210        transferOwnership(transferOwnershipCall),
8211        #[allow(missing_docs)]
8212        unpause(unpauseCall),
8213        #[allow(missing_docs)]
8214        version(versionCall),
8215        #[allow(missing_docs)]
8216        withdrawSharesAsTokens(withdrawSharesAsTokensCall),
8217    }
8218    #[automatically_derived]
8219    impl EigenPodManagerCalls {
8220        /// All the selectors of this enum.
8221        ///
8222        /// Note that the selectors might not be in the same order as the variants.
8223        /// No guarantees are made about the order of the selectors.
8224        ///
8225        /// Prefer using `SolInterface` methods instead.
8226        pub const SELECTORS: &'static [[u8; 4usize]] = &[
8227            [13u8, 30u8, 157u8, 225u8],
8228            [19u8, 100u8, 57u8, 221u8],
8229            [39u8, 4u8, 53u8, 26u8],
8230            [41u8, 43u8, 123u8, 43u8],
8231            [46u8, 174u8, 65u8, 140u8],
8232            [80u8, 255u8, 114u8, 37u8],
8233            [84u8, 253u8, 77u8, 80u8],
8234            [89u8, 92u8, 106u8, 103u8],
8235            [89u8, 94u8, 219u8, 203u8],
8236            [90u8, 38u8, 251u8, 244u8],
8237            [90u8, 200u8, 106u8, 183u8],
8238            [92u8, 151u8, 90u8, 187u8],
8239            [113u8, 80u8, 24u8, 166u8],
8240            [114u8, 74u8, 244u8, 35u8],
8241            [116u8, 205u8, 215u8, 152u8],
8242            [132u8, 216u8, 16u8, 98u8],
8243            [136u8, 111u8, 17u8, 149u8],
8244            [141u8, 165u8, 203u8, 91u8],
8245            [145u8, 4u8, 195u8, 25u8],
8246            [155u8, 78u8, 70u8, 52u8],
8247            [155u8, 160u8, 98u8, 117u8],
8248            [161u8, 202u8, 120u8, 11u8],
8249            [163u8, 132u8, 6u8, 163u8],
8250            [163u8, 215u8, 94u8, 9u8],
8251            [166u8, 165u8, 9u8, 190u8],
8252            [205u8, 109u8, 198u8, 135u8],
8253            [212u8, 142u8, 136u8, 148u8],
8254            [222u8, 190u8, 30u8, 171u8],
8255            [234u8, 77u8, 60u8, 155u8],
8256            [242u8, 253u8, 227u8, 139u8],
8257            [245u8, 212u8, 254u8, 211u8],
8258            [246u8, 132u8, 141u8, 36u8],
8259            [250u8, 188u8, 28u8, 188u8],
8260            [254u8, 36u8, 58u8, 23u8],
8261        ];
8262    }
8263    #[automatically_derived]
8264    impl alloy_sol_types::SolInterface for EigenPodManagerCalls {
8265        const NAME: &'static str = "EigenPodManagerCalls";
8266        const MIN_DATA_LENGTH: usize = 0usize;
8267        const COUNT: usize = 34usize;
8268        #[inline]
8269        fn selector(&self) -> [u8; 4] {
8270            match self {
8271                Self::addShares(_) => {
8272                    <addSharesCall as alloy_sol_types::SolCall>::SELECTOR
8273                }
8274                Self::beaconChainETHStrategy(_) => {
8275                    <beaconChainETHStrategyCall as alloy_sol_types::SolCall>::SELECTOR
8276                }
8277                Self::beaconChainSlashingFactor(_) => {
8278                    <beaconChainSlashingFactorCall as alloy_sol_types::SolCall>::SELECTOR
8279                }
8280                Self::burnableETHShares(_) => {
8281                    <burnableETHSharesCall as alloy_sol_types::SolCall>::SELECTOR
8282                }
8283                Self::createPod(_) => {
8284                    <createPodCall as alloy_sol_types::SolCall>::SELECTOR
8285                }
8286                Self::delegationManager(_) => {
8287                    <delegationManagerCall as alloy_sol_types::SolCall>::SELECTOR
8288                }
8289                Self::eigenPodBeacon(_) => {
8290                    <eigenPodBeaconCall as alloy_sol_types::SolCall>::SELECTOR
8291                }
8292                Self::ethPOS(_) => <ethPOSCall as alloy_sol_types::SolCall>::SELECTOR,
8293                Self::getPod(_) => <getPodCall as alloy_sol_types::SolCall>::SELECTOR,
8294                Self::hasPod(_) => <hasPodCall as alloy_sol_types::SolCall>::SELECTOR,
8295                Self::increaseBurnableShares(_) => {
8296                    <increaseBurnableSharesCall as alloy_sol_types::SolCall>::SELECTOR
8297                }
8298                Self::initialize(_) => {
8299                    <initializeCall as alloy_sol_types::SolCall>::SELECTOR
8300                }
8301                Self::numPods(_) => <numPodsCall as alloy_sol_types::SolCall>::SELECTOR,
8302                Self::owner(_) => <ownerCall as alloy_sol_types::SolCall>::SELECTOR,
8303                Self::ownerToPod(_) => {
8304                    <ownerToPodCall as alloy_sol_types::SolCall>::SELECTOR
8305                }
8306                Self::pause(_) => <pauseCall as alloy_sol_types::SolCall>::SELECTOR,
8307                Self::pauseAll(_) => <pauseAllCall as alloy_sol_types::SolCall>::SELECTOR,
8308                Self::paused_0(_) => <paused_0Call as alloy_sol_types::SolCall>::SELECTOR,
8309                Self::paused_1(_) => <paused_1Call as alloy_sol_types::SolCall>::SELECTOR,
8310                Self::pauserRegistry(_) => {
8311                    <pauserRegistryCall as alloy_sol_types::SolCall>::SELECTOR
8312                }
8313                Self::pectraForkTimestamp(_) => {
8314                    <pectraForkTimestampCall as alloy_sol_types::SolCall>::SELECTOR
8315                }
8316                Self::podOwnerDepositShares(_) => {
8317                    <podOwnerDepositSharesCall as alloy_sol_types::SolCall>::SELECTOR
8318                }
8319                Self::proofTimestampSetter(_) => {
8320                    <proofTimestampSetterCall as alloy_sol_types::SolCall>::SELECTOR
8321                }
8322                Self::recordBeaconChainETHBalanceUpdate(_) => {
8323                    <recordBeaconChainETHBalanceUpdateCall as alloy_sol_types::SolCall>::SELECTOR
8324                }
8325                Self::removeDepositShares(_) => {
8326                    <removeDepositSharesCall as alloy_sol_types::SolCall>::SELECTOR
8327                }
8328                Self::renounceOwnership(_) => {
8329                    <renounceOwnershipCall as alloy_sol_types::SolCall>::SELECTOR
8330                }
8331                Self::setPectraForkTimestamp(_) => {
8332                    <setPectraForkTimestampCall as alloy_sol_types::SolCall>::SELECTOR
8333                }
8334                Self::setProofTimestampSetter(_) => {
8335                    <setProofTimestampSetterCall as alloy_sol_types::SolCall>::SELECTOR
8336                }
8337                Self::stake(_) => <stakeCall as alloy_sol_types::SolCall>::SELECTOR,
8338                Self::stakerDepositShares(_) => {
8339                    <stakerDepositSharesCall as alloy_sol_types::SolCall>::SELECTOR
8340                }
8341                Self::transferOwnership(_) => {
8342                    <transferOwnershipCall as alloy_sol_types::SolCall>::SELECTOR
8343                }
8344                Self::unpause(_) => <unpauseCall as alloy_sol_types::SolCall>::SELECTOR,
8345                Self::version(_) => <versionCall as alloy_sol_types::SolCall>::SELECTOR,
8346                Self::withdrawSharesAsTokens(_) => {
8347                    <withdrawSharesAsTokensCall as alloy_sol_types::SolCall>::SELECTOR
8348                }
8349            }
8350        }
8351        #[inline]
8352        fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> {
8353            Self::SELECTORS.get(i).copied()
8354        }
8355        #[inline]
8356        fn valid_selector(selector: [u8; 4]) -> bool {
8357            Self::SELECTORS.binary_search(&selector).is_ok()
8358        }
8359        #[inline]
8360        #[allow(non_snake_case)]
8361        fn abi_decode_raw(
8362            selector: [u8; 4],
8363            data: &[u8],
8364            validate: bool,
8365        ) -> alloy_sol_types::Result<Self> {
8366            static DECODE_SHIMS: &[fn(
8367                &[u8],
8368                bool,
8369            ) -> alloy_sol_types::Result<EigenPodManagerCalls>] = &[
8370                {
8371                    fn setProofTimestampSetter(
8372                        data: &[u8],
8373                        validate: bool,
8374                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8375                        <setProofTimestampSetterCall as alloy_sol_types::SolCall>::abi_decode_raw(
8376                                data,
8377                                validate,
8378                            )
8379                            .map(EigenPodManagerCalls::setProofTimestampSetter)
8380                    }
8381                    setProofTimestampSetter
8382                },
8383                {
8384                    fn pause(
8385                        data: &[u8],
8386                        validate: bool,
8387                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8388                        <pauseCall as alloy_sol_types::SolCall>::abi_decode_raw(
8389                                data,
8390                                validate,
8391                            )
8392                            .map(EigenPodManagerCalls::pause)
8393                    }
8394                    pause
8395                },
8396                {
8397                    fn pectraForkTimestamp(
8398                        data: &[u8],
8399                        validate: bool,
8400                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8401                        <pectraForkTimestampCall as alloy_sol_types::SolCall>::abi_decode_raw(
8402                                data,
8403                                validate,
8404                            )
8405                            .map(EigenPodManagerCalls::pectraForkTimestamp)
8406                    }
8407                    pectraForkTimestamp
8408                },
8409                {
8410                    fn eigenPodBeacon(
8411                        data: &[u8],
8412                        validate: bool,
8413                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8414                        <eigenPodBeaconCall as alloy_sol_types::SolCall>::abi_decode_raw(
8415                                data,
8416                                validate,
8417                            )
8418                            .map(EigenPodManagerCalls::eigenPodBeacon)
8419                    }
8420                    eigenPodBeacon
8421                },
8422                {
8423                    fn withdrawSharesAsTokens(
8424                        data: &[u8],
8425                        validate: bool,
8426                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8427                        <withdrawSharesAsTokensCall as alloy_sol_types::SolCall>::abi_decode_raw(
8428                                data,
8429                                validate,
8430                            )
8431                            .map(EigenPodManagerCalls::withdrawSharesAsTokens)
8432                    }
8433                    withdrawSharesAsTokens
8434                },
8435                {
8436                    fn addShares(
8437                        data: &[u8],
8438                        validate: bool,
8439                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8440                        <addSharesCall as alloy_sol_types::SolCall>::abi_decode_raw(
8441                                data,
8442                                validate,
8443                            )
8444                            .map(EigenPodManagerCalls::addShares)
8445                    }
8446                    addShares
8447                },
8448                {
8449                    fn version(
8450                        data: &[u8],
8451                        validate: bool,
8452                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8453                        <versionCall as alloy_sol_types::SolCall>::abi_decode_raw(
8454                                data,
8455                                validate,
8456                            )
8457                            .map(EigenPodManagerCalls::version)
8458                    }
8459                    version
8460                },
8461                {
8462                    fn pauseAll(
8463                        data: &[u8],
8464                        validate: bool,
8465                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8466                        <pauseAllCall as alloy_sol_types::SolCall>::abi_decode_raw(
8467                                data,
8468                                validate,
8469                            )
8470                            .map(EigenPodManagerCalls::pauseAll)
8471                    }
8472                    pauseAll
8473                },
8474                {
8475                    fn proofTimestampSetter(
8476                        data: &[u8],
8477                        validate: bool,
8478                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8479                        <proofTimestampSetterCall as alloy_sol_types::SolCall>::abi_decode_raw(
8480                                data,
8481                                validate,
8482                            )
8483                            .map(EigenPodManagerCalls::proofTimestampSetter)
8484                    }
8485                    proofTimestampSetter
8486                },
8487                {
8488                    fn setPectraForkTimestamp(
8489                        data: &[u8],
8490                        validate: bool,
8491                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8492                        <setPectraForkTimestampCall as alloy_sol_types::SolCall>::abi_decode_raw(
8493                                data,
8494                                validate,
8495                            )
8496                            .map(EigenPodManagerCalls::setPectraForkTimestamp)
8497                    }
8498                    setPectraForkTimestamp
8499                },
8500                {
8501                    fn paused_0(
8502                        data: &[u8],
8503                        validate: bool,
8504                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8505                        <paused_0Call as alloy_sol_types::SolCall>::abi_decode_raw(
8506                                data,
8507                                validate,
8508                            )
8509                            .map(EigenPodManagerCalls::paused_0)
8510                    }
8511                    paused_0
8512                },
8513                {
8514                    fn paused_1(
8515                        data: &[u8],
8516                        validate: bool,
8517                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8518                        <paused_1Call as alloy_sol_types::SolCall>::abi_decode_raw(
8519                                data,
8520                                validate,
8521                            )
8522                            .map(EigenPodManagerCalls::paused_1)
8523                    }
8524                    paused_1
8525                },
8526                {
8527                    fn renounceOwnership(
8528                        data: &[u8],
8529                        validate: bool,
8530                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8531                        <renounceOwnershipCall as alloy_sol_types::SolCall>::abi_decode_raw(
8532                                data,
8533                                validate,
8534                            )
8535                            .map(EigenPodManagerCalls::renounceOwnership)
8536                    }
8537                    renounceOwnership
8538                },
8539                {
8540                    fn removeDepositShares(
8541                        data: &[u8],
8542                        validate: bool,
8543                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8544                        <removeDepositSharesCall as alloy_sol_types::SolCall>::abi_decode_raw(
8545                                data,
8546                                validate,
8547                            )
8548                            .map(EigenPodManagerCalls::removeDepositShares)
8549                    }
8550                    removeDepositShares
8551                },
8552                {
8553                    fn ethPOS(
8554                        data: &[u8],
8555                        validate: bool,
8556                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8557                        <ethPOSCall as alloy_sol_types::SolCall>::abi_decode_raw(
8558                                data,
8559                                validate,
8560                            )
8561                            .map(EigenPodManagerCalls::ethPOS)
8562                    }
8563                    ethPOS
8564                },
8565                {
8566                    fn createPod(
8567                        data: &[u8],
8568                        validate: bool,
8569                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8570                        <createPodCall as alloy_sol_types::SolCall>::abi_decode_raw(
8571                                data,
8572                                validate,
8573                            )
8574                            .map(EigenPodManagerCalls::createPod)
8575                    }
8576                    createPod
8577                },
8578                {
8579                    fn pauserRegistry(
8580                        data: &[u8],
8581                        validate: bool,
8582                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8583                        <pauserRegistryCall as alloy_sol_types::SolCall>::abi_decode_raw(
8584                                data,
8585                                validate,
8586                            )
8587                            .map(EigenPodManagerCalls::pauserRegistry)
8588                    }
8589                    pauserRegistry
8590                },
8591                {
8592                    fn owner(
8593                        data: &[u8],
8594                        validate: bool,
8595                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8596                        <ownerCall as alloy_sol_types::SolCall>::abi_decode_raw(
8597                                data,
8598                                validate,
8599                            )
8600                            .map(EigenPodManagerCalls::owner)
8601                    }
8602                    owner
8603                },
8604                {
8605                    fn beaconChainETHStrategy(
8606                        data: &[u8],
8607                        validate: bool,
8608                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8609                        <beaconChainETHStrategyCall as alloy_sol_types::SolCall>::abi_decode_raw(
8610                                data,
8611                                validate,
8612                            )
8613                            .map(EigenPodManagerCalls::beaconChainETHStrategy)
8614                    }
8615                    beaconChainETHStrategy
8616                },
8617                {
8618                    fn stake(
8619                        data: &[u8],
8620                        validate: bool,
8621                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8622                        <stakeCall as alloy_sol_types::SolCall>::abi_decode_raw(
8623                                data,
8624                                validate,
8625                            )
8626                            .map(EigenPodManagerCalls::stake)
8627                    }
8628                    stake
8629                },
8630                {
8631                    fn ownerToPod(
8632                        data: &[u8],
8633                        validate: bool,
8634                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8635                        <ownerToPodCall as alloy_sol_types::SolCall>::abi_decode_raw(
8636                                data,
8637                                validate,
8638                            )
8639                            .map(EigenPodManagerCalls::ownerToPod)
8640                    }
8641                    ownerToPod
8642                },
8643                {
8644                    fn recordBeaconChainETHBalanceUpdate(
8645                        data: &[u8],
8646                        validate: bool,
8647                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8648                        <recordBeaconChainETHBalanceUpdateCall as alloy_sol_types::SolCall>::abi_decode_raw(
8649                                data,
8650                                validate,
8651                            )
8652                            .map(EigenPodManagerCalls::recordBeaconChainETHBalanceUpdate)
8653                    }
8654                    recordBeaconChainETHBalanceUpdate
8655                },
8656                {
8657                    fn getPod(
8658                        data: &[u8],
8659                        validate: bool,
8660                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8661                        <getPodCall as alloy_sol_types::SolCall>::abi_decode_raw(
8662                                data,
8663                                validate,
8664                            )
8665                            .map(EigenPodManagerCalls::getPod)
8666                    }
8667                    getPod
8668                },
8669                {
8670                    fn beaconChainSlashingFactor(
8671                        data: &[u8],
8672                        validate: bool,
8673                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8674                        <beaconChainSlashingFactorCall as alloy_sol_types::SolCall>::abi_decode_raw(
8675                                data,
8676                                validate,
8677                            )
8678                            .map(EigenPodManagerCalls::beaconChainSlashingFactor)
8679                    }
8680                    beaconChainSlashingFactor
8681                },
8682                {
8683                    fn numPods(
8684                        data: &[u8],
8685                        validate: bool,
8686                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8687                        <numPodsCall as alloy_sol_types::SolCall>::abi_decode_raw(
8688                                data,
8689                                validate,
8690                            )
8691                            .map(EigenPodManagerCalls::numPods)
8692                    }
8693                    numPods
8694                },
8695                {
8696                    fn initialize(
8697                        data: &[u8],
8698                        validate: bool,
8699                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8700                        <initializeCall as alloy_sol_types::SolCall>::abi_decode_raw(
8701                                data,
8702                                validate,
8703                            )
8704                            .map(EigenPodManagerCalls::initialize)
8705                    }
8706                    initialize
8707                },
8708                {
8709                    fn podOwnerDepositShares(
8710                        data: &[u8],
8711                        validate: bool,
8712                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8713                        <podOwnerDepositSharesCall as alloy_sol_types::SolCall>::abi_decode_raw(
8714                                data,
8715                                validate,
8716                            )
8717                            .map(EigenPodManagerCalls::podOwnerDepositShares)
8718                    }
8719                    podOwnerDepositShares
8720                },
8721                {
8722                    fn increaseBurnableShares(
8723                        data: &[u8],
8724                        validate: bool,
8725                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8726                        <increaseBurnableSharesCall as alloy_sol_types::SolCall>::abi_decode_raw(
8727                                data,
8728                                validate,
8729                            )
8730                            .map(EigenPodManagerCalls::increaseBurnableShares)
8731                    }
8732                    increaseBurnableShares
8733                },
8734                {
8735                    fn delegationManager(
8736                        data: &[u8],
8737                        validate: bool,
8738                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8739                        <delegationManagerCall as alloy_sol_types::SolCall>::abi_decode_raw(
8740                                data,
8741                                validate,
8742                            )
8743                            .map(EigenPodManagerCalls::delegationManager)
8744                    }
8745                    delegationManager
8746                },
8747                {
8748                    fn transferOwnership(
8749                        data: &[u8],
8750                        validate: bool,
8751                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8752                        <transferOwnershipCall as alloy_sol_types::SolCall>::abi_decode_raw(
8753                                data,
8754                                validate,
8755                            )
8756                            .map(EigenPodManagerCalls::transferOwnership)
8757                    }
8758                    transferOwnership
8759                },
8760                {
8761                    fn burnableETHShares(
8762                        data: &[u8],
8763                        validate: bool,
8764                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8765                        <burnableETHSharesCall as alloy_sol_types::SolCall>::abi_decode_raw(
8766                                data,
8767                                validate,
8768                            )
8769                            .map(EigenPodManagerCalls::burnableETHShares)
8770                    }
8771                    burnableETHShares
8772                },
8773                {
8774                    fn hasPod(
8775                        data: &[u8],
8776                        validate: bool,
8777                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8778                        <hasPodCall as alloy_sol_types::SolCall>::abi_decode_raw(
8779                                data,
8780                                validate,
8781                            )
8782                            .map(EigenPodManagerCalls::hasPod)
8783                    }
8784                    hasPod
8785                },
8786                {
8787                    fn unpause(
8788                        data: &[u8],
8789                        validate: bool,
8790                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8791                        <unpauseCall as alloy_sol_types::SolCall>::abi_decode_raw(
8792                                data,
8793                                validate,
8794                            )
8795                            .map(EigenPodManagerCalls::unpause)
8796                    }
8797                    unpause
8798                },
8799                {
8800                    fn stakerDepositShares(
8801                        data: &[u8],
8802                        validate: bool,
8803                    ) -> alloy_sol_types::Result<EigenPodManagerCalls> {
8804                        <stakerDepositSharesCall as alloy_sol_types::SolCall>::abi_decode_raw(
8805                                data,
8806                                validate,
8807                            )
8808                            .map(EigenPodManagerCalls::stakerDepositShares)
8809                    }
8810                    stakerDepositShares
8811                },
8812            ];
8813            let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
8814                return Err(
8815                    alloy_sol_types::Error::unknown_selector(
8816                        <Self as alloy_sol_types::SolInterface>::NAME,
8817                        selector,
8818                    ),
8819                );
8820            };
8821            DECODE_SHIMS[idx](data, validate)
8822        }
8823        #[inline]
8824        fn abi_encoded_size(&self) -> usize {
8825            match self {
8826                Self::addShares(inner) => {
8827                    <addSharesCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
8828                }
8829                Self::beaconChainETHStrategy(inner) => {
8830                    <beaconChainETHStrategyCall as alloy_sol_types::SolCall>::abi_encoded_size(
8831                        inner,
8832                    )
8833                }
8834                Self::beaconChainSlashingFactor(inner) => {
8835                    <beaconChainSlashingFactorCall as alloy_sol_types::SolCall>::abi_encoded_size(
8836                        inner,
8837                    )
8838                }
8839                Self::burnableETHShares(inner) => {
8840                    <burnableETHSharesCall as alloy_sol_types::SolCall>::abi_encoded_size(
8841                        inner,
8842                    )
8843                }
8844                Self::createPod(inner) => {
8845                    <createPodCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
8846                }
8847                Self::delegationManager(inner) => {
8848                    <delegationManagerCall as alloy_sol_types::SolCall>::abi_encoded_size(
8849                        inner,
8850                    )
8851                }
8852                Self::eigenPodBeacon(inner) => {
8853                    <eigenPodBeaconCall as alloy_sol_types::SolCall>::abi_encoded_size(
8854                        inner,
8855                    )
8856                }
8857                Self::ethPOS(inner) => {
8858                    <ethPOSCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
8859                }
8860                Self::getPod(inner) => {
8861                    <getPodCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
8862                }
8863                Self::hasPod(inner) => {
8864                    <hasPodCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
8865                }
8866                Self::increaseBurnableShares(inner) => {
8867                    <increaseBurnableSharesCall as alloy_sol_types::SolCall>::abi_encoded_size(
8868                        inner,
8869                    )
8870                }
8871                Self::initialize(inner) => {
8872                    <initializeCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
8873                }
8874                Self::numPods(inner) => {
8875                    <numPodsCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
8876                }
8877                Self::owner(inner) => {
8878                    <ownerCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
8879                }
8880                Self::ownerToPod(inner) => {
8881                    <ownerToPodCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
8882                }
8883                Self::pause(inner) => {
8884                    <pauseCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
8885                }
8886                Self::pauseAll(inner) => {
8887                    <pauseAllCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
8888                }
8889                Self::paused_0(inner) => {
8890                    <paused_0Call as alloy_sol_types::SolCall>::abi_encoded_size(inner)
8891                }
8892                Self::paused_1(inner) => {
8893                    <paused_1Call as alloy_sol_types::SolCall>::abi_encoded_size(inner)
8894                }
8895                Self::pauserRegistry(inner) => {
8896                    <pauserRegistryCall as alloy_sol_types::SolCall>::abi_encoded_size(
8897                        inner,
8898                    )
8899                }
8900                Self::pectraForkTimestamp(inner) => {
8901                    <pectraForkTimestampCall as alloy_sol_types::SolCall>::abi_encoded_size(
8902                        inner,
8903                    )
8904                }
8905                Self::podOwnerDepositShares(inner) => {
8906                    <podOwnerDepositSharesCall as alloy_sol_types::SolCall>::abi_encoded_size(
8907                        inner,
8908                    )
8909                }
8910                Self::proofTimestampSetter(inner) => {
8911                    <proofTimestampSetterCall as alloy_sol_types::SolCall>::abi_encoded_size(
8912                        inner,
8913                    )
8914                }
8915                Self::recordBeaconChainETHBalanceUpdate(inner) => {
8916                    <recordBeaconChainETHBalanceUpdateCall as alloy_sol_types::SolCall>::abi_encoded_size(
8917                        inner,
8918                    )
8919                }
8920                Self::removeDepositShares(inner) => {
8921                    <removeDepositSharesCall as alloy_sol_types::SolCall>::abi_encoded_size(
8922                        inner,
8923                    )
8924                }
8925                Self::renounceOwnership(inner) => {
8926                    <renounceOwnershipCall as alloy_sol_types::SolCall>::abi_encoded_size(
8927                        inner,
8928                    )
8929                }
8930                Self::setPectraForkTimestamp(inner) => {
8931                    <setPectraForkTimestampCall as alloy_sol_types::SolCall>::abi_encoded_size(
8932                        inner,
8933                    )
8934                }
8935                Self::setProofTimestampSetter(inner) => {
8936                    <setProofTimestampSetterCall as alloy_sol_types::SolCall>::abi_encoded_size(
8937                        inner,
8938                    )
8939                }
8940                Self::stake(inner) => {
8941                    <stakeCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
8942                }
8943                Self::stakerDepositShares(inner) => {
8944                    <stakerDepositSharesCall as alloy_sol_types::SolCall>::abi_encoded_size(
8945                        inner,
8946                    )
8947                }
8948                Self::transferOwnership(inner) => {
8949                    <transferOwnershipCall as alloy_sol_types::SolCall>::abi_encoded_size(
8950                        inner,
8951                    )
8952                }
8953                Self::unpause(inner) => {
8954                    <unpauseCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
8955                }
8956                Self::version(inner) => {
8957                    <versionCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
8958                }
8959                Self::withdrawSharesAsTokens(inner) => {
8960                    <withdrawSharesAsTokensCall as alloy_sol_types::SolCall>::abi_encoded_size(
8961                        inner,
8962                    )
8963                }
8964            }
8965        }
8966        #[inline]
8967        fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
8968            match self {
8969                Self::addShares(inner) => {
8970                    <addSharesCall as alloy_sol_types::SolCall>::abi_encode_raw(
8971                        inner,
8972                        out,
8973                    )
8974                }
8975                Self::beaconChainETHStrategy(inner) => {
8976                    <beaconChainETHStrategyCall as alloy_sol_types::SolCall>::abi_encode_raw(
8977                        inner,
8978                        out,
8979                    )
8980                }
8981                Self::beaconChainSlashingFactor(inner) => {
8982                    <beaconChainSlashingFactorCall as alloy_sol_types::SolCall>::abi_encode_raw(
8983                        inner,
8984                        out,
8985                    )
8986                }
8987                Self::burnableETHShares(inner) => {
8988                    <burnableETHSharesCall as alloy_sol_types::SolCall>::abi_encode_raw(
8989                        inner,
8990                        out,
8991                    )
8992                }
8993                Self::createPod(inner) => {
8994                    <createPodCall as alloy_sol_types::SolCall>::abi_encode_raw(
8995                        inner,
8996                        out,
8997                    )
8998                }
8999                Self::delegationManager(inner) => {
9000                    <delegationManagerCall as alloy_sol_types::SolCall>::abi_encode_raw(
9001                        inner,
9002                        out,
9003                    )
9004                }
9005                Self::eigenPodBeacon(inner) => {
9006                    <eigenPodBeaconCall as alloy_sol_types::SolCall>::abi_encode_raw(
9007                        inner,
9008                        out,
9009                    )
9010                }
9011                Self::ethPOS(inner) => {
9012                    <ethPOSCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
9013                }
9014                Self::getPod(inner) => {
9015                    <getPodCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
9016                }
9017                Self::hasPod(inner) => {
9018                    <hasPodCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
9019                }
9020                Self::increaseBurnableShares(inner) => {
9021                    <increaseBurnableSharesCall as alloy_sol_types::SolCall>::abi_encode_raw(
9022                        inner,
9023                        out,
9024                    )
9025                }
9026                Self::initialize(inner) => {
9027                    <initializeCall as alloy_sol_types::SolCall>::abi_encode_raw(
9028                        inner,
9029                        out,
9030                    )
9031                }
9032                Self::numPods(inner) => {
9033                    <numPodsCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
9034                }
9035                Self::owner(inner) => {
9036                    <ownerCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
9037                }
9038                Self::ownerToPod(inner) => {
9039                    <ownerToPodCall as alloy_sol_types::SolCall>::abi_encode_raw(
9040                        inner,
9041                        out,
9042                    )
9043                }
9044                Self::pause(inner) => {
9045                    <pauseCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
9046                }
9047                Self::pauseAll(inner) => {
9048                    <pauseAllCall as alloy_sol_types::SolCall>::abi_encode_raw(
9049                        inner,
9050                        out,
9051                    )
9052                }
9053                Self::paused_0(inner) => {
9054                    <paused_0Call as alloy_sol_types::SolCall>::abi_encode_raw(
9055                        inner,
9056                        out,
9057                    )
9058                }
9059                Self::paused_1(inner) => {
9060                    <paused_1Call as alloy_sol_types::SolCall>::abi_encode_raw(
9061                        inner,
9062                        out,
9063                    )
9064                }
9065                Self::pauserRegistry(inner) => {
9066                    <pauserRegistryCall as alloy_sol_types::SolCall>::abi_encode_raw(
9067                        inner,
9068                        out,
9069                    )
9070                }
9071                Self::pectraForkTimestamp(inner) => {
9072                    <pectraForkTimestampCall as alloy_sol_types::SolCall>::abi_encode_raw(
9073                        inner,
9074                        out,
9075                    )
9076                }
9077                Self::podOwnerDepositShares(inner) => {
9078                    <podOwnerDepositSharesCall as alloy_sol_types::SolCall>::abi_encode_raw(
9079                        inner,
9080                        out,
9081                    )
9082                }
9083                Self::proofTimestampSetter(inner) => {
9084                    <proofTimestampSetterCall as alloy_sol_types::SolCall>::abi_encode_raw(
9085                        inner,
9086                        out,
9087                    )
9088                }
9089                Self::recordBeaconChainETHBalanceUpdate(inner) => {
9090                    <recordBeaconChainETHBalanceUpdateCall as alloy_sol_types::SolCall>::abi_encode_raw(
9091                        inner,
9092                        out,
9093                    )
9094                }
9095                Self::removeDepositShares(inner) => {
9096                    <removeDepositSharesCall as alloy_sol_types::SolCall>::abi_encode_raw(
9097                        inner,
9098                        out,
9099                    )
9100                }
9101                Self::renounceOwnership(inner) => {
9102                    <renounceOwnershipCall as alloy_sol_types::SolCall>::abi_encode_raw(
9103                        inner,
9104                        out,
9105                    )
9106                }
9107                Self::setPectraForkTimestamp(inner) => {
9108                    <setPectraForkTimestampCall as alloy_sol_types::SolCall>::abi_encode_raw(
9109                        inner,
9110                        out,
9111                    )
9112                }
9113                Self::setProofTimestampSetter(inner) => {
9114                    <setProofTimestampSetterCall as alloy_sol_types::SolCall>::abi_encode_raw(
9115                        inner,
9116                        out,
9117                    )
9118                }
9119                Self::stake(inner) => {
9120                    <stakeCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
9121                }
9122                Self::stakerDepositShares(inner) => {
9123                    <stakerDepositSharesCall as alloy_sol_types::SolCall>::abi_encode_raw(
9124                        inner,
9125                        out,
9126                    )
9127                }
9128                Self::transferOwnership(inner) => {
9129                    <transferOwnershipCall as alloy_sol_types::SolCall>::abi_encode_raw(
9130                        inner,
9131                        out,
9132                    )
9133                }
9134                Self::unpause(inner) => {
9135                    <unpauseCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
9136                }
9137                Self::version(inner) => {
9138                    <versionCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
9139                }
9140                Self::withdrawSharesAsTokens(inner) => {
9141                    <withdrawSharesAsTokensCall as alloy_sol_types::SolCall>::abi_encode_raw(
9142                        inner,
9143                        out,
9144                    )
9145                }
9146            }
9147        }
9148    }
9149    ///Container for all the [`EigenPodManager`](self) custom errors.
9150    #[derive(Debug, PartialEq, Eq, Hash)]
9151    pub enum EigenPodManagerErrors {
9152        #[allow(missing_docs)]
9153        CurrentlyPaused(CurrentlyPaused),
9154        #[allow(missing_docs)]
9155        EigenPodAlreadyExists(EigenPodAlreadyExists),
9156        #[allow(missing_docs)]
9157        InputAddressZero(InputAddressZero),
9158        #[allow(missing_docs)]
9159        InvalidNewPausedStatus(InvalidNewPausedStatus),
9160        #[allow(missing_docs)]
9161        InvalidShortString(InvalidShortString),
9162        #[allow(missing_docs)]
9163        InvalidStrategy(InvalidStrategy),
9164        #[allow(missing_docs)]
9165        LegacyWithdrawalsNotCompleted(LegacyWithdrawalsNotCompleted),
9166        #[allow(missing_docs)]
9167        OnlyDelegationManager(OnlyDelegationManager),
9168        #[allow(missing_docs)]
9169        OnlyEigenPod(OnlyEigenPod),
9170        #[allow(missing_docs)]
9171        OnlyPauser(OnlyPauser),
9172        #[allow(missing_docs)]
9173        OnlyProofTimestampSetter(OnlyProofTimestampSetter),
9174        #[allow(missing_docs)]
9175        OnlyUnpauser(OnlyUnpauser),
9176        #[allow(missing_docs)]
9177        SharesNegative(SharesNegative),
9178        #[allow(missing_docs)]
9179        SharesNotMultipleOfGwei(SharesNotMultipleOfGwei),
9180        #[allow(missing_docs)]
9181        StringTooLong(StringTooLong),
9182    }
9183    #[automatically_derived]
9184    impl EigenPodManagerErrors {
9185        /// All the selectors of this enum.
9186        ///
9187        /// Note that the selectors might not be in the same order as the variants.
9188        /// No guarantees are made about the order of the selectors.
9189        ///
9190        /// Prefer using `SolInterface` methods instead.
9191        pub const SELECTORS: &'static [[u8; 4usize]] = &[
9192            [12u8, 106u8, 20u8, 132u8],
9193            [37u8, 194u8, 218u8, 226u8],
9194            [48u8, 90u8, 39u8, 169u8],
9195            [75u8, 105u8, 43u8, 207u8],
9196            [78u8, 35u8, 110u8, 154u8],
9197            [115u8, 99u8, 33u8, 118u8],
9198            [117u8, 223u8, 81u8, 220u8],
9199            [121u8, 72u8, 33u8, 255u8],
9200            [132u8, 10u8, 72u8, 213u8],
9201            [143u8, 160u8, 229u8, 118u8],
9202            [152u8, 97u8, 19u8, 112u8],
9203            [179u8, 81u8, 43u8, 12u8],
9204            [198u8, 29u8, 202u8, 93u8],
9205            [239u8, 20u8, 125u8, 225u8],
9206            [247u8, 57u8, 88u8, 155u8],
9207        ];
9208    }
9209    #[automatically_derived]
9210    impl alloy_sol_types::SolInterface for EigenPodManagerErrors {
9211        const NAME: &'static str = "EigenPodManagerErrors";
9212        const MIN_DATA_LENGTH: usize = 0usize;
9213        const COUNT: usize = 15usize;
9214        #[inline]
9215        fn selector(&self) -> [u8; 4] {
9216            match self {
9217                Self::CurrentlyPaused(_) => {
9218                    <CurrentlyPaused as alloy_sol_types::SolError>::SELECTOR
9219                }
9220                Self::EigenPodAlreadyExists(_) => {
9221                    <EigenPodAlreadyExists as alloy_sol_types::SolError>::SELECTOR
9222                }
9223                Self::InputAddressZero(_) => {
9224                    <InputAddressZero as alloy_sol_types::SolError>::SELECTOR
9225                }
9226                Self::InvalidNewPausedStatus(_) => {
9227                    <InvalidNewPausedStatus as alloy_sol_types::SolError>::SELECTOR
9228                }
9229                Self::InvalidShortString(_) => {
9230                    <InvalidShortString as alloy_sol_types::SolError>::SELECTOR
9231                }
9232                Self::InvalidStrategy(_) => {
9233                    <InvalidStrategy as alloy_sol_types::SolError>::SELECTOR
9234                }
9235                Self::LegacyWithdrawalsNotCompleted(_) => {
9236                    <LegacyWithdrawalsNotCompleted as alloy_sol_types::SolError>::SELECTOR
9237                }
9238                Self::OnlyDelegationManager(_) => {
9239                    <OnlyDelegationManager as alloy_sol_types::SolError>::SELECTOR
9240                }
9241                Self::OnlyEigenPod(_) => {
9242                    <OnlyEigenPod as alloy_sol_types::SolError>::SELECTOR
9243                }
9244                Self::OnlyPauser(_) => {
9245                    <OnlyPauser as alloy_sol_types::SolError>::SELECTOR
9246                }
9247                Self::OnlyProofTimestampSetter(_) => {
9248                    <OnlyProofTimestampSetter as alloy_sol_types::SolError>::SELECTOR
9249                }
9250                Self::OnlyUnpauser(_) => {
9251                    <OnlyUnpauser as alloy_sol_types::SolError>::SELECTOR
9252                }
9253                Self::SharesNegative(_) => {
9254                    <SharesNegative as alloy_sol_types::SolError>::SELECTOR
9255                }
9256                Self::SharesNotMultipleOfGwei(_) => {
9257                    <SharesNotMultipleOfGwei as alloy_sol_types::SolError>::SELECTOR
9258                }
9259                Self::StringTooLong(_) => {
9260                    <StringTooLong as alloy_sol_types::SolError>::SELECTOR
9261                }
9262            }
9263        }
9264        #[inline]
9265        fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> {
9266            Self::SELECTORS.get(i).copied()
9267        }
9268        #[inline]
9269        fn valid_selector(selector: [u8; 4]) -> bool {
9270            Self::SELECTORS.binary_search(&selector).is_ok()
9271        }
9272        #[inline]
9273        #[allow(non_snake_case)]
9274        fn abi_decode_raw(
9275            selector: [u8; 4],
9276            data: &[u8],
9277            validate: bool,
9278        ) -> alloy_sol_types::Result<Self> {
9279            static DECODE_SHIMS: &[fn(
9280                &[u8],
9281                bool,
9282            ) -> alloy_sol_types::Result<EigenPodManagerErrors>] = &[
9283                {
9284                    fn EigenPodAlreadyExists(
9285                        data: &[u8],
9286                        validate: bool,
9287                    ) -> alloy_sol_types::Result<EigenPodManagerErrors> {
9288                        <EigenPodAlreadyExists as alloy_sol_types::SolError>::abi_decode_raw(
9289                                data,
9290                                validate,
9291                            )
9292                            .map(EigenPodManagerErrors::EigenPodAlreadyExists)
9293                    }
9294                    EigenPodAlreadyExists
9295                },
9296                {
9297                    fn OnlyEigenPod(
9298                        data: &[u8],
9299                        validate: bool,
9300                    ) -> alloy_sol_types::Result<EigenPodManagerErrors> {
9301                        <OnlyEigenPod as alloy_sol_types::SolError>::abi_decode_raw(
9302                                data,
9303                                validate,
9304                            )
9305                            .map(EigenPodManagerErrors::OnlyEigenPod)
9306                    }
9307                    OnlyEigenPod
9308                },
9309                {
9310                    fn StringTooLong(
9311                        data: &[u8],
9312                        validate: bool,
9313                    ) -> alloy_sol_types::Result<EigenPodManagerErrors> {
9314                        <StringTooLong as alloy_sol_types::SolError>::abi_decode_raw(
9315                                data,
9316                                validate,
9317                            )
9318                            .map(EigenPodManagerErrors::StringTooLong)
9319                    }
9320                    StringTooLong
9321                },
9322                {
9323                    fn LegacyWithdrawalsNotCompleted(
9324                        data: &[u8],
9325                        validate: bool,
9326                    ) -> alloy_sol_types::Result<EigenPodManagerErrors> {
9327                        <LegacyWithdrawalsNotCompleted as alloy_sol_types::SolError>::abi_decode_raw(
9328                                data,
9329                                validate,
9330                            )
9331                            .map(EigenPodManagerErrors::LegacyWithdrawalsNotCompleted)
9332                    }
9333                    LegacyWithdrawalsNotCompleted
9334                },
9335                {
9336                    fn InvalidStrategy(
9337                        data: &[u8],
9338                        validate: bool,
9339                    ) -> alloy_sol_types::Result<EigenPodManagerErrors> {
9340                        <InvalidStrategy as alloy_sol_types::SolError>::abi_decode_raw(
9341                                data,
9342                                validate,
9343                            )
9344                            .map(EigenPodManagerErrors::InvalidStrategy)
9345                    }
9346                    InvalidStrategy
9347                },
9348                {
9349                    fn InputAddressZero(
9350                        data: &[u8],
9351                        validate: bool,
9352                    ) -> alloy_sol_types::Result<EigenPodManagerErrors> {
9353                        <InputAddressZero as alloy_sol_types::SolError>::abi_decode_raw(
9354                                data,
9355                                validate,
9356                            )
9357                            .map(EigenPodManagerErrors::InputAddressZero)
9358                    }
9359                    InputAddressZero
9360                },
9361                {
9362                    fn OnlyPauser(
9363                        data: &[u8],
9364                        validate: bool,
9365                    ) -> alloy_sol_types::Result<EigenPodManagerErrors> {
9366                        <OnlyPauser as alloy_sol_types::SolError>::abi_decode_raw(
9367                                data,
9368                                validate,
9369                            )
9370                            .map(EigenPodManagerErrors::OnlyPauser)
9371                    }
9372                    OnlyPauser
9373                },
9374                {
9375                    fn OnlyUnpauser(
9376                        data: &[u8],
9377                        validate: bool,
9378                    ) -> alloy_sol_types::Result<EigenPodManagerErrors> {
9379                        <OnlyUnpauser as alloy_sol_types::SolError>::abi_decode_raw(
9380                                data,
9381                                validate,
9382                            )
9383                            .map(EigenPodManagerErrors::OnlyUnpauser)
9384                    }
9385                    OnlyUnpauser
9386                },
9387                {
9388                    fn CurrentlyPaused(
9389                        data: &[u8],
9390                        validate: bool,
9391                    ) -> alloy_sol_types::Result<EigenPodManagerErrors> {
9392                        <CurrentlyPaused as alloy_sol_types::SolError>::abi_decode_raw(
9393                                data,
9394                                validate,
9395                            )
9396                            .map(EigenPodManagerErrors::CurrentlyPaused)
9397                    }
9398                    CurrentlyPaused
9399                },
9400                {
9401                    fn SharesNotMultipleOfGwei(
9402                        data: &[u8],
9403                        validate: bool,
9404                    ) -> alloy_sol_types::Result<EigenPodManagerErrors> {
9405                        <SharesNotMultipleOfGwei as alloy_sol_types::SolError>::abi_decode_raw(
9406                                data,
9407                                validate,
9408                            )
9409                            .map(EigenPodManagerErrors::SharesNotMultipleOfGwei)
9410                    }
9411                    SharesNotMultipleOfGwei
9412                },
9413                {
9414                    fn OnlyProofTimestampSetter(
9415                        data: &[u8],
9416                        validate: bool,
9417                    ) -> alloy_sol_types::Result<EigenPodManagerErrors> {
9418                        <OnlyProofTimestampSetter as alloy_sol_types::SolError>::abi_decode_raw(
9419                                data,
9420                                validate,
9421                            )
9422                            .map(EigenPodManagerErrors::OnlyProofTimestampSetter)
9423                    }
9424                    OnlyProofTimestampSetter
9425                },
9426                {
9427                    fn InvalidShortString(
9428                        data: &[u8],
9429                        validate: bool,
9430                    ) -> alloy_sol_types::Result<EigenPodManagerErrors> {
9431                        <InvalidShortString as alloy_sol_types::SolError>::abi_decode_raw(
9432                                data,
9433                                validate,
9434                            )
9435                            .map(EigenPodManagerErrors::InvalidShortString)
9436                    }
9437                    InvalidShortString
9438                },
9439                {
9440                    fn InvalidNewPausedStatus(
9441                        data: &[u8],
9442                        validate: bool,
9443                    ) -> alloy_sol_types::Result<EigenPodManagerErrors> {
9444                        <InvalidNewPausedStatus as alloy_sol_types::SolError>::abi_decode_raw(
9445                                data,
9446                                validate,
9447                            )
9448                            .map(EigenPodManagerErrors::InvalidNewPausedStatus)
9449                    }
9450                    InvalidNewPausedStatus
9451                },
9452                {
9453                    fn SharesNegative(
9454                        data: &[u8],
9455                        validate: bool,
9456                    ) -> alloy_sol_types::Result<EigenPodManagerErrors> {
9457                        <SharesNegative as alloy_sol_types::SolError>::abi_decode_raw(
9458                                data,
9459                                validate,
9460                            )
9461                            .map(EigenPodManagerErrors::SharesNegative)
9462                    }
9463                    SharesNegative
9464                },
9465                {
9466                    fn OnlyDelegationManager(
9467                        data: &[u8],
9468                        validate: bool,
9469                    ) -> alloy_sol_types::Result<EigenPodManagerErrors> {
9470                        <OnlyDelegationManager as alloy_sol_types::SolError>::abi_decode_raw(
9471                                data,
9472                                validate,
9473                            )
9474                            .map(EigenPodManagerErrors::OnlyDelegationManager)
9475                    }
9476                    OnlyDelegationManager
9477                },
9478            ];
9479            let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
9480                return Err(
9481                    alloy_sol_types::Error::unknown_selector(
9482                        <Self as alloy_sol_types::SolInterface>::NAME,
9483                        selector,
9484                    ),
9485                );
9486            };
9487            DECODE_SHIMS[idx](data, validate)
9488        }
9489        #[inline]
9490        fn abi_encoded_size(&self) -> usize {
9491            match self {
9492                Self::CurrentlyPaused(inner) => {
9493                    <CurrentlyPaused as alloy_sol_types::SolError>::abi_encoded_size(
9494                        inner,
9495                    )
9496                }
9497                Self::EigenPodAlreadyExists(inner) => {
9498                    <EigenPodAlreadyExists as alloy_sol_types::SolError>::abi_encoded_size(
9499                        inner,
9500                    )
9501                }
9502                Self::InputAddressZero(inner) => {
9503                    <InputAddressZero as alloy_sol_types::SolError>::abi_encoded_size(
9504                        inner,
9505                    )
9506                }
9507                Self::InvalidNewPausedStatus(inner) => {
9508                    <InvalidNewPausedStatus as alloy_sol_types::SolError>::abi_encoded_size(
9509                        inner,
9510                    )
9511                }
9512                Self::InvalidShortString(inner) => {
9513                    <InvalidShortString as alloy_sol_types::SolError>::abi_encoded_size(
9514                        inner,
9515                    )
9516                }
9517                Self::InvalidStrategy(inner) => {
9518                    <InvalidStrategy as alloy_sol_types::SolError>::abi_encoded_size(
9519                        inner,
9520                    )
9521                }
9522                Self::LegacyWithdrawalsNotCompleted(inner) => {
9523                    <LegacyWithdrawalsNotCompleted as alloy_sol_types::SolError>::abi_encoded_size(
9524                        inner,
9525                    )
9526                }
9527                Self::OnlyDelegationManager(inner) => {
9528                    <OnlyDelegationManager as alloy_sol_types::SolError>::abi_encoded_size(
9529                        inner,
9530                    )
9531                }
9532                Self::OnlyEigenPod(inner) => {
9533                    <OnlyEigenPod as alloy_sol_types::SolError>::abi_encoded_size(inner)
9534                }
9535                Self::OnlyPauser(inner) => {
9536                    <OnlyPauser as alloy_sol_types::SolError>::abi_encoded_size(inner)
9537                }
9538                Self::OnlyProofTimestampSetter(inner) => {
9539                    <OnlyProofTimestampSetter as alloy_sol_types::SolError>::abi_encoded_size(
9540                        inner,
9541                    )
9542                }
9543                Self::OnlyUnpauser(inner) => {
9544                    <OnlyUnpauser as alloy_sol_types::SolError>::abi_encoded_size(inner)
9545                }
9546                Self::SharesNegative(inner) => {
9547                    <SharesNegative as alloy_sol_types::SolError>::abi_encoded_size(
9548                        inner,
9549                    )
9550                }
9551                Self::SharesNotMultipleOfGwei(inner) => {
9552                    <SharesNotMultipleOfGwei as alloy_sol_types::SolError>::abi_encoded_size(
9553                        inner,
9554                    )
9555                }
9556                Self::StringTooLong(inner) => {
9557                    <StringTooLong as alloy_sol_types::SolError>::abi_encoded_size(inner)
9558                }
9559            }
9560        }
9561        #[inline]
9562        fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
9563            match self {
9564                Self::CurrentlyPaused(inner) => {
9565                    <CurrentlyPaused as alloy_sol_types::SolError>::abi_encode_raw(
9566                        inner,
9567                        out,
9568                    )
9569                }
9570                Self::EigenPodAlreadyExists(inner) => {
9571                    <EigenPodAlreadyExists as alloy_sol_types::SolError>::abi_encode_raw(
9572                        inner,
9573                        out,
9574                    )
9575                }
9576                Self::InputAddressZero(inner) => {
9577                    <InputAddressZero as alloy_sol_types::SolError>::abi_encode_raw(
9578                        inner,
9579                        out,
9580                    )
9581                }
9582                Self::InvalidNewPausedStatus(inner) => {
9583                    <InvalidNewPausedStatus as alloy_sol_types::SolError>::abi_encode_raw(
9584                        inner,
9585                        out,
9586                    )
9587                }
9588                Self::InvalidShortString(inner) => {
9589                    <InvalidShortString as alloy_sol_types::SolError>::abi_encode_raw(
9590                        inner,
9591                        out,
9592                    )
9593                }
9594                Self::InvalidStrategy(inner) => {
9595                    <InvalidStrategy as alloy_sol_types::SolError>::abi_encode_raw(
9596                        inner,
9597                        out,
9598                    )
9599                }
9600                Self::LegacyWithdrawalsNotCompleted(inner) => {
9601                    <LegacyWithdrawalsNotCompleted as alloy_sol_types::SolError>::abi_encode_raw(
9602                        inner,
9603                        out,
9604                    )
9605                }
9606                Self::OnlyDelegationManager(inner) => {
9607                    <OnlyDelegationManager as alloy_sol_types::SolError>::abi_encode_raw(
9608                        inner,
9609                        out,
9610                    )
9611                }
9612                Self::OnlyEigenPod(inner) => {
9613                    <OnlyEigenPod as alloy_sol_types::SolError>::abi_encode_raw(
9614                        inner,
9615                        out,
9616                    )
9617                }
9618                Self::OnlyPauser(inner) => {
9619                    <OnlyPauser as alloy_sol_types::SolError>::abi_encode_raw(inner, out)
9620                }
9621                Self::OnlyProofTimestampSetter(inner) => {
9622                    <OnlyProofTimestampSetter as alloy_sol_types::SolError>::abi_encode_raw(
9623                        inner,
9624                        out,
9625                    )
9626                }
9627                Self::OnlyUnpauser(inner) => {
9628                    <OnlyUnpauser as alloy_sol_types::SolError>::abi_encode_raw(
9629                        inner,
9630                        out,
9631                    )
9632                }
9633                Self::SharesNegative(inner) => {
9634                    <SharesNegative as alloy_sol_types::SolError>::abi_encode_raw(
9635                        inner,
9636                        out,
9637                    )
9638                }
9639                Self::SharesNotMultipleOfGwei(inner) => {
9640                    <SharesNotMultipleOfGwei as alloy_sol_types::SolError>::abi_encode_raw(
9641                        inner,
9642                        out,
9643                    )
9644                }
9645                Self::StringTooLong(inner) => {
9646                    <StringTooLong as alloy_sol_types::SolError>::abi_encode_raw(
9647                        inner,
9648                        out,
9649                    )
9650                }
9651            }
9652        }
9653    }
9654    ///Container for all the [`EigenPodManager`](self) events.
9655    #[derive(Debug, PartialEq, Eq, Hash)]
9656    pub enum EigenPodManagerEvents {
9657        #[allow(missing_docs)]
9658        BeaconChainETHDeposited(BeaconChainETHDeposited),
9659        #[allow(missing_docs)]
9660        BeaconChainETHWithdrawalCompleted(BeaconChainETHWithdrawalCompleted),
9661        #[allow(missing_docs)]
9662        BeaconChainSlashingFactorDecreased(BeaconChainSlashingFactorDecreased),
9663        #[allow(missing_docs)]
9664        BurnableETHSharesIncreased(BurnableETHSharesIncreased),
9665        #[allow(missing_docs)]
9666        Initialized(Initialized),
9667        #[allow(missing_docs)]
9668        NewTotalShares(NewTotalShares),
9669        #[allow(missing_docs)]
9670        OwnershipTransferred(OwnershipTransferred),
9671        #[allow(missing_docs)]
9672        Paused(Paused),
9673        #[allow(missing_docs)]
9674        PectraForkTimestampSet(PectraForkTimestampSet),
9675        #[allow(missing_docs)]
9676        PodDeployed(PodDeployed),
9677        #[allow(missing_docs)]
9678        PodSharesUpdated(PodSharesUpdated),
9679        #[allow(missing_docs)]
9680        ProofTimestampSetterSet(ProofTimestampSetterSet),
9681        #[allow(missing_docs)]
9682        Unpaused(Unpaused),
9683    }
9684    #[automatically_derived]
9685    impl EigenPodManagerEvents {
9686        /// All the selectors of this enum.
9687        ///
9688        /// Note that the selectors might not be in the same order as the variants.
9689        /// No guarantees are made about the order of the selectors.
9690        ///
9691        /// Prefer using `SolInterface` methods instead.
9692        pub const SELECTORS: &'static [[u8; 32usize]] = &[
9693            [
9694                27u8, 200u8, 240u8, 66u8, 165u8, 45u8, 179u8, 164u8, 55u8, 98u8, 13u8,
9695                234u8, 69u8, 72u8, 242u8, 3u8, 31u8, 178u8, 161u8, 109u8, 216u8, 211u8,
9696                176u8, 184u8, 84u8, 41u8, 85u8, 40u8, 221u8, 44u8, 221u8, 51u8,
9697            ],
9698            [
9699                30u8, 208u8, 75u8, 127u8, 210u8, 98u8, 192u8, 217u8, 229u8, 15u8, 160u8,
9700                41u8, 87u8, 243u8, 42u8, 129u8, 161u8, 81u8, 240u8, 59u8, 170u8, 163u8,
9701                103u8, 250u8, 238u8, 220u8, 117u8, 33u8, 176u8, 1u8, 196u8, 164u8,
9702            ],
9703            [
9704                33u8, 201u8, 157u8, 13u8, 176u8, 34u8, 19u8, 195u8, 47u8, 255u8, 91u8,
9705                5u8, 207u8, 10u8, 113u8, 138u8, 181u8, 248u8, 88u8, 128u8, 43u8, 145u8,
9706                73u8, 143u8, 128u8, 216u8, 34u8, 112u8, 40u8, 157u8, 133u8, 106u8,
9707            ],
9708            [
9709                53u8, 130u8, 209u8, 130u8, 142u8, 38u8, 191u8, 86u8, 189u8, 128u8, 21u8,
9710                2u8, 188u8, 2u8, 26u8, 192u8, 188u8, 138u8, 251u8, 87u8, 200u8, 38u8,
9711                228u8, 152u8, 107u8, 69u8, 89u8, 60u8, 143u8, 173u8, 56u8, 156u8,
9712            ],
9713            [
9714                53u8, 168u8, 92u8, 171u8, 198u8, 3u8, 244u8, 138u8, 187u8, 43u8, 113u8,
9715                217u8, 251u8, 216u8, 173u8, 234u8, 124u8, 68u8, 157u8, 127u8, 11u8,
9716                233u8, 0u8, 174u8, 122u8, 41u8, 134u8, 234u8, 54u8, 156u8, 61u8, 13u8,
9717            ],
9718            [
9719                78u8, 43u8, 121u8, 29u8, 237u8, 204u8, 217u8, 251u8, 48u8, 20u8, 27u8,
9720                8u8, 140u8, 171u8, 245u8, 193u8, 74u8, 137u8, 18u8, 181u8, 47u8, 89u8,
9721                55u8, 92u8, 149u8, 192u8, 16u8, 112u8, 11u8, 140u8, 97u8, 147u8,
9722            ],
9723            [
9724                112u8, 37u8, 199u8, 26u8, 159u8, 230u8, 13u8, 112u8, 158u8, 113u8, 179u8,
9725                119u8, 220u8, 95u8, 124u8, 114u8, 195u8, 225u8, 216u8, 83u8, 159u8,
9726                128u8, 34u8, 87u8, 66u8, 84u8, 231u8, 54u8, 206u8, 202u8, 1u8, 229u8,
9727            ],
9728            [
9729                127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8,
9730                19u8, 56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8,
9731                146u8, 20u8, 96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8,
9732            ],
9733            [
9734                139u8, 224u8, 7u8, 156u8, 83u8, 22u8, 89u8, 20u8, 19u8, 68u8, 205u8,
9735                31u8, 208u8, 164u8, 242u8, 132u8, 25u8, 73u8, 127u8, 151u8, 34u8, 163u8,
9736                218u8, 175u8, 227u8, 180u8, 24u8, 111u8, 107u8, 100u8, 87u8, 224u8,
9737            ],
9738            [
9739                166u8, 186u8, 177u8, 213u8, 90u8, 54u8, 31u8, 206u8, 162u8, 238u8, 226u8,
9740                188u8, 148u8, 145u8, 228u8, 240u8, 30u8, 108u8, 243u8, 51u8, 223u8, 3u8,
9741                201u8, 196u8, 242u8, 193u8, 68u8, 70u8, 100u8, 41u8, 247u8, 214u8,
9742            ],
9743            [
9744                171u8, 64u8, 163u8, 116u8, 188u8, 81u8, 222u8, 55u8, 34u8, 0u8, 168u8,
9745                188u8, 152u8, 26u8, 248u8, 201u8, 236u8, 220u8, 8u8, 223u8, 218u8, 239u8,
9746                11u8, 182u8, 224u8, 159u8, 136u8, 243u8, 198u8, 22u8, 239u8, 61u8,
9747            ],
9748            [
9749                177u8, 96u8, 171u8, 133u8, 137u8, 191u8, 71u8, 220u8, 4u8, 234u8, 17u8,
9750                181u8, 13u8, 70u8, 103u8, 141u8, 33u8, 89u8, 12u8, 234u8, 46u8, 211u8,
9751                228u8, 84u8, 231u8, 189u8, 62u8, 65u8, 81u8, 15u8, 152u8, 207u8,
9752            ],
9753            [
9754                212u8, 222u8, 247u8, 109u8, 109u8, 43u8, 237u8, 111u8, 20u8, 213u8,
9755                205u8, 154u8, 247u8, 60u8, 194u8, 145u8, 61u8, 97u8, 141u8, 0u8, 237u8,
9756                222u8, 66u8, 67u8, 46u8, 129u8, 192u8, 155u8, 254u8, 7u8, 112u8, 152u8,
9757            ],
9758        ];
9759    }
9760    #[automatically_derived]
9761    impl alloy_sol_types::SolEventInterface for EigenPodManagerEvents {
9762        const NAME: &'static str = "EigenPodManagerEvents";
9763        const COUNT: usize = 13usize;
9764        fn decode_raw_log(
9765            topics: &[alloy_sol_types::Word],
9766            data: &[u8],
9767            validate: bool,
9768        ) -> alloy_sol_types::Result<Self> {
9769            match topics.first().copied() {
9770                Some(
9771                    <BeaconChainETHDeposited as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
9772                ) => {
9773                    <BeaconChainETHDeposited as alloy_sol_types::SolEvent>::decode_raw_log(
9774                            topics,
9775                            data,
9776                            validate,
9777                        )
9778                        .map(Self::BeaconChainETHDeposited)
9779                }
9780                Some(
9781                    <BeaconChainETHWithdrawalCompleted as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
9782                ) => {
9783                    <BeaconChainETHWithdrawalCompleted as alloy_sol_types::SolEvent>::decode_raw_log(
9784                            topics,
9785                            data,
9786                            validate,
9787                        )
9788                        .map(Self::BeaconChainETHWithdrawalCompleted)
9789                }
9790                Some(
9791                    <BeaconChainSlashingFactorDecreased as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
9792                ) => {
9793                    <BeaconChainSlashingFactorDecreased as alloy_sol_types::SolEvent>::decode_raw_log(
9794                            topics,
9795                            data,
9796                            validate,
9797                        )
9798                        .map(Self::BeaconChainSlashingFactorDecreased)
9799                }
9800                Some(
9801                    <BurnableETHSharesIncreased as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
9802                ) => {
9803                    <BurnableETHSharesIncreased as alloy_sol_types::SolEvent>::decode_raw_log(
9804                            topics,
9805                            data,
9806                            validate,
9807                        )
9808                        .map(Self::BurnableETHSharesIncreased)
9809                }
9810                Some(<Initialized as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
9811                    <Initialized as alloy_sol_types::SolEvent>::decode_raw_log(
9812                            topics,
9813                            data,
9814                            validate,
9815                        )
9816                        .map(Self::Initialized)
9817                }
9818                Some(<NewTotalShares as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
9819                    <NewTotalShares as alloy_sol_types::SolEvent>::decode_raw_log(
9820                            topics,
9821                            data,
9822                            validate,
9823                        )
9824                        .map(Self::NewTotalShares)
9825                }
9826                Some(
9827                    <OwnershipTransferred as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
9828                ) => {
9829                    <OwnershipTransferred as alloy_sol_types::SolEvent>::decode_raw_log(
9830                            topics,
9831                            data,
9832                            validate,
9833                        )
9834                        .map(Self::OwnershipTransferred)
9835                }
9836                Some(<Paused as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
9837                    <Paused as alloy_sol_types::SolEvent>::decode_raw_log(
9838                            topics,
9839                            data,
9840                            validate,
9841                        )
9842                        .map(Self::Paused)
9843                }
9844                Some(
9845                    <PectraForkTimestampSet as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
9846                ) => {
9847                    <PectraForkTimestampSet as alloy_sol_types::SolEvent>::decode_raw_log(
9848                            topics,
9849                            data,
9850                            validate,
9851                        )
9852                        .map(Self::PectraForkTimestampSet)
9853                }
9854                Some(<PodDeployed as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
9855                    <PodDeployed as alloy_sol_types::SolEvent>::decode_raw_log(
9856                            topics,
9857                            data,
9858                            validate,
9859                        )
9860                        .map(Self::PodDeployed)
9861                }
9862                Some(<PodSharesUpdated as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
9863                    <PodSharesUpdated as alloy_sol_types::SolEvent>::decode_raw_log(
9864                            topics,
9865                            data,
9866                            validate,
9867                        )
9868                        .map(Self::PodSharesUpdated)
9869                }
9870                Some(
9871                    <ProofTimestampSetterSet as alloy_sol_types::SolEvent>::SIGNATURE_HASH,
9872                ) => {
9873                    <ProofTimestampSetterSet as alloy_sol_types::SolEvent>::decode_raw_log(
9874                            topics,
9875                            data,
9876                            validate,
9877                        )
9878                        .map(Self::ProofTimestampSetterSet)
9879                }
9880                Some(<Unpaused as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
9881                    <Unpaused as alloy_sol_types::SolEvent>::decode_raw_log(
9882                            topics,
9883                            data,
9884                            validate,
9885                        )
9886                        .map(Self::Unpaused)
9887                }
9888                _ => {
9889                    alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog {
9890                        name: <Self as alloy_sol_types::SolEventInterface>::NAME,
9891                        log: alloy_sol_types::private::Box::new(
9892                            alloy_sol_types::private::LogData::new_unchecked(
9893                                topics.to_vec(),
9894                                data.to_vec().into(),
9895                            ),
9896                        ),
9897                    })
9898                }
9899            }
9900        }
9901    }
9902    #[automatically_derived]
9903    impl alloy_sol_types::private::IntoLogData for EigenPodManagerEvents {
9904        fn to_log_data(&self) -> alloy_sol_types::private::LogData {
9905            match self {
9906                Self::BeaconChainETHDeposited(inner) => {
9907                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
9908                }
9909                Self::BeaconChainETHWithdrawalCompleted(inner) => {
9910                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
9911                }
9912                Self::BeaconChainSlashingFactorDecreased(inner) => {
9913                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
9914                }
9915                Self::BurnableETHSharesIncreased(inner) => {
9916                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
9917                }
9918                Self::Initialized(inner) => {
9919                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
9920                }
9921                Self::NewTotalShares(inner) => {
9922                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
9923                }
9924                Self::OwnershipTransferred(inner) => {
9925                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
9926                }
9927                Self::Paused(inner) => {
9928                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
9929                }
9930                Self::PectraForkTimestampSet(inner) => {
9931                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
9932                }
9933                Self::PodDeployed(inner) => {
9934                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
9935                }
9936                Self::PodSharesUpdated(inner) => {
9937                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
9938                }
9939                Self::ProofTimestampSetterSet(inner) => {
9940                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
9941                }
9942                Self::Unpaused(inner) => {
9943                    alloy_sol_types::private::IntoLogData::to_log_data(inner)
9944                }
9945            }
9946        }
9947        fn into_log_data(self) -> alloy_sol_types::private::LogData {
9948            match self {
9949                Self::BeaconChainETHDeposited(inner) => {
9950                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
9951                }
9952                Self::BeaconChainETHWithdrawalCompleted(inner) => {
9953                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
9954                }
9955                Self::BeaconChainSlashingFactorDecreased(inner) => {
9956                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
9957                }
9958                Self::BurnableETHSharesIncreased(inner) => {
9959                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
9960                }
9961                Self::Initialized(inner) => {
9962                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
9963                }
9964                Self::NewTotalShares(inner) => {
9965                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
9966                }
9967                Self::OwnershipTransferred(inner) => {
9968                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
9969                }
9970                Self::Paused(inner) => {
9971                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
9972                }
9973                Self::PectraForkTimestampSet(inner) => {
9974                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
9975                }
9976                Self::PodDeployed(inner) => {
9977                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
9978                }
9979                Self::PodSharesUpdated(inner) => {
9980                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
9981                }
9982                Self::ProofTimestampSetterSet(inner) => {
9983                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
9984                }
9985                Self::Unpaused(inner) => {
9986                    alloy_sol_types::private::IntoLogData::into_log_data(inner)
9987                }
9988            }
9989        }
9990    }
9991    use alloy::contract as alloy_contract;
9992    /**Creates a new wrapper around an on-chain [`EigenPodManager`](self) contract instance.
9993
9994See the [wrapper's documentation](`EigenPodManagerInstance`) for more details.*/
9995    #[inline]
9996    pub const fn new<
9997        T: alloy_contract::private::Transport + ::core::clone::Clone,
9998        P: alloy_contract::private::Provider<T, N>,
9999        N: alloy_contract::private::Network,
10000    >(
10001        address: alloy_sol_types::private::Address,
10002        provider: P,
10003    ) -> EigenPodManagerInstance<T, P, N> {
10004        EigenPodManagerInstance::<T, P, N>::new(address, provider)
10005    }
10006    /**Deploys this contract using the given `provider` and constructor arguments, if any.
10007
10008Returns a new instance of the contract, if the deployment was successful.
10009
10010For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/
10011    #[inline]
10012    pub fn deploy<
10013        T: alloy_contract::private::Transport + ::core::clone::Clone,
10014        P: alloy_contract::private::Provider<T, N>,
10015        N: alloy_contract::private::Network,
10016    >(
10017        provider: P,
10018        _ethPOS: alloy::sol_types::private::Address,
10019        _eigenPodBeacon: alloy::sol_types::private::Address,
10020        _delegationManager: alloy::sol_types::private::Address,
10021        _pauserRegistry: alloy::sol_types::private::Address,
10022        _version: alloy::sol_types::private::String,
10023    ) -> impl ::core::future::Future<
10024        Output = alloy_contract::Result<EigenPodManagerInstance<T, P, N>>,
10025    > {
10026        EigenPodManagerInstance::<
10027            T,
10028            P,
10029            N,
10030        >::deploy(
10031            provider,
10032            _ethPOS,
10033            _eigenPodBeacon,
10034            _delegationManager,
10035            _pauserRegistry,
10036            _version,
10037        )
10038    }
10039    /**Creates a `RawCallBuilder` for deploying this contract using the given `provider`
10040and constructor arguments, if any.
10041
10042This is a simple wrapper around creating a `RawCallBuilder` with the data set to
10043the bytecode concatenated with the constructor's ABI-encoded arguments.*/
10044    #[inline]
10045    pub fn deploy_builder<
10046        T: alloy_contract::private::Transport + ::core::clone::Clone,
10047        P: alloy_contract::private::Provider<T, N>,
10048        N: alloy_contract::private::Network,
10049    >(
10050        provider: P,
10051        _ethPOS: alloy::sol_types::private::Address,
10052        _eigenPodBeacon: alloy::sol_types::private::Address,
10053        _delegationManager: alloy::sol_types::private::Address,
10054        _pauserRegistry: alloy::sol_types::private::Address,
10055        _version: alloy::sol_types::private::String,
10056    ) -> alloy_contract::RawCallBuilder<T, P, N> {
10057        EigenPodManagerInstance::<
10058            T,
10059            P,
10060            N,
10061        >::deploy_builder(
10062            provider,
10063            _ethPOS,
10064            _eigenPodBeacon,
10065            _delegationManager,
10066            _pauserRegistry,
10067            _version,
10068        )
10069    }
10070    /**A [`EigenPodManager`](self) instance.
10071
10072Contains type-safe methods for interacting with an on-chain instance of the
10073[`EigenPodManager`](self) contract located at a given `address`, using a given
10074provider `P`.
10075
10076If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!)
10077documentation on how to provide it), the `deploy` and `deploy_builder` methods can
10078be used to deploy a new instance of the contract.
10079
10080See the [module-level documentation](self) for all the available methods.*/
10081    #[derive(Clone)]
10082    pub struct EigenPodManagerInstance<T, P, N = alloy_contract::private::Ethereum> {
10083        address: alloy_sol_types::private::Address,
10084        provider: P,
10085        _network_transport: ::core::marker::PhantomData<(N, T)>,
10086    }
10087    #[automatically_derived]
10088    impl<T, P, N> ::core::fmt::Debug for EigenPodManagerInstance<T, P, N> {
10089        #[inline]
10090        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
10091            f.debug_tuple("EigenPodManagerInstance").field(&self.address).finish()
10092        }
10093    }
10094    /// Instantiation and getters/setters.
10095    #[automatically_derived]
10096    impl<
10097        T: alloy_contract::private::Transport + ::core::clone::Clone,
10098        P: alloy_contract::private::Provider<T, N>,
10099        N: alloy_contract::private::Network,
10100    > EigenPodManagerInstance<T, P, N> {
10101        /**Creates a new wrapper around an on-chain [`EigenPodManager`](self) contract instance.
10102
10103See the [wrapper's documentation](`EigenPodManagerInstance`) for more details.*/
10104        #[inline]
10105        pub const fn new(
10106            address: alloy_sol_types::private::Address,
10107            provider: P,
10108        ) -> Self {
10109            Self {
10110                address,
10111                provider,
10112                _network_transport: ::core::marker::PhantomData,
10113            }
10114        }
10115        /**Deploys this contract using the given `provider` and constructor arguments, if any.
10116
10117Returns a new instance of the contract, if the deployment was successful.
10118
10119For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/
10120        #[inline]
10121        pub async fn deploy(
10122            provider: P,
10123            _ethPOS: alloy::sol_types::private::Address,
10124            _eigenPodBeacon: alloy::sol_types::private::Address,
10125            _delegationManager: alloy::sol_types::private::Address,
10126            _pauserRegistry: alloy::sol_types::private::Address,
10127            _version: alloy::sol_types::private::String,
10128        ) -> alloy_contract::Result<EigenPodManagerInstance<T, P, N>> {
10129            let call_builder = Self::deploy_builder(
10130                provider,
10131                _ethPOS,
10132                _eigenPodBeacon,
10133                _delegationManager,
10134                _pauserRegistry,
10135                _version,
10136            );
10137            let contract_address = call_builder.deploy().await?;
10138            Ok(Self::new(contract_address, call_builder.provider))
10139        }
10140        /**Creates a `RawCallBuilder` for deploying this contract using the given `provider`
10141and constructor arguments, if any.
10142
10143This is a simple wrapper around creating a `RawCallBuilder` with the data set to
10144the bytecode concatenated with the constructor's ABI-encoded arguments.*/
10145        #[inline]
10146        pub fn deploy_builder(
10147            provider: P,
10148            _ethPOS: alloy::sol_types::private::Address,
10149            _eigenPodBeacon: alloy::sol_types::private::Address,
10150            _delegationManager: alloy::sol_types::private::Address,
10151            _pauserRegistry: alloy::sol_types::private::Address,
10152            _version: alloy::sol_types::private::String,
10153        ) -> alloy_contract::RawCallBuilder<T, P, N> {
10154            alloy_contract::RawCallBuilder::new_raw_deploy(
10155                provider,
10156                [
10157                    &BYTECODE[..],
10158                    &alloy_sol_types::SolConstructor::abi_encode(
10159                        &constructorCall {
10160                            _ethPOS,
10161                            _eigenPodBeacon,
10162                            _delegationManager,
10163                            _pauserRegistry,
10164                            _version,
10165                        },
10166                    )[..],
10167                ]
10168                    .concat()
10169                    .into(),
10170            )
10171        }
10172        /// Returns a reference to the address.
10173        #[inline]
10174        pub const fn address(&self) -> &alloy_sol_types::private::Address {
10175            &self.address
10176        }
10177        /// Sets the address.
10178        #[inline]
10179        pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
10180            self.address = address;
10181        }
10182        /// Sets the address and returns `self`.
10183        pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
10184            self.set_address(address);
10185            self
10186        }
10187        /// Returns a reference to the provider.
10188        #[inline]
10189        pub const fn provider(&self) -> &P {
10190            &self.provider
10191        }
10192    }
10193    impl<T, P: ::core::clone::Clone, N> EigenPodManagerInstance<T, &P, N> {
10194        /// Clones the provider and returns a new instance with the cloned provider.
10195        #[inline]
10196        pub fn with_cloned_provider(self) -> EigenPodManagerInstance<T, P, N> {
10197            EigenPodManagerInstance {
10198                address: self.address,
10199                provider: ::core::clone::Clone::clone(&self.provider),
10200                _network_transport: ::core::marker::PhantomData,
10201            }
10202        }
10203    }
10204    /// Function calls.
10205    #[automatically_derived]
10206    impl<
10207        T: alloy_contract::private::Transport + ::core::clone::Clone,
10208        P: alloy_contract::private::Provider<T, N>,
10209        N: alloy_contract::private::Network,
10210    > EigenPodManagerInstance<T, P, N> {
10211        /// Creates a new call builder using this contract instance's provider and address.
10212        ///
10213        /// Note that the call can be any function call, not just those defined in this
10214        /// contract. Prefer using the other methods for building type-safe contract calls.
10215        pub fn call_builder<C: alloy_sol_types::SolCall>(
10216            &self,
10217            call: &C,
10218        ) -> alloy_contract::SolCallBuilder<T, &P, C, N> {
10219            alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
10220        }
10221        ///Creates a new call builder for the [`addShares`] function.
10222        pub fn addShares(
10223            &self,
10224            staker: alloy::sol_types::private::Address,
10225            strategy: alloy::sol_types::private::Address,
10226            shares: alloy::sol_types::private::primitives::aliases::U256,
10227        ) -> alloy_contract::SolCallBuilder<T, &P, addSharesCall, N> {
10228            self.call_builder(
10229                &addSharesCall {
10230                    staker,
10231                    strategy,
10232                    shares,
10233                },
10234            )
10235        }
10236        ///Creates a new call builder for the [`beaconChainETHStrategy`] function.
10237        pub fn beaconChainETHStrategy(
10238            &self,
10239        ) -> alloy_contract::SolCallBuilder<T, &P, beaconChainETHStrategyCall, N> {
10240            self.call_builder(&beaconChainETHStrategyCall {})
10241        }
10242        ///Creates a new call builder for the [`beaconChainSlashingFactor`] function.
10243        pub fn beaconChainSlashingFactor(
10244            &self,
10245            podOwner: alloy::sol_types::private::Address,
10246        ) -> alloy_contract::SolCallBuilder<T, &P, beaconChainSlashingFactorCall, N> {
10247            self.call_builder(
10248                &beaconChainSlashingFactorCall {
10249                    podOwner,
10250                },
10251            )
10252        }
10253        ///Creates a new call builder for the [`burnableETHShares`] function.
10254        pub fn burnableETHShares(
10255            &self,
10256        ) -> alloy_contract::SolCallBuilder<T, &P, burnableETHSharesCall, N> {
10257            self.call_builder(&burnableETHSharesCall {})
10258        }
10259        ///Creates a new call builder for the [`createPod`] function.
10260        pub fn createPod(
10261            &self,
10262        ) -> alloy_contract::SolCallBuilder<T, &P, createPodCall, N> {
10263            self.call_builder(&createPodCall {})
10264        }
10265        ///Creates a new call builder for the [`delegationManager`] function.
10266        pub fn delegationManager(
10267            &self,
10268        ) -> alloy_contract::SolCallBuilder<T, &P, delegationManagerCall, N> {
10269            self.call_builder(&delegationManagerCall {})
10270        }
10271        ///Creates a new call builder for the [`eigenPodBeacon`] function.
10272        pub fn eigenPodBeacon(
10273            &self,
10274        ) -> alloy_contract::SolCallBuilder<T, &P, eigenPodBeaconCall, N> {
10275            self.call_builder(&eigenPodBeaconCall {})
10276        }
10277        ///Creates a new call builder for the [`ethPOS`] function.
10278        pub fn ethPOS(&self) -> alloy_contract::SolCallBuilder<T, &P, ethPOSCall, N> {
10279            self.call_builder(&ethPOSCall {})
10280        }
10281        ///Creates a new call builder for the [`getPod`] function.
10282        pub fn getPod(
10283            &self,
10284            podOwner: alloy::sol_types::private::Address,
10285        ) -> alloy_contract::SolCallBuilder<T, &P, getPodCall, N> {
10286            self.call_builder(&getPodCall { podOwner })
10287        }
10288        ///Creates a new call builder for the [`hasPod`] function.
10289        pub fn hasPod(
10290            &self,
10291            podOwner: alloy::sol_types::private::Address,
10292        ) -> alloy_contract::SolCallBuilder<T, &P, hasPodCall, N> {
10293            self.call_builder(&hasPodCall { podOwner })
10294        }
10295        ///Creates a new call builder for the [`increaseBurnableShares`] function.
10296        pub fn increaseBurnableShares(
10297            &self,
10298            _0: alloy::sol_types::private::Address,
10299            addedSharesToBurn: alloy::sol_types::private::primitives::aliases::U256,
10300        ) -> alloy_contract::SolCallBuilder<T, &P, increaseBurnableSharesCall, N> {
10301            self.call_builder(
10302                &increaseBurnableSharesCall {
10303                    _0,
10304                    addedSharesToBurn,
10305                },
10306            )
10307        }
10308        ///Creates a new call builder for the [`initialize`] function.
10309        pub fn initialize(
10310            &self,
10311            initialOwner: alloy::sol_types::private::Address,
10312            _initPausedStatus: alloy::sol_types::private::primitives::aliases::U256,
10313        ) -> alloy_contract::SolCallBuilder<T, &P, initializeCall, N> {
10314            self.call_builder(
10315                &initializeCall {
10316                    initialOwner,
10317                    _initPausedStatus,
10318                },
10319            )
10320        }
10321        ///Creates a new call builder for the [`numPods`] function.
10322        pub fn numPods(&self) -> alloy_contract::SolCallBuilder<T, &P, numPodsCall, N> {
10323            self.call_builder(&numPodsCall {})
10324        }
10325        ///Creates a new call builder for the [`owner`] function.
10326        pub fn owner(&self) -> alloy_contract::SolCallBuilder<T, &P, ownerCall, N> {
10327            self.call_builder(&ownerCall {})
10328        }
10329        ///Creates a new call builder for the [`ownerToPod`] function.
10330        pub fn ownerToPod(
10331            &self,
10332            podOwner: alloy::sol_types::private::Address,
10333        ) -> alloy_contract::SolCallBuilder<T, &P, ownerToPodCall, N> {
10334            self.call_builder(&ownerToPodCall { podOwner })
10335        }
10336        ///Creates a new call builder for the [`pause`] function.
10337        pub fn pause(
10338            &self,
10339            newPausedStatus: alloy::sol_types::private::primitives::aliases::U256,
10340        ) -> alloy_contract::SolCallBuilder<T, &P, pauseCall, N> {
10341            self.call_builder(&pauseCall { newPausedStatus })
10342        }
10343        ///Creates a new call builder for the [`pauseAll`] function.
10344        pub fn pauseAll(
10345            &self,
10346        ) -> alloy_contract::SolCallBuilder<T, &P, pauseAllCall, N> {
10347            self.call_builder(&pauseAllCall {})
10348        }
10349        ///Creates a new call builder for the [`paused_0`] function.
10350        pub fn paused_0(
10351            &self,
10352            index: u8,
10353        ) -> alloy_contract::SolCallBuilder<T, &P, paused_0Call, N> {
10354            self.call_builder(&paused_0Call { index })
10355        }
10356        ///Creates a new call builder for the [`paused_1`] function.
10357        pub fn paused_1(
10358            &self,
10359        ) -> alloy_contract::SolCallBuilder<T, &P, paused_1Call, N> {
10360            self.call_builder(&paused_1Call {})
10361        }
10362        ///Creates a new call builder for the [`pauserRegistry`] function.
10363        pub fn pauserRegistry(
10364            &self,
10365        ) -> alloy_contract::SolCallBuilder<T, &P, pauserRegistryCall, N> {
10366            self.call_builder(&pauserRegistryCall {})
10367        }
10368        ///Creates a new call builder for the [`pectraForkTimestamp`] function.
10369        pub fn pectraForkTimestamp(
10370            &self,
10371        ) -> alloy_contract::SolCallBuilder<T, &P, pectraForkTimestampCall, N> {
10372            self.call_builder(&pectraForkTimestampCall {})
10373        }
10374        ///Creates a new call builder for the [`podOwnerDepositShares`] function.
10375        pub fn podOwnerDepositShares(
10376            &self,
10377            podOwner: alloy::sol_types::private::Address,
10378        ) -> alloy_contract::SolCallBuilder<T, &P, podOwnerDepositSharesCall, N> {
10379            self.call_builder(
10380                &podOwnerDepositSharesCall {
10381                    podOwner,
10382                },
10383            )
10384        }
10385        ///Creates a new call builder for the [`proofTimestampSetter`] function.
10386        pub fn proofTimestampSetter(
10387            &self,
10388        ) -> alloy_contract::SolCallBuilder<T, &P, proofTimestampSetterCall, N> {
10389            self.call_builder(&proofTimestampSetterCall {})
10390        }
10391        ///Creates a new call builder for the [`recordBeaconChainETHBalanceUpdate`] function.
10392        pub fn recordBeaconChainETHBalanceUpdate(
10393            &self,
10394            podOwner: alloy::sol_types::private::Address,
10395            prevRestakedBalanceWei: alloy::sol_types::private::primitives::aliases::U256,
10396            balanceDeltaWei: alloy::sol_types::private::primitives::aliases::I256,
10397        ) -> alloy_contract::SolCallBuilder<
10398            T,
10399            &P,
10400            recordBeaconChainETHBalanceUpdateCall,
10401            N,
10402        > {
10403            self.call_builder(
10404                &recordBeaconChainETHBalanceUpdateCall {
10405                    podOwner,
10406                    prevRestakedBalanceWei,
10407                    balanceDeltaWei,
10408                },
10409            )
10410        }
10411        ///Creates a new call builder for the [`removeDepositShares`] function.
10412        pub fn removeDepositShares(
10413            &self,
10414            staker: alloy::sol_types::private::Address,
10415            strategy: alloy::sol_types::private::Address,
10416            depositSharesToRemove: alloy::sol_types::private::primitives::aliases::U256,
10417        ) -> alloy_contract::SolCallBuilder<T, &P, removeDepositSharesCall, N> {
10418            self.call_builder(
10419                &removeDepositSharesCall {
10420                    staker,
10421                    strategy,
10422                    depositSharesToRemove,
10423                },
10424            )
10425        }
10426        ///Creates a new call builder for the [`renounceOwnership`] function.
10427        pub fn renounceOwnership(
10428            &self,
10429        ) -> alloy_contract::SolCallBuilder<T, &P, renounceOwnershipCall, N> {
10430            self.call_builder(&renounceOwnershipCall {})
10431        }
10432        ///Creates a new call builder for the [`setPectraForkTimestamp`] function.
10433        pub fn setPectraForkTimestamp(
10434            &self,
10435            timestamp: u64,
10436        ) -> alloy_contract::SolCallBuilder<T, &P, setPectraForkTimestampCall, N> {
10437            self.call_builder(
10438                &setPectraForkTimestampCall {
10439                    timestamp,
10440                },
10441            )
10442        }
10443        ///Creates a new call builder for the [`setProofTimestampSetter`] function.
10444        pub fn setProofTimestampSetter(
10445            &self,
10446            newProofTimestampSetter: alloy::sol_types::private::Address,
10447        ) -> alloy_contract::SolCallBuilder<T, &P, setProofTimestampSetterCall, N> {
10448            self.call_builder(
10449                &setProofTimestampSetterCall {
10450                    newProofTimestampSetter,
10451                },
10452            )
10453        }
10454        ///Creates a new call builder for the [`stake`] function.
10455        pub fn stake(
10456            &self,
10457            pubkey: alloy::sol_types::private::Bytes,
10458            signature: alloy::sol_types::private::Bytes,
10459            depositDataRoot: alloy::sol_types::private::FixedBytes<32>,
10460        ) -> alloy_contract::SolCallBuilder<T, &P, stakeCall, N> {
10461            self.call_builder(
10462                &stakeCall {
10463                    pubkey,
10464                    signature,
10465                    depositDataRoot,
10466                },
10467            )
10468        }
10469        ///Creates a new call builder for the [`stakerDepositShares`] function.
10470        pub fn stakerDepositShares(
10471            &self,
10472            user: alloy::sol_types::private::Address,
10473            strategy: alloy::sol_types::private::Address,
10474        ) -> alloy_contract::SolCallBuilder<T, &P, stakerDepositSharesCall, N> {
10475            self.call_builder(
10476                &stakerDepositSharesCall {
10477                    user,
10478                    strategy,
10479                },
10480            )
10481        }
10482        ///Creates a new call builder for the [`transferOwnership`] function.
10483        pub fn transferOwnership(
10484            &self,
10485            newOwner: alloy::sol_types::private::Address,
10486        ) -> alloy_contract::SolCallBuilder<T, &P, transferOwnershipCall, N> {
10487            self.call_builder(&transferOwnershipCall { newOwner })
10488        }
10489        ///Creates a new call builder for the [`unpause`] function.
10490        pub fn unpause(
10491            &self,
10492            newPausedStatus: alloy::sol_types::private::primitives::aliases::U256,
10493        ) -> alloy_contract::SolCallBuilder<T, &P, unpauseCall, N> {
10494            self.call_builder(&unpauseCall { newPausedStatus })
10495        }
10496        ///Creates a new call builder for the [`version`] function.
10497        pub fn version(&self) -> alloy_contract::SolCallBuilder<T, &P, versionCall, N> {
10498            self.call_builder(&versionCall {})
10499        }
10500        ///Creates a new call builder for the [`withdrawSharesAsTokens`] function.
10501        pub fn withdrawSharesAsTokens(
10502            &self,
10503            staker: alloy::sol_types::private::Address,
10504            strategy: alloy::sol_types::private::Address,
10505            _2: alloy::sol_types::private::Address,
10506            shares: alloy::sol_types::private::primitives::aliases::U256,
10507        ) -> alloy_contract::SolCallBuilder<T, &P, withdrawSharesAsTokensCall, N> {
10508            self.call_builder(
10509                &withdrawSharesAsTokensCall {
10510                    staker,
10511                    strategy,
10512                    _2,
10513                    shares,
10514                },
10515            )
10516        }
10517    }
10518    /// Event filters.
10519    #[automatically_derived]
10520    impl<
10521        T: alloy_contract::private::Transport + ::core::clone::Clone,
10522        P: alloy_contract::private::Provider<T, N>,
10523        N: alloy_contract::private::Network,
10524    > EigenPodManagerInstance<T, P, N> {
10525        /// Creates a new event filter using this contract instance's provider and address.
10526        ///
10527        /// Note that the type can be any event, not just those defined in this contract.
10528        /// Prefer using the other methods for building type-safe event filters.
10529        pub fn event_filter<E: alloy_sol_types::SolEvent>(
10530            &self,
10531        ) -> alloy_contract::Event<T, &P, E, N> {
10532            alloy_contract::Event::new_sol(&self.provider, &self.address)
10533        }
10534        ///Creates a new event filter for the [`BeaconChainETHDeposited`] event.
10535        pub fn BeaconChainETHDeposited_filter(
10536            &self,
10537        ) -> alloy_contract::Event<T, &P, BeaconChainETHDeposited, N> {
10538            self.event_filter::<BeaconChainETHDeposited>()
10539        }
10540        ///Creates a new event filter for the [`BeaconChainETHWithdrawalCompleted`] event.
10541        pub fn BeaconChainETHWithdrawalCompleted_filter(
10542            &self,
10543        ) -> alloy_contract::Event<T, &P, BeaconChainETHWithdrawalCompleted, N> {
10544            self.event_filter::<BeaconChainETHWithdrawalCompleted>()
10545        }
10546        ///Creates a new event filter for the [`BeaconChainSlashingFactorDecreased`] event.
10547        pub fn BeaconChainSlashingFactorDecreased_filter(
10548            &self,
10549        ) -> alloy_contract::Event<T, &P, BeaconChainSlashingFactorDecreased, N> {
10550            self.event_filter::<BeaconChainSlashingFactorDecreased>()
10551        }
10552        ///Creates a new event filter for the [`BurnableETHSharesIncreased`] event.
10553        pub fn BurnableETHSharesIncreased_filter(
10554            &self,
10555        ) -> alloy_contract::Event<T, &P, BurnableETHSharesIncreased, N> {
10556            self.event_filter::<BurnableETHSharesIncreased>()
10557        }
10558        ///Creates a new event filter for the [`Initialized`] event.
10559        pub fn Initialized_filter(
10560            &self,
10561        ) -> alloy_contract::Event<T, &P, Initialized, N> {
10562            self.event_filter::<Initialized>()
10563        }
10564        ///Creates a new event filter for the [`NewTotalShares`] event.
10565        pub fn NewTotalShares_filter(
10566            &self,
10567        ) -> alloy_contract::Event<T, &P, NewTotalShares, N> {
10568            self.event_filter::<NewTotalShares>()
10569        }
10570        ///Creates a new event filter for the [`OwnershipTransferred`] event.
10571        pub fn OwnershipTransferred_filter(
10572            &self,
10573        ) -> alloy_contract::Event<T, &P, OwnershipTransferred, N> {
10574            self.event_filter::<OwnershipTransferred>()
10575        }
10576        ///Creates a new event filter for the [`Paused`] event.
10577        pub fn Paused_filter(&self) -> alloy_contract::Event<T, &P, Paused, N> {
10578            self.event_filter::<Paused>()
10579        }
10580        ///Creates a new event filter for the [`PectraForkTimestampSet`] event.
10581        pub fn PectraForkTimestampSet_filter(
10582            &self,
10583        ) -> alloy_contract::Event<T, &P, PectraForkTimestampSet, N> {
10584            self.event_filter::<PectraForkTimestampSet>()
10585        }
10586        ///Creates a new event filter for the [`PodDeployed`] event.
10587        pub fn PodDeployed_filter(
10588            &self,
10589        ) -> alloy_contract::Event<T, &P, PodDeployed, N> {
10590            self.event_filter::<PodDeployed>()
10591        }
10592        ///Creates a new event filter for the [`PodSharesUpdated`] event.
10593        pub fn PodSharesUpdated_filter(
10594            &self,
10595        ) -> alloy_contract::Event<T, &P, PodSharesUpdated, N> {
10596            self.event_filter::<PodSharesUpdated>()
10597        }
10598        ///Creates a new event filter for the [`ProofTimestampSetterSet`] event.
10599        pub fn ProofTimestampSetterSet_filter(
10600            &self,
10601        ) -> alloy_contract::Event<T, &P, ProofTimestampSetterSet, N> {
10602            self.event_filter::<ProofTimestampSetterSet>()
10603        }
10604        ///Creates a new event filter for the [`Unpaused`] event.
10605        pub fn Unpaused_filter(&self) -> alloy_contract::Event<T, &P, Unpaused, N> {
10606            self.event_filter::<Unpaused>()
10607        }
10608    }
10609}