hopr_bindings/codegen/
hopr_node_management_module.rs

1pub use hopr_node_management_module::*;
2/// This module was auto-generated with ethers-rs Abigen.
3/// More information at: <https://github.com/gakonst/ethers-rs>
4#[allow(
5    clippy::enum_variant_names,
6    clippy::too_many_arguments,
7    clippy::upper_case_acronyms,
8    clippy::type_complexity,
9    dead_code,
10    non_camel_case_types,
11)]
12pub mod hopr_node_management_module {
13    #[allow(deprecated)]
14    fn __abi() -> ::ethers::core::abi::Abi {
15        ::ethers::core::abi::ethabi::Contract {
16            constructor: ::core::option::Option::Some(::ethers::core::abi::ethabi::Constructor {
17                inputs: ::std::vec![],
18            }),
19            functions: ::core::convert::From::from([
20                (
21                    ::std::borrow::ToOwned::to_owned("addChannelsAndTokenTarget"),
22                    ::std::vec![
23                        ::ethers::core::abi::ethabi::Function {
24                            name: ::std::borrow::ToOwned::to_owned(
25                                "addChannelsAndTokenTarget",
26                            ),
27                            inputs: ::std::vec![
28                                ::ethers::core::abi::ethabi::Param {
29                                    name: ::std::borrow::ToOwned::to_owned("defaultTarget"),
30                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
31                                        256usize,
32                                    ),
33                                    internal_type: ::core::option::Option::Some(
34                                        ::std::borrow::ToOwned::to_owned("Target"),
35                                    ),
36                                },
37                            ],
38                            outputs: ::std::vec![],
39                            constant: ::core::option::Option::None,
40                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
41                        },
42                    ],
43                ),
44                (
45                    ::std::borrow::ToOwned::to_owned("addNode"),
46                    ::std::vec![
47                        ::ethers::core::abi::ethabi::Function {
48                            name: ::std::borrow::ToOwned::to_owned("addNode"),
49                            inputs: ::std::vec![
50                                ::ethers::core::abi::ethabi::Param {
51                                    name: ::std::borrow::ToOwned::to_owned("nodeAddress"),
52                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
53                                    internal_type: ::core::option::Option::Some(
54                                        ::std::borrow::ToOwned::to_owned("address"),
55                                    ),
56                                },
57                            ],
58                            outputs: ::std::vec![],
59                            constant: ::core::option::Option::None,
60                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
61                        },
62                    ],
63                ),
64                (
65                    ::std::borrow::ToOwned::to_owned("decodeFunctionSigsAndPermissions"),
66                    ::std::vec![
67                        ::ethers::core::abi::ethabi::Function {
68                            name: ::std::borrow::ToOwned::to_owned(
69                                "decodeFunctionSigsAndPermissions",
70                            ),
71                            inputs: ::std::vec![
72                                ::ethers::core::abi::ethabi::Param {
73                                    name: ::std::borrow::ToOwned::to_owned("encoded"),
74                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
75                                        32usize,
76                                    ),
77                                    internal_type: ::core::option::Option::Some(
78                                        ::std::borrow::ToOwned::to_owned("bytes32"),
79                                    ),
80                                },
81                                ::ethers::core::abi::ethabi::Param {
82                                    name: ::std::borrow::ToOwned::to_owned("length"),
83                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
84                                        256usize,
85                                    ),
86                                    internal_type: ::core::option::Option::Some(
87                                        ::std::borrow::ToOwned::to_owned("uint256"),
88                                    ),
89                                },
90                            ],
91                            outputs: ::std::vec![
92                                ::ethers::core::abi::ethabi::Param {
93                                    name: ::std::borrow::ToOwned::to_owned("functionSigs"),
94                                    kind: ::ethers::core::abi::ethabi::ParamType::Array(
95                                        ::std::boxed::Box::new(
96                                            ::ethers::core::abi::ethabi::ParamType::FixedBytes(4usize),
97                                        ),
98                                    ),
99                                    internal_type: ::core::option::Option::Some(
100                                        ::std::borrow::ToOwned::to_owned("bytes4[]"),
101                                    ),
102                                },
103                                ::ethers::core::abi::ethabi::Param {
104                                    name: ::std::borrow::ToOwned::to_owned("permissions"),
105                                    kind: ::ethers::core::abi::ethabi::ParamType::Array(
106                                        ::std::boxed::Box::new(
107                                            ::ethers::core::abi::ethabi::ParamType::Uint(8usize),
108                                        ),
109                                    ),
110                                    internal_type: ::core::option::Option::Some(
111                                        ::std::borrow::ToOwned::to_owned(
112                                            "enum GranularPermission[]",
113                                        ),
114                                    ),
115                                },
116                            ],
117                            constant: ::core::option::Option::None,
118                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::Pure,
119                        },
120                    ],
121                ),
122                (
123                    ::std::borrow::ToOwned::to_owned("encodeFunctionSigsAndPermissions"),
124                    ::std::vec![
125                        ::ethers::core::abi::ethabi::Function {
126                            name: ::std::borrow::ToOwned::to_owned(
127                                "encodeFunctionSigsAndPermissions",
128                            ),
129                            inputs: ::std::vec![
130                                ::ethers::core::abi::ethabi::Param {
131                                    name: ::std::borrow::ToOwned::to_owned("functionSigs"),
132                                    kind: ::ethers::core::abi::ethabi::ParamType::Array(
133                                        ::std::boxed::Box::new(
134                                            ::ethers::core::abi::ethabi::ParamType::FixedBytes(4usize),
135                                        ),
136                                    ),
137                                    internal_type: ::core::option::Option::Some(
138                                        ::std::borrow::ToOwned::to_owned("bytes4[]"),
139                                    ),
140                                },
141                                ::ethers::core::abi::ethabi::Param {
142                                    name: ::std::borrow::ToOwned::to_owned("permissions"),
143                                    kind: ::ethers::core::abi::ethabi::ParamType::Array(
144                                        ::std::boxed::Box::new(
145                                            ::ethers::core::abi::ethabi::ParamType::Uint(8usize),
146                                        ),
147                                    ),
148                                    internal_type: ::core::option::Option::Some(
149                                        ::std::borrow::ToOwned::to_owned(
150                                            "enum GranularPermission[]",
151                                        ),
152                                    ),
153                                },
154                            ],
155                            outputs: ::std::vec![
156                                ::ethers::core::abi::ethabi::Param {
157                                    name: ::std::borrow::ToOwned::to_owned("encoded"),
158                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
159                                        32usize,
160                                    ),
161                                    internal_type: ::core::option::Option::Some(
162                                        ::std::borrow::ToOwned::to_owned("bytes32"),
163                                    ),
164                                },
165                                ::ethers::core::abi::ethabi::Param {
166                                    name: ::std::borrow::ToOwned::to_owned("length"),
167                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
168                                        256usize,
169                                    ),
170                                    internal_type: ::core::option::Option::Some(
171                                        ::std::borrow::ToOwned::to_owned("uint256"),
172                                    ),
173                                },
174                            ],
175                            constant: ::core::option::Option::None,
176                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::Pure,
177                        },
178                    ],
179                ),
180                (
181                    ::std::borrow::ToOwned::to_owned("execTransactionFromModule"),
182                    ::std::vec![
183                        ::ethers::core::abi::ethabi::Function {
184                            name: ::std::borrow::ToOwned::to_owned(
185                                "execTransactionFromModule",
186                            ),
187                            inputs: ::std::vec![
188                                ::ethers::core::abi::ethabi::Param {
189                                    name: ::std::borrow::ToOwned::to_owned("to"),
190                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
191                                    internal_type: ::core::option::Option::Some(
192                                        ::std::borrow::ToOwned::to_owned("address"),
193                                    ),
194                                },
195                                ::ethers::core::abi::ethabi::Param {
196                                    name: ::std::borrow::ToOwned::to_owned("value"),
197                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
198                                        256usize,
199                                    ),
200                                    internal_type: ::core::option::Option::Some(
201                                        ::std::borrow::ToOwned::to_owned("uint256"),
202                                    ),
203                                },
204                                ::ethers::core::abi::ethabi::Param {
205                                    name: ::std::borrow::ToOwned::to_owned("data"),
206                                    kind: ::ethers::core::abi::ethabi::ParamType::Bytes,
207                                    internal_type: ::core::option::Option::Some(
208                                        ::std::borrow::ToOwned::to_owned("bytes"),
209                                    ),
210                                },
211                                ::ethers::core::abi::ethabi::Param {
212                                    name: ::std::borrow::ToOwned::to_owned("operation"),
213                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(8usize),
214                                    internal_type: ::core::option::Option::Some(
215                                        ::std::borrow::ToOwned::to_owned("enum Enum.Operation"),
216                                    ),
217                                },
218                            ],
219                            outputs: ::std::vec![
220                                ::ethers::core::abi::ethabi::Param {
221                                    name: ::std::borrow::ToOwned::to_owned("success"),
222                                    kind: ::ethers::core::abi::ethabi::ParamType::Bool,
223                                    internal_type: ::core::option::Option::Some(
224                                        ::std::borrow::ToOwned::to_owned("bool"),
225                                    ),
226                                },
227                            ],
228                            constant: ::core::option::Option::None,
229                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
230                        },
231                    ],
232                ),
233                (
234                    ::std::borrow::ToOwned::to_owned(
235                        "execTransactionFromModuleReturnData",
236                    ),
237                    ::std::vec![
238                        ::ethers::core::abi::ethabi::Function {
239                            name: ::std::borrow::ToOwned::to_owned(
240                                "execTransactionFromModuleReturnData",
241                            ),
242                            inputs: ::std::vec![
243                                ::ethers::core::abi::ethabi::Param {
244                                    name: ::std::borrow::ToOwned::to_owned("to"),
245                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
246                                    internal_type: ::core::option::Option::Some(
247                                        ::std::borrow::ToOwned::to_owned("address"),
248                                    ),
249                                },
250                                ::ethers::core::abi::ethabi::Param {
251                                    name: ::std::borrow::ToOwned::to_owned("value"),
252                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
253                                        256usize,
254                                    ),
255                                    internal_type: ::core::option::Option::Some(
256                                        ::std::borrow::ToOwned::to_owned("uint256"),
257                                    ),
258                                },
259                                ::ethers::core::abi::ethabi::Param {
260                                    name: ::std::borrow::ToOwned::to_owned("data"),
261                                    kind: ::ethers::core::abi::ethabi::ParamType::Bytes,
262                                    internal_type: ::core::option::Option::Some(
263                                        ::std::borrow::ToOwned::to_owned("bytes"),
264                                    ),
265                                },
266                                ::ethers::core::abi::ethabi::Param {
267                                    name: ::std::borrow::ToOwned::to_owned("operation"),
268                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(8usize),
269                                    internal_type: ::core::option::Option::Some(
270                                        ::std::borrow::ToOwned::to_owned("enum Enum.Operation"),
271                                    ),
272                                },
273                            ],
274                            outputs: ::std::vec![
275                                ::ethers::core::abi::ethabi::Param {
276                                    name: ::std::string::String::new(),
277                                    kind: ::ethers::core::abi::ethabi::ParamType::Bool,
278                                    internal_type: ::core::option::Option::Some(
279                                        ::std::borrow::ToOwned::to_owned("bool"),
280                                    ),
281                                },
282                                ::ethers::core::abi::ethabi::Param {
283                                    name: ::std::string::String::new(),
284                                    kind: ::ethers::core::abi::ethabi::ParamType::Bytes,
285                                    internal_type: ::core::option::Option::Some(
286                                        ::std::borrow::ToOwned::to_owned("bytes"),
287                                    ),
288                                },
289                            ],
290                            constant: ::core::option::Option::None,
291                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
292                        },
293                    ],
294                ),
295                (
296                    ::std::borrow::ToOwned::to_owned("getGranularPermissions"),
297                    ::std::vec![
298                        ::ethers::core::abi::ethabi::Function {
299                            name: ::std::borrow::ToOwned::to_owned(
300                                "getGranularPermissions",
301                            ),
302                            inputs: ::std::vec![
303                                ::ethers::core::abi::ethabi::Param {
304                                    name: ::std::borrow::ToOwned::to_owned("capabilityKey"),
305                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
306                                        32usize,
307                                    ),
308                                    internal_type: ::core::option::Option::Some(
309                                        ::std::borrow::ToOwned::to_owned("bytes32"),
310                                    ),
311                                },
312                                ::ethers::core::abi::ethabi::Param {
313                                    name: ::std::borrow::ToOwned::to_owned("pairId"),
314                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
315                                        32usize,
316                                    ),
317                                    internal_type: ::core::option::Option::Some(
318                                        ::std::borrow::ToOwned::to_owned("bytes32"),
319                                    ),
320                                },
321                            ],
322                            outputs: ::std::vec![
323                                ::ethers::core::abi::ethabi::Param {
324                                    name: ::std::string::String::new(),
325                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(8usize),
326                                    internal_type: ::core::option::Option::Some(
327                                        ::std::borrow::ToOwned::to_owned("enum GranularPermission"),
328                                    ),
329                                },
330                            ],
331                            constant: ::core::option::Option::None,
332                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
333                        },
334                    ],
335                ),
336                (
337                    ::std::borrow::ToOwned::to_owned("getTargets"),
338                    ::std::vec![
339                        ::ethers::core::abi::ethabi::Function {
340                            name: ::std::borrow::ToOwned::to_owned("getTargets"),
341                            inputs: ::std::vec![],
342                            outputs: ::std::vec![
343                                ::ethers::core::abi::ethabi::Param {
344                                    name: ::std::string::String::new(),
345                                    kind: ::ethers::core::abi::ethabi::ParamType::Array(
346                                        ::std::boxed::Box::new(
347                                            ::ethers::core::abi::ethabi::ParamType::Uint(256usize),
348                                        ),
349                                    ),
350                                    internal_type: ::core::option::Option::Some(
351                                        ::std::borrow::ToOwned::to_owned("Target[]"),
352                                    ),
353                                },
354                            ],
355                            constant: ::core::option::Option::None,
356                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
357                        },
358                    ],
359                ),
360                (
361                    ::std::borrow::ToOwned::to_owned("includeNode"),
362                    ::std::vec![
363                        ::ethers::core::abi::ethabi::Function {
364                            name: ::std::borrow::ToOwned::to_owned("includeNode"),
365                            inputs: ::std::vec![
366                                ::ethers::core::abi::ethabi::Param {
367                                    name: ::std::borrow::ToOwned::to_owned("nodeDefaultTarget"),
368                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
369                                        256usize,
370                                    ),
371                                    internal_type: ::core::option::Option::Some(
372                                        ::std::borrow::ToOwned::to_owned("Target"),
373                                    ),
374                                },
375                            ],
376                            outputs: ::std::vec![],
377                            constant: ::core::option::Option::None,
378                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
379                        },
380                    ],
381                ),
382                (
383                    ::std::borrow::ToOwned::to_owned("initialize"),
384                    ::std::vec![
385                        ::ethers::core::abi::ethabi::Function {
386                            name: ::std::borrow::ToOwned::to_owned("initialize"),
387                            inputs: ::std::vec![
388                                ::ethers::core::abi::ethabi::Param {
389                                    name: ::std::borrow::ToOwned::to_owned("initParams"),
390                                    kind: ::ethers::core::abi::ethabi::ParamType::Bytes,
391                                    internal_type: ::core::option::Option::Some(
392                                        ::std::borrow::ToOwned::to_owned("bytes"),
393                                    ),
394                                },
395                            ],
396                            outputs: ::std::vec![],
397                            constant: ::core::option::Option::None,
398                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
399                        },
400                    ],
401                ),
402                (
403                    ::std::borrow::ToOwned::to_owned("isHoprNodeManagementModule"),
404                    ::std::vec![
405                        ::ethers::core::abi::ethabi::Function {
406                            name: ::std::borrow::ToOwned::to_owned(
407                                "isHoprNodeManagementModule",
408                            ),
409                            inputs: ::std::vec![],
410                            outputs: ::std::vec![
411                                ::ethers::core::abi::ethabi::Param {
412                                    name: ::std::string::String::new(),
413                                    kind: ::ethers::core::abi::ethabi::ParamType::Bool,
414                                    internal_type: ::core::option::Option::Some(
415                                        ::std::borrow::ToOwned::to_owned("bool"),
416                                    ),
417                                },
418                            ],
419                            constant: ::core::option::Option::None,
420                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
421                        },
422                    ],
423                ),
424                (
425                    ::std::borrow::ToOwned::to_owned("isNode"),
426                    ::std::vec![
427                        ::ethers::core::abi::ethabi::Function {
428                            name: ::std::borrow::ToOwned::to_owned("isNode"),
429                            inputs: ::std::vec![
430                                ::ethers::core::abi::ethabi::Param {
431                                    name: ::std::borrow::ToOwned::to_owned("nodeAddress"),
432                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
433                                    internal_type: ::core::option::Option::Some(
434                                        ::std::borrow::ToOwned::to_owned("address"),
435                                    ),
436                                },
437                            ],
438                            outputs: ::std::vec![
439                                ::ethers::core::abi::ethabi::Param {
440                                    name: ::std::string::String::new(),
441                                    kind: ::ethers::core::abi::ethabi::ParamType::Bool,
442                                    internal_type: ::core::option::Option::Some(
443                                        ::std::borrow::ToOwned::to_owned("bool"),
444                                    ),
445                                },
446                            ],
447                            constant: ::core::option::Option::None,
448                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
449                        },
450                    ],
451                ),
452                (
453                    ::std::borrow::ToOwned::to_owned("multisend"),
454                    ::std::vec![
455                        ::ethers::core::abi::ethabi::Function {
456                            name: ::std::borrow::ToOwned::to_owned("multisend"),
457                            inputs: ::std::vec![],
458                            outputs: ::std::vec![
459                                ::ethers::core::abi::ethabi::Param {
460                                    name: ::std::string::String::new(),
461                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
462                                    internal_type: ::core::option::Option::Some(
463                                        ::std::borrow::ToOwned::to_owned("address"),
464                                    ),
465                                },
466                            ],
467                            constant: ::core::option::Option::None,
468                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
469                        },
470                    ],
471                ),
472                (
473                    ::std::borrow::ToOwned::to_owned("owner"),
474                    ::std::vec![
475                        ::ethers::core::abi::ethabi::Function {
476                            name: ::std::borrow::ToOwned::to_owned("owner"),
477                            inputs: ::std::vec![],
478                            outputs: ::std::vec![
479                                ::ethers::core::abi::ethabi::Param {
480                                    name: ::std::string::String::new(),
481                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
482                                    internal_type: ::core::option::Option::Some(
483                                        ::std::borrow::ToOwned::to_owned("address"),
484                                    ),
485                                },
486                            ],
487                            constant: ::core::option::Option::None,
488                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
489                        },
490                    ],
491                ),
492                (
493                    ::std::borrow::ToOwned::to_owned("proxiableUUID"),
494                    ::std::vec![
495                        ::ethers::core::abi::ethabi::Function {
496                            name: ::std::borrow::ToOwned::to_owned("proxiableUUID"),
497                            inputs: ::std::vec![],
498                            outputs: ::std::vec![
499                                ::ethers::core::abi::ethabi::Param {
500                                    name: ::std::string::String::new(),
501                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
502                                        32usize,
503                                    ),
504                                    internal_type: ::core::option::Option::Some(
505                                        ::std::borrow::ToOwned::to_owned("bytes32"),
506                                    ),
507                                },
508                            ],
509                            constant: ::core::option::Option::None,
510                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
511                        },
512                    ],
513                ),
514                (
515                    ::std::borrow::ToOwned::to_owned("removeNode"),
516                    ::std::vec![
517                        ::ethers::core::abi::ethabi::Function {
518                            name: ::std::borrow::ToOwned::to_owned("removeNode"),
519                            inputs: ::std::vec![
520                                ::ethers::core::abi::ethabi::Param {
521                                    name: ::std::borrow::ToOwned::to_owned("nodeAddress"),
522                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
523                                    internal_type: ::core::option::Option::Some(
524                                        ::std::borrow::ToOwned::to_owned("address"),
525                                    ),
526                                },
527                            ],
528                            outputs: ::std::vec![],
529                            constant: ::core::option::Option::None,
530                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
531                        },
532                    ],
533                ),
534                (
535                    ::std::borrow::ToOwned::to_owned("renounceOwnership"),
536                    ::std::vec![
537                        ::ethers::core::abi::ethabi::Function {
538                            name: ::std::borrow::ToOwned::to_owned("renounceOwnership"),
539                            inputs: ::std::vec![],
540                            outputs: ::std::vec![],
541                            constant: ::core::option::Option::None,
542                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
543                        },
544                    ],
545                ),
546                (
547                    ::std::borrow::ToOwned::to_owned("revokeTarget"),
548                    ::std::vec![
549                        ::ethers::core::abi::ethabi::Function {
550                            name: ::std::borrow::ToOwned::to_owned("revokeTarget"),
551                            inputs: ::std::vec![
552                                ::ethers::core::abi::ethabi::Param {
553                                    name: ::std::borrow::ToOwned::to_owned("targetAddress"),
554                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
555                                    internal_type: ::core::option::Option::Some(
556                                        ::std::borrow::ToOwned::to_owned("address"),
557                                    ),
558                                },
559                            ],
560                            outputs: ::std::vec![],
561                            constant: ::core::option::Option::None,
562                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
563                        },
564                    ],
565                ),
566                (
567                    ::std::borrow::ToOwned::to_owned("scopeChannelsCapabilities"),
568                    ::std::vec![
569                        ::ethers::core::abi::ethabi::Function {
570                            name: ::std::borrow::ToOwned::to_owned(
571                                "scopeChannelsCapabilities",
572                            ),
573                            inputs: ::std::vec![
574                                ::ethers::core::abi::ethabi::Param {
575                                    name: ::std::borrow::ToOwned::to_owned("targetAddress"),
576                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
577                                    internal_type: ::core::option::Option::Some(
578                                        ::std::borrow::ToOwned::to_owned("address"),
579                                    ),
580                                },
581                                ::ethers::core::abi::ethabi::Param {
582                                    name: ::std::borrow::ToOwned::to_owned("channelId"),
583                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
584                                        32usize,
585                                    ),
586                                    internal_type: ::core::option::Option::Some(
587                                        ::std::borrow::ToOwned::to_owned("bytes32"),
588                                    ),
589                                },
590                                ::ethers::core::abi::ethabi::Param {
591                                    name: ::std::borrow::ToOwned::to_owned(
592                                        "encodedSigsPermissions",
593                                    ),
594                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
595                                        32usize,
596                                    ),
597                                    internal_type: ::core::option::Option::Some(
598                                        ::std::borrow::ToOwned::to_owned("bytes32"),
599                                    ),
600                                },
601                            ],
602                            outputs: ::std::vec![],
603                            constant: ::core::option::Option::None,
604                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
605                        },
606                    ],
607                ),
608                (
609                    ::std::borrow::ToOwned::to_owned("scopeSendCapability"),
610                    ::std::vec![
611                        ::ethers::core::abi::ethabi::Function {
612                            name: ::std::borrow::ToOwned::to_owned(
613                                "scopeSendCapability",
614                            ),
615                            inputs: ::std::vec![
616                                ::ethers::core::abi::ethabi::Param {
617                                    name: ::std::borrow::ToOwned::to_owned("nodeAddress"),
618                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
619                                    internal_type: ::core::option::Option::Some(
620                                        ::std::borrow::ToOwned::to_owned("address"),
621                                    ),
622                                },
623                                ::ethers::core::abi::ethabi::Param {
624                                    name: ::std::borrow::ToOwned::to_owned("beneficiary"),
625                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
626                                    internal_type: ::core::option::Option::Some(
627                                        ::std::borrow::ToOwned::to_owned("address"),
628                                    ),
629                                },
630                                ::ethers::core::abi::ethabi::Param {
631                                    name: ::std::borrow::ToOwned::to_owned("permission"),
632                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(8usize),
633                                    internal_type: ::core::option::Option::Some(
634                                        ::std::borrow::ToOwned::to_owned("enum GranularPermission"),
635                                    ),
636                                },
637                            ],
638                            outputs: ::std::vec![],
639                            constant: ::core::option::Option::None,
640                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
641                        },
642                    ],
643                ),
644                (
645                    ::std::borrow::ToOwned::to_owned("scopeTargetChannels"),
646                    ::std::vec![
647                        ::ethers::core::abi::ethabi::Function {
648                            name: ::std::borrow::ToOwned::to_owned(
649                                "scopeTargetChannels",
650                            ),
651                            inputs: ::std::vec![
652                                ::ethers::core::abi::ethabi::Param {
653                                    name: ::std::borrow::ToOwned::to_owned("defaultTarget"),
654                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
655                                        256usize,
656                                    ),
657                                    internal_type: ::core::option::Option::Some(
658                                        ::std::borrow::ToOwned::to_owned("Target"),
659                                    ),
660                                },
661                            ],
662                            outputs: ::std::vec![],
663                            constant: ::core::option::Option::None,
664                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
665                        },
666                    ],
667                ),
668                (
669                    ::std::borrow::ToOwned::to_owned("scopeTargetSend"),
670                    ::std::vec![
671                        ::ethers::core::abi::ethabi::Function {
672                            name: ::std::borrow::ToOwned::to_owned("scopeTargetSend"),
673                            inputs: ::std::vec![
674                                ::ethers::core::abi::ethabi::Param {
675                                    name: ::std::borrow::ToOwned::to_owned("defaultTarget"),
676                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
677                                        256usize,
678                                    ),
679                                    internal_type: ::core::option::Option::Some(
680                                        ::std::borrow::ToOwned::to_owned("Target"),
681                                    ),
682                                },
683                            ],
684                            outputs: ::std::vec![],
685                            constant: ::core::option::Option::None,
686                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
687                        },
688                    ],
689                ),
690                (
691                    ::std::borrow::ToOwned::to_owned("scopeTargetToken"),
692                    ::std::vec![
693                        ::ethers::core::abi::ethabi::Function {
694                            name: ::std::borrow::ToOwned::to_owned("scopeTargetToken"),
695                            inputs: ::std::vec![
696                                ::ethers::core::abi::ethabi::Param {
697                                    name: ::std::borrow::ToOwned::to_owned("defaultTarget"),
698                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
699                                        256usize,
700                                    ),
701                                    internal_type: ::core::option::Option::Some(
702                                        ::std::borrow::ToOwned::to_owned("Target"),
703                                    ),
704                                },
705                            ],
706                            outputs: ::std::vec![],
707                            constant: ::core::option::Option::None,
708                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
709                        },
710                    ],
711                ),
712                (
713                    ::std::borrow::ToOwned::to_owned("scopeTokenCapabilities"),
714                    ::std::vec![
715                        ::ethers::core::abi::ethabi::Function {
716                            name: ::std::borrow::ToOwned::to_owned(
717                                "scopeTokenCapabilities",
718                            ),
719                            inputs: ::std::vec![
720                                ::ethers::core::abi::ethabi::Param {
721                                    name: ::std::borrow::ToOwned::to_owned("nodeAddress"),
722                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
723                                    internal_type: ::core::option::Option::Some(
724                                        ::std::borrow::ToOwned::to_owned("address"),
725                                    ),
726                                },
727                                ::ethers::core::abi::ethabi::Param {
728                                    name: ::std::borrow::ToOwned::to_owned("targetAddress"),
729                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
730                                    internal_type: ::core::option::Option::Some(
731                                        ::std::borrow::ToOwned::to_owned("address"),
732                                    ),
733                                },
734                                ::ethers::core::abi::ethabi::Param {
735                                    name: ::std::borrow::ToOwned::to_owned("beneficiary"),
736                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
737                                    internal_type: ::core::option::Option::Some(
738                                        ::std::borrow::ToOwned::to_owned("address"),
739                                    ),
740                                },
741                                ::ethers::core::abi::ethabi::Param {
742                                    name: ::std::borrow::ToOwned::to_owned(
743                                        "encodedSigsPermissions",
744                                    ),
745                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
746                                        32usize,
747                                    ),
748                                    internal_type: ::core::option::Option::Some(
749                                        ::std::borrow::ToOwned::to_owned("bytes32"),
750                                    ),
751                                },
752                            ],
753                            outputs: ::std::vec![],
754                            constant: ::core::option::Option::None,
755                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
756                        },
757                    ],
758                ),
759                (
760                    ::std::borrow::ToOwned::to_owned("setMultisend"),
761                    ::std::vec![
762                        ::ethers::core::abi::ethabi::Function {
763                            name: ::std::borrow::ToOwned::to_owned("setMultisend"),
764                            inputs: ::std::vec![
765                                ::ethers::core::abi::ethabi::Param {
766                                    name: ::std::borrow::ToOwned::to_owned("_multisend"),
767                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
768                                    internal_type: ::core::option::Option::Some(
769                                        ::std::borrow::ToOwned::to_owned("address"),
770                                    ),
771                                },
772                            ],
773                            outputs: ::std::vec![],
774                            constant: ::core::option::Option::None,
775                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
776                        },
777                    ],
778                ),
779                (
780                    ::std::borrow::ToOwned::to_owned("transferOwnership"),
781                    ::std::vec![
782                        ::ethers::core::abi::ethabi::Function {
783                            name: ::std::borrow::ToOwned::to_owned("transferOwnership"),
784                            inputs: ::std::vec![
785                                ::ethers::core::abi::ethabi::Param {
786                                    name: ::std::borrow::ToOwned::to_owned("newOwner"),
787                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
788                                    internal_type: ::core::option::Option::Some(
789                                        ::std::borrow::ToOwned::to_owned("address"),
790                                    ),
791                                },
792                            ],
793                            outputs: ::std::vec![],
794                            constant: ::core::option::Option::None,
795                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
796                        },
797                    ],
798                ),
799                (
800                    ::std::borrow::ToOwned::to_owned("tryGetTarget"),
801                    ::std::vec![
802                        ::ethers::core::abi::ethabi::Function {
803                            name: ::std::borrow::ToOwned::to_owned("tryGetTarget"),
804                            inputs: ::std::vec![
805                                ::ethers::core::abi::ethabi::Param {
806                                    name: ::std::borrow::ToOwned::to_owned("targetAddress"),
807                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
808                                    internal_type: ::core::option::Option::Some(
809                                        ::std::borrow::ToOwned::to_owned("address"),
810                                    ),
811                                },
812                            ],
813                            outputs: ::std::vec![
814                                ::ethers::core::abi::ethabi::Param {
815                                    name: ::std::string::String::new(),
816                                    kind: ::ethers::core::abi::ethabi::ParamType::Bool,
817                                    internal_type: ::core::option::Option::Some(
818                                        ::std::borrow::ToOwned::to_owned("bool"),
819                                    ),
820                                },
821                                ::ethers::core::abi::ethabi::Param {
822                                    name: ::std::string::String::new(),
823                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
824                                        256usize,
825                                    ),
826                                    internal_type: ::core::option::Option::Some(
827                                        ::std::borrow::ToOwned::to_owned("Target"),
828                                    ),
829                                },
830                            ],
831                            constant: ::core::option::Option::None,
832                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
833                        },
834                    ],
835                ),
836                (
837                    ::std::borrow::ToOwned::to_owned("upgradeTo"),
838                    ::std::vec![
839                        ::ethers::core::abi::ethabi::Function {
840                            name: ::std::borrow::ToOwned::to_owned("upgradeTo"),
841                            inputs: ::std::vec![
842                                ::ethers::core::abi::ethabi::Param {
843                                    name: ::std::borrow::ToOwned::to_owned("newImplementation"),
844                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
845                                    internal_type: ::core::option::Option::Some(
846                                        ::std::borrow::ToOwned::to_owned("address"),
847                                    ),
848                                },
849                            ],
850                            outputs: ::std::vec![],
851                            constant: ::core::option::Option::None,
852                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
853                        },
854                    ],
855                ),
856                (
857                    ::std::borrow::ToOwned::to_owned("upgradeToAndCall"),
858                    ::std::vec![
859                        ::ethers::core::abi::ethabi::Function {
860                            name: ::std::borrow::ToOwned::to_owned("upgradeToAndCall"),
861                            inputs: ::std::vec![
862                                ::ethers::core::abi::ethabi::Param {
863                                    name: ::std::borrow::ToOwned::to_owned("newImplementation"),
864                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
865                                    internal_type: ::core::option::Option::Some(
866                                        ::std::borrow::ToOwned::to_owned("address"),
867                                    ),
868                                },
869                                ::ethers::core::abi::ethabi::Param {
870                                    name: ::std::borrow::ToOwned::to_owned("data"),
871                                    kind: ::ethers::core::abi::ethabi::ParamType::Bytes,
872                                    internal_type: ::core::option::Option::Some(
873                                        ::std::borrow::ToOwned::to_owned("bytes"),
874                                    ),
875                                },
876                            ],
877                            outputs: ::std::vec![],
878                            constant: ::core::option::Option::None,
879                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::Payable,
880                        },
881                    ],
882                ),
883            ]),
884            events: ::core::convert::From::from([
885                (
886                    ::std::borrow::ToOwned::to_owned("AdminChanged"),
887                    ::std::vec![
888                        ::ethers::core::abi::ethabi::Event {
889                            name: ::std::borrow::ToOwned::to_owned("AdminChanged"),
890                            inputs: ::std::vec![
891                                ::ethers::core::abi::ethabi::EventParam {
892                                    name: ::std::borrow::ToOwned::to_owned("previousAdmin"),
893                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
894                                    indexed: false,
895                                },
896                                ::ethers::core::abi::ethabi::EventParam {
897                                    name: ::std::borrow::ToOwned::to_owned("newAdmin"),
898                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
899                                    indexed: false,
900                                },
901                            ],
902                            anonymous: false,
903                        },
904                    ],
905                ),
906                (
907                    ::std::borrow::ToOwned::to_owned("BeaconUpgraded"),
908                    ::std::vec![
909                        ::ethers::core::abi::ethabi::Event {
910                            name: ::std::borrow::ToOwned::to_owned("BeaconUpgraded"),
911                            inputs: ::std::vec![
912                                ::ethers::core::abi::ethabi::EventParam {
913                                    name: ::std::borrow::ToOwned::to_owned("beacon"),
914                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
915                                    indexed: true,
916                                },
917                            ],
918                            anonymous: false,
919                        },
920                    ],
921                ),
922                (
923                    ::std::borrow::ToOwned::to_owned("ExecutionFailure"),
924                    ::std::vec![
925                        ::ethers::core::abi::ethabi::Event {
926                            name: ::std::borrow::ToOwned::to_owned("ExecutionFailure"),
927                            inputs: ::std::vec![],
928                            anonymous: false,
929                        },
930                    ],
931                ),
932                (
933                    ::std::borrow::ToOwned::to_owned("ExecutionSuccess"),
934                    ::std::vec![
935                        ::ethers::core::abi::ethabi::Event {
936                            name: ::std::borrow::ToOwned::to_owned("ExecutionSuccess"),
937                            inputs: ::std::vec![],
938                            anonymous: false,
939                        },
940                    ],
941                ),
942                (
943                    ::std::borrow::ToOwned::to_owned("Initialized"),
944                    ::std::vec![
945                        ::ethers::core::abi::ethabi::Event {
946                            name: ::std::borrow::ToOwned::to_owned("Initialized"),
947                            inputs: ::std::vec![
948                                ::ethers::core::abi::ethabi::EventParam {
949                                    name: ::std::borrow::ToOwned::to_owned("version"),
950                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(8usize),
951                                    indexed: false,
952                                },
953                            ],
954                            anonymous: false,
955                        },
956                    ],
957                ),
958                (
959                    ::std::borrow::ToOwned::to_owned("NodeAdded"),
960                    ::std::vec![
961                        ::ethers::core::abi::ethabi::Event {
962                            name: ::std::borrow::ToOwned::to_owned("NodeAdded"),
963                            inputs: ::std::vec![
964                                ::ethers::core::abi::ethabi::EventParam {
965                                    name: ::std::borrow::ToOwned::to_owned("node"),
966                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
967                                    indexed: true,
968                                },
969                            ],
970                            anonymous: false,
971                        },
972                    ],
973                ),
974                (
975                    ::std::borrow::ToOwned::to_owned("NodeRemoved"),
976                    ::std::vec![
977                        ::ethers::core::abi::ethabi::Event {
978                            name: ::std::borrow::ToOwned::to_owned("NodeRemoved"),
979                            inputs: ::std::vec![
980                                ::ethers::core::abi::ethabi::EventParam {
981                                    name: ::std::borrow::ToOwned::to_owned("node"),
982                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
983                                    indexed: true,
984                                },
985                            ],
986                            anonymous: false,
987                        },
988                    ],
989                ),
990                (
991                    ::std::borrow::ToOwned::to_owned("OwnershipTransferred"),
992                    ::std::vec![
993                        ::ethers::core::abi::ethabi::Event {
994                            name: ::std::borrow::ToOwned::to_owned(
995                                "OwnershipTransferred",
996                            ),
997                            inputs: ::std::vec![
998                                ::ethers::core::abi::ethabi::EventParam {
999                                    name: ::std::borrow::ToOwned::to_owned("previousOwner"),
1000                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
1001                                    indexed: true,
1002                                },
1003                                ::ethers::core::abi::ethabi::EventParam {
1004                                    name: ::std::borrow::ToOwned::to_owned("newOwner"),
1005                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
1006                                    indexed: true,
1007                                },
1008                            ],
1009                            anonymous: false,
1010                        },
1011                    ],
1012                ),
1013                (
1014                    ::std::borrow::ToOwned::to_owned("SetMultisendAddress"),
1015                    ::std::vec![
1016                        ::ethers::core::abi::ethabi::Event {
1017                            name: ::std::borrow::ToOwned::to_owned(
1018                                "SetMultisendAddress",
1019                            ),
1020                            inputs: ::std::vec![
1021                                ::ethers::core::abi::ethabi::EventParam {
1022                                    name: ::std::borrow::ToOwned::to_owned("multisendAddress"),
1023                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
1024                                    indexed: true,
1025                                },
1026                            ],
1027                            anonymous: false,
1028                        },
1029                    ],
1030                ),
1031                (
1032                    ::std::borrow::ToOwned::to_owned("Upgraded"),
1033                    ::std::vec![
1034                        ::ethers::core::abi::ethabi::Event {
1035                            name: ::std::borrow::ToOwned::to_owned("Upgraded"),
1036                            inputs: ::std::vec![
1037                                ::ethers::core::abi::ethabi::EventParam {
1038                                    name: ::std::borrow::ToOwned::to_owned("implementation"),
1039                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
1040                                    indexed: true,
1041                                },
1042                            ],
1043                            anonymous: false,
1044                        },
1045                    ],
1046                ),
1047            ]),
1048            errors: ::core::convert::From::from([
1049                (
1050                    ::std::borrow::ToOwned::to_owned("AddressIsZero"),
1051                    ::std::vec![
1052                        ::ethers::core::abi::ethabi::AbiError {
1053                            name: ::std::borrow::ToOwned::to_owned("AddressIsZero"),
1054                            inputs: ::std::vec![],
1055                        },
1056                    ],
1057                ),
1058                (
1059                    ::std::borrow::ToOwned::to_owned("AlreadyInitialized"),
1060                    ::std::vec![
1061                        ::ethers::core::abi::ethabi::AbiError {
1062                            name: ::std::borrow::ToOwned::to_owned("AlreadyInitialized"),
1063                            inputs: ::std::vec![],
1064                        },
1065                    ],
1066                ),
1067                (
1068                    ::std::borrow::ToOwned::to_owned("ArrayTooLong"),
1069                    ::std::vec![
1070                        ::ethers::core::abi::ethabi::AbiError {
1071                            name: ::std::borrow::ToOwned::to_owned("ArrayTooLong"),
1072                            inputs: ::std::vec![],
1073                        },
1074                    ],
1075                ),
1076                (
1077                    ::std::borrow::ToOwned::to_owned("ArraysDifferentLength"),
1078                    ::std::vec![
1079                        ::ethers::core::abi::ethabi::AbiError {
1080                            name: ::std::borrow::ToOwned::to_owned(
1081                                "ArraysDifferentLength",
1082                            ),
1083                            inputs: ::std::vec![],
1084                        },
1085                    ],
1086                ),
1087                (
1088                    ::std::borrow::ToOwned::to_owned("CalldataOutOfBounds"),
1089                    ::std::vec![
1090                        ::ethers::core::abi::ethabi::AbiError {
1091                            name: ::std::borrow::ToOwned::to_owned(
1092                                "CalldataOutOfBounds",
1093                            ),
1094                            inputs: ::std::vec![],
1095                        },
1096                    ],
1097                ),
1098                (
1099                    ::std::borrow::ToOwned::to_owned("CannotChangeOwner"),
1100                    ::std::vec![
1101                        ::ethers::core::abi::ethabi::AbiError {
1102                            name: ::std::borrow::ToOwned::to_owned("CannotChangeOwner"),
1103                            inputs: ::std::vec![],
1104                        },
1105                    ],
1106                ),
1107                (
1108                    ::std::borrow::ToOwned::to_owned("DefaultPermissionRejected"),
1109                    ::std::vec![
1110                        ::ethers::core::abi::ethabi::AbiError {
1111                            name: ::std::borrow::ToOwned::to_owned(
1112                                "DefaultPermissionRejected",
1113                            ),
1114                            inputs: ::std::vec![],
1115                        },
1116                    ],
1117                ),
1118                (
1119                    ::std::borrow::ToOwned::to_owned("DelegateCallNotAllowed"),
1120                    ::std::vec![
1121                        ::ethers::core::abi::ethabi::AbiError {
1122                            name: ::std::borrow::ToOwned::to_owned(
1123                                "DelegateCallNotAllowed",
1124                            ),
1125                            inputs: ::std::vec![],
1126                        },
1127                    ],
1128                ),
1129                (
1130                    ::std::borrow::ToOwned::to_owned("FunctionSignatureTooShort"),
1131                    ::std::vec![
1132                        ::ethers::core::abi::ethabi::AbiError {
1133                            name: ::std::borrow::ToOwned::to_owned(
1134                                "FunctionSignatureTooShort",
1135                            ),
1136                            inputs: ::std::vec![],
1137                        },
1138                    ],
1139                ),
1140                (
1141                    ::std::borrow::ToOwned::to_owned("GranularPermissionRejected"),
1142                    ::std::vec![
1143                        ::ethers::core::abi::ethabi::AbiError {
1144                            name: ::std::borrow::ToOwned::to_owned(
1145                                "GranularPermissionRejected",
1146                            ),
1147                            inputs: ::std::vec![],
1148                        },
1149                    ],
1150                ),
1151                (
1152                    ::std::borrow::ToOwned::to_owned("NoMembership"),
1153                    ::std::vec![
1154                        ::ethers::core::abi::ethabi::AbiError {
1155                            name: ::std::borrow::ToOwned::to_owned("NoMembership"),
1156                            inputs: ::std::vec![],
1157                        },
1158                    ],
1159                ),
1160                (
1161                    ::std::borrow::ToOwned::to_owned("NodePermissionRejected"),
1162                    ::std::vec![
1163                        ::ethers::core::abi::ethabi::AbiError {
1164                            name: ::std::borrow::ToOwned::to_owned(
1165                                "NodePermissionRejected",
1166                            ),
1167                            inputs: ::std::vec![],
1168                        },
1169                    ],
1170                ),
1171                (
1172                    ::std::borrow::ToOwned::to_owned("NonExistentKey"),
1173                    ::std::vec![
1174                        ::ethers::core::abi::ethabi::AbiError {
1175                            name: ::std::borrow::ToOwned::to_owned("NonExistentKey"),
1176                            inputs: ::std::vec![],
1177                        },
1178                    ],
1179                ),
1180                (
1181                    ::std::borrow::ToOwned::to_owned("ParameterNotAllowed"),
1182                    ::std::vec![
1183                        ::ethers::core::abi::ethabi::AbiError {
1184                            name: ::std::borrow::ToOwned::to_owned(
1185                                "ParameterNotAllowed",
1186                            ),
1187                            inputs: ::std::vec![],
1188                        },
1189                    ],
1190                ),
1191                (
1192                    ::std::borrow::ToOwned::to_owned("PermissionNotConfigured"),
1193                    ::std::vec![
1194                        ::ethers::core::abi::ethabi::AbiError {
1195                            name: ::std::borrow::ToOwned::to_owned(
1196                                "PermissionNotConfigured",
1197                            ),
1198                            inputs: ::std::vec![],
1199                        },
1200                    ],
1201                ),
1202                (
1203                    ::std::borrow::ToOwned::to_owned("PermissionNotFound"),
1204                    ::std::vec![
1205                        ::ethers::core::abi::ethabi::AbiError {
1206                            name: ::std::borrow::ToOwned::to_owned("PermissionNotFound"),
1207                            inputs: ::std::vec![],
1208                        },
1209                    ],
1210                ),
1211                (
1212                    ::std::borrow::ToOwned::to_owned("SafeMultisendSameAddress"),
1213                    ::std::vec![
1214                        ::ethers::core::abi::ethabi::AbiError {
1215                            name: ::std::borrow::ToOwned::to_owned(
1216                                "SafeMultisendSameAddress",
1217                            ),
1218                            inputs: ::std::vec![],
1219                        },
1220                    ],
1221                ),
1222                (
1223                    ::std::borrow::ToOwned::to_owned("SendNotAllowed"),
1224                    ::std::vec![
1225                        ::ethers::core::abi::ethabi::AbiError {
1226                            name: ::std::borrow::ToOwned::to_owned("SendNotAllowed"),
1227                            inputs: ::std::vec![],
1228                        },
1229                    ],
1230                ),
1231                (
1232                    ::std::borrow::ToOwned::to_owned("TargetAddressNotAllowed"),
1233                    ::std::vec![
1234                        ::ethers::core::abi::ethabi::AbiError {
1235                            name: ::std::borrow::ToOwned::to_owned(
1236                                "TargetAddressNotAllowed",
1237                            ),
1238                            inputs: ::std::vec![],
1239                        },
1240                    ],
1241                ),
1242                (
1243                    ::std::borrow::ToOwned::to_owned("TargetIsNotScoped"),
1244                    ::std::vec![
1245                        ::ethers::core::abi::ethabi::AbiError {
1246                            name: ::std::borrow::ToOwned::to_owned("TargetIsNotScoped"),
1247                            inputs: ::std::vec![],
1248                        },
1249                    ],
1250                ),
1251                (
1252                    ::std::borrow::ToOwned::to_owned("TargetIsScoped"),
1253                    ::std::vec![
1254                        ::ethers::core::abi::ethabi::AbiError {
1255                            name: ::std::borrow::ToOwned::to_owned("TargetIsScoped"),
1256                            inputs: ::std::vec![],
1257                        },
1258                    ],
1259                ),
1260                (
1261                    ::std::borrow::ToOwned::to_owned("TooManyCapabilities"),
1262                    ::std::vec![
1263                        ::ethers::core::abi::ethabi::AbiError {
1264                            name: ::std::borrow::ToOwned::to_owned(
1265                                "TooManyCapabilities",
1266                            ),
1267                            inputs: ::std::vec![],
1268                        },
1269                    ],
1270                ),
1271                (
1272                    ::std::borrow::ToOwned::to_owned("UnacceptableMultiSendOffset"),
1273                    ::std::vec![
1274                        ::ethers::core::abi::ethabi::AbiError {
1275                            name: ::std::borrow::ToOwned::to_owned(
1276                                "UnacceptableMultiSendOffset",
1277                            ),
1278                            inputs: ::std::vec![],
1279                        },
1280                    ],
1281                ),
1282                (
1283                    ::std::borrow::ToOwned::to_owned("WithMembership"),
1284                    ::std::vec![
1285                        ::ethers::core::abi::ethabi::AbiError {
1286                            name: ::std::borrow::ToOwned::to_owned("WithMembership"),
1287                            inputs: ::std::vec![],
1288                        },
1289                    ],
1290                ),
1291            ]),
1292            receive: false,
1293            fallback: false,
1294        }
1295    }
1296    ///The parsed JSON ABI of the contract.
1297    pub static HOPRNODEMANAGEMENTMODULE_ABI: ::ethers::contract::Lazy<
1298        ::ethers::core::abi::Abi,
1299    > = ::ethers::contract::Lazy::new(__abi);
1300    #[rustfmt::skip]
1301    const __BYTECODE: &[u8] = b"`\xA0`@R0`\x80R4\x80\x15b\0\0\x15W`\0\x80\xFD[Pb\0\0 b\0\0&V[b\0\0\xE7V[`\0Ta\x01\0\x90\x04`\xFF\x16\x15b\0\0\x93W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FInitializable: contract is initi`D\x82\x01Rfalizing`\xC8\x1B`d\x82\x01R`\x84\x01`@Q\x80\x91\x03\x90\xFD[`\0T`\xFF\x90\x81\x16\x14b\0\0\xE5W`\0\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[`\x80Qa6\x80b\0\x01\x1F`\09`\0\x81\x81a\x06\x04\x01R\x81\x81a\x06M\x01R\x81\x81a\t\xCF\x01R\x81\x81a\n\x0F\x01Ra\x0B?\x01Ra6\x80`\0\xF3\xFE`\x80`@R`\x046\x10a\x01\xC2W`\x005`\xE0\x1C\x80cs\x9CK\x08\x11a\0\xF7W\x80c\xB5sib\x11a\0\x95W\x80c\xDCDjJ\x11a\0dW\x80c\xDCDjJ\x14a\x05@W\x80c\xDFNo\x8A\x14a\x05mW\x80c\xF2\xFD\xE3\x8B\x14a\x05\xA4W\x80c\xFA\x19P\x1D\x14a\x05\xC4W`\0\x80\xFD[\x80c\xB5sib\x14a\x04\xC0W\x80c\xC6\x86\x05\xC8\x14a\x04\xE0W\x80c\xC6\x8C:\x83\x14a\x05\0W\x80c\xDC\x06\x10\x9D\x14a\x05 W`\0\x80\xFD[\x80c\x9D\x95\xF1\xCC\x11a\0\xD1W\x80c\x9D\x95\xF1\xCC\x14a\x04@W\x80c\xA2E\x0F\x89\x14a\x04`W\x80c\xA7l\x9A/\x14a\x04\x80W\x80c\xB2\xB9\x9E\xC9\x14a\x04\xA0W`\0\x80\xFD[\x80cs\x9CK\x08\x14a\x03\xE2W\x80c\x8B\x95\xEC\xCD\x14a\x04\x02W\x80c\x8D\xA5\xCB[\x14a\x04\"W`\0\x80\xFD[\x80cO\x1E\xF2\x86\x11a\x01dW\x80cV\xF5Q\x17\x11a\x01>W\x80cV\xF5Q\x17\x14a\x03HW\x80c`\x97lK\x14a\x03}W\x80cc\xFE;V\x14a\x03\xABW\x80cqP\x18\xA6\x14a\x03\xCDW`\0\x80\xFD[\x80cO\x1E\xF2\x86\x14a\x02\xE4W\x80cR)\x07?\x14a\x02\xF7W\x80cR\xD1\x90-\x14a\x03%W`\0\x80\xFD[\x80c6Y\xCF\xE6\x11a\x01\xA0W\x80c6Y\xCF\xE6\x14a\x02oW\x80cC\x9F\xAB\x91\x14a\x02\x8FW\x80cF\x87!\xA7\x14a\x02\xAFW\x80cJ\x1B\xA4\x08\x14a\x02\xCFW`\0\x80\xFD[\x80c\x01u\x01R\x14a\x01\xC7W\x80c)D\x02\xCC\x14a\x02\x15W\x80c4\x01\xCD\xE8\x14a\x02MW[`\0\x80\xFD[4\x80\x15a\x01\xD3W`\0\x80\xFD[Pa\x02\0a\x01\xE26`\x04a,\xA4V[`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`\xCC` R`@\x90 T`\xFF\x16\x90V[`@Q\x90\x15\x15\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x02!W`\0\x80\xFD[P`\xC9Ta\x025\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x02\x0CV[4\x80\x15a\x02YW`\0\x80\xFD[Pa\x02ma\x02h6`\x04a,\xA4V[a\x05\xE4V[\0[4\x80\x15a\x02{W`\0\x80\xFD[Pa\x02ma\x02\x8A6`\x04a,\xA4V[a\x05\xFAV[4\x80\x15a\x02\x9BW`\0\x80\xFD[Pa\x02ma\x02\xAA6`\x04a-\x86V[a\x06\xDFV[4\x80\x15a\x02\xBBW`\0\x80\xFD[Pa\x02\0a\x02\xCA6`\x04a-\xBBV[a\t+V[4\x80\x15a\x02\xDBW`\0\x80\xFD[Pa\x02\0`\x01\x81V[a\x02ma\x02\xF26`\x04a.cV[a\t\xC5V[4\x80\x15a\x03\x03W`\0\x80\xFD[Pa\x03\x17a\x03\x126`\x04a-\xBBV[a\n\x91V[`@Qa\x02\x0C\x92\x91\x90a/\x03V[4\x80\x15a\x031W`\0\x80\xFD[Pa\x03:a\x0B2V[`@Q\x90\x81R` \x01a\x02\x0CV[4\x80\x15a\x03TW`\0\x80\xFD[Pa\x03ha\x03c6`\x04a/\xC3V[a\x0B\xE5V[`@\x80Q\x92\x83R` \x83\x01\x91\x90\x91R\x01a\x02\x0CV[4\x80\x15a\x03\x89W`\0\x80\xFD[Pa\x03\x9Da\x03\x986`\x04a0\x89V[a\x0B\xFEV[`@Qa\x02\x0C\x92\x91\x90a0\xD5V[4\x80\x15a\x03\xB7W`\0\x80\xFD[Pa\x03\xC0a\x0C\x0BV[`@Qa\x02\x0C\x91\x90a1aV[4\x80\x15a\x03\xD9W`\0\x80\xFD[Pa\x02ma\x0C\x1CV[4\x80\x15a\x03\xEEW`\0\x80\xFD[Pa\x02ma\x03\xFD6`\x04a1\xA5V[a\x0C0V[4\x80\x15a\x04\x0EW`\0\x80\xFD[Pa\x02ma\x04\x1D6`\x04a,\xA4V[a\x0CCV[4\x80\x15a\x04.W`\0\x80\xFD[P`\x97T`\x01`\x01`\xA0\x1B\x03\x16a\x025V[4\x80\x15a\x04LW`\0\x80\xFD[Pa\x02ma\x04[6`\x04a,\xA4V[a\x0C\x95V[4\x80\x15a\x04lW`\0\x80\xFD[Pa\x02ma\x04{6`\x04a1\xA5V[a\x0C\xA6V[4\x80\x15a\x04\x8CW`\0\x80\xFD[Pa\x02ma\x04\x9B6`\x04a1\xA5V[a\x0C\xB7V[4\x80\x15a\x04\xACW`\0\x80\xFD[Pa\x02ma\x04\xBB6`\x04a,\xA4V[a\x0C\xCAV[4\x80\x15a\x04\xCCW`\0\x80\xFD[Pa\x02ma\x04\xDB6`\x04a1\xA5V[a\rTV[4\x80\x15a\x04\xECW`\0\x80\xFD[Pa\x02ma\x04\xFB6`\x04a1\xBEV[a\r\x8CV[4\x80\x15a\x05\x0CW`\0\x80\xFD[Pa\x02ma\x05\x1B6`\x04a2\x0FV[a\r\xA8V[4\x80\x15a\x05,W`\0\x80\xFD[Pa\x02ma\x05;6`\x04a1\xA5V[a\r\xC2V[4\x80\x15a\x05LW`\0\x80\xFD[Pa\x05`a\x05[6`\x04a0\x89V[a\x0E\x1DV[`@Qa\x02\x0C\x91\x90a2VV[4\x80\x15a\x05yW`\0\x80\xFD[Pa\x05\x8Da\x05\x886`\x04a,\xA4V[a\x0EAV[`@\x80Q\x92\x15\x15\x83R` \x83\x01\x91\x90\x91R\x01a\x02\x0CV[4\x80\x15a\x05\xB0W`\0\x80\xFD[Pa\x02ma\x05\xBF6`\x04a,\xA4V[a\x0EXV[4\x80\x15a\x05\xD0W`\0\x80\xFD[Pa\x02ma\x05\xDF6`\x04a2dV[a\x0E\xCEV[a\x05\xECa\x0E\xE3V[a\x05\xF7`\xCA\x82a\x0F=V[PV[`\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\x160\x03a\x06KW`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x06B\x90a2\x99V[`@Q\x80\x91\x03\x90\xFD[\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\x16a\x06\x94`\0\x80Q` a6\x04\x839\x81Q\x91RT`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x14a\x06\xBAW`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x06B\x90a2\xE5V[a\x06\xC3\x81a\x0F\xA3V[`@\x80Q`\0\x80\x82R` \x82\x01\x90\x92Ra\x05\xF7\x91\x83\x91\x90a\x0F\xABV[`\0Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x80\x15a\x06\xFFWP`\0T`\x01`\xFF\x90\x91\x16\x10[\x80a\x07\x19WP0;\x15\x80\x15a\x07\x19WP`\0T`\xFF\x16`\x01\x14[a\x07|W`@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\x01a\x06BV[`\0\x80T`\xFF\x19\x16`\x01\x17\x90U\x80\x15a\x07\x9FW`\0\x80Ta\xFF\0\x19\x16a\x01\0\x17\x90U[`\0\x80`\0\x84\x80` \x01\x90Q\x81\x01\x90a\x07\xB8\x91\x90a31V[\x91\x94P\x92P\x90P`\x01`\x01`\xA0\x1B\x03\x83\x16\x15\x80a\x07\xDCWP`\x01`\x01`\xA0\x1B\x03\x82\x16\x15[\x15a\x07\xFAW`@Qc\x86y\x15\xAB`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x81`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16\x03a\x08,W`@QcY\x8A\x0E!`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0a\x08@`\x97T`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x14\x15\x80a\x08`WP`\xC9T`\x01`\x01`\xA0\x1B\x03\x16\x15\x15[\x15a\x08}W`@Qb\xDC\x14\x9F`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\xC9\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x84\x16\x17\x90Ua\x08\xA1\x81a\x11\x16V[a\x08\xAA\x83a\x11\xDCV[`@Q`\x01`\x01`\xA0\x1B\x03\x83\x16\x90\x7F_\xE6\xAA\xBFNy\x08C\xDFC\xAE\x0E\"\xB5\x86 \x06o\xB3\x89)[\xED\xC0j\x92\xDFl;(w}\x90`\0\x90\xA2PPP\x80\x15a\t'W`\0\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[PPV[3`\0\x90\x81R`\xCC` R`@\x81 T`\xFF\x16a\t[W`@Qc\x1F\xB1\xD3\xE5`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\xC9Ta\tx\x90`\xCA\x90`\x01`\x01`\xA0\x1B\x03\x16\x88\x88\x88\x88\x88a\x12.V[a\t\xBB\x86\x86\x86\x86\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RP\x88\x92Pa\x12\xD9\x91PPV[\x96\x95PPPPPPV[`\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\x160\x03a\n\rW`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x06B\x90a2\x99V[\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\x16a\nV`\0\x80Q` a6\x04\x839\x81Q\x91RT`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x14a\n|W`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x06B\x90a2\xE5V[a\n\x85\x82a\x0F\xA3V[a\t'\x82\x82`\x01a\x0F\xABV[3`\0\x90\x81R`\xCC` R`@\x81 T``\x90`\xFF\x16a\n\xC4W`@Qc\x1F\xB1\xD3\xE5`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\xC9Ta\n\xE1\x90`\xCA\x90`\x01`\x01`\xA0\x1B\x03\x16\x89\x89\x89\x89\x89a\x12.V[a\x0B$\x87\x87\x87\x87\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RP\x89\x92Pa\x13\xC9\x91PPV[\x91P\x91P\x95P\x95\x93PPPPV[`\x000`\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\x0B\xD2W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`8`$\x82\x01R\x7FUUPSUpgradeable: must not be cal`D\x82\x01R\x7Fled through delegatecall\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06BV[P`\0\x80Q` a6\x04\x839\x81Q\x91R\x90V[`\0\x80a\x0B\xF2\x84\x84a\x14\xC3V[\x91P\x91P[\x92P\x92\x90PV[``\x80a\x0B\xF2\x84\x84a\x15\xD7V[``a\x0C\x17`\xCAa\x17\x86V[\x90P\x90V[a\x0C$a\x0E\xE3V[a\x0C.`\0a\x11\xDCV[V[a\x0C8a\x0E\xE3V[a\x05\xF7`\xCA\x82a\x17\xE2V[a\x0CKa\x0E\xE3V[`\xC9\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x83\x16\x90\x81\x17\x90\x91U`@Q\x7F_\xE6\xAA\xBFNy\x08C\xDFC\xAE\x0E\"\xB5\x86 \x06o\xB3\x89)[\xED\xC0j\x92\xDFl;(w}\x90`\0\x90\xA2PV[a\x0C\x9Da\x0E\xE3V[a\x05\xF7\x81a\x18\xA2V[a\x0C\xAEa\x0E\xE3V[a\x05\xF7\x81a\x11\x16V[a\x0C\xBFa\x0E\xE3V[a\x05\xF7`\xCA\x82a\x19(V[a\x0C\xD2a\x0E\xE3V[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\xCC` R`@\x90 T`\xFF\x16a\r\x0BW`@Qc\x1F\xB1\xD3\xE5`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x81\x81R`\xCC` R`@\x80\x82 \x80T`\xFF\x19\x16\x90UQ\x7F\xCF\xC2Af\xDBK\xB6w\xE8W\xCA\xCA\xBD\x15A\xFB+0dP!\xB2|Q0A\x95\x89\xB8M\xB5+\x91\x90\xA2PV[a\r\\a\x0E\xE3V[`\0a\rh\x82``\x1C\x90V[\x90Pa\rs\x81a\x18\xA2V[a\r~`\xCA\x83a\x19\xD9V[a\t'`\xCA\x82\x83`\x01a\x1A\x8BV[a\r\x94a\x0E\xE3V[a\r\xA2`\xCA\x85\x85\x85\x85a\x1B'V[PPPPV[a\r\xB0a\x0E\xE3V[a\r\xBD`\xCA\x84\x84\x84a\x1A\x8BV[PPPV[a\r\xCAa\x0E\xE3V[`\0a\r\xD6\x82``\x1C\x90V[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\xCC` R`@\x90 T\x90\x91P`\xFF\x16a\x0E\x12W`@Qc\x1F\xB1\xD3\xE5`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\t'`\xCA\x83a\x19\xD9V[`\0\x82\x81R`\xCD` \x90\x81R`@\x80\x83 \x84\x84R\x90\x91R\x90 T`\xFF\x16[\x92\x91PPV[`\0\x80a\x0EO`\xCA\x84a\x1C\xABV[\x91P\x91P\x91P\x91V[a\x0E`a\x0E\xE3V[`\x01`\x01`\xA0\x1B\x03\x81\x16a\x0E\xC5W`@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\x06BV[a\x05\xF7\x81a\x11\xDCV[a\x0E\xD6a\x0E\xE3V[a\r\xBD`\xCA\x84\x84\x84a\x1D\x0EV[`\x97T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x0C.W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01\x81\x90R`$\x82\x01R\x7FOwnable: caller is not the owner`D\x82\x01R`d\x01a\x06BV[`\0a\x0FI\x83\x83a\x1EUV[\x90P\x80\x15a\x0F\x8AW`@Q`\x01`\x01`\xA0\x1B\x03\x83\x16\x90\x7F\r\xFC\xE1\xEAK\xA1\xEE\xBA\x89\x1F\xFB*\x06g\x90\xFB\xC2\x93\xA9\xE5\x17\xFEa\xD4\x9D\x15j0\x16_\x93\xF3\x90`\0\x90\xA2PPPV[`@QcJ\x89\x03!`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x05\xF7a\x0E\xE3V[\x7FI\x10\xFD\xFA\x16\xFE\xD3&\x0E\xD0\xE7\x14\x7F|\xC6\xDA\x11\xA6\x02\x08\xB5\xB9@m\x12\xA65aO\xFD\x91CT`\xFF\x16\x15a\x0F\xDEWa\r\xBD\x83a\x1F}V[\x82`\x01`\x01`\xA0\x1B\x03\x16cR\xD1\x90-`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x92PPP\x80\x15a\x108WP`@\x80Q`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01\x90\x92Ra\x105\x91\x81\x01\x90a3tV[`\x01[a\x10\x9BW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`.`$\x82\x01R\x7FERC1967Upgrade: new implementati`D\x82\x01Rmon is not UUPS`\x90\x1B`d\x82\x01R`\x84\x01a\x06BV[`\0\x80Q` a6\x04\x839\x81Q\x91R\x81\x14a\x11\nW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`)`$\x82\x01R\x7FERC1967Upgrade: unsupported prox`D\x82\x01Rh\x1AXX\x9B\x19UURQ`\xBA\x1B`d\x82\x01R`\x84\x01a\x06BV[Pa\r\xBD\x83\x83\x83a \x19V[`\0a\x11\"\x82``\x1C\x90V[\x90P`\0\x81`\x01`\x01`\xA0\x1B\x03\x16c\xFC\x0CTj`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x11dW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x11\x88\x91\x90a3\x8DV[\x90Pa\x11\xB3`\xCAk\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16``\x85\x90\x1B`\x01`\x01``\x1B\x03\x19\x16\x17a\x17\xE2V[a\r\xBD`\xCAk\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16``\x84\x90\x1B`\x01`\x01``\x1B\x03\x19\x16\x17a\x19(V[`\x97\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`\0\x90\xA3PPV[\x84`\x01`\x01`\xA0\x1B\x03\x16\x86`\x01`\x01`\xA0\x1B\x03\x16\x03a\x12\x8CWa\x12\x87\x87\x84\x84\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa >\x92PPPV[a\x12\xD0V[a\x12\xD0\x87\x86\x86\x86\x86\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RP\x88\x92Pa \xDF\x91PPV[PPPPPPPV[`\0a\x12\xED`\x97T`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16cF\x87!\xA7\x86\x86\x86\x86`@Q\x85c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x13\x1E\x94\x93\x92\x91\x90a3\xAAV[` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a\x13=W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x13a\x91\x90a4\x02V[\x90P\x80\x15a\x13\x97W`@Q\x7FN.\x86\xD2\x13u\xEB\xCB\xF6\xE9=\xF5\xEB\xDDZ\x91[\xF80$Y\x04\xC3\xB5OH\xAD\xF0\x17\n\xAEK\x90`\0\x90\xA1a\x13\xC1V[`@Q\x7F\xC2M\x93`\x8A\x03\xD2c\xFF\x19\x1Dvw\x14\x1F^\x94\xC4\x96\xE5\x93\x10\x8F:\xAE\x0C\xB5\xB7\x04\x94\xC4\xD3\x90`\0\x90\xA1[\x94\x93PPPPV[`\0``a\x13\xDF`\x97T`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16cR)\x07?\x87\x87\x87\x87`@Q\x85c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x14\x10\x94\x93\x92\x91\x90a3\xAAV[`\0`@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a\x14/W=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01`@Ra\x14W\x91\x90\x81\x01\x90a4\x1DV[\x90\x92P\x90P\x81\x15a\x14\x90W`@Q\x7FN.\x86\xD2\x13u\xEB\xCB\xF6\xE9=\xF5\xEB\xDDZ\x91[\xF80$Y\x04\xC3\xB5OH\xAD\xF0\x17\n\xAEK\x90`\0\x90\xA1a\x14\xBAV[`@Q\x7F\xC2M\x93`\x8A\x03\xD2c\xFF\x19\x1Dvw\x14\x1F^\x94\xC4\x96\xE5\x93\x10\x8F:\xAE\x0C\xB5\xB7\x04\x94\xC4\xD3\x90`\0\x90\xA1[\x94P\x94\x92PPPV[\x81Q`\0\x90\x81\x90`\x07\x81\x11\x15a\x14\xECW`@Qc\x17\xA4\xD9\x87`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x83Q\x85Q\x14a\x15\x0EW`@Qct\xF4\xD57`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80[\x82\x81\x10\x15a\x15qWa\x15%\x81` a4\xBDV[a\x150\x90`\xE0a4\xD4V[`\xE0\x88\x83\x81Q\x81\x10a\x15DWa\x15Da4\xE7V[` \x02` \x01\x01Q`\x01`\x01`\xE0\x1B\x03\x19\x16\x90\x1C\x90\x1B\x82\x17\x91P\x80\x80a\x15i\x90a4\xFDV[\x91PPa\x15\x12V[P`\0[\x82\x81\x10\x15a\x15\xCCWa\x15\x88\x81`\x02a4\xBDV[\x86\x82\x81Q\x81\x10a\x15\x9AWa\x15\x9Aa4\xE7V[` \x02` \x01\x01Q`\x02\x81\x11\x15a\x15\xB3Wa\x15\xB3a0\xABV[\x90\x1B\x91\x90\x91\x17\x90\x80a\x15\xC4\x81a4\xFDV[\x91PPa\x15uV[P\x95\x90\x94P\x92PPPV[``\x80`\x07\x83\x11\x15a\x15\xFCW`@Qc\x17\xA4\xD9\x87`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x16\x15Wa\x16\x15a,\xC1V[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x16>W\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x91P\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x16ZWa\x16Za,\xC1V[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x16\x83W\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x90P`\0[\x83\x81\x10\x15a\x16\xEBW`\xE0a\x16\x9E\x82` a4\xBDV[a\x16\xA9\x90`\xE0a4\xD4V[\x86\x90\x1C\x90\x1B\x83\x82\x81Q\x81\x10a\x16\xC0Wa\x16\xC0a4\xE7V[`\x01`\x01`\xE0\x1B\x03\x19\x90\x92\x16` \x92\x83\x02\x91\x90\x91\x01\x90\x91\x01R\x80a\x16\xE3\x81a4\xFDV[\x91PPa\x16\x89V[P`\0[\x83\x81\x10\x15a\x17~W`\xFEa\x17\x04\x82`\x02a4\xBDV[a\x17\x0F\x90`\xFEa4\xD4V[\x86`\0\x1C\x90\x1B\x90\x1C`\xFF\x16`\x02\x81\x11\x15a\x17+Wa\x17+a0\xABV[\x82\x82\x81Q\x81\x10a\x17=Wa\x17=a4\xE7V[` \x02` \x01\x01\x90`\x02\x81\x11\x15a\x17VWa\x17Va0\xABV[\x90\x81`\x02\x81\x11\x15a\x17iWa\x17ia0\xABV[\x90RP\x80a\x17v\x81a4\xFDV[\x91PPa\x16\xEFV[P\x92P\x92\x90PV[``\x81`\0\x01\x80T\x80` \x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80T\x80\x15a\x17\xD6W` \x02\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R` \x01\x90`\x01\x01\x90\x80\x83\x11a\x17\xC2W[PPPPP\x90P\x91\x90PV[`\0a\x17\xEE\x82``\x1C\x90V[\x90P`\x01`\x01`\xA0\x1B\x03\x81\x16a\x18\x17W`@Qc\x86y\x15\xAB`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x18!\x83\x82a#\x1FV[\x15a\x18?W`@Qct`>\x95`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0a\x18L\x83`\x01a#@V[\x90Pa\x18X\x84\x82a#\xD2V[P\x81`\x01`\x01`\xA0\x1B\x03\x16\x7F_\xFB\x06\xB0\xB0\xE8\xADj\x8F<X1\xD4\x99\xDF\xA6\x12\xD9\xC9\xD4\xDC\x10{\xBDf\xF1\x8Fa\xA6I.q\x82`@Qa\x18\x94\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA2PPPPV[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\xCC` R`@\x90 T`\xFF\x16\x15a\x18\xDCW`@Qc8\xE8\x16\xA5`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x81\x81R`\xCC` R`@\x80\x82 \x80T`\xFF\x19\x16`\x01\x17\x90UQ\x7F\xB2]\x03\xAA\xF3\x08\xD7)\x17\t\xBE\x1E\xA2\x8B\x80\x04c\xCF:\x9ALJUU\xD73:\x96L\x1D\xFE\xBD\x91\x90\xA2PV[`\0a\x194\x82``\x1C\x90V[\x90P`\x01`\x01`\xA0\x1B\x03\x81\x16a\x19]W`@Qc\x86y\x15\xAB`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x19g\x83\x82a#\x1FV[\x15a\x19\x85W`@Qct`>\x95`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0a\x19\x91\x83\x82a#@V[\x90Pa\x19\x9D\x84\x82a#\xD2V[P\x81`\x01`\x01`\xA0\x1B\x03\x16\x7F\xAA\xF2k\xB1*\xA8\x9E\xE9k\xBE\x19fzj\x05W'\xB7]?n\xD7\xB8\xB6\x11\xEFe\x19\x18\x02\t\xD6\x82`@Qa\x18\x94\x91\x81R` \x01\x90V[`\0a\x19\xE5\x82``\x1C\x90V[\x90P`\x01`\x01`\xA0\x1B\x03\x81\x16a\x1A\x0EW`@Qc\x86y\x15\xAB`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x1A\x18\x83\x82a#\x1FV[\x15a\x1A6W`@Qct`>\x95`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0a\x1AC\x83`\x02a#@V[\x90Pa\x1AO\x84\x82a#\xD2V[P\x81`\x01`\x01`\xA0\x1B\x03\x16\x7F\x1E\xE2y\x1F,\xAF\x0E\x92\xA9\xDC2\xA3z\x9E\xA5:\xB6\xACzo\xB8\xF2\xD0\x90\xE5:\x06}:C\xF6\xAC\x82`@Qa\x18\x94\x91\x81R` \x01\x90V[`\0\x80\x80R`\x03\x85\x01` R`@\x81 \x82\x91a\x1A\xA7\x86\x86a$>V[\x81R` \x81\x01\x91\x90\x91R`@\x01`\0 \x80T`\xFF\x19\x16`\x01\x83`\x02\x81\x11\x15a\x1A\xD1Wa\x1A\xD1a0\xABV[\x02\x17\x90UP\x81`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16\x7Ft\x87S\r\xDF\xF1 y\x95\x05\xE5+\x1B\x19\xB6\x93?\x85\xA9\xEE\xAE\x92 \xC8\nz\xD7\xC4)\xB6\x12\xAE\x83`@Qa\x1B\x19\x91\x90a2VV[`@Q\x80\x91\x03\x90\xA3PPPPV[`\0\x80a\x1B5\x83`\x02a\x15\xD7V[\x91P\x91P`\0[`\x02\x81\x10\x15a\x1C\xA1W\x82Q`\0\x90\x84\x90\x83\x90\x81\x10a\x1B\\Wa\x1B\\a4\xE7V[` \x02` \x01\x01Q`\x01`\x01`\xE0\x1B\x03\x19\x16\x14a\x1C\x8FW`\0a\x1B\x98\x87\x85\x84\x81Q\x81\x10a\x1B\x8BWa\x1B\x8Ba4\xE7V[` \x02` \x01\x01Qa$\x83V[\x90P\x82\x82\x81Q\x81\x10a\x1B\xACWa\x1B\xACa4\xE7V[` \x02` \x01\x01Q\x89`\x03\x01`\0\x83\x81R` \x01\x90\x81R` \x01`\0 `\0a\x1B\xD5\x8B\x8Ba$>V[\x81R` \x81\x01\x91\x90\x91R`@\x01`\0 \x80T`\xFF\x19\x16`\x01\x83`\x02\x81\x11\x15a\x1B\xFFWa\x1B\xFFa0\xABV[\x02\x17\x90UP\x85`\x01`\x01`\xA0\x1B\x03\x16\x87`\x01`\x01`\xA0\x1B\x03\x16\x89`\x01`\x01`\xA0\x1B\x03\x16\x7F\xA3\xDFq\x04 \xB0\x1C\xC3\x0F\xF3\x000\x9A\xBB\xC7\xFA\xDDF0\xD4\xAB8[\x0FZ\x12o\xB4\xBA\xBEv+\x87\x86\x81Q\x81\x10a\x1CUWa\x1CUa4\xE7V[` \x02` \x01\x01Q\x87\x87\x81Q\x81\x10a\x1CoWa\x1Coa4\xE7V[` \x02` \x01\x01Q`@Qa\x1C\x85\x92\x91\x90a5\x16V[`@Q\x80\x91\x03\x90\xA4P[\x80a\x1C\x99\x81a4\xFDV[\x91PPa\x1B<V[PPPPPPPPV[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\x01\x83\x01` R`@\x81 T\x81\x90\x80\x82\x03a\x1C\xDCW`\0\x80\x92P\x92PPa\x0B\xF7V[`\x01\x85a\x1C\xE9\x82\x84a4\xD4V[\x81T\x81\x10a\x1C\xF9Wa\x1C\xF9a4\xE7V[\x90`\0R` `\0 \x01T\x92P\x92PPa\x0B\xF7V[`\0\x80a\x1D\x1C\x83`\x07a\x15\xD7V[\x91P\x91P`\0[`\x07\x81\x10\x15a\x12\xD0W\x82Q`\0\x90\x84\x90\x83\x90\x81\x10a\x1DCWa\x1DCa4\xE7V[` \x02` \x01\x01Q`\x01`\x01`\xE0\x1B\x03\x19\x16\x14a\x1ECW`\0a\x1Dr\x87\x85\x84\x81Q\x81\x10a\x1B\x8BWa\x1B\x8Ba4\xE7V[\x90P\x82\x82\x81Q\x81\x10a\x1D\x86Wa\x1D\x86a4\xE7V[` \x90\x81\x02\x91\x90\x91\x01\x81\x01Q`\0\x83\x81R`\x03\x8B\x01\x83R`@\x80\x82 \x8A\x83R\x90\x93R\x91\x90\x91 \x80T`\xFF\x19\x16`\x01\x83`\x02\x81\x11\x15a\x1D\xC6Wa\x1D\xC6a0\xABV[\x02\x17\x90UP\x85\x87`\x01`\x01`\xA0\x1B\x03\x16\x7F\xF2\xFF\xD4\xF0\x9DX\xD0h$\x18\x803\xD31\x8D\x06\xEB\x95{\xFB\x1A\x8F\xFE\xD9\xAFx\xE1\xF1\x91h\xB9\x04\x86\x85\x81Q\x81\x10a\x1E\tWa\x1E\ta4\xE7V[` \x02` \x01\x01Q\x86\x86\x81Q\x81\x10a\x1E#Wa\x1E#a4\xE7V[` \x02` \x01\x01Q`@Qa\x1E9\x92\x91\x90a5\x16V[`@Q\x80\x91\x03\x90\xA3P[\x80a\x1EM\x81a4\xFDV[\x91PPa\x1D#V[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\x01\x83\x01` R`@\x81 T\x80\x15a\x1FsW`\0a\x1E\x83`\x01\x83a4\xD4V[\x85T\x90\x91P`\0\x90a\x1E\x97\x90`\x01\x90a4\xD4V[\x90P\x81\x81\x14a\x1F\x15W`\0\x86`\0\x01\x82\x81T\x81\x10a\x1E\xB7Wa\x1E\xB7a4\xE7V[\x90`\0R` `\0 \x01T\x90P\x80\x87`\0\x01\x84\x81T\x81\x10a\x1E\xDAWa\x1E\xDAa4\xE7V[\x90`\0R` `\0 \x01\x81\x90UP\x83\x87`\x01\x01`\0a\x1E\xF9\x84``\x1C\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x81\x01\x91\x90\x91R`@\x01`\0 UP[\x85T\x86\x90\x80a\x1F&Wa\x1F&a54V[`\x01\x90\x03\x81\x81\x90`\0R` `\0 \x01`\0\x90U\x90U\x85`\x01\x01`\0\x86`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x90\x81R` \x01`\0 `\0\x90U`\x01\x93PPPPa\x0E;V[`\0\x91PPa\x0E;V[`\x01`\x01`\xA0\x1B\x03\x81\x16;a\x1F\xEAW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`-`$\x82\x01R\x7FERC1967: new implementation is n`D\x82\x01Rl\x1B\xDD\x08\x18H\x18\xDB\xDB\x9D\x1C\x98X\xDD`\x9A\x1B`d\x82\x01R`\x84\x01a\x06BV[`\0\x80Q` a6\x04\x839\x81Q\x91R\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16\x91\x90\x91\x17\x90UV[a \"\x83a$\xCFV[`\0\x82Q\x11\x80a /WP\x80[\x15a\r\xBDWa\r\xA2\x83\x83a%\x0FV[`\0\x80`\0```\0\x80`$\x87\x01Q\x90P\x80` \x14a pW`@Qc~\xD1\x117`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`d[\x87Q\x81\x10\x15a \xD4W\x80\x88\x01Q`\xF8\x1C\x96P`\x01\x81\x01\x88\x01Q``\x1C\x95P`\x15\x81\x01\x88\x01Q\x94P`5\x81\x01\x88\x01Q\x92P`5\x81\x01\x88\x01\x93Pa \xB8\x89\x87\x87\x87\x8Ba \xDFV[a \xC3\x83`Ua5JV[a \xCD\x90\x82a5JV[\x90Pa sV[PPPPPPPPPV[\x81Q\x15\x80\x15\x90a \xF0WP`\x04\x82Q\x10[\x15a!\x0EW`@Qc#B`\x91`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0a!\x1A\x86\x86a%4V[\x90Pa!'\x84\x83\x83a%\x9FV[`\0a!2\x84a5]V[\x90P`\0a!B\x85Q\x84\x84a&AV[\x90P`\0\x81`\x03\x81\x11\x15a!XWa!Xa0\xABV[\x03a!vW`@QcXr07`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x03\x81`\x03\x81\x11\x15a!\x8AWa!\x8Aa0\xABV[\x03a!\x97WPPPa#\x18V[`\0\x80a!\xA3\x85a'\xE9V[`\x02\x81\x11\x15a!\xB4Wa!\xB4a0\xABV[\x03a!\xD5Wa!\xCE\x89a!\xC7\x8A\x86a$\x83V[\x85\x89a(\x04V[\x90Pa\"9V[`\x01a!\xE0\x85a'\xE9V[`\x02\x81\x11\x15a!\xF1Wa!\xF1a0\xABV[\x03a\"\x0BWa!\xCE\x89a\"\x04\x8A\x86a$\x83V[\x85\x89a(\x9BV[`\x02a\"\x16\x85a'\xE9V[`\x02\x81\x11\x15a\"'Wa\"'a0\xABV[\x03a\"9Wa\"6\x89\x89a)\xCAV[\x90P[`\x02\x81`\x02\x81\x11\x15a\"MWa\"Ma0\xABV[\x14\x80a\"\x86WP`\0\x81`\x02\x81\x11\x15a\"hWa\"ha0\xABV[\x14\x80\x15a\"\x86WP`\x01\x82`\x03\x81\x11\x15a\"\x84Wa\"\x84a0\xABV[\x14[\x15a\"\xA4W`@Qc\x86M\xD1\xE7`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x81`\x02\x81\x11\x15a\"\xB8Wa\"\xB8a0\xABV[\x14\x80a\"\xF1WP`\0\x81`\x02\x81\x11\x15a\"\xD3Wa\"\xD3a0\xABV[\x14\x80\x15a\"\xF1WP`\x02\x82`\x03\x81\x11\x15a\"\xEFWa\"\xEFa0\xABV[\x14[\x15a\"\xFFWPPPPa#\x18V[`@Qc\x08\xD5\xA8\xB1`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PPPPPV[`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`\x01\x91\x90\x91\x01` R`@\x90 T\x15\x15\x90V[`\0\x80\x80`\x01\x84`\x02\x81\x11\x15a#XWa#Xa0\xABV[\x03a#pWPj\xFF\0\0\0\0\0\0\0\0\xFF\xFF\x19a#\xABV[`\0\x84`\x02\x81\x11\x15a#\x84Wa#\x84a0\xABV[\x03a#\x9CWPj\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\x19a#\xABV[Pj\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19[\x80\x85\x16\x91P`P\x84`\x02\x81\x11\x15a#\xC4Wa#\xC4a0\xABV[\x90\x1B\x91\x90\x91\x17\x94\x93PPPPV[`\0a#\xE7\x83a#\xE2\x84``\x1C\x90V[a#\x1FV[a$6W\x82T`\x01\x81\x81\x01\x85U`\0\x85\x81R` \x81 \x90\x92\x01\x84\x90U\x84T\x91\x90\x85\x01\x90a$\x14\x85``\x1C\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x81\x01\x91\x90\x91R`@\x01`\0 UP`\x01a\x0E;V[P`\0a\x0E;V[`@Q`\x01`\x01``\x1B\x03\x19``\x84\x81\x1B\x82\x16` \x84\x01R\x83\x90\x1B\x16`4\x82\x01R`\0\x90`H\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P\x92\x91PPV[`@Q`\x01`\x01``\x1B\x03\x19``\x84\x90\x1B\x16` \x82\x01R`\x01`\x01`\xE0\x1B\x03\x19\x82\x16`4\x82\x01R`\0\x90`8\x01`@Q` \x81\x83\x03\x03\x81R\x90`@Ra$\xC8\x90a5\x94V[\x93\x92PPPV[a$\xD8\x81a\x1F}V[`@Q`\x01`\x01`\xA0\x1B\x03\x82\x16\x90\x7F\xBC|\xD7Z \xEE'\xFD\x9A\xDE\xBA\xB3 A\xF7U!M\xBCk\xFF\xA9\x0C\xC0\"[9\xDA.\\-;\x90`\0\x90\xA2PV[``a$\xC8\x83\x83`@Q\x80``\x01`@R\x80`'\x81R` \x01a6$`'\x919a)\xFEV[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\x01\x83\x01` R`@\x81 T\x80\x82\x03a%oW`@Qc-\x05\x19\xAD`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x83a%{`\x01\x83a4\xD4V[\x81T\x81\x10a%\x8BWa%\x8Ba4\xE7V[\x90`\0R` `\0 \x01T\x91PP\x92\x91PPV[`\x01a%\xAA\x82a*lV[`\x01\x81\x11\x15a%\xBBWa%\xBBa0\xABV[\x14a%\xD9W`@Qc;\xCD\x10+`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x82`\x01\x81\x11\x15a%\xEDWa%\xEDa0\xABV[\x03a&\x0BW`@Qc\x06\xC4\xA1\xC7`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0\x83\x11\x80\x15a&#WPa&!\x81`\x02a*\x87V[\x15[\x15a\r\xBDW`@Qc\t\xE9\xCDI`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80a&M\x84a*\xBDV[\x90P\x84\x15\x80a&dWP`\x01`\x01`\xE0\x1B\x03\x19\x83\x16\x15[\x80a&\x80WP`\x03\x81`\x03\x81\x11\x15a&~Wa&~a0\xABV[\x14[\x80a&\x9CWP`\0\x81`\x03\x81\x11\x15a&\x9AWa&\x9Aa0\xABV[\x14[\x15a&\xA8W\x90Pa$\xC8V[`\0cy\x93\xB9G`\xE1\x1B`\x01`\x01`\xE0\x1B\x03\x19\x85\x16\x01a&\xD4Wa&\xCD\x85`\0a*\xD8V[\x90Pa'\xBFV[c\xAB]\x12\x0B`\xE0\x1B`\x01`\x01`\xE0\x1B\x03\x19\x85\x16\x01a&\xF7Wa&\xCD\x85`\x02a*\xD8V[cBY\xA0\xBB`\xE0\x1B`\x01`\x01`\xE0\x1B\x03\x19\x85\x16\x01a'\x1AWa&\xCD\x85`\x03a*\xD8V[c\x9A\xEA\xEBA`\xE0\x1B`\x01`\x01`\xE0\x1B\x03\x19\x85\x16\x01a'=Wa&\xCD\x85`\x04a*\xD8V[c\xF5A:q`\xE0\x1B`\x01`\x01`\xE0\x1B\x03\x19\x85\x16\x01a'`Wa&\xCD\x85`\x05a*\xD8V[c\xF6\xA1XM`\xE0\x1B`\x01`\x01`\xE0\x1B\x03\x19\x85\x16\x01a'\x83Wa&\xCD\x85`\x07a*\xD8V[c2\x13\"\x1D`\xE1\x1B`\x01`\x01`\xE0\x1B\x03\x19\x85\x16\x01a'\xA6Wa&\xCD\x85`\x08a*\xD8V[`@Qc\x18\xF4\xC1#`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0\x81`\x04\x81\x11\x15a'\xD3Wa'\xD3a0\xABV[\x03a'\xE0WP\x90Pa$\xC8V[a\t\xBB\x81a+,V[`\0`\xFF`P\x83\x90\x1C\x16`\x02\x81\x11\x15a\x0E;Wa\x0E;a0\xABV[`\0`\x01`\x01`\xE0\x1B\x03\x19\x83\x16c\t^\xA7\xB3`\xE0\x1B\x14\x80\x15\x90a(8WP`\x01`\x01`\xE0\x1B\x03\x19\x83\x16cM\xEC\xDD\xE3`\xE1\x1B\x14\x15[\x15a(VW`@Qc\x18\xF4\xC1#`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0a(c`\0\x84a+\x86V[\x90P`\0a(q3\x83a$>V[`\0\x87\x81R`\x03\x89\x01` \x90\x81R`@\x80\x83 \x93\x83R\x92\x90R T`\xFF\x16\x92PPP\x94\x93PPPPV[`\0\x80a(\xA9`\0\x84a+\x86V[\x90P`\x01`\x01`\xA0\x1B\x03\x81\x163\x14a(\xD4W`@Qcn\xB01_`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0cy\x93\xB9G`\xE1\x1B`\x01`\x01`\xE0\x1B\x03\x19\x86\x16\x01a)\0Wa(\xF9`\x01\x85a+\x86V[\x90Pa)\xA1V[c\xAB]\x12\x0B`\xE0\x1B`\x01`\x01`\xE0\x1B\x03\x19\x86\x16\x01a)9W`\0a)%`\x01\x86a+\x86V[\x90Pa)1\x81\x84a$>V[\x91PPa)\xA1V[`\x01`\x01`\xE0\x1B\x03\x19\x85\x16c\xBD\xA6_E`\xE0\x1B\x14\x80a)hWP`\x01`\x01`\xE0\x1B\x03\x19\x85\x16ce\x15\x14\xBF`\xE0\x1B\x14[\x80a)\x83WP`\x01`\x01`\xE0\x1B\x03\x19\x85\x16c\n\xBE\xC5\x8F`\xE0\x1B\x14[\x15a'\xA6W`\0a)\x95`\x01\x86a+\x86V[\x90Pa)1\x83\x82a$>V[`\0\x86\x81R`\x03\x88\x01` \x90\x81R`@\x80\x83 \x93\x83R\x92\x90R T`\xFF\x16\x91PP\x94\x93PPPPV[`\0\x80a)\xD73\x84a$>V[`\0\x80\x80R`\x03\x86\x01` \x90\x81R`@\x80\x83 \x93\x83R\x92\x90R T`\xFF\x16\x91PP\x92\x91PPV[```\0\x80\x85`\x01`\x01`\xA0\x1B\x03\x16\x85`@Qa*\x1B\x91\x90a5\xBBV[`\0`@Q\x80\x83\x03\x81\x85Z\xF4\x91PP=\x80`\0\x81\x14a*VW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a*[V[``\x91P[P\x91P\x91Pa\t\xBB\x86\x83\x83\x87a+\xF1V[`\0`\xFF`X\x83\x90\x1C\x16`\x01\x81\x11\x15a\x0E;Wa\x0E;a0\xABV[`\0\x81`\x02\x81\x11\x15a*\x9BWa*\x9Ba0\xABV[a*\xA4\x84a'\xE9V[`\x02\x81\x11\x15a*\xB5Wa*\xB5a0\xABV[\x14\x93\x92PPPV[`\0`\xFF`H\x83\x90\x1C\x16`\x03\x81\x11\x15a\x0E;Wa\x0E;a0\xABV[`\0`\t\x82\x10a*\xFBW`@Qc\xB4J\xF9\xAF`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0a+\x08\x83`\x08a4\xBDV[a+\x13\x90`\xB8a5JV[\x90P\x83\x81\x1B`\xF8\x1C`\x04\x81\x11\x15a\x13\xC1Wa\x13\xC1a0\xABV[`\0\x80\x82`\x04\x81\x11\x15a+AWa+Aa0\xABV[\x90P\x80`\xFF\x16`\0\x03a+gW`@Qc\xD8EZ\x13`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a+r`\x01\x82a5\xD7V[`\xFF\x16`\x03\x81\x11\x15a$\xC8Wa$\xC8a0\xABV[`\0a+\x93\x83` a4\xBDV[a+\x9E\x90`\x04a5JV[a+\xA9\x90` a5JV[\x82Q\x10\x15a+\xCAW`@Qc\x1D\t\x8E-`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0a+\xD7\x84` a4\xBDV[a+\xE2\x90`\x04a5JV[\x92\x90\x92\x01` \x01Q\x93\x92PPPV[``\x83\x15a,`W\x82Q`\0\x03a,YW`\x01`\x01`\xA0\x1B\x03\x85\x16;a,YW`@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\x06BV[P\x81a\x13\xC1V[a\x13\xC1\x83\x83\x81Q\x15a,uW\x81Q\x80\x83` \x01\xFD[\x80`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x06B\x91\x90a5\xF0V[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x05\xF7W`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15a,\xB6W`\0\x80\xFD[\x815a$\xC8\x81a,\x8FV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`@Q`\x1F\x82\x01`\x1F\x19\x16\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a-\0Wa-\0a,\xC1V[`@R\x91\x90PV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x15a-\"Wa-\"a,\xC1V[P`\x1F\x01`\x1F\x19\x16` \x01\x90V[`\0\x82`\x1F\x83\x01\x12a-AW`\0\x80\xFD[\x815a-Ta-O\x82a-\x08V[a,\xD7V[\x81\x81R\x84` \x83\x86\x01\x01\x11\x15a-iW`\0\x80\xFD[\x81` \x85\x01` \x83\x017`\0\x91\x81\x01` \x01\x91\x90\x91R\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15a-\x98W`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a-\xAFW`\0\x80\xFD[a\x13\xC1\x84\x82\x85\x01a-0V[`\0\x80`\0\x80`\0`\x80\x86\x88\x03\x12\x15a-\xD3W`\0\x80\xFD[\x855a-\xDE\x81a,\x8FV[\x94P` \x86\x015\x93P`@\x86\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a.\x02W`\0\x80\xFD[\x81\x88\x01\x91P\x88`\x1F\x83\x01\x12a.\x16W`\0\x80\xFD[\x815\x81\x81\x11\x15a.%W`\0\x80\xFD[\x89` \x82\x85\x01\x01\x11\x15a.7W`\0\x80\xFD[` \x83\x01\x95P\x80\x94PPPP``\x86\x015`\x02\x81\x10a.UW`\0\x80\xFD[\x80\x91PP\x92\x95P\x92\x95\x90\x93PV[`\0\x80`@\x83\x85\x03\x12\x15a.vW`\0\x80\xFD[\x825a.\x81\x81a,\x8FV[\x91P` \x83\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a.\x9DW`\0\x80\xFD[a.\xA9\x85\x82\x86\x01a-0V[\x91PP\x92P\x92\x90PV[`\0[\x83\x81\x10\x15a.\xCEW\x81\x81\x01Q\x83\x82\x01R` \x01a.\xB6V[PP`\0\x91\x01RV[`\0\x81Q\x80\x84Ra.\xEF\x81` \x86\x01` \x86\x01a.\xB3V[`\x1F\x01`\x1F\x19\x16\x92\x90\x92\x01` \x01\x92\x91PPV[\x82\x15\x15\x81R`@` \x82\x01R`\0a\x13\xC1`@\x83\x01\x84a.\xD7V[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x15a/8Wa/8a,\xC1V[P`\x05\x1B` \x01\x90V[\x805`\x03\x81\x10a/QW`\0\x80\xFD[\x91\x90PV[`\0\x82`\x1F\x83\x01\x12a/gW`\0\x80\xFD[\x815` a/wa-O\x83a/\x1EV[\x82\x81R`\x05\x92\x90\x92\x1B\x84\x01\x81\x01\x91\x81\x81\x01\x90\x86\x84\x11\x15a/\x96W`\0\x80\xFD[\x82\x86\x01[\x84\x81\x10\x15a/\xB8Wa/\xAB\x81a/BV[\x83R\x91\x83\x01\x91\x83\x01a/\x9AV[P\x96\x95PPPPPPV[`\0\x80`@\x83\x85\x03\x12\x15a/\xD6W`\0\x80\xFD[\x825g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a/\xEEW`\0\x80\xFD[\x81\x85\x01\x91P\x85`\x1F\x83\x01\x12a0\x02W`\0\x80\xFD[\x815` a0\x12a-O\x83a/\x1EV[\x82\x81R`\x05\x92\x90\x92\x1B\x84\x01\x81\x01\x91\x81\x81\x01\x90\x89\x84\x11\x15a01W`\0\x80\xFD[\x94\x82\x01\x94[\x83\x86\x10\x15a0fW\x855`\x01`\x01`\xE0\x1B\x03\x19\x81\x16\x81\x14a0WW`\0\x80\x81\xFD[\x82R\x94\x82\x01\x94\x90\x82\x01\x90a06V[\x96PP\x86\x015\x92PP\x80\x82\x11\x15a0|W`\0\x80\xFD[Pa.\xA9\x85\x82\x86\x01a/VV[`\0\x80`@\x83\x85\x03\x12\x15a0\x9CW`\0\x80\xFD[PP\x805\x92` \x90\x91\x015\x91PV[cNH{q`\xE0\x1B`\0R`!`\x04R`$`\0\xFD[`\x03\x81\x10a0\xD1Wa0\xD1a0\xABV[\x90RV[`@\x80\x82R\x83Q\x90\x82\x01\x81\x90R`\0\x90` \x90``\x84\x01\x90\x82\x87\x01\x84[\x82\x81\x10\x15a1\x18W\x81Q`\x01`\x01`\xE0\x1B\x03\x19\x16\x84R\x92\x84\x01\x92\x90\x84\x01\x90`\x01\x01a0\xF2V[PPP\x83\x81\x03\x82\x85\x01R\x84Q\x80\x82R\x85\x83\x01\x91\x83\x01\x90`\0[\x81\x81\x10\x15a1TWa1D\x83\x85Qa0\xC1V[\x92\x84\x01\x92\x91\x84\x01\x91`\x01\x01a11V[P\x90\x97\x96PPPPPPPV[` \x80\x82R\x82Q\x82\x82\x01\x81\x90R`\0\x91\x90\x84\x82\x01\x90`@\x85\x01\x90\x84[\x81\x81\x10\x15a1\x99W\x83Q\x83R\x92\x84\x01\x92\x91\x84\x01\x91`\x01\x01a1}V[P\x90\x96\x95PPPPPPV[`\0` \x82\x84\x03\x12\x15a1\xB7W`\0\x80\xFD[P5\x91\x90PV[`\0\x80`\0\x80`\x80\x85\x87\x03\x12\x15a1\xD4W`\0\x80\xFD[\x845a1\xDF\x81a,\x8FV[\x93P` \x85\x015a1\xEF\x81a,\x8FV[\x92P`@\x85\x015a1\xFF\x81a,\x8FV[\x93\x96\x92\x95P\x92\x93``\x015\x92PPV[`\0\x80`\0``\x84\x86\x03\x12\x15a2$W`\0\x80\xFD[\x835a2/\x81a,\x8FV[\x92P` \x84\x015a2?\x81a,\x8FV[\x91Pa2M`@\x85\x01a/BV[\x90P\x92P\x92P\x92V[` \x81\x01a\x0E;\x82\x84a0\xC1V[`\0\x80`\0``\x84\x86\x03\x12\x15a2yW`\0\x80\xFD[\x835a2\x84\x81a,\x8FV[\x95` \x85\x015\x95P`@\x90\x94\x015\x93\x92PPPV[` \x80\x82R`,\x90\x82\x01R\x7FFunction must be called through `@\x82\x01Rk\x19\x19[\x19Y\xD8]\x19X\xD8[\x1B`\xA2\x1B``\x82\x01R`\x80\x01\x90V[` \x80\x82R`,\x90\x82\x01R\x7FFunction must be called through `@\x82\x01Rkactive proxy`\xA0\x1B``\x82\x01R`\x80\x01\x90V[`\0\x80`\0``\x84\x86\x03\x12\x15a3FW`\0\x80\xFD[\x83Qa3Q\x81a,\x8FV[` \x85\x01Q\x90\x93Pa3b\x81a,\x8FV[\x80\x92PP`@\x84\x01Q\x90P\x92P\x92P\x92V[`\0` \x82\x84\x03\x12\x15a3\x86W`\0\x80\xFD[PQ\x91\x90PV[`\0` \x82\x84\x03\x12\x15a3\x9FW`\0\x80\xFD[\x81Qa$\xC8\x81a,\x8FV[`\x01\x80`\xA0\x1B\x03\x85\x16\x81R\x83` \x82\x01R`\x80`@\x82\x01R`\0a3\xD1`\x80\x83\x01\x85a.\xD7V[\x90P`\x02\x83\x10a3\xE3Wa3\xE3a0\xABV[\x82``\x83\x01R\x95\x94PPPPPV[\x80Q\x80\x15\x15\x81\x14a/QW`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15a4\x14W`\0\x80\xFD[a$\xC8\x82a3\xF2V[`\0\x80`@\x83\x85\x03\x12\x15a40W`\0\x80\xFD[a49\x83a3\xF2V[\x91P` \x83\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a4UW`\0\x80\xFD[\x83\x01`\x1F\x81\x01\x85\x13a4fW`\0\x80\xFD[\x80Qa4ta-O\x82a-\x08V[\x81\x81R\x86` \x83\x85\x01\x01\x11\x15a4\x89W`\0\x80\xFD[a4\x9A\x82` \x83\x01` \x86\x01a.\xB3V[\x80\x93PPPP\x92P\x92\x90PV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[\x80\x82\x02\x81\x15\x82\x82\x04\x84\x14\x17a\x0E;Wa\x0E;a4\xA7V[\x81\x81\x03\x81\x81\x11\x15a\x0E;Wa\x0E;a4\xA7V[cNH{q`\xE0\x1B`\0R`2`\x04R`$`\0\xFD[`\0`\x01\x82\x01a5\x0FWa5\x0Fa4\xA7V[P`\x01\x01\x90V[`\x01`\x01`\xE0\x1B\x03\x19\x83\x16\x81R`@\x81\x01a$\xC8` \x83\x01\x84a0\xC1V[cNH{q`\xE0\x1B`\0R`1`\x04R`$`\0\xFD[\x80\x82\x01\x80\x82\x11\x15a\x0E;Wa\x0E;a4\xA7V[\x80Q` \x82\x01Q`\x01`\x01`\xE0\x1B\x03\x19\x80\x82\x16\x92\x91\x90`\x04\x83\x10\x15a5\x8CW\x80\x81\x84`\x04\x03`\x03\x1B\x1B\x83\x16\x16\x93P[PPP\x91\x90PV[\x80Q` \x80\x83\x01Q\x91\x90\x81\x10\x15a5\xB5W`\0\x19\x81` \x03`\x03\x1B\x1B\x82\x16\x91P[P\x91\x90PV[`\0\x82Qa5\xCD\x81\x84` \x87\x01a.\xB3V[\x91\x90\x91\x01\x92\x91PPV[`\xFF\x82\x81\x16\x82\x82\x16\x03\x90\x81\x11\x15a\x0E;Wa\x0E;a4\xA7V[` \x81R`\0a$\xC8` \x83\x01\x84a.\xD7V\xFE6\x08\x94\xA1;\xA1\xA3!\x06g\xC8(I-\xB9\x8D\xCA> v\xCC75\xA9 \xA3\xCAP]8+\xBCAddress: low-level delegate call failed\xA2dipfsX\"\x12 \xD4{\xC8\x07O\xDD\x10#\xC1'\xCDd\xB0\xC0\x97\x19+%J\xEB\xEA~\xC3\xBE\x11;\x03\x94\x884sRdsolcC\0\x08\x13\x003";
1302    /// The bytecode of the contract.
1303    pub static HOPRNODEMANAGEMENTMODULE_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static(
1304        __BYTECODE,
1305    );
1306    #[rustfmt::skip]
1307    const __DEPLOYED_BYTECODE: &[u8] = b"`\x80`@R`\x046\x10a\x01\xC2W`\x005`\xE0\x1C\x80cs\x9CK\x08\x11a\0\xF7W\x80c\xB5sib\x11a\0\x95W\x80c\xDCDjJ\x11a\0dW\x80c\xDCDjJ\x14a\x05@W\x80c\xDFNo\x8A\x14a\x05mW\x80c\xF2\xFD\xE3\x8B\x14a\x05\xA4W\x80c\xFA\x19P\x1D\x14a\x05\xC4W`\0\x80\xFD[\x80c\xB5sib\x14a\x04\xC0W\x80c\xC6\x86\x05\xC8\x14a\x04\xE0W\x80c\xC6\x8C:\x83\x14a\x05\0W\x80c\xDC\x06\x10\x9D\x14a\x05 W`\0\x80\xFD[\x80c\x9D\x95\xF1\xCC\x11a\0\xD1W\x80c\x9D\x95\xF1\xCC\x14a\x04@W\x80c\xA2E\x0F\x89\x14a\x04`W\x80c\xA7l\x9A/\x14a\x04\x80W\x80c\xB2\xB9\x9E\xC9\x14a\x04\xA0W`\0\x80\xFD[\x80cs\x9CK\x08\x14a\x03\xE2W\x80c\x8B\x95\xEC\xCD\x14a\x04\x02W\x80c\x8D\xA5\xCB[\x14a\x04\"W`\0\x80\xFD[\x80cO\x1E\xF2\x86\x11a\x01dW\x80cV\xF5Q\x17\x11a\x01>W\x80cV\xF5Q\x17\x14a\x03HW\x80c`\x97lK\x14a\x03}W\x80cc\xFE;V\x14a\x03\xABW\x80cqP\x18\xA6\x14a\x03\xCDW`\0\x80\xFD[\x80cO\x1E\xF2\x86\x14a\x02\xE4W\x80cR)\x07?\x14a\x02\xF7W\x80cR\xD1\x90-\x14a\x03%W`\0\x80\xFD[\x80c6Y\xCF\xE6\x11a\x01\xA0W\x80c6Y\xCF\xE6\x14a\x02oW\x80cC\x9F\xAB\x91\x14a\x02\x8FW\x80cF\x87!\xA7\x14a\x02\xAFW\x80cJ\x1B\xA4\x08\x14a\x02\xCFW`\0\x80\xFD[\x80c\x01u\x01R\x14a\x01\xC7W\x80c)D\x02\xCC\x14a\x02\x15W\x80c4\x01\xCD\xE8\x14a\x02MW[`\0\x80\xFD[4\x80\x15a\x01\xD3W`\0\x80\xFD[Pa\x02\0a\x01\xE26`\x04a,\xA4V[`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`\xCC` R`@\x90 T`\xFF\x16\x90V[`@Q\x90\x15\x15\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[4\x80\x15a\x02!W`\0\x80\xFD[P`\xC9Ta\x025\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x02\x0CV[4\x80\x15a\x02YW`\0\x80\xFD[Pa\x02ma\x02h6`\x04a,\xA4V[a\x05\xE4V[\0[4\x80\x15a\x02{W`\0\x80\xFD[Pa\x02ma\x02\x8A6`\x04a,\xA4V[a\x05\xFAV[4\x80\x15a\x02\x9BW`\0\x80\xFD[Pa\x02ma\x02\xAA6`\x04a-\x86V[a\x06\xDFV[4\x80\x15a\x02\xBBW`\0\x80\xFD[Pa\x02\0a\x02\xCA6`\x04a-\xBBV[a\t+V[4\x80\x15a\x02\xDBW`\0\x80\xFD[Pa\x02\0`\x01\x81V[a\x02ma\x02\xF26`\x04a.cV[a\t\xC5V[4\x80\x15a\x03\x03W`\0\x80\xFD[Pa\x03\x17a\x03\x126`\x04a-\xBBV[a\n\x91V[`@Qa\x02\x0C\x92\x91\x90a/\x03V[4\x80\x15a\x031W`\0\x80\xFD[Pa\x03:a\x0B2V[`@Q\x90\x81R` \x01a\x02\x0CV[4\x80\x15a\x03TW`\0\x80\xFD[Pa\x03ha\x03c6`\x04a/\xC3V[a\x0B\xE5V[`@\x80Q\x92\x83R` \x83\x01\x91\x90\x91R\x01a\x02\x0CV[4\x80\x15a\x03\x89W`\0\x80\xFD[Pa\x03\x9Da\x03\x986`\x04a0\x89V[a\x0B\xFEV[`@Qa\x02\x0C\x92\x91\x90a0\xD5V[4\x80\x15a\x03\xB7W`\0\x80\xFD[Pa\x03\xC0a\x0C\x0BV[`@Qa\x02\x0C\x91\x90a1aV[4\x80\x15a\x03\xD9W`\0\x80\xFD[Pa\x02ma\x0C\x1CV[4\x80\x15a\x03\xEEW`\0\x80\xFD[Pa\x02ma\x03\xFD6`\x04a1\xA5V[a\x0C0V[4\x80\x15a\x04\x0EW`\0\x80\xFD[Pa\x02ma\x04\x1D6`\x04a,\xA4V[a\x0CCV[4\x80\x15a\x04.W`\0\x80\xFD[P`\x97T`\x01`\x01`\xA0\x1B\x03\x16a\x025V[4\x80\x15a\x04LW`\0\x80\xFD[Pa\x02ma\x04[6`\x04a,\xA4V[a\x0C\x95V[4\x80\x15a\x04lW`\0\x80\xFD[Pa\x02ma\x04{6`\x04a1\xA5V[a\x0C\xA6V[4\x80\x15a\x04\x8CW`\0\x80\xFD[Pa\x02ma\x04\x9B6`\x04a1\xA5V[a\x0C\xB7V[4\x80\x15a\x04\xACW`\0\x80\xFD[Pa\x02ma\x04\xBB6`\x04a,\xA4V[a\x0C\xCAV[4\x80\x15a\x04\xCCW`\0\x80\xFD[Pa\x02ma\x04\xDB6`\x04a1\xA5V[a\rTV[4\x80\x15a\x04\xECW`\0\x80\xFD[Pa\x02ma\x04\xFB6`\x04a1\xBEV[a\r\x8CV[4\x80\x15a\x05\x0CW`\0\x80\xFD[Pa\x02ma\x05\x1B6`\x04a2\x0FV[a\r\xA8V[4\x80\x15a\x05,W`\0\x80\xFD[Pa\x02ma\x05;6`\x04a1\xA5V[a\r\xC2V[4\x80\x15a\x05LW`\0\x80\xFD[Pa\x05`a\x05[6`\x04a0\x89V[a\x0E\x1DV[`@Qa\x02\x0C\x91\x90a2VV[4\x80\x15a\x05yW`\0\x80\xFD[Pa\x05\x8Da\x05\x886`\x04a,\xA4V[a\x0EAV[`@\x80Q\x92\x15\x15\x83R` \x83\x01\x91\x90\x91R\x01a\x02\x0CV[4\x80\x15a\x05\xB0W`\0\x80\xFD[Pa\x02ma\x05\xBF6`\x04a,\xA4V[a\x0EXV[4\x80\x15a\x05\xD0W`\0\x80\xFD[Pa\x02ma\x05\xDF6`\x04a2dV[a\x0E\xCEV[a\x05\xECa\x0E\xE3V[a\x05\xF7`\xCA\x82a\x0F=V[PV[`\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\x160\x03a\x06KW`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x06B\x90a2\x99V[`@Q\x80\x91\x03\x90\xFD[\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\x16a\x06\x94`\0\x80Q` a6\x04\x839\x81Q\x91RT`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x14a\x06\xBAW`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x06B\x90a2\xE5V[a\x06\xC3\x81a\x0F\xA3V[`@\x80Q`\0\x80\x82R` \x82\x01\x90\x92Ra\x05\xF7\x91\x83\x91\x90a\x0F\xABV[`\0Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x80\x15a\x06\xFFWP`\0T`\x01`\xFF\x90\x91\x16\x10[\x80a\x07\x19WP0;\x15\x80\x15a\x07\x19WP`\0T`\xFF\x16`\x01\x14[a\x07|W`@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\x01a\x06BV[`\0\x80T`\xFF\x19\x16`\x01\x17\x90U\x80\x15a\x07\x9FW`\0\x80Ta\xFF\0\x19\x16a\x01\0\x17\x90U[`\0\x80`\0\x84\x80` \x01\x90Q\x81\x01\x90a\x07\xB8\x91\x90a31V[\x91\x94P\x92P\x90P`\x01`\x01`\xA0\x1B\x03\x83\x16\x15\x80a\x07\xDCWP`\x01`\x01`\xA0\x1B\x03\x82\x16\x15[\x15a\x07\xFAW`@Qc\x86y\x15\xAB`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x81`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16\x03a\x08,W`@QcY\x8A\x0E!`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0a\x08@`\x97T`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x14\x15\x80a\x08`WP`\xC9T`\x01`\x01`\xA0\x1B\x03\x16\x15\x15[\x15a\x08}W`@Qb\xDC\x14\x9F`\xE4\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\xC9\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x84\x16\x17\x90Ua\x08\xA1\x81a\x11\x16V[a\x08\xAA\x83a\x11\xDCV[`@Q`\x01`\x01`\xA0\x1B\x03\x83\x16\x90\x7F_\xE6\xAA\xBFNy\x08C\xDFC\xAE\x0E\"\xB5\x86 \x06o\xB3\x89)[\xED\xC0j\x92\xDFl;(w}\x90`\0\x90\xA2PPP\x80\x15a\t'W`\0\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[PPV[3`\0\x90\x81R`\xCC` R`@\x81 T`\xFF\x16a\t[W`@Qc\x1F\xB1\xD3\xE5`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\xC9Ta\tx\x90`\xCA\x90`\x01`\x01`\xA0\x1B\x03\x16\x88\x88\x88\x88\x88a\x12.V[a\t\xBB\x86\x86\x86\x86\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RP\x88\x92Pa\x12\xD9\x91PPV[\x96\x95PPPPPPV[`\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\x160\x03a\n\rW`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x06B\x90a2\x99V[\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\x16a\nV`\0\x80Q` a6\x04\x839\x81Q\x91RT`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x14a\n|W`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x06B\x90a2\xE5V[a\n\x85\x82a\x0F\xA3V[a\t'\x82\x82`\x01a\x0F\xABV[3`\0\x90\x81R`\xCC` R`@\x81 T``\x90`\xFF\x16a\n\xC4W`@Qc\x1F\xB1\xD3\xE5`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\xC9Ta\n\xE1\x90`\xCA\x90`\x01`\x01`\xA0\x1B\x03\x16\x89\x89\x89\x89\x89a\x12.V[a\x0B$\x87\x87\x87\x87\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RP\x89\x92Pa\x13\xC9\x91PPV[\x91P\x91P\x95P\x95\x93PPPPV[`\x000`\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\x0B\xD2W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`8`$\x82\x01R\x7FUUPSUpgradeable: must not be cal`D\x82\x01R\x7Fled through delegatecall\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06BV[P`\0\x80Q` a6\x04\x839\x81Q\x91R\x90V[`\0\x80a\x0B\xF2\x84\x84a\x14\xC3V[\x91P\x91P[\x92P\x92\x90PV[``\x80a\x0B\xF2\x84\x84a\x15\xD7V[``a\x0C\x17`\xCAa\x17\x86V[\x90P\x90V[a\x0C$a\x0E\xE3V[a\x0C.`\0a\x11\xDCV[V[a\x0C8a\x0E\xE3V[a\x05\xF7`\xCA\x82a\x17\xE2V[a\x0CKa\x0E\xE3V[`\xC9\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x83\x16\x90\x81\x17\x90\x91U`@Q\x7F_\xE6\xAA\xBFNy\x08C\xDFC\xAE\x0E\"\xB5\x86 \x06o\xB3\x89)[\xED\xC0j\x92\xDFl;(w}\x90`\0\x90\xA2PV[a\x0C\x9Da\x0E\xE3V[a\x05\xF7\x81a\x18\xA2V[a\x0C\xAEa\x0E\xE3V[a\x05\xF7\x81a\x11\x16V[a\x0C\xBFa\x0E\xE3V[a\x05\xF7`\xCA\x82a\x19(V[a\x0C\xD2a\x0E\xE3V[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\xCC` R`@\x90 T`\xFF\x16a\r\x0BW`@Qc\x1F\xB1\xD3\xE5`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x81\x81R`\xCC` R`@\x80\x82 \x80T`\xFF\x19\x16\x90UQ\x7F\xCF\xC2Af\xDBK\xB6w\xE8W\xCA\xCA\xBD\x15A\xFB+0dP!\xB2|Q0A\x95\x89\xB8M\xB5+\x91\x90\xA2PV[a\r\\a\x0E\xE3V[`\0a\rh\x82``\x1C\x90V[\x90Pa\rs\x81a\x18\xA2V[a\r~`\xCA\x83a\x19\xD9V[a\t'`\xCA\x82\x83`\x01a\x1A\x8BV[a\r\x94a\x0E\xE3V[a\r\xA2`\xCA\x85\x85\x85\x85a\x1B'V[PPPPV[a\r\xB0a\x0E\xE3V[a\r\xBD`\xCA\x84\x84\x84a\x1A\x8BV[PPPV[a\r\xCAa\x0E\xE3V[`\0a\r\xD6\x82``\x1C\x90V[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\xCC` R`@\x90 T\x90\x91P`\xFF\x16a\x0E\x12W`@Qc\x1F\xB1\xD3\xE5`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\t'`\xCA\x83a\x19\xD9V[`\0\x82\x81R`\xCD` \x90\x81R`@\x80\x83 \x84\x84R\x90\x91R\x90 T`\xFF\x16[\x92\x91PPV[`\0\x80a\x0EO`\xCA\x84a\x1C\xABV[\x91P\x91P\x91P\x91V[a\x0E`a\x0E\xE3V[`\x01`\x01`\xA0\x1B\x03\x81\x16a\x0E\xC5W`@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\x06BV[a\x05\xF7\x81a\x11\xDCV[a\x0E\xD6a\x0E\xE3V[a\r\xBD`\xCA\x84\x84\x84a\x1D\x0EV[`\x97T`\x01`\x01`\xA0\x1B\x03\x163\x14a\x0C.W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01\x81\x90R`$\x82\x01R\x7FOwnable: caller is not the owner`D\x82\x01R`d\x01a\x06BV[`\0a\x0FI\x83\x83a\x1EUV[\x90P\x80\x15a\x0F\x8AW`@Q`\x01`\x01`\xA0\x1B\x03\x83\x16\x90\x7F\r\xFC\xE1\xEAK\xA1\xEE\xBA\x89\x1F\xFB*\x06g\x90\xFB\xC2\x93\xA9\xE5\x17\xFEa\xD4\x9D\x15j0\x16_\x93\xF3\x90`\0\x90\xA2PPPV[`@QcJ\x89\x03!`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x05\xF7a\x0E\xE3V[\x7FI\x10\xFD\xFA\x16\xFE\xD3&\x0E\xD0\xE7\x14\x7F|\xC6\xDA\x11\xA6\x02\x08\xB5\xB9@m\x12\xA65aO\xFD\x91CT`\xFF\x16\x15a\x0F\xDEWa\r\xBD\x83a\x1F}V[\x82`\x01`\x01`\xA0\x1B\x03\x16cR\xD1\x90-`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x92PPP\x80\x15a\x108WP`@\x80Q`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01\x90\x92Ra\x105\x91\x81\x01\x90a3tV[`\x01[a\x10\x9BW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`.`$\x82\x01R\x7FERC1967Upgrade: new implementati`D\x82\x01Rmon is not UUPS`\x90\x1B`d\x82\x01R`\x84\x01a\x06BV[`\0\x80Q` a6\x04\x839\x81Q\x91R\x81\x14a\x11\nW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`)`$\x82\x01R\x7FERC1967Upgrade: unsupported prox`D\x82\x01Rh\x1AXX\x9B\x19UURQ`\xBA\x1B`d\x82\x01R`\x84\x01a\x06BV[Pa\r\xBD\x83\x83\x83a \x19V[`\0a\x11\"\x82``\x1C\x90V[\x90P`\0\x81`\x01`\x01`\xA0\x1B\x03\x16c\xFC\x0CTj`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x11dW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x11\x88\x91\x90a3\x8DV[\x90Pa\x11\xB3`\xCAk\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16``\x85\x90\x1B`\x01`\x01``\x1B\x03\x19\x16\x17a\x17\xE2V[a\r\xBD`\xCAk\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x85\x16``\x84\x90\x1B`\x01`\x01``\x1B\x03\x19\x16\x17a\x19(V[`\x97\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`\0\x90\xA3PPV[\x84`\x01`\x01`\xA0\x1B\x03\x16\x86`\x01`\x01`\xA0\x1B\x03\x16\x03a\x12\x8CWa\x12\x87\x87\x84\x84\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa >\x92PPPV[a\x12\xD0V[a\x12\xD0\x87\x86\x86\x86\x86\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RP\x88\x92Pa \xDF\x91PPV[PPPPPPPV[`\0a\x12\xED`\x97T`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16cF\x87!\xA7\x86\x86\x86\x86`@Q\x85c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x13\x1E\x94\x93\x92\x91\x90a3\xAAV[` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a\x13=W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x13a\x91\x90a4\x02V[\x90P\x80\x15a\x13\x97W`@Q\x7FN.\x86\xD2\x13u\xEB\xCB\xF6\xE9=\xF5\xEB\xDDZ\x91[\xF80$Y\x04\xC3\xB5OH\xAD\xF0\x17\n\xAEK\x90`\0\x90\xA1a\x13\xC1V[`@Q\x7F\xC2M\x93`\x8A\x03\xD2c\xFF\x19\x1Dvw\x14\x1F^\x94\xC4\x96\xE5\x93\x10\x8F:\xAE\x0C\xB5\xB7\x04\x94\xC4\xD3\x90`\0\x90\xA1[\x94\x93PPPPV[`\0``a\x13\xDF`\x97T`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\x01`\x01`\xA0\x1B\x03\x16cR)\x07?\x87\x87\x87\x87`@Q\x85c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a\x14\x10\x94\x93\x92\x91\x90a3\xAAV[`\0`@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a\x14/W=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01`@Ra\x14W\x91\x90\x81\x01\x90a4\x1DV[\x90\x92P\x90P\x81\x15a\x14\x90W`@Q\x7FN.\x86\xD2\x13u\xEB\xCB\xF6\xE9=\xF5\xEB\xDDZ\x91[\xF80$Y\x04\xC3\xB5OH\xAD\xF0\x17\n\xAEK\x90`\0\x90\xA1a\x14\xBAV[`@Q\x7F\xC2M\x93`\x8A\x03\xD2c\xFF\x19\x1Dvw\x14\x1F^\x94\xC4\x96\xE5\x93\x10\x8F:\xAE\x0C\xB5\xB7\x04\x94\xC4\xD3\x90`\0\x90\xA1[\x94P\x94\x92PPPV[\x81Q`\0\x90\x81\x90`\x07\x81\x11\x15a\x14\xECW`@Qc\x17\xA4\xD9\x87`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x83Q\x85Q\x14a\x15\x0EW`@Qct\xF4\xD57`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80[\x82\x81\x10\x15a\x15qWa\x15%\x81` a4\xBDV[a\x150\x90`\xE0a4\xD4V[`\xE0\x88\x83\x81Q\x81\x10a\x15DWa\x15Da4\xE7V[` \x02` \x01\x01Q`\x01`\x01`\xE0\x1B\x03\x19\x16\x90\x1C\x90\x1B\x82\x17\x91P\x80\x80a\x15i\x90a4\xFDV[\x91PPa\x15\x12V[P`\0[\x82\x81\x10\x15a\x15\xCCWa\x15\x88\x81`\x02a4\xBDV[\x86\x82\x81Q\x81\x10a\x15\x9AWa\x15\x9Aa4\xE7V[` \x02` \x01\x01Q`\x02\x81\x11\x15a\x15\xB3Wa\x15\xB3a0\xABV[\x90\x1B\x91\x90\x91\x17\x90\x80a\x15\xC4\x81a4\xFDV[\x91PPa\x15uV[P\x95\x90\x94P\x92PPPV[``\x80`\x07\x83\x11\x15a\x15\xFCW`@Qc\x17\xA4\xD9\x87`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x16\x15Wa\x16\x15a,\xC1V[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x16>W\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x91P\x82g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x16ZWa\x16Za,\xC1V[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x16\x83W\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x90P`\0[\x83\x81\x10\x15a\x16\xEBW`\xE0a\x16\x9E\x82` a4\xBDV[a\x16\xA9\x90`\xE0a4\xD4V[\x86\x90\x1C\x90\x1B\x83\x82\x81Q\x81\x10a\x16\xC0Wa\x16\xC0a4\xE7V[`\x01`\x01`\xE0\x1B\x03\x19\x90\x92\x16` \x92\x83\x02\x91\x90\x91\x01\x90\x91\x01R\x80a\x16\xE3\x81a4\xFDV[\x91PPa\x16\x89V[P`\0[\x83\x81\x10\x15a\x17~W`\xFEa\x17\x04\x82`\x02a4\xBDV[a\x17\x0F\x90`\xFEa4\xD4V[\x86`\0\x1C\x90\x1B\x90\x1C`\xFF\x16`\x02\x81\x11\x15a\x17+Wa\x17+a0\xABV[\x82\x82\x81Q\x81\x10a\x17=Wa\x17=a4\xE7V[` \x02` \x01\x01\x90`\x02\x81\x11\x15a\x17VWa\x17Va0\xABV[\x90\x81`\x02\x81\x11\x15a\x17iWa\x17ia0\xABV[\x90RP\x80a\x17v\x81a4\xFDV[\x91PPa\x16\xEFV[P\x92P\x92\x90PV[``\x81`\0\x01\x80T\x80` \x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80T\x80\x15a\x17\xD6W` \x02\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R` \x01\x90`\x01\x01\x90\x80\x83\x11a\x17\xC2W[PPPPP\x90P\x91\x90PV[`\0a\x17\xEE\x82``\x1C\x90V[\x90P`\x01`\x01`\xA0\x1B\x03\x81\x16a\x18\x17W`@Qc\x86y\x15\xAB`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x18!\x83\x82a#\x1FV[\x15a\x18?W`@Qct`>\x95`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0a\x18L\x83`\x01a#@V[\x90Pa\x18X\x84\x82a#\xD2V[P\x81`\x01`\x01`\xA0\x1B\x03\x16\x7F_\xFB\x06\xB0\xB0\xE8\xADj\x8F<X1\xD4\x99\xDF\xA6\x12\xD9\xC9\xD4\xDC\x10{\xBDf\xF1\x8Fa\xA6I.q\x82`@Qa\x18\x94\x91\x81R` \x01\x90V[`@Q\x80\x91\x03\x90\xA2PPPPV[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\xCC` R`@\x90 T`\xFF\x16\x15a\x18\xDCW`@Qc8\xE8\x16\xA5`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x81\x81R`\xCC` R`@\x80\x82 \x80T`\xFF\x19\x16`\x01\x17\x90UQ\x7F\xB2]\x03\xAA\xF3\x08\xD7)\x17\t\xBE\x1E\xA2\x8B\x80\x04c\xCF:\x9ALJUU\xD73:\x96L\x1D\xFE\xBD\x91\x90\xA2PV[`\0a\x194\x82``\x1C\x90V[\x90P`\x01`\x01`\xA0\x1B\x03\x81\x16a\x19]W`@Qc\x86y\x15\xAB`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x19g\x83\x82a#\x1FV[\x15a\x19\x85W`@Qct`>\x95`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0a\x19\x91\x83\x82a#@V[\x90Pa\x19\x9D\x84\x82a#\xD2V[P\x81`\x01`\x01`\xA0\x1B\x03\x16\x7F\xAA\xF2k\xB1*\xA8\x9E\xE9k\xBE\x19fzj\x05W'\xB7]?n\xD7\xB8\xB6\x11\xEFe\x19\x18\x02\t\xD6\x82`@Qa\x18\x94\x91\x81R` \x01\x90V[`\0a\x19\xE5\x82``\x1C\x90V[\x90P`\x01`\x01`\xA0\x1B\x03\x81\x16a\x1A\x0EW`@Qc\x86y\x15\xAB`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x1A\x18\x83\x82a#\x1FV[\x15a\x1A6W`@Qct`>\x95`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0a\x1AC\x83`\x02a#@V[\x90Pa\x1AO\x84\x82a#\xD2V[P\x81`\x01`\x01`\xA0\x1B\x03\x16\x7F\x1E\xE2y\x1F,\xAF\x0E\x92\xA9\xDC2\xA3z\x9E\xA5:\xB6\xACzo\xB8\xF2\xD0\x90\xE5:\x06}:C\xF6\xAC\x82`@Qa\x18\x94\x91\x81R` \x01\x90V[`\0\x80\x80R`\x03\x85\x01` R`@\x81 \x82\x91a\x1A\xA7\x86\x86a$>V[\x81R` \x81\x01\x91\x90\x91R`@\x01`\0 \x80T`\xFF\x19\x16`\x01\x83`\x02\x81\x11\x15a\x1A\xD1Wa\x1A\xD1a0\xABV[\x02\x17\x90UP\x81`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16\x7Ft\x87S\r\xDF\xF1 y\x95\x05\xE5+\x1B\x19\xB6\x93?\x85\xA9\xEE\xAE\x92 \xC8\nz\xD7\xC4)\xB6\x12\xAE\x83`@Qa\x1B\x19\x91\x90a2VV[`@Q\x80\x91\x03\x90\xA3PPPPV[`\0\x80a\x1B5\x83`\x02a\x15\xD7V[\x91P\x91P`\0[`\x02\x81\x10\x15a\x1C\xA1W\x82Q`\0\x90\x84\x90\x83\x90\x81\x10a\x1B\\Wa\x1B\\a4\xE7V[` \x02` \x01\x01Q`\x01`\x01`\xE0\x1B\x03\x19\x16\x14a\x1C\x8FW`\0a\x1B\x98\x87\x85\x84\x81Q\x81\x10a\x1B\x8BWa\x1B\x8Ba4\xE7V[` \x02` \x01\x01Qa$\x83V[\x90P\x82\x82\x81Q\x81\x10a\x1B\xACWa\x1B\xACa4\xE7V[` \x02` \x01\x01Q\x89`\x03\x01`\0\x83\x81R` \x01\x90\x81R` \x01`\0 `\0a\x1B\xD5\x8B\x8Ba$>V[\x81R` \x81\x01\x91\x90\x91R`@\x01`\0 \x80T`\xFF\x19\x16`\x01\x83`\x02\x81\x11\x15a\x1B\xFFWa\x1B\xFFa0\xABV[\x02\x17\x90UP\x85`\x01`\x01`\xA0\x1B\x03\x16\x87`\x01`\x01`\xA0\x1B\x03\x16\x89`\x01`\x01`\xA0\x1B\x03\x16\x7F\xA3\xDFq\x04 \xB0\x1C\xC3\x0F\xF3\x000\x9A\xBB\xC7\xFA\xDDF0\xD4\xAB8[\x0FZ\x12o\xB4\xBA\xBEv+\x87\x86\x81Q\x81\x10a\x1CUWa\x1CUa4\xE7V[` \x02` \x01\x01Q\x87\x87\x81Q\x81\x10a\x1CoWa\x1Coa4\xE7V[` \x02` \x01\x01Q`@Qa\x1C\x85\x92\x91\x90a5\x16V[`@Q\x80\x91\x03\x90\xA4P[\x80a\x1C\x99\x81a4\xFDV[\x91PPa\x1B<V[PPPPPPPPV[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\x01\x83\x01` R`@\x81 T\x81\x90\x80\x82\x03a\x1C\xDCW`\0\x80\x92P\x92PPa\x0B\xF7V[`\x01\x85a\x1C\xE9\x82\x84a4\xD4V[\x81T\x81\x10a\x1C\xF9Wa\x1C\xF9a4\xE7V[\x90`\0R` `\0 \x01T\x92P\x92PPa\x0B\xF7V[`\0\x80a\x1D\x1C\x83`\x07a\x15\xD7V[\x91P\x91P`\0[`\x07\x81\x10\x15a\x12\xD0W\x82Q`\0\x90\x84\x90\x83\x90\x81\x10a\x1DCWa\x1DCa4\xE7V[` \x02` \x01\x01Q`\x01`\x01`\xE0\x1B\x03\x19\x16\x14a\x1ECW`\0a\x1Dr\x87\x85\x84\x81Q\x81\x10a\x1B\x8BWa\x1B\x8Ba4\xE7V[\x90P\x82\x82\x81Q\x81\x10a\x1D\x86Wa\x1D\x86a4\xE7V[` \x90\x81\x02\x91\x90\x91\x01\x81\x01Q`\0\x83\x81R`\x03\x8B\x01\x83R`@\x80\x82 \x8A\x83R\x90\x93R\x91\x90\x91 \x80T`\xFF\x19\x16`\x01\x83`\x02\x81\x11\x15a\x1D\xC6Wa\x1D\xC6a0\xABV[\x02\x17\x90UP\x85\x87`\x01`\x01`\xA0\x1B\x03\x16\x7F\xF2\xFF\xD4\xF0\x9DX\xD0h$\x18\x803\xD31\x8D\x06\xEB\x95{\xFB\x1A\x8F\xFE\xD9\xAFx\xE1\xF1\x91h\xB9\x04\x86\x85\x81Q\x81\x10a\x1E\tWa\x1E\ta4\xE7V[` \x02` \x01\x01Q\x86\x86\x81Q\x81\x10a\x1E#Wa\x1E#a4\xE7V[` \x02` \x01\x01Q`@Qa\x1E9\x92\x91\x90a5\x16V[`@Q\x80\x91\x03\x90\xA3P[\x80a\x1EM\x81a4\xFDV[\x91PPa\x1D#V[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\x01\x83\x01` R`@\x81 T\x80\x15a\x1FsW`\0a\x1E\x83`\x01\x83a4\xD4V[\x85T\x90\x91P`\0\x90a\x1E\x97\x90`\x01\x90a4\xD4V[\x90P\x81\x81\x14a\x1F\x15W`\0\x86`\0\x01\x82\x81T\x81\x10a\x1E\xB7Wa\x1E\xB7a4\xE7V[\x90`\0R` `\0 \x01T\x90P\x80\x87`\0\x01\x84\x81T\x81\x10a\x1E\xDAWa\x1E\xDAa4\xE7V[\x90`\0R` `\0 \x01\x81\x90UP\x83\x87`\x01\x01`\0a\x1E\xF9\x84``\x1C\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x81\x01\x91\x90\x91R`@\x01`\0 UP[\x85T\x86\x90\x80a\x1F&Wa\x1F&a54V[`\x01\x90\x03\x81\x81\x90`\0R` `\0 \x01`\0\x90U\x90U\x85`\x01\x01`\0\x86`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x01\x90\x81R` \x01`\0 `\0\x90U`\x01\x93PPPPa\x0E;V[`\0\x91PPa\x0E;V[`\x01`\x01`\xA0\x1B\x03\x81\x16;a\x1F\xEAW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`-`$\x82\x01R\x7FERC1967: new implementation is n`D\x82\x01Rl\x1B\xDD\x08\x18H\x18\xDB\xDB\x9D\x1C\x98X\xDD`\x9A\x1B`d\x82\x01R`\x84\x01a\x06BV[`\0\x80Q` a6\x04\x839\x81Q\x91R\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16\x91\x90\x91\x17\x90UV[a \"\x83a$\xCFV[`\0\x82Q\x11\x80a /WP\x80[\x15a\r\xBDWa\r\xA2\x83\x83a%\x0FV[`\0\x80`\0```\0\x80`$\x87\x01Q\x90P\x80` \x14a pW`@Qc~\xD1\x117`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`d[\x87Q\x81\x10\x15a \xD4W\x80\x88\x01Q`\xF8\x1C\x96P`\x01\x81\x01\x88\x01Q``\x1C\x95P`\x15\x81\x01\x88\x01Q\x94P`5\x81\x01\x88\x01Q\x92P`5\x81\x01\x88\x01\x93Pa \xB8\x89\x87\x87\x87\x8Ba \xDFV[a \xC3\x83`Ua5JV[a \xCD\x90\x82a5JV[\x90Pa sV[PPPPPPPPPV[\x81Q\x15\x80\x15\x90a \xF0WP`\x04\x82Q\x10[\x15a!\x0EW`@Qc#B`\x91`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0a!\x1A\x86\x86a%4V[\x90Pa!'\x84\x83\x83a%\x9FV[`\0a!2\x84a5]V[\x90P`\0a!B\x85Q\x84\x84a&AV[\x90P`\0\x81`\x03\x81\x11\x15a!XWa!Xa0\xABV[\x03a!vW`@QcXr07`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x03\x81`\x03\x81\x11\x15a!\x8AWa!\x8Aa0\xABV[\x03a!\x97WPPPa#\x18V[`\0\x80a!\xA3\x85a'\xE9V[`\x02\x81\x11\x15a!\xB4Wa!\xB4a0\xABV[\x03a!\xD5Wa!\xCE\x89a!\xC7\x8A\x86a$\x83V[\x85\x89a(\x04V[\x90Pa\"9V[`\x01a!\xE0\x85a'\xE9V[`\x02\x81\x11\x15a!\xF1Wa!\xF1a0\xABV[\x03a\"\x0BWa!\xCE\x89a\"\x04\x8A\x86a$\x83V[\x85\x89a(\x9BV[`\x02a\"\x16\x85a'\xE9V[`\x02\x81\x11\x15a\"'Wa\"'a0\xABV[\x03a\"9Wa\"6\x89\x89a)\xCAV[\x90P[`\x02\x81`\x02\x81\x11\x15a\"MWa\"Ma0\xABV[\x14\x80a\"\x86WP`\0\x81`\x02\x81\x11\x15a\"hWa\"ha0\xABV[\x14\x80\x15a\"\x86WP`\x01\x82`\x03\x81\x11\x15a\"\x84Wa\"\x84a0\xABV[\x14[\x15a\"\xA4W`@Qc\x86M\xD1\xE7`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x81`\x02\x81\x11\x15a\"\xB8Wa\"\xB8a0\xABV[\x14\x80a\"\xF1WP`\0\x81`\x02\x81\x11\x15a\"\xD3Wa\"\xD3a0\xABV[\x14\x80\x15a\"\xF1WP`\x02\x82`\x03\x81\x11\x15a\"\xEFWa\"\xEFa0\xABV[\x14[\x15a\"\xFFWPPPPa#\x18V[`@Qc\x08\xD5\xA8\xB1`\xE3\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PPPPPV[`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`\x01\x91\x90\x91\x01` R`@\x90 T\x15\x15\x90V[`\0\x80\x80`\x01\x84`\x02\x81\x11\x15a#XWa#Xa0\xABV[\x03a#pWPj\xFF\0\0\0\0\0\0\0\0\xFF\xFF\x19a#\xABV[`\0\x84`\x02\x81\x11\x15a#\x84Wa#\x84a0\xABV[\x03a#\x9CWPj\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\0\0\x19a#\xABV[Pj\xFF\0\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19[\x80\x85\x16\x91P`P\x84`\x02\x81\x11\x15a#\xC4Wa#\xC4a0\xABV[\x90\x1B\x91\x90\x91\x17\x94\x93PPPPV[`\0a#\xE7\x83a#\xE2\x84``\x1C\x90V[a#\x1FV[a$6W\x82T`\x01\x81\x81\x01\x85U`\0\x85\x81R` \x81 \x90\x92\x01\x84\x90U\x84T\x91\x90\x85\x01\x90a$\x14\x85``\x1C\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x81\x01\x91\x90\x91R`@\x01`\0 UP`\x01a\x0E;V[P`\0a\x0E;V[`@Q`\x01`\x01``\x1B\x03\x19``\x84\x81\x1B\x82\x16` \x84\x01R\x83\x90\x1B\x16`4\x82\x01R`\0\x90`H\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P\x92\x91PPV[`@Q`\x01`\x01``\x1B\x03\x19``\x84\x90\x1B\x16` \x82\x01R`\x01`\x01`\xE0\x1B\x03\x19\x82\x16`4\x82\x01R`\0\x90`8\x01`@Q` \x81\x83\x03\x03\x81R\x90`@Ra$\xC8\x90a5\x94V[\x93\x92PPPV[a$\xD8\x81a\x1F}V[`@Q`\x01`\x01`\xA0\x1B\x03\x82\x16\x90\x7F\xBC|\xD7Z \xEE'\xFD\x9A\xDE\xBA\xB3 A\xF7U!M\xBCk\xFF\xA9\x0C\xC0\"[9\xDA.\\-;\x90`\0\x90\xA2PV[``a$\xC8\x83\x83`@Q\x80``\x01`@R\x80`'\x81R` \x01a6$`'\x919a)\xFEV[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\x01\x83\x01` R`@\x81 T\x80\x82\x03a%oW`@Qc-\x05\x19\xAD`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[\x83a%{`\x01\x83a4\xD4V[\x81T\x81\x10a%\x8BWa%\x8Ba4\xE7V[\x90`\0R` `\0 \x01T\x91PP\x92\x91PPV[`\x01a%\xAA\x82a*lV[`\x01\x81\x11\x15a%\xBBWa%\xBBa0\xABV[\x14a%\xD9W`@Qc;\xCD\x10+`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x01\x82`\x01\x81\x11\x15a%\xEDWa%\xEDa0\xABV[\x03a&\x0BW`@Qc\x06\xC4\xA1\xC7`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0\x83\x11\x80\x15a&#WPa&!\x81`\x02a*\x87V[\x15[\x15a\r\xBDW`@Qc\t\xE9\xCDI`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0\x80a&M\x84a*\xBDV[\x90P\x84\x15\x80a&dWP`\x01`\x01`\xE0\x1B\x03\x19\x83\x16\x15[\x80a&\x80WP`\x03\x81`\x03\x81\x11\x15a&~Wa&~a0\xABV[\x14[\x80a&\x9CWP`\0\x81`\x03\x81\x11\x15a&\x9AWa&\x9Aa0\xABV[\x14[\x15a&\xA8W\x90Pa$\xC8V[`\0cy\x93\xB9G`\xE1\x1B`\x01`\x01`\xE0\x1B\x03\x19\x85\x16\x01a&\xD4Wa&\xCD\x85`\0a*\xD8V[\x90Pa'\xBFV[c\xAB]\x12\x0B`\xE0\x1B`\x01`\x01`\xE0\x1B\x03\x19\x85\x16\x01a&\xF7Wa&\xCD\x85`\x02a*\xD8V[cBY\xA0\xBB`\xE0\x1B`\x01`\x01`\xE0\x1B\x03\x19\x85\x16\x01a'\x1AWa&\xCD\x85`\x03a*\xD8V[c\x9A\xEA\xEBA`\xE0\x1B`\x01`\x01`\xE0\x1B\x03\x19\x85\x16\x01a'=Wa&\xCD\x85`\x04a*\xD8V[c\xF5A:q`\xE0\x1B`\x01`\x01`\xE0\x1B\x03\x19\x85\x16\x01a'`Wa&\xCD\x85`\x05a*\xD8V[c\xF6\xA1XM`\xE0\x1B`\x01`\x01`\xE0\x1B\x03\x19\x85\x16\x01a'\x83Wa&\xCD\x85`\x07a*\xD8V[c2\x13\"\x1D`\xE1\x1B`\x01`\x01`\xE0\x1B\x03\x19\x85\x16\x01a'\xA6Wa&\xCD\x85`\x08a*\xD8V[`@Qc\x18\xF4\xC1#`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0\x81`\x04\x81\x11\x15a'\xD3Wa'\xD3a0\xABV[\x03a'\xE0WP\x90Pa$\xC8V[a\t\xBB\x81a+,V[`\0`\xFF`P\x83\x90\x1C\x16`\x02\x81\x11\x15a\x0E;Wa\x0E;a0\xABV[`\0`\x01`\x01`\xE0\x1B\x03\x19\x83\x16c\t^\xA7\xB3`\xE0\x1B\x14\x80\x15\x90a(8WP`\x01`\x01`\xE0\x1B\x03\x19\x83\x16cM\xEC\xDD\xE3`\xE1\x1B\x14\x15[\x15a(VW`@Qc\x18\xF4\xC1#`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0a(c`\0\x84a+\x86V[\x90P`\0a(q3\x83a$>V[`\0\x87\x81R`\x03\x89\x01` \x90\x81R`@\x80\x83 \x93\x83R\x92\x90R T`\xFF\x16\x92PPP\x94\x93PPPPV[`\0\x80a(\xA9`\0\x84a+\x86V[\x90P`\x01`\x01`\xA0\x1B\x03\x81\x163\x14a(\xD4W`@Qcn\xB01_`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0cy\x93\xB9G`\xE1\x1B`\x01`\x01`\xE0\x1B\x03\x19\x86\x16\x01a)\0Wa(\xF9`\x01\x85a+\x86V[\x90Pa)\xA1V[c\xAB]\x12\x0B`\xE0\x1B`\x01`\x01`\xE0\x1B\x03\x19\x86\x16\x01a)9W`\0a)%`\x01\x86a+\x86V[\x90Pa)1\x81\x84a$>V[\x91PPa)\xA1V[`\x01`\x01`\xE0\x1B\x03\x19\x85\x16c\xBD\xA6_E`\xE0\x1B\x14\x80a)hWP`\x01`\x01`\xE0\x1B\x03\x19\x85\x16ce\x15\x14\xBF`\xE0\x1B\x14[\x80a)\x83WP`\x01`\x01`\xE0\x1B\x03\x19\x85\x16c\n\xBE\xC5\x8F`\xE0\x1B\x14[\x15a'\xA6W`\0a)\x95`\x01\x86a+\x86V[\x90Pa)1\x83\x82a$>V[`\0\x86\x81R`\x03\x88\x01` \x90\x81R`@\x80\x83 \x93\x83R\x92\x90R T`\xFF\x16\x91PP\x94\x93PPPPV[`\0\x80a)\xD73\x84a$>V[`\0\x80\x80R`\x03\x86\x01` \x90\x81R`@\x80\x83 \x93\x83R\x92\x90R T`\xFF\x16\x91PP\x92\x91PPV[```\0\x80\x85`\x01`\x01`\xA0\x1B\x03\x16\x85`@Qa*\x1B\x91\x90a5\xBBV[`\0`@Q\x80\x83\x03\x81\x85Z\xF4\x91PP=\x80`\0\x81\x14a*VW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a*[V[``\x91P[P\x91P\x91Pa\t\xBB\x86\x83\x83\x87a+\xF1V[`\0`\xFF`X\x83\x90\x1C\x16`\x01\x81\x11\x15a\x0E;Wa\x0E;a0\xABV[`\0\x81`\x02\x81\x11\x15a*\x9BWa*\x9Ba0\xABV[a*\xA4\x84a'\xE9V[`\x02\x81\x11\x15a*\xB5Wa*\xB5a0\xABV[\x14\x93\x92PPPV[`\0`\xFF`H\x83\x90\x1C\x16`\x03\x81\x11\x15a\x0E;Wa\x0E;a0\xABV[`\0`\t\x82\x10a*\xFBW`@Qc\xB4J\xF9\xAF`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0a+\x08\x83`\x08a4\xBDV[a+\x13\x90`\xB8a5JV[\x90P\x83\x81\x1B`\xF8\x1C`\x04\x81\x11\x15a\x13\xC1Wa\x13\xC1a0\xABV[`\0\x80\x82`\x04\x81\x11\x15a+AWa+Aa0\xABV[\x90P\x80`\xFF\x16`\0\x03a+gW`@Qc\xD8EZ\x13`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a+r`\x01\x82a5\xD7V[`\xFF\x16`\x03\x81\x11\x15a$\xC8Wa$\xC8a0\xABV[`\0a+\x93\x83` a4\xBDV[a+\x9E\x90`\x04a5JV[a+\xA9\x90` a5JV[\x82Q\x10\x15a+\xCAW`@Qc\x1D\t\x8E-`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0a+\xD7\x84` a4\xBDV[a+\xE2\x90`\x04a5JV[\x92\x90\x92\x01` \x01Q\x93\x92PPPV[``\x83\x15a,`W\x82Q`\0\x03a,YW`\x01`\x01`\xA0\x1B\x03\x85\x16;a,YW`@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\x06BV[P\x81a\x13\xC1V[a\x13\xC1\x83\x83\x81Q\x15a,uW\x81Q\x80\x83` \x01\xFD[\x80`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x06B\x91\x90a5\xF0V[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x05\xF7W`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15a,\xB6W`\0\x80\xFD[\x815a$\xC8\x81a,\x8FV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`@Q`\x1F\x82\x01`\x1F\x19\x16\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a-\0Wa-\0a,\xC1V[`@R\x91\x90PV[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x15a-\"Wa-\"a,\xC1V[P`\x1F\x01`\x1F\x19\x16` \x01\x90V[`\0\x82`\x1F\x83\x01\x12a-AW`\0\x80\xFD[\x815a-Ta-O\x82a-\x08V[a,\xD7V[\x81\x81R\x84` \x83\x86\x01\x01\x11\x15a-iW`\0\x80\xFD[\x81` \x85\x01` \x83\x017`\0\x91\x81\x01` \x01\x91\x90\x91R\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15a-\x98W`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a-\xAFW`\0\x80\xFD[a\x13\xC1\x84\x82\x85\x01a-0V[`\0\x80`\0\x80`\0`\x80\x86\x88\x03\x12\x15a-\xD3W`\0\x80\xFD[\x855a-\xDE\x81a,\x8FV[\x94P` \x86\x015\x93P`@\x86\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a.\x02W`\0\x80\xFD[\x81\x88\x01\x91P\x88`\x1F\x83\x01\x12a.\x16W`\0\x80\xFD[\x815\x81\x81\x11\x15a.%W`\0\x80\xFD[\x89` \x82\x85\x01\x01\x11\x15a.7W`\0\x80\xFD[` \x83\x01\x95P\x80\x94PPPP``\x86\x015`\x02\x81\x10a.UW`\0\x80\xFD[\x80\x91PP\x92\x95P\x92\x95\x90\x93PV[`\0\x80`@\x83\x85\x03\x12\x15a.vW`\0\x80\xFD[\x825a.\x81\x81a,\x8FV[\x91P` \x83\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a.\x9DW`\0\x80\xFD[a.\xA9\x85\x82\x86\x01a-0V[\x91PP\x92P\x92\x90PV[`\0[\x83\x81\x10\x15a.\xCEW\x81\x81\x01Q\x83\x82\x01R` \x01a.\xB6V[PP`\0\x91\x01RV[`\0\x81Q\x80\x84Ra.\xEF\x81` \x86\x01` \x86\x01a.\xB3V[`\x1F\x01`\x1F\x19\x16\x92\x90\x92\x01` \x01\x92\x91PPV[\x82\x15\x15\x81R`@` \x82\x01R`\0a\x13\xC1`@\x83\x01\x84a.\xD7V[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x15a/8Wa/8a,\xC1V[P`\x05\x1B` \x01\x90V[\x805`\x03\x81\x10a/QW`\0\x80\xFD[\x91\x90PV[`\0\x82`\x1F\x83\x01\x12a/gW`\0\x80\xFD[\x815` a/wa-O\x83a/\x1EV[\x82\x81R`\x05\x92\x90\x92\x1B\x84\x01\x81\x01\x91\x81\x81\x01\x90\x86\x84\x11\x15a/\x96W`\0\x80\xFD[\x82\x86\x01[\x84\x81\x10\x15a/\xB8Wa/\xAB\x81a/BV[\x83R\x91\x83\x01\x91\x83\x01a/\x9AV[P\x96\x95PPPPPPV[`\0\x80`@\x83\x85\x03\x12\x15a/\xD6W`\0\x80\xFD[\x825g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a/\xEEW`\0\x80\xFD[\x81\x85\x01\x91P\x85`\x1F\x83\x01\x12a0\x02W`\0\x80\xFD[\x815` a0\x12a-O\x83a/\x1EV[\x82\x81R`\x05\x92\x90\x92\x1B\x84\x01\x81\x01\x91\x81\x81\x01\x90\x89\x84\x11\x15a01W`\0\x80\xFD[\x94\x82\x01\x94[\x83\x86\x10\x15a0fW\x855`\x01`\x01`\xE0\x1B\x03\x19\x81\x16\x81\x14a0WW`\0\x80\x81\xFD[\x82R\x94\x82\x01\x94\x90\x82\x01\x90a06V[\x96PP\x86\x015\x92PP\x80\x82\x11\x15a0|W`\0\x80\xFD[Pa.\xA9\x85\x82\x86\x01a/VV[`\0\x80`@\x83\x85\x03\x12\x15a0\x9CW`\0\x80\xFD[PP\x805\x92` \x90\x91\x015\x91PV[cNH{q`\xE0\x1B`\0R`!`\x04R`$`\0\xFD[`\x03\x81\x10a0\xD1Wa0\xD1a0\xABV[\x90RV[`@\x80\x82R\x83Q\x90\x82\x01\x81\x90R`\0\x90` \x90``\x84\x01\x90\x82\x87\x01\x84[\x82\x81\x10\x15a1\x18W\x81Q`\x01`\x01`\xE0\x1B\x03\x19\x16\x84R\x92\x84\x01\x92\x90\x84\x01\x90`\x01\x01a0\xF2V[PPP\x83\x81\x03\x82\x85\x01R\x84Q\x80\x82R\x85\x83\x01\x91\x83\x01\x90`\0[\x81\x81\x10\x15a1TWa1D\x83\x85Qa0\xC1V[\x92\x84\x01\x92\x91\x84\x01\x91`\x01\x01a11V[P\x90\x97\x96PPPPPPPV[` \x80\x82R\x82Q\x82\x82\x01\x81\x90R`\0\x91\x90\x84\x82\x01\x90`@\x85\x01\x90\x84[\x81\x81\x10\x15a1\x99W\x83Q\x83R\x92\x84\x01\x92\x91\x84\x01\x91`\x01\x01a1}V[P\x90\x96\x95PPPPPPV[`\0` \x82\x84\x03\x12\x15a1\xB7W`\0\x80\xFD[P5\x91\x90PV[`\0\x80`\0\x80`\x80\x85\x87\x03\x12\x15a1\xD4W`\0\x80\xFD[\x845a1\xDF\x81a,\x8FV[\x93P` \x85\x015a1\xEF\x81a,\x8FV[\x92P`@\x85\x015a1\xFF\x81a,\x8FV[\x93\x96\x92\x95P\x92\x93``\x015\x92PPV[`\0\x80`\0``\x84\x86\x03\x12\x15a2$W`\0\x80\xFD[\x835a2/\x81a,\x8FV[\x92P` \x84\x015a2?\x81a,\x8FV[\x91Pa2M`@\x85\x01a/BV[\x90P\x92P\x92P\x92V[` \x81\x01a\x0E;\x82\x84a0\xC1V[`\0\x80`\0``\x84\x86\x03\x12\x15a2yW`\0\x80\xFD[\x835a2\x84\x81a,\x8FV[\x95` \x85\x015\x95P`@\x90\x94\x015\x93\x92PPPV[` \x80\x82R`,\x90\x82\x01R\x7FFunction must be called through `@\x82\x01Rk\x19\x19[\x19Y\xD8]\x19X\xD8[\x1B`\xA2\x1B``\x82\x01R`\x80\x01\x90V[` \x80\x82R`,\x90\x82\x01R\x7FFunction must be called through `@\x82\x01Rkactive proxy`\xA0\x1B``\x82\x01R`\x80\x01\x90V[`\0\x80`\0``\x84\x86\x03\x12\x15a3FW`\0\x80\xFD[\x83Qa3Q\x81a,\x8FV[` \x85\x01Q\x90\x93Pa3b\x81a,\x8FV[\x80\x92PP`@\x84\x01Q\x90P\x92P\x92P\x92V[`\0` \x82\x84\x03\x12\x15a3\x86W`\0\x80\xFD[PQ\x91\x90PV[`\0` \x82\x84\x03\x12\x15a3\x9FW`\0\x80\xFD[\x81Qa$\xC8\x81a,\x8FV[`\x01\x80`\xA0\x1B\x03\x85\x16\x81R\x83` \x82\x01R`\x80`@\x82\x01R`\0a3\xD1`\x80\x83\x01\x85a.\xD7V[\x90P`\x02\x83\x10a3\xE3Wa3\xE3a0\xABV[\x82``\x83\x01R\x95\x94PPPPPV[\x80Q\x80\x15\x15\x81\x14a/QW`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15a4\x14W`\0\x80\xFD[a$\xC8\x82a3\xF2V[`\0\x80`@\x83\x85\x03\x12\x15a40W`\0\x80\xFD[a49\x83a3\xF2V[\x91P` \x83\x01Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a4UW`\0\x80\xFD[\x83\x01`\x1F\x81\x01\x85\x13a4fW`\0\x80\xFD[\x80Qa4ta-O\x82a-\x08V[\x81\x81R\x86` \x83\x85\x01\x01\x11\x15a4\x89W`\0\x80\xFD[a4\x9A\x82` \x83\x01` \x86\x01a.\xB3V[\x80\x93PPPP\x92P\x92\x90PV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[\x80\x82\x02\x81\x15\x82\x82\x04\x84\x14\x17a\x0E;Wa\x0E;a4\xA7V[\x81\x81\x03\x81\x81\x11\x15a\x0E;Wa\x0E;a4\xA7V[cNH{q`\xE0\x1B`\0R`2`\x04R`$`\0\xFD[`\0`\x01\x82\x01a5\x0FWa5\x0Fa4\xA7V[P`\x01\x01\x90V[`\x01`\x01`\xE0\x1B\x03\x19\x83\x16\x81R`@\x81\x01a$\xC8` \x83\x01\x84a0\xC1V[cNH{q`\xE0\x1B`\0R`1`\x04R`$`\0\xFD[\x80\x82\x01\x80\x82\x11\x15a\x0E;Wa\x0E;a4\xA7V[\x80Q` \x82\x01Q`\x01`\x01`\xE0\x1B\x03\x19\x80\x82\x16\x92\x91\x90`\x04\x83\x10\x15a5\x8CW\x80\x81\x84`\x04\x03`\x03\x1B\x1B\x83\x16\x16\x93P[PPP\x91\x90PV[\x80Q` \x80\x83\x01Q\x91\x90\x81\x10\x15a5\xB5W`\0\x19\x81` \x03`\x03\x1B\x1B\x82\x16\x91P[P\x91\x90PV[`\0\x82Qa5\xCD\x81\x84` \x87\x01a.\xB3V[\x91\x90\x91\x01\x92\x91PPV[`\xFF\x82\x81\x16\x82\x82\x16\x03\x90\x81\x11\x15a\x0E;Wa\x0E;a4\xA7V[` \x81R`\0a$\xC8` \x83\x01\x84a.\xD7V\xFE6\x08\x94\xA1;\xA1\xA3!\x06g\xC8(I-\xB9\x8D\xCA> v\xCC75\xA9 \xA3\xCAP]8+\xBCAddress: low-level delegate call failed\xA2dipfsX\"\x12 \xD4{\xC8\x07O\xDD\x10#\xC1'\xCDd\xB0\xC0\x97\x19+%J\xEB\xEA~\xC3\xBE\x11;\x03\x94\x884sRdsolcC\0\x08\x13\x003";
1308    /// The deployed bytecode of the contract.
1309    pub static HOPRNODEMANAGEMENTMODULE_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static(
1310        __DEPLOYED_BYTECODE,
1311    );
1312    pub struct HoprNodeManagementModule<M>(::ethers::contract::Contract<M>);
1313    impl<M> ::core::clone::Clone for HoprNodeManagementModule<M> {
1314        fn clone(&self) -> Self {
1315            Self(::core::clone::Clone::clone(&self.0))
1316        }
1317    }
1318    impl<M> ::core::ops::Deref for HoprNodeManagementModule<M> {
1319        type Target = ::ethers::contract::Contract<M>;
1320        fn deref(&self) -> &Self::Target {
1321            &self.0
1322        }
1323    }
1324    impl<M> ::core::ops::DerefMut for HoprNodeManagementModule<M> {
1325        fn deref_mut(&mut self) -> &mut Self::Target {
1326            &mut self.0
1327        }
1328    }
1329    impl<M> ::core::fmt::Debug for HoprNodeManagementModule<M> {
1330        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1331            f.debug_tuple(::core::stringify!(HoprNodeManagementModule))
1332                .field(&self.address())
1333                .finish()
1334        }
1335    }
1336    impl<M: ::ethers::providers::Middleware> HoprNodeManagementModule<M> {
1337        /// Creates a new contract instance with the specified `ethers` client at
1338        /// `address`. The contract derefs to a `ethers::Contract` object.
1339        pub fn new<T: Into<::ethers::core::types::Address>>(
1340            address: T,
1341            client: ::std::sync::Arc<M>,
1342        ) -> Self {
1343            Self(
1344                ::ethers::contract::Contract::new(
1345                    address.into(),
1346                    HOPRNODEMANAGEMENTMODULE_ABI.clone(),
1347                    client,
1348                ),
1349            )
1350        }
1351        /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it.
1352        /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction
1353        ///
1354        /// Notes:
1355        /// - If there are no constructor arguments, you should pass `()` as the argument.
1356        /// - The default poll duration is 7 seconds.
1357        /// - The default number of confirmations is 1 block.
1358        ///
1359        ///
1360        /// # Example
1361        ///
1362        /// Generate contract bindings with `abigen!` and deploy a new contract instance.
1363        ///
1364        /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact.
1365        ///
1366        /// ```ignore
1367        /// # async fn deploy<M: ethers::providers::Middleware>(client: ::std::sync::Arc<M>) {
1368        ///     abigen!(Greeter, "../greeter.json");
1369        ///
1370        ///    let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap();
1371        ///    let msg = greeter_contract.greet().call().await.unwrap();
1372        /// # }
1373        /// ```
1374        pub fn deploy<T: ::ethers::core::abi::Tokenize>(
1375            client: ::std::sync::Arc<M>,
1376            constructor_args: T,
1377        ) -> ::core::result::Result<
1378            ::ethers::contract::builders::ContractDeployer<M, Self>,
1379            ::ethers::contract::ContractError<M>,
1380        > {
1381            let factory = ::ethers::contract::ContractFactory::new(
1382                HOPRNODEMANAGEMENTMODULE_ABI.clone(),
1383                HOPRNODEMANAGEMENTMODULE_BYTECODE.clone().into(),
1384                client,
1385            );
1386            let deployer = factory.deploy(constructor_args)?;
1387            let deployer = ::ethers::contract::ContractDeployer::new(deployer);
1388            Ok(deployer)
1389        }
1390        ///Calls the contract's `addChannelsAndTokenTarget` (0xa2450f89) function
1391        pub fn add_channels_and_token_target(
1392            &self,
1393            default_target: ::ethers::core::types::U256,
1394        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1395            self.0
1396                .method_hash([162, 69, 15, 137], default_target)
1397                .expect("method not found (this should never happen)")
1398        }
1399        ///Calls the contract's `addNode` (0x9d95f1cc) function
1400        pub fn add_node(
1401            &self,
1402            node_address: ::ethers::core::types::Address,
1403        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1404            self.0
1405                .method_hash([157, 149, 241, 204], node_address)
1406                .expect("method not found (this should never happen)")
1407        }
1408        ///Calls the contract's `decodeFunctionSigsAndPermissions` (0x60976c4b) function
1409        pub fn decode_function_sigs_and_permissions(
1410            &self,
1411            encoded: [u8; 32],
1412            length: ::ethers::core::types::U256,
1413        ) -> ::ethers::contract::builders::ContractCall<
1414            M,
1415            (::std::vec::Vec<[u8; 4]>, ::std::vec::Vec<u8>),
1416        > {
1417            self.0
1418                .method_hash([96, 151, 108, 75], (encoded, length))
1419                .expect("method not found (this should never happen)")
1420        }
1421        ///Calls the contract's `encodeFunctionSigsAndPermissions` (0x56f55117) function
1422        pub fn encode_function_sigs_and_permissions(
1423            &self,
1424            function_sigs: ::std::vec::Vec<[u8; 4]>,
1425            permissions: ::std::vec::Vec<u8>,
1426        ) -> ::ethers::contract::builders::ContractCall<
1427            M,
1428            ([u8; 32], ::ethers::core::types::U256),
1429        > {
1430            self.0
1431                .method_hash([86, 245, 81, 23], (function_sigs, permissions))
1432                .expect("method not found (this should never happen)")
1433        }
1434        ///Calls the contract's `execTransactionFromModule` (0x468721a7) function
1435        pub fn exec_transaction_from_module(
1436            &self,
1437            to: ::ethers::core::types::Address,
1438            value: ::ethers::core::types::U256,
1439            data: ::ethers::core::types::Bytes,
1440            operation: u8,
1441        ) -> ::ethers::contract::builders::ContractCall<M, bool> {
1442            self.0
1443                .method_hash([70, 135, 33, 167], (to, value, data, operation))
1444                .expect("method not found (this should never happen)")
1445        }
1446        ///Calls the contract's `execTransactionFromModuleReturnData` (0x5229073f) function
1447        pub fn exec_transaction_from_module_return_data(
1448            &self,
1449            to: ::ethers::core::types::Address,
1450            value: ::ethers::core::types::U256,
1451            data: ::ethers::core::types::Bytes,
1452            operation: u8,
1453        ) -> ::ethers::contract::builders::ContractCall<
1454            M,
1455            (bool, ::ethers::core::types::Bytes),
1456        > {
1457            self.0
1458                .method_hash([82, 41, 7, 63], (to, value, data, operation))
1459                .expect("method not found (this should never happen)")
1460        }
1461        ///Calls the contract's `getGranularPermissions` (0xdc446a4a) function
1462        pub fn get_granular_permissions(
1463            &self,
1464            capability_key: [u8; 32],
1465            pair_id: [u8; 32],
1466        ) -> ::ethers::contract::builders::ContractCall<M, u8> {
1467            self.0
1468                .method_hash([220, 68, 106, 74], (capability_key, pair_id))
1469                .expect("method not found (this should never happen)")
1470        }
1471        ///Calls the contract's `getTargets` (0x63fe3b56) function
1472        pub fn get_targets(
1473            &self,
1474        ) -> ::ethers::contract::builders::ContractCall<
1475            M,
1476            ::std::vec::Vec<::ethers::core::types::U256>,
1477        > {
1478            self.0
1479                .method_hash([99, 254, 59, 86], ())
1480                .expect("method not found (this should never happen)")
1481        }
1482        ///Calls the contract's `includeNode` (0xb5736962) function
1483        pub fn include_node(
1484            &self,
1485            node_default_target: ::ethers::core::types::U256,
1486        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1487            self.0
1488                .method_hash([181, 115, 105, 98], node_default_target)
1489                .expect("method not found (this should never happen)")
1490        }
1491        ///Calls the contract's `initialize` (0x439fab91) function
1492        pub fn initialize(
1493            &self,
1494            init_params: ::ethers::core::types::Bytes,
1495        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1496            self.0
1497                .method_hash([67, 159, 171, 145], init_params)
1498                .expect("method not found (this should never happen)")
1499        }
1500        ///Calls the contract's `isHoprNodeManagementModule` (0x4a1ba408) function
1501        pub fn is_hopr_node_management_module(
1502            &self,
1503        ) -> ::ethers::contract::builders::ContractCall<M, bool> {
1504            self.0
1505                .method_hash([74, 27, 164, 8], ())
1506                .expect("method not found (this should never happen)")
1507        }
1508        ///Calls the contract's `isNode` (0x01750152) function
1509        pub fn is_node(
1510            &self,
1511            node_address: ::ethers::core::types::Address,
1512        ) -> ::ethers::contract::builders::ContractCall<M, bool> {
1513            self.0
1514                .method_hash([1, 117, 1, 82], node_address)
1515                .expect("method not found (this should never happen)")
1516        }
1517        ///Calls the contract's `multisend` (0x294402cc) function
1518        pub fn multisend(
1519            &self,
1520        ) -> ::ethers::contract::builders::ContractCall<
1521            M,
1522            ::ethers::core::types::Address,
1523        > {
1524            self.0
1525                .method_hash([41, 68, 2, 204], ())
1526                .expect("method not found (this should never happen)")
1527        }
1528        ///Calls the contract's `owner` (0x8da5cb5b) function
1529        pub fn owner(
1530            &self,
1531        ) -> ::ethers::contract::builders::ContractCall<
1532            M,
1533            ::ethers::core::types::Address,
1534        > {
1535            self.0
1536                .method_hash([141, 165, 203, 91], ())
1537                .expect("method not found (this should never happen)")
1538        }
1539        ///Calls the contract's `proxiableUUID` (0x52d1902d) function
1540        pub fn proxiable_uuid(
1541            &self,
1542        ) -> ::ethers::contract::builders::ContractCall<M, [u8; 32]> {
1543            self.0
1544                .method_hash([82, 209, 144, 45], ())
1545                .expect("method not found (this should never happen)")
1546        }
1547        ///Calls the contract's `removeNode` (0xb2b99ec9) function
1548        pub fn remove_node(
1549            &self,
1550            node_address: ::ethers::core::types::Address,
1551        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1552            self.0
1553                .method_hash([178, 185, 158, 201], node_address)
1554                .expect("method not found (this should never happen)")
1555        }
1556        ///Calls the contract's `renounceOwnership` (0x715018a6) function
1557        pub fn renounce_ownership(
1558            &self,
1559        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1560            self.0
1561                .method_hash([113, 80, 24, 166], ())
1562                .expect("method not found (this should never happen)")
1563        }
1564        ///Calls the contract's `revokeTarget` (0x3401cde8) function
1565        pub fn revoke_target(
1566            &self,
1567            target_address: ::ethers::core::types::Address,
1568        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1569            self.0
1570                .method_hash([52, 1, 205, 232], target_address)
1571                .expect("method not found (this should never happen)")
1572        }
1573        ///Calls the contract's `scopeChannelsCapabilities` (0xfa19501d) function
1574        pub fn scope_channels_capabilities(
1575            &self,
1576            target_address: ::ethers::core::types::Address,
1577            channel_id: [u8; 32],
1578            encoded_sigs_permissions: [u8; 32],
1579        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1580            self.0
1581                .method_hash(
1582                    [250, 25, 80, 29],
1583                    (target_address, channel_id, encoded_sigs_permissions),
1584                )
1585                .expect("method not found (this should never happen)")
1586        }
1587        ///Calls the contract's `scopeSendCapability` (0xc68c3a83) function
1588        pub fn scope_send_capability(
1589            &self,
1590            node_address: ::ethers::core::types::Address,
1591            beneficiary: ::ethers::core::types::Address,
1592            permission: u8,
1593        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1594            self.0
1595                .method_hash(
1596                    [198, 140, 58, 131],
1597                    (node_address, beneficiary, permission),
1598                )
1599                .expect("method not found (this should never happen)")
1600        }
1601        ///Calls the contract's `scopeTargetChannels` (0x739c4b08) function
1602        pub fn scope_target_channels(
1603            &self,
1604            default_target: ::ethers::core::types::U256,
1605        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1606            self.0
1607                .method_hash([115, 156, 75, 8], default_target)
1608                .expect("method not found (this should never happen)")
1609        }
1610        ///Calls the contract's `scopeTargetSend` (0xdc06109d) function
1611        pub fn scope_target_send(
1612            &self,
1613            default_target: ::ethers::core::types::U256,
1614        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1615            self.0
1616                .method_hash([220, 6, 16, 157], default_target)
1617                .expect("method not found (this should never happen)")
1618        }
1619        ///Calls the contract's `scopeTargetToken` (0xa76c9a2f) function
1620        pub fn scope_target_token(
1621            &self,
1622            default_target: ::ethers::core::types::U256,
1623        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1624            self.0
1625                .method_hash([167, 108, 154, 47], default_target)
1626                .expect("method not found (this should never happen)")
1627        }
1628        ///Calls the contract's `scopeTokenCapabilities` (0xc68605c8) function
1629        pub fn scope_token_capabilities(
1630            &self,
1631            node_address: ::ethers::core::types::Address,
1632            target_address: ::ethers::core::types::Address,
1633            beneficiary: ::ethers::core::types::Address,
1634            encoded_sigs_permissions: [u8; 32],
1635        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1636            self.0
1637                .method_hash(
1638                    [198, 134, 5, 200],
1639                    (node_address, target_address, beneficiary, encoded_sigs_permissions),
1640                )
1641                .expect("method not found (this should never happen)")
1642        }
1643        ///Calls the contract's `setMultisend` (0x8b95eccd) function
1644        pub fn set_multisend(
1645            &self,
1646            multisend: ::ethers::core::types::Address,
1647        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1648            self.0
1649                .method_hash([139, 149, 236, 205], multisend)
1650                .expect("method not found (this should never happen)")
1651        }
1652        ///Calls the contract's `transferOwnership` (0xf2fde38b) function
1653        pub fn transfer_ownership(
1654            &self,
1655            new_owner: ::ethers::core::types::Address,
1656        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1657            self.0
1658                .method_hash([242, 253, 227, 139], new_owner)
1659                .expect("method not found (this should never happen)")
1660        }
1661        ///Calls the contract's `tryGetTarget` (0xdf4e6f8a) function
1662        pub fn try_get_target(
1663            &self,
1664            target_address: ::ethers::core::types::Address,
1665        ) -> ::ethers::contract::builders::ContractCall<
1666            M,
1667            (bool, ::ethers::core::types::U256),
1668        > {
1669            self.0
1670                .method_hash([223, 78, 111, 138], target_address)
1671                .expect("method not found (this should never happen)")
1672        }
1673        ///Calls the contract's `upgradeTo` (0x3659cfe6) function
1674        pub fn upgrade_to(
1675            &self,
1676            new_implementation: ::ethers::core::types::Address,
1677        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1678            self.0
1679                .method_hash([54, 89, 207, 230], new_implementation)
1680                .expect("method not found (this should never happen)")
1681        }
1682        ///Calls the contract's `upgradeToAndCall` (0x4f1ef286) function
1683        pub fn upgrade_to_and_call(
1684            &self,
1685            new_implementation: ::ethers::core::types::Address,
1686            data: ::ethers::core::types::Bytes,
1687        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1688            self.0
1689                .method_hash([79, 30, 242, 134], (new_implementation, data))
1690                .expect("method not found (this should never happen)")
1691        }
1692        ///Gets the contract's `AdminChanged` event
1693        pub fn admin_changed_filter(
1694            &self,
1695        ) -> ::ethers::contract::builders::Event<
1696            ::std::sync::Arc<M>,
1697            M,
1698            AdminChangedFilter,
1699        > {
1700            self.0.event()
1701        }
1702        ///Gets the contract's `BeaconUpgraded` event
1703        pub fn beacon_upgraded_filter(
1704            &self,
1705        ) -> ::ethers::contract::builders::Event<
1706            ::std::sync::Arc<M>,
1707            M,
1708            BeaconUpgradedFilter,
1709        > {
1710            self.0.event()
1711        }
1712        ///Gets the contract's `ExecutionFailure` event
1713        pub fn execution_failure_filter(
1714            &self,
1715        ) -> ::ethers::contract::builders::Event<
1716            ::std::sync::Arc<M>,
1717            M,
1718            ExecutionFailureFilter,
1719        > {
1720            self.0.event()
1721        }
1722        ///Gets the contract's `ExecutionSuccess` event
1723        pub fn execution_success_filter(
1724            &self,
1725        ) -> ::ethers::contract::builders::Event<
1726            ::std::sync::Arc<M>,
1727            M,
1728            ExecutionSuccessFilter,
1729        > {
1730            self.0.event()
1731        }
1732        ///Gets the contract's `Initialized` event
1733        pub fn initialized_filter(
1734            &self,
1735        ) -> ::ethers::contract::builders::Event<
1736            ::std::sync::Arc<M>,
1737            M,
1738            InitializedFilter,
1739        > {
1740            self.0.event()
1741        }
1742        ///Gets the contract's `NodeAdded` event
1743        pub fn node_added_filter(
1744            &self,
1745        ) -> ::ethers::contract::builders::Event<
1746            ::std::sync::Arc<M>,
1747            M,
1748            NodeAddedFilter,
1749        > {
1750            self.0.event()
1751        }
1752        ///Gets the contract's `NodeRemoved` event
1753        pub fn node_removed_filter(
1754            &self,
1755        ) -> ::ethers::contract::builders::Event<
1756            ::std::sync::Arc<M>,
1757            M,
1758            NodeRemovedFilter,
1759        > {
1760            self.0.event()
1761        }
1762        ///Gets the contract's `OwnershipTransferred` event
1763        pub fn ownership_transferred_filter(
1764            &self,
1765        ) -> ::ethers::contract::builders::Event<
1766            ::std::sync::Arc<M>,
1767            M,
1768            OwnershipTransferredFilter,
1769        > {
1770            self.0.event()
1771        }
1772        ///Gets the contract's `SetMultisendAddress` event
1773        pub fn set_multisend_address_filter(
1774            &self,
1775        ) -> ::ethers::contract::builders::Event<
1776            ::std::sync::Arc<M>,
1777            M,
1778            SetMultisendAddressFilter,
1779        > {
1780            self.0.event()
1781        }
1782        ///Gets the contract's `Upgraded` event
1783        pub fn upgraded_filter(
1784            &self,
1785        ) -> ::ethers::contract::builders::Event<
1786            ::std::sync::Arc<M>,
1787            M,
1788            UpgradedFilter,
1789        > {
1790            self.0.event()
1791        }
1792        /// Returns an `Event` builder for all the events of this contract.
1793        pub fn events(
1794            &self,
1795        ) -> ::ethers::contract::builders::Event<
1796            ::std::sync::Arc<M>,
1797            M,
1798            HoprNodeManagementModuleEvents,
1799        > {
1800            self.0.event_with_filter(::core::default::Default::default())
1801        }
1802    }
1803    impl<M: ::ethers::providers::Middleware> From<::ethers::contract::Contract<M>>
1804    for HoprNodeManagementModule<M> {
1805        fn from(contract: ::ethers::contract::Contract<M>) -> Self {
1806            Self::new(contract.address(), contract.client())
1807        }
1808    }
1809    ///Custom Error type `AddressIsZero` with signature `AddressIsZero()` and selector `0x867915ab`
1810    #[derive(
1811        Clone,
1812        ::ethers::contract::EthError,
1813        ::ethers::contract::EthDisplay,
1814        serde::Serialize,
1815        serde::Deserialize,
1816        Default,
1817        Debug,
1818        PartialEq,
1819        Eq,
1820        Hash
1821    )]
1822    #[etherror(name = "AddressIsZero", abi = "AddressIsZero()")]
1823    pub struct AddressIsZero;
1824    ///Custom Error type `AlreadyInitialized` with signature `AlreadyInitialized()` and selector `0x0dc149f0`
1825    #[derive(
1826        Clone,
1827        ::ethers::contract::EthError,
1828        ::ethers::contract::EthDisplay,
1829        serde::Serialize,
1830        serde::Deserialize,
1831        Default,
1832        Debug,
1833        PartialEq,
1834        Eq,
1835        Hash
1836    )]
1837    #[etherror(name = "AlreadyInitialized", abi = "AlreadyInitialized()")]
1838    pub struct AlreadyInitialized;
1839    ///Custom Error type `ArrayTooLong` with signature `ArrayTooLong()` and selector `0xbd26cc38`
1840    #[derive(
1841        Clone,
1842        ::ethers::contract::EthError,
1843        ::ethers::contract::EthDisplay,
1844        serde::Serialize,
1845        serde::Deserialize,
1846        Default,
1847        Debug,
1848        PartialEq,
1849        Eq,
1850        Hash
1851    )]
1852    #[etherror(name = "ArrayTooLong", abi = "ArrayTooLong()")]
1853    pub struct ArrayTooLong;
1854    ///Custom Error type `ArraysDifferentLength` with signature `ArraysDifferentLength()` and selector `0x74f4d537`
1855    #[derive(
1856        Clone,
1857        ::ethers::contract::EthError,
1858        ::ethers::contract::EthDisplay,
1859        serde::Serialize,
1860        serde::Deserialize,
1861        Default,
1862        Debug,
1863        PartialEq,
1864        Eq,
1865        Hash
1866    )]
1867    #[etherror(name = "ArraysDifferentLength", abi = "ArraysDifferentLength()")]
1868    pub struct ArraysDifferentLength;
1869    ///Custom Error type `CalldataOutOfBounds` with signature `CalldataOutOfBounds()` and selector `0x742638b4`
1870    #[derive(
1871        Clone,
1872        ::ethers::contract::EthError,
1873        ::ethers::contract::EthDisplay,
1874        serde::Serialize,
1875        serde::Deserialize,
1876        Default,
1877        Debug,
1878        PartialEq,
1879        Eq,
1880        Hash
1881    )]
1882    #[etherror(name = "CalldataOutOfBounds", abi = "CalldataOutOfBounds()")]
1883    pub struct CalldataOutOfBounds;
1884    ///Custom Error type `CannotChangeOwner` with signature `CannotChangeOwner()` and selector `0xfd670ebe`
1885    #[derive(
1886        Clone,
1887        ::ethers::contract::EthError,
1888        ::ethers::contract::EthDisplay,
1889        serde::Serialize,
1890        serde::Deserialize,
1891        Default,
1892        Debug,
1893        PartialEq,
1894        Eq,
1895        Hash
1896    )]
1897    #[etherror(name = "CannotChangeOwner", abi = "CannotChangeOwner()")]
1898    pub struct CannotChangeOwner;
1899    ///Custom Error type `DefaultPermissionRejected` with signature `DefaultPermissionRejected()` and selector `0x58723037`
1900    #[derive(
1901        Clone,
1902        ::ethers::contract::EthError,
1903        ::ethers::contract::EthDisplay,
1904        serde::Serialize,
1905        serde::Deserialize,
1906        Default,
1907        Debug,
1908        PartialEq,
1909        Eq,
1910        Hash
1911    )]
1912    #[etherror(name = "DefaultPermissionRejected", abi = "DefaultPermissionRejected()")]
1913    pub struct DefaultPermissionRejected;
1914    ///Custom Error type `DelegateCallNotAllowed` with signature `DelegateCallNotAllowed()` and selector `0x0d89438e`
1915    #[derive(
1916        Clone,
1917        ::ethers::contract::EthError,
1918        ::ethers::contract::EthDisplay,
1919        serde::Serialize,
1920        serde::Deserialize,
1921        Default,
1922        Debug,
1923        PartialEq,
1924        Eq,
1925        Hash
1926    )]
1927    #[etherror(name = "DelegateCallNotAllowed", abi = "DelegateCallNotAllowed()")]
1928    pub struct DelegateCallNotAllowed;
1929    ///Custom Error type `FunctionSignatureTooShort` with signature `FunctionSignatureTooShort()` and selector `0x4684c122`
1930    #[derive(
1931        Clone,
1932        ::ethers::contract::EthError,
1933        ::ethers::contract::EthDisplay,
1934        serde::Serialize,
1935        serde::Deserialize,
1936        Default,
1937        Debug,
1938        PartialEq,
1939        Eq,
1940        Hash
1941    )]
1942    #[etherror(name = "FunctionSignatureTooShort", abi = "FunctionSignatureTooShort()")]
1943    pub struct FunctionSignatureTooShort;
1944    ///Custom Error type `GranularPermissionRejected` with signature `GranularPermissionRejected()` and selector `0x864dd1e7`
1945    #[derive(
1946        Clone,
1947        ::ethers::contract::EthError,
1948        ::ethers::contract::EthDisplay,
1949        serde::Serialize,
1950        serde::Deserialize,
1951        Default,
1952        Debug,
1953        PartialEq,
1954        Eq,
1955        Hash
1956    )]
1957    #[etherror(
1958        name = "GranularPermissionRejected",
1959        abi = "GranularPermissionRejected()"
1960    )]
1961    pub struct GranularPermissionRejected;
1962    ///Custom Error type `NoMembership` with signature `NoMembership()` and selector `0xfd8e9f28`
1963    #[derive(
1964        Clone,
1965        ::ethers::contract::EthError,
1966        ::ethers::contract::EthDisplay,
1967        serde::Serialize,
1968        serde::Deserialize,
1969        Default,
1970        Debug,
1971        PartialEq,
1972        Eq,
1973        Hash
1974    )]
1975    #[etherror(name = "NoMembership", abi = "NoMembership()")]
1976    pub struct NoMembership;
1977    ///Custom Error type `NodePermissionRejected` with signature `NodePermissionRejected()` and selector `0x6eb0315f`
1978    #[derive(
1979        Clone,
1980        ::ethers::contract::EthError,
1981        ::ethers::contract::EthDisplay,
1982        serde::Serialize,
1983        serde::Deserialize,
1984        Default,
1985        Debug,
1986        PartialEq,
1987        Eq,
1988        Hash
1989    )]
1990    #[etherror(name = "NodePermissionRejected", abi = "NodePermissionRejected()")]
1991    pub struct NodePermissionRejected;
1992    ///Custom Error type `NonExistentKey` with signature `NonExistentKey()` and selector `0x2d0519ad`
1993    #[derive(
1994        Clone,
1995        ::ethers::contract::EthError,
1996        ::ethers::contract::EthDisplay,
1997        serde::Serialize,
1998        serde::Deserialize,
1999        Default,
2000        Debug,
2001        PartialEq,
2002        Eq,
2003        Hash
2004    )]
2005    #[etherror(name = "NonExistentKey", abi = "NonExistentKey()")]
2006    pub struct NonExistentKey;
2007    ///Custom Error type `ParameterNotAllowed` with signature `ParameterNotAllowed()` and selector `0x31e98246`
2008    #[derive(
2009        Clone,
2010        ::ethers::contract::EthError,
2011        ::ethers::contract::EthDisplay,
2012        serde::Serialize,
2013        serde::Deserialize,
2014        Default,
2015        Debug,
2016        PartialEq,
2017        Eq,
2018        Hash
2019    )]
2020    #[etherror(name = "ParameterNotAllowed", abi = "ParameterNotAllowed()")]
2021    pub struct ParameterNotAllowed;
2022    ///Custom Error type `PermissionNotConfigured` with signature `PermissionNotConfigured()` and selector `0x46ad4588`
2023    #[derive(
2024        Clone,
2025        ::ethers::contract::EthError,
2026        ::ethers::contract::EthDisplay,
2027        serde::Serialize,
2028        serde::Deserialize,
2029        Default,
2030        Debug,
2031        PartialEq,
2032        Eq,
2033        Hash
2034    )]
2035    #[etherror(name = "PermissionNotConfigured", abi = "PermissionNotConfigured()")]
2036    pub struct PermissionNotConfigured;
2037    ///Custom Error type `PermissionNotFound` with signature `PermissionNotFound()` and selector `0xd8455a13`
2038    #[derive(
2039        Clone,
2040        ::ethers::contract::EthError,
2041        ::ethers::contract::EthDisplay,
2042        serde::Serialize,
2043        serde::Deserialize,
2044        Default,
2045        Debug,
2046        PartialEq,
2047        Eq,
2048        Hash
2049    )]
2050    #[etherror(name = "PermissionNotFound", abi = "PermissionNotFound()")]
2051    pub struct PermissionNotFound;
2052    ///Custom Error type `SafeMultisendSameAddress` with signature `SafeMultisendSameAddress()` and selector `0x598a0e21`
2053    #[derive(
2054        Clone,
2055        ::ethers::contract::EthError,
2056        ::ethers::contract::EthDisplay,
2057        serde::Serialize,
2058        serde::Deserialize,
2059        Default,
2060        Debug,
2061        PartialEq,
2062        Eq,
2063        Hash
2064    )]
2065    #[etherror(name = "SafeMultisendSameAddress", abi = "SafeMultisendSameAddress()")]
2066    pub struct SafeMultisendSameAddress;
2067    ///Custom Error type `SendNotAllowed` with signature `SendNotAllowed()` and selector `0x09e9cd49`
2068    #[derive(
2069        Clone,
2070        ::ethers::contract::EthError,
2071        ::ethers::contract::EthDisplay,
2072        serde::Serialize,
2073        serde::Deserialize,
2074        Default,
2075        Debug,
2076        PartialEq,
2077        Eq,
2078        Hash
2079    )]
2080    #[etherror(name = "SendNotAllowed", abi = "SendNotAllowed()")]
2081    pub struct SendNotAllowed;
2082    ///Custom Error type `TargetAddressNotAllowed` with signature `TargetAddressNotAllowed()` and selector `0xef3440ac`
2083    #[derive(
2084        Clone,
2085        ::ethers::contract::EthError,
2086        ::ethers::contract::EthDisplay,
2087        serde::Serialize,
2088        serde::Deserialize,
2089        Default,
2090        Debug,
2091        PartialEq,
2092        Eq,
2093        Hash
2094    )]
2095    #[etherror(name = "TargetAddressNotAllowed", abi = "TargetAddressNotAllowed()")]
2096    pub struct TargetAddressNotAllowed;
2097    ///Custom Error type `TargetIsNotScoped` with signature `TargetIsNotScoped()` and selector `0x4a890321`
2098    #[derive(
2099        Clone,
2100        ::ethers::contract::EthError,
2101        ::ethers::contract::EthDisplay,
2102        serde::Serialize,
2103        serde::Deserialize,
2104        Default,
2105        Debug,
2106        PartialEq,
2107        Eq,
2108        Hash
2109    )]
2110    #[etherror(name = "TargetIsNotScoped", abi = "TargetIsNotScoped()")]
2111    pub struct TargetIsNotScoped;
2112    ///Custom Error type `TargetIsScoped` with signature `TargetIsScoped()` and selector `0xe8c07d2a`
2113    #[derive(
2114        Clone,
2115        ::ethers::contract::EthError,
2116        ::ethers::contract::EthDisplay,
2117        serde::Serialize,
2118        serde::Deserialize,
2119        Default,
2120        Debug,
2121        PartialEq,
2122        Eq,
2123        Hash
2124    )]
2125    #[etherror(name = "TargetIsScoped", abi = "TargetIsScoped()")]
2126    pub struct TargetIsScoped;
2127    ///Custom Error type `TooManyCapabilities` with signature `TooManyCapabilities()` and selector `0xb44af9af`
2128    #[derive(
2129        Clone,
2130        ::ethers::contract::EthError,
2131        ::ethers::contract::EthDisplay,
2132        serde::Serialize,
2133        serde::Deserialize,
2134        Default,
2135        Debug,
2136        PartialEq,
2137        Eq,
2138        Hash
2139    )]
2140    #[etherror(name = "TooManyCapabilities", abi = "TooManyCapabilities()")]
2141    pub struct TooManyCapabilities;
2142    ///Custom Error type `UnacceptableMultiSendOffset` with signature `UnacceptableMultiSendOffset()` and selector `0x7ed11137`
2143    #[derive(
2144        Clone,
2145        ::ethers::contract::EthError,
2146        ::ethers::contract::EthDisplay,
2147        serde::Serialize,
2148        serde::Deserialize,
2149        Default,
2150        Debug,
2151        PartialEq,
2152        Eq,
2153        Hash
2154    )]
2155    #[etherror(
2156        name = "UnacceptableMultiSendOffset",
2157        abi = "UnacceptableMultiSendOffset()"
2158    )]
2159    pub struct UnacceptableMultiSendOffset;
2160    ///Custom Error type `WithMembership` with signature `WithMembership()` and selector `0xe3a05a94`
2161    #[derive(
2162        Clone,
2163        ::ethers::contract::EthError,
2164        ::ethers::contract::EthDisplay,
2165        serde::Serialize,
2166        serde::Deserialize,
2167        Default,
2168        Debug,
2169        PartialEq,
2170        Eq,
2171        Hash
2172    )]
2173    #[etherror(name = "WithMembership", abi = "WithMembership()")]
2174    pub struct WithMembership;
2175    ///Container type for all of the contract's custom errors
2176    #[derive(
2177        Clone,
2178        ::ethers::contract::EthAbiType,
2179        serde::Serialize,
2180        serde::Deserialize,
2181        Debug,
2182        PartialEq,
2183        Eq,
2184        Hash
2185    )]
2186    pub enum HoprNodeManagementModuleErrors {
2187        AddressIsZero(AddressIsZero),
2188        AlreadyInitialized(AlreadyInitialized),
2189        ArrayTooLong(ArrayTooLong),
2190        ArraysDifferentLength(ArraysDifferentLength),
2191        CalldataOutOfBounds(CalldataOutOfBounds),
2192        CannotChangeOwner(CannotChangeOwner),
2193        DefaultPermissionRejected(DefaultPermissionRejected),
2194        DelegateCallNotAllowed(DelegateCallNotAllowed),
2195        FunctionSignatureTooShort(FunctionSignatureTooShort),
2196        GranularPermissionRejected(GranularPermissionRejected),
2197        NoMembership(NoMembership),
2198        NodePermissionRejected(NodePermissionRejected),
2199        NonExistentKey(NonExistentKey),
2200        ParameterNotAllowed(ParameterNotAllowed),
2201        PermissionNotConfigured(PermissionNotConfigured),
2202        PermissionNotFound(PermissionNotFound),
2203        SafeMultisendSameAddress(SafeMultisendSameAddress),
2204        SendNotAllowed(SendNotAllowed),
2205        TargetAddressNotAllowed(TargetAddressNotAllowed),
2206        TargetIsNotScoped(TargetIsNotScoped),
2207        TargetIsScoped(TargetIsScoped),
2208        TooManyCapabilities(TooManyCapabilities),
2209        UnacceptableMultiSendOffset(UnacceptableMultiSendOffset),
2210        WithMembership(WithMembership),
2211        /// The standard solidity revert string, with selector
2212        /// Error(string) -- 0x08c379a0
2213        RevertString(::std::string::String),
2214    }
2215    impl ::ethers::core::abi::AbiDecode for HoprNodeManagementModuleErrors {
2216        fn decode(
2217            data: impl AsRef<[u8]>,
2218        ) -> ::core::result::Result<Self, ::ethers::core::abi::AbiError> {
2219            let data = data.as_ref();
2220            if let Ok(decoded) = <::std::string::String as ::ethers::core::abi::AbiDecode>::decode(
2221                data,
2222            ) {
2223                return Ok(Self::RevertString(decoded));
2224            }
2225            if let Ok(decoded) = <AddressIsZero as ::ethers::core::abi::AbiDecode>::decode(
2226                data,
2227            ) {
2228                return Ok(Self::AddressIsZero(decoded));
2229            }
2230            if let Ok(decoded) = <AlreadyInitialized as ::ethers::core::abi::AbiDecode>::decode(
2231                data,
2232            ) {
2233                return Ok(Self::AlreadyInitialized(decoded));
2234            }
2235            if let Ok(decoded) = <ArrayTooLong as ::ethers::core::abi::AbiDecode>::decode(
2236                data,
2237            ) {
2238                return Ok(Self::ArrayTooLong(decoded));
2239            }
2240            if let Ok(decoded) = <ArraysDifferentLength as ::ethers::core::abi::AbiDecode>::decode(
2241                data,
2242            ) {
2243                return Ok(Self::ArraysDifferentLength(decoded));
2244            }
2245            if let Ok(decoded) = <CalldataOutOfBounds as ::ethers::core::abi::AbiDecode>::decode(
2246                data,
2247            ) {
2248                return Ok(Self::CalldataOutOfBounds(decoded));
2249            }
2250            if let Ok(decoded) = <CannotChangeOwner as ::ethers::core::abi::AbiDecode>::decode(
2251                data,
2252            ) {
2253                return Ok(Self::CannotChangeOwner(decoded));
2254            }
2255            if let Ok(decoded) = <DefaultPermissionRejected as ::ethers::core::abi::AbiDecode>::decode(
2256                data,
2257            ) {
2258                return Ok(Self::DefaultPermissionRejected(decoded));
2259            }
2260            if let Ok(decoded) = <DelegateCallNotAllowed as ::ethers::core::abi::AbiDecode>::decode(
2261                data,
2262            ) {
2263                return Ok(Self::DelegateCallNotAllowed(decoded));
2264            }
2265            if let Ok(decoded) = <FunctionSignatureTooShort as ::ethers::core::abi::AbiDecode>::decode(
2266                data,
2267            ) {
2268                return Ok(Self::FunctionSignatureTooShort(decoded));
2269            }
2270            if let Ok(decoded) = <GranularPermissionRejected as ::ethers::core::abi::AbiDecode>::decode(
2271                data,
2272            ) {
2273                return Ok(Self::GranularPermissionRejected(decoded));
2274            }
2275            if let Ok(decoded) = <NoMembership as ::ethers::core::abi::AbiDecode>::decode(
2276                data,
2277            ) {
2278                return Ok(Self::NoMembership(decoded));
2279            }
2280            if let Ok(decoded) = <NodePermissionRejected as ::ethers::core::abi::AbiDecode>::decode(
2281                data,
2282            ) {
2283                return Ok(Self::NodePermissionRejected(decoded));
2284            }
2285            if let Ok(decoded) = <NonExistentKey as ::ethers::core::abi::AbiDecode>::decode(
2286                data,
2287            ) {
2288                return Ok(Self::NonExistentKey(decoded));
2289            }
2290            if let Ok(decoded) = <ParameterNotAllowed as ::ethers::core::abi::AbiDecode>::decode(
2291                data,
2292            ) {
2293                return Ok(Self::ParameterNotAllowed(decoded));
2294            }
2295            if let Ok(decoded) = <PermissionNotConfigured as ::ethers::core::abi::AbiDecode>::decode(
2296                data,
2297            ) {
2298                return Ok(Self::PermissionNotConfigured(decoded));
2299            }
2300            if let Ok(decoded) = <PermissionNotFound as ::ethers::core::abi::AbiDecode>::decode(
2301                data,
2302            ) {
2303                return Ok(Self::PermissionNotFound(decoded));
2304            }
2305            if let Ok(decoded) = <SafeMultisendSameAddress as ::ethers::core::abi::AbiDecode>::decode(
2306                data,
2307            ) {
2308                return Ok(Self::SafeMultisendSameAddress(decoded));
2309            }
2310            if let Ok(decoded) = <SendNotAllowed as ::ethers::core::abi::AbiDecode>::decode(
2311                data,
2312            ) {
2313                return Ok(Self::SendNotAllowed(decoded));
2314            }
2315            if let Ok(decoded) = <TargetAddressNotAllowed as ::ethers::core::abi::AbiDecode>::decode(
2316                data,
2317            ) {
2318                return Ok(Self::TargetAddressNotAllowed(decoded));
2319            }
2320            if let Ok(decoded) = <TargetIsNotScoped as ::ethers::core::abi::AbiDecode>::decode(
2321                data,
2322            ) {
2323                return Ok(Self::TargetIsNotScoped(decoded));
2324            }
2325            if let Ok(decoded) = <TargetIsScoped as ::ethers::core::abi::AbiDecode>::decode(
2326                data,
2327            ) {
2328                return Ok(Self::TargetIsScoped(decoded));
2329            }
2330            if let Ok(decoded) = <TooManyCapabilities as ::ethers::core::abi::AbiDecode>::decode(
2331                data,
2332            ) {
2333                return Ok(Self::TooManyCapabilities(decoded));
2334            }
2335            if let Ok(decoded) = <UnacceptableMultiSendOffset as ::ethers::core::abi::AbiDecode>::decode(
2336                data,
2337            ) {
2338                return Ok(Self::UnacceptableMultiSendOffset(decoded));
2339            }
2340            if let Ok(decoded) = <WithMembership as ::ethers::core::abi::AbiDecode>::decode(
2341                data,
2342            ) {
2343                return Ok(Self::WithMembership(decoded));
2344            }
2345            Err(::ethers::core::abi::Error::InvalidData.into())
2346        }
2347    }
2348    impl ::ethers::core::abi::AbiEncode for HoprNodeManagementModuleErrors {
2349        fn encode(self) -> ::std::vec::Vec<u8> {
2350            match self {
2351                Self::AddressIsZero(element) => {
2352                    ::ethers::core::abi::AbiEncode::encode(element)
2353                }
2354                Self::AlreadyInitialized(element) => {
2355                    ::ethers::core::abi::AbiEncode::encode(element)
2356                }
2357                Self::ArrayTooLong(element) => {
2358                    ::ethers::core::abi::AbiEncode::encode(element)
2359                }
2360                Self::ArraysDifferentLength(element) => {
2361                    ::ethers::core::abi::AbiEncode::encode(element)
2362                }
2363                Self::CalldataOutOfBounds(element) => {
2364                    ::ethers::core::abi::AbiEncode::encode(element)
2365                }
2366                Self::CannotChangeOwner(element) => {
2367                    ::ethers::core::abi::AbiEncode::encode(element)
2368                }
2369                Self::DefaultPermissionRejected(element) => {
2370                    ::ethers::core::abi::AbiEncode::encode(element)
2371                }
2372                Self::DelegateCallNotAllowed(element) => {
2373                    ::ethers::core::abi::AbiEncode::encode(element)
2374                }
2375                Self::FunctionSignatureTooShort(element) => {
2376                    ::ethers::core::abi::AbiEncode::encode(element)
2377                }
2378                Self::GranularPermissionRejected(element) => {
2379                    ::ethers::core::abi::AbiEncode::encode(element)
2380                }
2381                Self::NoMembership(element) => {
2382                    ::ethers::core::abi::AbiEncode::encode(element)
2383                }
2384                Self::NodePermissionRejected(element) => {
2385                    ::ethers::core::abi::AbiEncode::encode(element)
2386                }
2387                Self::NonExistentKey(element) => {
2388                    ::ethers::core::abi::AbiEncode::encode(element)
2389                }
2390                Self::ParameterNotAllowed(element) => {
2391                    ::ethers::core::abi::AbiEncode::encode(element)
2392                }
2393                Self::PermissionNotConfigured(element) => {
2394                    ::ethers::core::abi::AbiEncode::encode(element)
2395                }
2396                Self::PermissionNotFound(element) => {
2397                    ::ethers::core::abi::AbiEncode::encode(element)
2398                }
2399                Self::SafeMultisendSameAddress(element) => {
2400                    ::ethers::core::abi::AbiEncode::encode(element)
2401                }
2402                Self::SendNotAllowed(element) => {
2403                    ::ethers::core::abi::AbiEncode::encode(element)
2404                }
2405                Self::TargetAddressNotAllowed(element) => {
2406                    ::ethers::core::abi::AbiEncode::encode(element)
2407                }
2408                Self::TargetIsNotScoped(element) => {
2409                    ::ethers::core::abi::AbiEncode::encode(element)
2410                }
2411                Self::TargetIsScoped(element) => {
2412                    ::ethers::core::abi::AbiEncode::encode(element)
2413                }
2414                Self::TooManyCapabilities(element) => {
2415                    ::ethers::core::abi::AbiEncode::encode(element)
2416                }
2417                Self::UnacceptableMultiSendOffset(element) => {
2418                    ::ethers::core::abi::AbiEncode::encode(element)
2419                }
2420                Self::WithMembership(element) => {
2421                    ::ethers::core::abi::AbiEncode::encode(element)
2422                }
2423                Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s),
2424            }
2425        }
2426    }
2427    impl ::ethers::contract::ContractRevert for HoprNodeManagementModuleErrors {
2428        fn valid_selector(selector: [u8; 4]) -> bool {
2429            match selector {
2430                [0x08, 0xc3, 0x79, 0xa0] => true,
2431                _ if selector
2432                    == <AddressIsZero as ::ethers::contract::EthError>::selector() => {
2433                    true
2434                }
2435                _ if selector
2436                    == <AlreadyInitialized as ::ethers::contract::EthError>::selector() => {
2437                    true
2438                }
2439                _ if selector
2440                    == <ArrayTooLong as ::ethers::contract::EthError>::selector() => true,
2441                _ if selector
2442                    == <ArraysDifferentLength as ::ethers::contract::EthError>::selector() => {
2443                    true
2444                }
2445                _ if selector
2446                    == <CalldataOutOfBounds as ::ethers::contract::EthError>::selector() => {
2447                    true
2448                }
2449                _ if selector
2450                    == <CannotChangeOwner as ::ethers::contract::EthError>::selector() => {
2451                    true
2452                }
2453                _ if selector
2454                    == <DefaultPermissionRejected as ::ethers::contract::EthError>::selector() => {
2455                    true
2456                }
2457                _ if selector
2458                    == <DelegateCallNotAllowed as ::ethers::contract::EthError>::selector() => {
2459                    true
2460                }
2461                _ if selector
2462                    == <FunctionSignatureTooShort as ::ethers::contract::EthError>::selector() => {
2463                    true
2464                }
2465                _ if selector
2466                    == <GranularPermissionRejected as ::ethers::contract::EthError>::selector() => {
2467                    true
2468                }
2469                _ if selector
2470                    == <NoMembership as ::ethers::contract::EthError>::selector() => true,
2471                _ if selector
2472                    == <NodePermissionRejected as ::ethers::contract::EthError>::selector() => {
2473                    true
2474                }
2475                _ if selector
2476                    == <NonExistentKey as ::ethers::contract::EthError>::selector() => {
2477                    true
2478                }
2479                _ if selector
2480                    == <ParameterNotAllowed as ::ethers::contract::EthError>::selector() => {
2481                    true
2482                }
2483                _ if selector
2484                    == <PermissionNotConfigured as ::ethers::contract::EthError>::selector() => {
2485                    true
2486                }
2487                _ if selector
2488                    == <PermissionNotFound as ::ethers::contract::EthError>::selector() => {
2489                    true
2490                }
2491                _ if selector
2492                    == <SafeMultisendSameAddress as ::ethers::contract::EthError>::selector() => {
2493                    true
2494                }
2495                _ if selector
2496                    == <SendNotAllowed as ::ethers::contract::EthError>::selector() => {
2497                    true
2498                }
2499                _ if selector
2500                    == <TargetAddressNotAllowed as ::ethers::contract::EthError>::selector() => {
2501                    true
2502                }
2503                _ if selector
2504                    == <TargetIsNotScoped as ::ethers::contract::EthError>::selector() => {
2505                    true
2506                }
2507                _ if selector
2508                    == <TargetIsScoped as ::ethers::contract::EthError>::selector() => {
2509                    true
2510                }
2511                _ if selector
2512                    == <TooManyCapabilities as ::ethers::contract::EthError>::selector() => {
2513                    true
2514                }
2515                _ if selector
2516                    == <UnacceptableMultiSendOffset as ::ethers::contract::EthError>::selector() => {
2517                    true
2518                }
2519                _ if selector
2520                    == <WithMembership as ::ethers::contract::EthError>::selector() => {
2521                    true
2522                }
2523                _ => false,
2524            }
2525        }
2526    }
2527    impl ::core::fmt::Display for HoprNodeManagementModuleErrors {
2528        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2529            match self {
2530                Self::AddressIsZero(element) => ::core::fmt::Display::fmt(element, f),
2531                Self::AlreadyInitialized(element) => {
2532                    ::core::fmt::Display::fmt(element, f)
2533                }
2534                Self::ArrayTooLong(element) => ::core::fmt::Display::fmt(element, f),
2535                Self::ArraysDifferentLength(element) => {
2536                    ::core::fmt::Display::fmt(element, f)
2537                }
2538                Self::CalldataOutOfBounds(element) => {
2539                    ::core::fmt::Display::fmt(element, f)
2540                }
2541                Self::CannotChangeOwner(element) => ::core::fmt::Display::fmt(element, f),
2542                Self::DefaultPermissionRejected(element) => {
2543                    ::core::fmt::Display::fmt(element, f)
2544                }
2545                Self::DelegateCallNotAllowed(element) => {
2546                    ::core::fmt::Display::fmt(element, f)
2547                }
2548                Self::FunctionSignatureTooShort(element) => {
2549                    ::core::fmt::Display::fmt(element, f)
2550                }
2551                Self::GranularPermissionRejected(element) => {
2552                    ::core::fmt::Display::fmt(element, f)
2553                }
2554                Self::NoMembership(element) => ::core::fmt::Display::fmt(element, f),
2555                Self::NodePermissionRejected(element) => {
2556                    ::core::fmt::Display::fmt(element, f)
2557                }
2558                Self::NonExistentKey(element) => ::core::fmt::Display::fmt(element, f),
2559                Self::ParameterNotAllowed(element) => {
2560                    ::core::fmt::Display::fmt(element, f)
2561                }
2562                Self::PermissionNotConfigured(element) => {
2563                    ::core::fmt::Display::fmt(element, f)
2564                }
2565                Self::PermissionNotFound(element) => {
2566                    ::core::fmt::Display::fmt(element, f)
2567                }
2568                Self::SafeMultisendSameAddress(element) => {
2569                    ::core::fmt::Display::fmt(element, f)
2570                }
2571                Self::SendNotAllowed(element) => ::core::fmt::Display::fmt(element, f),
2572                Self::TargetAddressNotAllowed(element) => {
2573                    ::core::fmt::Display::fmt(element, f)
2574                }
2575                Self::TargetIsNotScoped(element) => ::core::fmt::Display::fmt(element, f),
2576                Self::TargetIsScoped(element) => ::core::fmt::Display::fmt(element, f),
2577                Self::TooManyCapabilities(element) => {
2578                    ::core::fmt::Display::fmt(element, f)
2579                }
2580                Self::UnacceptableMultiSendOffset(element) => {
2581                    ::core::fmt::Display::fmt(element, f)
2582                }
2583                Self::WithMembership(element) => ::core::fmt::Display::fmt(element, f),
2584                Self::RevertString(s) => ::core::fmt::Display::fmt(s, f),
2585            }
2586        }
2587    }
2588    impl ::core::convert::From<::std::string::String>
2589    for HoprNodeManagementModuleErrors {
2590        fn from(value: String) -> Self {
2591            Self::RevertString(value)
2592        }
2593    }
2594    impl ::core::convert::From<AddressIsZero> for HoprNodeManagementModuleErrors {
2595        fn from(value: AddressIsZero) -> Self {
2596            Self::AddressIsZero(value)
2597        }
2598    }
2599    impl ::core::convert::From<AlreadyInitialized> for HoprNodeManagementModuleErrors {
2600        fn from(value: AlreadyInitialized) -> Self {
2601            Self::AlreadyInitialized(value)
2602        }
2603    }
2604    impl ::core::convert::From<ArrayTooLong> for HoprNodeManagementModuleErrors {
2605        fn from(value: ArrayTooLong) -> Self {
2606            Self::ArrayTooLong(value)
2607        }
2608    }
2609    impl ::core::convert::From<ArraysDifferentLength>
2610    for HoprNodeManagementModuleErrors {
2611        fn from(value: ArraysDifferentLength) -> Self {
2612            Self::ArraysDifferentLength(value)
2613        }
2614    }
2615    impl ::core::convert::From<CalldataOutOfBounds> for HoprNodeManagementModuleErrors {
2616        fn from(value: CalldataOutOfBounds) -> Self {
2617            Self::CalldataOutOfBounds(value)
2618        }
2619    }
2620    impl ::core::convert::From<CannotChangeOwner> for HoprNodeManagementModuleErrors {
2621        fn from(value: CannotChangeOwner) -> Self {
2622            Self::CannotChangeOwner(value)
2623        }
2624    }
2625    impl ::core::convert::From<DefaultPermissionRejected>
2626    for HoprNodeManagementModuleErrors {
2627        fn from(value: DefaultPermissionRejected) -> Self {
2628            Self::DefaultPermissionRejected(value)
2629        }
2630    }
2631    impl ::core::convert::From<DelegateCallNotAllowed>
2632    for HoprNodeManagementModuleErrors {
2633        fn from(value: DelegateCallNotAllowed) -> Self {
2634            Self::DelegateCallNotAllowed(value)
2635        }
2636    }
2637    impl ::core::convert::From<FunctionSignatureTooShort>
2638    for HoprNodeManagementModuleErrors {
2639        fn from(value: FunctionSignatureTooShort) -> Self {
2640            Self::FunctionSignatureTooShort(value)
2641        }
2642    }
2643    impl ::core::convert::From<GranularPermissionRejected>
2644    for HoprNodeManagementModuleErrors {
2645        fn from(value: GranularPermissionRejected) -> Self {
2646            Self::GranularPermissionRejected(value)
2647        }
2648    }
2649    impl ::core::convert::From<NoMembership> for HoprNodeManagementModuleErrors {
2650        fn from(value: NoMembership) -> Self {
2651            Self::NoMembership(value)
2652        }
2653    }
2654    impl ::core::convert::From<NodePermissionRejected>
2655    for HoprNodeManagementModuleErrors {
2656        fn from(value: NodePermissionRejected) -> Self {
2657            Self::NodePermissionRejected(value)
2658        }
2659    }
2660    impl ::core::convert::From<NonExistentKey> for HoprNodeManagementModuleErrors {
2661        fn from(value: NonExistentKey) -> Self {
2662            Self::NonExistentKey(value)
2663        }
2664    }
2665    impl ::core::convert::From<ParameterNotAllowed> for HoprNodeManagementModuleErrors {
2666        fn from(value: ParameterNotAllowed) -> Self {
2667            Self::ParameterNotAllowed(value)
2668        }
2669    }
2670    impl ::core::convert::From<PermissionNotConfigured>
2671    for HoprNodeManagementModuleErrors {
2672        fn from(value: PermissionNotConfigured) -> Self {
2673            Self::PermissionNotConfigured(value)
2674        }
2675    }
2676    impl ::core::convert::From<PermissionNotFound> for HoprNodeManagementModuleErrors {
2677        fn from(value: PermissionNotFound) -> Self {
2678            Self::PermissionNotFound(value)
2679        }
2680    }
2681    impl ::core::convert::From<SafeMultisendSameAddress>
2682    for HoprNodeManagementModuleErrors {
2683        fn from(value: SafeMultisendSameAddress) -> Self {
2684            Self::SafeMultisendSameAddress(value)
2685        }
2686    }
2687    impl ::core::convert::From<SendNotAllowed> for HoprNodeManagementModuleErrors {
2688        fn from(value: SendNotAllowed) -> Self {
2689            Self::SendNotAllowed(value)
2690        }
2691    }
2692    impl ::core::convert::From<TargetAddressNotAllowed>
2693    for HoprNodeManagementModuleErrors {
2694        fn from(value: TargetAddressNotAllowed) -> Self {
2695            Self::TargetAddressNotAllowed(value)
2696        }
2697    }
2698    impl ::core::convert::From<TargetIsNotScoped> for HoprNodeManagementModuleErrors {
2699        fn from(value: TargetIsNotScoped) -> Self {
2700            Self::TargetIsNotScoped(value)
2701        }
2702    }
2703    impl ::core::convert::From<TargetIsScoped> for HoprNodeManagementModuleErrors {
2704        fn from(value: TargetIsScoped) -> Self {
2705            Self::TargetIsScoped(value)
2706        }
2707    }
2708    impl ::core::convert::From<TooManyCapabilities> for HoprNodeManagementModuleErrors {
2709        fn from(value: TooManyCapabilities) -> Self {
2710            Self::TooManyCapabilities(value)
2711        }
2712    }
2713    impl ::core::convert::From<UnacceptableMultiSendOffset>
2714    for HoprNodeManagementModuleErrors {
2715        fn from(value: UnacceptableMultiSendOffset) -> Self {
2716            Self::UnacceptableMultiSendOffset(value)
2717        }
2718    }
2719    impl ::core::convert::From<WithMembership> for HoprNodeManagementModuleErrors {
2720        fn from(value: WithMembership) -> Self {
2721            Self::WithMembership(value)
2722        }
2723    }
2724    #[derive(
2725        Clone,
2726        ::ethers::contract::EthEvent,
2727        ::ethers::contract::EthDisplay,
2728        serde::Serialize,
2729        serde::Deserialize,
2730        Default,
2731        Debug,
2732        PartialEq,
2733        Eq,
2734        Hash
2735    )]
2736    #[ethevent(name = "AdminChanged", abi = "AdminChanged(address,address)")]
2737    pub struct AdminChangedFilter {
2738        pub previous_admin: ::ethers::core::types::Address,
2739        pub new_admin: ::ethers::core::types::Address,
2740    }
2741    #[derive(
2742        Clone,
2743        ::ethers::contract::EthEvent,
2744        ::ethers::contract::EthDisplay,
2745        serde::Serialize,
2746        serde::Deserialize,
2747        Default,
2748        Debug,
2749        PartialEq,
2750        Eq,
2751        Hash
2752    )]
2753    #[ethevent(name = "BeaconUpgraded", abi = "BeaconUpgraded(address)")]
2754    pub struct BeaconUpgradedFilter {
2755        #[ethevent(indexed)]
2756        pub beacon: ::ethers::core::types::Address,
2757    }
2758    #[derive(
2759        Clone,
2760        ::ethers::contract::EthEvent,
2761        ::ethers::contract::EthDisplay,
2762        serde::Serialize,
2763        serde::Deserialize,
2764        Default,
2765        Debug,
2766        PartialEq,
2767        Eq,
2768        Hash
2769    )]
2770    #[ethevent(name = "ExecutionFailure", abi = "ExecutionFailure()")]
2771    pub struct ExecutionFailureFilter;
2772    #[derive(
2773        Clone,
2774        ::ethers::contract::EthEvent,
2775        ::ethers::contract::EthDisplay,
2776        serde::Serialize,
2777        serde::Deserialize,
2778        Default,
2779        Debug,
2780        PartialEq,
2781        Eq,
2782        Hash
2783    )]
2784    #[ethevent(name = "ExecutionSuccess", abi = "ExecutionSuccess()")]
2785    pub struct ExecutionSuccessFilter;
2786    #[derive(
2787        Clone,
2788        ::ethers::contract::EthEvent,
2789        ::ethers::contract::EthDisplay,
2790        serde::Serialize,
2791        serde::Deserialize,
2792        Default,
2793        Debug,
2794        PartialEq,
2795        Eq,
2796        Hash
2797    )]
2798    #[ethevent(name = "Initialized", abi = "Initialized(uint8)")]
2799    pub struct InitializedFilter {
2800        pub version: u8,
2801    }
2802    #[derive(
2803        Clone,
2804        ::ethers::contract::EthEvent,
2805        ::ethers::contract::EthDisplay,
2806        serde::Serialize,
2807        serde::Deserialize,
2808        Default,
2809        Debug,
2810        PartialEq,
2811        Eq,
2812        Hash
2813    )]
2814    #[ethevent(name = "NodeAdded", abi = "NodeAdded(address)")]
2815    pub struct NodeAddedFilter {
2816        #[ethevent(indexed)]
2817        pub node: ::ethers::core::types::Address,
2818    }
2819    #[derive(
2820        Clone,
2821        ::ethers::contract::EthEvent,
2822        ::ethers::contract::EthDisplay,
2823        serde::Serialize,
2824        serde::Deserialize,
2825        Default,
2826        Debug,
2827        PartialEq,
2828        Eq,
2829        Hash
2830    )]
2831    #[ethevent(name = "NodeRemoved", abi = "NodeRemoved(address)")]
2832    pub struct NodeRemovedFilter {
2833        #[ethevent(indexed)]
2834        pub node: ::ethers::core::types::Address,
2835    }
2836    #[derive(
2837        Clone,
2838        ::ethers::contract::EthEvent,
2839        ::ethers::contract::EthDisplay,
2840        serde::Serialize,
2841        serde::Deserialize,
2842        Default,
2843        Debug,
2844        PartialEq,
2845        Eq,
2846        Hash
2847    )]
2848    #[ethevent(
2849        name = "OwnershipTransferred",
2850        abi = "OwnershipTransferred(address,address)"
2851    )]
2852    pub struct OwnershipTransferredFilter {
2853        #[ethevent(indexed)]
2854        pub previous_owner: ::ethers::core::types::Address,
2855        #[ethevent(indexed)]
2856        pub new_owner: ::ethers::core::types::Address,
2857    }
2858    #[derive(
2859        Clone,
2860        ::ethers::contract::EthEvent,
2861        ::ethers::contract::EthDisplay,
2862        serde::Serialize,
2863        serde::Deserialize,
2864        Default,
2865        Debug,
2866        PartialEq,
2867        Eq,
2868        Hash
2869    )]
2870    #[ethevent(name = "SetMultisendAddress", abi = "SetMultisendAddress(address)")]
2871    pub struct SetMultisendAddressFilter {
2872        #[ethevent(indexed)]
2873        pub multisend_address: ::ethers::core::types::Address,
2874    }
2875    #[derive(
2876        Clone,
2877        ::ethers::contract::EthEvent,
2878        ::ethers::contract::EthDisplay,
2879        serde::Serialize,
2880        serde::Deserialize,
2881        Default,
2882        Debug,
2883        PartialEq,
2884        Eq,
2885        Hash
2886    )]
2887    #[ethevent(name = "Upgraded", abi = "Upgraded(address)")]
2888    pub struct UpgradedFilter {
2889        #[ethevent(indexed)]
2890        pub implementation: ::ethers::core::types::Address,
2891    }
2892    ///Container type for all of the contract's events
2893    #[derive(
2894        Clone,
2895        ::ethers::contract::EthAbiType,
2896        serde::Serialize,
2897        serde::Deserialize,
2898        Debug,
2899        PartialEq,
2900        Eq,
2901        Hash
2902    )]
2903    pub enum HoprNodeManagementModuleEvents {
2904        AdminChangedFilter(AdminChangedFilter),
2905        BeaconUpgradedFilter(BeaconUpgradedFilter),
2906        ExecutionFailureFilter(ExecutionFailureFilter),
2907        ExecutionSuccessFilter(ExecutionSuccessFilter),
2908        InitializedFilter(InitializedFilter),
2909        NodeAddedFilter(NodeAddedFilter),
2910        NodeRemovedFilter(NodeRemovedFilter),
2911        OwnershipTransferredFilter(OwnershipTransferredFilter),
2912        SetMultisendAddressFilter(SetMultisendAddressFilter),
2913        UpgradedFilter(UpgradedFilter),
2914    }
2915    impl ::ethers::contract::EthLogDecode for HoprNodeManagementModuleEvents {
2916        fn decode_log(
2917            log: &::ethers::core::abi::RawLog,
2918        ) -> ::core::result::Result<Self, ::ethers::core::abi::Error> {
2919            if let Ok(decoded) = AdminChangedFilter::decode_log(log) {
2920                return Ok(HoprNodeManagementModuleEvents::AdminChangedFilter(decoded));
2921            }
2922            if let Ok(decoded) = BeaconUpgradedFilter::decode_log(log) {
2923                return Ok(HoprNodeManagementModuleEvents::BeaconUpgradedFilter(decoded));
2924            }
2925            if let Ok(decoded) = ExecutionFailureFilter::decode_log(log) {
2926                return Ok(
2927                    HoprNodeManagementModuleEvents::ExecutionFailureFilter(decoded),
2928                );
2929            }
2930            if let Ok(decoded) = ExecutionSuccessFilter::decode_log(log) {
2931                return Ok(
2932                    HoprNodeManagementModuleEvents::ExecutionSuccessFilter(decoded),
2933                );
2934            }
2935            if let Ok(decoded) = InitializedFilter::decode_log(log) {
2936                return Ok(HoprNodeManagementModuleEvents::InitializedFilter(decoded));
2937            }
2938            if let Ok(decoded) = NodeAddedFilter::decode_log(log) {
2939                return Ok(HoprNodeManagementModuleEvents::NodeAddedFilter(decoded));
2940            }
2941            if let Ok(decoded) = NodeRemovedFilter::decode_log(log) {
2942                return Ok(HoprNodeManagementModuleEvents::NodeRemovedFilter(decoded));
2943            }
2944            if let Ok(decoded) = OwnershipTransferredFilter::decode_log(log) {
2945                return Ok(
2946                    HoprNodeManagementModuleEvents::OwnershipTransferredFilter(decoded),
2947                );
2948            }
2949            if let Ok(decoded) = SetMultisendAddressFilter::decode_log(log) {
2950                return Ok(
2951                    HoprNodeManagementModuleEvents::SetMultisendAddressFilter(decoded),
2952                );
2953            }
2954            if let Ok(decoded) = UpgradedFilter::decode_log(log) {
2955                return Ok(HoprNodeManagementModuleEvents::UpgradedFilter(decoded));
2956            }
2957            Err(::ethers::core::abi::Error::InvalidData)
2958        }
2959    }
2960    impl ::core::fmt::Display for HoprNodeManagementModuleEvents {
2961        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2962            match self {
2963                Self::AdminChangedFilter(element) => {
2964                    ::core::fmt::Display::fmt(element, f)
2965                }
2966                Self::BeaconUpgradedFilter(element) => {
2967                    ::core::fmt::Display::fmt(element, f)
2968                }
2969                Self::ExecutionFailureFilter(element) => {
2970                    ::core::fmt::Display::fmt(element, f)
2971                }
2972                Self::ExecutionSuccessFilter(element) => {
2973                    ::core::fmt::Display::fmt(element, f)
2974                }
2975                Self::InitializedFilter(element) => ::core::fmt::Display::fmt(element, f),
2976                Self::NodeAddedFilter(element) => ::core::fmt::Display::fmt(element, f),
2977                Self::NodeRemovedFilter(element) => ::core::fmt::Display::fmt(element, f),
2978                Self::OwnershipTransferredFilter(element) => {
2979                    ::core::fmt::Display::fmt(element, f)
2980                }
2981                Self::SetMultisendAddressFilter(element) => {
2982                    ::core::fmt::Display::fmt(element, f)
2983                }
2984                Self::UpgradedFilter(element) => ::core::fmt::Display::fmt(element, f),
2985            }
2986        }
2987    }
2988    impl ::core::convert::From<AdminChangedFilter> for HoprNodeManagementModuleEvents {
2989        fn from(value: AdminChangedFilter) -> Self {
2990            Self::AdminChangedFilter(value)
2991        }
2992    }
2993    impl ::core::convert::From<BeaconUpgradedFilter> for HoprNodeManagementModuleEvents {
2994        fn from(value: BeaconUpgradedFilter) -> Self {
2995            Self::BeaconUpgradedFilter(value)
2996        }
2997    }
2998    impl ::core::convert::From<ExecutionFailureFilter>
2999    for HoprNodeManagementModuleEvents {
3000        fn from(value: ExecutionFailureFilter) -> Self {
3001            Self::ExecutionFailureFilter(value)
3002        }
3003    }
3004    impl ::core::convert::From<ExecutionSuccessFilter>
3005    for HoprNodeManagementModuleEvents {
3006        fn from(value: ExecutionSuccessFilter) -> Self {
3007            Self::ExecutionSuccessFilter(value)
3008        }
3009    }
3010    impl ::core::convert::From<InitializedFilter> for HoprNodeManagementModuleEvents {
3011        fn from(value: InitializedFilter) -> Self {
3012            Self::InitializedFilter(value)
3013        }
3014    }
3015    impl ::core::convert::From<NodeAddedFilter> for HoprNodeManagementModuleEvents {
3016        fn from(value: NodeAddedFilter) -> Self {
3017            Self::NodeAddedFilter(value)
3018        }
3019    }
3020    impl ::core::convert::From<NodeRemovedFilter> for HoprNodeManagementModuleEvents {
3021        fn from(value: NodeRemovedFilter) -> Self {
3022            Self::NodeRemovedFilter(value)
3023        }
3024    }
3025    impl ::core::convert::From<OwnershipTransferredFilter>
3026    for HoprNodeManagementModuleEvents {
3027        fn from(value: OwnershipTransferredFilter) -> Self {
3028            Self::OwnershipTransferredFilter(value)
3029        }
3030    }
3031    impl ::core::convert::From<SetMultisendAddressFilter>
3032    for HoprNodeManagementModuleEvents {
3033        fn from(value: SetMultisendAddressFilter) -> Self {
3034            Self::SetMultisendAddressFilter(value)
3035        }
3036    }
3037    impl ::core::convert::From<UpgradedFilter> for HoprNodeManagementModuleEvents {
3038        fn from(value: UpgradedFilter) -> Self {
3039            Self::UpgradedFilter(value)
3040        }
3041    }
3042    ///Container type for all input parameters for the `addChannelsAndTokenTarget` function with signature `addChannelsAndTokenTarget(uint256)` and selector `0xa2450f89`
3043    #[derive(
3044        Clone,
3045        ::ethers::contract::EthCall,
3046        ::ethers::contract::EthDisplay,
3047        serde::Serialize,
3048        serde::Deserialize,
3049        Default,
3050        Debug,
3051        PartialEq,
3052        Eq,
3053        Hash
3054    )]
3055    #[ethcall(
3056        name = "addChannelsAndTokenTarget",
3057        abi = "addChannelsAndTokenTarget(uint256)"
3058    )]
3059    pub struct AddChannelsAndTokenTargetCall {
3060        pub default_target: ::ethers::core::types::U256,
3061    }
3062    ///Container type for all input parameters for the `addNode` function with signature `addNode(address)` and selector `0x9d95f1cc`
3063    #[derive(
3064        Clone,
3065        ::ethers::contract::EthCall,
3066        ::ethers::contract::EthDisplay,
3067        serde::Serialize,
3068        serde::Deserialize,
3069        Default,
3070        Debug,
3071        PartialEq,
3072        Eq,
3073        Hash
3074    )]
3075    #[ethcall(name = "addNode", abi = "addNode(address)")]
3076    pub struct AddNodeCall {
3077        pub node_address: ::ethers::core::types::Address,
3078    }
3079    ///Container type for all input parameters for the `decodeFunctionSigsAndPermissions` function with signature `decodeFunctionSigsAndPermissions(bytes32,uint256)` and selector `0x60976c4b`
3080    #[derive(
3081        Clone,
3082        ::ethers::contract::EthCall,
3083        ::ethers::contract::EthDisplay,
3084        serde::Serialize,
3085        serde::Deserialize,
3086        Default,
3087        Debug,
3088        PartialEq,
3089        Eq,
3090        Hash
3091    )]
3092    #[ethcall(
3093        name = "decodeFunctionSigsAndPermissions",
3094        abi = "decodeFunctionSigsAndPermissions(bytes32,uint256)"
3095    )]
3096    pub struct DecodeFunctionSigsAndPermissionsCall {
3097        pub encoded: [u8; 32],
3098        pub length: ::ethers::core::types::U256,
3099    }
3100    ///Container type for all input parameters for the `encodeFunctionSigsAndPermissions` function with signature `encodeFunctionSigsAndPermissions(bytes4[],uint8[])` and selector `0x56f55117`
3101    #[derive(
3102        Clone,
3103        ::ethers::contract::EthCall,
3104        ::ethers::contract::EthDisplay,
3105        serde::Serialize,
3106        serde::Deserialize,
3107        Default,
3108        Debug,
3109        PartialEq,
3110        Eq,
3111        Hash
3112    )]
3113    #[ethcall(
3114        name = "encodeFunctionSigsAndPermissions",
3115        abi = "encodeFunctionSigsAndPermissions(bytes4[],uint8[])"
3116    )]
3117    pub struct EncodeFunctionSigsAndPermissionsCall {
3118        pub function_sigs: ::std::vec::Vec<[u8; 4]>,
3119        pub permissions: ::std::vec::Vec<u8>,
3120    }
3121    ///Container type for all input parameters for the `execTransactionFromModule` function with signature `execTransactionFromModule(address,uint256,bytes,uint8)` and selector `0x468721a7`
3122    #[derive(
3123        Clone,
3124        ::ethers::contract::EthCall,
3125        ::ethers::contract::EthDisplay,
3126        serde::Serialize,
3127        serde::Deserialize,
3128        Default,
3129        Debug,
3130        PartialEq,
3131        Eq,
3132        Hash
3133    )]
3134    #[ethcall(
3135        name = "execTransactionFromModule",
3136        abi = "execTransactionFromModule(address,uint256,bytes,uint8)"
3137    )]
3138    pub struct ExecTransactionFromModuleCall {
3139        pub to: ::ethers::core::types::Address,
3140        pub value: ::ethers::core::types::U256,
3141        pub data: ::ethers::core::types::Bytes,
3142        pub operation: u8,
3143    }
3144    ///Container type for all input parameters for the `execTransactionFromModuleReturnData` function with signature `execTransactionFromModuleReturnData(address,uint256,bytes,uint8)` and selector `0x5229073f`
3145    #[derive(
3146        Clone,
3147        ::ethers::contract::EthCall,
3148        ::ethers::contract::EthDisplay,
3149        serde::Serialize,
3150        serde::Deserialize,
3151        Default,
3152        Debug,
3153        PartialEq,
3154        Eq,
3155        Hash
3156    )]
3157    #[ethcall(
3158        name = "execTransactionFromModuleReturnData",
3159        abi = "execTransactionFromModuleReturnData(address,uint256,bytes,uint8)"
3160    )]
3161    pub struct ExecTransactionFromModuleReturnDataCall {
3162        pub to: ::ethers::core::types::Address,
3163        pub value: ::ethers::core::types::U256,
3164        pub data: ::ethers::core::types::Bytes,
3165        pub operation: u8,
3166    }
3167    ///Container type for all input parameters for the `getGranularPermissions` function with signature `getGranularPermissions(bytes32,bytes32)` and selector `0xdc446a4a`
3168    #[derive(
3169        Clone,
3170        ::ethers::contract::EthCall,
3171        ::ethers::contract::EthDisplay,
3172        serde::Serialize,
3173        serde::Deserialize,
3174        Default,
3175        Debug,
3176        PartialEq,
3177        Eq,
3178        Hash
3179    )]
3180    #[ethcall(
3181        name = "getGranularPermissions",
3182        abi = "getGranularPermissions(bytes32,bytes32)"
3183    )]
3184    pub struct GetGranularPermissionsCall {
3185        pub capability_key: [u8; 32],
3186        pub pair_id: [u8; 32],
3187    }
3188    ///Container type for all input parameters for the `getTargets` function with signature `getTargets()` and selector `0x63fe3b56`
3189    #[derive(
3190        Clone,
3191        ::ethers::contract::EthCall,
3192        ::ethers::contract::EthDisplay,
3193        serde::Serialize,
3194        serde::Deserialize,
3195        Default,
3196        Debug,
3197        PartialEq,
3198        Eq,
3199        Hash
3200    )]
3201    #[ethcall(name = "getTargets", abi = "getTargets()")]
3202    pub struct GetTargetsCall;
3203    ///Container type for all input parameters for the `includeNode` function with signature `includeNode(uint256)` and selector `0xb5736962`
3204    #[derive(
3205        Clone,
3206        ::ethers::contract::EthCall,
3207        ::ethers::contract::EthDisplay,
3208        serde::Serialize,
3209        serde::Deserialize,
3210        Default,
3211        Debug,
3212        PartialEq,
3213        Eq,
3214        Hash
3215    )]
3216    #[ethcall(name = "includeNode", abi = "includeNode(uint256)")]
3217    pub struct IncludeNodeCall {
3218        pub node_default_target: ::ethers::core::types::U256,
3219    }
3220    ///Container type for all input parameters for the `initialize` function with signature `initialize(bytes)` and selector `0x439fab91`
3221    #[derive(
3222        Clone,
3223        ::ethers::contract::EthCall,
3224        ::ethers::contract::EthDisplay,
3225        serde::Serialize,
3226        serde::Deserialize,
3227        Default,
3228        Debug,
3229        PartialEq,
3230        Eq,
3231        Hash
3232    )]
3233    #[ethcall(name = "initialize", abi = "initialize(bytes)")]
3234    pub struct InitializeCall {
3235        pub init_params: ::ethers::core::types::Bytes,
3236    }
3237    ///Container type for all input parameters for the `isHoprNodeManagementModule` function with signature `isHoprNodeManagementModule()` and selector `0x4a1ba408`
3238    #[derive(
3239        Clone,
3240        ::ethers::contract::EthCall,
3241        ::ethers::contract::EthDisplay,
3242        serde::Serialize,
3243        serde::Deserialize,
3244        Default,
3245        Debug,
3246        PartialEq,
3247        Eq,
3248        Hash
3249    )]
3250    #[ethcall(name = "isHoprNodeManagementModule", abi = "isHoprNodeManagementModule()")]
3251    pub struct IsHoprNodeManagementModuleCall;
3252    ///Container type for all input parameters for the `isNode` function with signature `isNode(address)` and selector `0x01750152`
3253    #[derive(
3254        Clone,
3255        ::ethers::contract::EthCall,
3256        ::ethers::contract::EthDisplay,
3257        serde::Serialize,
3258        serde::Deserialize,
3259        Default,
3260        Debug,
3261        PartialEq,
3262        Eq,
3263        Hash
3264    )]
3265    #[ethcall(name = "isNode", abi = "isNode(address)")]
3266    pub struct IsNodeCall {
3267        pub node_address: ::ethers::core::types::Address,
3268    }
3269    ///Container type for all input parameters for the `multisend` function with signature `multisend()` and selector `0x294402cc`
3270    #[derive(
3271        Clone,
3272        ::ethers::contract::EthCall,
3273        ::ethers::contract::EthDisplay,
3274        serde::Serialize,
3275        serde::Deserialize,
3276        Default,
3277        Debug,
3278        PartialEq,
3279        Eq,
3280        Hash
3281    )]
3282    #[ethcall(name = "multisend", abi = "multisend()")]
3283    pub struct MultisendCall;
3284    ///Container type for all input parameters for the `owner` function with signature `owner()` and selector `0x8da5cb5b`
3285    #[derive(
3286        Clone,
3287        ::ethers::contract::EthCall,
3288        ::ethers::contract::EthDisplay,
3289        serde::Serialize,
3290        serde::Deserialize,
3291        Default,
3292        Debug,
3293        PartialEq,
3294        Eq,
3295        Hash
3296    )]
3297    #[ethcall(name = "owner", abi = "owner()")]
3298    pub struct OwnerCall;
3299    ///Container type for all input parameters for the `proxiableUUID` function with signature `proxiableUUID()` and selector `0x52d1902d`
3300    #[derive(
3301        Clone,
3302        ::ethers::contract::EthCall,
3303        ::ethers::contract::EthDisplay,
3304        serde::Serialize,
3305        serde::Deserialize,
3306        Default,
3307        Debug,
3308        PartialEq,
3309        Eq,
3310        Hash
3311    )]
3312    #[ethcall(name = "proxiableUUID", abi = "proxiableUUID()")]
3313    pub struct ProxiableUUIDCall;
3314    ///Container type for all input parameters for the `removeNode` function with signature `removeNode(address)` and selector `0xb2b99ec9`
3315    #[derive(
3316        Clone,
3317        ::ethers::contract::EthCall,
3318        ::ethers::contract::EthDisplay,
3319        serde::Serialize,
3320        serde::Deserialize,
3321        Default,
3322        Debug,
3323        PartialEq,
3324        Eq,
3325        Hash
3326    )]
3327    #[ethcall(name = "removeNode", abi = "removeNode(address)")]
3328    pub struct RemoveNodeCall {
3329        pub node_address: ::ethers::core::types::Address,
3330    }
3331    ///Container type for all input parameters for the `renounceOwnership` function with signature `renounceOwnership()` and selector `0x715018a6`
3332    #[derive(
3333        Clone,
3334        ::ethers::contract::EthCall,
3335        ::ethers::contract::EthDisplay,
3336        serde::Serialize,
3337        serde::Deserialize,
3338        Default,
3339        Debug,
3340        PartialEq,
3341        Eq,
3342        Hash
3343    )]
3344    #[ethcall(name = "renounceOwnership", abi = "renounceOwnership()")]
3345    pub struct RenounceOwnershipCall;
3346    ///Container type for all input parameters for the `revokeTarget` function with signature `revokeTarget(address)` and selector `0x3401cde8`
3347    #[derive(
3348        Clone,
3349        ::ethers::contract::EthCall,
3350        ::ethers::contract::EthDisplay,
3351        serde::Serialize,
3352        serde::Deserialize,
3353        Default,
3354        Debug,
3355        PartialEq,
3356        Eq,
3357        Hash
3358    )]
3359    #[ethcall(name = "revokeTarget", abi = "revokeTarget(address)")]
3360    pub struct RevokeTargetCall {
3361        pub target_address: ::ethers::core::types::Address,
3362    }
3363    ///Container type for all input parameters for the `scopeChannelsCapabilities` function with signature `scopeChannelsCapabilities(address,bytes32,bytes32)` and selector `0xfa19501d`
3364    #[derive(
3365        Clone,
3366        ::ethers::contract::EthCall,
3367        ::ethers::contract::EthDisplay,
3368        serde::Serialize,
3369        serde::Deserialize,
3370        Default,
3371        Debug,
3372        PartialEq,
3373        Eq,
3374        Hash
3375    )]
3376    #[ethcall(
3377        name = "scopeChannelsCapabilities",
3378        abi = "scopeChannelsCapabilities(address,bytes32,bytes32)"
3379    )]
3380    pub struct ScopeChannelsCapabilitiesCall {
3381        pub target_address: ::ethers::core::types::Address,
3382        pub channel_id: [u8; 32],
3383        pub encoded_sigs_permissions: [u8; 32],
3384    }
3385    ///Container type for all input parameters for the `scopeSendCapability` function with signature `scopeSendCapability(address,address,uint8)` and selector `0xc68c3a83`
3386    #[derive(
3387        Clone,
3388        ::ethers::contract::EthCall,
3389        ::ethers::contract::EthDisplay,
3390        serde::Serialize,
3391        serde::Deserialize,
3392        Default,
3393        Debug,
3394        PartialEq,
3395        Eq,
3396        Hash
3397    )]
3398    #[ethcall(
3399        name = "scopeSendCapability",
3400        abi = "scopeSendCapability(address,address,uint8)"
3401    )]
3402    pub struct ScopeSendCapabilityCall {
3403        pub node_address: ::ethers::core::types::Address,
3404        pub beneficiary: ::ethers::core::types::Address,
3405        pub permission: u8,
3406    }
3407    ///Container type for all input parameters for the `scopeTargetChannels` function with signature `scopeTargetChannels(uint256)` and selector `0x739c4b08`
3408    #[derive(
3409        Clone,
3410        ::ethers::contract::EthCall,
3411        ::ethers::contract::EthDisplay,
3412        serde::Serialize,
3413        serde::Deserialize,
3414        Default,
3415        Debug,
3416        PartialEq,
3417        Eq,
3418        Hash
3419    )]
3420    #[ethcall(name = "scopeTargetChannels", abi = "scopeTargetChannels(uint256)")]
3421    pub struct ScopeTargetChannelsCall {
3422        pub default_target: ::ethers::core::types::U256,
3423    }
3424    ///Container type for all input parameters for the `scopeTargetSend` function with signature `scopeTargetSend(uint256)` and selector `0xdc06109d`
3425    #[derive(
3426        Clone,
3427        ::ethers::contract::EthCall,
3428        ::ethers::contract::EthDisplay,
3429        serde::Serialize,
3430        serde::Deserialize,
3431        Default,
3432        Debug,
3433        PartialEq,
3434        Eq,
3435        Hash
3436    )]
3437    #[ethcall(name = "scopeTargetSend", abi = "scopeTargetSend(uint256)")]
3438    pub struct ScopeTargetSendCall {
3439        pub default_target: ::ethers::core::types::U256,
3440    }
3441    ///Container type for all input parameters for the `scopeTargetToken` function with signature `scopeTargetToken(uint256)` and selector `0xa76c9a2f`
3442    #[derive(
3443        Clone,
3444        ::ethers::contract::EthCall,
3445        ::ethers::contract::EthDisplay,
3446        serde::Serialize,
3447        serde::Deserialize,
3448        Default,
3449        Debug,
3450        PartialEq,
3451        Eq,
3452        Hash
3453    )]
3454    #[ethcall(name = "scopeTargetToken", abi = "scopeTargetToken(uint256)")]
3455    pub struct ScopeTargetTokenCall {
3456        pub default_target: ::ethers::core::types::U256,
3457    }
3458    ///Container type for all input parameters for the `scopeTokenCapabilities` function with signature `scopeTokenCapabilities(address,address,address,bytes32)` and selector `0xc68605c8`
3459    #[derive(
3460        Clone,
3461        ::ethers::contract::EthCall,
3462        ::ethers::contract::EthDisplay,
3463        serde::Serialize,
3464        serde::Deserialize,
3465        Default,
3466        Debug,
3467        PartialEq,
3468        Eq,
3469        Hash
3470    )]
3471    #[ethcall(
3472        name = "scopeTokenCapabilities",
3473        abi = "scopeTokenCapabilities(address,address,address,bytes32)"
3474    )]
3475    pub struct ScopeTokenCapabilitiesCall {
3476        pub node_address: ::ethers::core::types::Address,
3477        pub target_address: ::ethers::core::types::Address,
3478        pub beneficiary: ::ethers::core::types::Address,
3479        pub encoded_sigs_permissions: [u8; 32],
3480    }
3481    ///Container type for all input parameters for the `setMultisend` function with signature `setMultisend(address)` and selector `0x8b95eccd`
3482    #[derive(
3483        Clone,
3484        ::ethers::contract::EthCall,
3485        ::ethers::contract::EthDisplay,
3486        serde::Serialize,
3487        serde::Deserialize,
3488        Default,
3489        Debug,
3490        PartialEq,
3491        Eq,
3492        Hash
3493    )]
3494    #[ethcall(name = "setMultisend", abi = "setMultisend(address)")]
3495    pub struct SetMultisendCall {
3496        pub multisend: ::ethers::core::types::Address,
3497    }
3498    ///Container type for all input parameters for the `transferOwnership` function with signature `transferOwnership(address)` and selector `0xf2fde38b`
3499    #[derive(
3500        Clone,
3501        ::ethers::contract::EthCall,
3502        ::ethers::contract::EthDisplay,
3503        serde::Serialize,
3504        serde::Deserialize,
3505        Default,
3506        Debug,
3507        PartialEq,
3508        Eq,
3509        Hash
3510    )]
3511    #[ethcall(name = "transferOwnership", abi = "transferOwnership(address)")]
3512    pub struct TransferOwnershipCall {
3513        pub new_owner: ::ethers::core::types::Address,
3514    }
3515    ///Container type for all input parameters for the `tryGetTarget` function with signature `tryGetTarget(address)` and selector `0xdf4e6f8a`
3516    #[derive(
3517        Clone,
3518        ::ethers::contract::EthCall,
3519        ::ethers::contract::EthDisplay,
3520        serde::Serialize,
3521        serde::Deserialize,
3522        Default,
3523        Debug,
3524        PartialEq,
3525        Eq,
3526        Hash
3527    )]
3528    #[ethcall(name = "tryGetTarget", abi = "tryGetTarget(address)")]
3529    pub struct TryGetTargetCall {
3530        pub target_address: ::ethers::core::types::Address,
3531    }
3532    ///Container type for all input parameters for the `upgradeTo` function with signature `upgradeTo(address)` and selector `0x3659cfe6`
3533    #[derive(
3534        Clone,
3535        ::ethers::contract::EthCall,
3536        ::ethers::contract::EthDisplay,
3537        serde::Serialize,
3538        serde::Deserialize,
3539        Default,
3540        Debug,
3541        PartialEq,
3542        Eq,
3543        Hash
3544    )]
3545    #[ethcall(name = "upgradeTo", abi = "upgradeTo(address)")]
3546    pub struct UpgradeToCall {
3547        pub new_implementation: ::ethers::core::types::Address,
3548    }
3549    ///Container type for all input parameters for the `upgradeToAndCall` function with signature `upgradeToAndCall(address,bytes)` and selector `0x4f1ef286`
3550    #[derive(
3551        Clone,
3552        ::ethers::contract::EthCall,
3553        ::ethers::contract::EthDisplay,
3554        serde::Serialize,
3555        serde::Deserialize,
3556        Default,
3557        Debug,
3558        PartialEq,
3559        Eq,
3560        Hash
3561    )]
3562    #[ethcall(name = "upgradeToAndCall", abi = "upgradeToAndCall(address,bytes)")]
3563    pub struct UpgradeToAndCallCall {
3564        pub new_implementation: ::ethers::core::types::Address,
3565        pub data: ::ethers::core::types::Bytes,
3566    }
3567    ///Container type for all of the contract's call
3568    #[derive(
3569        Clone,
3570        ::ethers::contract::EthAbiType,
3571        serde::Serialize,
3572        serde::Deserialize,
3573        Debug,
3574        PartialEq,
3575        Eq,
3576        Hash
3577    )]
3578    pub enum HoprNodeManagementModuleCalls {
3579        AddChannelsAndTokenTarget(AddChannelsAndTokenTargetCall),
3580        AddNode(AddNodeCall),
3581        DecodeFunctionSigsAndPermissions(DecodeFunctionSigsAndPermissionsCall),
3582        EncodeFunctionSigsAndPermissions(EncodeFunctionSigsAndPermissionsCall),
3583        ExecTransactionFromModule(ExecTransactionFromModuleCall),
3584        ExecTransactionFromModuleReturnData(ExecTransactionFromModuleReturnDataCall),
3585        GetGranularPermissions(GetGranularPermissionsCall),
3586        GetTargets(GetTargetsCall),
3587        IncludeNode(IncludeNodeCall),
3588        Initialize(InitializeCall),
3589        IsHoprNodeManagementModule(IsHoprNodeManagementModuleCall),
3590        IsNode(IsNodeCall),
3591        Multisend(MultisendCall),
3592        Owner(OwnerCall),
3593        ProxiableUUID(ProxiableUUIDCall),
3594        RemoveNode(RemoveNodeCall),
3595        RenounceOwnership(RenounceOwnershipCall),
3596        RevokeTarget(RevokeTargetCall),
3597        ScopeChannelsCapabilities(ScopeChannelsCapabilitiesCall),
3598        ScopeSendCapability(ScopeSendCapabilityCall),
3599        ScopeTargetChannels(ScopeTargetChannelsCall),
3600        ScopeTargetSend(ScopeTargetSendCall),
3601        ScopeTargetToken(ScopeTargetTokenCall),
3602        ScopeTokenCapabilities(ScopeTokenCapabilitiesCall),
3603        SetMultisend(SetMultisendCall),
3604        TransferOwnership(TransferOwnershipCall),
3605        TryGetTarget(TryGetTargetCall),
3606        UpgradeTo(UpgradeToCall),
3607        UpgradeToAndCall(UpgradeToAndCallCall),
3608    }
3609    impl ::ethers::core::abi::AbiDecode for HoprNodeManagementModuleCalls {
3610        fn decode(
3611            data: impl AsRef<[u8]>,
3612        ) -> ::core::result::Result<Self, ::ethers::core::abi::AbiError> {
3613            let data = data.as_ref();
3614            if let Ok(decoded) = <AddChannelsAndTokenTargetCall as ::ethers::core::abi::AbiDecode>::decode(
3615                data,
3616            ) {
3617                return Ok(Self::AddChannelsAndTokenTarget(decoded));
3618            }
3619            if let Ok(decoded) = <AddNodeCall as ::ethers::core::abi::AbiDecode>::decode(
3620                data,
3621            ) {
3622                return Ok(Self::AddNode(decoded));
3623            }
3624            if let Ok(decoded) = <DecodeFunctionSigsAndPermissionsCall as ::ethers::core::abi::AbiDecode>::decode(
3625                data,
3626            ) {
3627                return Ok(Self::DecodeFunctionSigsAndPermissions(decoded));
3628            }
3629            if let Ok(decoded) = <EncodeFunctionSigsAndPermissionsCall as ::ethers::core::abi::AbiDecode>::decode(
3630                data,
3631            ) {
3632                return Ok(Self::EncodeFunctionSigsAndPermissions(decoded));
3633            }
3634            if let Ok(decoded) = <ExecTransactionFromModuleCall as ::ethers::core::abi::AbiDecode>::decode(
3635                data,
3636            ) {
3637                return Ok(Self::ExecTransactionFromModule(decoded));
3638            }
3639            if let Ok(decoded) = <ExecTransactionFromModuleReturnDataCall as ::ethers::core::abi::AbiDecode>::decode(
3640                data,
3641            ) {
3642                return Ok(Self::ExecTransactionFromModuleReturnData(decoded));
3643            }
3644            if let Ok(decoded) = <GetGranularPermissionsCall as ::ethers::core::abi::AbiDecode>::decode(
3645                data,
3646            ) {
3647                return Ok(Self::GetGranularPermissions(decoded));
3648            }
3649            if let Ok(decoded) = <GetTargetsCall as ::ethers::core::abi::AbiDecode>::decode(
3650                data,
3651            ) {
3652                return Ok(Self::GetTargets(decoded));
3653            }
3654            if let Ok(decoded) = <IncludeNodeCall as ::ethers::core::abi::AbiDecode>::decode(
3655                data,
3656            ) {
3657                return Ok(Self::IncludeNode(decoded));
3658            }
3659            if let Ok(decoded) = <InitializeCall as ::ethers::core::abi::AbiDecode>::decode(
3660                data,
3661            ) {
3662                return Ok(Self::Initialize(decoded));
3663            }
3664            if let Ok(decoded) = <IsHoprNodeManagementModuleCall as ::ethers::core::abi::AbiDecode>::decode(
3665                data,
3666            ) {
3667                return Ok(Self::IsHoprNodeManagementModule(decoded));
3668            }
3669            if let Ok(decoded) = <IsNodeCall as ::ethers::core::abi::AbiDecode>::decode(
3670                data,
3671            ) {
3672                return Ok(Self::IsNode(decoded));
3673            }
3674            if let Ok(decoded) = <MultisendCall as ::ethers::core::abi::AbiDecode>::decode(
3675                data,
3676            ) {
3677                return Ok(Self::Multisend(decoded));
3678            }
3679            if let Ok(decoded) = <OwnerCall as ::ethers::core::abi::AbiDecode>::decode(
3680                data,
3681            ) {
3682                return Ok(Self::Owner(decoded));
3683            }
3684            if let Ok(decoded) = <ProxiableUUIDCall as ::ethers::core::abi::AbiDecode>::decode(
3685                data,
3686            ) {
3687                return Ok(Self::ProxiableUUID(decoded));
3688            }
3689            if let Ok(decoded) = <RemoveNodeCall as ::ethers::core::abi::AbiDecode>::decode(
3690                data,
3691            ) {
3692                return Ok(Self::RemoveNode(decoded));
3693            }
3694            if let Ok(decoded) = <RenounceOwnershipCall as ::ethers::core::abi::AbiDecode>::decode(
3695                data,
3696            ) {
3697                return Ok(Self::RenounceOwnership(decoded));
3698            }
3699            if let Ok(decoded) = <RevokeTargetCall as ::ethers::core::abi::AbiDecode>::decode(
3700                data,
3701            ) {
3702                return Ok(Self::RevokeTarget(decoded));
3703            }
3704            if let Ok(decoded) = <ScopeChannelsCapabilitiesCall as ::ethers::core::abi::AbiDecode>::decode(
3705                data,
3706            ) {
3707                return Ok(Self::ScopeChannelsCapabilities(decoded));
3708            }
3709            if let Ok(decoded) = <ScopeSendCapabilityCall as ::ethers::core::abi::AbiDecode>::decode(
3710                data,
3711            ) {
3712                return Ok(Self::ScopeSendCapability(decoded));
3713            }
3714            if let Ok(decoded) = <ScopeTargetChannelsCall as ::ethers::core::abi::AbiDecode>::decode(
3715                data,
3716            ) {
3717                return Ok(Self::ScopeTargetChannels(decoded));
3718            }
3719            if let Ok(decoded) = <ScopeTargetSendCall as ::ethers::core::abi::AbiDecode>::decode(
3720                data,
3721            ) {
3722                return Ok(Self::ScopeTargetSend(decoded));
3723            }
3724            if let Ok(decoded) = <ScopeTargetTokenCall as ::ethers::core::abi::AbiDecode>::decode(
3725                data,
3726            ) {
3727                return Ok(Self::ScopeTargetToken(decoded));
3728            }
3729            if let Ok(decoded) = <ScopeTokenCapabilitiesCall as ::ethers::core::abi::AbiDecode>::decode(
3730                data,
3731            ) {
3732                return Ok(Self::ScopeTokenCapabilities(decoded));
3733            }
3734            if let Ok(decoded) = <SetMultisendCall as ::ethers::core::abi::AbiDecode>::decode(
3735                data,
3736            ) {
3737                return Ok(Self::SetMultisend(decoded));
3738            }
3739            if let Ok(decoded) = <TransferOwnershipCall as ::ethers::core::abi::AbiDecode>::decode(
3740                data,
3741            ) {
3742                return Ok(Self::TransferOwnership(decoded));
3743            }
3744            if let Ok(decoded) = <TryGetTargetCall as ::ethers::core::abi::AbiDecode>::decode(
3745                data,
3746            ) {
3747                return Ok(Self::TryGetTarget(decoded));
3748            }
3749            if let Ok(decoded) = <UpgradeToCall as ::ethers::core::abi::AbiDecode>::decode(
3750                data,
3751            ) {
3752                return Ok(Self::UpgradeTo(decoded));
3753            }
3754            if let Ok(decoded) = <UpgradeToAndCallCall as ::ethers::core::abi::AbiDecode>::decode(
3755                data,
3756            ) {
3757                return Ok(Self::UpgradeToAndCall(decoded));
3758            }
3759            Err(::ethers::core::abi::Error::InvalidData.into())
3760        }
3761    }
3762    impl ::ethers::core::abi::AbiEncode for HoprNodeManagementModuleCalls {
3763        fn encode(self) -> Vec<u8> {
3764            match self {
3765                Self::AddChannelsAndTokenTarget(element) => {
3766                    ::ethers::core::abi::AbiEncode::encode(element)
3767                }
3768                Self::AddNode(element) => ::ethers::core::abi::AbiEncode::encode(element),
3769                Self::DecodeFunctionSigsAndPermissions(element) => {
3770                    ::ethers::core::abi::AbiEncode::encode(element)
3771                }
3772                Self::EncodeFunctionSigsAndPermissions(element) => {
3773                    ::ethers::core::abi::AbiEncode::encode(element)
3774                }
3775                Self::ExecTransactionFromModule(element) => {
3776                    ::ethers::core::abi::AbiEncode::encode(element)
3777                }
3778                Self::ExecTransactionFromModuleReturnData(element) => {
3779                    ::ethers::core::abi::AbiEncode::encode(element)
3780                }
3781                Self::GetGranularPermissions(element) => {
3782                    ::ethers::core::abi::AbiEncode::encode(element)
3783                }
3784                Self::GetTargets(element) => {
3785                    ::ethers::core::abi::AbiEncode::encode(element)
3786                }
3787                Self::IncludeNode(element) => {
3788                    ::ethers::core::abi::AbiEncode::encode(element)
3789                }
3790                Self::Initialize(element) => {
3791                    ::ethers::core::abi::AbiEncode::encode(element)
3792                }
3793                Self::IsHoprNodeManagementModule(element) => {
3794                    ::ethers::core::abi::AbiEncode::encode(element)
3795                }
3796                Self::IsNode(element) => ::ethers::core::abi::AbiEncode::encode(element),
3797                Self::Multisend(element) => {
3798                    ::ethers::core::abi::AbiEncode::encode(element)
3799                }
3800                Self::Owner(element) => ::ethers::core::abi::AbiEncode::encode(element),
3801                Self::ProxiableUUID(element) => {
3802                    ::ethers::core::abi::AbiEncode::encode(element)
3803                }
3804                Self::RemoveNode(element) => {
3805                    ::ethers::core::abi::AbiEncode::encode(element)
3806                }
3807                Self::RenounceOwnership(element) => {
3808                    ::ethers::core::abi::AbiEncode::encode(element)
3809                }
3810                Self::RevokeTarget(element) => {
3811                    ::ethers::core::abi::AbiEncode::encode(element)
3812                }
3813                Self::ScopeChannelsCapabilities(element) => {
3814                    ::ethers::core::abi::AbiEncode::encode(element)
3815                }
3816                Self::ScopeSendCapability(element) => {
3817                    ::ethers::core::abi::AbiEncode::encode(element)
3818                }
3819                Self::ScopeTargetChannels(element) => {
3820                    ::ethers::core::abi::AbiEncode::encode(element)
3821                }
3822                Self::ScopeTargetSend(element) => {
3823                    ::ethers::core::abi::AbiEncode::encode(element)
3824                }
3825                Self::ScopeTargetToken(element) => {
3826                    ::ethers::core::abi::AbiEncode::encode(element)
3827                }
3828                Self::ScopeTokenCapabilities(element) => {
3829                    ::ethers::core::abi::AbiEncode::encode(element)
3830                }
3831                Self::SetMultisend(element) => {
3832                    ::ethers::core::abi::AbiEncode::encode(element)
3833                }
3834                Self::TransferOwnership(element) => {
3835                    ::ethers::core::abi::AbiEncode::encode(element)
3836                }
3837                Self::TryGetTarget(element) => {
3838                    ::ethers::core::abi::AbiEncode::encode(element)
3839                }
3840                Self::UpgradeTo(element) => {
3841                    ::ethers::core::abi::AbiEncode::encode(element)
3842                }
3843                Self::UpgradeToAndCall(element) => {
3844                    ::ethers::core::abi::AbiEncode::encode(element)
3845                }
3846            }
3847        }
3848    }
3849    impl ::core::fmt::Display for HoprNodeManagementModuleCalls {
3850        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
3851            match self {
3852                Self::AddChannelsAndTokenTarget(element) => {
3853                    ::core::fmt::Display::fmt(element, f)
3854                }
3855                Self::AddNode(element) => ::core::fmt::Display::fmt(element, f),
3856                Self::DecodeFunctionSigsAndPermissions(element) => {
3857                    ::core::fmt::Display::fmt(element, f)
3858                }
3859                Self::EncodeFunctionSigsAndPermissions(element) => {
3860                    ::core::fmt::Display::fmt(element, f)
3861                }
3862                Self::ExecTransactionFromModule(element) => {
3863                    ::core::fmt::Display::fmt(element, f)
3864                }
3865                Self::ExecTransactionFromModuleReturnData(element) => {
3866                    ::core::fmt::Display::fmt(element, f)
3867                }
3868                Self::GetGranularPermissions(element) => {
3869                    ::core::fmt::Display::fmt(element, f)
3870                }
3871                Self::GetTargets(element) => ::core::fmt::Display::fmt(element, f),
3872                Self::IncludeNode(element) => ::core::fmt::Display::fmt(element, f),
3873                Self::Initialize(element) => ::core::fmt::Display::fmt(element, f),
3874                Self::IsHoprNodeManagementModule(element) => {
3875                    ::core::fmt::Display::fmt(element, f)
3876                }
3877                Self::IsNode(element) => ::core::fmt::Display::fmt(element, f),
3878                Self::Multisend(element) => ::core::fmt::Display::fmt(element, f),
3879                Self::Owner(element) => ::core::fmt::Display::fmt(element, f),
3880                Self::ProxiableUUID(element) => ::core::fmt::Display::fmt(element, f),
3881                Self::RemoveNode(element) => ::core::fmt::Display::fmt(element, f),
3882                Self::RenounceOwnership(element) => ::core::fmt::Display::fmt(element, f),
3883                Self::RevokeTarget(element) => ::core::fmt::Display::fmt(element, f),
3884                Self::ScopeChannelsCapabilities(element) => {
3885                    ::core::fmt::Display::fmt(element, f)
3886                }
3887                Self::ScopeSendCapability(element) => {
3888                    ::core::fmt::Display::fmt(element, f)
3889                }
3890                Self::ScopeTargetChannels(element) => {
3891                    ::core::fmt::Display::fmt(element, f)
3892                }
3893                Self::ScopeTargetSend(element) => ::core::fmt::Display::fmt(element, f),
3894                Self::ScopeTargetToken(element) => ::core::fmt::Display::fmt(element, f),
3895                Self::ScopeTokenCapabilities(element) => {
3896                    ::core::fmt::Display::fmt(element, f)
3897                }
3898                Self::SetMultisend(element) => ::core::fmt::Display::fmt(element, f),
3899                Self::TransferOwnership(element) => ::core::fmt::Display::fmt(element, f),
3900                Self::TryGetTarget(element) => ::core::fmt::Display::fmt(element, f),
3901                Self::UpgradeTo(element) => ::core::fmt::Display::fmt(element, f),
3902                Self::UpgradeToAndCall(element) => ::core::fmt::Display::fmt(element, f),
3903            }
3904        }
3905    }
3906    impl ::core::convert::From<AddChannelsAndTokenTargetCall>
3907    for HoprNodeManagementModuleCalls {
3908        fn from(value: AddChannelsAndTokenTargetCall) -> Self {
3909            Self::AddChannelsAndTokenTarget(value)
3910        }
3911    }
3912    impl ::core::convert::From<AddNodeCall> for HoprNodeManagementModuleCalls {
3913        fn from(value: AddNodeCall) -> Self {
3914            Self::AddNode(value)
3915        }
3916    }
3917    impl ::core::convert::From<DecodeFunctionSigsAndPermissionsCall>
3918    for HoprNodeManagementModuleCalls {
3919        fn from(value: DecodeFunctionSigsAndPermissionsCall) -> Self {
3920            Self::DecodeFunctionSigsAndPermissions(value)
3921        }
3922    }
3923    impl ::core::convert::From<EncodeFunctionSigsAndPermissionsCall>
3924    for HoprNodeManagementModuleCalls {
3925        fn from(value: EncodeFunctionSigsAndPermissionsCall) -> Self {
3926            Self::EncodeFunctionSigsAndPermissions(value)
3927        }
3928    }
3929    impl ::core::convert::From<ExecTransactionFromModuleCall>
3930    for HoprNodeManagementModuleCalls {
3931        fn from(value: ExecTransactionFromModuleCall) -> Self {
3932            Self::ExecTransactionFromModule(value)
3933        }
3934    }
3935    impl ::core::convert::From<ExecTransactionFromModuleReturnDataCall>
3936    for HoprNodeManagementModuleCalls {
3937        fn from(value: ExecTransactionFromModuleReturnDataCall) -> Self {
3938            Self::ExecTransactionFromModuleReturnData(value)
3939        }
3940    }
3941    impl ::core::convert::From<GetGranularPermissionsCall>
3942    for HoprNodeManagementModuleCalls {
3943        fn from(value: GetGranularPermissionsCall) -> Self {
3944            Self::GetGranularPermissions(value)
3945        }
3946    }
3947    impl ::core::convert::From<GetTargetsCall> for HoprNodeManagementModuleCalls {
3948        fn from(value: GetTargetsCall) -> Self {
3949            Self::GetTargets(value)
3950        }
3951    }
3952    impl ::core::convert::From<IncludeNodeCall> for HoprNodeManagementModuleCalls {
3953        fn from(value: IncludeNodeCall) -> Self {
3954            Self::IncludeNode(value)
3955        }
3956    }
3957    impl ::core::convert::From<InitializeCall> for HoprNodeManagementModuleCalls {
3958        fn from(value: InitializeCall) -> Self {
3959            Self::Initialize(value)
3960        }
3961    }
3962    impl ::core::convert::From<IsHoprNodeManagementModuleCall>
3963    for HoprNodeManagementModuleCalls {
3964        fn from(value: IsHoprNodeManagementModuleCall) -> Self {
3965            Self::IsHoprNodeManagementModule(value)
3966        }
3967    }
3968    impl ::core::convert::From<IsNodeCall> for HoprNodeManagementModuleCalls {
3969        fn from(value: IsNodeCall) -> Self {
3970            Self::IsNode(value)
3971        }
3972    }
3973    impl ::core::convert::From<MultisendCall> for HoprNodeManagementModuleCalls {
3974        fn from(value: MultisendCall) -> Self {
3975            Self::Multisend(value)
3976        }
3977    }
3978    impl ::core::convert::From<OwnerCall> for HoprNodeManagementModuleCalls {
3979        fn from(value: OwnerCall) -> Self {
3980            Self::Owner(value)
3981        }
3982    }
3983    impl ::core::convert::From<ProxiableUUIDCall> for HoprNodeManagementModuleCalls {
3984        fn from(value: ProxiableUUIDCall) -> Self {
3985            Self::ProxiableUUID(value)
3986        }
3987    }
3988    impl ::core::convert::From<RemoveNodeCall> for HoprNodeManagementModuleCalls {
3989        fn from(value: RemoveNodeCall) -> Self {
3990            Self::RemoveNode(value)
3991        }
3992    }
3993    impl ::core::convert::From<RenounceOwnershipCall> for HoprNodeManagementModuleCalls {
3994        fn from(value: RenounceOwnershipCall) -> Self {
3995            Self::RenounceOwnership(value)
3996        }
3997    }
3998    impl ::core::convert::From<RevokeTargetCall> for HoprNodeManagementModuleCalls {
3999        fn from(value: RevokeTargetCall) -> Self {
4000            Self::RevokeTarget(value)
4001        }
4002    }
4003    impl ::core::convert::From<ScopeChannelsCapabilitiesCall>
4004    for HoprNodeManagementModuleCalls {
4005        fn from(value: ScopeChannelsCapabilitiesCall) -> Self {
4006            Self::ScopeChannelsCapabilities(value)
4007        }
4008    }
4009    impl ::core::convert::From<ScopeSendCapabilityCall>
4010    for HoprNodeManagementModuleCalls {
4011        fn from(value: ScopeSendCapabilityCall) -> Self {
4012            Self::ScopeSendCapability(value)
4013        }
4014    }
4015    impl ::core::convert::From<ScopeTargetChannelsCall>
4016    for HoprNodeManagementModuleCalls {
4017        fn from(value: ScopeTargetChannelsCall) -> Self {
4018            Self::ScopeTargetChannels(value)
4019        }
4020    }
4021    impl ::core::convert::From<ScopeTargetSendCall> for HoprNodeManagementModuleCalls {
4022        fn from(value: ScopeTargetSendCall) -> Self {
4023            Self::ScopeTargetSend(value)
4024        }
4025    }
4026    impl ::core::convert::From<ScopeTargetTokenCall> for HoprNodeManagementModuleCalls {
4027        fn from(value: ScopeTargetTokenCall) -> Self {
4028            Self::ScopeTargetToken(value)
4029        }
4030    }
4031    impl ::core::convert::From<ScopeTokenCapabilitiesCall>
4032    for HoprNodeManagementModuleCalls {
4033        fn from(value: ScopeTokenCapabilitiesCall) -> Self {
4034            Self::ScopeTokenCapabilities(value)
4035        }
4036    }
4037    impl ::core::convert::From<SetMultisendCall> for HoprNodeManagementModuleCalls {
4038        fn from(value: SetMultisendCall) -> Self {
4039            Self::SetMultisend(value)
4040        }
4041    }
4042    impl ::core::convert::From<TransferOwnershipCall> for HoprNodeManagementModuleCalls {
4043        fn from(value: TransferOwnershipCall) -> Self {
4044            Self::TransferOwnership(value)
4045        }
4046    }
4047    impl ::core::convert::From<TryGetTargetCall> for HoprNodeManagementModuleCalls {
4048        fn from(value: TryGetTargetCall) -> Self {
4049            Self::TryGetTarget(value)
4050        }
4051    }
4052    impl ::core::convert::From<UpgradeToCall> for HoprNodeManagementModuleCalls {
4053        fn from(value: UpgradeToCall) -> Self {
4054            Self::UpgradeTo(value)
4055        }
4056    }
4057    impl ::core::convert::From<UpgradeToAndCallCall> for HoprNodeManagementModuleCalls {
4058        fn from(value: UpgradeToAndCallCall) -> Self {
4059            Self::UpgradeToAndCall(value)
4060        }
4061    }
4062    ///Container type for all return fields from the `decodeFunctionSigsAndPermissions` function with signature `decodeFunctionSigsAndPermissions(bytes32,uint256)` and selector `0x60976c4b`
4063    #[derive(
4064        Clone,
4065        ::ethers::contract::EthAbiType,
4066        ::ethers::contract::EthAbiCodec,
4067        serde::Serialize,
4068        serde::Deserialize,
4069        Default,
4070        Debug,
4071        PartialEq,
4072        Eq,
4073        Hash
4074    )]
4075    pub struct DecodeFunctionSigsAndPermissionsReturn {
4076        pub function_sigs: ::std::vec::Vec<[u8; 4]>,
4077        pub permissions: ::std::vec::Vec<u8>,
4078    }
4079    ///Container type for all return fields from the `encodeFunctionSigsAndPermissions` function with signature `encodeFunctionSigsAndPermissions(bytes4[],uint8[])` and selector `0x56f55117`
4080    #[derive(
4081        Clone,
4082        ::ethers::contract::EthAbiType,
4083        ::ethers::contract::EthAbiCodec,
4084        serde::Serialize,
4085        serde::Deserialize,
4086        Default,
4087        Debug,
4088        PartialEq,
4089        Eq,
4090        Hash
4091    )]
4092    pub struct EncodeFunctionSigsAndPermissionsReturn {
4093        pub encoded: [u8; 32],
4094        pub length: ::ethers::core::types::U256,
4095    }
4096    ///Container type for all return fields from the `execTransactionFromModule` function with signature `execTransactionFromModule(address,uint256,bytes,uint8)` and selector `0x468721a7`
4097    #[derive(
4098        Clone,
4099        ::ethers::contract::EthAbiType,
4100        ::ethers::contract::EthAbiCodec,
4101        serde::Serialize,
4102        serde::Deserialize,
4103        Default,
4104        Debug,
4105        PartialEq,
4106        Eq,
4107        Hash
4108    )]
4109    pub struct ExecTransactionFromModuleReturn {
4110        pub success: bool,
4111    }
4112    ///Container type for all return fields from the `execTransactionFromModuleReturnData` function with signature `execTransactionFromModuleReturnData(address,uint256,bytes,uint8)` and selector `0x5229073f`
4113    #[derive(
4114        Clone,
4115        ::ethers::contract::EthAbiType,
4116        ::ethers::contract::EthAbiCodec,
4117        serde::Serialize,
4118        serde::Deserialize,
4119        Default,
4120        Debug,
4121        PartialEq,
4122        Eq,
4123        Hash
4124    )]
4125    pub struct ExecTransactionFromModuleReturnDataReturn(
4126        pub bool,
4127        pub ::ethers::core::types::Bytes,
4128    );
4129    ///Container type for all return fields from the `getGranularPermissions` function with signature `getGranularPermissions(bytes32,bytes32)` and selector `0xdc446a4a`
4130    #[derive(
4131        Clone,
4132        ::ethers::contract::EthAbiType,
4133        ::ethers::contract::EthAbiCodec,
4134        serde::Serialize,
4135        serde::Deserialize,
4136        Default,
4137        Debug,
4138        PartialEq,
4139        Eq,
4140        Hash
4141    )]
4142    pub struct GetGranularPermissionsReturn(pub u8);
4143    ///Container type for all return fields from the `getTargets` function with signature `getTargets()` and selector `0x63fe3b56`
4144    #[derive(
4145        Clone,
4146        ::ethers::contract::EthAbiType,
4147        ::ethers::contract::EthAbiCodec,
4148        serde::Serialize,
4149        serde::Deserialize,
4150        Default,
4151        Debug,
4152        PartialEq,
4153        Eq,
4154        Hash
4155    )]
4156    pub struct GetTargetsReturn(pub ::std::vec::Vec<::ethers::core::types::U256>);
4157    ///Container type for all return fields from the `isHoprNodeManagementModule` function with signature `isHoprNodeManagementModule()` and selector `0x4a1ba408`
4158    #[derive(
4159        Clone,
4160        ::ethers::contract::EthAbiType,
4161        ::ethers::contract::EthAbiCodec,
4162        serde::Serialize,
4163        serde::Deserialize,
4164        Default,
4165        Debug,
4166        PartialEq,
4167        Eq,
4168        Hash
4169    )]
4170    pub struct IsHoprNodeManagementModuleReturn(pub bool);
4171    ///Container type for all return fields from the `isNode` function with signature `isNode(address)` and selector `0x01750152`
4172    #[derive(
4173        Clone,
4174        ::ethers::contract::EthAbiType,
4175        ::ethers::contract::EthAbiCodec,
4176        serde::Serialize,
4177        serde::Deserialize,
4178        Default,
4179        Debug,
4180        PartialEq,
4181        Eq,
4182        Hash
4183    )]
4184    pub struct IsNodeReturn(pub bool);
4185    ///Container type for all return fields from the `multisend` function with signature `multisend()` and selector `0x294402cc`
4186    #[derive(
4187        Clone,
4188        ::ethers::contract::EthAbiType,
4189        ::ethers::contract::EthAbiCodec,
4190        serde::Serialize,
4191        serde::Deserialize,
4192        Default,
4193        Debug,
4194        PartialEq,
4195        Eq,
4196        Hash
4197    )]
4198    pub struct MultisendReturn(pub ::ethers::core::types::Address);
4199    ///Container type for all return fields from the `owner` function with signature `owner()` and selector `0x8da5cb5b`
4200    #[derive(
4201        Clone,
4202        ::ethers::contract::EthAbiType,
4203        ::ethers::contract::EthAbiCodec,
4204        serde::Serialize,
4205        serde::Deserialize,
4206        Default,
4207        Debug,
4208        PartialEq,
4209        Eq,
4210        Hash
4211    )]
4212    pub struct OwnerReturn(pub ::ethers::core::types::Address);
4213    ///Container type for all return fields from the `proxiableUUID` function with signature `proxiableUUID()` and selector `0x52d1902d`
4214    #[derive(
4215        Clone,
4216        ::ethers::contract::EthAbiType,
4217        ::ethers::contract::EthAbiCodec,
4218        serde::Serialize,
4219        serde::Deserialize,
4220        Default,
4221        Debug,
4222        PartialEq,
4223        Eq,
4224        Hash
4225    )]
4226    pub struct ProxiableUUIDReturn(pub [u8; 32]);
4227    ///Container type for all return fields from the `tryGetTarget` function with signature `tryGetTarget(address)` and selector `0xdf4e6f8a`
4228    #[derive(
4229        Clone,
4230        ::ethers::contract::EthAbiType,
4231        ::ethers::contract::EthAbiCodec,
4232        serde::Serialize,
4233        serde::Deserialize,
4234        Default,
4235        Debug,
4236        PartialEq,
4237        Eq,
4238        Hash
4239    )]
4240    pub struct TryGetTargetReturn(pub bool, pub ::ethers::core::types::U256);
4241}