hopr_bindings/codegen/
hopr_network_registry.rs

1pub use hopr_network_registry::*;
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_network_registry {
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                    ::ethers::core::abi::ethabi::Param {
19                        name: ::std::borrow::ToOwned::to_owned(
20                            "_requirementImplementation",
21                        ),
22                        kind: ::ethers::core::abi::ethabi::ParamType::Address,
23                        internal_type: ::core::option::Option::Some(
24                            ::std::borrow::ToOwned::to_owned("address"),
25                        ),
26                    },
27                    ::ethers::core::abi::ethabi::Param {
28                        name: ::std::borrow::ToOwned::to_owned("_newOwner"),
29                        kind: ::ethers::core::abi::ethabi::ParamType::Address,
30                        internal_type: ::core::option::Option::Some(
31                            ::std::borrow::ToOwned::to_owned("address"),
32                        ),
33                    },
34                    ::ethers::core::abi::ethabi::Param {
35                        name: ::std::borrow::ToOwned::to_owned("_manager"),
36                        kind: ::ethers::core::abi::ethabi::ParamType::Address,
37                        internal_type: ::core::option::Option::Some(
38                            ::std::borrow::ToOwned::to_owned("address"),
39                        ),
40                    },
41                ],
42            }),
43            functions: ::core::convert::From::from([
44                (
45                    ::std::borrow::ToOwned::to_owned("DEFAULT_ADMIN_ROLE"),
46                    ::std::vec![
47                        ::ethers::core::abi::ethabi::Function {
48                            name: ::std::borrow::ToOwned::to_owned("DEFAULT_ADMIN_ROLE"),
49                            inputs: ::std::vec![],
50                            outputs: ::std::vec![
51                                ::ethers::core::abi::ethabi::Param {
52                                    name: ::std::string::String::new(),
53                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
54                                        32usize,
55                                    ),
56                                    internal_type: ::core::option::Option::Some(
57                                        ::std::borrow::ToOwned::to_owned("bytes32"),
58                                    ),
59                                },
60                            ],
61                            constant: ::core::option::Option::None,
62                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
63                        },
64                    ],
65                ),
66                (
67                    ::std::borrow::ToOwned::to_owned("MANAGER_ROLE"),
68                    ::std::vec![
69                        ::ethers::core::abi::ethabi::Function {
70                            name: ::std::borrow::ToOwned::to_owned("MANAGER_ROLE"),
71                            inputs: ::std::vec![],
72                            outputs: ::std::vec![
73                                ::ethers::core::abi::ethabi::Param {
74                                    name: ::std::string::String::new(),
75                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
76                                        32usize,
77                                    ),
78                                    internal_type: ::core::option::Option::Some(
79                                        ::std::borrow::ToOwned::to_owned("bytes32"),
80                                    ),
81                                },
82                            ],
83                            constant: ::core::option::Option::None,
84                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
85                        },
86                    ],
87                ),
88                (
89                    ::std::borrow::ToOwned::to_owned("countRegisterdNodesPerAccount"),
90                    ::std::vec![
91                        ::ethers::core::abi::ethabi::Function {
92                            name: ::std::borrow::ToOwned::to_owned(
93                                "countRegisterdNodesPerAccount",
94                            ),
95                            inputs: ::std::vec![
96                                ::ethers::core::abi::ethabi::Param {
97                                    name: ::std::string::String::new(),
98                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
99                                    internal_type: ::core::option::Option::Some(
100                                        ::std::borrow::ToOwned::to_owned("address"),
101                                    ),
102                                },
103                            ],
104                            outputs: ::std::vec![
105                                ::ethers::core::abi::ethabi::Param {
106                                    name: ::std::string::String::new(),
107                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
108                                        256usize,
109                                    ),
110                                    internal_type: ::core::option::Option::Some(
111                                        ::std::borrow::ToOwned::to_owned("uint256"),
112                                    ),
113                                },
114                            ],
115                            constant: ::core::option::Option::None,
116                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
117                        },
118                    ],
119                ),
120                (
121                    ::std::borrow::ToOwned::to_owned("disableRegistry"),
122                    ::std::vec![
123                        ::ethers::core::abi::ethabi::Function {
124                            name: ::std::borrow::ToOwned::to_owned("disableRegistry"),
125                            inputs: ::std::vec![],
126                            outputs: ::std::vec![],
127                            constant: ::core::option::Option::None,
128                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
129                        },
130                    ],
131                ),
132                (
133                    ::std::borrow::ToOwned::to_owned("enableRegistry"),
134                    ::std::vec![
135                        ::ethers::core::abi::ethabi::Function {
136                            name: ::std::borrow::ToOwned::to_owned("enableRegistry"),
137                            inputs: ::std::vec![],
138                            outputs: ::std::vec![],
139                            constant: ::core::option::Option::None,
140                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
141                        },
142                    ],
143                ),
144                (
145                    ::std::borrow::ToOwned::to_owned("enabled"),
146                    ::std::vec![
147                        ::ethers::core::abi::ethabi::Function {
148                            name: ::std::borrow::ToOwned::to_owned("enabled"),
149                            inputs: ::std::vec![],
150                            outputs: ::std::vec![
151                                ::ethers::core::abi::ethabi::Param {
152                                    name: ::std::string::String::new(),
153                                    kind: ::ethers::core::abi::ethabi::ParamType::Bool,
154                                    internal_type: ::core::option::Option::Some(
155                                        ::std::borrow::ToOwned::to_owned("bool"),
156                                    ),
157                                },
158                            ],
159                            constant: ::core::option::Option::None,
160                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
161                        },
162                    ],
163                ),
164                (
165                    ::std::borrow::ToOwned::to_owned("getRoleAdmin"),
166                    ::std::vec![
167                        ::ethers::core::abi::ethabi::Function {
168                            name: ::std::borrow::ToOwned::to_owned("getRoleAdmin"),
169                            inputs: ::std::vec![
170                                ::ethers::core::abi::ethabi::Param {
171                                    name: ::std::borrow::ToOwned::to_owned("role"),
172                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
173                                        32usize,
174                                    ),
175                                    internal_type: ::core::option::Option::Some(
176                                        ::std::borrow::ToOwned::to_owned("bytes32"),
177                                    ),
178                                },
179                            ],
180                            outputs: ::std::vec![
181                                ::ethers::core::abi::ethabi::Param {
182                                    name: ::std::string::String::new(),
183                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
184                                        32usize,
185                                    ),
186                                    internal_type: ::core::option::Option::Some(
187                                        ::std::borrow::ToOwned::to_owned("bytes32"),
188                                    ),
189                                },
190                            ],
191                            constant: ::core::option::Option::None,
192                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
193                        },
194                    ],
195                ),
196                (
197                    ::std::borrow::ToOwned::to_owned("getRoleMember"),
198                    ::std::vec![
199                        ::ethers::core::abi::ethabi::Function {
200                            name: ::std::borrow::ToOwned::to_owned("getRoleMember"),
201                            inputs: ::std::vec![
202                                ::ethers::core::abi::ethabi::Param {
203                                    name: ::std::borrow::ToOwned::to_owned("role"),
204                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
205                                        32usize,
206                                    ),
207                                    internal_type: ::core::option::Option::Some(
208                                        ::std::borrow::ToOwned::to_owned("bytes32"),
209                                    ),
210                                },
211                                ::ethers::core::abi::ethabi::Param {
212                                    name: ::std::borrow::ToOwned::to_owned("index"),
213                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
214                                        256usize,
215                                    ),
216                                    internal_type: ::core::option::Option::Some(
217                                        ::std::borrow::ToOwned::to_owned("uint256"),
218                                    ),
219                                },
220                            ],
221                            outputs: ::std::vec![
222                                ::ethers::core::abi::ethabi::Param {
223                                    name: ::std::string::String::new(),
224                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
225                                    internal_type: ::core::option::Option::Some(
226                                        ::std::borrow::ToOwned::to_owned("address"),
227                                    ),
228                                },
229                            ],
230                            constant: ::core::option::Option::None,
231                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
232                        },
233                    ],
234                ),
235                (
236                    ::std::borrow::ToOwned::to_owned("getRoleMemberCount"),
237                    ::std::vec![
238                        ::ethers::core::abi::ethabi::Function {
239                            name: ::std::borrow::ToOwned::to_owned("getRoleMemberCount"),
240                            inputs: ::std::vec![
241                                ::ethers::core::abi::ethabi::Param {
242                                    name: ::std::borrow::ToOwned::to_owned("role"),
243                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
244                                        32usize,
245                                    ),
246                                    internal_type: ::core::option::Option::Some(
247                                        ::std::borrow::ToOwned::to_owned("bytes32"),
248                                    ),
249                                },
250                            ],
251                            outputs: ::std::vec![
252                                ::ethers::core::abi::ethabi::Param {
253                                    name: ::std::string::String::new(),
254                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
255                                        256usize,
256                                    ),
257                                    internal_type: ::core::option::Option::Some(
258                                        ::std::borrow::ToOwned::to_owned("uint256"),
259                                    ),
260                                },
261                            ],
262                            constant: ::core::option::Option::None,
263                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
264                        },
265                    ],
266                ),
267                (
268                    ::std::borrow::ToOwned::to_owned("grantRole"),
269                    ::std::vec![
270                        ::ethers::core::abi::ethabi::Function {
271                            name: ::std::borrow::ToOwned::to_owned("grantRole"),
272                            inputs: ::std::vec![
273                                ::ethers::core::abi::ethabi::Param {
274                                    name: ::std::borrow::ToOwned::to_owned("role"),
275                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
276                                        32usize,
277                                    ),
278                                    internal_type: ::core::option::Option::Some(
279                                        ::std::borrow::ToOwned::to_owned("bytes32"),
280                                    ),
281                                },
282                                ::ethers::core::abi::ethabi::Param {
283                                    name: ::std::borrow::ToOwned::to_owned("account"),
284                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
285                                    internal_type: ::core::option::Option::Some(
286                                        ::std::borrow::ToOwned::to_owned("address"),
287                                    ),
288                                },
289                            ],
290                            outputs: ::std::vec![],
291                            constant: ::core::option::Option::None,
292                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
293                        },
294                    ],
295                ),
296                (
297                    ::std::borrow::ToOwned::to_owned("hasRole"),
298                    ::std::vec![
299                        ::ethers::core::abi::ethabi::Function {
300                            name: ::std::borrow::ToOwned::to_owned("hasRole"),
301                            inputs: ::std::vec![
302                                ::ethers::core::abi::ethabi::Param {
303                                    name: ::std::borrow::ToOwned::to_owned("role"),
304                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
305                                        32usize,
306                                    ),
307                                    internal_type: ::core::option::Option::Some(
308                                        ::std::borrow::ToOwned::to_owned("bytes32"),
309                                    ),
310                                },
311                                ::ethers::core::abi::ethabi::Param {
312                                    name: ::std::borrow::ToOwned::to_owned("account"),
313                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
314                                    internal_type: ::core::option::Option::Some(
315                                        ::std::borrow::ToOwned::to_owned("address"),
316                                    ),
317                                },
318                            ],
319                            outputs: ::std::vec![
320                                ::ethers::core::abi::ethabi::Param {
321                                    name: ::std::string::String::new(),
322                                    kind: ::ethers::core::abi::ethabi::ParamType::Bool,
323                                    internal_type: ::core::option::Option::Some(
324                                        ::std::borrow::ToOwned::to_owned("bool"),
325                                    ),
326                                },
327                            ],
328                            constant: ::core::option::Option::None,
329                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
330                        },
331                    ],
332                ),
333                (
334                    ::std::borrow::ToOwned::to_owned("isAccountEligible"),
335                    ::std::vec![
336                        ::ethers::core::abi::ethabi::Function {
337                            name: ::std::borrow::ToOwned::to_owned("isAccountEligible"),
338                            inputs: ::std::vec![
339                                ::ethers::core::abi::ethabi::Param {
340                                    name: ::std::borrow::ToOwned::to_owned("stakingAccount"),
341                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
342                                    internal_type: ::core::option::Option::Some(
343                                        ::std::borrow::ToOwned::to_owned("address"),
344                                    ),
345                                },
346                            ],
347                            outputs: ::std::vec![
348                                ::ethers::core::abi::ethabi::Param {
349                                    name: ::std::string::String::new(),
350                                    kind: ::ethers::core::abi::ethabi::ParamType::Bool,
351                                    internal_type: ::core::option::Option::Some(
352                                        ::std::borrow::ToOwned::to_owned("bool"),
353                                    ),
354                                },
355                            ],
356                            constant: ::core::option::Option::None,
357                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
358                        },
359                    ],
360                ),
361                (
362                    ::std::borrow::ToOwned::to_owned("isNodeRegisteredAndEligible"),
363                    ::std::vec![
364                        ::ethers::core::abi::ethabi::Function {
365                            name: ::std::borrow::ToOwned::to_owned(
366                                "isNodeRegisteredAndEligible",
367                            ),
368                            inputs: ::std::vec![
369                                ::ethers::core::abi::ethabi::Param {
370                                    name: ::std::borrow::ToOwned::to_owned("nodeAddress"),
371                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
372                                    internal_type: ::core::option::Option::Some(
373                                        ::std::borrow::ToOwned::to_owned("address"),
374                                    ),
375                                },
376                            ],
377                            outputs: ::std::vec![
378                                ::ethers::core::abi::ethabi::Param {
379                                    name: ::std::string::String::new(),
380                                    kind: ::ethers::core::abi::ethabi::ParamType::Bool,
381                                    internal_type: ::core::option::Option::Some(
382                                        ::std::borrow::ToOwned::to_owned("bool"),
383                                    ),
384                                },
385                            ],
386                            constant: ::core::option::Option::None,
387                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
388                        },
389                    ],
390                ),
391                (
392                    ::std::borrow::ToOwned::to_owned("isNodeRegisteredByAccount"),
393                    ::std::vec![
394                        ::ethers::core::abi::ethabi::Function {
395                            name: ::std::borrow::ToOwned::to_owned(
396                                "isNodeRegisteredByAccount",
397                            ),
398                            inputs: ::std::vec![
399                                ::ethers::core::abi::ethabi::Param {
400                                    name: ::std::borrow::ToOwned::to_owned("nodeAddress"),
401                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
402                                    internal_type: ::core::option::Option::Some(
403                                        ::std::borrow::ToOwned::to_owned("address"),
404                                    ),
405                                },
406                                ::ethers::core::abi::ethabi::Param {
407                                    name: ::std::borrow::ToOwned::to_owned("account"),
408                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
409                                    internal_type: ::core::option::Option::Some(
410                                        ::std::borrow::ToOwned::to_owned("address"),
411                                    ),
412                                },
413                            ],
414                            outputs: ::std::vec![
415                                ::ethers::core::abi::ethabi::Param {
416                                    name: ::std::string::String::new(),
417                                    kind: ::ethers::core::abi::ethabi::ParamType::Bool,
418                                    internal_type: ::core::option::Option::Some(
419                                        ::std::borrow::ToOwned::to_owned("bool"),
420                                    ),
421                                },
422                            ],
423                            constant: ::core::option::Option::None,
424                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
425                        },
426                    ],
427                ),
428                (
429                    ::std::borrow::ToOwned::to_owned("managerDeregister"),
430                    ::std::vec![
431                        ::ethers::core::abi::ethabi::Function {
432                            name: ::std::borrow::ToOwned::to_owned("managerDeregister"),
433                            inputs: ::std::vec![
434                                ::ethers::core::abi::ethabi::Param {
435                                    name: ::std::borrow::ToOwned::to_owned("nodeAddresses"),
436                                    kind: ::ethers::core::abi::ethabi::ParamType::Array(
437                                        ::std::boxed::Box::new(
438                                            ::ethers::core::abi::ethabi::ParamType::Address,
439                                        ),
440                                    ),
441                                    internal_type: ::core::option::Option::Some(
442                                        ::std::borrow::ToOwned::to_owned("address[]"),
443                                    ),
444                                },
445                            ],
446                            outputs: ::std::vec![],
447                            constant: ::core::option::Option::None,
448                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
449                        },
450                    ],
451                ),
452                (
453                    ::std::borrow::ToOwned::to_owned("managerForceSync"),
454                    ::std::vec![
455                        ::ethers::core::abi::ethabi::Function {
456                            name: ::std::borrow::ToOwned::to_owned("managerForceSync"),
457                            inputs: ::std::vec![
458                                ::ethers::core::abi::ethabi::Param {
459                                    name: ::std::borrow::ToOwned::to_owned("stakingAccounts"),
460                                    kind: ::ethers::core::abi::ethabi::ParamType::Array(
461                                        ::std::boxed::Box::new(
462                                            ::ethers::core::abi::ethabi::ParamType::Address,
463                                        ),
464                                    ),
465                                    internal_type: ::core::option::Option::Some(
466                                        ::std::borrow::ToOwned::to_owned("address[]"),
467                                    ),
468                                },
469                                ::ethers::core::abi::ethabi::Param {
470                                    name: ::std::borrow::ToOwned::to_owned("eligibilities"),
471                                    kind: ::ethers::core::abi::ethabi::ParamType::Array(
472                                        ::std::boxed::Box::new(
473                                            ::ethers::core::abi::ethabi::ParamType::Bool,
474                                        ),
475                                    ),
476                                    internal_type: ::core::option::Option::Some(
477                                        ::std::borrow::ToOwned::to_owned("bool[]"),
478                                    ),
479                                },
480                            ],
481                            outputs: ::std::vec![],
482                            constant: ::core::option::Option::None,
483                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
484                        },
485                    ],
486                ),
487                (
488                    ::std::borrow::ToOwned::to_owned("managerRegister"),
489                    ::std::vec![
490                        ::ethers::core::abi::ethabi::Function {
491                            name: ::std::borrow::ToOwned::to_owned("managerRegister"),
492                            inputs: ::std::vec![
493                                ::ethers::core::abi::ethabi::Param {
494                                    name: ::std::borrow::ToOwned::to_owned("stakingAccounts"),
495                                    kind: ::ethers::core::abi::ethabi::ParamType::Array(
496                                        ::std::boxed::Box::new(
497                                            ::ethers::core::abi::ethabi::ParamType::Address,
498                                        ),
499                                    ),
500                                    internal_type: ::core::option::Option::Some(
501                                        ::std::borrow::ToOwned::to_owned("address[]"),
502                                    ),
503                                },
504                                ::ethers::core::abi::ethabi::Param {
505                                    name: ::std::borrow::ToOwned::to_owned("nodeAddresses"),
506                                    kind: ::ethers::core::abi::ethabi::ParamType::Array(
507                                        ::std::boxed::Box::new(
508                                            ::ethers::core::abi::ethabi::ParamType::Address,
509                                        ),
510                                    ),
511                                    internal_type: ::core::option::Option::Some(
512                                        ::std::borrow::ToOwned::to_owned("address[]"),
513                                    ),
514                                },
515                            ],
516                            outputs: ::std::vec![],
517                            constant: ::core::option::Option::None,
518                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
519                        },
520                    ],
521                ),
522                (
523                    ::std::borrow::ToOwned::to_owned("managerSync"),
524                    ::std::vec![
525                        ::ethers::core::abi::ethabi::Function {
526                            name: ::std::borrow::ToOwned::to_owned("managerSync"),
527                            inputs: ::std::vec![
528                                ::ethers::core::abi::ethabi::Param {
529                                    name: ::std::borrow::ToOwned::to_owned("stakingAccounts"),
530                                    kind: ::ethers::core::abi::ethabi::ParamType::Array(
531                                        ::std::boxed::Box::new(
532                                            ::ethers::core::abi::ethabi::ParamType::Address,
533                                        ),
534                                    ),
535                                    internal_type: ::core::option::Option::Some(
536                                        ::std::borrow::ToOwned::to_owned("address[]"),
537                                    ),
538                                },
539                            ],
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("maxAdditionalRegistrations"),
548                    ::std::vec![
549                        ::ethers::core::abi::ethabi::Function {
550                            name: ::std::borrow::ToOwned::to_owned(
551                                "maxAdditionalRegistrations",
552                            ),
553                            inputs: ::std::vec![
554                                ::ethers::core::abi::ethabi::Param {
555                                    name: ::std::borrow::ToOwned::to_owned("stakingAccount"),
556                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
557                                    internal_type: ::core::option::Option::Some(
558                                        ::std::borrow::ToOwned::to_owned("address"),
559                                    ),
560                                },
561                            ],
562                            outputs: ::std::vec![
563                                ::ethers::core::abi::ethabi::Param {
564                                    name: ::std::string::String::new(),
565                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
566                                        256usize,
567                                    ),
568                                    internal_type: ::core::option::Option::Some(
569                                        ::std::borrow::ToOwned::to_owned("uint256"),
570                                    ),
571                                },
572                            ],
573                            constant: ::core::option::Option::None,
574                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
575                        },
576                    ],
577                ),
578                (
579                    ::std::borrow::ToOwned::to_owned("nodeRegisterdToAccount"),
580                    ::std::vec![
581                        ::ethers::core::abi::ethabi::Function {
582                            name: ::std::borrow::ToOwned::to_owned(
583                                "nodeRegisterdToAccount",
584                            ),
585                            inputs: ::std::vec![
586                                ::ethers::core::abi::ethabi::Param {
587                                    name: ::std::string::String::new(),
588                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
589                                    internal_type: ::core::option::Option::Some(
590                                        ::std::borrow::ToOwned::to_owned("address"),
591                                    ),
592                                },
593                            ],
594                            outputs: ::std::vec![
595                                ::ethers::core::abi::ethabi::Param {
596                                    name: ::std::string::String::new(),
597                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
598                                    internal_type: ::core::option::Option::Some(
599                                        ::std::borrow::ToOwned::to_owned("address"),
600                                    ),
601                                },
602                            ],
603                            constant: ::core::option::Option::None,
604                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
605                        },
606                    ],
607                ),
608                (
609                    ::std::borrow::ToOwned::to_owned("renounceRole"),
610                    ::std::vec![
611                        ::ethers::core::abi::ethabi::Function {
612                            name: ::std::borrow::ToOwned::to_owned("renounceRole"),
613                            inputs: ::std::vec![
614                                ::ethers::core::abi::ethabi::Param {
615                                    name: ::std::borrow::ToOwned::to_owned("role"),
616                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
617                                        32usize,
618                                    ),
619                                    internal_type: ::core::option::Option::Some(
620                                        ::std::borrow::ToOwned::to_owned("bytes32"),
621                                    ),
622                                },
623                                ::ethers::core::abi::ethabi::Param {
624                                    name: ::std::borrow::ToOwned::to_owned("account"),
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                            ],
631                            outputs: ::std::vec![],
632                            constant: ::core::option::Option::None,
633                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
634                        },
635                    ],
636                ),
637                (
638                    ::std::borrow::ToOwned::to_owned("requirementImplementation"),
639                    ::std::vec![
640                        ::ethers::core::abi::ethabi::Function {
641                            name: ::std::borrow::ToOwned::to_owned(
642                                "requirementImplementation",
643                            ),
644                            inputs: ::std::vec![],
645                            outputs: ::std::vec![
646                                ::ethers::core::abi::ethabi::Param {
647                                    name: ::std::string::String::new(),
648                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
649                                    internal_type: ::core::option::Option::Some(
650                                        ::std::borrow::ToOwned::to_owned(
651                                            "contract IHoprNetworkRegistryRequirement",
652                                        ),
653                                    ),
654                                },
655                            ],
656                            constant: ::core::option::Option::None,
657                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
658                        },
659                    ],
660                ),
661                (
662                    ::std::borrow::ToOwned::to_owned("revokeRole"),
663                    ::std::vec![
664                        ::ethers::core::abi::ethabi::Function {
665                            name: ::std::borrow::ToOwned::to_owned("revokeRole"),
666                            inputs: ::std::vec![
667                                ::ethers::core::abi::ethabi::Param {
668                                    name: ::std::borrow::ToOwned::to_owned("role"),
669                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
670                                        32usize,
671                                    ),
672                                    internal_type: ::core::option::Option::Some(
673                                        ::std::borrow::ToOwned::to_owned("bytes32"),
674                                    ),
675                                },
676                                ::ethers::core::abi::ethabi::Param {
677                                    name: ::std::borrow::ToOwned::to_owned("account"),
678                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
679                                    internal_type: ::core::option::Option::Some(
680                                        ::std::borrow::ToOwned::to_owned("address"),
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("selfDeregister"),
692                    ::std::vec![
693                        ::ethers::core::abi::ethabi::Function {
694                            name: ::std::borrow::ToOwned::to_owned("selfDeregister"),
695                            inputs: ::std::vec![
696                                ::ethers::core::abi::ethabi::Param {
697                                    name: ::std::borrow::ToOwned::to_owned("nodeAddresses"),
698                                    kind: ::ethers::core::abi::ethabi::ParamType::Array(
699                                        ::std::boxed::Box::new(
700                                            ::ethers::core::abi::ethabi::ParamType::Address,
701                                        ),
702                                    ),
703                                    internal_type: ::core::option::Option::Some(
704                                        ::std::borrow::ToOwned::to_owned("address[]"),
705                                    ),
706                                },
707                            ],
708                            outputs: ::std::vec![],
709                            constant: ::core::option::Option::None,
710                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
711                        },
712                    ],
713                ),
714                (
715                    ::std::borrow::ToOwned::to_owned("selfRegister"),
716                    ::std::vec![
717                        ::ethers::core::abi::ethabi::Function {
718                            name: ::std::borrow::ToOwned::to_owned("selfRegister"),
719                            inputs: ::std::vec![
720                                ::ethers::core::abi::ethabi::Param {
721                                    name: ::std::borrow::ToOwned::to_owned("nodeAddresses"),
722                                    kind: ::ethers::core::abi::ethabi::ParamType::Array(
723                                        ::std::boxed::Box::new(
724                                            ::ethers::core::abi::ethabi::ParamType::Address,
725                                        ),
726                                    ),
727                                    internal_type: ::core::option::Option::Some(
728                                        ::std::borrow::ToOwned::to_owned("address[]"),
729                                    ),
730                                },
731                            ],
732                            outputs: ::std::vec![],
733                            constant: ::core::option::Option::None,
734                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
735                        },
736                    ],
737                ),
738                (
739                    ::std::borrow::ToOwned::to_owned("selfSync"),
740                    ::std::vec![
741                        ::ethers::core::abi::ethabi::Function {
742                            name: ::std::borrow::ToOwned::to_owned("selfSync"),
743                            inputs: ::std::vec![],
744                            outputs: ::std::vec![],
745                            constant: ::core::option::Option::None,
746                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
747                        },
748                    ],
749                ),
750                (
751                    ::std::borrow::ToOwned::to_owned("supportsInterface"),
752                    ::std::vec![
753                        ::ethers::core::abi::ethabi::Function {
754                            name: ::std::borrow::ToOwned::to_owned("supportsInterface"),
755                            inputs: ::std::vec![
756                                ::ethers::core::abi::ethabi::Param {
757                                    name: ::std::borrow::ToOwned::to_owned("interfaceId"),
758                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
759                                        4usize,
760                                    ),
761                                    internal_type: ::core::option::Option::Some(
762                                        ::std::borrow::ToOwned::to_owned("bytes4"),
763                                    ),
764                                },
765                            ],
766                            outputs: ::std::vec![
767                                ::ethers::core::abi::ethabi::Param {
768                                    name: ::std::string::String::new(),
769                                    kind: ::ethers::core::abi::ethabi::ParamType::Bool,
770                                    internal_type: ::core::option::Option::Some(
771                                        ::std::borrow::ToOwned::to_owned("bool"),
772                                    ),
773                                },
774                            ],
775                            constant: ::core::option::Option::None,
776                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
777                        },
778                    ],
779                ),
780                (
781                    ::std::borrow::ToOwned::to_owned("updateRequirementImplementation"),
782                    ::std::vec![
783                        ::ethers::core::abi::ethabi::Function {
784                            name: ::std::borrow::ToOwned::to_owned(
785                                "updateRequirementImplementation",
786                            ),
787                            inputs: ::std::vec![
788                                ::ethers::core::abi::ethabi::Param {
789                                    name: ::std::borrow::ToOwned::to_owned(
790                                        "_requirementImplementation",
791                                    ),
792                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
793                                    internal_type: ::core::option::Option::Some(
794                                        ::std::borrow::ToOwned::to_owned("address"),
795                                    ),
796                                },
797                            ],
798                            outputs: ::std::vec![],
799                            constant: ::core::option::Option::None,
800                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
801                        },
802                    ],
803                ),
804            ]),
805            events: ::core::convert::From::from([
806                (
807                    ::std::borrow::ToOwned::to_owned("Deregistered"),
808                    ::std::vec![
809                        ::ethers::core::abi::ethabi::Event {
810                            name: ::std::borrow::ToOwned::to_owned("Deregistered"),
811                            inputs: ::std::vec![
812                                ::ethers::core::abi::ethabi::EventParam {
813                                    name: ::std::borrow::ToOwned::to_owned("stakingAccount"),
814                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
815                                    indexed: true,
816                                },
817                                ::ethers::core::abi::ethabi::EventParam {
818                                    name: ::std::borrow::ToOwned::to_owned("nodeAddress"),
819                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
820                                    indexed: true,
821                                },
822                            ],
823                            anonymous: false,
824                        },
825                    ],
826                ),
827                (
828                    ::std::borrow::ToOwned::to_owned("DeregisteredByManager"),
829                    ::std::vec![
830                        ::ethers::core::abi::ethabi::Event {
831                            name: ::std::borrow::ToOwned::to_owned(
832                                "DeregisteredByManager",
833                            ),
834                            inputs: ::std::vec![
835                                ::ethers::core::abi::ethabi::EventParam {
836                                    name: ::std::borrow::ToOwned::to_owned("stakingAccount"),
837                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
838                                    indexed: true,
839                                },
840                                ::ethers::core::abi::ethabi::EventParam {
841                                    name: ::std::borrow::ToOwned::to_owned("nodeAddress"),
842                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
843                                    indexed: true,
844                                },
845                            ],
846                            anonymous: false,
847                        },
848                    ],
849                ),
850                (
851                    ::std::borrow::ToOwned::to_owned("EligibilityUpdated"),
852                    ::std::vec![
853                        ::ethers::core::abi::ethabi::Event {
854                            name: ::std::borrow::ToOwned::to_owned("EligibilityUpdated"),
855                            inputs: ::std::vec![
856                                ::ethers::core::abi::ethabi::EventParam {
857                                    name: ::std::borrow::ToOwned::to_owned("stakingAccount"),
858                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
859                                    indexed: true,
860                                },
861                                ::ethers::core::abi::ethabi::EventParam {
862                                    name: ::std::borrow::ToOwned::to_owned("eligibility"),
863                                    kind: ::ethers::core::abi::ethabi::ParamType::Bool,
864                                    indexed: true,
865                                },
866                            ],
867                            anonymous: false,
868                        },
869                    ],
870                ),
871                (
872                    ::std::borrow::ToOwned::to_owned("NetworkRegistryStatusUpdated"),
873                    ::std::vec![
874                        ::ethers::core::abi::ethabi::Event {
875                            name: ::std::borrow::ToOwned::to_owned(
876                                "NetworkRegistryStatusUpdated",
877                            ),
878                            inputs: ::std::vec![
879                                ::ethers::core::abi::ethabi::EventParam {
880                                    name: ::std::borrow::ToOwned::to_owned("isEnabled"),
881                                    kind: ::ethers::core::abi::ethabi::ParamType::Bool,
882                                    indexed: true,
883                                },
884                            ],
885                            anonymous: false,
886                        },
887                    ],
888                ),
889                (
890                    ::std::borrow::ToOwned::to_owned("Registered"),
891                    ::std::vec![
892                        ::ethers::core::abi::ethabi::Event {
893                            name: ::std::borrow::ToOwned::to_owned("Registered"),
894                            inputs: ::std::vec![
895                                ::ethers::core::abi::ethabi::EventParam {
896                                    name: ::std::borrow::ToOwned::to_owned("stakingAccount"),
897                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
898                                    indexed: true,
899                                },
900                                ::ethers::core::abi::ethabi::EventParam {
901                                    name: ::std::borrow::ToOwned::to_owned("nodeAddress"),
902                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
903                                    indexed: true,
904                                },
905                            ],
906                            anonymous: false,
907                        },
908                    ],
909                ),
910                (
911                    ::std::borrow::ToOwned::to_owned("RegisteredByManager"),
912                    ::std::vec![
913                        ::ethers::core::abi::ethabi::Event {
914                            name: ::std::borrow::ToOwned::to_owned(
915                                "RegisteredByManager",
916                            ),
917                            inputs: ::std::vec![
918                                ::ethers::core::abi::ethabi::EventParam {
919                                    name: ::std::borrow::ToOwned::to_owned("stakingAccount"),
920                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
921                                    indexed: true,
922                                },
923                                ::ethers::core::abi::ethabi::EventParam {
924                                    name: ::std::borrow::ToOwned::to_owned("nodeAddress"),
925                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
926                                    indexed: true,
927                                },
928                            ],
929                            anonymous: false,
930                        },
931                    ],
932                ),
933                (
934                    ::std::borrow::ToOwned::to_owned("RequirementUpdated"),
935                    ::std::vec![
936                        ::ethers::core::abi::ethabi::Event {
937                            name: ::std::borrow::ToOwned::to_owned("RequirementUpdated"),
938                            inputs: ::std::vec![
939                                ::ethers::core::abi::ethabi::EventParam {
940                                    name: ::std::borrow::ToOwned::to_owned(
941                                        "requirementImplementation",
942                                    ),
943                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
944                                    indexed: true,
945                                },
946                            ],
947                            anonymous: false,
948                        },
949                    ],
950                ),
951                (
952                    ::std::borrow::ToOwned::to_owned("RoleAdminChanged"),
953                    ::std::vec![
954                        ::ethers::core::abi::ethabi::Event {
955                            name: ::std::borrow::ToOwned::to_owned("RoleAdminChanged"),
956                            inputs: ::std::vec![
957                                ::ethers::core::abi::ethabi::EventParam {
958                                    name: ::std::borrow::ToOwned::to_owned("role"),
959                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
960                                        32usize,
961                                    ),
962                                    indexed: true,
963                                },
964                                ::ethers::core::abi::ethabi::EventParam {
965                                    name: ::std::borrow::ToOwned::to_owned("previousAdminRole"),
966                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
967                                        32usize,
968                                    ),
969                                    indexed: true,
970                                },
971                                ::ethers::core::abi::ethabi::EventParam {
972                                    name: ::std::borrow::ToOwned::to_owned("newAdminRole"),
973                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
974                                        32usize,
975                                    ),
976                                    indexed: true,
977                                },
978                            ],
979                            anonymous: false,
980                        },
981                    ],
982                ),
983                (
984                    ::std::borrow::ToOwned::to_owned("RoleGranted"),
985                    ::std::vec![
986                        ::ethers::core::abi::ethabi::Event {
987                            name: ::std::borrow::ToOwned::to_owned("RoleGranted"),
988                            inputs: ::std::vec![
989                                ::ethers::core::abi::ethabi::EventParam {
990                                    name: ::std::borrow::ToOwned::to_owned("role"),
991                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
992                                        32usize,
993                                    ),
994                                    indexed: true,
995                                },
996                                ::ethers::core::abi::ethabi::EventParam {
997                                    name: ::std::borrow::ToOwned::to_owned("account"),
998                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
999                                    indexed: true,
1000                                },
1001                                ::ethers::core::abi::ethabi::EventParam {
1002                                    name: ::std::borrow::ToOwned::to_owned("sender"),
1003                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
1004                                    indexed: true,
1005                                },
1006                            ],
1007                            anonymous: false,
1008                        },
1009                    ],
1010                ),
1011                (
1012                    ::std::borrow::ToOwned::to_owned("RoleRevoked"),
1013                    ::std::vec![
1014                        ::ethers::core::abi::ethabi::Event {
1015                            name: ::std::borrow::ToOwned::to_owned("RoleRevoked"),
1016                            inputs: ::std::vec![
1017                                ::ethers::core::abi::ethabi::EventParam {
1018                                    name: ::std::borrow::ToOwned::to_owned("role"),
1019                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
1020                                        32usize,
1021                                    ),
1022                                    indexed: true,
1023                                },
1024                                ::ethers::core::abi::ethabi::EventParam {
1025                                    name: ::std::borrow::ToOwned::to_owned("account"),
1026                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
1027                                    indexed: true,
1028                                },
1029                                ::ethers::core::abi::ethabi::EventParam {
1030                                    name: ::std::borrow::ToOwned::to_owned("sender"),
1031                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
1032                                    indexed: true,
1033                                },
1034                            ],
1035                            anonymous: false,
1036                        },
1037                    ],
1038                ),
1039            ]),
1040            errors: ::core::convert::From::from([
1041                (
1042                    ::std::borrow::ToOwned::to_owned("ArrayLengthNotMatch"),
1043                    ::std::vec![
1044                        ::ethers::core::abi::ethabi::AbiError {
1045                            name: ::std::borrow::ToOwned::to_owned(
1046                                "ArrayLengthNotMatch",
1047                            ),
1048                            inputs: ::std::vec![],
1049                        },
1050                    ],
1051                ),
1052                (
1053                    ::std::borrow::ToOwned::to_owned("CannotOperateForNode"),
1054                    ::std::vec![
1055                        ::ethers::core::abi::ethabi::AbiError {
1056                            name: ::std::borrow::ToOwned::to_owned(
1057                                "CannotOperateForNode",
1058                            ),
1059                            inputs: ::std::vec![
1060                                ::ethers::core::abi::ethabi::Param {
1061                                    name: ::std::borrow::ToOwned::to_owned("nodeAddress"),
1062                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
1063                                    internal_type: ::core::option::Option::Some(
1064                                        ::std::borrow::ToOwned::to_owned("address"),
1065                                    ),
1066                                },
1067                            ],
1068                        },
1069                    ],
1070                ),
1071                (
1072                    ::std::borrow::ToOwned::to_owned("GloballyDisabledRegistry"),
1073                    ::std::vec![
1074                        ::ethers::core::abi::ethabi::AbiError {
1075                            name: ::std::borrow::ToOwned::to_owned(
1076                                "GloballyDisabledRegistry",
1077                            ),
1078                            inputs: ::std::vec![],
1079                        },
1080                    ],
1081                ),
1082                (
1083                    ::std::borrow::ToOwned::to_owned("GloballyEnabledRegistry"),
1084                    ::std::vec![
1085                        ::ethers::core::abi::ethabi::AbiError {
1086                            name: ::std::borrow::ToOwned::to_owned(
1087                                "GloballyEnabledRegistry",
1088                            ),
1089                            inputs: ::std::vec![],
1090                        },
1091                    ],
1092                ),
1093                (
1094                    ::std::borrow::ToOwned::to_owned("NodeAlreadyRegisterd"),
1095                    ::std::vec![
1096                        ::ethers::core::abi::ethabi::AbiError {
1097                            name: ::std::borrow::ToOwned::to_owned(
1098                                "NodeAlreadyRegisterd",
1099                            ),
1100                            inputs: ::std::vec![
1101                                ::ethers::core::abi::ethabi::Param {
1102                                    name: ::std::borrow::ToOwned::to_owned("nodeAddress"),
1103                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
1104                                    internal_type: ::core::option::Option::Some(
1105                                        ::std::borrow::ToOwned::to_owned("address"),
1106                                    ),
1107                                },
1108                            ],
1109                        },
1110                    ],
1111                ),
1112                (
1113                    ::std::borrow::ToOwned::to_owned("NodeNotYetRegisterd"),
1114                    ::std::vec![
1115                        ::ethers::core::abi::ethabi::AbiError {
1116                            name: ::std::borrow::ToOwned::to_owned(
1117                                "NodeNotYetRegisterd",
1118                            ),
1119                            inputs: ::std::vec![
1120                                ::ethers::core::abi::ethabi::Param {
1121                                    name: ::std::borrow::ToOwned::to_owned("nodeAddress"),
1122                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
1123                                    internal_type: ::core::option::Option::Some(
1124                                        ::std::borrow::ToOwned::to_owned("address"),
1125                                    ),
1126                                },
1127                            ],
1128                        },
1129                    ],
1130                ),
1131                (
1132                    ::std::borrow::ToOwned::to_owned("NodeRegisterdToOtherAccount"),
1133                    ::std::vec![
1134                        ::ethers::core::abi::ethabi::AbiError {
1135                            name: ::std::borrow::ToOwned::to_owned(
1136                                "NodeRegisterdToOtherAccount",
1137                            ),
1138                            inputs: ::std::vec![
1139                                ::ethers::core::abi::ethabi::Param {
1140                                    name: ::std::borrow::ToOwned::to_owned("nodeAddress"),
1141                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
1142                                    internal_type: ::core::option::Option::Some(
1143                                        ::std::borrow::ToOwned::to_owned("address"),
1144                                    ),
1145                                },
1146                            ],
1147                        },
1148                    ],
1149                ),
1150                (
1151                    ::std::borrow::ToOwned::to_owned("NotEnoughAllowanceToRegisterNode"),
1152                    ::std::vec![
1153                        ::ethers::core::abi::ethabi::AbiError {
1154                            name: ::std::borrow::ToOwned::to_owned(
1155                                "NotEnoughAllowanceToRegisterNode",
1156                            ),
1157                            inputs: ::std::vec![],
1158                        },
1159                    ],
1160                ),
1161            ]),
1162            receive: false,
1163            fallback: false,
1164        }
1165    }
1166    ///The parsed JSON ABI of the contract.
1167    pub static HOPRNETWORKREGISTRY_ABI: ::ethers::contract::Lazy<
1168        ::ethers::core::abi::Abi,
1169    > = ::ethers::contract::Lazy::new(__abi);
1170    #[rustfmt::skip]
1171    const __BYTECODE: &[u8] = b"`\x80`@R4\x80\x15b\0\0\x11W`\0\x80\xFD[P`@Qb\0\x1E?8\x03\x80b\0\x1E?\x839\x81\x01`@\x81\x90Rb\0\x004\x91b\0\x02jV[b\0\0A`\0\x83b\0\x01\0V[b\0\0\\`\0\x80Q` b\0\x1E\x1F\x839\x81Q\x91R\x83b\0\x01\0V[b\0\0w`\0\x80Q` b\0\x1E\x1F\x839\x81Q\x91R\x82b\0\x01\0V[`\x02\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x85\x16\x90\x81\x17\x90\x91U`\x05\x80T`\xFF\x19\x16`\x01\x17\x90U`@Q\x7F\x8A\xC4\xB2\xEBwI\xF7\\[\x99\xB8\x98\xE5G\xFDa]\xD7\xA4$\xE6\x83V\xEA\x19k}\xAEt-l2\x90`\0\x90\xA2`@Q`\x01\x90\x7F\x8B\xC8_%\xE3\xE93\x97\x8F\t\x94\x08\xB3\xBB>\xB7c\x0Bv\xF7E_. [\xCB\xC0\xA7\x80\xE1~r\x90`\0\x90\xA2PPPb\0\x02\xB4V[b\0\x01\x0C\x82\x82b\0\x01\x10V[PPV[b\0\x01\x1C\x82\x82b\0\x01;V[`\0\x82\x81R`\x01` R`@\x90 b\0\x016\x90\x82b\0\x01\xDBV[PPPV[`\0\x82\x81R` \x81\x81R`@\x80\x83 `\x01`\x01`\xA0\x1B\x03\x85\x16\x84R\x90\x91R\x90 T`\xFF\x16b\0\x01\x0CW`\0\x82\x81R` \x81\x81R`@\x80\x83 `\x01`\x01`\xA0\x1B\x03\x85\x16\x84R\x90\x91R\x90 \x80T`\xFF\x19\x16`\x01\x17\x90Ub\0\x01\x973\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x81`\x01`\x01`\xA0\x1B\x03\x16\x83\x7F/\x87\x88\x11~~\xFF\x1D\x82\xE9&\xECyI\x01\xD1|x\x02JP'\t@0E@\xA73eo\r`@Q`@Q\x80\x91\x03\x90\xA4PPV[`\0b\0\x01\xF2\x83`\x01`\x01`\xA0\x1B\x03\x84\x16b\0\x01\xFBV[\x90P[\x92\x91PPV[`\0\x81\x81R`\x01\x83\x01` R`@\x81 Tb\0\x02DWP\x81T`\x01\x81\x81\x01\x84U`\0\x84\x81R` \x80\x82 \x90\x93\x01\x84\x90U\x84T\x84\x82R\x82\x86\x01\x90\x93R`@\x90 \x91\x90\x91Ub\0\x01\xF5V[P`\0b\0\x01\xF5V[\x80Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14b\0\x02eW`\0\x80\xFD[\x91\x90PV[`\0\x80`\0``\x84\x86\x03\x12\x15b\0\x02\x80W`\0\x80\xFD[b\0\x02\x8B\x84b\0\x02MV[\x92Pb\0\x02\x9B` \x85\x01b\0\x02MV[\x91Pb\0\x02\xAB`@\x85\x01b\0\x02MV[\x90P\x92P\x92P\x92V[a\x1B[\x80b\0\x02\xC4`\09`\0\xF3\xFE`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\x01\xC4W`\x005`\xE0\x1C\x80c\x90\x10\xD0|\x11a\0\xF9W\x80c\xCA\x15\xC8s\x11a\0\x97W\x80c\xCF\xB3s_\x11a\0qW\x80c\xCF\xB3s_\x14a\x03\xDAW\x80c\xD5Gt\x1F\x14a\x03\xE2W\x80c\xE3\xD2\xA0q\x14a\x03\xF5W\x80c\xEC\x87b\x1C\x14a\x04\x08W`\0\x80\xFD[\x80c\xCA\x15\xC8s\x14a\x03\xACW\x80c\xCA\xF5\xF5\x01\x14a\x03\xBFW\x80c\xCB\xEB\xAF\xE0\x14a\x03\xD2W`\0\x80\xFD[\x80c\xA0^\x0Fm\x11a\0\xD3W\x80c\xA0^\x0Fm\x14a\x03UW\x80c\xA2\x17\xFD\xDF\x14a\x03hW\x80c\xA5`]\xA5\x14a\x03pW\x80c\xC7\xEC\xAB\x8F\x14a\x03\x83W`\0\x80\xFD[\x80c\x90\x10\xD0|\x14a\x03\x0FW\x80c\x91\xD1HT\x14a\x03:W\x80c\x9C\x7Fd;\x14a\x03MW`\0\x80\xFD[\x80c6V\x8A\xBE\x11a\x01fW\x80cN\xB1\x80\\\x11a\x01@W\x80cN\xB1\x80\\\x14a\x02\xC3W\x80co\xFB\xF9\x88\x14a\x02\xD6W\x80cvY:9\x14a\x02\xE9W\x80c\x8Du;-\x14a\x02\xFCW`\0\x80\xFD[\x80c6V\x8A\xBE\x14a\x02}W\x80c?\xA5\x84W\x14a\x02\x90W\x80cA\xB6Ie\x14a\x02\xB0W`\0\x80\xFD[\x80c'\xB0@\xA1\x11a\x01\xA2W\x80c'\xB0@\xA1\x14a\x02/W\x80c*-\xEE\xE2\x14a\x02DW\x80c,3\xCA\xFB\x14a\x02WW\x80c//\xF1]\x14a\x02jW`\0\x80\xFD[\x80c\x01\xFF\xC9\xA7\x14a\x01\xC9W\x80c#\x8D\xAF\xE0\x14a\x01\xF1W\x80c$\x8A\x9C\xA3\x14a\x01\xFEW[`\0\x80\xFD[a\x01\xDCa\x01\xD76`\x04a\x16+V[a\x04\x1DV[`@Q\x90\x15\x15\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[`\x05Ta\x01\xDC\x90`\xFF\x16\x81V[a\x02!a\x02\x0C6`\x04a\x16UV[`\0\x90\x81R` \x81\x90R`@\x90 `\x01\x01T\x90V[`@Q\x90\x81R` \x01a\x01\xE8V[a\x02Ba\x02=6`\x04a\x16\x8AV[a\x04HV[\0[a\x02!a\x02R6`\x04a\x16\x8AV[a\x04\xABV[a\x02Ba\x02e6`\x04a\x16\xF1V[a\x05]V[a\x02Ba\x02x6`\x04a\x173V[a\x05\xC7V[a\x02Ba\x02\x8B6`\x04a\x173V[a\x05\xF1V[a\x02!a\x02\x9E6`\x04a\x16\x8AV[`\x03` R`\0\x90\x81R`@\x90 T\x81V[a\x02Ba\x02\xBE6`\x04a\x16\xF1V[a\x06tV[a\x01\xDCa\x02\xD16`\x04a\x16\x8AV[a\x07\x97V[a\x01\xDCa\x02\xE46`\x04a\x16\x8AV[a\x07\xE8V[a\x02Ba\x02\xF76`\x04a\x16\xF1V[a\x07\xF3V[a\x02Ba\x03\n6`\x04a\x17_V[a\t\x88V[a\x03\"a\x03\x1D6`\x04a\x17\xCBV[a\x0B\x02V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x01\xE8V[a\x01\xDCa\x03H6`\x04a\x173V[a\x0B\x1AV[a\x02Ba\x0BCV[a\x02Ba\x03c6`\x04a\x16\xF1V[a\x0BqV[a\x02!`\0\x81V[a\x01\xDCa\x03~6`\x04a\x17\xEDV[a\x0C\xC4V[a\x03\"a\x03\x916`\x04a\x16\x8AV[`\x04` R`\0\x90\x81R`@\x90 T`\x01`\x01`\xA0\x1B\x03\x16\x81V[a\x02!a\x03\xBA6`\x04a\x16UV[a\r\x13V[a\x02Ba\x03\xCD6`\x04a\x18FV[a\r*V[a\x02Ba\x0EDV[a\x02Ba\x0E\xB7V[a\x02Ba\x03\xF06`\x04a\x173V[a\x0F/V[`\x02Ta\x03\"\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[a\x02!`\0\x80Q` a\x1A\xE6\x839\x81Q\x91R\x81V[`\0`\x01`\x01`\xE0\x1B\x03\x19\x82\x16cZ\x05\x18\x0F`\xE0\x1B\x14\x80a\x04BWPa\x04B\x82a\x0FTV[\x92\x91PPV[`\0\x80Q` a\x1A\xE6\x839\x81Q\x91Ra\x04`\x81a\x0F\x89V[`\x02\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x84\x16\x90\x81\x17\x90\x91U`@Q\x7F\x8A\xC4\xB2\xEBwI\xF7\\[\x99\xB8\x98\xE5G\xFDa]\xD7\xA4$\xE6\x83V\xEA\x19k}\xAEt-l2\x90`\0\x90\xA2PPV[`\x02T`@QcY\xAA'A`\xE1\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\x04\x83\x01R`\0\x92\x83\x92\x91\x16\x90c\xB3TN\x82\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x04\xF9W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x05\x1D\x91\x90a\x194V[`\x01`\x01`\xA0\x1B\x03\x84\x16`\0\x90\x81R`\x03` R`@\x90 T\x90\x91P\x80\x82\x11\x15a\x05SWa\x05K\x81\x83a\x19cV[\x94\x93PPPPV[P`\0\x93\x92PPPV[`\0\x80Q` a\x1A\xE6\x839\x81Q\x91Ra\x05u\x81a\x0F\x89V[`\0[\x82\x81\x10\x15a\x05\xC1Wa\x05\xAF\x84\x84\x83\x81\x81\x10a\x05\x95Wa\x05\x95a\x19vV[\x90P` \x02\x01` \x81\x01\x90a\x05\xAA\x91\x90a\x16\x8AV[a\x0F\x96V[\x80a\x05\xB9\x81a\x19\x8CV[\x91PPa\x05xV[PPPPV[`\0\x82\x81R` \x81\x90R`@\x90 `\x01\x01Ta\x05\xE2\x81a\x0F\x89V[a\x05\xEC\x83\x83a\x0F\xF3V[PPPV[`\x01`\x01`\xA0\x1B\x03\x81\x163\x14a\x06fW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`/`$\x82\x01R\x7FAccessControl: can only renounce`D\x82\x01Rn\x1097\xB62\xB9\x9037\xB9\x109\xB2\xB63`\x89\x1B`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[a\x06p\x82\x82a\x10\x15V[PPV[`\0\x80Q` a\x1A\xE6\x839\x81Q\x91Ra\x06\x8C\x81a\x0F\x89V[`\0[\x82\x81\x10\x15a\x05\xC1W`\0\x84\x84\x83\x81\x81\x10a\x06\xABWa\x06\xABa\x19vV[\x90P` \x02\x01` \x81\x01\x90a\x06\xC0\x91\x90a\x16\x8AV[`\x01`\x01`\xA0\x1B\x03\x80\x82\x16`\0\x90\x81R`\x04` R`@\x90 T\x91\x92P\x16\x80a\x07\x07W`@Qc\x168y\x15`\xE3\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x83\x16`\x04\x82\x01R`$\x01a\x06]V[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\x03` R`@\x81 \x80T\x91a\x07+\x83a\x19\xA5V[\x90\x91UPP`\x01`\x01`\xA0\x1B\x03\x80\x83\x16`\0\x81\x81R`\x04` R`@\x80\x82 \x80T`\x01`\x01`\xA0\x1B\x03\x19\x16\x90UQ\x91\x92\x84\x16\x91\x7F\x91v\n\x10\x01\xF51\xEC+\xEE\x86\x02\xBEU\xAD+\x11YF^\xDF\xF5\xBB\xCDA\xD2\x07\x03t*MB\x91\x90\xA3PP\x80\x80a\x07\x8F\x90a\x19\x8CV[\x91PPa\x06\x8FV[`\0`\x01`\x01`\xA0\x1B\x03\x82\x16a\x07\xAFWP`\0\x91\x90PV[`\x01`\x01`\xA0\x1B\x03\x80\x83\x16`\0\x90\x81R`\x04` R`@\x90 T\x16\x80a\x07\xD8WP`\0\x92\x91PPV[a\x07\xE1\x81a\x107V[\x93\x92PPPV[`\0a\x04B\x82a\x107V[`\x05T`\xFF\x16a\x08\x16W`@Qc\xC4&8\xBB`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0[\x81\x81\x10\x15a\tAW`\0\x83\x83\x83\x81\x81\x10a\x085Wa\x085a\x19vV[\x90P` \x02\x01` \x81\x01\x90a\x08J\x91\x90a\x16\x8AV[`\x01`\x01`\xA0\x1B\x03\x80\x82\x16`\0\x90\x81R`\x04` R`@\x90 T\x91\x92P\x16a\x08r3\x83a\x10\xEDV[`\x01`\x01`\xA0\x1B\x03\x81\x16a\x08\xF8W3`\0\x90\x81R`\x03` R`@\x81 \x80T\x91a\x08\x9B\x83a\x19\x8CV[\x90\x91UPP`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x81\x81R`\x04` R`@\x80\x82 \x80T`\x01`\x01`\xA0\x1B\x03\x19\x163\x90\x81\x17\x90\x91U\x90Q\x90\x91\x7F\n1\xEE\x9DF\xA8(\x88K\x81\0<\x84\x98\x15n\xA6\xAA\x15\xB9\xB5K\xDD\x0E\xF0\xB53\xD9\xEB\xA5~U\x91\xA3a\t,V[`\x01`\x01`\xA0\x1B\x03\x81\x163\x14a\t,W`@Qc[S;\xA1`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x83\x16`\x04\x82\x01R`$\x01a\x06]V[PP\x80\x80a\t9\x90a\x19\x8CV[\x91PPa\x08\x19V[Pa\tK3a\x107V[a\thW`@Qc\x03\xEEoW`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`@Q`\x01\x903\x90`\0\x80Q` a\x1B\x06\x839\x81Q\x91R\x90`\0\x90\xA3PPV[`\0\x80Q` a\x1A\xE6\x839\x81Q\x91Ra\t\xA0\x81a\x0F\x89V[\x83\x82\x14a\t\xC0W`@Qc\xED\x88/q`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0[\x84\x81\x10\x15a\n\xFAW`\0\x84\x84\x83\x81\x81\x10a\t\xDFWa\t\xDFa\x19vV[\x90P` \x02\x01` \x81\x01\x90a\t\xF4\x91\x90a\x16\x8AV[\x90P`\0\x87\x87\x84\x81\x81\x10a\n\nWa\n\na\x19vV[\x90P` \x02\x01` \x81\x01\x90a\n\x1F\x91\x90a\x16\x8AV[`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\0\x90\x81R`\x04` R`@\x90 T\x91\x92P\x16\x15a\nfW`@Qc[S;\xA1`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x83\x16`\x04\x82\x01R`$\x01a\x06]V[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\x03` R`@\x81 \x80T\x91a\n\x8A\x83a\x19\x8CV[\x90\x91UPP`\x01`\x01`\xA0\x1B\x03\x82\x81\x16`\0\x81\x81R`\x04` R`@\x80\x82 \x80T`\x01`\x01`\xA0\x1B\x03\x19\x16\x94\x86\x16\x94\x85\x17\x90UQ\x91\x92\x91\x7F\x04\xE1\xEA\xA4\xDA\x18\xF7\xE7B\xA4\xED\xBB\xE9\xED\xE3l\xDFu\xF7\x93\xBB\x03\xAB!X\xC0\x87\x7F\x1C\xAF+\x93\x91\x90\xA3PP\x80\x80a\n\xF2\x90a\x19\x8CV[\x91PPa\t\xC3V[PPPPPPV[`\0\x82\x81R`\x01` R`@\x81 a\x07\xE1\x90\x83a\x11\x8FV[`\0\x91\x82R` \x82\x81R`@\x80\x84 `\x01`\x01`\xA0\x1B\x03\x93\x90\x93\x16\x84R\x91\x90R\x90 T`\xFF\x16\x90V[`\x05T`\xFF\x16a\x0BfW`@Qc\xC4&8\xBB`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0Bo3a\x0F\x96V[V[`\x05T`\xFF\x16a\x0B\x94W`@Qc\xC4&8\xBB`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0[\x81\x81\x10\x15a\x0C\xBAW`\0\x83\x83\x83\x81\x81\x10a\x0B\xB3Wa\x0B\xB3a\x19vV[\x90P` \x02\x01` \x81\x01\x90a\x0B\xC8\x91\x90a\x16\x8AV[`\x01`\x01`\xA0\x1B\x03\x80\x82\x16`\0\x90\x81R`\x04` R`@\x90 T\x91\x92P\x16a\x0B\xF03\x83a\x10\xEDV[3`\x01`\x01`\xA0\x1B\x03\x82\x16\x03a\x0CrW3`\0\x90\x81R`\x03` R`@\x81 \x80T\x91a\x0C\x1B\x83a\x19\xA5V[\x90\x91UPP`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x81\x81R`\x04` R`@\x80\x82 \x80T`\x01`\x01`\xA0\x1B\x03\x19\x16\x90UQ3\x91\x7F\x15\x9A\x8A\xE9H\xFC\xC6\xE7\xF8\xB5I\\\rs\xE9\x15\x98D\n\xF8\xA6(\x17$l\t\xED\xC2\xC2\x8D\xBA\x8A\x91\xA3a\x0C\xA5V[`\x01`\x01`\xA0\x1B\x03\x81\x16\x15a\x0C\xA5W`@Qc\xBFO\xDDs`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x83\x16`\x04\x82\x01R`$\x01a\x06]V[PP\x80\x80a\x0C\xB2\x90a\x19\x8CV[\x91PPa\x0B\x97V[Pa\x06p3a\x0F\x96V[`\0`\x01`\x01`\xA0\x1B\x03\x83\x16\x15\x80a\x0C\xE3WP`\x01`\x01`\xA0\x1B\x03\x82\x16\x15[\x15a\x0C\xF0WP`\0a\x04BV[P`\x01`\x01`\xA0\x1B\x03\x91\x82\x16`\0\x90\x81R`\x04` R`@\x90 T\x82\x16\x91\x16\x14\x90V[`\0\x81\x81R`\x01` R`@\x81 a\x04B\x90a\x11\x9BV[`\0\x80Q` a\x1A\xE6\x839\x81Q\x91Ra\rB\x81a\x0F\x89V[\x81Q\x83\x14a\rcW`@Qc\xED\x88/q`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0[\x83\x81\x10\x15a\x0E=W\x82\x81\x81Q\x81\x10a\r\x80Wa\r\x80a\x19vV[` \x02` \x01\x01Q\x15a\r\xDEW`\x01\x85\x85\x83\x81\x81\x10a\r\xA1Wa\r\xA1a\x19vV[\x90P` \x02\x01` \x81\x01\x90a\r\xB6\x91\x90a\x16\x8AV[`\x01`\x01`\xA0\x1B\x03\x16`\0\x80Q` a\x1B\x06\x839\x81Q\x91R`@Q`@Q\x80\x91\x03\x90\xA3a\x0E+V[`\0\x85\x85\x83\x81\x81\x10a\r\xF2Wa\r\xF2a\x19vV[\x90P` \x02\x01` \x81\x01\x90a\x0E\x07\x91\x90a\x16\x8AV[`\x01`\x01`\xA0\x1B\x03\x16`\0\x80Q` a\x1B\x06\x839\x81Q\x91R`@Q`@Q\x80\x91\x03\x90\xA3[\x80a\x0E5\x81a\x19\x8CV[\x91PPa\rfV[PPPPPV[`\0\x80Q` a\x1A\xE6\x839\x81Q\x91Ra\x0E\\\x81a\x0F\x89V[`\x05T`\xFF\x16a\x0E\x7FW`@Qc\xC4&8\xBB`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x05\x80T`\xFF\x19\x16\x90U`@Q`\0\x90\x7F\x8B\xC8_%\xE3\xE93\x97\x8F\t\x94\x08\xB3\xBB>\xB7c\x0Bv\xF7E_. [\xCB\xC0\xA7\x80\xE1~r\x90\x82\x90\xA2PV[`\0\x80Q` a\x1A\xE6\x839\x81Q\x91Ra\x0E\xCF\x81a\x0F\x89V[`\x05T`\xFF\x16\x15a\x0E\xF3W`@Qc\xED\x1A\x0Cw`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x05\x80T`\xFF\x19\x16`\x01\x90\x81\x17\x90\x91U`@Q\x7F\x8B\xC8_%\xE3\xE93\x97\x8F\t\x94\x08\xB3\xBB>\xB7c\x0Bv\xF7E_. [\xCB\xC0\xA7\x80\xE1~r\x90`\0\x90\xA2PV[`\0\x82\x81R` \x81\x90R`@\x90 `\x01\x01Ta\x0FJ\x81a\x0F\x89V[a\x05\xEC\x83\x83a\x10\x15V[`\0`\x01`\x01`\xE0\x1B\x03\x19\x82\x16cye\xDB\x0B`\xE0\x1B\x14\x80a\x04BWPc\x01\xFF\xC9\xA7`\xE0\x1B`\x01`\x01`\xE0\x1B\x03\x19\x83\x16\x14a\x04BV[a\x0F\x93\x813a\x11\xA5V[PV[a\x0F\x9F\x81a\x107V[\x15a\x0F\xCCW`@Q`\x01\x90`\x01`\x01`\xA0\x1B\x03\x83\x16\x90`\0\x80Q` a\x1B\x06\x839\x81Q\x91R\x90`\0\x90\xA3PV[`@Q`\0\x90`\x01`\x01`\xA0\x1B\x03\x83\x16\x90`\0\x80Q` a\x1B\x06\x839\x81Q\x91R\x90\x83\x90\xA3PV[a\x0F\xFD\x82\x82a\x11\xFEV[`\0\x82\x81R`\x01` R`@\x90 a\x05\xEC\x90\x82a\x12\x82V[a\x10\x1F\x82\x82a\x12\x97V[`\0\x82\x81R`\x01` R`@\x90 a\x05\xEC\x90\x82a\x12\xFCV[`\x02T`@QcY\xAA'A`\xE1\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\x04\x83\x01R`\0\x92\x83\x92\x91\x16\x90c\xB3TN\x82\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x10\x85W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x10\xA9\x91\x90a\x194V[\x90P\x80`\0\x03a\x10\xBCWP`\0\x92\x91PPV[`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R`\x03` R`@\x90 T\x81\x10a\x10\xE4WP`\x01\x92\x91PPV[P`\0\x92\x91PPV[`\x02T`@Qc6\x16\xB4\x11`\xE2\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x84\x81\x16`\x04\x83\x01R\x83\x81\x16`$\x83\x01R`\0\x92\x16\x90c\xD8Z\xD0D\x90`D\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x11@W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x11d\x91\x90a\x19\xBCV[\x90P\x80a\x05\xECW`@Qc\x07AIg`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x83\x16`\x04\x82\x01R`$\x01a\x06]V[`\0a\x07\xE1\x83\x83a\x13\x11V[`\0a\x04B\x82T\x90V[a\x11\xAF\x82\x82a\x0B\x1AV[a\x06pWa\x11\xBC\x81a\x13;V[a\x11\xC7\x83` a\x13MV[`@Q` \x01a\x11\xD8\x92\x91\x90a\x19\xFDV[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x90\x82\x90RbF\x1B\xCD`\xE5\x1B\x82Ra\x06]\x91`\x04\x01a\x1ArV[a\x12\x08\x82\x82a\x0B\x1AV[a\x06pW`\0\x82\x81R` \x81\x81R`@\x80\x83 `\x01`\x01`\xA0\x1B\x03\x85\x16\x84R\x90\x91R\x90 \x80T`\xFF\x19\x16`\x01\x17\x90Ua\x12>3\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x81`\x01`\x01`\xA0\x1B\x03\x16\x83\x7F/\x87\x88\x11~~\xFF\x1D\x82\xE9&\xECyI\x01\xD1|x\x02JP'\t@0E@\xA73eo\r`@Q`@Q\x80\x91\x03\x90\xA4PPV[`\0a\x07\xE1\x83`\x01`\x01`\xA0\x1B\x03\x84\x16a\x14\xE9V[a\x12\xA1\x82\x82a\x0B\x1AV[\x15a\x06pW`\0\x82\x81R` \x81\x81R`@\x80\x83 `\x01`\x01`\xA0\x1B\x03\x85\x16\x80\x85R\x92R\x80\x83 \x80T`\xFF\x19\x16\x90UQ3\x92\x85\x91\x7F\xF69\x1F\\2\xD9\xC6\x9D*G\xEAg\x0BD)t\xB595\xD1\xED\xC7\xFDd\xEB!\xE0G\xA89\x17\x1B\x91\x90\xA4PPV[`\0a\x07\xE1\x83`\x01`\x01`\xA0\x1B\x03\x84\x16a\x158V[`\0\x82`\0\x01\x82\x81T\x81\x10a\x13(Wa\x13(a\x19vV[\x90`\0R` `\0 \x01T\x90P\x92\x91PPV[``a\x04B`\x01`\x01`\xA0\x1B\x03\x83\x16`\x14[```\0a\x13\\\x83`\x02a\x1A\xA5V[a\x13g\x90`\x02a\x1A\xBCV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x13\x7FWa\x13\x7Fa\x18\x17V[`@Q\x90\x80\x82R\x80`\x1F\x01`\x1F\x19\x16` \x01\x82\x01`@R\x80\x15a\x13\xA9W` \x82\x01\x81\x806\x837\x01\x90P[P\x90P`\x03`\xFC\x1B\x81`\0\x81Q\x81\x10a\x13\xC4Wa\x13\xC4a\x19vV[` \x01\x01\x90`\x01`\x01`\xF8\x1B\x03\x19\x16\x90\x81`\0\x1A\x90SP`\x0F`\xFB\x1B\x81`\x01\x81Q\x81\x10a\x13\xF3Wa\x13\xF3a\x19vV[` \x01\x01\x90`\x01`\x01`\xF8\x1B\x03\x19\x16\x90\x81`\0\x1A\x90SP`\0a\x14\x17\x84`\x02a\x1A\xA5V[a\x14\"\x90`\x01a\x1A\xBCV[\x90P[`\x01\x81\x11\x15a\x14\x9AWo\x18\x18\x99\x19\x9A\x1A\x9B\x1B\x9C\x1C\xB0\xB11\xB22\xB3`\x81\x1B\x85`\x0F\x16`\x10\x81\x10a\x14VWa\x14Va\x19vV[\x1A`\xF8\x1B\x82\x82\x81Q\x81\x10a\x14lWa\x14la\x19vV[` \x01\x01\x90`\x01`\x01`\xF8\x1B\x03\x19\x16\x90\x81`\0\x1A\x90SP`\x04\x94\x90\x94\x1C\x93a\x14\x93\x81a\x19\xA5V[\x90Pa\x14%V[P\x83\x15a\x07\xE1W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01\x81\x90R`$\x82\x01R\x7FStrings: hex length insufficient`D\x82\x01R`d\x01a\x06]V[`\0\x81\x81R`\x01\x83\x01` R`@\x81 Ta\x150WP\x81T`\x01\x81\x81\x01\x84U`\0\x84\x81R` \x80\x82 \x90\x93\x01\x84\x90U\x84T\x84\x82R\x82\x86\x01\x90\x93R`@\x90 \x91\x90\x91Ua\x04BV[P`\0a\x04BV[`\0\x81\x81R`\x01\x83\x01` R`@\x81 T\x80\x15a\x16!W`\0a\x15\\`\x01\x83a\x19cV[\x85T\x90\x91P`\0\x90a\x15p\x90`\x01\x90a\x19cV[\x90P\x81\x81\x14a\x15\xD5W`\0\x86`\0\x01\x82\x81T\x81\x10a\x15\x90Wa\x15\x90a\x19vV[\x90`\0R` `\0 \x01T\x90P\x80\x87`\0\x01\x84\x81T\x81\x10a\x15\xB3Wa\x15\xB3a\x19vV[`\0\x91\x82R` \x80\x83 \x90\x91\x01\x92\x90\x92U\x91\x82R`\x01\x88\x01\x90R`@\x90 \x83\x90U[\x85T\x86\x90\x80a\x15\xE6Wa\x15\xE6a\x1A\xCFV[`\x01\x90\x03\x81\x81\x90`\0R` `\0 \x01`\0\x90U\x90U\x85`\x01\x01`\0\x86\x81R` \x01\x90\x81R` \x01`\0 `\0\x90U`\x01\x93PPPPa\x04BV[`\0\x91PPa\x04BV[`\0` \x82\x84\x03\x12\x15a\x16=W`\0\x80\xFD[\x815`\x01`\x01`\xE0\x1B\x03\x19\x81\x16\x81\x14a\x07\xE1W`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15a\x16gW`\0\x80\xFD[P5\x91\x90PV[\x805`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x16\x85W`\0\x80\xFD[\x91\x90PV[`\0` \x82\x84\x03\x12\x15a\x16\x9CW`\0\x80\xFD[a\x07\xE1\x82a\x16nV[`\0\x80\x83`\x1F\x84\x01\x12a\x16\xB7W`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x16\xCFW`\0\x80\xFD[` \x83\x01\x91P\x83` \x82`\x05\x1B\x85\x01\x01\x11\x15a\x16\xEAW`\0\x80\xFD[\x92P\x92\x90PV[`\0\x80` \x83\x85\x03\x12\x15a\x17\x04W`\0\x80\xFD[\x825g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x17\x1BW`\0\x80\xFD[a\x17'\x85\x82\x86\x01a\x16\xA5V[\x90\x96\x90\x95P\x93PPPPV[`\0\x80`@\x83\x85\x03\x12\x15a\x17FW`\0\x80\xFD[\x825\x91Pa\x17V` \x84\x01a\x16nV[\x90P\x92P\x92\x90PV[`\0\x80`\0\x80`@\x85\x87\x03\x12\x15a\x17uW`\0\x80\xFD[\x845g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x17\x8DW`\0\x80\xFD[a\x17\x99\x88\x83\x89\x01a\x16\xA5V[\x90\x96P\x94P` \x87\x015\x91P\x80\x82\x11\x15a\x17\xB2W`\0\x80\xFD[Pa\x17\xBF\x87\x82\x88\x01a\x16\xA5V[\x95\x98\x94\x97P\x95PPPPV[`\0\x80`@\x83\x85\x03\x12\x15a\x17\xDEW`\0\x80\xFD[PP\x805\x92` \x90\x91\x015\x91PV[`\0\x80`@\x83\x85\x03\x12\x15a\x18\0W`\0\x80\xFD[a\x18\t\x83a\x16nV[\x91Pa\x17V` \x84\x01a\x16nV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[\x80\x15\x15\x81\x14a\x0F\x93W`\0\x80\xFD[\x805a\x16\x85\x81a\x18-V[`\0\x80`\0`@\x84\x86\x03\x12\x15a\x18[W`\0\x80\xFD[\x835g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x18sW`\0\x80\xFD[a\x18\x7F\x87\x83\x88\x01a\x16\xA5V[\x90\x95P\x93P` \x91P\x85\x82\x015\x81\x81\x11\x15a\x18\x99W`\0\x80\xFD[\x86\x01`\x1F\x81\x01\x88\x13a\x18\xAAW`\0\x80\xFD[\x805\x82\x81\x11\x15a\x18\xBCWa\x18\xBCa\x18\x17V[\x80`\x05\x1B`@Q`\x1F\x19`?\x83\x01\x16\x81\x01\x81\x81\x10\x86\x82\x11\x17\x15a\x18\xE1Wa\x18\xE1a\x18\x17V[`@R\x91\x82R\x84\x82\x01\x93P\x82\x81\x01\x85\x01\x91\x8A\x83\x11\x15a\x18\xFFW`\0\x80\xFD[\x92\x85\x01\x92[\x82\x84\x10\x15a\x19$Wa\x19\x15\x84a\x18;V[\x85R\x93\x85\x01\x93\x92\x85\x01\x92a\x19\x04V[\x80\x96PPPPPPP\x92P\x92P\x92V[`\0` \x82\x84\x03\x12\x15a\x19FW`\0\x80\xFD[PQ\x91\x90PV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[\x81\x81\x03\x81\x81\x11\x15a\x04BWa\x04Ba\x19MV[cNH{q`\xE0\x1B`\0R`2`\x04R`$`\0\xFD[`\0`\x01\x82\x01a\x19\x9EWa\x19\x9Ea\x19MV[P`\x01\x01\x90V[`\0\x81a\x19\xB4Wa\x19\xB4a\x19MV[P`\0\x19\x01\x90V[`\0` \x82\x84\x03\x12\x15a\x19\xCEW`\0\x80\xFD[\x81Qa\x07\xE1\x81a\x18-V[`\0[\x83\x81\x10\x15a\x19\xF4W\x81\x81\x01Q\x83\x82\x01R` \x01a\x19\xDCV[PP`\0\x91\x01RV[\x7FAccessControl: account \0\0\0\0\0\0\0\0\0\x81R`\0\x83Qa\x1A5\x81`\x17\x85\x01` \x88\x01a\x19\xD9V[p\x01\x03K\x99\x03kK\x9B\x9BKs9\x03\x93{c)`}\x1B`\x17\x91\x84\x01\x91\x82\x01R\x83Qa\x1Af\x81`(\x84\x01` \x88\x01a\x19\xD9V[\x01`(\x01\x94\x93PPPPV[` \x81R`\0\x82Q\x80` \x84\x01Ra\x1A\x91\x81`@\x85\x01` \x87\x01a\x19\xD9V[`\x1F\x01`\x1F\x19\x16\x91\x90\x91\x01`@\x01\x92\x91PPV[\x80\x82\x02\x81\x15\x82\x82\x04\x84\x14\x17a\x04BWa\x04Ba\x19MV[\x80\x82\x01\x80\x82\x11\x15a\x04BWa\x04Ba\x19MV[cNH{q`\xE0\x1B`\0R`1`\x04R`$`\0\xFD\xFE$\x1E\xCF\x16\xD7\x9D\x0F\x8D\xBF\xB9,\xBC\x07\xFE\x17\x84\x04%\x97l\xF0f\x7F\x02/\xE9\x87|\xAA\x83\x1B\x08\xE2\x99O\x8Do`\n\xD4s\xDB\xA8,\n\x89\n\xB7\xAF\xFA\xCB\x86\r3e\xF4t\xBA\xA3\xDC\x04\xA2\xE5W\xA2dipfsX\"\x12 \xEF\xA4.A\xA8\x01\x8Ezx\xD1D\x0FA\\X\x0C\xEB\xAF\xEEu\xB4<\x89B\xFEPg\xDA\xC9\xDC\x19#dsolcC\0\x08\x13\x003$\x1E\xCF\x16\xD7\x9D\x0F\x8D\xBF\xB9,\xBC\x07\xFE\x17\x84\x04%\x97l\xF0f\x7F\x02/\xE9\x87|\xAA\x83\x1B\x08";
1172    /// The bytecode of the contract.
1173    pub static HOPRNETWORKREGISTRY_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static(
1174        __BYTECODE,
1175    );
1176    #[rustfmt::skip]
1177    const __DEPLOYED_BYTECODE: &[u8] = b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\x01\xC4W`\x005`\xE0\x1C\x80c\x90\x10\xD0|\x11a\0\xF9W\x80c\xCA\x15\xC8s\x11a\0\x97W\x80c\xCF\xB3s_\x11a\0qW\x80c\xCF\xB3s_\x14a\x03\xDAW\x80c\xD5Gt\x1F\x14a\x03\xE2W\x80c\xE3\xD2\xA0q\x14a\x03\xF5W\x80c\xEC\x87b\x1C\x14a\x04\x08W`\0\x80\xFD[\x80c\xCA\x15\xC8s\x14a\x03\xACW\x80c\xCA\xF5\xF5\x01\x14a\x03\xBFW\x80c\xCB\xEB\xAF\xE0\x14a\x03\xD2W`\0\x80\xFD[\x80c\xA0^\x0Fm\x11a\0\xD3W\x80c\xA0^\x0Fm\x14a\x03UW\x80c\xA2\x17\xFD\xDF\x14a\x03hW\x80c\xA5`]\xA5\x14a\x03pW\x80c\xC7\xEC\xAB\x8F\x14a\x03\x83W`\0\x80\xFD[\x80c\x90\x10\xD0|\x14a\x03\x0FW\x80c\x91\xD1HT\x14a\x03:W\x80c\x9C\x7Fd;\x14a\x03MW`\0\x80\xFD[\x80c6V\x8A\xBE\x11a\x01fW\x80cN\xB1\x80\\\x11a\x01@W\x80cN\xB1\x80\\\x14a\x02\xC3W\x80co\xFB\xF9\x88\x14a\x02\xD6W\x80cvY:9\x14a\x02\xE9W\x80c\x8Du;-\x14a\x02\xFCW`\0\x80\xFD[\x80c6V\x8A\xBE\x14a\x02}W\x80c?\xA5\x84W\x14a\x02\x90W\x80cA\xB6Ie\x14a\x02\xB0W`\0\x80\xFD[\x80c'\xB0@\xA1\x11a\x01\xA2W\x80c'\xB0@\xA1\x14a\x02/W\x80c*-\xEE\xE2\x14a\x02DW\x80c,3\xCA\xFB\x14a\x02WW\x80c//\xF1]\x14a\x02jW`\0\x80\xFD[\x80c\x01\xFF\xC9\xA7\x14a\x01\xC9W\x80c#\x8D\xAF\xE0\x14a\x01\xF1W\x80c$\x8A\x9C\xA3\x14a\x01\xFEW[`\0\x80\xFD[a\x01\xDCa\x01\xD76`\x04a\x16+V[a\x04\x1DV[`@Q\x90\x15\x15\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[`\x05Ta\x01\xDC\x90`\xFF\x16\x81V[a\x02!a\x02\x0C6`\x04a\x16UV[`\0\x90\x81R` \x81\x90R`@\x90 `\x01\x01T\x90V[`@Q\x90\x81R` \x01a\x01\xE8V[a\x02Ba\x02=6`\x04a\x16\x8AV[a\x04HV[\0[a\x02!a\x02R6`\x04a\x16\x8AV[a\x04\xABV[a\x02Ba\x02e6`\x04a\x16\xF1V[a\x05]V[a\x02Ba\x02x6`\x04a\x173V[a\x05\xC7V[a\x02Ba\x02\x8B6`\x04a\x173V[a\x05\xF1V[a\x02!a\x02\x9E6`\x04a\x16\x8AV[`\x03` R`\0\x90\x81R`@\x90 T\x81V[a\x02Ba\x02\xBE6`\x04a\x16\xF1V[a\x06tV[a\x01\xDCa\x02\xD16`\x04a\x16\x8AV[a\x07\x97V[a\x01\xDCa\x02\xE46`\x04a\x16\x8AV[a\x07\xE8V[a\x02Ba\x02\xF76`\x04a\x16\xF1V[a\x07\xF3V[a\x02Ba\x03\n6`\x04a\x17_V[a\t\x88V[a\x03\"a\x03\x1D6`\x04a\x17\xCBV[a\x0B\x02V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x01\xE8V[a\x01\xDCa\x03H6`\x04a\x173V[a\x0B\x1AV[a\x02Ba\x0BCV[a\x02Ba\x03c6`\x04a\x16\xF1V[a\x0BqV[a\x02!`\0\x81V[a\x01\xDCa\x03~6`\x04a\x17\xEDV[a\x0C\xC4V[a\x03\"a\x03\x916`\x04a\x16\x8AV[`\x04` R`\0\x90\x81R`@\x90 T`\x01`\x01`\xA0\x1B\x03\x16\x81V[a\x02!a\x03\xBA6`\x04a\x16UV[a\r\x13V[a\x02Ba\x03\xCD6`\x04a\x18FV[a\r*V[a\x02Ba\x0EDV[a\x02Ba\x0E\xB7V[a\x02Ba\x03\xF06`\x04a\x173V[a\x0F/V[`\x02Ta\x03\"\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[a\x02!`\0\x80Q` a\x1A\xE6\x839\x81Q\x91R\x81V[`\0`\x01`\x01`\xE0\x1B\x03\x19\x82\x16cZ\x05\x18\x0F`\xE0\x1B\x14\x80a\x04BWPa\x04B\x82a\x0FTV[\x92\x91PPV[`\0\x80Q` a\x1A\xE6\x839\x81Q\x91Ra\x04`\x81a\x0F\x89V[`\x02\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x84\x16\x90\x81\x17\x90\x91U`@Q\x7F\x8A\xC4\xB2\xEBwI\xF7\\[\x99\xB8\x98\xE5G\xFDa]\xD7\xA4$\xE6\x83V\xEA\x19k}\xAEt-l2\x90`\0\x90\xA2PPV[`\x02T`@QcY\xAA'A`\xE1\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\x04\x83\x01R`\0\x92\x83\x92\x91\x16\x90c\xB3TN\x82\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x04\xF9W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x05\x1D\x91\x90a\x194V[`\x01`\x01`\xA0\x1B\x03\x84\x16`\0\x90\x81R`\x03` R`@\x90 T\x90\x91P\x80\x82\x11\x15a\x05SWa\x05K\x81\x83a\x19cV[\x94\x93PPPPV[P`\0\x93\x92PPPV[`\0\x80Q` a\x1A\xE6\x839\x81Q\x91Ra\x05u\x81a\x0F\x89V[`\0[\x82\x81\x10\x15a\x05\xC1Wa\x05\xAF\x84\x84\x83\x81\x81\x10a\x05\x95Wa\x05\x95a\x19vV[\x90P` \x02\x01` \x81\x01\x90a\x05\xAA\x91\x90a\x16\x8AV[a\x0F\x96V[\x80a\x05\xB9\x81a\x19\x8CV[\x91PPa\x05xV[PPPPV[`\0\x82\x81R` \x81\x90R`@\x90 `\x01\x01Ta\x05\xE2\x81a\x0F\x89V[a\x05\xEC\x83\x83a\x0F\xF3V[PPPV[`\x01`\x01`\xA0\x1B\x03\x81\x163\x14a\x06fW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`/`$\x82\x01R\x7FAccessControl: can only renounce`D\x82\x01Rn\x1097\xB62\xB9\x9037\xB9\x109\xB2\xB63`\x89\x1B`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[a\x06p\x82\x82a\x10\x15V[PPV[`\0\x80Q` a\x1A\xE6\x839\x81Q\x91Ra\x06\x8C\x81a\x0F\x89V[`\0[\x82\x81\x10\x15a\x05\xC1W`\0\x84\x84\x83\x81\x81\x10a\x06\xABWa\x06\xABa\x19vV[\x90P` \x02\x01` \x81\x01\x90a\x06\xC0\x91\x90a\x16\x8AV[`\x01`\x01`\xA0\x1B\x03\x80\x82\x16`\0\x90\x81R`\x04` R`@\x90 T\x91\x92P\x16\x80a\x07\x07W`@Qc\x168y\x15`\xE3\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x83\x16`\x04\x82\x01R`$\x01a\x06]V[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\x03` R`@\x81 \x80T\x91a\x07+\x83a\x19\xA5V[\x90\x91UPP`\x01`\x01`\xA0\x1B\x03\x80\x83\x16`\0\x81\x81R`\x04` R`@\x80\x82 \x80T`\x01`\x01`\xA0\x1B\x03\x19\x16\x90UQ\x91\x92\x84\x16\x91\x7F\x91v\n\x10\x01\xF51\xEC+\xEE\x86\x02\xBEU\xAD+\x11YF^\xDF\xF5\xBB\xCDA\xD2\x07\x03t*MB\x91\x90\xA3PP\x80\x80a\x07\x8F\x90a\x19\x8CV[\x91PPa\x06\x8FV[`\0`\x01`\x01`\xA0\x1B\x03\x82\x16a\x07\xAFWP`\0\x91\x90PV[`\x01`\x01`\xA0\x1B\x03\x80\x83\x16`\0\x90\x81R`\x04` R`@\x90 T\x16\x80a\x07\xD8WP`\0\x92\x91PPV[a\x07\xE1\x81a\x107V[\x93\x92PPPV[`\0a\x04B\x82a\x107V[`\x05T`\xFF\x16a\x08\x16W`@Qc\xC4&8\xBB`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0[\x81\x81\x10\x15a\tAW`\0\x83\x83\x83\x81\x81\x10a\x085Wa\x085a\x19vV[\x90P` \x02\x01` \x81\x01\x90a\x08J\x91\x90a\x16\x8AV[`\x01`\x01`\xA0\x1B\x03\x80\x82\x16`\0\x90\x81R`\x04` R`@\x90 T\x91\x92P\x16a\x08r3\x83a\x10\xEDV[`\x01`\x01`\xA0\x1B\x03\x81\x16a\x08\xF8W3`\0\x90\x81R`\x03` R`@\x81 \x80T\x91a\x08\x9B\x83a\x19\x8CV[\x90\x91UPP`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x81\x81R`\x04` R`@\x80\x82 \x80T`\x01`\x01`\xA0\x1B\x03\x19\x163\x90\x81\x17\x90\x91U\x90Q\x90\x91\x7F\n1\xEE\x9DF\xA8(\x88K\x81\0<\x84\x98\x15n\xA6\xAA\x15\xB9\xB5K\xDD\x0E\xF0\xB53\xD9\xEB\xA5~U\x91\xA3a\t,V[`\x01`\x01`\xA0\x1B\x03\x81\x163\x14a\t,W`@Qc[S;\xA1`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x83\x16`\x04\x82\x01R`$\x01a\x06]V[PP\x80\x80a\t9\x90a\x19\x8CV[\x91PPa\x08\x19V[Pa\tK3a\x107V[a\thW`@Qc\x03\xEEoW`\xE2\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`@Q`\x01\x903\x90`\0\x80Q` a\x1B\x06\x839\x81Q\x91R\x90`\0\x90\xA3PPV[`\0\x80Q` a\x1A\xE6\x839\x81Q\x91Ra\t\xA0\x81a\x0F\x89V[\x83\x82\x14a\t\xC0W`@Qc\xED\x88/q`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0[\x84\x81\x10\x15a\n\xFAW`\0\x84\x84\x83\x81\x81\x10a\t\xDFWa\t\xDFa\x19vV[\x90P` \x02\x01` \x81\x01\x90a\t\xF4\x91\x90a\x16\x8AV[\x90P`\0\x87\x87\x84\x81\x81\x10a\n\nWa\n\na\x19vV[\x90P` \x02\x01` \x81\x01\x90a\n\x1F\x91\x90a\x16\x8AV[`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\0\x90\x81R`\x04` R`@\x90 T\x91\x92P\x16\x15a\nfW`@Qc[S;\xA1`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x83\x16`\x04\x82\x01R`$\x01a\x06]V[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\x03` R`@\x81 \x80T\x91a\n\x8A\x83a\x19\x8CV[\x90\x91UPP`\x01`\x01`\xA0\x1B\x03\x82\x81\x16`\0\x81\x81R`\x04` R`@\x80\x82 \x80T`\x01`\x01`\xA0\x1B\x03\x19\x16\x94\x86\x16\x94\x85\x17\x90UQ\x91\x92\x91\x7F\x04\xE1\xEA\xA4\xDA\x18\xF7\xE7B\xA4\xED\xBB\xE9\xED\xE3l\xDFu\xF7\x93\xBB\x03\xAB!X\xC0\x87\x7F\x1C\xAF+\x93\x91\x90\xA3PP\x80\x80a\n\xF2\x90a\x19\x8CV[\x91PPa\t\xC3V[PPPPPPV[`\0\x82\x81R`\x01` R`@\x81 a\x07\xE1\x90\x83a\x11\x8FV[`\0\x91\x82R` \x82\x81R`@\x80\x84 `\x01`\x01`\xA0\x1B\x03\x93\x90\x93\x16\x84R\x91\x90R\x90 T`\xFF\x16\x90V[`\x05T`\xFF\x16a\x0BfW`@Qc\xC4&8\xBB`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x0Bo3a\x0F\x96V[V[`\x05T`\xFF\x16a\x0B\x94W`@Qc\xC4&8\xBB`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0[\x81\x81\x10\x15a\x0C\xBAW`\0\x83\x83\x83\x81\x81\x10a\x0B\xB3Wa\x0B\xB3a\x19vV[\x90P` \x02\x01` \x81\x01\x90a\x0B\xC8\x91\x90a\x16\x8AV[`\x01`\x01`\xA0\x1B\x03\x80\x82\x16`\0\x90\x81R`\x04` R`@\x90 T\x91\x92P\x16a\x0B\xF03\x83a\x10\xEDV[3`\x01`\x01`\xA0\x1B\x03\x82\x16\x03a\x0CrW3`\0\x90\x81R`\x03` R`@\x81 \x80T\x91a\x0C\x1B\x83a\x19\xA5V[\x90\x91UPP`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x81\x81R`\x04` R`@\x80\x82 \x80T`\x01`\x01`\xA0\x1B\x03\x19\x16\x90UQ3\x91\x7F\x15\x9A\x8A\xE9H\xFC\xC6\xE7\xF8\xB5I\\\rs\xE9\x15\x98D\n\xF8\xA6(\x17$l\t\xED\xC2\xC2\x8D\xBA\x8A\x91\xA3a\x0C\xA5V[`\x01`\x01`\xA0\x1B\x03\x81\x16\x15a\x0C\xA5W`@Qc\xBFO\xDDs`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x83\x16`\x04\x82\x01R`$\x01a\x06]V[PP\x80\x80a\x0C\xB2\x90a\x19\x8CV[\x91PPa\x0B\x97V[Pa\x06p3a\x0F\x96V[`\0`\x01`\x01`\xA0\x1B\x03\x83\x16\x15\x80a\x0C\xE3WP`\x01`\x01`\xA0\x1B\x03\x82\x16\x15[\x15a\x0C\xF0WP`\0a\x04BV[P`\x01`\x01`\xA0\x1B\x03\x91\x82\x16`\0\x90\x81R`\x04` R`@\x90 T\x82\x16\x91\x16\x14\x90V[`\0\x81\x81R`\x01` R`@\x81 a\x04B\x90a\x11\x9BV[`\0\x80Q` a\x1A\xE6\x839\x81Q\x91Ra\rB\x81a\x0F\x89V[\x81Q\x83\x14a\rcW`@Qc\xED\x88/q`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\0[\x83\x81\x10\x15a\x0E=W\x82\x81\x81Q\x81\x10a\r\x80Wa\r\x80a\x19vV[` \x02` \x01\x01Q\x15a\r\xDEW`\x01\x85\x85\x83\x81\x81\x10a\r\xA1Wa\r\xA1a\x19vV[\x90P` \x02\x01` \x81\x01\x90a\r\xB6\x91\x90a\x16\x8AV[`\x01`\x01`\xA0\x1B\x03\x16`\0\x80Q` a\x1B\x06\x839\x81Q\x91R`@Q`@Q\x80\x91\x03\x90\xA3a\x0E+V[`\0\x85\x85\x83\x81\x81\x10a\r\xF2Wa\r\xF2a\x19vV[\x90P` \x02\x01` \x81\x01\x90a\x0E\x07\x91\x90a\x16\x8AV[`\x01`\x01`\xA0\x1B\x03\x16`\0\x80Q` a\x1B\x06\x839\x81Q\x91R`@Q`@Q\x80\x91\x03\x90\xA3[\x80a\x0E5\x81a\x19\x8CV[\x91PPa\rfV[PPPPPV[`\0\x80Q` a\x1A\xE6\x839\x81Q\x91Ra\x0E\\\x81a\x0F\x89V[`\x05T`\xFF\x16a\x0E\x7FW`@Qc\xC4&8\xBB`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x05\x80T`\xFF\x19\x16\x90U`@Q`\0\x90\x7F\x8B\xC8_%\xE3\xE93\x97\x8F\t\x94\x08\xB3\xBB>\xB7c\x0Bv\xF7E_. [\xCB\xC0\xA7\x80\xE1~r\x90\x82\x90\xA2PV[`\0\x80Q` a\x1A\xE6\x839\x81Q\x91Ra\x0E\xCF\x81a\x0F\x89V[`\x05T`\xFF\x16\x15a\x0E\xF3W`@Qc\xED\x1A\x0Cw`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[`\x05\x80T`\xFF\x19\x16`\x01\x90\x81\x17\x90\x91U`@Q\x7F\x8B\xC8_%\xE3\xE93\x97\x8F\t\x94\x08\xB3\xBB>\xB7c\x0Bv\xF7E_. [\xCB\xC0\xA7\x80\xE1~r\x90`\0\x90\xA2PV[`\0\x82\x81R` \x81\x90R`@\x90 `\x01\x01Ta\x0FJ\x81a\x0F\x89V[a\x05\xEC\x83\x83a\x10\x15V[`\0`\x01`\x01`\xE0\x1B\x03\x19\x82\x16cye\xDB\x0B`\xE0\x1B\x14\x80a\x04BWPc\x01\xFF\xC9\xA7`\xE0\x1B`\x01`\x01`\xE0\x1B\x03\x19\x83\x16\x14a\x04BV[a\x0F\x93\x813a\x11\xA5V[PV[a\x0F\x9F\x81a\x107V[\x15a\x0F\xCCW`@Q`\x01\x90`\x01`\x01`\xA0\x1B\x03\x83\x16\x90`\0\x80Q` a\x1B\x06\x839\x81Q\x91R\x90`\0\x90\xA3PV[`@Q`\0\x90`\x01`\x01`\xA0\x1B\x03\x83\x16\x90`\0\x80Q` a\x1B\x06\x839\x81Q\x91R\x90\x83\x90\xA3PV[a\x0F\xFD\x82\x82a\x11\xFEV[`\0\x82\x81R`\x01` R`@\x90 a\x05\xEC\x90\x82a\x12\x82V[a\x10\x1F\x82\x82a\x12\x97V[`\0\x82\x81R`\x01` R`@\x90 a\x05\xEC\x90\x82a\x12\xFCV[`\x02T`@QcY\xAA'A`\xE1\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\x04\x83\x01R`\0\x92\x83\x92\x91\x16\x90c\xB3TN\x82\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x10\x85W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x10\xA9\x91\x90a\x194V[\x90P\x80`\0\x03a\x10\xBCWP`\0\x92\x91PPV[`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R`\x03` R`@\x90 T\x81\x10a\x10\xE4WP`\x01\x92\x91PPV[P`\0\x92\x91PPV[`\x02T`@Qc6\x16\xB4\x11`\xE2\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x84\x81\x16`\x04\x83\x01R\x83\x81\x16`$\x83\x01R`\0\x92\x16\x90c\xD8Z\xD0D\x90`D\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x11@W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x11d\x91\x90a\x19\xBCV[\x90P\x80a\x05\xECW`@Qc\x07AIg`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x83\x16`\x04\x82\x01R`$\x01a\x06]V[`\0a\x07\xE1\x83\x83a\x13\x11V[`\0a\x04B\x82T\x90V[a\x11\xAF\x82\x82a\x0B\x1AV[a\x06pWa\x11\xBC\x81a\x13;V[a\x11\xC7\x83` a\x13MV[`@Q` \x01a\x11\xD8\x92\x91\x90a\x19\xFDV[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x90\x82\x90RbF\x1B\xCD`\xE5\x1B\x82Ra\x06]\x91`\x04\x01a\x1ArV[a\x12\x08\x82\x82a\x0B\x1AV[a\x06pW`\0\x82\x81R` \x81\x81R`@\x80\x83 `\x01`\x01`\xA0\x1B\x03\x85\x16\x84R\x90\x91R\x90 \x80T`\xFF\x19\x16`\x01\x17\x90Ua\x12>3\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x81`\x01`\x01`\xA0\x1B\x03\x16\x83\x7F/\x87\x88\x11~~\xFF\x1D\x82\xE9&\xECyI\x01\xD1|x\x02JP'\t@0E@\xA73eo\r`@Q`@Q\x80\x91\x03\x90\xA4PPV[`\0a\x07\xE1\x83`\x01`\x01`\xA0\x1B\x03\x84\x16a\x14\xE9V[a\x12\xA1\x82\x82a\x0B\x1AV[\x15a\x06pW`\0\x82\x81R` \x81\x81R`@\x80\x83 `\x01`\x01`\xA0\x1B\x03\x85\x16\x80\x85R\x92R\x80\x83 \x80T`\xFF\x19\x16\x90UQ3\x92\x85\x91\x7F\xF69\x1F\\2\xD9\xC6\x9D*G\xEAg\x0BD)t\xB595\xD1\xED\xC7\xFDd\xEB!\xE0G\xA89\x17\x1B\x91\x90\xA4PPV[`\0a\x07\xE1\x83`\x01`\x01`\xA0\x1B\x03\x84\x16a\x158V[`\0\x82`\0\x01\x82\x81T\x81\x10a\x13(Wa\x13(a\x19vV[\x90`\0R` `\0 \x01T\x90P\x92\x91PPV[``a\x04B`\x01`\x01`\xA0\x1B\x03\x83\x16`\x14[```\0a\x13\\\x83`\x02a\x1A\xA5V[a\x13g\x90`\x02a\x1A\xBCV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x13\x7FWa\x13\x7Fa\x18\x17V[`@Q\x90\x80\x82R\x80`\x1F\x01`\x1F\x19\x16` \x01\x82\x01`@R\x80\x15a\x13\xA9W` \x82\x01\x81\x806\x837\x01\x90P[P\x90P`\x03`\xFC\x1B\x81`\0\x81Q\x81\x10a\x13\xC4Wa\x13\xC4a\x19vV[` \x01\x01\x90`\x01`\x01`\xF8\x1B\x03\x19\x16\x90\x81`\0\x1A\x90SP`\x0F`\xFB\x1B\x81`\x01\x81Q\x81\x10a\x13\xF3Wa\x13\xF3a\x19vV[` \x01\x01\x90`\x01`\x01`\xF8\x1B\x03\x19\x16\x90\x81`\0\x1A\x90SP`\0a\x14\x17\x84`\x02a\x1A\xA5V[a\x14\"\x90`\x01a\x1A\xBCV[\x90P[`\x01\x81\x11\x15a\x14\x9AWo\x18\x18\x99\x19\x9A\x1A\x9B\x1B\x9C\x1C\xB0\xB11\xB22\xB3`\x81\x1B\x85`\x0F\x16`\x10\x81\x10a\x14VWa\x14Va\x19vV[\x1A`\xF8\x1B\x82\x82\x81Q\x81\x10a\x14lWa\x14la\x19vV[` \x01\x01\x90`\x01`\x01`\xF8\x1B\x03\x19\x16\x90\x81`\0\x1A\x90SP`\x04\x94\x90\x94\x1C\x93a\x14\x93\x81a\x19\xA5V[\x90Pa\x14%V[P\x83\x15a\x07\xE1W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01\x81\x90R`$\x82\x01R\x7FStrings: hex length insufficient`D\x82\x01R`d\x01a\x06]V[`\0\x81\x81R`\x01\x83\x01` R`@\x81 Ta\x150WP\x81T`\x01\x81\x81\x01\x84U`\0\x84\x81R` \x80\x82 \x90\x93\x01\x84\x90U\x84T\x84\x82R\x82\x86\x01\x90\x93R`@\x90 \x91\x90\x91Ua\x04BV[P`\0a\x04BV[`\0\x81\x81R`\x01\x83\x01` R`@\x81 T\x80\x15a\x16!W`\0a\x15\\`\x01\x83a\x19cV[\x85T\x90\x91P`\0\x90a\x15p\x90`\x01\x90a\x19cV[\x90P\x81\x81\x14a\x15\xD5W`\0\x86`\0\x01\x82\x81T\x81\x10a\x15\x90Wa\x15\x90a\x19vV[\x90`\0R` `\0 \x01T\x90P\x80\x87`\0\x01\x84\x81T\x81\x10a\x15\xB3Wa\x15\xB3a\x19vV[`\0\x91\x82R` \x80\x83 \x90\x91\x01\x92\x90\x92U\x91\x82R`\x01\x88\x01\x90R`@\x90 \x83\x90U[\x85T\x86\x90\x80a\x15\xE6Wa\x15\xE6a\x1A\xCFV[`\x01\x90\x03\x81\x81\x90`\0R` `\0 \x01`\0\x90U\x90U\x85`\x01\x01`\0\x86\x81R` \x01\x90\x81R` \x01`\0 `\0\x90U`\x01\x93PPPPa\x04BV[`\0\x91PPa\x04BV[`\0` \x82\x84\x03\x12\x15a\x16=W`\0\x80\xFD[\x815`\x01`\x01`\xE0\x1B\x03\x19\x81\x16\x81\x14a\x07\xE1W`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15a\x16gW`\0\x80\xFD[P5\x91\x90PV[\x805`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x16\x85W`\0\x80\xFD[\x91\x90PV[`\0` \x82\x84\x03\x12\x15a\x16\x9CW`\0\x80\xFD[a\x07\xE1\x82a\x16nV[`\0\x80\x83`\x1F\x84\x01\x12a\x16\xB7W`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x16\xCFW`\0\x80\xFD[` \x83\x01\x91P\x83` \x82`\x05\x1B\x85\x01\x01\x11\x15a\x16\xEAW`\0\x80\xFD[\x92P\x92\x90PV[`\0\x80` \x83\x85\x03\x12\x15a\x17\x04W`\0\x80\xFD[\x825g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x17\x1BW`\0\x80\xFD[a\x17'\x85\x82\x86\x01a\x16\xA5V[\x90\x96\x90\x95P\x93PPPPV[`\0\x80`@\x83\x85\x03\x12\x15a\x17FW`\0\x80\xFD[\x825\x91Pa\x17V` \x84\x01a\x16nV[\x90P\x92P\x92\x90PV[`\0\x80`\0\x80`@\x85\x87\x03\x12\x15a\x17uW`\0\x80\xFD[\x845g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x17\x8DW`\0\x80\xFD[a\x17\x99\x88\x83\x89\x01a\x16\xA5V[\x90\x96P\x94P` \x87\x015\x91P\x80\x82\x11\x15a\x17\xB2W`\0\x80\xFD[Pa\x17\xBF\x87\x82\x88\x01a\x16\xA5V[\x95\x98\x94\x97P\x95PPPPV[`\0\x80`@\x83\x85\x03\x12\x15a\x17\xDEW`\0\x80\xFD[PP\x805\x92` \x90\x91\x015\x91PV[`\0\x80`@\x83\x85\x03\x12\x15a\x18\0W`\0\x80\xFD[a\x18\t\x83a\x16nV[\x91Pa\x17V` \x84\x01a\x16nV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[\x80\x15\x15\x81\x14a\x0F\x93W`\0\x80\xFD[\x805a\x16\x85\x81a\x18-V[`\0\x80`\0`@\x84\x86\x03\x12\x15a\x18[W`\0\x80\xFD[\x835g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a\x18sW`\0\x80\xFD[a\x18\x7F\x87\x83\x88\x01a\x16\xA5V[\x90\x95P\x93P` \x91P\x85\x82\x015\x81\x81\x11\x15a\x18\x99W`\0\x80\xFD[\x86\x01`\x1F\x81\x01\x88\x13a\x18\xAAW`\0\x80\xFD[\x805\x82\x81\x11\x15a\x18\xBCWa\x18\xBCa\x18\x17V[\x80`\x05\x1B`@Q`\x1F\x19`?\x83\x01\x16\x81\x01\x81\x81\x10\x86\x82\x11\x17\x15a\x18\xE1Wa\x18\xE1a\x18\x17V[`@R\x91\x82R\x84\x82\x01\x93P\x82\x81\x01\x85\x01\x91\x8A\x83\x11\x15a\x18\xFFW`\0\x80\xFD[\x92\x85\x01\x92[\x82\x84\x10\x15a\x19$Wa\x19\x15\x84a\x18;V[\x85R\x93\x85\x01\x93\x92\x85\x01\x92a\x19\x04V[\x80\x96PPPPPPP\x92P\x92P\x92V[`\0` \x82\x84\x03\x12\x15a\x19FW`\0\x80\xFD[PQ\x91\x90PV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[\x81\x81\x03\x81\x81\x11\x15a\x04BWa\x04Ba\x19MV[cNH{q`\xE0\x1B`\0R`2`\x04R`$`\0\xFD[`\0`\x01\x82\x01a\x19\x9EWa\x19\x9Ea\x19MV[P`\x01\x01\x90V[`\0\x81a\x19\xB4Wa\x19\xB4a\x19MV[P`\0\x19\x01\x90V[`\0` \x82\x84\x03\x12\x15a\x19\xCEW`\0\x80\xFD[\x81Qa\x07\xE1\x81a\x18-V[`\0[\x83\x81\x10\x15a\x19\xF4W\x81\x81\x01Q\x83\x82\x01R` \x01a\x19\xDCV[PP`\0\x91\x01RV[\x7FAccessControl: account \0\0\0\0\0\0\0\0\0\x81R`\0\x83Qa\x1A5\x81`\x17\x85\x01` \x88\x01a\x19\xD9V[p\x01\x03K\x99\x03kK\x9B\x9BKs9\x03\x93{c)`}\x1B`\x17\x91\x84\x01\x91\x82\x01R\x83Qa\x1Af\x81`(\x84\x01` \x88\x01a\x19\xD9V[\x01`(\x01\x94\x93PPPPV[` \x81R`\0\x82Q\x80` \x84\x01Ra\x1A\x91\x81`@\x85\x01` \x87\x01a\x19\xD9V[`\x1F\x01`\x1F\x19\x16\x91\x90\x91\x01`@\x01\x92\x91PPV[\x80\x82\x02\x81\x15\x82\x82\x04\x84\x14\x17a\x04BWa\x04Ba\x19MV[\x80\x82\x01\x80\x82\x11\x15a\x04BWa\x04Ba\x19MV[cNH{q`\xE0\x1B`\0R`1`\x04R`$`\0\xFD\xFE$\x1E\xCF\x16\xD7\x9D\x0F\x8D\xBF\xB9,\xBC\x07\xFE\x17\x84\x04%\x97l\xF0f\x7F\x02/\xE9\x87|\xAA\x83\x1B\x08\xE2\x99O\x8Do`\n\xD4s\xDB\xA8,\n\x89\n\xB7\xAF\xFA\xCB\x86\r3e\xF4t\xBA\xA3\xDC\x04\xA2\xE5W\xA2dipfsX\"\x12 \xEF\xA4.A\xA8\x01\x8Ezx\xD1D\x0FA\\X\x0C\xEB\xAF\xEEu\xB4<\x89B\xFEPg\xDA\xC9\xDC\x19#dsolcC\0\x08\x13\x003";
1178    /// The deployed bytecode of the contract.
1179    pub static HOPRNETWORKREGISTRY_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static(
1180        __DEPLOYED_BYTECODE,
1181    );
1182    pub struct HoprNetworkRegistry<M>(::ethers::contract::Contract<M>);
1183    impl<M> ::core::clone::Clone for HoprNetworkRegistry<M> {
1184        fn clone(&self) -> Self {
1185            Self(::core::clone::Clone::clone(&self.0))
1186        }
1187    }
1188    impl<M> ::core::ops::Deref for HoprNetworkRegistry<M> {
1189        type Target = ::ethers::contract::Contract<M>;
1190        fn deref(&self) -> &Self::Target {
1191            &self.0
1192        }
1193    }
1194    impl<M> ::core::ops::DerefMut for HoprNetworkRegistry<M> {
1195        fn deref_mut(&mut self) -> &mut Self::Target {
1196            &mut self.0
1197        }
1198    }
1199    impl<M> ::core::fmt::Debug for HoprNetworkRegistry<M> {
1200        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1201            f.debug_tuple(::core::stringify!(HoprNetworkRegistry))
1202                .field(&self.address())
1203                .finish()
1204        }
1205    }
1206    impl<M: ::ethers::providers::Middleware> HoprNetworkRegistry<M> {
1207        /// Creates a new contract instance with the specified `ethers` client at
1208        /// `address`. The contract derefs to a `ethers::Contract` object.
1209        pub fn new<T: Into<::ethers::core::types::Address>>(
1210            address: T,
1211            client: ::std::sync::Arc<M>,
1212        ) -> Self {
1213            Self(
1214                ::ethers::contract::Contract::new(
1215                    address.into(),
1216                    HOPRNETWORKREGISTRY_ABI.clone(),
1217                    client,
1218                ),
1219            )
1220        }
1221        /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it.
1222        /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction
1223        ///
1224        /// Notes:
1225        /// - If there are no constructor arguments, you should pass `()` as the argument.
1226        /// - The default poll duration is 7 seconds.
1227        /// - The default number of confirmations is 1 block.
1228        ///
1229        ///
1230        /// # Example
1231        ///
1232        /// Generate contract bindings with `abigen!` and deploy a new contract instance.
1233        ///
1234        /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact.
1235        ///
1236        /// ```ignore
1237        /// # async fn deploy<M: ethers::providers::Middleware>(client: ::std::sync::Arc<M>) {
1238        ///     abigen!(Greeter, "../greeter.json");
1239        ///
1240        ///    let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap();
1241        ///    let msg = greeter_contract.greet().call().await.unwrap();
1242        /// # }
1243        /// ```
1244        pub fn deploy<T: ::ethers::core::abi::Tokenize>(
1245            client: ::std::sync::Arc<M>,
1246            constructor_args: T,
1247        ) -> ::core::result::Result<
1248            ::ethers::contract::builders::ContractDeployer<M, Self>,
1249            ::ethers::contract::ContractError<M>,
1250        > {
1251            let factory = ::ethers::contract::ContractFactory::new(
1252                HOPRNETWORKREGISTRY_ABI.clone(),
1253                HOPRNETWORKREGISTRY_BYTECODE.clone().into(),
1254                client,
1255            );
1256            let deployer = factory.deploy(constructor_args)?;
1257            let deployer = ::ethers::contract::ContractDeployer::new(deployer);
1258            Ok(deployer)
1259        }
1260        ///Calls the contract's `DEFAULT_ADMIN_ROLE` (0xa217fddf) function
1261        pub fn default_admin_role(
1262            &self,
1263        ) -> ::ethers::contract::builders::ContractCall<M, [u8; 32]> {
1264            self.0
1265                .method_hash([162, 23, 253, 223], ())
1266                .expect("method not found (this should never happen)")
1267        }
1268        ///Calls the contract's `MANAGER_ROLE` (0xec87621c) function
1269        pub fn manager_role(
1270            &self,
1271        ) -> ::ethers::contract::builders::ContractCall<M, [u8; 32]> {
1272            self.0
1273                .method_hash([236, 135, 98, 28], ())
1274                .expect("method not found (this should never happen)")
1275        }
1276        ///Calls the contract's `countRegisterdNodesPerAccount` (0x3fa58457) function
1277        pub fn count_registerd_nodes_per_account(
1278            &self,
1279            p0: ::ethers::core::types::Address,
1280        ) -> ::ethers::contract::builders::ContractCall<M, ::ethers::core::types::U256> {
1281            self.0
1282                .method_hash([63, 165, 132, 87], p0)
1283                .expect("method not found (this should never happen)")
1284        }
1285        ///Calls the contract's `disableRegistry` (0xcbebafe0) function
1286        pub fn disable_registry(
1287            &self,
1288        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1289            self.0
1290                .method_hash([203, 235, 175, 224], ())
1291                .expect("method not found (this should never happen)")
1292        }
1293        ///Calls the contract's `enableRegistry` (0xcfb3735f) function
1294        pub fn enable_registry(
1295            &self,
1296        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1297            self.0
1298                .method_hash([207, 179, 115, 95], ())
1299                .expect("method not found (this should never happen)")
1300        }
1301        ///Calls the contract's `enabled` (0x238dafe0) function
1302        pub fn enabled(&self) -> ::ethers::contract::builders::ContractCall<M, bool> {
1303            self.0
1304                .method_hash([35, 141, 175, 224], ())
1305                .expect("method not found (this should never happen)")
1306        }
1307        ///Calls the contract's `getRoleAdmin` (0x248a9ca3) function
1308        pub fn get_role_admin(
1309            &self,
1310            role: [u8; 32],
1311        ) -> ::ethers::contract::builders::ContractCall<M, [u8; 32]> {
1312            self.0
1313                .method_hash([36, 138, 156, 163], role)
1314                .expect("method not found (this should never happen)")
1315        }
1316        ///Calls the contract's `getRoleMember` (0x9010d07c) function
1317        pub fn get_role_member(
1318            &self,
1319            role: [u8; 32],
1320            index: ::ethers::core::types::U256,
1321        ) -> ::ethers::contract::builders::ContractCall<
1322            M,
1323            ::ethers::core::types::Address,
1324        > {
1325            self.0
1326                .method_hash([144, 16, 208, 124], (role, index))
1327                .expect("method not found (this should never happen)")
1328        }
1329        ///Calls the contract's `getRoleMemberCount` (0xca15c873) function
1330        pub fn get_role_member_count(
1331            &self,
1332            role: [u8; 32],
1333        ) -> ::ethers::contract::builders::ContractCall<M, ::ethers::core::types::U256> {
1334            self.0
1335                .method_hash([202, 21, 200, 115], role)
1336                .expect("method not found (this should never happen)")
1337        }
1338        ///Calls the contract's `grantRole` (0x2f2ff15d) function
1339        pub fn grant_role(
1340            &self,
1341            role: [u8; 32],
1342            account: ::ethers::core::types::Address,
1343        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1344            self.0
1345                .method_hash([47, 47, 241, 93], (role, account))
1346                .expect("method not found (this should never happen)")
1347        }
1348        ///Calls the contract's `hasRole` (0x91d14854) function
1349        pub fn has_role(
1350            &self,
1351            role: [u8; 32],
1352            account: ::ethers::core::types::Address,
1353        ) -> ::ethers::contract::builders::ContractCall<M, bool> {
1354            self.0
1355                .method_hash([145, 209, 72, 84], (role, account))
1356                .expect("method not found (this should never happen)")
1357        }
1358        ///Calls the contract's `isAccountEligible` (0x6ffbf988) function
1359        pub fn is_account_eligible(
1360            &self,
1361            staking_account: ::ethers::core::types::Address,
1362        ) -> ::ethers::contract::builders::ContractCall<M, bool> {
1363            self.0
1364                .method_hash([111, 251, 249, 136], staking_account)
1365                .expect("method not found (this should never happen)")
1366        }
1367        ///Calls the contract's `isNodeRegisteredAndEligible` (0x4eb1805c) function
1368        pub fn is_node_registered_and_eligible(
1369            &self,
1370            node_address: ::ethers::core::types::Address,
1371        ) -> ::ethers::contract::builders::ContractCall<M, bool> {
1372            self.0
1373                .method_hash([78, 177, 128, 92], node_address)
1374                .expect("method not found (this should never happen)")
1375        }
1376        ///Calls the contract's `isNodeRegisteredByAccount` (0xa5605da5) function
1377        pub fn is_node_registered_by_account(
1378            &self,
1379            node_address: ::ethers::core::types::Address,
1380            account: ::ethers::core::types::Address,
1381        ) -> ::ethers::contract::builders::ContractCall<M, bool> {
1382            self.0
1383                .method_hash([165, 96, 93, 165], (node_address, account))
1384                .expect("method not found (this should never happen)")
1385        }
1386        ///Calls the contract's `managerDeregister` (0x41b64965) function
1387        pub fn manager_deregister(
1388            &self,
1389            node_addresses: ::std::vec::Vec<::ethers::core::types::Address>,
1390        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1391            self.0
1392                .method_hash([65, 182, 73, 101], node_addresses)
1393                .expect("method not found (this should never happen)")
1394        }
1395        ///Calls the contract's `managerForceSync` (0xcaf5f501) function
1396        pub fn manager_force_sync(
1397            &self,
1398            staking_accounts: ::std::vec::Vec<::ethers::core::types::Address>,
1399            eligibilities: ::std::vec::Vec<bool>,
1400        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1401            self.0
1402                .method_hash([202, 245, 245, 1], (staking_accounts, eligibilities))
1403                .expect("method not found (this should never happen)")
1404        }
1405        ///Calls the contract's `managerRegister` (0x8d753b2d) function
1406        pub fn manager_register(
1407            &self,
1408            staking_accounts: ::std::vec::Vec<::ethers::core::types::Address>,
1409            node_addresses: ::std::vec::Vec<::ethers::core::types::Address>,
1410        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1411            self.0
1412                .method_hash([141, 117, 59, 45], (staking_accounts, node_addresses))
1413                .expect("method not found (this should never happen)")
1414        }
1415        ///Calls the contract's `managerSync` (0x2c33cafb) function
1416        pub fn manager_sync(
1417            &self,
1418            staking_accounts: ::std::vec::Vec<::ethers::core::types::Address>,
1419        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1420            self.0
1421                .method_hash([44, 51, 202, 251], staking_accounts)
1422                .expect("method not found (this should never happen)")
1423        }
1424        ///Calls the contract's `maxAdditionalRegistrations` (0x2a2deee2) function
1425        pub fn max_additional_registrations(
1426            &self,
1427            staking_account: ::ethers::core::types::Address,
1428        ) -> ::ethers::contract::builders::ContractCall<M, ::ethers::core::types::U256> {
1429            self.0
1430                .method_hash([42, 45, 238, 226], staking_account)
1431                .expect("method not found (this should never happen)")
1432        }
1433        ///Calls the contract's `nodeRegisterdToAccount` (0xc7ecab8f) function
1434        pub fn node_registerd_to_account(
1435            &self,
1436            p0: ::ethers::core::types::Address,
1437        ) -> ::ethers::contract::builders::ContractCall<
1438            M,
1439            ::ethers::core::types::Address,
1440        > {
1441            self.0
1442                .method_hash([199, 236, 171, 143], p0)
1443                .expect("method not found (this should never happen)")
1444        }
1445        ///Calls the contract's `renounceRole` (0x36568abe) function
1446        pub fn renounce_role(
1447            &self,
1448            role: [u8; 32],
1449            account: ::ethers::core::types::Address,
1450        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1451            self.0
1452                .method_hash([54, 86, 138, 190], (role, account))
1453                .expect("method not found (this should never happen)")
1454        }
1455        ///Calls the contract's `requirementImplementation` (0xe3d2a071) function
1456        pub fn requirement_implementation(
1457            &self,
1458        ) -> ::ethers::contract::builders::ContractCall<
1459            M,
1460            ::ethers::core::types::Address,
1461        > {
1462            self.0
1463                .method_hash([227, 210, 160, 113], ())
1464                .expect("method not found (this should never happen)")
1465        }
1466        ///Calls the contract's `revokeRole` (0xd547741f) function
1467        pub fn revoke_role(
1468            &self,
1469            role: [u8; 32],
1470            account: ::ethers::core::types::Address,
1471        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1472            self.0
1473                .method_hash([213, 71, 116, 31], (role, account))
1474                .expect("method not found (this should never happen)")
1475        }
1476        ///Calls the contract's `selfDeregister` (0xa05e0f6d) function
1477        pub fn self_deregister(
1478            &self,
1479            node_addresses: ::std::vec::Vec<::ethers::core::types::Address>,
1480        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1481            self.0
1482                .method_hash([160, 94, 15, 109], node_addresses)
1483                .expect("method not found (this should never happen)")
1484        }
1485        ///Calls the contract's `selfRegister` (0x76593a39) function
1486        pub fn self_register(
1487            &self,
1488            node_addresses: ::std::vec::Vec<::ethers::core::types::Address>,
1489        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1490            self.0
1491                .method_hash([118, 89, 58, 57], node_addresses)
1492                .expect("method not found (this should never happen)")
1493        }
1494        ///Calls the contract's `selfSync` (0x9c7f643b) function
1495        pub fn self_sync(&self) -> ::ethers::contract::builders::ContractCall<M, ()> {
1496            self.0
1497                .method_hash([156, 127, 100, 59], ())
1498                .expect("method not found (this should never happen)")
1499        }
1500        ///Calls the contract's `supportsInterface` (0x01ffc9a7) function
1501        pub fn supports_interface(
1502            &self,
1503            interface_id: [u8; 4],
1504        ) -> ::ethers::contract::builders::ContractCall<M, bool> {
1505            self.0
1506                .method_hash([1, 255, 201, 167], interface_id)
1507                .expect("method not found (this should never happen)")
1508        }
1509        ///Calls the contract's `updateRequirementImplementation` (0x27b040a1) function
1510        pub fn update_requirement_implementation(
1511            &self,
1512            requirement_implementation: ::ethers::core::types::Address,
1513        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1514            self.0
1515                .method_hash([39, 176, 64, 161], requirement_implementation)
1516                .expect("method not found (this should never happen)")
1517        }
1518        ///Gets the contract's `Deregistered` event
1519        pub fn deregistered_filter(
1520            &self,
1521        ) -> ::ethers::contract::builders::Event<
1522            ::std::sync::Arc<M>,
1523            M,
1524            DeregisteredFilter,
1525        > {
1526            self.0.event()
1527        }
1528        ///Gets the contract's `DeregisteredByManager` event
1529        pub fn deregistered_by_manager_filter(
1530            &self,
1531        ) -> ::ethers::contract::builders::Event<
1532            ::std::sync::Arc<M>,
1533            M,
1534            DeregisteredByManagerFilter,
1535        > {
1536            self.0.event()
1537        }
1538        ///Gets the contract's `EligibilityUpdated` event
1539        pub fn eligibility_updated_filter(
1540            &self,
1541        ) -> ::ethers::contract::builders::Event<
1542            ::std::sync::Arc<M>,
1543            M,
1544            EligibilityUpdatedFilter,
1545        > {
1546            self.0.event()
1547        }
1548        ///Gets the contract's `NetworkRegistryStatusUpdated` event
1549        pub fn network_registry_status_updated_filter(
1550            &self,
1551        ) -> ::ethers::contract::builders::Event<
1552            ::std::sync::Arc<M>,
1553            M,
1554            NetworkRegistryStatusUpdatedFilter,
1555        > {
1556            self.0.event()
1557        }
1558        ///Gets the contract's `Registered` event
1559        pub fn registered_filter(
1560            &self,
1561        ) -> ::ethers::contract::builders::Event<
1562            ::std::sync::Arc<M>,
1563            M,
1564            RegisteredFilter,
1565        > {
1566            self.0.event()
1567        }
1568        ///Gets the contract's `RegisteredByManager` event
1569        pub fn registered_by_manager_filter(
1570            &self,
1571        ) -> ::ethers::contract::builders::Event<
1572            ::std::sync::Arc<M>,
1573            M,
1574            RegisteredByManagerFilter,
1575        > {
1576            self.0.event()
1577        }
1578        ///Gets the contract's `RequirementUpdated` event
1579        pub fn requirement_updated_filter(
1580            &self,
1581        ) -> ::ethers::contract::builders::Event<
1582            ::std::sync::Arc<M>,
1583            M,
1584            RequirementUpdatedFilter,
1585        > {
1586            self.0.event()
1587        }
1588        ///Gets the contract's `RoleAdminChanged` event
1589        pub fn role_admin_changed_filter(
1590            &self,
1591        ) -> ::ethers::contract::builders::Event<
1592            ::std::sync::Arc<M>,
1593            M,
1594            RoleAdminChangedFilter,
1595        > {
1596            self.0.event()
1597        }
1598        ///Gets the contract's `RoleGranted` event
1599        pub fn role_granted_filter(
1600            &self,
1601        ) -> ::ethers::contract::builders::Event<
1602            ::std::sync::Arc<M>,
1603            M,
1604            RoleGrantedFilter,
1605        > {
1606            self.0.event()
1607        }
1608        ///Gets the contract's `RoleRevoked` event
1609        pub fn role_revoked_filter(
1610            &self,
1611        ) -> ::ethers::contract::builders::Event<
1612            ::std::sync::Arc<M>,
1613            M,
1614            RoleRevokedFilter,
1615        > {
1616            self.0.event()
1617        }
1618        /// Returns an `Event` builder for all the events of this contract.
1619        pub fn events(
1620            &self,
1621        ) -> ::ethers::contract::builders::Event<
1622            ::std::sync::Arc<M>,
1623            M,
1624            HoprNetworkRegistryEvents,
1625        > {
1626            self.0.event_with_filter(::core::default::Default::default())
1627        }
1628    }
1629    impl<M: ::ethers::providers::Middleware> From<::ethers::contract::Contract<M>>
1630    for HoprNetworkRegistry<M> {
1631        fn from(contract: ::ethers::contract::Contract<M>) -> Self {
1632            Self::new(contract.address(), contract.client())
1633        }
1634    }
1635    ///Custom Error type `ArrayLengthNotMatch` with signature `ArrayLengthNotMatch()` and selector `0xed882f71`
1636    #[derive(
1637        Clone,
1638        ::ethers::contract::EthError,
1639        ::ethers::contract::EthDisplay,
1640        serde::Serialize,
1641        serde::Deserialize,
1642        Default,
1643        Debug,
1644        PartialEq,
1645        Eq,
1646        Hash
1647    )]
1648    #[etherror(name = "ArrayLengthNotMatch", abi = "ArrayLengthNotMatch()")]
1649    pub struct ArrayLengthNotMatch;
1650    ///Custom Error type `CannotOperateForNode` with signature `CannotOperateForNode(address)` and selector `0x07414967`
1651    #[derive(
1652        Clone,
1653        ::ethers::contract::EthError,
1654        ::ethers::contract::EthDisplay,
1655        serde::Serialize,
1656        serde::Deserialize,
1657        Default,
1658        Debug,
1659        PartialEq,
1660        Eq,
1661        Hash
1662    )]
1663    #[etherror(name = "CannotOperateForNode", abi = "CannotOperateForNode(address)")]
1664    pub struct CannotOperateForNode {
1665        pub node_address: ::ethers::core::types::Address,
1666    }
1667    ///Custom Error type `GloballyDisabledRegistry` with signature `GloballyDisabledRegistry()` and selector `0xc42638bb`
1668    #[derive(
1669        Clone,
1670        ::ethers::contract::EthError,
1671        ::ethers::contract::EthDisplay,
1672        serde::Serialize,
1673        serde::Deserialize,
1674        Default,
1675        Debug,
1676        PartialEq,
1677        Eq,
1678        Hash
1679    )]
1680    #[etherror(name = "GloballyDisabledRegistry", abi = "GloballyDisabledRegistry()")]
1681    pub struct GloballyDisabledRegistry;
1682    ///Custom Error type `GloballyEnabledRegistry` with signature `GloballyEnabledRegistry()` and selector `0xed1a0c77`
1683    #[derive(
1684        Clone,
1685        ::ethers::contract::EthError,
1686        ::ethers::contract::EthDisplay,
1687        serde::Serialize,
1688        serde::Deserialize,
1689        Default,
1690        Debug,
1691        PartialEq,
1692        Eq,
1693        Hash
1694    )]
1695    #[etherror(name = "GloballyEnabledRegistry", abi = "GloballyEnabledRegistry()")]
1696    pub struct GloballyEnabledRegistry;
1697    ///Custom Error type `NodeAlreadyRegisterd` with signature `NodeAlreadyRegisterd(address)` and selector `0x5b533ba1`
1698    #[derive(
1699        Clone,
1700        ::ethers::contract::EthError,
1701        ::ethers::contract::EthDisplay,
1702        serde::Serialize,
1703        serde::Deserialize,
1704        Default,
1705        Debug,
1706        PartialEq,
1707        Eq,
1708        Hash
1709    )]
1710    #[etherror(name = "NodeAlreadyRegisterd", abi = "NodeAlreadyRegisterd(address)")]
1711    pub struct NodeAlreadyRegisterd {
1712        pub node_address: ::ethers::core::types::Address,
1713    }
1714    ///Custom Error type `NodeNotYetRegisterd` with signature `NodeNotYetRegisterd(address)` and selector `0xb1c3c8a8`
1715    #[derive(
1716        Clone,
1717        ::ethers::contract::EthError,
1718        ::ethers::contract::EthDisplay,
1719        serde::Serialize,
1720        serde::Deserialize,
1721        Default,
1722        Debug,
1723        PartialEq,
1724        Eq,
1725        Hash
1726    )]
1727    #[etherror(name = "NodeNotYetRegisterd", abi = "NodeNotYetRegisterd(address)")]
1728    pub struct NodeNotYetRegisterd {
1729        pub node_address: ::ethers::core::types::Address,
1730    }
1731    ///Custom Error type `NodeRegisterdToOtherAccount` with signature `NodeRegisterdToOtherAccount(address)` and selector `0xbf4fdd73`
1732    #[derive(
1733        Clone,
1734        ::ethers::contract::EthError,
1735        ::ethers::contract::EthDisplay,
1736        serde::Serialize,
1737        serde::Deserialize,
1738        Default,
1739        Debug,
1740        PartialEq,
1741        Eq,
1742        Hash
1743    )]
1744    #[etherror(
1745        name = "NodeRegisterdToOtherAccount",
1746        abi = "NodeRegisterdToOtherAccount(address)"
1747    )]
1748    pub struct NodeRegisterdToOtherAccount {
1749        pub node_address: ::ethers::core::types::Address,
1750    }
1751    ///Custom Error type `NotEnoughAllowanceToRegisterNode` with signature `NotEnoughAllowanceToRegisterNode()` and selector `0x0fb9bd5c`
1752    #[derive(
1753        Clone,
1754        ::ethers::contract::EthError,
1755        ::ethers::contract::EthDisplay,
1756        serde::Serialize,
1757        serde::Deserialize,
1758        Default,
1759        Debug,
1760        PartialEq,
1761        Eq,
1762        Hash
1763    )]
1764    #[etherror(
1765        name = "NotEnoughAllowanceToRegisterNode",
1766        abi = "NotEnoughAllowanceToRegisterNode()"
1767    )]
1768    pub struct NotEnoughAllowanceToRegisterNode;
1769    ///Container type for all of the contract's custom errors
1770    #[derive(
1771        Clone,
1772        ::ethers::contract::EthAbiType,
1773        serde::Serialize,
1774        serde::Deserialize,
1775        Debug,
1776        PartialEq,
1777        Eq,
1778        Hash
1779    )]
1780    pub enum HoprNetworkRegistryErrors {
1781        ArrayLengthNotMatch(ArrayLengthNotMatch),
1782        CannotOperateForNode(CannotOperateForNode),
1783        GloballyDisabledRegistry(GloballyDisabledRegistry),
1784        GloballyEnabledRegistry(GloballyEnabledRegistry),
1785        NodeAlreadyRegisterd(NodeAlreadyRegisterd),
1786        NodeNotYetRegisterd(NodeNotYetRegisterd),
1787        NodeRegisterdToOtherAccount(NodeRegisterdToOtherAccount),
1788        NotEnoughAllowanceToRegisterNode(NotEnoughAllowanceToRegisterNode),
1789        /// The standard solidity revert string, with selector
1790        /// Error(string) -- 0x08c379a0
1791        RevertString(::std::string::String),
1792    }
1793    impl ::ethers::core::abi::AbiDecode for HoprNetworkRegistryErrors {
1794        fn decode(
1795            data: impl AsRef<[u8]>,
1796        ) -> ::core::result::Result<Self, ::ethers::core::abi::AbiError> {
1797            let data = data.as_ref();
1798            if let Ok(decoded) = <::std::string::String as ::ethers::core::abi::AbiDecode>::decode(
1799                data,
1800            ) {
1801                return Ok(Self::RevertString(decoded));
1802            }
1803            if let Ok(decoded) = <ArrayLengthNotMatch as ::ethers::core::abi::AbiDecode>::decode(
1804                data,
1805            ) {
1806                return Ok(Self::ArrayLengthNotMatch(decoded));
1807            }
1808            if let Ok(decoded) = <CannotOperateForNode as ::ethers::core::abi::AbiDecode>::decode(
1809                data,
1810            ) {
1811                return Ok(Self::CannotOperateForNode(decoded));
1812            }
1813            if let Ok(decoded) = <GloballyDisabledRegistry as ::ethers::core::abi::AbiDecode>::decode(
1814                data,
1815            ) {
1816                return Ok(Self::GloballyDisabledRegistry(decoded));
1817            }
1818            if let Ok(decoded) = <GloballyEnabledRegistry as ::ethers::core::abi::AbiDecode>::decode(
1819                data,
1820            ) {
1821                return Ok(Self::GloballyEnabledRegistry(decoded));
1822            }
1823            if let Ok(decoded) = <NodeAlreadyRegisterd as ::ethers::core::abi::AbiDecode>::decode(
1824                data,
1825            ) {
1826                return Ok(Self::NodeAlreadyRegisterd(decoded));
1827            }
1828            if let Ok(decoded) = <NodeNotYetRegisterd as ::ethers::core::abi::AbiDecode>::decode(
1829                data,
1830            ) {
1831                return Ok(Self::NodeNotYetRegisterd(decoded));
1832            }
1833            if let Ok(decoded) = <NodeRegisterdToOtherAccount as ::ethers::core::abi::AbiDecode>::decode(
1834                data,
1835            ) {
1836                return Ok(Self::NodeRegisterdToOtherAccount(decoded));
1837            }
1838            if let Ok(decoded) = <NotEnoughAllowanceToRegisterNode as ::ethers::core::abi::AbiDecode>::decode(
1839                data,
1840            ) {
1841                return Ok(Self::NotEnoughAllowanceToRegisterNode(decoded));
1842            }
1843            Err(::ethers::core::abi::Error::InvalidData.into())
1844        }
1845    }
1846    impl ::ethers::core::abi::AbiEncode for HoprNetworkRegistryErrors {
1847        fn encode(self) -> ::std::vec::Vec<u8> {
1848            match self {
1849                Self::ArrayLengthNotMatch(element) => {
1850                    ::ethers::core::abi::AbiEncode::encode(element)
1851                }
1852                Self::CannotOperateForNode(element) => {
1853                    ::ethers::core::abi::AbiEncode::encode(element)
1854                }
1855                Self::GloballyDisabledRegistry(element) => {
1856                    ::ethers::core::abi::AbiEncode::encode(element)
1857                }
1858                Self::GloballyEnabledRegistry(element) => {
1859                    ::ethers::core::abi::AbiEncode::encode(element)
1860                }
1861                Self::NodeAlreadyRegisterd(element) => {
1862                    ::ethers::core::abi::AbiEncode::encode(element)
1863                }
1864                Self::NodeNotYetRegisterd(element) => {
1865                    ::ethers::core::abi::AbiEncode::encode(element)
1866                }
1867                Self::NodeRegisterdToOtherAccount(element) => {
1868                    ::ethers::core::abi::AbiEncode::encode(element)
1869                }
1870                Self::NotEnoughAllowanceToRegisterNode(element) => {
1871                    ::ethers::core::abi::AbiEncode::encode(element)
1872                }
1873                Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s),
1874            }
1875        }
1876    }
1877    impl ::ethers::contract::ContractRevert for HoprNetworkRegistryErrors {
1878        fn valid_selector(selector: [u8; 4]) -> bool {
1879            match selector {
1880                [0x08, 0xc3, 0x79, 0xa0] => true,
1881                _ if selector
1882                    == <ArrayLengthNotMatch as ::ethers::contract::EthError>::selector() => {
1883                    true
1884                }
1885                _ if selector
1886                    == <CannotOperateForNode as ::ethers::contract::EthError>::selector() => {
1887                    true
1888                }
1889                _ if selector
1890                    == <GloballyDisabledRegistry as ::ethers::contract::EthError>::selector() => {
1891                    true
1892                }
1893                _ if selector
1894                    == <GloballyEnabledRegistry as ::ethers::contract::EthError>::selector() => {
1895                    true
1896                }
1897                _ if selector
1898                    == <NodeAlreadyRegisterd as ::ethers::contract::EthError>::selector() => {
1899                    true
1900                }
1901                _ if selector
1902                    == <NodeNotYetRegisterd as ::ethers::contract::EthError>::selector() => {
1903                    true
1904                }
1905                _ if selector
1906                    == <NodeRegisterdToOtherAccount as ::ethers::contract::EthError>::selector() => {
1907                    true
1908                }
1909                _ if selector
1910                    == <NotEnoughAllowanceToRegisterNode as ::ethers::contract::EthError>::selector() => {
1911                    true
1912                }
1913                _ => false,
1914            }
1915        }
1916    }
1917    impl ::core::fmt::Display for HoprNetworkRegistryErrors {
1918        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1919            match self {
1920                Self::ArrayLengthNotMatch(element) => {
1921                    ::core::fmt::Display::fmt(element, f)
1922                }
1923                Self::CannotOperateForNode(element) => {
1924                    ::core::fmt::Display::fmt(element, f)
1925                }
1926                Self::GloballyDisabledRegistry(element) => {
1927                    ::core::fmt::Display::fmt(element, f)
1928                }
1929                Self::GloballyEnabledRegistry(element) => {
1930                    ::core::fmt::Display::fmt(element, f)
1931                }
1932                Self::NodeAlreadyRegisterd(element) => {
1933                    ::core::fmt::Display::fmt(element, f)
1934                }
1935                Self::NodeNotYetRegisterd(element) => {
1936                    ::core::fmt::Display::fmt(element, f)
1937                }
1938                Self::NodeRegisterdToOtherAccount(element) => {
1939                    ::core::fmt::Display::fmt(element, f)
1940                }
1941                Self::NotEnoughAllowanceToRegisterNode(element) => {
1942                    ::core::fmt::Display::fmt(element, f)
1943                }
1944                Self::RevertString(s) => ::core::fmt::Display::fmt(s, f),
1945            }
1946        }
1947    }
1948    impl ::core::convert::From<::std::string::String> for HoprNetworkRegistryErrors {
1949        fn from(value: String) -> Self {
1950            Self::RevertString(value)
1951        }
1952    }
1953    impl ::core::convert::From<ArrayLengthNotMatch> for HoprNetworkRegistryErrors {
1954        fn from(value: ArrayLengthNotMatch) -> Self {
1955            Self::ArrayLengthNotMatch(value)
1956        }
1957    }
1958    impl ::core::convert::From<CannotOperateForNode> for HoprNetworkRegistryErrors {
1959        fn from(value: CannotOperateForNode) -> Self {
1960            Self::CannotOperateForNode(value)
1961        }
1962    }
1963    impl ::core::convert::From<GloballyDisabledRegistry> for HoprNetworkRegistryErrors {
1964        fn from(value: GloballyDisabledRegistry) -> Self {
1965            Self::GloballyDisabledRegistry(value)
1966        }
1967    }
1968    impl ::core::convert::From<GloballyEnabledRegistry> for HoprNetworkRegistryErrors {
1969        fn from(value: GloballyEnabledRegistry) -> Self {
1970            Self::GloballyEnabledRegistry(value)
1971        }
1972    }
1973    impl ::core::convert::From<NodeAlreadyRegisterd> for HoprNetworkRegistryErrors {
1974        fn from(value: NodeAlreadyRegisterd) -> Self {
1975            Self::NodeAlreadyRegisterd(value)
1976        }
1977    }
1978    impl ::core::convert::From<NodeNotYetRegisterd> for HoprNetworkRegistryErrors {
1979        fn from(value: NodeNotYetRegisterd) -> Self {
1980            Self::NodeNotYetRegisterd(value)
1981        }
1982    }
1983    impl ::core::convert::From<NodeRegisterdToOtherAccount>
1984    for HoprNetworkRegistryErrors {
1985        fn from(value: NodeRegisterdToOtherAccount) -> Self {
1986            Self::NodeRegisterdToOtherAccount(value)
1987        }
1988    }
1989    impl ::core::convert::From<NotEnoughAllowanceToRegisterNode>
1990    for HoprNetworkRegistryErrors {
1991        fn from(value: NotEnoughAllowanceToRegisterNode) -> Self {
1992            Self::NotEnoughAllowanceToRegisterNode(value)
1993        }
1994    }
1995    #[derive(
1996        Clone,
1997        ::ethers::contract::EthEvent,
1998        ::ethers::contract::EthDisplay,
1999        serde::Serialize,
2000        serde::Deserialize,
2001        Default,
2002        Debug,
2003        PartialEq,
2004        Eq,
2005        Hash
2006    )]
2007    #[ethevent(name = "Deregistered", abi = "Deregistered(address,address)")]
2008    pub struct DeregisteredFilter {
2009        #[ethevent(indexed)]
2010        pub staking_account: ::ethers::core::types::Address,
2011        #[ethevent(indexed)]
2012        pub node_address: ::ethers::core::types::Address,
2013    }
2014    #[derive(
2015        Clone,
2016        ::ethers::contract::EthEvent,
2017        ::ethers::contract::EthDisplay,
2018        serde::Serialize,
2019        serde::Deserialize,
2020        Default,
2021        Debug,
2022        PartialEq,
2023        Eq,
2024        Hash
2025    )]
2026    #[ethevent(
2027        name = "DeregisteredByManager",
2028        abi = "DeregisteredByManager(address,address)"
2029    )]
2030    pub struct DeregisteredByManagerFilter {
2031        #[ethevent(indexed)]
2032        pub staking_account: ::ethers::core::types::Address,
2033        #[ethevent(indexed)]
2034        pub node_address: ::ethers::core::types::Address,
2035    }
2036    #[derive(
2037        Clone,
2038        ::ethers::contract::EthEvent,
2039        ::ethers::contract::EthDisplay,
2040        serde::Serialize,
2041        serde::Deserialize,
2042        Default,
2043        Debug,
2044        PartialEq,
2045        Eq,
2046        Hash
2047    )]
2048    #[ethevent(name = "EligibilityUpdated", abi = "EligibilityUpdated(address,bool)")]
2049    pub struct EligibilityUpdatedFilter {
2050        #[ethevent(indexed)]
2051        pub staking_account: ::ethers::core::types::Address,
2052        #[ethevent(indexed)]
2053        pub eligibility: bool,
2054    }
2055    #[derive(
2056        Clone,
2057        ::ethers::contract::EthEvent,
2058        ::ethers::contract::EthDisplay,
2059        serde::Serialize,
2060        serde::Deserialize,
2061        Default,
2062        Debug,
2063        PartialEq,
2064        Eq,
2065        Hash
2066    )]
2067    #[ethevent(
2068        name = "NetworkRegistryStatusUpdated",
2069        abi = "NetworkRegistryStatusUpdated(bool)"
2070    )]
2071    pub struct NetworkRegistryStatusUpdatedFilter {
2072        #[ethevent(indexed)]
2073        pub is_enabled: bool,
2074    }
2075    #[derive(
2076        Clone,
2077        ::ethers::contract::EthEvent,
2078        ::ethers::contract::EthDisplay,
2079        serde::Serialize,
2080        serde::Deserialize,
2081        Default,
2082        Debug,
2083        PartialEq,
2084        Eq,
2085        Hash
2086    )]
2087    #[ethevent(name = "Registered", abi = "Registered(address,address)")]
2088    pub struct RegisteredFilter {
2089        #[ethevent(indexed)]
2090        pub staking_account: ::ethers::core::types::Address,
2091        #[ethevent(indexed)]
2092        pub node_address: ::ethers::core::types::Address,
2093    }
2094    #[derive(
2095        Clone,
2096        ::ethers::contract::EthEvent,
2097        ::ethers::contract::EthDisplay,
2098        serde::Serialize,
2099        serde::Deserialize,
2100        Default,
2101        Debug,
2102        PartialEq,
2103        Eq,
2104        Hash
2105    )]
2106    #[ethevent(
2107        name = "RegisteredByManager",
2108        abi = "RegisteredByManager(address,address)"
2109    )]
2110    pub struct RegisteredByManagerFilter {
2111        #[ethevent(indexed)]
2112        pub staking_account: ::ethers::core::types::Address,
2113        #[ethevent(indexed)]
2114        pub node_address: ::ethers::core::types::Address,
2115    }
2116    #[derive(
2117        Clone,
2118        ::ethers::contract::EthEvent,
2119        ::ethers::contract::EthDisplay,
2120        serde::Serialize,
2121        serde::Deserialize,
2122        Default,
2123        Debug,
2124        PartialEq,
2125        Eq,
2126        Hash
2127    )]
2128    #[ethevent(name = "RequirementUpdated", abi = "RequirementUpdated(address)")]
2129    pub struct RequirementUpdatedFilter {
2130        #[ethevent(indexed)]
2131        pub requirement_implementation: ::ethers::core::types::Address,
2132    }
2133    #[derive(
2134        Clone,
2135        ::ethers::contract::EthEvent,
2136        ::ethers::contract::EthDisplay,
2137        serde::Serialize,
2138        serde::Deserialize,
2139        Default,
2140        Debug,
2141        PartialEq,
2142        Eq,
2143        Hash
2144    )]
2145    #[ethevent(
2146        name = "RoleAdminChanged",
2147        abi = "RoleAdminChanged(bytes32,bytes32,bytes32)"
2148    )]
2149    pub struct RoleAdminChangedFilter {
2150        #[ethevent(indexed)]
2151        pub role: [u8; 32],
2152        #[ethevent(indexed)]
2153        pub previous_admin_role: [u8; 32],
2154        #[ethevent(indexed)]
2155        pub new_admin_role: [u8; 32],
2156    }
2157    #[derive(
2158        Clone,
2159        ::ethers::contract::EthEvent,
2160        ::ethers::contract::EthDisplay,
2161        serde::Serialize,
2162        serde::Deserialize,
2163        Default,
2164        Debug,
2165        PartialEq,
2166        Eq,
2167        Hash
2168    )]
2169    #[ethevent(name = "RoleGranted", abi = "RoleGranted(bytes32,address,address)")]
2170    pub struct RoleGrantedFilter {
2171        #[ethevent(indexed)]
2172        pub role: [u8; 32],
2173        #[ethevent(indexed)]
2174        pub account: ::ethers::core::types::Address,
2175        #[ethevent(indexed)]
2176        pub sender: ::ethers::core::types::Address,
2177    }
2178    #[derive(
2179        Clone,
2180        ::ethers::contract::EthEvent,
2181        ::ethers::contract::EthDisplay,
2182        serde::Serialize,
2183        serde::Deserialize,
2184        Default,
2185        Debug,
2186        PartialEq,
2187        Eq,
2188        Hash
2189    )]
2190    #[ethevent(name = "RoleRevoked", abi = "RoleRevoked(bytes32,address,address)")]
2191    pub struct RoleRevokedFilter {
2192        #[ethevent(indexed)]
2193        pub role: [u8; 32],
2194        #[ethevent(indexed)]
2195        pub account: ::ethers::core::types::Address,
2196        #[ethevent(indexed)]
2197        pub sender: ::ethers::core::types::Address,
2198    }
2199    ///Container type for all of the contract's events
2200    #[derive(
2201        Clone,
2202        ::ethers::contract::EthAbiType,
2203        serde::Serialize,
2204        serde::Deserialize,
2205        Debug,
2206        PartialEq,
2207        Eq,
2208        Hash
2209    )]
2210    pub enum HoprNetworkRegistryEvents {
2211        DeregisteredFilter(DeregisteredFilter),
2212        DeregisteredByManagerFilter(DeregisteredByManagerFilter),
2213        EligibilityUpdatedFilter(EligibilityUpdatedFilter),
2214        NetworkRegistryStatusUpdatedFilter(NetworkRegistryStatusUpdatedFilter),
2215        RegisteredFilter(RegisteredFilter),
2216        RegisteredByManagerFilter(RegisteredByManagerFilter),
2217        RequirementUpdatedFilter(RequirementUpdatedFilter),
2218        RoleAdminChangedFilter(RoleAdminChangedFilter),
2219        RoleGrantedFilter(RoleGrantedFilter),
2220        RoleRevokedFilter(RoleRevokedFilter),
2221    }
2222    impl ::ethers::contract::EthLogDecode for HoprNetworkRegistryEvents {
2223        fn decode_log(
2224            log: &::ethers::core::abi::RawLog,
2225        ) -> ::core::result::Result<Self, ::ethers::core::abi::Error> {
2226            if let Ok(decoded) = DeregisteredFilter::decode_log(log) {
2227                return Ok(HoprNetworkRegistryEvents::DeregisteredFilter(decoded));
2228            }
2229            if let Ok(decoded) = DeregisteredByManagerFilter::decode_log(log) {
2230                return Ok(
2231                    HoprNetworkRegistryEvents::DeregisteredByManagerFilter(decoded),
2232                );
2233            }
2234            if let Ok(decoded) = EligibilityUpdatedFilter::decode_log(log) {
2235                return Ok(HoprNetworkRegistryEvents::EligibilityUpdatedFilter(decoded));
2236            }
2237            if let Ok(decoded) = NetworkRegistryStatusUpdatedFilter::decode_log(log) {
2238                return Ok(
2239                    HoprNetworkRegistryEvents::NetworkRegistryStatusUpdatedFilter(
2240                        decoded,
2241                    ),
2242                );
2243            }
2244            if let Ok(decoded) = RegisteredFilter::decode_log(log) {
2245                return Ok(HoprNetworkRegistryEvents::RegisteredFilter(decoded));
2246            }
2247            if let Ok(decoded) = RegisteredByManagerFilter::decode_log(log) {
2248                return Ok(HoprNetworkRegistryEvents::RegisteredByManagerFilter(decoded));
2249            }
2250            if let Ok(decoded) = RequirementUpdatedFilter::decode_log(log) {
2251                return Ok(HoprNetworkRegistryEvents::RequirementUpdatedFilter(decoded));
2252            }
2253            if let Ok(decoded) = RoleAdminChangedFilter::decode_log(log) {
2254                return Ok(HoprNetworkRegistryEvents::RoleAdminChangedFilter(decoded));
2255            }
2256            if let Ok(decoded) = RoleGrantedFilter::decode_log(log) {
2257                return Ok(HoprNetworkRegistryEvents::RoleGrantedFilter(decoded));
2258            }
2259            if let Ok(decoded) = RoleRevokedFilter::decode_log(log) {
2260                return Ok(HoprNetworkRegistryEvents::RoleRevokedFilter(decoded));
2261            }
2262            Err(::ethers::core::abi::Error::InvalidData)
2263        }
2264    }
2265    impl ::core::fmt::Display for HoprNetworkRegistryEvents {
2266        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2267            match self {
2268                Self::DeregisteredFilter(element) => {
2269                    ::core::fmt::Display::fmt(element, f)
2270                }
2271                Self::DeregisteredByManagerFilter(element) => {
2272                    ::core::fmt::Display::fmt(element, f)
2273                }
2274                Self::EligibilityUpdatedFilter(element) => {
2275                    ::core::fmt::Display::fmt(element, f)
2276                }
2277                Self::NetworkRegistryStatusUpdatedFilter(element) => {
2278                    ::core::fmt::Display::fmt(element, f)
2279                }
2280                Self::RegisteredFilter(element) => ::core::fmt::Display::fmt(element, f),
2281                Self::RegisteredByManagerFilter(element) => {
2282                    ::core::fmt::Display::fmt(element, f)
2283                }
2284                Self::RequirementUpdatedFilter(element) => {
2285                    ::core::fmt::Display::fmt(element, f)
2286                }
2287                Self::RoleAdminChangedFilter(element) => {
2288                    ::core::fmt::Display::fmt(element, f)
2289                }
2290                Self::RoleGrantedFilter(element) => ::core::fmt::Display::fmt(element, f),
2291                Self::RoleRevokedFilter(element) => ::core::fmt::Display::fmt(element, f),
2292            }
2293        }
2294    }
2295    impl ::core::convert::From<DeregisteredFilter> for HoprNetworkRegistryEvents {
2296        fn from(value: DeregisteredFilter) -> Self {
2297            Self::DeregisteredFilter(value)
2298        }
2299    }
2300    impl ::core::convert::From<DeregisteredByManagerFilter>
2301    for HoprNetworkRegistryEvents {
2302        fn from(value: DeregisteredByManagerFilter) -> Self {
2303            Self::DeregisteredByManagerFilter(value)
2304        }
2305    }
2306    impl ::core::convert::From<EligibilityUpdatedFilter> for HoprNetworkRegistryEvents {
2307        fn from(value: EligibilityUpdatedFilter) -> Self {
2308            Self::EligibilityUpdatedFilter(value)
2309        }
2310    }
2311    impl ::core::convert::From<NetworkRegistryStatusUpdatedFilter>
2312    for HoprNetworkRegistryEvents {
2313        fn from(value: NetworkRegistryStatusUpdatedFilter) -> Self {
2314            Self::NetworkRegistryStatusUpdatedFilter(value)
2315        }
2316    }
2317    impl ::core::convert::From<RegisteredFilter> for HoprNetworkRegistryEvents {
2318        fn from(value: RegisteredFilter) -> Self {
2319            Self::RegisteredFilter(value)
2320        }
2321    }
2322    impl ::core::convert::From<RegisteredByManagerFilter> for HoprNetworkRegistryEvents {
2323        fn from(value: RegisteredByManagerFilter) -> Self {
2324            Self::RegisteredByManagerFilter(value)
2325        }
2326    }
2327    impl ::core::convert::From<RequirementUpdatedFilter> for HoprNetworkRegistryEvents {
2328        fn from(value: RequirementUpdatedFilter) -> Self {
2329            Self::RequirementUpdatedFilter(value)
2330        }
2331    }
2332    impl ::core::convert::From<RoleAdminChangedFilter> for HoprNetworkRegistryEvents {
2333        fn from(value: RoleAdminChangedFilter) -> Self {
2334            Self::RoleAdminChangedFilter(value)
2335        }
2336    }
2337    impl ::core::convert::From<RoleGrantedFilter> for HoprNetworkRegistryEvents {
2338        fn from(value: RoleGrantedFilter) -> Self {
2339            Self::RoleGrantedFilter(value)
2340        }
2341    }
2342    impl ::core::convert::From<RoleRevokedFilter> for HoprNetworkRegistryEvents {
2343        fn from(value: RoleRevokedFilter) -> Self {
2344            Self::RoleRevokedFilter(value)
2345        }
2346    }
2347    ///Container type for all input parameters for the `DEFAULT_ADMIN_ROLE` function with signature `DEFAULT_ADMIN_ROLE()` and selector `0xa217fddf`
2348    #[derive(
2349        Clone,
2350        ::ethers::contract::EthCall,
2351        ::ethers::contract::EthDisplay,
2352        serde::Serialize,
2353        serde::Deserialize,
2354        Default,
2355        Debug,
2356        PartialEq,
2357        Eq,
2358        Hash
2359    )]
2360    #[ethcall(name = "DEFAULT_ADMIN_ROLE", abi = "DEFAULT_ADMIN_ROLE()")]
2361    pub struct DefaultAdminRoleCall;
2362    ///Container type for all input parameters for the `MANAGER_ROLE` function with signature `MANAGER_ROLE()` and selector `0xec87621c`
2363    #[derive(
2364        Clone,
2365        ::ethers::contract::EthCall,
2366        ::ethers::contract::EthDisplay,
2367        serde::Serialize,
2368        serde::Deserialize,
2369        Default,
2370        Debug,
2371        PartialEq,
2372        Eq,
2373        Hash
2374    )]
2375    #[ethcall(name = "MANAGER_ROLE", abi = "MANAGER_ROLE()")]
2376    pub struct ManagerRoleCall;
2377    ///Container type for all input parameters for the `countRegisterdNodesPerAccount` function with signature `countRegisterdNodesPerAccount(address)` and selector `0x3fa58457`
2378    #[derive(
2379        Clone,
2380        ::ethers::contract::EthCall,
2381        ::ethers::contract::EthDisplay,
2382        serde::Serialize,
2383        serde::Deserialize,
2384        Default,
2385        Debug,
2386        PartialEq,
2387        Eq,
2388        Hash
2389    )]
2390    #[ethcall(
2391        name = "countRegisterdNodesPerAccount",
2392        abi = "countRegisterdNodesPerAccount(address)"
2393    )]
2394    pub struct CountRegisterdNodesPerAccountCall(pub ::ethers::core::types::Address);
2395    ///Container type for all input parameters for the `disableRegistry` function with signature `disableRegistry()` and selector `0xcbebafe0`
2396    #[derive(
2397        Clone,
2398        ::ethers::contract::EthCall,
2399        ::ethers::contract::EthDisplay,
2400        serde::Serialize,
2401        serde::Deserialize,
2402        Default,
2403        Debug,
2404        PartialEq,
2405        Eq,
2406        Hash
2407    )]
2408    #[ethcall(name = "disableRegistry", abi = "disableRegistry()")]
2409    pub struct DisableRegistryCall;
2410    ///Container type for all input parameters for the `enableRegistry` function with signature `enableRegistry()` and selector `0xcfb3735f`
2411    #[derive(
2412        Clone,
2413        ::ethers::contract::EthCall,
2414        ::ethers::contract::EthDisplay,
2415        serde::Serialize,
2416        serde::Deserialize,
2417        Default,
2418        Debug,
2419        PartialEq,
2420        Eq,
2421        Hash
2422    )]
2423    #[ethcall(name = "enableRegistry", abi = "enableRegistry()")]
2424    pub struct EnableRegistryCall;
2425    ///Container type for all input parameters for the `enabled` function with signature `enabled()` and selector `0x238dafe0`
2426    #[derive(
2427        Clone,
2428        ::ethers::contract::EthCall,
2429        ::ethers::contract::EthDisplay,
2430        serde::Serialize,
2431        serde::Deserialize,
2432        Default,
2433        Debug,
2434        PartialEq,
2435        Eq,
2436        Hash
2437    )]
2438    #[ethcall(name = "enabled", abi = "enabled()")]
2439    pub struct EnabledCall;
2440    ///Container type for all input parameters for the `getRoleAdmin` function with signature `getRoleAdmin(bytes32)` and selector `0x248a9ca3`
2441    #[derive(
2442        Clone,
2443        ::ethers::contract::EthCall,
2444        ::ethers::contract::EthDisplay,
2445        serde::Serialize,
2446        serde::Deserialize,
2447        Default,
2448        Debug,
2449        PartialEq,
2450        Eq,
2451        Hash
2452    )]
2453    #[ethcall(name = "getRoleAdmin", abi = "getRoleAdmin(bytes32)")]
2454    pub struct GetRoleAdminCall {
2455        pub role: [u8; 32],
2456    }
2457    ///Container type for all input parameters for the `getRoleMember` function with signature `getRoleMember(bytes32,uint256)` and selector `0x9010d07c`
2458    #[derive(
2459        Clone,
2460        ::ethers::contract::EthCall,
2461        ::ethers::contract::EthDisplay,
2462        serde::Serialize,
2463        serde::Deserialize,
2464        Default,
2465        Debug,
2466        PartialEq,
2467        Eq,
2468        Hash
2469    )]
2470    #[ethcall(name = "getRoleMember", abi = "getRoleMember(bytes32,uint256)")]
2471    pub struct GetRoleMemberCall {
2472        pub role: [u8; 32],
2473        pub index: ::ethers::core::types::U256,
2474    }
2475    ///Container type for all input parameters for the `getRoleMemberCount` function with signature `getRoleMemberCount(bytes32)` and selector `0xca15c873`
2476    #[derive(
2477        Clone,
2478        ::ethers::contract::EthCall,
2479        ::ethers::contract::EthDisplay,
2480        serde::Serialize,
2481        serde::Deserialize,
2482        Default,
2483        Debug,
2484        PartialEq,
2485        Eq,
2486        Hash
2487    )]
2488    #[ethcall(name = "getRoleMemberCount", abi = "getRoleMemberCount(bytes32)")]
2489    pub struct GetRoleMemberCountCall {
2490        pub role: [u8; 32],
2491    }
2492    ///Container type for all input parameters for the `grantRole` function with signature `grantRole(bytes32,address)` and selector `0x2f2ff15d`
2493    #[derive(
2494        Clone,
2495        ::ethers::contract::EthCall,
2496        ::ethers::contract::EthDisplay,
2497        serde::Serialize,
2498        serde::Deserialize,
2499        Default,
2500        Debug,
2501        PartialEq,
2502        Eq,
2503        Hash
2504    )]
2505    #[ethcall(name = "grantRole", abi = "grantRole(bytes32,address)")]
2506    pub struct GrantRoleCall {
2507        pub role: [u8; 32],
2508        pub account: ::ethers::core::types::Address,
2509    }
2510    ///Container type for all input parameters for the `hasRole` function with signature `hasRole(bytes32,address)` and selector `0x91d14854`
2511    #[derive(
2512        Clone,
2513        ::ethers::contract::EthCall,
2514        ::ethers::contract::EthDisplay,
2515        serde::Serialize,
2516        serde::Deserialize,
2517        Default,
2518        Debug,
2519        PartialEq,
2520        Eq,
2521        Hash
2522    )]
2523    #[ethcall(name = "hasRole", abi = "hasRole(bytes32,address)")]
2524    pub struct HasRoleCall {
2525        pub role: [u8; 32],
2526        pub account: ::ethers::core::types::Address,
2527    }
2528    ///Container type for all input parameters for the `isAccountEligible` function with signature `isAccountEligible(address)` and selector `0x6ffbf988`
2529    #[derive(
2530        Clone,
2531        ::ethers::contract::EthCall,
2532        ::ethers::contract::EthDisplay,
2533        serde::Serialize,
2534        serde::Deserialize,
2535        Default,
2536        Debug,
2537        PartialEq,
2538        Eq,
2539        Hash
2540    )]
2541    #[ethcall(name = "isAccountEligible", abi = "isAccountEligible(address)")]
2542    pub struct IsAccountEligibleCall {
2543        pub staking_account: ::ethers::core::types::Address,
2544    }
2545    ///Container type for all input parameters for the `isNodeRegisteredAndEligible` function with signature `isNodeRegisteredAndEligible(address)` and selector `0x4eb1805c`
2546    #[derive(
2547        Clone,
2548        ::ethers::contract::EthCall,
2549        ::ethers::contract::EthDisplay,
2550        serde::Serialize,
2551        serde::Deserialize,
2552        Default,
2553        Debug,
2554        PartialEq,
2555        Eq,
2556        Hash
2557    )]
2558    #[ethcall(
2559        name = "isNodeRegisteredAndEligible",
2560        abi = "isNodeRegisteredAndEligible(address)"
2561    )]
2562    pub struct IsNodeRegisteredAndEligibleCall {
2563        pub node_address: ::ethers::core::types::Address,
2564    }
2565    ///Container type for all input parameters for the `isNodeRegisteredByAccount` function with signature `isNodeRegisteredByAccount(address,address)` and selector `0xa5605da5`
2566    #[derive(
2567        Clone,
2568        ::ethers::contract::EthCall,
2569        ::ethers::contract::EthDisplay,
2570        serde::Serialize,
2571        serde::Deserialize,
2572        Default,
2573        Debug,
2574        PartialEq,
2575        Eq,
2576        Hash
2577    )]
2578    #[ethcall(
2579        name = "isNodeRegisteredByAccount",
2580        abi = "isNodeRegisteredByAccount(address,address)"
2581    )]
2582    pub struct IsNodeRegisteredByAccountCall {
2583        pub node_address: ::ethers::core::types::Address,
2584        pub account: ::ethers::core::types::Address,
2585    }
2586    ///Container type for all input parameters for the `managerDeregister` function with signature `managerDeregister(address[])` and selector `0x41b64965`
2587    #[derive(
2588        Clone,
2589        ::ethers::contract::EthCall,
2590        ::ethers::contract::EthDisplay,
2591        serde::Serialize,
2592        serde::Deserialize,
2593        Default,
2594        Debug,
2595        PartialEq,
2596        Eq,
2597        Hash
2598    )]
2599    #[ethcall(name = "managerDeregister", abi = "managerDeregister(address[])")]
2600    pub struct ManagerDeregisterCall {
2601        pub node_addresses: ::std::vec::Vec<::ethers::core::types::Address>,
2602    }
2603    ///Container type for all input parameters for the `managerForceSync` function with signature `managerForceSync(address[],bool[])` and selector `0xcaf5f501`
2604    #[derive(
2605        Clone,
2606        ::ethers::contract::EthCall,
2607        ::ethers::contract::EthDisplay,
2608        serde::Serialize,
2609        serde::Deserialize,
2610        Default,
2611        Debug,
2612        PartialEq,
2613        Eq,
2614        Hash
2615    )]
2616    #[ethcall(name = "managerForceSync", abi = "managerForceSync(address[],bool[])")]
2617    pub struct ManagerForceSyncCall {
2618        pub staking_accounts: ::std::vec::Vec<::ethers::core::types::Address>,
2619        pub eligibilities: ::std::vec::Vec<bool>,
2620    }
2621    ///Container type for all input parameters for the `managerRegister` function with signature `managerRegister(address[],address[])` and selector `0x8d753b2d`
2622    #[derive(
2623        Clone,
2624        ::ethers::contract::EthCall,
2625        ::ethers::contract::EthDisplay,
2626        serde::Serialize,
2627        serde::Deserialize,
2628        Default,
2629        Debug,
2630        PartialEq,
2631        Eq,
2632        Hash
2633    )]
2634    #[ethcall(name = "managerRegister", abi = "managerRegister(address[],address[])")]
2635    pub struct ManagerRegisterCall {
2636        pub staking_accounts: ::std::vec::Vec<::ethers::core::types::Address>,
2637        pub node_addresses: ::std::vec::Vec<::ethers::core::types::Address>,
2638    }
2639    ///Container type for all input parameters for the `managerSync` function with signature `managerSync(address[])` and selector `0x2c33cafb`
2640    #[derive(
2641        Clone,
2642        ::ethers::contract::EthCall,
2643        ::ethers::contract::EthDisplay,
2644        serde::Serialize,
2645        serde::Deserialize,
2646        Default,
2647        Debug,
2648        PartialEq,
2649        Eq,
2650        Hash
2651    )]
2652    #[ethcall(name = "managerSync", abi = "managerSync(address[])")]
2653    pub struct ManagerSyncCall {
2654        pub staking_accounts: ::std::vec::Vec<::ethers::core::types::Address>,
2655    }
2656    ///Container type for all input parameters for the `maxAdditionalRegistrations` function with signature `maxAdditionalRegistrations(address)` and selector `0x2a2deee2`
2657    #[derive(
2658        Clone,
2659        ::ethers::contract::EthCall,
2660        ::ethers::contract::EthDisplay,
2661        serde::Serialize,
2662        serde::Deserialize,
2663        Default,
2664        Debug,
2665        PartialEq,
2666        Eq,
2667        Hash
2668    )]
2669    #[ethcall(
2670        name = "maxAdditionalRegistrations",
2671        abi = "maxAdditionalRegistrations(address)"
2672    )]
2673    pub struct MaxAdditionalRegistrationsCall {
2674        pub staking_account: ::ethers::core::types::Address,
2675    }
2676    ///Container type for all input parameters for the `nodeRegisterdToAccount` function with signature `nodeRegisterdToAccount(address)` and selector `0xc7ecab8f`
2677    #[derive(
2678        Clone,
2679        ::ethers::contract::EthCall,
2680        ::ethers::contract::EthDisplay,
2681        serde::Serialize,
2682        serde::Deserialize,
2683        Default,
2684        Debug,
2685        PartialEq,
2686        Eq,
2687        Hash
2688    )]
2689    #[ethcall(name = "nodeRegisterdToAccount", abi = "nodeRegisterdToAccount(address)")]
2690    pub struct NodeRegisterdToAccountCall(pub ::ethers::core::types::Address);
2691    ///Container type for all input parameters for the `renounceRole` function with signature `renounceRole(bytes32,address)` and selector `0x36568abe`
2692    #[derive(
2693        Clone,
2694        ::ethers::contract::EthCall,
2695        ::ethers::contract::EthDisplay,
2696        serde::Serialize,
2697        serde::Deserialize,
2698        Default,
2699        Debug,
2700        PartialEq,
2701        Eq,
2702        Hash
2703    )]
2704    #[ethcall(name = "renounceRole", abi = "renounceRole(bytes32,address)")]
2705    pub struct RenounceRoleCall {
2706        pub role: [u8; 32],
2707        pub account: ::ethers::core::types::Address,
2708    }
2709    ///Container type for all input parameters for the `requirementImplementation` function with signature `requirementImplementation()` and selector `0xe3d2a071`
2710    #[derive(
2711        Clone,
2712        ::ethers::contract::EthCall,
2713        ::ethers::contract::EthDisplay,
2714        serde::Serialize,
2715        serde::Deserialize,
2716        Default,
2717        Debug,
2718        PartialEq,
2719        Eq,
2720        Hash
2721    )]
2722    #[ethcall(name = "requirementImplementation", abi = "requirementImplementation()")]
2723    pub struct RequirementImplementationCall;
2724    ///Container type for all input parameters for the `revokeRole` function with signature `revokeRole(bytes32,address)` and selector `0xd547741f`
2725    #[derive(
2726        Clone,
2727        ::ethers::contract::EthCall,
2728        ::ethers::contract::EthDisplay,
2729        serde::Serialize,
2730        serde::Deserialize,
2731        Default,
2732        Debug,
2733        PartialEq,
2734        Eq,
2735        Hash
2736    )]
2737    #[ethcall(name = "revokeRole", abi = "revokeRole(bytes32,address)")]
2738    pub struct RevokeRoleCall {
2739        pub role: [u8; 32],
2740        pub account: ::ethers::core::types::Address,
2741    }
2742    ///Container type for all input parameters for the `selfDeregister` function with signature `selfDeregister(address[])` and selector `0xa05e0f6d`
2743    #[derive(
2744        Clone,
2745        ::ethers::contract::EthCall,
2746        ::ethers::contract::EthDisplay,
2747        serde::Serialize,
2748        serde::Deserialize,
2749        Default,
2750        Debug,
2751        PartialEq,
2752        Eq,
2753        Hash
2754    )]
2755    #[ethcall(name = "selfDeregister", abi = "selfDeregister(address[])")]
2756    pub struct SelfDeregisterCall {
2757        pub node_addresses: ::std::vec::Vec<::ethers::core::types::Address>,
2758    }
2759    ///Container type for all input parameters for the `selfRegister` function with signature `selfRegister(address[])` and selector `0x76593a39`
2760    #[derive(
2761        Clone,
2762        ::ethers::contract::EthCall,
2763        ::ethers::contract::EthDisplay,
2764        serde::Serialize,
2765        serde::Deserialize,
2766        Default,
2767        Debug,
2768        PartialEq,
2769        Eq,
2770        Hash
2771    )]
2772    #[ethcall(name = "selfRegister", abi = "selfRegister(address[])")]
2773    pub struct SelfRegisterCall {
2774        pub node_addresses: ::std::vec::Vec<::ethers::core::types::Address>,
2775    }
2776    ///Container type for all input parameters for the `selfSync` function with signature `selfSync()` and selector `0x9c7f643b`
2777    #[derive(
2778        Clone,
2779        ::ethers::contract::EthCall,
2780        ::ethers::contract::EthDisplay,
2781        serde::Serialize,
2782        serde::Deserialize,
2783        Default,
2784        Debug,
2785        PartialEq,
2786        Eq,
2787        Hash
2788    )]
2789    #[ethcall(name = "selfSync", abi = "selfSync()")]
2790    pub struct SelfSyncCall;
2791    ///Container type for all input parameters for the `supportsInterface` function with signature `supportsInterface(bytes4)` and selector `0x01ffc9a7`
2792    #[derive(
2793        Clone,
2794        ::ethers::contract::EthCall,
2795        ::ethers::contract::EthDisplay,
2796        serde::Serialize,
2797        serde::Deserialize,
2798        Default,
2799        Debug,
2800        PartialEq,
2801        Eq,
2802        Hash
2803    )]
2804    #[ethcall(name = "supportsInterface", abi = "supportsInterface(bytes4)")]
2805    pub struct SupportsInterfaceCall {
2806        pub interface_id: [u8; 4],
2807    }
2808    ///Container type for all input parameters for the `updateRequirementImplementation` function with signature `updateRequirementImplementation(address)` and selector `0x27b040a1`
2809    #[derive(
2810        Clone,
2811        ::ethers::contract::EthCall,
2812        ::ethers::contract::EthDisplay,
2813        serde::Serialize,
2814        serde::Deserialize,
2815        Default,
2816        Debug,
2817        PartialEq,
2818        Eq,
2819        Hash
2820    )]
2821    #[ethcall(
2822        name = "updateRequirementImplementation",
2823        abi = "updateRequirementImplementation(address)"
2824    )]
2825    pub struct UpdateRequirementImplementationCall {
2826        pub requirement_implementation: ::ethers::core::types::Address,
2827    }
2828    ///Container type for all of the contract's call
2829    #[derive(
2830        Clone,
2831        ::ethers::contract::EthAbiType,
2832        serde::Serialize,
2833        serde::Deserialize,
2834        Debug,
2835        PartialEq,
2836        Eq,
2837        Hash
2838    )]
2839    pub enum HoprNetworkRegistryCalls {
2840        DefaultAdminRole(DefaultAdminRoleCall),
2841        ManagerRole(ManagerRoleCall),
2842        CountRegisterdNodesPerAccount(CountRegisterdNodesPerAccountCall),
2843        DisableRegistry(DisableRegistryCall),
2844        EnableRegistry(EnableRegistryCall),
2845        Enabled(EnabledCall),
2846        GetRoleAdmin(GetRoleAdminCall),
2847        GetRoleMember(GetRoleMemberCall),
2848        GetRoleMemberCount(GetRoleMemberCountCall),
2849        GrantRole(GrantRoleCall),
2850        HasRole(HasRoleCall),
2851        IsAccountEligible(IsAccountEligibleCall),
2852        IsNodeRegisteredAndEligible(IsNodeRegisteredAndEligibleCall),
2853        IsNodeRegisteredByAccount(IsNodeRegisteredByAccountCall),
2854        ManagerDeregister(ManagerDeregisterCall),
2855        ManagerForceSync(ManagerForceSyncCall),
2856        ManagerRegister(ManagerRegisterCall),
2857        ManagerSync(ManagerSyncCall),
2858        MaxAdditionalRegistrations(MaxAdditionalRegistrationsCall),
2859        NodeRegisterdToAccount(NodeRegisterdToAccountCall),
2860        RenounceRole(RenounceRoleCall),
2861        RequirementImplementation(RequirementImplementationCall),
2862        RevokeRole(RevokeRoleCall),
2863        SelfDeregister(SelfDeregisterCall),
2864        SelfRegister(SelfRegisterCall),
2865        SelfSync(SelfSyncCall),
2866        SupportsInterface(SupportsInterfaceCall),
2867        UpdateRequirementImplementation(UpdateRequirementImplementationCall),
2868    }
2869    impl ::ethers::core::abi::AbiDecode for HoprNetworkRegistryCalls {
2870        fn decode(
2871            data: impl AsRef<[u8]>,
2872        ) -> ::core::result::Result<Self, ::ethers::core::abi::AbiError> {
2873            let data = data.as_ref();
2874            if let Ok(decoded) = <DefaultAdminRoleCall as ::ethers::core::abi::AbiDecode>::decode(
2875                data,
2876            ) {
2877                return Ok(Self::DefaultAdminRole(decoded));
2878            }
2879            if let Ok(decoded) = <ManagerRoleCall as ::ethers::core::abi::AbiDecode>::decode(
2880                data,
2881            ) {
2882                return Ok(Self::ManagerRole(decoded));
2883            }
2884            if let Ok(decoded) = <CountRegisterdNodesPerAccountCall as ::ethers::core::abi::AbiDecode>::decode(
2885                data,
2886            ) {
2887                return Ok(Self::CountRegisterdNodesPerAccount(decoded));
2888            }
2889            if let Ok(decoded) = <DisableRegistryCall as ::ethers::core::abi::AbiDecode>::decode(
2890                data,
2891            ) {
2892                return Ok(Self::DisableRegistry(decoded));
2893            }
2894            if let Ok(decoded) = <EnableRegistryCall as ::ethers::core::abi::AbiDecode>::decode(
2895                data,
2896            ) {
2897                return Ok(Self::EnableRegistry(decoded));
2898            }
2899            if let Ok(decoded) = <EnabledCall as ::ethers::core::abi::AbiDecode>::decode(
2900                data,
2901            ) {
2902                return Ok(Self::Enabled(decoded));
2903            }
2904            if let Ok(decoded) = <GetRoleAdminCall as ::ethers::core::abi::AbiDecode>::decode(
2905                data,
2906            ) {
2907                return Ok(Self::GetRoleAdmin(decoded));
2908            }
2909            if let Ok(decoded) = <GetRoleMemberCall as ::ethers::core::abi::AbiDecode>::decode(
2910                data,
2911            ) {
2912                return Ok(Self::GetRoleMember(decoded));
2913            }
2914            if let Ok(decoded) = <GetRoleMemberCountCall as ::ethers::core::abi::AbiDecode>::decode(
2915                data,
2916            ) {
2917                return Ok(Self::GetRoleMemberCount(decoded));
2918            }
2919            if let Ok(decoded) = <GrantRoleCall as ::ethers::core::abi::AbiDecode>::decode(
2920                data,
2921            ) {
2922                return Ok(Self::GrantRole(decoded));
2923            }
2924            if let Ok(decoded) = <HasRoleCall as ::ethers::core::abi::AbiDecode>::decode(
2925                data,
2926            ) {
2927                return Ok(Self::HasRole(decoded));
2928            }
2929            if let Ok(decoded) = <IsAccountEligibleCall as ::ethers::core::abi::AbiDecode>::decode(
2930                data,
2931            ) {
2932                return Ok(Self::IsAccountEligible(decoded));
2933            }
2934            if let Ok(decoded) = <IsNodeRegisteredAndEligibleCall as ::ethers::core::abi::AbiDecode>::decode(
2935                data,
2936            ) {
2937                return Ok(Self::IsNodeRegisteredAndEligible(decoded));
2938            }
2939            if let Ok(decoded) = <IsNodeRegisteredByAccountCall as ::ethers::core::abi::AbiDecode>::decode(
2940                data,
2941            ) {
2942                return Ok(Self::IsNodeRegisteredByAccount(decoded));
2943            }
2944            if let Ok(decoded) = <ManagerDeregisterCall as ::ethers::core::abi::AbiDecode>::decode(
2945                data,
2946            ) {
2947                return Ok(Self::ManagerDeregister(decoded));
2948            }
2949            if let Ok(decoded) = <ManagerForceSyncCall as ::ethers::core::abi::AbiDecode>::decode(
2950                data,
2951            ) {
2952                return Ok(Self::ManagerForceSync(decoded));
2953            }
2954            if let Ok(decoded) = <ManagerRegisterCall as ::ethers::core::abi::AbiDecode>::decode(
2955                data,
2956            ) {
2957                return Ok(Self::ManagerRegister(decoded));
2958            }
2959            if let Ok(decoded) = <ManagerSyncCall as ::ethers::core::abi::AbiDecode>::decode(
2960                data,
2961            ) {
2962                return Ok(Self::ManagerSync(decoded));
2963            }
2964            if let Ok(decoded) = <MaxAdditionalRegistrationsCall as ::ethers::core::abi::AbiDecode>::decode(
2965                data,
2966            ) {
2967                return Ok(Self::MaxAdditionalRegistrations(decoded));
2968            }
2969            if let Ok(decoded) = <NodeRegisterdToAccountCall as ::ethers::core::abi::AbiDecode>::decode(
2970                data,
2971            ) {
2972                return Ok(Self::NodeRegisterdToAccount(decoded));
2973            }
2974            if let Ok(decoded) = <RenounceRoleCall as ::ethers::core::abi::AbiDecode>::decode(
2975                data,
2976            ) {
2977                return Ok(Self::RenounceRole(decoded));
2978            }
2979            if let Ok(decoded) = <RequirementImplementationCall as ::ethers::core::abi::AbiDecode>::decode(
2980                data,
2981            ) {
2982                return Ok(Self::RequirementImplementation(decoded));
2983            }
2984            if let Ok(decoded) = <RevokeRoleCall as ::ethers::core::abi::AbiDecode>::decode(
2985                data,
2986            ) {
2987                return Ok(Self::RevokeRole(decoded));
2988            }
2989            if let Ok(decoded) = <SelfDeregisterCall as ::ethers::core::abi::AbiDecode>::decode(
2990                data,
2991            ) {
2992                return Ok(Self::SelfDeregister(decoded));
2993            }
2994            if let Ok(decoded) = <SelfRegisterCall as ::ethers::core::abi::AbiDecode>::decode(
2995                data,
2996            ) {
2997                return Ok(Self::SelfRegister(decoded));
2998            }
2999            if let Ok(decoded) = <SelfSyncCall as ::ethers::core::abi::AbiDecode>::decode(
3000                data,
3001            ) {
3002                return Ok(Self::SelfSync(decoded));
3003            }
3004            if let Ok(decoded) = <SupportsInterfaceCall as ::ethers::core::abi::AbiDecode>::decode(
3005                data,
3006            ) {
3007                return Ok(Self::SupportsInterface(decoded));
3008            }
3009            if let Ok(decoded) = <UpdateRequirementImplementationCall as ::ethers::core::abi::AbiDecode>::decode(
3010                data,
3011            ) {
3012                return Ok(Self::UpdateRequirementImplementation(decoded));
3013            }
3014            Err(::ethers::core::abi::Error::InvalidData.into())
3015        }
3016    }
3017    impl ::ethers::core::abi::AbiEncode for HoprNetworkRegistryCalls {
3018        fn encode(self) -> Vec<u8> {
3019            match self {
3020                Self::DefaultAdminRole(element) => {
3021                    ::ethers::core::abi::AbiEncode::encode(element)
3022                }
3023                Self::ManagerRole(element) => {
3024                    ::ethers::core::abi::AbiEncode::encode(element)
3025                }
3026                Self::CountRegisterdNodesPerAccount(element) => {
3027                    ::ethers::core::abi::AbiEncode::encode(element)
3028                }
3029                Self::DisableRegistry(element) => {
3030                    ::ethers::core::abi::AbiEncode::encode(element)
3031                }
3032                Self::EnableRegistry(element) => {
3033                    ::ethers::core::abi::AbiEncode::encode(element)
3034                }
3035                Self::Enabled(element) => ::ethers::core::abi::AbiEncode::encode(element),
3036                Self::GetRoleAdmin(element) => {
3037                    ::ethers::core::abi::AbiEncode::encode(element)
3038                }
3039                Self::GetRoleMember(element) => {
3040                    ::ethers::core::abi::AbiEncode::encode(element)
3041                }
3042                Self::GetRoleMemberCount(element) => {
3043                    ::ethers::core::abi::AbiEncode::encode(element)
3044                }
3045                Self::GrantRole(element) => {
3046                    ::ethers::core::abi::AbiEncode::encode(element)
3047                }
3048                Self::HasRole(element) => ::ethers::core::abi::AbiEncode::encode(element),
3049                Self::IsAccountEligible(element) => {
3050                    ::ethers::core::abi::AbiEncode::encode(element)
3051                }
3052                Self::IsNodeRegisteredAndEligible(element) => {
3053                    ::ethers::core::abi::AbiEncode::encode(element)
3054                }
3055                Self::IsNodeRegisteredByAccount(element) => {
3056                    ::ethers::core::abi::AbiEncode::encode(element)
3057                }
3058                Self::ManagerDeregister(element) => {
3059                    ::ethers::core::abi::AbiEncode::encode(element)
3060                }
3061                Self::ManagerForceSync(element) => {
3062                    ::ethers::core::abi::AbiEncode::encode(element)
3063                }
3064                Self::ManagerRegister(element) => {
3065                    ::ethers::core::abi::AbiEncode::encode(element)
3066                }
3067                Self::ManagerSync(element) => {
3068                    ::ethers::core::abi::AbiEncode::encode(element)
3069                }
3070                Self::MaxAdditionalRegistrations(element) => {
3071                    ::ethers::core::abi::AbiEncode::encode(element)
3072                }
3073                Self::NodeRegisterdToAccount(element) => {
3074                    ::ethers::core::abi::AbiEncode::encode(element)
3075                }
3076                Self::RenounceRole(element) => {
3077                    ::ethers::core::abi::AbiEncode::encode(element)
3078                }
3079                Self::RequirementImplementation(element) => {
3080                    ::ethers::core::abi::AbiEncode::encode(element)
3081                }
3082                Self::RevokeRole(element) => {
3083                    ::ethers::core::abi::AbiEncode::encode(element)
3084                }
3085                Self::SelfDeregister(element) => {
3086                    ::ethers::core::abi::AbiEncode::encode(element)
3087                }
3088                Self::SelfRegister(element) => {
3089                    ::ethers::core::abi::AbiEncode::encode(element)
3090                }
3091                Self::SelfSync(element) => {
3092                    ::ethers::core::abi::AbiEncode::encode(element)
3093                }
3094                Self::SupportsInterface(element) => {
3095                    ::ethers::core::abi::AbiEncode::encode(element)
3096                }
3097                Self::UpdateRequirementImplementation(element) => {
3098                    ::ethers::core::abi::AbiEncode::encode(element)
3099                }
3100            }
3101        }
3102    }
3103    impl ::core::fmt::Display for HoprNetworkRegistryCalls {
3104        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
3105            match self {
3106                Self::DefaultAdminRole(element) => ::core::fmt::Display::fmt(element, f),
3107                Self::ManagerRole(element) => ::core::fmt::Display::fmt(element, f),
3108                Self::CountRegisterdNodesPerAccount(element) => {
3109                    ::core::fmt::Display::fmt(element, f)
3110                }
3111                Self::DisableRegistry(element) => ::core::fmt::Display::fmt(element, f),
3112                Self::EnableRegistry(element) => ::core::fmt::Display::fmt(element, f),
3113                Self::Enabled(element) => ::core::fmt::Display::fmt(element, f),
3114                Self::GetRoleAdmin(element) => ::core::fmt::Display::fmt(element, f),
3115                Self::GetRoleMember(element) => ::core::fmt::Display::fmt(element, f),
3116                Self::GetRoleMemberCount(element) => {
3117                    ::core::fmt::Display::fmt(element, f)
3118                }
3119                Self::GrantRole(element) => ::core::fmt::Display::fmt(element, f),
3120                Self::HasRole(element) => ::core::fmt::Display::fmt(element, f),
3121                Self::IsAccountEligible(element) => ::core::fmt::Display::fmt(element, f),
3122                Self::IsNodeRegisteredAndEligible(element) => {
3123                    ::core::fmt::Display::fmt(element, f)
3124                }
3125                Self::IsNodeRegisteredByAccount(element) => {
3126                    ::core::fmt::Display::fmt(element, f)
3127                }
3128                Self::ManagerDeregister(element) => ::core::fmt::Display::fmt(element, f),
3129                Self::ManagerForceSync(element) => ::core::fmt::Display::fmt(element, f),
3130                Self::ManagerRegister(element) => ::core::fmt::Display::fmt(element, f),
3131                Self::ManagerSync(element) => ::core::fmt::Display::fmt(element, f),
3132                Self::MaxAdditionalRegistrations(element) => {
3133                    ::core::fmt::Display::fmt(element, f)
3134                }
3135                Self::NodeRegisterdToAccount(element) => {
3136                    ::core::fmt::Display::fmt(element, f)
3137                }
3138                Self::RenounceRole(element) => ::core::fmt::Display::fmt(element, f),
3139                Self::RequirementImplementation(element) => {
3140                    ::core::fmt::Display::fmt(element, f)
3141                }
3142                Self::RevokeRole(element) => ::core::fmt::Display::fmt(element, f),
3143                Self::SelfDeregister(element) => ::core::fmt::Display::fmt(element, f),
3144                Self::SelfRegister(element) => ::core::fmt::Display::fmt(element, f),
3145                Self::SelfSync(element) => ::core::fmt::Display::fmt(element, f),
3146                Self::SupportsInterface(element) => ::core::fmt::Display::fmt(element, f),
3147                Self::UpdateRequirementImplementation(element) => {
3148                    ::core::fmt::Display::fmt(element, f)
3149                }
3150            }
3151        }
3152    }
3153    impl ::core::convert::From<DefaultAdminRoleCall> for HoprNetworkRegistryCalls {
3154        fn from(value: DefaultAdminRoleCall) -> Self {
3155            Self::DefaultAdminRole(value)
3156        }
3157    }
3158    impl ::core::convert::From<ManagerRoleCall> for HoprNetworkRegistryCalls {
3159        fn from(value: ManagerRoleCall) -> Self {
3160            Self::ManagerRole(value)
3161        }
3162    }
3163    impl ::core::convert::From<CountRegisterdNodesPerAccountCall>
3164    for HoprNetworkRegistryCalls {
3165        fn from(value: CountRegisterdNodesPerAccountCall) -> Self {
3166            Self::CountRegisterdNodesPerAccount(value)
3167        }
3168    }
3169    impl ::core::convert::From<DisableRegistryCall> for HoprNetworkRegistryCalls {
3170        fn from(value: DisableRegistryCall) -> Self {
3171            Self::DisableRegistry(value)
3172        }
3173    }
3174    impl ::core::convert::From<EnableRegistryCall> for HoprNetworkRegistryCalls {
3175        fn from(value: EnableRegistryCall) -> Self {
3176            Self::EnableRegistry(value)
3177        }
3178    }
3179    impl ::core::convert::From<EnabledCall> for HoprNetworkRegistryCalls {
3180        fn from(value: EnabledCall) -> Self {
3181            Self::Enabled(value)
3182        }
3183    }
3184    impl ::core::convert::From<GetRoleAdminCall> for HoprNetworkRegistryCalls {
3185        fn from(value: GetRoleAdminCall) -> Self {
3186            Self::GetRoleAdmin(value)
3187        }
3188    }
3189    impl ::core::convert::From<GetRoleMemberCall> for HoprNetworkRegistryCalls {
3190        fn from(value: GetRoleMemberCall) -> Self {
3191            Self::GetRoleMember(value)
3192        }
3193    }
3194    impl ::core::convert::From<GetRoleMemberCountCall> for HoprNetworkRegistryCalls {
3195        fn from(value: GetRoleMemberCountCall) -> Self {
3196            Self::GetRoleMemberCount(value)
3197        }
3198    }
3199    impl ::core::convert::From<GrantRoleCall> for HoprNetworkRegistryCalls {
3200        fn from(value: GrantRoleCall) -> Self {
3201            Self::GrantRole(value)
3202        }
3203    }
3204    impl ::core::convert::From<HasRoleCall> for HoprNetworkRegistryCalls {
3205        fn from(value: HasRoleCall) -> Self {
3206            Self::HasRole(value)
3207        }
3208    }
3209    impl ::core::convert::From<IsAccountEligibleCall> for HoprNetworkRegistryCalls {
3210        fn from(value: IsAccountEligibleCall) -> Self {
3211            Self::IsAccountEligible(value)
3212        }
3213    }
3214    impl ::core::convert::From<IsNodeRegisteredAndEligibleCall>
3215    for HoprNetworkRegistryCalls {
3216        fn from(value: IsNodeRegisteredAndEligibleCall) -> Self {
3217            Self::IsNodeRegisteredAndEligible(value)
3218        }
3219    }
3220    impl ::core::convert::From<IsNodeRegisteredByAccountCall>
3221    for HoprNetworkRegistryCalls {
3222        fn from(value: IsNodeRegisteredByAccountCall) -> Self {
3223            Self::IsNodeRegisteredByAccount(value)
3224        }
3225    }
3226    impl ::core::convert::From<ManagerDeregisterCall> for HoprNetworkRegistryCalls {
3227        fn from(value: ManagerDeregisterCall) -> Self {
3228            Self::ManagerDeregister(value)
3229        }
3230    }
3231    impl ::core::convert::From<ManagerForceSyncCall> for HoprNetworkRegistryCalls {
3232        fn from(value: ManagerForceSyncCall) -> Self {
3233            Self::ManagerForceSync(value)
3234        }
3235    }
3236    impl ::core::convert::From<ManagerRegisterCall> for HoprNetworkRegistryCalls {
3237        fn from(value: ManagerRegisterCall) -> Self {
3238            Self::ManagerRegister(value)
3239        }
3240    }
3241    impl ::core::convert::From<ManagerSyncCall> for HoprNetworkRegistryCalls {
3242        fn from(value: ManagerSyncCall) -> Self {
3243            Self::ManagerSync(value)
3244        }
3245    }
3246    impl ::core::convert::From<MaxAdditionalRegistrationsCall>
3247    for HoprNetworkRegistryCalls {
3248        fn from(value: MaxAdditionalRegistrationsCall) -> Self {
3249            Self::MaxAdditionalRegistrations(value)
3250        }
3251    }
3252    impl ::core::convert::From<NodeRegisterdToAccountCall> for HoprNetworkRegistryCalls {
3253        fn from(value: NodeRegisterdToAccountCall) -> Self {
3254            Self::NodeRegisterdToAccount(value)
3255        }
3256    }
3257    impl ::core::convert::From<RenounceRoleCall> for HoprNetworkRegistryCalls {
3258        fn from(value: RenounceRoleCall) -> Self {
3259            Self::RenounceRole(value)
3260        }
3261    }
3262    impl ::core::convert::From<RequirementImplementationCall>
3263    for HoprNetworkRegistryCalls {
3264        fn from(value: RequirementImplementationCall) -> Self {
3265            Self::RequirementImplementation(value)
3266        }
3267    }
3268    impl ::core::convert::From<RevokeRoleCall> for HoprNetworkRegistryCalls {
3269        fn from(value: RevokeRoleCall) -> Self {
3270            Self::RevokeRole(value)
3271        }
3272    }
3273    impl ::core::convert::From<SelfDeregisterCall> for HoprNetworkRegistryCalls {
3274        fn from(value: SelfDeregisterCall) -> Self {
3275            Self::SelfDeregister(value)
3276        }
3277    }
3278    impl ::core::convert::From<SelfRegisterCall> for HoprNetworkRegistryCalls {
3279        fn from(value: SelfRegisterCall) -> Self {
3280            Self::SelfRegister(value)
3281        }
3282    }
3283    impl ::core::convert::From<SelfSyncCall> for HoprNetworkRegistryCalls {
3284        fn from(value: SelfSyncCall) -> Self {
3285            Self::SelfSync(value)
3286        }
3287    }
3288    impl ::core::convert::From<SupportsInterfaceCall> for HoprNetworkRegistryCalls {
3289        fn from(value: SupportsInterfaceCall) -> Self {
3290            Self::SupportsInterface(value)
3291        }
3292    }
3293    impl ::core::convert::From<UpdateRequirementImplementationCall>
3294    for HoprNetworkRegistryCalls {
3295        fn from(value: UpdateRequirementImplementationCall) -> Self {
3296            Self::UpdateRequirementImplementation(value)
3297        }
3298    }
3299    ///Container type for all return fields from the `DEFAULT_ADMIN_ROLE` function with signature `DEFAULT_ADMIN_ROLE()` and selector `0xa217fddf`
3300    #[derive(
3301        Clone,
3302        ::ethers::contract::EthAbiType,
3303        ::ethers::contract::EthAbiCodec,
3304        serde::Serialize,
3305        serde::Deserialize,
3306        Default,
3307        Debug,
3308        PartialEq,
3309        Eq,
3310        Hash
3311    )]
3312    pub struct DefaultAdminRoleReturn(pub [u8; 32]);
3313    ///Container type for all return fields from the `MANAGER_ROLE` function with signature `MANAGER_ROLE()` and selector `0xec87621c`
3314    #[derive(
3315        Clone,
3316        ::ethers::contract::EthAbiType,
3317        ::ethers::contract::EthAbiCodec,
3318        serde::Serialize,
3319        serde::Deserialize,
3320        Default,
3321        Debug,
3322        PartialEq,
3323        Eq,
3324        Hash
3325    )]
3326    pub struct ManagerRoleReturn(pub [u8; 32]);
3327    ///Container type for all return fields from the `countRegisterdNodesPerAccount` function with signature `countRegisterdNodesPerAccount(address)` and selector `0x3fa58457`
3328    #[derive(
3329        Clone,
3330        ::ethers::contract::EthAbiType,
3331        ::ethers::contract::EthAbiCodec,
3332        serde::Serialize,
3333        serde::Deserialize,
3334        Default,
3335        Debug,
3336        PartialEq,
3337        Eq,
3338        Hash
3339    )]
3340    pub struct CountRegisterdNodesPerAccountReturn(pub ::ethers::core::types::U256);
3341    ///Container type for all return fields from the `enabled` function with signature `enabled()` and selector `0x238dafe0`
3342    #[derive(
3343        Clone,
3344        ::ethers::contract::EthAbiType,
3345        ::ethers::contract::EthAbiCodec,
3346        serde::Serialize,
3347        serde::Deserialize,
3348        Default,
3349        Debug,
3350        PartialEq,
3351        Eq,
3352        Hash
3353    )]
3354    pub struct EnabledReturn(pub bool);
3355    ///Container type for all return fields from the `getRoleAdmin` function with signature `getRoleAdmin(bytes32)` and selector `0x248a9ca3`
3356    #[derive(
3357        Clone,
3358        ::ethers::contract::EthAbiType,
3359        ::ethers::contract::EthAbiCodec,
3360        serde::Serialize,
3361        serde::Deserialize,
3362        Default,
3363        Debug,
3364        PartialEq,
3365        Eq,
3366        Hash
3367    )]
3368    pub struct GetRoleAdminReturn(pub [u8; 32]);
3369    ///Container type for all return fields from the `getRoleMember` function with signature `getRoleMember(bytes32,uint256)` and selector `0x9010d07c`
3370    #[derive(
3371        Clone,
3372        ::ethers::contract::EthAbiType,
3373        ::ethers::contract::EthAbiCodec,
3374        serde::Serialize,
3375        serde::Deserialize,
3376        Default,
3377        Debug,
3378        PartialEq,
3379        Eq,
3380        Hash
3381    )]
3382    pub struct GetRoleMemberReturn(pub ::ethers::core::types::Address);
3383    ///Container type for all return fields from the `getRoleMemberCount` function with signature `getRoleMemberCount(bytes32)` and selector `0xca15c873`
3384    #[derive(
3385        Clone,
3386        ::ethers::contract::EthAbiType,
3387        ::ethers::contract::EthAbiCodec,
3388        serde::Serialize,
3389        serde::Deserialize,
3390        Default,
3391        Debug,
3392        PartialEq,
3393        Eq,
3394        Hash
3395    )]
3396    pub struct GetRoleMemberCountReturn(pub ::ethers::core::types::U256);
3397    ///Container type for all return fields from the `hasRole` function with signature `hasRole(bytes32,address)` and selector `0x91d14854`
3398    #[derive(
3399        Clone,
3400        ::ethers::contract::EthAbiType,
3401        ::ethers::contract::EthAbiCodec,
3402        serde::Serialize,
3403        serde::Deserialize,
3404        Default,
3405        Debug,
3406        PartialEq,
3407        Eq,
3408        Hash
3409    )]
3410    pub struct HasRoleReturn(pub bool);
3411    ///Container type for all return fields from the `isAccountEligible` function with signature `isAccountEligible(address)` and selector `0x6ffbf988`
3412    #[derive(
3413        Clone,
3414        ::ethers::contract::EthAbiType,
3415        ::ethers::contract::EthAbiCodec,
3416        serde::Serialize,
3417        serde::Deserialize,
3418        Default,
3419        Debug,
3420        PartialEq,
3421        Eq,
3422        Hash
3423    )]
3424    pub struct IsAccountEligibleReturn(pub bool);
3425    ///Container type for all return fields from the `isNodeRegisteredAndEligible` function with signature `isNodeRegisteredAndEligible(address)` and selector `0x4eb1805c`
3426    #[derive(
3427        Clone,
3428        ::ethers::contract::EthAbiType,
3429        ::ethers::contract::EthAbiCodec,
3430        serde::Serialize,
3431        serde::Deserialize,
3432        Default,
3433        Debug,
3434        PartialEq,
3435        Eq,
3436        Hash
3437    )]
3438    pub struct IsNodeRegisteredAndEligibleReturn(pub bool);
3439    ///Container type for all return fields from the `isNodeRegisteredByAccount` function with signature `isNodeRegisteredByAccount(address,address)` and selector `0xa5605da5`
3440    #[derive(
3441        Clone,
3442        ::ethers::contract::EthAbiType,
3443        ::ethers::contract::EthAbiCodec,
3444        serde::Serialize,
3445        serde::Deserialize,
3446        Default,
3447        Debug,
3448        PartialEq,
3449        Eq,
3450        Hash
3451    )]
3452    pub struct IsNodeRegisteredByAccountReturn(pub bool);
3453    ///Container type for all return fields from the `maxAdditionalRegistrations` function with signature `maxAdditionalRegistrations(address)` and selector `0x2a2deee2`
3454    #[derive(
3455        Clone,
3456        ::ethers::contract::EthAbiType,
3457        ::ethers::contract::EthAbiCodec,
3458        serde::Serialize,
3459        serde::Deserialize,
3460        Default,
3461        Debug,
3462        PartialEq,
3463        Eq,
3464        Hash
3465    )]
3466    pub struct MaxAdditionalRegistrationsReturn(pub ::ethers::core::types::U256);
3467    ///Container type for all return fields from the `nodeRegisterdToAccount` function with signature `nodeRegisterdToAccount(address)` and selector `0xc7ecab8f`
3468    #[derive(
3469        Clone,
3470        ::ethers::contract::EthAbiType,
3471        ::ethers::contract::EthAbiCodec,
3472        serde::Serialize,
3473        serde::Deserialize,
3474        Default,
3475        Debug,
3476        PartialEq,
3477        Eq,
3478        Hash
3479    )]
3480    pub struct NodeRegisterdToAccountReturn(pub ::ethers::core::types::Address);
3481    ///Container type for all return fields from the `requirementImplementation` function with signature `requirementImplementation()` and selector `0xe3d2a071`
3482    #[derive(
3483        Clone,
3484        ::ethers::contract::EthAbiType,
3485        ::ethers::contract::EthAbiCodec,
3486        serde::Serialize,
3487        serde::Deserialize,
3488        Default,
3489        Debug,
3490        PartialEq,
3491        Eq,
3492        Hash
3493    )]
3494    pub struct RequirementImplementationReturn(pub ::ethers::core::types::Address);
3495    ///Container type for all return fields from the `supportsInterface` function with signature `supportsInterface(bytes4)` and selector `0x01ffc9a7`
3496    #[derive(
3497        Clone,
3498        ::ethers::contract::EthAbiType,
3499        ::ethers::contract::EthAbiCodec,
3500        serde::Serialize,
3501        serde::Deserialize,
3502        Default,
3503        Debug,
3504        PartialEq,
3505        Eq,
3506        Hash
3507    )]
3508    pub struct SupportsInterfaceReturn(pub bool);
3509}