1#[allow(
12 non_camel_case_types,
13 non_snake_case,
14 clippy::pub_underscore_fields,
15 clippy::style,
16 clippy::empty_structs_with_brackets
17)]
18pub mod BN254 {
19 use super::*;
20 use alloy::sol_types as alloy_sol_types;
21 #[derive(Default, Debug, PartialEq, Eq, Hash)]
22 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
23 #[derive(Clone)]
24 pub struct BaseField(alloy::sol_types::private::primitives::aliases::U256);
25 const _: () = {
26 use alloy::sol_types as alloy_sol_types;
27 #[automatically_derived]
28 impl alloy_sol_types::private::SolTypeValue<BaseField>
29 for alloy::sol_types::private::primitives::aliases::U256 {
30 #[inline]
31 fn stv_to_tokens(
32 &self,
33 ) -> <alloy::sol_types::sol_data::Uint<
34 256,
35 > as alloy_sol_types::SolType>::Token<'_> {
36 alloy_sol_types::private::SolTypeValue::<
37 alloy::sol_types::sol_data::Uint<256>,
38 >::stv_to_tokens(self)
39 }
40 #[inline]
41 fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
42 <alloy::sol_types::sol_data::Uint<
43 256,
44 > as alloy_sol_types::SolType>::tokenize(self)
45 .0
46 }
47 #[inline]
48 fn stv_abi_encode_packed_to(
49 &self,
50 out: &mut alloy_sol_types::private::Vec<u8>,
51 ) {
52 <alloy::sol_types::sol_data::Uint<
53 256,
54 > as alloy_sol_types::SolType>::abi_encode_packed_to(self, out)
55 }
56 #[inline]
57 fn stv_abi_packed_encoded_size(&self) -> usize {
58 <alloy::sol_types::sol_data::Uint<
59 256,
60 > as alloy_sol_types::SolType>::abi_encoded_size(self)
61 }
62 }
63 #[automatically_derived]
64 impl BaseField {
65 pub const NAME: &'static str = stringify!(@ name);
67 #[inline]
69 pub const fn from(
70 value: alloy::sol_types::private::primitives::aliases::U256,
71 ) -> Self {
72 Self(value)
73 }
74 #[inline]
76 pub const fn into(
77 self,
78 ) -> alloy::sol_types::private::primitives::aliases::U256 {
79 self.0
80 }
81 #[inline]
84 pub fn abi_encode(&self) -> alloy_sol_types::private::Vec<u8> {
85 <Self as alloy_sol_types::SolType>::abi_encode(&self.0)
86 }
87 #[inline]
90 pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec<u8> {
91 <Self as alloy_sol_types::SolType>::abi_encode_packed(&self.0)
92 }
93 }
94 #[automatically_derived]
95 impl alloy_sol_types::SolType for BaseField {
96 type RustType = alloy::sol_types::private::primitives::aliases::U256;
97 type Token<'a> = <alloy::sol_types::sol_data::Uint<
98 256,
99 > as alloy_sol_types::SolType>::Token<'a>;
100 const SOL_NAME: &'static str = Self::NAME;
101 const ENCODED_SIZE: Option<usize> = <alloy::sol_types::sol_data::Uint<
102 256,
103 > as alloy_sol_types::SolType>::ENCODED_SIZE;
104 const PACKED_ENCODED_SIZE: Option<usize> = <alloy::sol_types::sol_data::Uint<
105 256,
106 > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
107 #[inline]
108 fn valid_token(token: &Self::Token<'_>) -> bool {
109 Self::type_check(token).is_ok()
110 }
111 #[inline]
112 fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> {
113 <alloy::sol_types::sol_data::Uint<
114 256,
115 > as alloy_sol_types::SolType>::type_check(token)
116 }
117 #[inline]
118 fn detokenize(token: Self::Token<'_>) -> Self::RustType {
119 <alloy::sol_types::sol_data::Uint<
120 256,
121 > as alloy_sol_types::SolType>::detokenize(token)
122 }
123 }
124 #[automatically_derived]
125 impl alloy_sol_types::EventTopic for BaseField {
126 #[inline]
127 fn topic_preimage_length(rust: &Self::RustType) -> usize {
128 <alloy::sol_types::sol_data::Uint<
129 256,
130 > as alloy_sol_types::EventTopic>::topic_preimage_length(rust)
131 }
132 #[inline]
133 fn encode_topic_preimage(
134 rust: &Self::RustType,
135 out: &mut alloy_sol_types::private::Vec<u8>,
136 ) {
137 <alloy::sol_types::sol_data::Uint<
138 256,
139 > as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out)
140 }
141 #[inline]
142 fn encode_topic(
143 rust: &Self::RustType,
144 ) -> alloy_sol_types::abi::token::WordToken {
145 <alloy::sol_types::sol_data::Uint<
146 256,
147 > as alloy_sol_types::EventTopic>::encode_topic(rust)
148 }
149 }
150 };
151 #[derive(Default, Debug, PartialEq, Eq, Hash)]
152 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
153 #[derive(Clone)]
154 pub struct ScalarField(alloy::sol_types::private::primitives::aliases::U256);
155 const _: () = {
156 use alloy::sol_types as alloy_sol_types;
157 #[automatically_derived]
158 impl alloy_sol_types::private::SolTypeValue<ScalarField>
159 for alloy::sol_types::private::primitives::aliases::U256 {
160 #[inline]
161 fn stv_to_tokens(
162 &self,
163 ) -> <alloy::sol_types::sol_data::Uint<
164 256,
165 > as alloy_sol_types::SolType>::Token<'_> {
166 alloy_sol_types::private::SolTypeValue::<
167 alloy::sol_types::sol_data::Uint<256>,
168 >::stv_to_tokens(self)
169 }
170 #[inline]
171 fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
172 <alloy::sol_types::sol_data::Uint<
173 256,
174 > as alloy_sol_types::SolType>::tokenize(self)
175 .0
176 }
177 #[inline]
178 fn stv_abi_encode_packed_to(
179 &self,
180 out: &mut alloy_sol_types::private::Vec<u8>,
181 ) {
182 <alloy::sol_types::sol_data::Uint<
183 256,
184 > as alloy_sol_types::SolType>::abi_encode_packed_to(self, out)
185 }
186 #[inline]
187 fn stv_abi_packed_encoded_size(&self) -> usize {
188 <alloy::sol_types::sol_data::Uint<
189 256,
190 > as alloy_sol_types::SolType>::abi_encoded_size(self)
191 }
192 }
193 #[automatically_derived]
194 impl ScalarField {
195 pub const NAME: &'static str = stringify!(@ name);
197 #[inline]
199 pub const fn from(
200 value: alloy::sol_types::private::primitives::aliases::U256,
201 ) -> Self {
202 Self(value)
203 }
204 #[inline]
206 pub const fn into(
207 self,
208 ) -> alloy::sol_types::private::primitives::aliases::U256 {
209 self.0
210 }
211 #[inline]
214 pub fn abi_encode(&self) -> alloy_sol_types::private::Vec<u8> {
215 <Self as alloy_sol_types::SolType>::abi_encode(&self.0)
216 }
217 #[inline]
220 pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec<u8> {
221 <Self as alloy_sol_types::SolType>::abi_encode_packed(&self.0)
222 }
223 }
224 #[automatically_derived]
225 impl alloy_sol_types::SolType for ScalarField {
226 type RustType = alloy::sol_types::private::primitives::aliases::U256;
227 type Token<'a> = <alloy::sol_types::sol_data::Uint<
228 256,
229 > as alloy_sol_types::SolType>::Token<'a>;
230 const SOL_NAME: &'static str = Self::NAME;
231 const ENCODED_SIZE: Option<usize> = <alloy::sol_types::sol_data::Uint<
232 256,
233 > as alloy_sol_types::SolType>::ENCODED_SIZE;
234 const PACKED_ENCODED_SIZE: Option<usize> = <alloy::sol_types::sol_data::Uint<
235 256,
236 > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
237 #[inline]
238 fn valid_token(token: &Self::Token<'_>) -> bool {
239 Self::type_check(token).is_ok()
240 }
241 #[inline]
242 fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> {
243 <alloy::sol_types::sol_data::Uint<
244 256,
245 > as alloy_sol_types::SolType>::type_check(token)
246 }
247 #[inline]
248 fn detokenize(token: Self::Token<'_>) -> Self::RustType {
249 <alloy::sol_types::sol_data::Uint<
250 256,
251 > as alloy_sol_types::SolType>::detokenize(token)
252 }
253 }
254 #[automatically_derived]
255 impl alloy_sol_types::EventTopic for ScalarField {
256 #[inline]
257 fn topic_preimage_length(rust: &Self::RustType) -> usize {
258 <alloy::sol_types::sol_data::Uint<
259 256,
260 > as alloy_sol_types::EventTopic>::topic_preimage_length(rust)
261 }
262 #[inline]
263 fn encode_topic_preimage(
264 rust: &Self::RustType,
265 out: &mut alloy_sol_types::private::Vec<u8>,
266 ) {
267 <alloy::sol_types::sol_data::Uint<
268 256,
269 > as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out)
270 }
271 #[inline]
272 fn encode_topic(
273 rust: &Self::RustType,
274 ) -> alloy_sol_types::abi::token::WordToken {
275 <alloy::sol_types::sol_data::Uint<
276 256,
277 > as alloy_sol_types::EventTopic>::encode_topic(rust)
278 }
279 }
280 };
281 #[derive(Default, Debug, PartialEq, Eq, Hash)]
282 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
286 #[derive(Clone)]
287 pub struct G1Point {
288 #[allow(missing_docs)]
289 pub x: <BaseField as alloy::sol_types::SolType>::RustType,
290 #[allow(missing_docs)]
291 pub y: <BaseField as alloy::sol_types::SolType>::RustType,
292 }
293 #[allow(
294 non_camel_case_types,
295 non_snake_case,
296 clippy::pub_underscore_fields,
297 clippy::style
298 )]
299 const _: () = {
300 use alloy::sol_types as alloy_sol_types;
301 #[doc(hidden)]
302 type UnderlyingSolTuple<'a> = (BaseField, BaseField);
303 #[doc(hidden)]
304 type UnderlyingRustTuple<'a> = (
305 <BaseField as alloy::sol_types::SolType>::RustType,
306 <BaseField as alloy::sol_types::SolType>::RustType,
307 );
308 #[cfg(test)]
309 #[allow(dead_code, unreachable_patterns)]
310 fn _type_assertion(
311 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
312 ) {
313 match _t {
314 alloy_sol_types::private::AssertTypeEq::<
315 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
316 >(_) => {}
317 }
318 }
319 #[automatically_derived]
320 #[doc(hidden)]
321 impl ::core::convert::From<G1Point> for UnderlyingRustTuple<'_> {
322 fn from(value: G1Point) -> Self {
323 (value.x, value.y)
324 }
325 }
326 #[automatically_derived]
327 #[doc(hidden)]
328 impl ::core::convert::From<UnderlyingRustTuple<'_>> for G1Point {
329 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
330 Self { x: tuple.0, y: tuple.1 }
331 }
332 }
333 #[automatically_derived]
334 impl alloy_sol_types::SolValue for G1Point {
335 type SolType = Self;
336 }
337 #[automatically_derived]
338 impl alloy_sol_types::private::SolTypeValue<Self> for G1Point {
339 #[inline]
340 fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
341 (
342 <BaseField as alloy_sol_types::SolType>::tokenize(&self.x),
343 <BaseField as alloy_sol_types::SolType>::tokenize(&self.y),
344 )
345 }
346 #[inline]
347 fn stv_abi_encoded_size(&self) -> usize {
348 if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
349 return size;
350 }
351 let tuple = <UnderlyingRustTuple<
352 '_,
353 > as ::core::convert::From<Self>>::from(self.clone());
354 <UnderlyingSolTuple<
355 '_,
356 > as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
357 }
358 #[inline]
359 fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
360 <Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
361 }
362 #[inline]
363 fn stv_abi_encode_packed_to(
364 &self,
365 out: &mut alloy_sol_types::private::Vec<u8>,
366 ) {
367 let tuple = <UnderlyingRustTuple<
368 '_,
369 > as ::core::convert::From<Self>>::from(self.clone());
370 <UnderlyingSolTuple<
371 '_,
372 > as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out)
373 }
374 #[inline]
375 fn stv_abi_packed_encoded_size(&self) -> usize {
376 if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
377 return size;
378 }
379 let tuple = <UnderlyingRustTuple<
380 '_,
381 > as ::core::convert::From<Self>>::from(self.clone());
382 <UnderlyingSolTuple<
383 '_,
384 > as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple)
385 }
386 }
387 #[automatically_derived]
388 impl alloy_sol_types::SolType for G1Point {
389 type RustType = Self;
390 type Token<'a> = <UnderlyingSolTuple<
391 'a,
392 > as alloy_sol_types::SolType>::Token<'a>;
393 const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
394 const ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
395 '_,
396 > as alloy_sol_types::SolType>::ENCODED_SIZE;
397 const PACKED_ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
398 '_,
399 > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
400 #[inline]
401 fn valid_token(token: &Self::Token<'_>) -> bool {
402 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
403 }
404 #[inline]
405 fn detokenize(token: Self::Token<'_>) -> Self::RustType {
406 let tuple = <UnderlyingSolTuple<
407 '_,
408 > as alloy_sol_types::SolType>::detokenize(token);
409 <Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
410 }
411 }
412 #[automatically_derived]
413 impl alloy_sol_types::SolStruct for G1Point {
414 const NAME: &'static str = "G1Point";
415 #[inline]
416 fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
417 alloy_sol_types::private::Cow::Borrowed("G1Point(uint256 x,uint256 y)")
418 }
419 #[inline]
420 fn eip712_components() -> alloy_sol_types::private::Vec<
421 alloy_sol_types::private::Cow<'static, str>,
422 > {
423 alloy_sol_types::private::Vec::new()
424 }
425 #[inline]
426 fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> {
427 <Self as alloy_sol_types::SolStruct>::eip712_root_type()
428 }
429 #[inline]
430 fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
431 [
432 <BaseField as alloy_sol_types::SolType>::eip712_data_word(&self.x).0,
433 <BaseField as alloy_sol_types::SolType>::eip712_data_word(&self.y).0,
434 ]
435 .concat()
436 }
437 }
438 #[automatically_derived]
439 impl alloy_sol_types::EventTopic for G1Point {
440 #[inline]
441 fn topic_preimage_length(rust: &Self::RustType) -> usize {
442 0usize
443 + <BaseField as alloy_sol_types::EventTopic>::topic_preimage_length(
444 &rust.x,
445 )
446 + <BaseField as alloy_sol_types::EventTopic>::topic_preimage_length(
447 &rust.y,
448 )
449 }
450 #[inline]
451 fn encode_topic_preimage(
452 rust: &Self::RustType,
453 out: &mut alloy_sol_types::private::Vec<u8>,
454 ) {
455 out.reserve(
456 <Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust),
457 );
458 <BaseField as alloy_sol_types::EventTopic>::encode_topic_preimage(
459 &rust.x,
460 out,
461 );
462 <BaseField as alloy_sol_types::EventTopic>::encode_topic_preimage(
463 &rust.y,
464 out,
465 );
466 }
467 #[inline]
468 fn encode_topic(
469 rust: &Self::RustType,
470 ) -> alloy_sol_types::abi::token::WordToken {
471 let mut out = alloy_sol_types::private::Vec::new();
472 <Self as alloy_sol_types::EventTopic>::encode_topic_preimage(
473 rust,
474 &mut out,
475 );
476 alloy_sol_types::abi::token::WordToken(
477 alloy_sol_types::private::keccak256(out),
478 )
479 }
480 }
481 };
482 use alloy::contract as alloy_contract;
483 #[inline]
487 pub const fn new<
488 T: alloy_contract::private::Transport + ::core::clone::Clone,
489 P: alloy_contract::private::Provider<T, N>,
490 N: alloy_contract::private::Network,
491 >(
492 address: alloy_sol_types::private::Address,
493 provider: P,
494 ) -> BN254Instance<T, P, N> {
495 BN254Instance::<T, P, N>::new(address, provider)
496 }
497 #[derive(Clone)]
509 pub struct BN254Instance<T, P, N = alloy_contract::private::Ethereum> {
510 address: alloy_sol_types::private::Address,
511 provider: P,
512 _network_transport: ::core::marker::PhantomData<(N, T)>,
513 }
514 #[automatically_derived]
515 impl<T, P, N> ::core::fmt::Debug for BN254Instance<T, P, N> {
516 #[inline]
517 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
518 f.debug_tuple("BN254Instance").field(&self.address).finish()
519 }
520 }
521 #[automatically_derived]
523 impl<
524 T: alloy_contract::private::Transport + ::core::clone::Clone,
525 P: alloy_contract::private::Provider<T, N>,
526 N: alloy_contract::private::Network,
527 > BN254Instance<T, P, N> {
528 #[inline]
532 pub const fn new(
533 address: alloy_sol_types::private::Address,
534 provider: P,
535 ) -> Self {
536 Self {
537 address,
538 provider,
539 _network_transport: ::core::marker::PhantomData,
540 }
541 }
542 #[inline]
544 pub const fn address(&self) -> &alloy_sol_types::private::Address {
545 &self.address
546 }
547 #[inline]
549 pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
550 self.address = address;
551 }
552 pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
554 self.set_address(address);
555 self
556 }
557 #[inline]
559 pub const fn provider(&self) -> &P {
560 &self.provider
561 }
562 }
563 impl<T, P: ::core::clone::Clone, N> BN254Instance<T, &P, N> {
564 #[inline]
566 pub fn with_cloned_provider(self) -> BN254Instance<T, P, N> {
567 BN254Instance {
568 address: self.address,
569 provider: ::core::clone::Clone::clone(&self.provider),
570 _network_transport: ::core::marker::PhantomData,
571 }
572 }
573 }
574 #[automatically_derived]
576 impl<
577 T: alloy_contract::private::Transport + ::core::clone::Clone,
578 P: alloy_contract::private::Provider<T, N>,
579 N: alloy_contract::private::Network,
580 > BN254Instance<T, P, N> {
581 pub fn call_builder<C: alloy_sol_types::SolCall>(
586 &self,
587 call: &C,
588 ) -> alloy_contract::SolCallBuilder<T, &P, C, N> {
589 alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
590 }
591 }
592 #[automatically_derived]
594 impl<
595 T: alloy_contract::private::Transport + ::core::clone::Clone,
596 P: alloy_contract::private::Provider<T, N>,
597 N: alloy_contract::private::Network,
598 > BN254Instance<T, P, N> {
599 pub fn event_filter<E: alloy_sol_types::SolEvent>(
604 &self,
605 ) -> alloy_contract::Event<T, &P, E, N> {
606 alloy_contract::Event::new_sol(&self.provider, &self.address)
607 }
608 }
609}
610#[allow(
620 non_camel_case_types,
621 non_snake_case,
622 clippy::pub_underscore_fields,
623 clippy::style,
624 clippy::empty_structs_with_brackets
625)]
626pub mod IPlonkVerifier {
627 use super::*;
628 use alloy::sol_types as alloy_sol_types;
629 #[derive()]
630 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
634 #[derive(Clone)]
635 pub struct PlonkProof {
636 #[allow(missing_docs)]
637 pub wire0: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
638 #[allow(missing_docs)]
639 pub wire1: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
640 #[allow(missing_docs)]
641 pub wire2: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
642 #[allow(missing_docs)]
643 pub wire3: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
644 #[allow(missing_docs)]
645 pub wire4: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
646 #[allow(missing_docs)]
647 pub prodPerm: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
648 #[allow(missing_docs)]
649 pub split0: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
650 #[allow(missing_docs)]
651 pub split1: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
652 #[allow(missing_docs)]
653 pub split2: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
654 #[allow(missing_docs)]
655 pub split3: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
656 #[allow(missing_docs)]
657 pub split4: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
658 #[allow(missing_docs)]
659 pub zeta: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
660 #[allow(missing_docs)]
661 pub zetaOmega: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
662 #[allow(missing_docs)]
663 pub wireEval0: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
664 #[allow(missing_docs)]
665 pub wireEval1: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
666 #[allow(missing_docs)]
667 pub wireEval2: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
668 #[allow(missing_docs)]
669 pub wireEval3: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
670 #[allow(missing_docs)]
671 pub wireEval4: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
672 #[allow(missing_docs)]
673 pub sigmaEval0: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
674 #[allow(missing_docs)]
675 pub sigmaEval1: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
676 #[allow(missing_docs)]
677 pub sigmaEval2: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
678 #[allow(missing_docs)]
679 pub sigmaEval3: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
680 #[allow(missing_docs)]
681 pub prodPermZetaOmegaEval: <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
682 }
683 #[allow(
684 non_camel_case_types,
685 non_snake_case,
686 clippy::pub_underscore_fields,
687 clippy::style
688 )]
689 const _: () = {
690 use alloy::sol_types as alloy_sol_types;
691 #[doc(hidden)]
692 type UnderlyingSolTuple<'a> = (
693 BN254::G1Point,
694 BN254::G1Point,
695 BN254::G1Point,
696 BN254::G1Point,
697 BN254::G1Point,
698 BN254::G1Point,
699 BN254::G1Point,
700 BN254::G1Point,
701 BN254::G1Point,
702 BN254::G1Point,
703 BN254::G1Point,
704 BN254::G1Point,
705 BN254::G1Point,
706 BN254::ScalarField,
707 BN254::ScalarField,
708 BN254::ScalarField,
709 BN254::ScalarField,
710 BN254::ScalarField,
711 BN254::ScalarField,
712 BN254::ScalarField,
713 BN254::ScalarField,
714 BN254::ScalarField,
715 BN254::ScalarField,
716 );
717 #[doc(hidden)]
718 type UnderlyingRustTuple<'a> = (
719 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
720 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
721 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
722 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
723 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
724 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
725 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
726 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
727 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
728 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
729 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
730 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
731 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
732 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
733 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
734 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
735 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
736 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
737 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
738 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
739 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
740 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
741 <BN254::ScalarField as alloy::sol_types::SolType>::RustType,
742 );
743 #[cfg(test)]
744 #[allow(dead_code, unreachable_patterns)]
745 fn _type_assertion(
746 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
747 ) {
748 match _t {
749 alloy_sol_types::private::AssertTypeEq::<
750 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
751 >(_) => {}
752 }
753 }
754 #[automatically_derived]
755 #[doc(hidden)]
756 impl ::core::convert::From<PlonkProof> for UnderlyingRustTuple<'_> {
757 fn from(value: PlonkProof) -> Self {
758 (
759 value.wire0,
760 value.wire1,
761 value.wire2,
762 value.wire3,
763 value.wire4,
764 value.prodPerm,
765 value.split0,
766 value.split1,
767 value.split2,
768 value.split3,
769 value.split4,
770 value.zeta,
771 value.zetaOmega,
772 value.wireEval0,
773 value.wireEval1,
774 value.wireEval2,
775 value.wireEval3,
776 value.wireEval4,
777 value.sigmaEval0,
778 value.sigmaEval1,
779 value.sigmaEval2,
780 value.sigmaEval3,
781 value.prodPermZetaOmegaEval,
782 )
783 }
784 }
785 #[automatically_derived]
786 #[doc(hidden)]
787 impl ::core::convert::From<UnderlyingRustTuple<'_>> for PlonkProof {
788 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
789 Self {
790 wire0: tuple.0,
791 wire1: tuple.1,
792 wire2: tuple.2,
793 wire3: tuple.3,
794 wire4: tuple.4,
795 prodPerm: tuple.5,
796 split0: tuple.6,
797 split1: tuple.7,
798 split2: tuple.8,
799 split3: tuple.9,
800 split4: tuple.10,
801 zeta: tuple.11,
802 zetaOmega: tuple.12,
803 wireEval0: tuple.13,
804 wireEval1: tuple.14,
805 wireEval2: tuple.15,
806 wireEval3: tuple.16,
807 wireEval4: tuple.17,
808 sigmaEval0: tuple.18,
809 sigmaEval1: tuple.19,
810 sigmaEval2: tuple.20,
811 sigmaEval3: tuple.21,
812 prodPermZetaOmegaEval: tuple.22,
813 }
814 }
815 }
816 #[automatically_derived]
817 impl alloy_sol_types::SolValue for PlonkProof {
818 type SolType = Self;
819 }
820 #[automatically_derived]
821 impl alloy_sol_types::private::SolTypeValue<Self> for PlonkProof {
822 #[inline]
823 fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
824 (
825 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.wire0),
826 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.wire1),
827 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.wire2),
828 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.wire3),
829 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.wire4),
830 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(
831 &self.prodPerm,
832 ),
833 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.split0),
834 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.split1),
835 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.split2),
836 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.split3),
837 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.split4),
838 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.zeta),
839 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(
840 &self.zetaOmega,
841 ),
842 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
843 &self.wireEval0,
844 ),
845 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
846 &self.wireEval1,
847 ),
848 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
849 &self.wireEval2,
850 ),
851 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
852 &self.wireEval3,
853 ),
854 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
855 &self.wireEval4,
856 ),
857 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
858 &self.sigmaEval0,
859 ),
860 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
861 &self.sigmaEval1,
862 ),
863 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
864 &self.sigmaEval2,
865 ),
866 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
867 &self.sigmaEval3,
868 ),
869 <BN254::ScalarField as alloy_sol_types::SolType>::tokenize(
870 &self.prodPermZetaOmegaEval,
871 ),
872 )
873 }
874 #[inline]
875 fn stv_abi_encoded_size(&self) -> usize {
876 if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
877 return size;
878 }
879 let tuple = <UnderlyingRustTuple<
880 '_,
881 > as ::core::convert::From<Self>>::from(self.clone());
882 <UnderlyingSolTuple<
883 '_,
884 > as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
885 }
886 #[inline]
887 fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
888 <Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
889 }
890 #[inline]
891 fn stv_abi_encode_packed_to(
892 &self,
893 out: &mut alloy_sol_types::private::Vec<u8>,
894 ) {
895 let tuple = <UnderlyingRustTuple<
896 '_,
897 > as ::core::convert::From<Self>>::from(self.clone());
898 <UnderlyingSolTuple<
899 '_,
900 > as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out)
901 }
902 #[inline]
903 fn stv_abi_packed_encoded_size(&self) -> usize {
904 if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
905 return size;
906 }
907 let tuple = <UnderlyingRustTuple<
908 '_,
909 > as ::core::convert::From<Self>>::from(self.clone());
910 <UnderlyingSolTuple<
911 '_,
912 > as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple)
913 }
914 }
915 #[automatically_derived]
916 impl alloy_sol_types::SolType for PlonkProof {
917 type RustType = Self;
918 type Token<'a> = <UnderlyingSolTuple<
919 'a,
920 > as alloy_sol_types::SolType>::Token<'a>;
921 const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
922 const ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
923 '_,
924 > as alloy_sol_types::SolType>::ENCODED_SIZE;
925 const PACKED_ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
926 '_,
927 > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
928 #[inline]
929 fn valid_token(token: &Self::Token<'_>) -> bool {
930 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
931 }
932 #[inline]
933 fn detokenize(token: Self::Token<'_>) -> Self::RustType {
934 let tuple = <UnderlyingSolTuple<
935 '_,
936 > as alloy_sol_types::SolType>::detokenize(token);
937 <Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
938 }
939 }
940 #[automatically_derived]
941 impl alloy_sol_types::SolStruct for PlonkProof {
942 const NAME: &'static str = "PlonkProof";
943 #[inline]
944 fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
945 alloy_sol_types::private::Cow::Borrowed(
946 "PlonkProof(BN254.G1Point wire0,BN254.G1Point wire1,BN254.G1Point wire2,BN254.G1Point wire3,BN254.G1Point wire4,BN254.G1Point prodPerm,BN254.G1Point split0,BN254.G1Point split1,BN254.G1Point split2,BN254.G1Point split3,BN254.G1Point split4,BN254.G1Point zeta,BN254.G1Point zetaOmega,uint256 wireEval0,uint256 wireEval1,uint256 wireEval2,uint256 wireEval3,uint256 wireEval4,uint256 sigmaEval0,uint256 sigmaEval1,uint256 sigmaEval2,uint256 sigmaEval3,uint256 prodPermZetaOmegaEval)",
947 )
948 }
949 #[inline]
950 fn eip712_components() -> alloy_sol_types::private::Vec<
951 alloy_sol_types::private::Cow<'static, str>,
952 > {
953 let mut components = alloy_sol_types::private::Vec::with_capacity(13);
954 components
955 .push(
956 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
957 );
958 components
959 .extend(
960 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
961 );
962 components
963 .push(
964 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
965 );
966 components
967 .extend(
968 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
969 );
970 components
971 .push(
972 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
973 );
974 components
975 .extend(
976 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
977 );
978 components
979 .push(
980 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
981 );
982 components
983 .extend(
984 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
985 );
986 components
987 .push(
988 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
989 );
990 components
991 .extend(
992 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
993 );
994 components
995 .push(
996 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
997 );
998 components
999 .extend(
1000 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1001 );
1002 components
1003 .push(
1004 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1005 );
1006 components
1007 .extend(
1008 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1009 );
1010 components
1011 .push(
1012 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1013 );
1014 components
1015 .extend(
1016 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1017 );
1018 components
1019 .push(
1020 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1021 );
1022 components
1023 .extend(
1024 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1025 );
1026 components
1027 .push(
1028 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1029 );
1030 components
1031 .extend(
1032 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1033 );
1034 components
1035 .push(
1036 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1037 );
1038 components
1039 .extend(
1040 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1041 );
1042 components
1043 .push(
1044 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1045 );
1046 components
1047 .extend(
1048 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1049 );
1050 components
1051 .push(
1052 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1053 );
1054 components
1055 .extend(
1056 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1057 );
1058 components
1059 }
1060 #[inline]
1061 fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
1062 [
1063 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1064 &self.wire0,
1065 )
1066 .0,
1067 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1068 &self.wire1,
1069 )
1070 .0,
1071 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1072 &self.wire2,
1073 )
1074 .0,
1075 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1076 &self.wire3,
1077 )
1078 .0,
1079 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1080 &self.wire4,
1081 )
1082 .0,
1083 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1084 &self.prodPerm,
1085 )
1086 .0,
1087 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1088 &self.split0,
1089 )
1090 .0,
1091 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1092 &self.split1,
1093 )
1094 .0,
1095 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1096 &self.split2,
1097 )
1098 .0,
1099 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1100 &self.split3,
1101 )
1102 .0,
1103 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1104 &self.split4,
1105 )
1106 .0,
1107 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1108 &self.zeta,
1109 )
1110 .0,
1111 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1112 &self.zetaOmega,
1113 )
1114 .0,
1115 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1116 &self.wireEval0,
1117 )
1118 .0,
1119 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1120 &self.wireEval1,
1121 )
1122 .0,
1123 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1124 &self.wireEval2,
1125 )
1126 .0,
1127 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1128 &self.wireEval3,
1129 )
1130 .0,
1131 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1132 &self.wireEval4,
1133 )
1134 .0,
1135 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1136 &self.sigmaEval0,
1137 )
1138 .0,
1139 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1140 &self.sigmaEval1,
1141 )
1142 .0,
1143 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1144 &self.sigmaEval2,
1145 )
1146 .0,
1147 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1148 &self.sigmaEval3,
1149 )
1150 .0,
1151 <BN254::ScalarField as alloy_sol_types::SolType>::eip712_data_word(
1152 &self.prodPermZetaOmegaEval,
1153 )
1154 .0,
1155 ]
1156 .concat()
1157 }
1158 }
1159 #[automatically_derived]
1160 impl alloy_sol_types::EventTopic for PlonkProof {
1161 #[inline]
1162 fn topic_preimage_length(rust: &Self::RustType) -> usize {
1163 0usize
1164 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1165 &rust.wire0,
1166 )
1167 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1168 &rust.wire1,
1169 )
1170 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1171 &rust.wire2,
1172 )
1173 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1174 &rust.wire3,
1175 )
1176 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1177 &rust.wire4,
1178 )
1179 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1180 &rust.prodPerm,
1181 )
1182 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1183 &rust.split0,
1184 )
1185 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1186 &rust.split1,
1187 )
1188 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1189 &rust.split2,
1190 )
1191 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1192 &rust.split3,
1193 )
1194 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1195 &rust.split4,
1196 )
1197 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1198 &rust.zeta,
1199 )
1200 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1201 &rust.zetaOmega,
1202 )
1203 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1204 &rust.wireEval0,
1205 )
1206 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1207 &rust.wireEval1,
1208 )
1209 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1210 &rust.wireEval2,
1211 )
1212 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1213 &rust.wireEval3,
1214 )
1215 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1216 &rust.wireEval4,
1217 )
1218 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1219 &rust.sigmaEval0,
1220 )
1221 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1222 &rust.sigmaEval1,
1223 )
1224 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1225 &rust.sigmaEval2,
1226 )
1227 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1228 &rust.sigmaEval3,
1229 )
1230 + <BN254::ScalarField as alloy_sol_types::EventTopic>::topic_preimage_length(
1231 &rust.prodPermZetaOmegaEval,
1232 )
1233 }
1234 #[inline]
1235 fn encode_topic_preimage(
1236 rust: &Self::RustType,
1237 out: &mut alloy_sol_types::private::Vec<u8>,
1238 ) {
1239 out.reserve(
1240 <Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust),
1241 );
1242 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1243 &rust.wire0,
1244 out,
1245 );
1246 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1247 &rust.wire1,
1248 out,
1249 );
1250 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1251 &rust.wire2,
1252 out,
1253 );
1254 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1255 &rust.wire3,
1256 out,
1257 );
1258 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1259 &rust.wire4,
1260 out,
1261 );
1262 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1263 &rust.prodPerm,
1264 out,
1265 );
1266 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1267 &rust.split0,
1268 out,
1269 );
1270 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1271 &rust.split1,
1272 out,
1273 );
1274 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1275 &rust.split2,
1276 out,
1277 );
1278 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1279 &rust.split3,
1280 out,
1281 );
1282 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1283 &rust.split4,
1284 out,
1285 );
1286 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1287 &rust.zeta,
1288 out,
1289 );
1290 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1291 &rust.zetaOmega,
1292 out,
1293 );
1294 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1295 &rust.wireEval0,
1296 out,
1297 );
1298 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1299 &rust.wireEval1,
1300 out,
1301 );
1302 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1303 &rust.wireEval2,
1304 out,
1305 );
1306 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1307 &rust.wireEval3,
1308 out,
1309 );
1310 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1311 &rust.wireEval4,
1312 out,
1313 );
1314 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1315 &rust.sigmaEval0,
1316 out,
1317 );
1318 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1319 &rust.sigmaEval1,
1320 out,
1321 );
1322 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1323 &rust.sigmaEval2,
1324 out,
1325 );
1326 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1327 &rust.sigmaEval3,
1328 out,
1329 );
1330 <BN254::ScalarField as alloy_sol_types::EventTopic>::encode_topic_preimage(
1331 &rust.prodPermZetaOmegaEval,
1332 out,
1333 );
1334 }
1335 #[inline]
1336 fn encode_topic(
1337 rust: &Self::RustType,
1338 ) -> alloy_sol_types::abi::token::WordToken {
1339 let mut out = alloy_sol_types::private::Vec::new();
1340 <Self as alloy_sol_types::EventTopic>::encode_topic_preimage(
1341 rust,
1342 &mut out,
1343 );
1344 alloy_sol_types::abi::token::WordToken(
1345 alloy_sol_types::private::keccak256(out),
1346 )
1347 }
1348 }
1349 };
1350 #[derive()]
1351 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
1355 #[derive(Clone)]
1356 pub struct VerifyingKey {
1357 #[allow(missing_docs)]
1358 pub domainSize: alloy::sol_types::private::primitives::aliases::U256,
1359 #[allow(missing_docs)]
1360 pub numInputs: alloy::sol_types::private::primitives::aliases::U256,
1361 #[allow(missing_docs)]
1362 pub sigma0: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1363 #[allow(missing_docs)]
1364 pub sigma1: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1365 #[allow(missing_docs)]
1366 pub sigma2: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1367 #[allow(missing_docs)]
1368 pub sigma3: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1369 #[allow(missing_docs)]
1370 pub sigma4: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1371 #[allow(missing_docs)]
1372 pub q1: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1373 #[allow(missing_docs)]
1374 pub q2: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1375 #[allow(missing_docs)]
1376 pub q3: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1377 #[allow(missing_docs)]
1378 pub q4: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1379 #[allow(missing_docs)]
1380 pub qM12: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1381 #[allow(missing_docs)]
1382 pub qM34: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1383 #[allow(missing_docs)]
1384 pub qO: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1385 #[allow(missing_docs)]
1386 pub qC: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1387 #[allow(missing_docs)]
1388 pub qH1: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1389 #[allow(missing_docs)]
1390 pub qH2: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1391 #[allow(missing_docs)]
1392 pub qH3: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1393 #[allow(missing_docs)]
1394 pub qH4: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1395 #[allow(missing_docs)]
1396 pub qEcc: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1397 #[allow(missing_docs)]
1398 pub g2LSB: alloy::sol_types::private::FixedBytes<32>,
1399 #[allow(missing_docs)]
1400 pub g2MSB: alloy::sol_types::private::FixedBytes<32>,
1401 }
1402 #[allow(
1403 non_camel_case_types,
1404 non_snake_case,
1405 clippy::pub_underscore_fields,
1406 clippy::style
1407 )]
1408 const _: () = {
1409 use alloy::sol_types as alloy_sol_types;
1410 #[doc(hidden)]
1411 type UnderlyingSolTuple<'a> = (
1412 alloy::sol_types::sol_data::Uint<256>,
1413 alloy::sol_types::sol_data::Uint<256>,
1414 BN254::G1Point,
1415 BN254::G1Point,
1416 BN254::G1Point,
1417 BN254::G1Point,
1418 BN254::G1Point,
1419 BN254::G1Point,
1420 BN254::G1Point,
1421 BN254::G1Point,
1422 BN254::G1Point,
1423 BN254::G1Point,
1424 BN254::G1Point,
1425 BN254::G1Point,
1426 BN254::G1Point,
1427 BN254::G1Point,
1428 BN254::G1Point,
1429 BN254::G1Point,
1430 BN254::G1Point,
1431 BN254::G1Point,
1432 alloy::sol_types::sol_data::FixedBytes<32>,
1433 alloy::sol_types::sol_data::FixedBytes<32>,
1434 );
1435 #[doc(hidden)]
1436 type UnderlyingRustTuple<'a> = (
1437 alloy::sol_types::private::primitives::aliases::U256,
1438 alloy::sol_types::private::primitives::aliases::U256,
1439 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1440 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1441 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1442 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1443 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1444 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1445 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1446 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1447 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1448 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1449 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1450 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1451 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1452 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1453 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1454 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1455 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1456 <BN254::G1Point as alloy::sol_types::SolType>::RustType,
1457 alloy::sol_types::private::FixedBytes<32>,
1458 alloy::sol_types::private::FixedBytes<32>,
1459 );
1460 #[cfg(test)]
1461 #[allow(dead_code, unreachable_patterns)]
1462 fn _type_assertion(
1463 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
1464 ) {
1465 match _t {
1466 alloy_sol_types::private::AssertTypeEq::<
1467 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
1468 >(_) => {}
1469 }
1470 }
1471 #[automatically_derived]
1472 #[doc(hidden)]
1473 impl ::core::convert::From<VerifyingKey> for UnderlyingRustTuple<'_> {
1474 fn from(value: VerifyingKey) -> Self {
1475 (
1476 value.domainSize,
1477 value.numInputs,
1478 value.sigma0,
1479 value.sigma1,
1480 value.sigma2,
1481 value.sigma3,
1482 value.sigma4,
1483 value.q1,
1484 value.q2,
1485 value.q3,
1486 value.q4,
1487 value.qM12,
1488 value.qM34,
1489 value.qO,
1490 value.qC,
1491 value.qH1,
1492 value.qH2,
1493 value.qH3,
1494 value.qH4,
1495 value.qEcc,
1496 value.g2LSB,
1497 value.g2MSB,
1498 )
1499 }
1500 }
1501 #[automatically_derived]
1502 #[doc(hidden)]
1503 impl ::core::convert::From<UnderlyingRustTuple<'_>> for VerifyingKey {
1504 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
1505 Self {
1506 domainSize: tuple.0,
1507 numInputs: tuple.1,
1508 sigma0: tuple.2,
1509 sigma1: tuple.3,
1510 sigma2: tuple.4,
1511 sigma3: tuple.5,
1512 sigma4: tuple.6,
1513 q1: tuple.7,
1514 q2: tuple.8,
1515 q3: tuple.9,
1516 q4: tuple.10,
1517 qM12: tuple.11,
1518 qM34: tuple.12,
1519 qO: tuple.13,
1520 qC: tuple.14,
1521 qH1: tuple.15,
1522 qH2: tuple.16,
1523 qH3: tuple.17,
1524 qH4: tuple.18,
1525 qEcc: tuple.19,
1526 g2LSB: tuple.20,
1527 g2MSB: tuple.21,
1528 }
1529 }
1530 }
1531 #[automatically_derived]
1532 impl alloy_sol_types::SolValue for VerifyingKey {
1533 type SolType = Self;
1534 }
1535 #[automatically_derived]
1536 impl alloy_sol_types::private::SolTypeValue<Self> for VerifyingKey {
1537 #[inline]
1538 fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
1539 (
1540 <alloy::sol_types::sol_data::Uint<
1541 256,
1542 > as alloy_sol_types::SolType>::tokenize(&self.domainSize),
1543 <alloy::sol_types::sol_data::Uint<
1544 256,
1545 > as alloy_sol_types::SolType>::tokenize(&self.numInputs),
1546 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.sigma0),
1547 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.sigma1),
1548 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.sigma2),
1549 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.sigma3),
1550 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.sigma4),
1551 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.q1),
1552 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.q2),
1553 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.q3),
1554 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.q4),
1555 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qM12),
1556 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qM34),
1557 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qO),
1558 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qC),
1559 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qH1),
1560 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qH2),
1561 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qH3),
1562 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qH4),
1563 <BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.qEcc),
1564 <alloy::sol_types::sol_data::FixedBytes<
1565 32,
1566 > as alloy_sol_types::SolType>::tokenize(&self.g2LSB),
1567 <alloy::sol_types::sol_data::FixedBytes<
1568 32,
1569 > as alloy_sol_types::SolType>::tokenize(&self.g2MSB),
1570 )
1571 }
1572 #[inline]
1573 fn stv_abi_encoded_size(&self) -> usize {
1574 if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
1575 return size;
1576 }
1577 let tuple = <UnderlyingRustTuple<
1578 '_,
1579 > as ::core::convert::From<Self>>::from(self.clone());
1580 <UnderlyingSolTuple<
1581 '_,
1582 > as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
1583 }
1584 #[inline]
1585 fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
1586 <Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
1587 }
1588 #[inline]
1589 fn stv_abi_encode_packed_to(
1590 &self,
1591 out: &mut alloy_sol_types::private::Vec<u8>,
1592 ) {
1593 let tuple = <UnderlyingRustTuple<
1594 '_,
1595 > as ::core::convert::From<Self>>::from(self.clone());
1596 <UnderlyingSolTuple<
1597 '_,
1598 > as alloy_sol_types::SolType>::abi_encode_packed_to(&tuple, out)
1599 }
1600 #[inline]
1601 fn stv_abi_packed_encoded_size(&self) -> usize {
1602 if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
1603 return size;
1604 }
1605 let tuple = <UnderlyingRustTuple<
1606 '_,
1607 > as ::core::convert::From<Self>>::from(self.clone());
1608 <UnderlyingSolTuple<
1609 '_,
1610 > as alloy_sol_types::SolType>::abi_packed_encoded_size(&tuple)
1611 }
1612 }
1613 #[automatically_derived]
1614 impl alloy_sol_types::SolType for VerifyingKey {
1615 type RustType = Self;
1616 type Token<'a> = <UnderlyingSolTuple<
1617 'a,
1618 > as alloy_sol_types::SolType>::Token<'a>;
1619 const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
1620 const ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
1621 '_,
1622 > as alloy_sol_types::SolType>::ENCODED_SIZE;
1623 const PACKED_ENCODED_SIZE: Option<usize> = <UnderlyingSolTuple<
1624 '_,
1625 > as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
1626 #[inline]
1627 fn valid_token(token: &Self::Token<'_>) -> bool {
1628 <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
1629 }
1630 #[inline]
1631 fn detokenize(token: Self::Token<'_>) -> Self::RustType {
1632 let tuple = <UnderlyingSolTuple<
1633 '_,
1634 > as alloy_sol_types::SolType>::detokenize(token);
1635 <Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
1636 }
1637 }
1638 #[automatically_derived]
1639 impl alloy_sol_types::SolStruct for VerifyingKey {
1640 const NAME: &'static str = "VerifyingKey";
1641 #[inline]
1642 fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
1643 alloy_sol_types::private::Cow::Borrowed(
1644 "VerifyingKey(uint256 domainSize,uint256 numInputs,BN254.G1Point sigma0,BN254.G1Point sigma1,BN254.G1Point sigma2,BN254.G1Point sigma3,BN254.G1Point sigma4,BN254.G1Point q1,BN254.G1Point q2,BN254.G1Point q3,BN254.G1Point q4,BN254.G1Point qM12,BN254.G1Point qM34,BN254.G1Point qO,BN254.G1Point qC,BN254.G1Point qH1,BN254.G1Point qH2,BN254.G1Point qH3,BN254.G1Point qH4,BN254.G1Point qEcc,bytes32 g2LSB,bytes32 g2MSB)",
1645 )
1646 }
1647 #[inline]
1648 fn eip712_components() -> alloy_sol_types::private::Vec<
1649 alloy_sol_types::private::Cow<'static, str>,
1650 > {
1651 let mut components = alloy_sol_types::private::Vec::with_capacity(18);
1652 components
1653 .push(
1654 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1655 );
1656 components
1657 .extend(
1658 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1659 );
1660 components
1661 .push(
1662 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1663 );
1664 components
1665 .extend(
1666 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1667 );
1668 components
1669 .push(
1670 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1671 );
1672 components
1673 .extend(
1674 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1675 );
1676 components
1677 .push(
1678 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1679 );
1680 components
1681 .extend(
1682 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1683 );
1684 components
1685 .push(
1686 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1687 );
1688 components
1689 .extend(
1690 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1691 );
1692 components
1693 .push(
1694 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1695 );
1696 components
1697 .extend(
1698 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1699 );
1700 components
1701 .push(
1702 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1703 );
1704 components
1705 .extend(
1706 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1707 );
1708 components
1709 .push(
1710 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1711 );
1712 components
1713 .extend(
1714 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1715 );
1716 components
1717 .push(
1718 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1719 );
1720 components
1721 .extend(
1722 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1723 );
1724 components
1725 .push(
1726 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1727 );
1728 components
1729 .extend(
1730 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1731 );
1732 components
1733 .push(
1734 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1735 );
1736 components
1737 .extend(
1738 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1739 );
1740 components
1741 .push(
1742 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1743 );
1744 components
1745 .extend(
1746 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1747 );
1748 components
1749 .push(
1750 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1751 );
1752 components
1753 .extend(
1754 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1755 );
1756 components
1757 .push(
1758 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1759 );
1760 components
1761 .extend(
1762 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1763 );
1764 components
1765 .push(
1766 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1767 );
1768 components
1769 .extend(
1770 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1771 );
1772 components
1773 .push(
1774 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1775 );
1776 components
1777 .extend(
1778 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1779 );
1780 components
1781 .push(
1782 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1783 );
1784 components
1785 .extend(
1786 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1787 );
1788 components
1789 .push(
1790 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type(),
1791 );
1792 components
1793 .extend(
1794 <BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components(),
1795 );
1796 components
1797 }
1798 #[inline]
1799 fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
1800 [
1801 <alloy::sol_types::sol_data::Uint<
1802 256,
1803 > as alloy_sol_types::SolType>::eip712_data_word(&self.domainSize)
1804 .0,
1805 <alloy::sol_types::sol_data::Uint<
1806 256,
1807 > as alloy_sol_types::SolType>::eip712_data_word(&self.numInputs)
1808 .0,
1809 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1810 &self.sigma0,
1811 )
1812 .0,
1813 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1814 &self.sigma1,
1815 )
1816 .0,
1817 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1818 &self.sigma2,
1819 )
1820 .0,
1821 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1822 &self.sigma3,
1823 )
1824 .0,
1825 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1826 &self.sigma4,
1827 )
1828 .0,
1829 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1830 &self.q1,
1831 )
1832 .0,
1833 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1834 &self.q2,
1835 )
1836 .0,
1837 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1838 &self.q3,
1839 )
1840 .0,
1841 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1842 &self.q4,
1843 )
1844 .0,
1845 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1846 &self.qM12,
1847 )
1848 .0,
1849 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1850 &self.qM34,
1851 )
1852 .0,
1853 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1854 &self.qO,
1855 )
1856 .0,
1857 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1858 &self.qC,
1859 )
1860 .0,
1861 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1862 &self.qH1,
1863 )
1864 .0,
1865 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1866 &self.qH2,
1867 )
1868 .0,
1869 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1870 &self.qH3,
1871 )
1872 .0,
1873 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1874 &self.qH4,
1875 )
1876 .0,
1877 <BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
1878 &self.qEcc,
1879 )
1880 .0,
1881 <alloy::sol_types::sol_data::FixedBytes<
1882 32,
1883 > as alloy_sol_types::SolType>::eip712_data_word(&self.g2LSB)
1884 .0,
1885 <alloy::sol_types::sol_data::FixedBytes<
1886 32,
1887 > as alloy_sol_types::SolType>::eip712_data_word(&self.g2MSB)
1888 .0,
1889 ]
1890 .concat()
1891 }
1892 }
1893 #[automatically_derived]
1894 impl alloy_sol_types::EventTopic for VerifyingKey {
1895 #[inline]
1896 fn topic_preimage_length(rust: &Self::RustType) -> usize {
1897 0usize
1898 + <alloy::sol_types::sol_data::Uint<
1899 256,
1900 > as alloy_sol_types::EventTopic>::topic_preimage_length(
1901 &rust.domainSize,
1902 )
1903 + <alloy::sol_types::sol_data::Uint<
1904 256,
1905 > as alloy_sol_types::EventTopic>::topic_preimage_length(
1906 &rust.numInputs,
1907 )
1908 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1909 &rust.sigma0,
1910 )
1911 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1912 &rust.sigma1,
1913 )
1914 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1915 &rust.sigma2,
1916 )
1917 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1918 &rust.sigma3,
1919 )
1920 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1921 &rust.sigma4,
1922 )
1923 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1924 &rust.q1,
1925 )
1926 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1927 &rust.q2,
1928 )
1929 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1930 &rust.q3,
1931 )
1932 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1933 &rust.q4,
1934 )
1935 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1936 &rust.qM12,
1937 )
1938 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1939 &rust.qM34,
1940 )
1941 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1942 &rust.qO,
1943 )
1944 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1945 &rust.qC,
1946 )
1947 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1948 &rust.qH1,
1949 )
1950 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1951 &rust.qH2,
1952 )
1953 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1954 &rust.qH3,
1955 )
1956 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1957 &rust.qH4,
1958 )
1959 + <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
1960 &rust.qEcc,
1961 )
1962 + <alloy::sol_types::sol_data::FixedBytes<
1963 32,
1964 > as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.g2LSB)
1965 + <alloy::sol_types::sol_data::FixedBytes<
1966 32,
1967 > as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.g2MSB)
1968 }
1969 #[inline]
1970 fn encode_topic_preimage(
1971 rust: &Self::RustType,
1972 out: &mut alloy_sol_types::private::Vec<u8>,
1973 ) {
1974 out.reserve(
1975 <Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust),
1976 );
1977 <alloy::sol_types::sol_data::Uint<
1978 256,
1979 > as alloy_sol_types::EventTopic>::encode_topic_preimage(
1980 &rust.domainSize,
1981 out,
1982 );
1983 <alloy::sol_types::sol_data::Uint<
1984 256,
1985 > as alloy_sol_types::EventTopic>::encode_topic_preimage(
1986 &rust.numInputs,
1987 out,
1988 );
1989 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1990 &rust.sigma0,
1991 out,
1992 );
1993 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1994 &rust.sigma1,
1995 out,
1996 );
1997 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
1998 &rust.sigma2,
1999 out,
2000 );
2001 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2002 &rust.sigma3,
2003 out,
2004 );
2005 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2006 &rust.sigma4,
2007 out,
2008 );
2009 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2010 &rust.q1,
2011 out,
2012 );
2013 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2014 &rust.q2,
2015 out,
2016 );
2017 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2018 &rust.q3,
2019 out,
2020 );
2021 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2022 &rust.q4,
2023 out,
2024 );
2025 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2026 &rust.qM12,
2027 out,
2028 );
2029 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2030 &rust.qM34,
2031 out,
2032 );
2033 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2034 &rust.qO,
2035 out,
2036 );
2037 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2038 &rust.qC,
2039 out,
2040 );
2041 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2042 &rust.qH1,
2043 out,
2044 );
2045 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2046 &rust.qH2,
2047 out,
2048 );
2049 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2050 &rust.qH3,
2051 out,
2052 );
2053 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2054 &rust.qH4,
2055 out,
2056 );
2057 <BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
2058 &rust.qEcc,
2059 out,
2060 );
2061 <alloy::sol_types::sol_data::FixedBytes<
2062 32,
2063 > as alloy_sol_types::EventTopic>::encode_topic_preimage(
2064 &rust.g2LSB,
2065 out,
2066 );
2067 <alloy::sol_types::sol_data::FixedBytes<
2068 32,
2069 > as alloy_sol_types::EventTopic>::encode_topic_preimage(
2070 &rust.g2MSB,
2071 out,
2072 );
2073 }
2074 #[inline]
2075 fn encode_topic(
2076 rust: &Self::RustType,
2077 ) -> alloy_sol_types::abi::token::WordToken {
2078 let mut out = alloy_sol_types::private::Vec::new();
2079 <Self as alloy_sol_types::EventTopic>::encode_topic_preimage(
2080 rust,
2081 &mut out,
2082 );
2083 alloy_sol_types::abi::token::WordToken(
2084 alloy_sol_types::private::keccak256(out),
2085 )
2086 }
2087 }
2088 };
2089 use alloy::contract as alloy_contract;
2090 #[inline]
2094 pub const fn new<
2095 T: alloy_contract::private::Transport + ::core::clone::Clone,
2096 P: alloy_contract::private::Provider<T, N>,
2097 N: alloy_contract::private::Network,
2098 >(
2099 address: alloy_sol_types::private::Address,
2100 provider: P,
2101 ) -> IPlonkVerifierInstance<T, P, N> {
2102 IPlonkVerifierInstance::<T, P, N>::new(address, provider)
2103 }
2104 #[derive(Clone)]
2116 pub struct IPlonkVerifierInstance<T, P, N = alloy_contract::private::Ethereum> {
2117 address: alloy_sol_types::private::Address,
2118 provider: P,
2119 _network_transport: ::core::marker::PhantomData<(N, T)>,
2120 }
2121 #[automatically_derived]
2122 impl<T, P, N> ::core::fmt::Debug for IPlonkVerifierInstance<T, P, N> {
2123 #[inline]
2124 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2125 f.debug_tuple("IPlonkVerifierInstance").field(&self.address).finish()
2126 }
2127 }
2128 #[automatically_derived]
2130 impl<
2131 T: alloy_contract::private::Transport + ::core::clone::Clone,
2132 P: alloy_contract::private::Provider<T, N>,
2133 N: alloy_contract::private::Network,
2134 > IPlonkVerifierInstance<T, P, N> {
2135 #[inline]
2139 pub const fn new(
2140 address: alloy_sol_types::private::Address,
2141 provider: P,
2142 ) -> Self {
2143 Self {
2144 address,
2145 provider,
2146 _network_transport: ::core::marker::PhantomData,
2147 }
2148 }
2149 #[inline]
2151 pub const fn address(&self) -> &alloy_sol_types::private::Address {
2152 &self.address
2153 }
2154 #[inline]
2156 pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
2157 self.address = address;
2158 }
2159 pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
2161 self.set_address(address);
2162 self
2163 }
2164 #[inline]
2166 pub const fn provider(&self) -> &P {
2167 &self.provider
2168 }
2169 }
2170 impl<T, P: ::core::clone::Clone, N> IPlonkVerifierInstance<T, &P, N> {
2171 #[inline]
2173 pub fn with_cloned_provider(self) -> IPlonkVerifierInstance<T, P, N> {
2174 IPlonkVerifierInstance {
2175 address: self.address,
2176 provider: ::core::clone::Clone::clone(&self.provider),
2177 _network_transport: ::core::marker::PhantomData,
2178 }
2179 }
2180 }
2181 #[automatically_derived]
2183 impl<
2184 T: alloy_contract::private::Transport + ::core::clone::Clone,
2185 P: alloy_contract::private::Provider<T, N>,
2186 N: alloy_contract::private::Network,
2187 > IPlonkVerifierInstance<T, P, N> {
2188 pub fn call_builder<C: alloy_sol_types::SolCall>(
2193 &self,
2194 call: &C,
2195 ) -> alloy_contract::SolCallBuilder<T, &P, C, N> {
2196 alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
2197 }
2198 }
2199 #[automatically_derived]
2201 impl<
2202 T: alloy_contract::private::Transport + ::core::clone::Clone,
2203 P: alloy_contract::private::Provider<T, N>,
2204 N: alloy_contract::private::Network,
2205 > IPlonkVerifierInstance<T, P, N> {
2206 pub fn event_filter<E: alloy_sol_types::SolEvent>(
2211 &self,
2212 ) -> alloy_contract::Event<T, &P, E, N> {
2213 alloy_contract::Event::new_sol(&self.provider, &self.address)
2214 }
2215 }
2216}
2217#[allow(
3054 non_camel_case_types,
3055 non_snake_case,
3056 clippy::pub_underscore_fields,
3057 clippy::style,
3058 clippy::empty_structs_with_brackets
3059)]
3060pub mod PlonkVerifierV2 {
3061 use super::*;
3062 use alloy::sol_types as alloy_sol_types;
3063 #[rustfmt::skip]
3069 #[allow(clippy::all)]
3070 pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
3071 b"a&sa\x004`\x0B\x82\x82\x829\x80Q_\x1A`s\x14`(WcNH{q`\xE0\x1B_R_`\x04R`$_\xFD[0_R`s\x81S\x82\x81\xF3\xFEs\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\x14`\x80`@R`\x046\x10a\0\x9BW_5`\xE0\x1C\x80c\xAF\x19k\xA2\x11a\0nW\x80c\xAF\x19k\xA2\x14a\x01NW\x80c\xDE$\xAC\x0F\x14a\x01uW\x80c\xE3Q-V\x14a\x01\x9CW\x80c\xF5\x14C&\x14a\x01\xC3W\x80c\xFC\x86`\xC7\x14a\x01\xEAW__\xFD[\x80c\x0CU\x1F?\x14a\0\x9FW\x80cKG4\xE3\x14a\0\xD9W\x80cZ\x14\xC0\xFE\x14a\x01\0W\x80c\x83LE*\x14a\x01'W[__\xFD[a\0\xC6\x7F\x1E\xE6x\xA0G\nu\xA6\xEA\xA8\xFE\x83p`I\x8B\xA8(\xA3p;1\x1D\x0Fw\xF0\x10BJ\xFE\xB0%\x81V[`@Q\x90\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\0\xC6\x7F\"\xFE\xBD\xA3\xC0\xC0c*VG[B\x14\xE5a^\x11\xE6\xDD?\x96\xE6\xCE\xA2\x85J\x87\xD4\xDA\xCC^U\x81V[a\0\xC6\x7F B\xA5\x87\xA9\x0C\x18{\n\x08|\x03\xE2\x9C\x96\x8B\x95\x0B\x1D\xB2m\\\x82\xD6f\x90Zh\x95y\x0C\n\x81V[a\0\xC6\x7F&\x0E\x01\xB2Q\xF6\xF1\xC7\xE7\xFFNX\x07\x91\xDE\xE8\xEAQ\xD8z5\x8E\x03\x8BN\xFE0\xFA\xC0\x93\x83\xC1\x81V[a\0\xC6\x7F\x01\x18\xC4\xD5\xB87\xBC\xC2\xBC\x89\xB5\xB3\x98\xB5\x97N\x9FYD\x07;2\x07\x8B~#\x1F\xEC\x93\x88\x83\xB0\x81V[a\0\xC6\x7F.+\x91Ea\x03i\x8A\xDFW\xB7\x99\x96\x9D\xEA\x1C\x8Fs\x9D\xA5\xD8\xD4\r\xD3\xEB\x92\"\xDB|\x81\xE8\x81\x81V[a\0\xC6\x7F/\x8D\xD1\xF1\xA7X<B\xC4\xE1*D\xE1\x10@Ls\xCAl\x94\x81?\x85\x83]\xA4\xFB{\xB10\x1DJ\x81V[a\0\xC6\x7F\x04\xFCci\xF7\x11\x0F\xE3\xD2QV\xC1\xBB\x9Ar\x85\x9C\xF2\xA0FA\xF9\x9B\xA4\xEEA<\x80\xDAj_\xE4\x81V[a\x01\xFDa\x01\xF86`\x04a$\x07V[a\x02\rV[`@Q\x90\x15\x15\x81R` \x01a\0\xD0V[_a\x02\x17\x82a\x02\xAAV[a\x02'\x83_[` \x02\x01Qa\x03\xE5V[a\x022\x83`\x01a\x02\x1DV[a\x02=\x83`\x02a\x02\x1DV[a\x02H\x83`\x03a\x02\x1DV[a\x02S\x83`\x04a\x02\x1DV[a\x02^\x83`\x05a\x02\x1DV[a\x02i\x83`\x06a\x02\x1DV[a\x02t\x83`\x07a\x02\x1DV[a\x02\x7F\x83`\x08a\x02\x1DV[a\x02\x8A\x83`\ta\x02\x1DV[a\x02\x95\x83`\na\x02\x1DV[a\x02\xA0\x84\x84\x84a\x04KV[\x90P[\x93\x92PPPV[\x80Qa\x02\xB5\x90a\x06?V[a\x02\xC2\x81` \x01Qa\x06?V[a\x02\xCF\x81`@\x01Qa\x06?V[a\x02\xDC\x81``\x01Qa\x06?V[a\x02\xE9\x81`\x80\x01Qa\x06?V[a\x02\xF6\x81`\xA0\x01Qa\x06?V[a\x03\x03\x81`\xC0\x01Qa\x06?V[a\x03\x10\x81`\xE0\x01Qa\x06?V[a\x03\x1E\x81a\x01\0\x01Qa\x06?V[a\x03,\x81a\x01 \x01Qa\x06?V[a\x03:\x81a\x01@\x01Qa\x06?V[a\x03H\x81a\x01`\x01Qa\x06?V[a\x03V\x81a\x01\x80\x01Qa\x06?V[a\x03d\x81a\x01\xA0\x01Qa\x03\xE5V[a\x03r\x81a\x01\xC0\x01Qa\x03\xE5V[a\x03\x80\x81a\x01\xE0\x01Qa\x03\xE5V[a\x03\x8E\x81a\x02\0\x01Qa\x03\xE5V[a\x03\x9C\x81a\x02 \x01Qa\x03\xE5V[a\x03\xAA\x81a\x02@\x01Qa\x03\xE5V[a\x03\xB8\x81a\x02`\x01Qa\x03\xE5V[a\x03\xC6\x81a\x02\x80\x01Qa\x03\xE5V[a\x03\xD4\x81a\x02\xA0\x01Qa\x03\xE5V[a\x03\xE2\x81a\x02\xC0\x01Qa\x03\xE5V[PV[_Q` a&G_9_Q\x90_R\x81\x10\x80a\x04GW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1B`$\x82\x01R\x7FBn254: invalid scalar field\0\0\0\0\0`D\x82\x01R`d\x01[`@Q\x80\x91\x03\x90\xFD[PPV[_\x83` \x01Q`\x0B\x14a\x04qW`@Qc \xFA\x9D\x89`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_a\x04}\x85\x85\x85a\x06\xEDV[\x90P_a\x04\x8C\x86_\x01Qa\x0C|V[\x90P_a\x04\x9E\x82\x84`\xA0\x01Q\x88a\x12#V[\x90Pa\x04\xBB`@Q\x80`@\x01`@R\x80_\x81R` \x01_\x81RP\x90V[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01Ra\x04\xEF\x87a\x01`\x01Qa\x04\xEA\x89a\x01\x80\x01Q\x88`\xE0\x01Qa\x12\x80V[a\x13!V[\x91P__a\x04\xFF\x8B\x88\x87\x8Ca\x13\xC5V[\x91P\x91Pa\x05\x10\x81a\x04\xEA\x84a\x15\xFDV[\x92Pa\x05)\x83a\x04\xEA\x8Ba\x01`\x01Q\x8A`\xA0\x01Qa\x12\x80V[`\xA0\x88\x01Q`@\x88\x01Q` \x01Q\x91\x94P_Q` a&G_9_Q\x90_R\x91\x82\x90\x82\t\x90P\x81`\xE0\x8A\x01Q\x82\t\x90Pa\x05l\x85a\x04\xEA\x8Da\x01\x80\x01Q\x84a\x12\x80V[\x94P_`@Q\x80`\x80\x01`@R\x80\x7F\x01\x18\xC4\xD5\xB87\xBC\xC2\xBC\x89\xB5\xB3\x98\xB5\x97N\x9FYD\x07;2\x07\x8B~#\x1F\xEC\x93\x88\x83\xB0\x81R` \x01\x7F&\x0E\x01\xB2Q\xF6\xF1\xC7\xE7\xFFNX\x07\x91\xDE\xE8\xEAQ\xD8z5\x8E\x03\x8BN\xFE0\xFA\xC0\x93\x83\xC1\x81R` \x01\x7F\"\xFE\xBD\xA3\xC0\xC0c*VG[B\x14\xE5a^\x11\xE6\xDD?\x96\xE6\xCE\xA2\x85J\x87\xD4\xDA\xCC^U\x81R` \x01\x7F\x04\xFCci\xF7\x11\x0F\xE3\xD2QV\xC1\xBB\x9Ar\x85\x9C\xF2\xA0FA\xF9\x9B\xA4\xEEA<\x80\xDAj_\xE4\x81RP\x90Pa\x06-\x87\x82a\x06 \x89a\x15\xFDV[a\x06(a\x16\x9AV[a\x17gV[\x9E\x9DPPPPPPPPPPPPPPV[\x80Q` \x82\x01Q_\x91\x7F0dNr\xE11\xA0)\xB8PE\xB6\x81\x81X]\x97\x81j\x91hq\xCA\x8D< \x8C\x16\xD8|\xFDG\x91\x15\x90\x15\x16\x15a\x06xWPPPV[\x82Q` \x84\x01Q\x82`\x03\x84\x85\x85\x86\t\x85\t\x08\x83\x82\x83\t\x14\x83\x82\x10\x84\x84\x10\x16\x16\x93PPP\x81a\x06\xE8W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x17`$\x82\x01R\x7FBn254: invalid G1 point\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x04>V[PPPV[a\x07-`@Q\x80a\x01\0\x01`@R\x80_\x81R` \x01_\x81R` \x01_\x81R` \x01_\x81R` \x01_\x81R` \x01_\x81R` \x01_\x81R` \x01_\x81RP\x90V[__Q` a&G_9_Q\x90_R\x90P`@Q` \x81\x01_\x81R`\xFE`\xE0\x1B\x81R\x86Q`\xC0\x1B`\x04\x82\x01R` \x87\x01Q`\xC0\x1B`\x0C\x82\x01Ra\x02\x80\x87\x01Q` \x82\x01Ra\x02\xA0\x87\x01Q`@\x82\x01R`\x01``\x82\x01R\x7F/\x8D\xD1\xF1\xA7X<B\xC4\xE1*D\xE1\x10@Ls\xCAl\x94\x81?\x85\x83]\xA4\xFB{\xB10\x1DJ`\x80\x82\x01R\x7F\x1E\xE6x\xA0G\nu\xA6\xEA\xA8\xFE\x83p`I\x8B\xA8(\xA3p;1\x1D\x0Fw\xF0\x10BJ\xFE\xB0%`\xA0\x82\x01R\x7F B\xA5\x87\xA9\x0C\x18{\n\x08|\x03\xE2\x9C\x96\x8B\x95\x0B\x1D\xB2m\\\x82\xD6f\x90Zh\x95y\x0C\n`\xC0\x82\x01R\x7F.+\x91Ea\x03i\x8A\xDFW\xB7\x99\x96\x9D\xEA\x1C\x8Fs\x9D\xA5\xD8\xD4\r\xD3\xEB\x92\"\xDB|\x81\xE8\x81`\xE0\x82\x01R`\xE0\x87\x01Q\x80Qa\x01\0\x83\x01R` \x81\x01Qa\x01 \x83\x01RPa\x01\0\x87\x01Q\x80Qa\x01@\x83\x01R` \x81\x01Qa\x01`\x83\x01RPa\x01 \x87\x01Q\x80Qa\x01\x80\x83\x01R` \x81\x01Qa\x01\xA0\x83\x01RPa\x01@\x87\x01Q\x80Qa\x01\xC0\x83\x01R` \x81\x01Qa\x01\xE0\x83\x01RPa\x01`\x87\x01Q\x80Qa\x02\0\x83\x01R` \x81\x01Qa\x02 \x83\x01RPa\x01\x80\x87\x01Q\x80Qa\x02@\x83\x01R` \x81\x01Qa\x02`\x83\x01RPa\x01\xE0\x87\x01Q\x80Qa\x02\x80\x83\x01R` \x81\x01Qa\x02\xA0\x83\x01RPa\x02\0\x87\x01Q\x80Qa\x02\xC0\x83\x01R` \x81\x01Qa\x02\xE0\x83\x01RPa\x02 \x87\x01Q\x80Qa\x03\0\x83\x01R` \x81\x01Qa\x03 \x83\x01RPa\x02@\x87\x01Q\x80Qa\x03@\x83\x01R` \x81\x01Qa\x03`\x83\x01RPa\x01\xA0\x87\x01Q\x80Qa\x03\x80\x83\x01R` \x81\x01Qa\x03\xA0\x83\x01RPa\x01\xC0\x87\x01Q\x80Qa\x03\xC0\x83\x01R` \x81\x01Qa\x03\xE0\x83\x01RPa\x02`\x87\x01Q\x80Qa\x04\0\x83\x01R` \x81\x01Qa\x04 \x83\x01RP`@\x87\x01Q\x80Qa\x04@\x83\x01R` \x81\x01Qa\x04`\x83\x01RP``\x87\x01Q\x80Qa\x04\x80\x83\x01R` \x81\x01Qa\x04\xA0\x83\x01RP`\x80\x87\x01Q\x80Qa\x04\xC0\x83\x01R` \x81\x01Qa\x04\xE0\x83\x01RP`\xA0\x87\x01Q\x80Qa\x05\0\x83\x01R` \x81\x01Qa\x05 \x83\x01RP`\xC0\x87\x01Q\x80Qa\x05@\x83\x01R` \x81\x01Qa\x05`\x83\x01RP\x85Qa\x05\x80\x82\x01R` \x86\x01Qa\x05\xA0\x82\x01R`@\x86\x01Qa\x05\xC0\x82\x01R``\x86\x01Qa\x05\xE0\x82\x01R`\x80\x86\x01Qa\x06\0\x82\x01R`\xA0\x86\x01Qa\x06 \x82\x01R`\xC0\x86\x01Qa\x06@\x82\x01R`\xE0\x86\x01Qa\x06`\x82\x01Ra\x01\0\x86\x01Qa\x06\x80\x82\x01Ra\x01 \x86\x01Qa\x06\xA0\x82\x01Ra\x01@\x86\x01Qa\x06\xC0\x82\x01R\x84Q\x80Qa\x06\xE0\x83\x01R` \x81\x01Qa\x07\0\x83\x01RP` \x85\x01Q\x80Qa\x07 \x83\x01R` \x81\x01Qa\x07@\x83\x01RP`@\x85\x01Q\x80Qa\x07`\x83\x01R` \x81\x01Qa\x07\x80\x83\x01RP``\x85\x01Q\x80Qa\x07\xA0\x83\x01R` \x81\x01Qa\x07\xC0\x83\x01RP`\x80\x85\x01Q\x80Qa\x07\xE0\x83\x01R` \x81\x01Qa\x08\0\x83\x01RP_\x82Ra\x08@\x82 \x82R\x82\x82Q\x06``\x85\x01R` \x82 \x82R\x82\x82Q\x06`\x80\x85\x01R`\xA0\x85\x01Q\x80Q\x82R` \x81\x01Q` \x83\x01RP``\x82 \x80\x83R\x83\x81\x06\x85R\x83\x81\x82\t\x84\x82\x82\t\x91P\x80` \x87\x01RP\x80`@\x86\x01RP`\xC0\x85\x01Q\x80Q\x82R` \x81\x01Q` \x83\x01RP`\xE0\x85\x01Q\x80Q`@\x83\x01R` \x81\x01Q``\x83\x01RPa\x01\0\x85\x01Q\x80Q`\x80\x83\x01R` \x81\x01Q`\xA0\x83\x01RPa\x01 \x85\x01Q\x80Q`\xC0\x83\x01R` \x81\x01Q`\xE0\x83\x01RPa\x01@\x85\x01Q\x80Qa\x01\0\x83\x01R` \x81\x01Qa\x01 \x83\x01RPa\x01`\x82 \x82R\x82\x82Q\x06`\xA0\x85\x01Ra\x01\xA0\x85\x01Q\x81Ra\x01\xC0\x85\x01Q` \x82\x01Ra\x01\xE0\x85\x01Q`@\x82\x01Ra\x02\0\x85\x01Q``\x82\x01Ra\x02 \x85\x01Q`\x80\x82\x01Ra\x02@\x85\x01Q`\xA0\x82\x01Ra\x02`\x85\x01Q`\xC0\x82\x01Ra\x02\x80\x85\x01Q`\xE0\x82\x01Ra\x02\xA0\x85\x01Qa\x01\0\x82\x01Ra\x02\xC0\x85\x01Qa\x01 \x82\x01Ra\x01`\x82 \x82R\x82\x82Q\x06`\xC0\x85\x01Ra\x01`\x85\x01Q\x80Q\x82R` \x81\x01Q` \x83\x01RPa\x01\x80\x85\x01Q\x80Q`@\x83\x01R` \x81\x01Q``\x83\x01RPP`\xA0\x81 \x82\x81\x06`\xE0\x85\x01RPPP\x93\x92PPPV[a\x0C\x84a \xE1V[\x81b\x01\0\0\x03a\x0E[W`@Q\x80``\x01`@R\x80`\x10\x81R` \x01\x7F0d\x1E\x0E\x92\xBE\xBE\xF8\x18&\x8Df;\xCA\xD6\xDB\xCF\xD6\xC0\x14\x91p\xF6\xD7\xD3P\xB1\xB1\xFAl\x10\x01\x81R` \x01`@Q\x80a\x01`\x01`@R\x80`\x01\x81R` \x01~\xEE\xB2\xCBY\x81\xEDEd\x9A\xBE\xBD\xE0\x81\xDC\xFF\x16\xC8`\x1D\xE44~}\xD1b\x8B\xA2\xDA\xACC\xB7\x81R` \x01\x7F-\x1B\xA6oYA\xDC\x91\x01qq\xFAi\xEC+\xD0\x02**-A\x15\xA0\t\xA94X\xFDN&\xEC\xFB\x81R` \x01\x7F\x08h\x12\xA0\n\xC4>\xA8\x01f\x9Cd\x01q <A\xA4\x96g\x1B\xFB\xC0e\xAC\x8D\xB2MR\xCF1\xE5\x81R` \x01\x7F-\x96VQ\xCD\xD9\xE4\x81\x1FNQ\xB8\r\xDC\xA8\xA8\xB4\xA9>\xE1t \xAA\xE6\xAD\xAA\x01\xC2a|n\x85\x81R` \x01\x7F\x12YzV\xC2\xE48b\x0B\x90A\xB9\x89\x92\xAE\rNp[x\0W\xBFwf\xA2v|\xEC\xE1n\x1D\x81R` \x01\x7F\x02\xD9A\x17\xCD\x17\xBC\xF1)\x0F\xD6|\x01\x15]\xD4\x08\x07\x85}\xFFJZ\x0BM\xC6{\xEF\xA8\xAA4\xFD\x81R` \x01\x7F\x15\xEE$u\xBE\xE5\x17\xC4\xEE\x05\xE5\x1F\xA1\xEEs\x12\xA87:\x0B\x13\xDB\x8CQ\xBA\xF0L\xB2\xE9\x9B\xD2\xBD\x81R` \x01~o\xABI\xB8i\xAEb\0\x1D\xEA\xC8x\xB2f{\xD3\x1B\xF3\xE2\x8E:-vJ\xA4\x9B\x8D\x9B\xBD\xD3\x10\x81R` \x01\x7F.\x85k\xF6\xD07p\x8F\xFAL\x06\xD4\xD8\x82\x0FE\xCC\xAD\xCE\x9CZm\x17\x8C\xBDW?\x82\xE0\xF9p\x11\x81R` \x01\x7F\x14\x07\xEE\xE3Y\x93\xF2\xB1\xAD^\xC6\xD9\xB8\x95\x0C\xA3\xAF3\x13]\x06\x03\x7F\x87\x1C^3\xBFVm\xD7\xB4\x81RP\x81RP\x90P\x91\x90PV[\x81b\x10\0\0\x03a\x104W`@Q\x80``\x01`@R\x80`\x14\x81R` \x01\x7F0dKl\x9CJr\x16\x9EM\xAA1}%\xF0E\x12\xAE\x15\xC5;4\xE8\xF5\xAC\xD8\xE1U\xD0\xA6\xC1\x01\x81R` \x01`@Q\x80a\x01`\x01`@R\x80`\x01\x81R` \x01\x7F&\x12]\xA1\n\x0E\xD0c'P\x8A\xBA\x06\xD1\xE3\x03\xACaf2\xDB\xED4\x9FSB-\xA9S3xW\x81R` \x01\x7F\"`\xE7$\x84K\xCARQ\x82\x93S\x96\x8EI\x150RXA\x83WG:\\\x1DY\x7Fa?l\xBD\x81R` \x01\x7F \x87\xEA,\xD6d'\x86\x08\xFB\x0E\xBD\xB8 \x90\x7FY\x85\x02\xC8\x1Bf\x90\xC1\x85\xE2\xBF\x15\xCB\x93_B\x81R` \x01\x7F\x19\xDD\xBC\xAF:\x8DF\xC1\\\x01v\xFB\xB5\xB9^M\xC5p\x88\xFF\x13\xF4\xD1\xBD\x84\xC6\xBF\xA5}\xCD\xC0\xE0\x81R` \x01\x7F\x05\xA2\xC8\\\xFCY\x17\x89`\\\xAE\x81\x8E7\xDDAa\xEE\xF9\xAAfk\xECo\xE4(\x8D\t\xE6\xD24\x18\x81R` \x01\x7F\x11\xF7\x0ESc%\x8F\xF4\xF0\xD7\x16\xA6S\xE1\xDCA\xF1\xC6D\x84\xD7\xF4\xB6\xE2\x19\xD67v\x14\xA3\x90\\\x81R` \x01\x7F)\xE8AC\xF5\x87\rGv\xA9-\xF8\xDA\x8Cl\x93\x03\xD5\x90\x88\xF3{\xA8_@\xCFo\xD1Be\xB4\xBC\x81R` \x01\x7F\x1B\xF8-\xEB\xA7\xD7I\x02\xC3p\x8C\xC6\xE7\x0Ea\xF3\x05\x12\xEC\xA9VU!\x0E'nXX\xCE\x8FX\xE5\x81R` \x01\x7F\"\xB9K.+\0C\xD0Nf-^\xC0\x18\xEA\x1C\x8A\x99\xA2:b\xC9\xEBF\xF01\x8Fj\x19I\x85\xF0\x81R` \x01\x7F)\x96\x9D\x8DSc\xBE\xF1\x10\x1Ah\xE4F\xA1N\x1D\xA7\xBA\x92\x94\xE1B\xA1F\xA9\x80\xFD\xDBMMA\xA5\x81RP\x81RP\x90P\x91\x90PV[\x81` \x03a\x12\nW`@Q\x80``\x01`@R\x80`\x05\x81R` \x01\x7F.\xE1+\xFFJ(\x13(j\x8D\xC3\x88\xCDuM\x9A>\xF2I\x065\xEB\xA5\x0C\xB9\xC2\xE5\xE7P\x80\0\x01\x81R` \x01`@Q\x80a\x01`\x01`@R\x80`\x01\x81R` \x01\x7F\t\xC52\xC60k\x93\xD2\x96x \rG\xC0\xB2\xA9\x9C\x18\xD5\x1B\x83\x8E\xEB\x1D>\xEDLS;\xB5\x12\xD0\x81R` \x01\x7F!\x08,\xA2\x16\xCB\xBFN\x1CnOE\x94\xDDP\x8C\x99m\xFB\xE1\x17N\xFB\x98\xB1\x15\t\xC6\xE3\x06F\x0B\x81R` \x01\x7F\x12w\xAEd\x15\xF0\xEF\x18\xF2\xBA_\xB1b\xC3\x9E\xB71\x1F8n-&\xD6D\x01\xF4\xA2]\xA7|%;\x81R` \x01\x7F+3}\xE1\xC8\xC1O\"\xEC\x9B\x9E/\x96\xAF\xEF6Rbsf\xF8\x17\n\n\x94\x8D\xADJ\xC1\xBD^\x80\x81R` \x01\x7F/\xBDM\xD2\x97k\xE5]\x1A\x16:\xA9\x82\x0F\xB8\x8D\xFA\xC5\xDD\xCEw\xE1\x87.\x90c '2z^\xBE\x81R` \x01\x7F\x10z\xABI\xE6Zg\xF9\xDA\x9C\xD2\xAB\xF7\x8B\xE3\x8B\xD9\xDC\x1D]\xB3\x9F\x81\xDE6\xBC\xFA[K\x03\x90C\x81R` \x01~\xE1Kcd\xA4~\x9CB\x84\xA9\xF8\n_\xC4\x1C\xD2\x12\xB0\xD4\xDB\xF8\xA5p7p\xA4\n\x9A49\x90\x81R` \x01\x7F0dNr\xE11\xA0)\x04\x8Bn\x19?\xD8A\x04\\\xEA$\xF6\xFDsk\xEC#\x12\x04p\x8Fp66\x81R` \x01\x7F\"9\x9C4\x13\x9B\xFF\xAD\xA8\xDE\x04j\xACP\xC9b\x8E5\x17\xA3\xA4RySd\xE7w\xCDe\xBB\x9FH\x81R` \x01\x7F\"\x90\xEE1\xC4\x82\xCF\x92\xB7\x9B\x19D\xDB\x1C\x01Gc^\x90\x04\xDB\x8C;\x9D\x13dK\xEF1\xEC;\xD3\x81RP\x81RP\x90P\x91\x90PV[`@Qc\xE2\xEF\t\xE5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x12D`@Q\x80``\x01`@R\x80_\x81R` \x01_\x81R` \x01_\x81RP\x90V[a\x12N\x84\x84a\x18GV[\x80\x82Ra\x12^\x90\x85\x90\x85\x90a\x18\x98V[` \x82\x01R\x80Qa\x12t\x90\x85\x90\x84\x90\x86\x90a\x19\x07V[`@\x82\x01R\x93\x92PPPV[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01Ra\x12\x9Ba!\x05V[\x83Q\x81R` \x80\x85\x01Q\x90\x82\x01R`@\x81\x01\x83\x90R_``\x83`\x80\x84`\x07a\x07\xD0Z\x03\xFA\x90P\x80\x80a\x12\xCBW__\xFD[P\x80a\x13\x19W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x19`$\x82\x01R\x7FBn254: scalar mul failed!\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x04>V[PP\x92\x91PPV[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01Ra\x13<a!#V[\x83Q\x81R` \x80\x85\x01Q\x81\x83\x01R\x83Q`@\x83\x01R\x83\x01Q``\x80\x83\x01\x91\x90\x91R_\x90\x83`\xC0\x84`\x06a\x07\xD0Z\x03\xFA\x90P\x80\x80a\x13wW__\xFD[P\x80a\x13\x19W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1D`$\x82\x01R\x7FBn254: group addition failed!\0\0\0`D\x82\x01R`d\x01a\x04>V[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R_a\x13\xF8\x87\x87\x87\x87a\x1AVV[\x90P_Q` a&G_9_Q\x90_R_a\x14\x14\x88\x87\x89a\x1F V[\x90Pa\x14 \x81\x83a%\xF4V[`\xC0\x89\x01Qa\x01\xA0\x88\x01Q\x91\x92P\x90\x81\x90\x84\x90\x81\x90\x83\t\x84\x08\x92Pa\x14L\x85a\x04\xEA\x8A_\x01Q\x84a\x12\x80V[\x95P\x83\x82\x82\t\x90P\x83\x84a\x01\xC0\x8A\x01Q\x83\t\x84\x08\x92Pa\x14t\x86a\x04\xEA\x8A` \x01Q\x84a\x12\x80V[\x95P\x83\x82\x82\t\x90P\x83\x84a\x01\xE0\x8A\x01Q\x83\t\x84\x08\x92Pa\x14\x9C\x86a\x04\xEA\x8A`@\x01Q\x84a\x12\x80V[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02\0\x8A\x01Q\x83\t\x84\x08\x92Pa\x14\xC4\x86a\x04\xEA\x8A``\x01Q\x84a\x12\x80V[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02 \x8A\x01Q\x83\t\x84\x08\x92Pa\x14\xEC\x86a\x04\xEA\x8A`\x80\x01Q\x84a\x12\x80V[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02@\x8A\x01Q\x83\t\x84\x08\x92Pa\x15\x14\x86a\x04\xEA\x8D`@\x01Q\x84a\x12\x80V[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02`\x8A\x01Q\x83\t\x84\x08\x92Pa\x15<\x86a\x04\xEA\x8D``\x01Q\x84a\x12\x80V[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02\x80\x8A\x01Q\x83\t\x84\x08\x92Pa\x15d\x86a\x04\xEA\x8D`\x80\x01Q\x84a\x12\x80V[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02\xA0\x8A\x01Q\x83\t\x84\x08\x92Pa\x15\x8C\x86a\x04\xEA\x8D`\xA0\x01Q\x84a\x12\x80V[\x95P_\x8A`\xE0\x01Q\x90P\x84\x85a\x02\xC0\x8B\x01Q\x83\t\x85\x08\x93Pa\x15\xB6\x87a\x04\xEA\x8B`\xA0\x01Q\x84a\x12\x80V[\x96Pa\x15\xECa\x15\xE6`@\x80Q\x80\x82\x01\x82R_\x80\x82R` \x91\x82\x01R\x81Q\x80\x83\x01\x90\x92R`\x01\x82R`\x02\x90\x82\x01R\x90V[\x85a\x12\x80V[\x97PPPPPPP\x94P\x94\x92PPPV[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R\x81Q` \x83\x01Q\x15\x90\x15\x16\x15a\x16$WP\x90V[`@Q\x80`@\x01`@R\x80\x83_\x01Q\x81R` \x01\x7F0dNr\xE11\xA0)\xB8PE\xB6\x81\x81X]\x97\x81j\x91hq\xCA\x8D< \x8C\x16\xD8|\xFDG\x84` \x01Qa\x16h\x91\x90a&'V[a\x16\x92\x90\x7F0dNr\xE11\xA0)\xB8PE\xB6\x81\x81X]\x97\x81j\x91hq\xCA\x8D< \x8C\x16\xD8|\xFDGa%\xF4V[\x90R\x92\x91PPV[a\x16\xC1`@Q\x80`\x80\x01`@R\x80_\x81R` \x01_\x81R` \x01_\x81R` \x01_\x81RP\x90V[`@Q\x80`\x80\x01`@R\x80\x7F\x18\0\xDE\xEF\x12\x1F\x1EvBj\0f^\\DygC\"\xD4\xF7^\xDA\xDDF\xDE\xBD\\\xD9\x92\xF6\xED\x81R` \x01\x7F\x19\x8E\x93\x93\x92\rH:r`\xBF\xB71\xFB]%\xF1\xAAI35\xA9\xE7\x12\x97\xE4\x85\xB7\xAE\xF3\x12\xC2\x81R` \x01\x7F\x12\xC8^\xA5\xDB\x8Cm\xEBJ\xABq\x80\x8D\xCB@\x8F\xE3\xD1\xE7i\x0CC\xD3{L\xE6\xCC\x01f\xFA}\xAA\x81R` \x01\x7F\t\x06\x89\xD0X_\xF0u\xEC\x9E\x99\xADi\x0C3\x95\xBCK13p\xB3\x8E\xF3U\xAC\xDA\xDC\xD1\"\x97[\x81RP\x90P\x90V[___`@Q\x87Q\x81R` \x88\x01Q` \x82\x01R` \x87\x01Q`@\x82\x01R\x86Q``\x82\x01R``\x87\x01Q`\x80\x82\x01R`@\x87\x01Q`\xA0\x82\x01R\x85Q`\xC0\x82\x01R` \x86\x01Q`\xE0\x82\x01R` \x85\x01Qa\x01\0\x82\x01R\x84Qa\x01 \x82\x01R``\x85\x01Qa\x01@\x82\x01R`@\x85\x01Qa\x01`\x82\x01R` _a\x01\x80\x83`\x08Z\xFA\x91PP_Q\x91P\x80a\x189W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1C`$\x82\x01R\x7FBn254: Pairing check failed!\0\0\0\0`D\x82\x01R`d\x01a\x04>V[P\x15\x15\x90P[\x94\x93PPPPV[\x81Q_\x90_Q` a&G_9_Q\x90_R\x90\x83\x80\x15a\x18\x88W\x84\x93P_[\x82\x81\x10\x15a\x18|W\x83\x85\x86\t\x94P`\x01\x01a\x18fV[P`\x01\x84\x03\x93Pa\x18\x8FV[`\x01\x83\x03\x93P[PPP\x92\x91PPV[_\x82`\x01\x03a\x18\xA9WP`\x01a\x02\xA3V[\x81_\x03a\x18\xB7WP_a\x02\xA3V[` \x84\x01Q_Q` a&G_9_Q\x90_R\x90_\x90\x82\x81\x86\t\x90P\x85\x80\x15a\x18\xE5W`\x01\x87\x03\x92Pa\x18\xECV[`\x01\x84\x03\x92P[Pa\x18\xF6\x82a \x0BV[\x91P\x82\x82\x82\t\x97\x96PPPPPPPV[__Q` a&G_9_Q\x90_R\x82\x82\x03a\x19\x80W`\x01_[`\x0B\x81\x10\x15a\x19uW\x81\x86\x03a\x19RW\x86\x81`\x0B\x81\x10a\x19CWa\x19Ca%\xE0V[` \x02\x01Q\x93PPPPa\x18?V[\x82\x80a\x19`Wa\x19`a&\x13V[`@\x89\x01Q` \x01Q\x83\t\x91P`\x01\x01a\x19!V[P_\x92PPPa\x18?V[a\x19\x88a!AV[`@\x87\x01Q`\x01a\x01@\x83\x81\x01\x82\x81R\x92\x01\x90\x80[`\x0B\x81\x10\x15a\x19\xCAW` \x84\x03\x93P\x85\x86\x8A\x85Q\x89\x03\x08\x83\t\x80\x85R`\x1F\x19\x90\x93\x01\x92\x91P`\x01\x01a\x19\x9DV[PPPP___\x90P`\x01\x83\x89`@\x8C\x01Q_[`\x0B\x81\x10\x15a\x1A\x1EW\x88\x82Q\x8A\x85Q\x8C\x88Q\x8A\t\t\t\x89\x81\x88\x08\x96PP\x88\x89\x8D\x84Q\x8C\x03\x08\x86\t\x94P` \x93\x84\x01\x93\x92\x83\x01\x92\x91\x90\x91\x01\x90`\x01\x01a\x19\xDEV[PPPP\x80\x92PP_a\x1A0\x83a \x0BV[\x90P` \x8A\x01Q\x85\x81\x89\t\x96PP\x84\x81\x87\t\x95P\x84\x82\x87\t\x9A\x99PPPPPPPPPPV[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R______Q` a&G_9_Q\x90_R\x90P`\x80\x89\x01Q\x81` \x8A\x01Q` \x8C\x01Q\t\x95P\x89Q\x94P\x81`\xA0\x8B\x01Q``\x8C\x01Q\t\x93P\x81a\x01\xA0\x89\x01Q\x85\x08\x92P\x81\x81\x84\x08\x92P\x81\x85\x84\t\x94P\x81\x7F/\x8D\xD1\xF1\xA7X<B\xC4\xE1*D\xE1\x10@Ls\xCAl\x94\x81?\x85\x83]\xA4\xFB{\xB10\x1DJ\x85\t\x92P\x81a\x01\xC0\x89\x01Q\x84\x08\x92P\x81\x81\x84\x08\x92P\x81\x85\x84\t\x94P\x81\x7F\x1E\xE6x\xA0G\nu\xA6\xEA\xA8\xFE\x83p`I\x8B\xA8(\xA3p;1\x1D\x0Fw\xF0\x10BJ\xFE\xB0%\x85\t\x92P\x81a\x01\xE0\x89\x01Q\x84\x08\x92P\x81\x81\x84\x08\x92P\x81\x85\x84\t\x94P\x81\x7F B\xA5\x87\xA9\x0C\x18{\n\x08|\x03\xE2\x9C\x96\x8B\x95\x0B\x1D\xB2m\\\x82\xD6f\x90Zh\x95y\x0C\n\x85\t\x92P\x81a\x02\0\x89\x01Q\x84\x08\x92P\x81\x81\x84\x08\x92P\x81\x85\x84\t\x94P\x81\x7F.+\x91Ea\x03i\x8A\xDFW\xB7\x99\x96\x9D\xEA\x1C\x8Fs\x9D\xA5\xD8\xD4\r\xD3\xEB\x92\"\xDB|\x81\xE8\x81\x85\t\x92P\x81a\x02 \x89\x01Q\x84\x08\x92P\x81\x81\x84\x08\x92PP\x80\x84\x83\t\x93P\x80\x84\x86\x08\x94Pa\x1B\xC3\x87`\xA0\x01Q\x86a\x12\x80V[\x95P\x88Q``\x8A\x01Q`\x80\x8B\x01Q\x83\x82\x84\t\x97P\x83a\x02\xC0\x8B\x01Q\x89\t\x97P\x83a\x02@\x8B\x01Q\x83\t\x95P\x83a\x01\xA0\x8B\x01Q\x87\x08\x95P\x83\x81\x87\x08\x95P\x83\x86\x89\t\x97P\x83a\x02`\x8B\x01Q\x83\t\x95P\x83a\x01\xC0\x8B\x01Q\x87\x08\x95P\x83\x81\x87\x08\x95P\x83\x86\x89\t\x97P\x83a\x02\x80\x8B\x01Q\x83\t\x95P\x83a\x01\xE0\x8B\x01Q\x87\x08\x95P\x83\x81\x87\x08\x95P\x83\x86\x89\t\x97P\x83a\x02\xA0\x8B\x01Q\x83\t\x95P\x83a\x02\0\x8B\x01Q\x87\x08\x95P\x83\x81\x87\x08\x95PPPP\x80\x83\x86\t\x94Pa\x1C\x8A\x86a\x04\xEA\x8C`\xC0\x01Q\x88\x85a\x1C\x85\x91\x90a%\xF4V[a\x12\x80V[\x95Pa\x1C\xA3\x86a\x04\xEA\x8C`\xE0\x01Q\x8Aa\x01\xA0\x01Qa\x12\x80V[\x95Pa\x1C\xBD\x86a\x04\xEA\x8Ca\x01\0\x01Q\x8Aa\x01\xC0\x01Qa\x12\x80V[\x95Pa\x1C\xD7\x86a\x04\xEA\x8Ca\x01 \x01Q\x8Aa\x01\xE0\x01Qa\x12\x80V[\x95Pa\x1C\xF1\x86a\x04\xEA\x8Ca\x01@\x01Q\x8Aa\x02\0\x01Qa\x12\x80V[\x95P\x80a\x01\xC0\x88\x01Qa\x01\xA0\x89\x01Q\t\x92Pa\x1D\x16\x86a\x04\xEA\x8Ca\x01`\x01Q\x86a\x12\x80V[\x95P\x80a\x02\0\x88\x01Qa\x01\xE0\x89\x01Q\t\x92Pa\x1D;\x86a\x04\xEA\x8Ca\x01\x80\x01Q\x86a\x12\x80V[\x95Pa\x01\xA0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x1Dj\x86a\x04\xEA\x8Ca\x01\xE0\x01Q\x86a\x12\x80V[\x95Pa\x01\xC0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x1D\x99\x86a\x04\xEA\x8Ca\x02\0\x01Q\x86a\x12\x80V[\x95Pa\x01\xE0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x1D\xC8\x86a\x04\xEA\x8Ca\x02 \x01Q\x86a\x12\x80V[\x95Pa\x02\0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x1D\xF7\x86a\x04\xEA\x8Ca\x02@\x01Q\x86a\x12\x80V[\x95Pa\x1E\x14\x86a\x04\xEA\x8Ca\x01\xA0\x01Qa\x1C\x85\x8Ba\x02 \x01Qa \xACV[\x95Pa\x1E%\x86\x8Ba\x01\xC0\x01Qa\x13!V[\x95P\x80a\x01\xC0\x88\x01Qa\x01\xA0\x89\x01Q\t\x92P\x80a\x01\xE0\x88\x01Q\x84\t\x92P\x80a\x02\0\x88\x01Q\x84\t\x92P\x80a\x02 \x88\x01Q\x84\t\x92Pa\x1Ek\x86a\x04\xEA\x8Ca\x02`\x01Q\x86a\x12\x80V[\x95Pa\x1Ey\x88_\x01Qa \xACV[\x94Pa\x1E\x8D\x86a\x04\xEA\x89`\xC0\x01Q\x88a\x12\x80V[\x95P\x80`\x01\x89Q\x08`\xA0\x8A\x01Q\x90\x93P\x81\x90\x80\t\x91P\x80\x82\x84\t\x92P\x80\x83\x86\t\x94Pa\x1E\xC1\x86a\x04\xEA\x89`\xE0\x01Q\x88a\x12\x80V[\x95P\x80\x83\x86\t\x94Pa\x1E\xDC\x86a\x04\xEA\x89a\x01\0\x01Q\x88a\x12\x80V[\x95P\x80\x83\x86\t\x94Pa\x1E\xF7\x86a\x04\xEA\x89a\x01 \x01Q\x88a\x12\x80V[\x95P\x80\x83\x86\t\x94Pa\x1F\x12\x86a\x04\xEA\x89a\x01@\x01Q\x88a\x12\x80V[\x9A\x99PPPPPPPPPPV[___Q` a&G_9_Q\x90_R\x90P_\x83` \x01Q\x90P_\x84`@\x01Q\x90P_`\x01\x90P``\x88\x01Q`\x80\x89\x01Qa\x01\xA0\x89\x01Qa\x02@\x8A\x01Q\x87\x88\x89\x83\x87\t\x8A\x86\x86\x08\x08\x86\t\x94PPPa\x01\xC0\x89\x01Qa\x02`\x8A\x01Q\x87\x88\x89\x83\x87\t\x8A\x86\x86\x08\x08\x86\t\x94PPPa\x01\xE0\x89\x01Qa\x02\x80\x8A\x01Q\x87\x88\x89\x83\x87\t\x8A\x86\x86\x08\x08\x86\t\x94PPPa\x02\0\x89\x01Qa\x02\xA0\x8A\x01Q\x87\x88\x89\x83\x87\t\x8A\x86\x86\x08\x08\x86\t\x94PPPa\x02 \x89\x01Q\x91Pa\x02\xC0\x89\x01Q\x86\x87\x82\x89\x85\x87\x08\t\x85\t\x93PPPP\x87Q` \x89\x01Q\x85\x86\x86\x83\t\x87\x03\x85\x08\x96PP\x84\x85\x83\x83\t\x86\x03\x87\x08\x99\x98PPPPPPPPPV[____Q` a&G_9_Q\x90_R\x90P`@Q` \x81R` \x80\x82\x01R` `@\x82\x01R\x84``\x82\x01R`\x02\x82\x03`\x80\x82\x01R\x81`\xA0\x82\x01R` _`\xC0\x83`\x05Z\xFA\x92PP_Q\x92P\x81a \xA5W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1D`$\x82\x01R\x7FBn254: pow precompile failed!\0\0\0`D\x82\x01R`d\x01a\x04>V[PP\x91\x90PV[_a \xC4_Q` a&G_9_Q\x90_R\x83a&'V[a \xDB\x90_Q` a&G_9_Q\x90_Ra%\xF4V[\x92\x91PPV[`@Q\x80``\x01`@R\x80_\x81R` \x01_\x81R` \x01a!\0a!AV[\x90R\x90V[`@Q\x80``\x01`@R\x80`\x03\x90` \x82\x02\x806\x837P\x91\x92\x91PPV[`@Q\x80`\x80\x01`@R\x80`\x04\x90` \x82\x02\x806\x837P\x91\x92\x91PPV[`@Q\x80a\x01`\x01`@R\x80`\x0B\x90` \x82\x02\x806\x837P\x91\x92\x91PPV[cNH{q`\xE0\x1B_R`A`\x04R`$_\xFD[`@Qa\x02\xE0\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a!\x98Wa!\x98a!`V[`@R\x90V[`@Qa\x02\xC0\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a!\x98Wa!\x98a!`V[_`@\x82\x84\x03\x12\x15a!\xD2W__\xFD[`@\x80Q\x90\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a!\xF5Wa!\xF5a!`V[`@R\x825\x81R` \x92\x83\x015\x92\x81\x01\x92\x90\x92RP\x91\x90PV[_\x82`\x1F\x83\x01\x12a\"\x1EW__\xFD[`@Qa\x01`\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\"BWa\"Ba!`V[`@R\x80a\x01`\x84\x01\x85\x81\x11\x15a\"WW__\xFD[\x84[\x81\x81\x10\x15a\"qW\x805\x83R` \x92\x83\x01\x92\x01a\"YV[P\x91\x95\x94PPPPPV[_a\x04\x80\x82\x84\x03\x12\x15a\"\x8DW__\xFD[a\"\x95a!tV[\x90Pa\"\xA1\x83\x83a!\xC2V[\x81Ra\"\xB0\x83`@\x84\x01a!\xC2V[` \x82\x01Ra\"\xC2\x83`\x80\x84\x01a!\xC2V[`@\x82\x01Ra\"\xD4\x83`\xC0\x84\x01a!\xC2V[``\x82\x01Ra\"\xE7\x83a\x01\0\x84\x01a!\xC2V[`\x80\x82\x01Ra\"\xFA\x83a\x01@\x84\x01a!\xC2V[`\xA0\x82\x01Ra#\r\x83a\x01\x80\x84\x01a!\xC2V[`\xC0\x82\x01Ra# \x83a\x01\xC0\x84\x01a!\xC2V[`\xE0\x82\x01Ra#3\x83a\x02\0\x84\x01a!\xC2V[a\x01\0\x82\x01Ra#G\x83a\x02@\x84\x01a!\xC2V[a\x01 \x82\x01Ra#[\x83a\x02\x80\x84\x01a!\xC2V[a\x01@\x82\x01Ra#o\x83a\x02\xC0\x84\x01a!\xC2V[a\x01`\x82\x01Ra#\x83\x83a\x03\0\x84\x01a!\xC2V[a\x01\x80\x82\x01Ra\x03@\x82\x015a\x01\xA0\x82\x01Ra\x03`\x82\x015a\x01\xC0\x82\x01Ra\x03\x80\x82\x015a\x01\xE0\x82\x01Ra\x03\xA0\x82\x015a\x02\0\x82\x01Ra\x03\xC0\x82\x015a\x02 \x82\x01Ra\x03\xE0\x82\x015a\x02@\x82\x01Ra\x04\0\x82\x015a\x02`\x82\x01Ra\x04 \x82\x015a\x02\x80\x82\x01Ra\x04@\x82\x015a\x02\xA0\x82\x01Ra\x04`\x90\x91\x015a\x02\xC0\x82\x01R\x91\x90PV[___\x83\x85\x03a\n\xE0\x81\x12\x15a$\x1BW__\xFD[a\x05\0\x81\x12\x15a$)W__\xFD[Pa$2a!\x9EV[\x845\x81R` \x80\x86\x015\x90\x82\x01Ra$M\x86`@\x87\x01a!\xC2V[`@\x82\x01Ra$_\x86`\x80\x87\x01a!\xC2V[``\x82\x01Ra$q\x86`\xC0\x87\x01a!\xC2V[`\x80\x82\x01Ra$\x84\x86a\x01\0\x87\x01a!\xC2V[`\xA0\x82\x01Ra$\x97\x86a\x01@\x87\x01a!\xC2V[`\xC0\x82\x01Ra$\xAA\x86a\x01\x80\x87\x01a!\xC2V[`\xE0\x82\x01Ra$\xBD\x86a\x01\xC0\x87\x01a!\xC2V[a\x01\0\x82\x01Ra$\xD1\x86a\x02\0\x87\x01a!\xC2V[a\x01 \x82\x01Ra$\xE5\x86a\x02@\x87\x01a!\xC2V[a\x01@\x82\x01Ra$\xF9\x86a\x02\x80\x87\x01a!\xC2V[a\x01`\x82\x01Ra%\r\x86a\x02\xC0\x87\x01a!\xC2V[a\x01\x80\x82\x01Ra%!\x86a\x03\0\x87\x01a!\xC2V[a\x01\xA0\x82\x01Ra%5\x86a\x03@\x87\x01a!\xC2V[a\x01\xC0\x82\x01Ra%I\x86a\x03\x80\x87\x01a!\xC2V[a\x01\xE0\x82\x01Ra%]\x86a\x03\xC0\x87\x01a!\xC2V[a\x02\0\x82\x01Ra%q\x86a\x04\0\x87\x01a!\xC2V[a\x02 \x82\x01Ra%\x85\x86a\x04@\x87\x01a!\xC2V[a\x02@\x82\x01Ra%\x99\x86a\x04\x80\x87\x01a!\xC2V[a\x02`\x82\x01Ra\x04\xC0\x85\x015a\x02\x80\x82\x01Ra\x04\xE0\x85\x015a\x02\xA0\x82\x01R\x92Pa%\xC7\x85a\x05\0\x86\x01a\"\x0FV[\x91Pa%\xD7\x85a\x06`\x86\x01a\"|V[\x90P\x92P\x92P\x92V[cNH{q`\xE0\x1B_R`2`\x04R`$_\xFD[\x81\x81\x03\x81\x81\x11\x15a \xDBWcNH{q`\xE0\x1B_R`\x11`\x04R`$_\xFD[cNH{q`\xE0\x1B_R`\x12`\x04R`$_\xFD[_\x82a&AWcNH{q`\xE0\x1B_R`\x12`\x04R`$_\xFD[P\x06\x90V\xFE0dNr\xE11\xA0)\xB8PE\xB6\x81\x81X](3\xE8Hy\xB9p\x91C\xE1\xF5\x93\xF0\0\0\x01\xA1dsolcC\0\x08\x1C\0\n",
3072 );
3073 #[rustfmt::skip]
3079 #[allow(clippy::all)]
3080 pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
3081 b"s\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\x14`\x80`@R`\x046\x10a\0\x9BW_5`\xE0\x1C\x80c\xAF\x19k\xA2\x11a\0nW\x80c\xAF\x19k\xA2\x14a\x01NW\x80c\xDE$\xAC\x0F\x14a\x01uW\x80c\xE3Q-V\x14a\x01\x9CW\x80c\xF5\x14C&\x14a\x01\xC3W\x80c\xFC\x86`\xC7\x14a\x01\xEAW__\xFD[\x80c\x0CU\x1F?\x14a\0\x9FW\x80cKG4\xE3\x14a\0\xD9W\x80cZ\x14\xC0\xFE\x14a\x01\0W\x80c\x83LE*\x14a\x01'W[__\xFD[a\0\xC6\x7F\x1E\xE6x\xA0G\nu\xA6\xEA\xA8\xFE\x83p`I\x8B\xA8(\xA3p;1\x1D\x0Fw\xF0\x10BJ\xFE\xB0%\x81V[`@Q\x90\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\0\xC6\x7F\"\xFE\xBD\xA3\xC0\xC0c*VG[B\x14\xE5a^\x11\xE6\xDD?\x96\xE6\xCE\xA2\x85J\x87\xD4\xDA\xCC^U\x81V[a\0\xC6\x7F B\xA5\x87\xA9\x0C\x18{\n\x08|\x03\xE2\x9C\x96\x8B\x95\x0B\x1D\xB2m\\\x82\xD6f\x90Zh\x95y\x0C\n\x81V[a\0\xC6\x7F&\x0E\x01\xB2Q\xF6\xF1\xC7\xE7\xFFNX\x07\x91\xDE\xE8\xEAQ\xD8z5\x8E\x03\x8BN\xFE0\xFA\xC0\x93\x83\xC1\x81V[a\0\xC6\x7F\x01\x18\xC4\xD5\xB87\xBC\xC2\xBC\x89\xB5\xB3\x98\xB5\x97N\x9FYD\x07;2\x07\x8B~#\x1F\xEC\x93\x88\x83\xB0\x81V[a\0\xC6\x7F.+\x91Ea\x03i\x8A\xDFW\xB7\x99\x96\x9D\xEA\x1C\x8Fs\x9D\xA5\xD8\xD4\r\xD3\xEB\x92\"\xDB|\x81\xE8\x81\x81V[a\0\xC6\x7F/\x8D\xD1\xF1\xA7X<B\xC4\xE1*D\xE1\x10@Ls\xCAl\x94\x81?\x85\x83]\xA4\xFB{\xB10\x1DJ\x81V[a\0\xC6\x7F\x04\xFCci\xF7\x11\x0F\xE3\xD2QV\xC1\xBB\x9Ar\x85\x9C\xF2\xA0FA\xF9\x9B\xA4\xEEA<\x80\xDAj_\xE4\x81V[a\x01\xFDa\x01\xF86`\x04a$\x07V[a\x02\rV[`@Q\x90\x15\x15\x81R` \x01a\0\xD0V[_a\x02\x17\x82a\x02\xAAV[a\x02'\x83_[` \x02\x01Qa\x03\xE5V[a\x022\x83`\x01a\x02\x1DV[a\x02=\x83`\x02a\x02\x1DV[a\x02H\x83`\x03a\x02\x1DV[a\x02S\x83`\x04a\x02\x1DV[a\x02^\x83`\x05a\x02\x1DV[a\x02i\x83`\x06a\x02\x1DV[a\x02t\x83`\x07a\x02\x1DV[a\x02\x7F\x83`\x08a\x02\x1DV[a\x02\x8A\x83`\ta\x02\x1DV[a\x02\x95\x83`\na\x02\x1DV[a\x02\xA0\x84\x84\x84a\x04KV[\x90P[\x93\x92PPPV[\x80Qa\x02\xB5\x90a\x06?V[a\x02\xC2\x81` \x01Qa\x06?V[a\x02\xCF\x81`@\x01Qa\x06?V[a\x02\xDC\x81``\x01Qa\x06?V[a\x02\xE9\x81`\x80\x01Qa\x06?V[a\x02\xF6\x81`\xA0\x01Qa\x06?V[a\x03\x03\x81`\xC0\x01Qa\x06?V[a\x03\x10\x81`\xE0\x01Qa\x06?V[a\x03\x1E\x81a\x01\0\x01Qa\x06?V[a\x03,\x81a\x01 \x01Qa\x06?V[a\x03:\x81a\x01@\x01Qa\x06?V[a\x03H\x81a\x01`\x01Qa\x06?V[a\x03V\x81a\x01\x80\x01Qa\x06?V[a\x03d\x81a\x01\xA0\x01Qa\x03\xE5V[a\x03r\x81a\x01\xC0\x01Qa\x03\xE5V[a\x03\x80\x81a\x01\xE0\x01Qa\x03\xE5V[a\x03\x8E\x81a\x02\0\x01Qa\x03\xE5V[a\x03\x9C\x81a\x02 \x01Qa\x03\xE5V[a\x03\xAA\x81a\x02@\x01Qa\x03\xE5V[a\x03\xB8\x81a\x02`\x01Qa\x03\xE5V[a\x03\xC6\x81a\x02\x80\x01Qa\x03\xE5V[a\x03\xD4\x81a\x02\xA0\x01Qa\x03\xE5V[a\x03\xE2\x81a\x02\xC0\x01Qa\x03\xE5V[PV[_Q` a&G_9_Q\x90_R\x81\x10\x80a\x04GW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1B`$\x82\x01R\x7FBn254: invalid scalar field\0\0\0\0\0`D\x82\x01R`d\x01[`@Q\x80\x91\x03\x90\xFD[PPV[_\x83` \x01Q`\x0B\x14a\x04qW`@Qc \xFA\x9D\x89`\xE1\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[_a\x04}\x85\x85\x85a\x06\xEDV[\x90P_a\x04\x8C\x86_\x01Qa\x0C|V[\x90P_a\x04\x9E\x82\x84`\xA0\x01Q\x88a\x12#V[\x90Pa\x04\xBB`@Q\x80`@\x01`@R\x80_\x81R` \x01_\x81RP\x90V[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01Ra\x04\xEF\x87a\x01`\x01Qa\x04\xEA\x89a\x01\x80\x01Q\x88`\xE0\x01Qa\x12\x80V[a\x13!V[\x91P__a\x04\xFF\x8B\x88\x87\x8Ca\x13\xC5V[\x91P\x91Pa\x05\x10\x81a\x04\xEA\x84a\x15\xFDV[\x92Pa\x05)\x83a\x04\xEA\x8Ba\x01`\x01Q\x8A`\xA0\x01Qa\x12\x80V[`\xA0\x88\x01Q`@\x88\x01Q` \x01Q\x91\x94P_Q` a&G_9_Q\x90_R\x91\x82\x90\x82\t\x90P\x81`\xE0\x8A\x01Q\x82\t\x90Pa\x05l\x85a\x04\xEA\x8Da\x01\x80\x01Q\x84a\x12\x80V[\x94P_`@Q\x80`\x80\x01`@R\x80\x7F\x01\x18\xC4\xD5\xB87\xBC\xC2\xBC\x89\xB5\xB3\x98\xB5\x97N\x9FYD\x07;2\x07\x8B~#\x1F\xEC\x93\x88\x83\xB0\x81R` \x01\x7F&\x0E\x01\xB2Q\xF6\xF1\xC7\xE7\xFFNX\x07\x91\xDE\xE8\xEAQ\xD8z5\x8E\x03\x8BN\xFE0\xFA\xC0\x93\x83\xC1\x81R` \x01\x7F\"\xFE\xBD\xA3\xC0\xC0c*VG[B\x14\xE5a^\x11\xE6\xDD?\x96\xE6\xCE\xA2\x85J\x87\xD4\xDA\xCC^U\x81R` \x01\x7F\x04\xFCci\xF7\x11\x0F\xE3\xD2QV\xC1\xBB\x9Ar\x85\x9C\xF2\xA0FA\xF9\x9B\xA4\xEEA<\x80\xDAj_\xE4\x81RP\x90Pa\x06-\x87\x82a\x06 \x89a\x15\xFDV[a\x06(a\x16\x9AV[a\x17gV[\x9E\x9DPPPPPPPPPPPPPPV[\x80Q` \x82\x01Q_\x91\x7F0dNr\xE11\xA0)\xB8PE\xB6\x81\x81X]\x97\x81j\x91hq\xCA\x8D< \x8C\x16\xD8|\xFDG\x91\x15\x90\x15\x16\x15a\x06xWPPPV[\x82Q` \x84\x01Q\x82`\x03\x84\x85\x85\x86\t\x85\t\x08\x83\x82\x83\t\x14\x83\x82\x10\x84\x84\x10\x16\x16\x93PPP\x81a\x06\xE8W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x17`$\x82\x01R\x7FBn254: invalid G1 point\0\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x04>V[PPPV[a\x07-`@Q\x80a\x01\0\x01`@R\x80_\x81R` \x01_\x81R` \x01_\x81R` \x01_\x81R` \x01_\x81R` \x01_\x81R` \x01_\x81R` \x01_\x81RP\x90V[__Q` a&G_9_Q\x90_R\x90P`@Q` \x81\x01_\x81R`\xFE`\xE0\x1B\x81R\x86Q`\xC0\x1B`\x04\x82\x01R` \x87\x01Q`\xC0\x1B`\x0C\x82\x01Ra\x02\x80\x87\x01Q` \x82\x01Ra\x02\xA0\x87\x01Q`@\x82\x01R`\x01``\x82\x01R\x7F/\x8D\xD1\xF1\xA7X<B\xC4\xE1*D\xE1\x10@Ls\xCAl\x94\x81?\x85\x83]\xA4\xFB{\xB10\x1DJ`\x80\x82\x01R\x7F\x1E\xE6x\xA0G\nu\xA6\xEA\xA8\xFE\x83p`I\x8B\xA8(\xA3p;1\x1D\x0Fw\xF0\x10BJ\xFE\xB0%`\xA0\x82\x01R\x7F B\xA5\x87\xA9\x0C\x18{\n\x08|\x03\xE2\x9C\x96\x8B\x95\x0B\x1D\xB2m\\\x82\xD6f\x90Zh\x95y\x0C\n`\xC0\x82\x01R\x7F.+\x91Ea\x03i\x8A\xDFW\xB7\x99\x96\x9D\xEA\x1C\x8Fs\x9D\xA5\xD8\xD4\r\xD3\xEB\x92\"\xDB|\x81\xE8\x81`\xE0\x82\x01R`\xE0\x87\x01Q\x80Qa\x01\0\x83\x01R` \x81\x01Qa\x01 \x83\x01RPa\x01\0\x87\x01Q\x80Qa\x01@\x83\x01R` \x81\x01Qa\x01`\x83\x01RPa\x01 \x87\x01Q\x80Qa\x01\x80\x83\x01R` \x81\x01Qa\x01\xA0\x83\x01RPa\x01@\x87\x01Q\x80Qa\x01\xC0\x83\x01R` \x81\x01Qa\x01\xE0\x83\x01RPa\x01`\x87\x01Q\x80Qa\x02\0\x83\x01R` \x81\x01Qa\x02 \x83\x01RPa\x01\x80\x87\x01Q\x80Qa\x02@\x83\x01R` \x81\x01Qa\x02`\x83\x01RPa\x01\xE0\x87\x01Q\x80Qa\x02\x80\x83\x01R` \x81\x01Qa\x02\xA0\x83\x01RPa\x02\0\x87\x01Q\x80Qa\x02\xC0\x83\x01R` \x81\x01Qa\x02\xE0\x83\x01RPa\x02 \x87\x01Q\x80Qa\x03\0\x83\x01R` \x81\x01Qa\x03 \x83\x01RPa\x02@\x87\x01Q\x80Qa\x03@\x83\x01R` \x81\x01Qa\x03`\x83\x01RPa\x01\xA0\x87\x01Q\x80Qa\x03\x80\x83\x01R` \x81\x01Qa\x03\xA0\x83\x01RPa\x01\xC0\x87\x01Q\x80Qa\x03\xC0\x83\x01R` \x81\x01Qa\x03\xE0\x83\x01RPa\x02`\x87\x01Q\x80Qa\x04\0\x83\x01R` \x81\x01Qa\x04 \x83\x01RP`@\x87\x01Q\x80Qa\x04@\x83\x01R` \x81\x01Qa\x04`\x83\x01RP``\x87\x01Q\x80Qa\x04\x80\x83\x01R` \x81\x01Qa\x04\xA0\x83\x01RP`\x80\x87\x01Q\x80Qa\x04\xC0\x83\x01R` \x81\x01Qa\x04\xE0\x83\x01RP`\xA0\x87\x01Q\x80Qa\x05\0\x83\x01R` \x81\x01Qa\x05 \x83\x01RP`\xC0\x87\x01Q\x80Qa\x05@\x83\x01R` \x81\x01Qa\x05`\x83\x01RP\x85Qa\x05\x80\x82\x01R` \x86\x01Qa\x05\xA0\x82\x01R`@\x86\x01Qa\x05\xC0\x82\x01R``\x86\x01Qa\x05\xE0\x82\x01R`\x80\x86\x01Qa\x06\0\x82\x01R`\xA0\x86\x01Qa\x06 \x82\x01R`\xC0\x86\x01Qa\x06@\x82\x01R`\xE0\x86\x01Qa\x06`\x82\x01Ra\x01\0\x86\x01Qa\x06\x80\x82\x01Ra\x01 \x86\x01Qa\x06\xA0\x82\x01Ra\x01@\x86\x01Qa\x06\xC0\x82\x01R\x84Q\x80Qa\x06\xE0\x83\x01R` \x81\x01Qa\x07\0\x83\x01RP` \x85\x01Q\x80Qa\x07 \x83\x01R` \x81\x01Qa\x07@\x83\x01RP`@\x85\x01Q\x80Qa\x07`\x83\x01R` \x81\x01Qa\x07\x80\x83\x01RP``\x85\x01Q\x80Qa\x07\xA0\x83\x01R` \x81\x01Qa\x07\xC0\x83\x01RP`\x80\x85\x01Q\x80Qa\x07\xE0\x83\x01R` \x81\x01Qa\x08\0\x83\x01RP_\x82Ra\x08@\x82 \x82R\x82\x82Q\x06``\x85\x01R` \x82 \x82R\x82\x82Q\x06`\x80\x85\x01R`\xA0\x85\x01Q\x80Q\x82R` \x81\x01Q` \x83\x01RP``\x82 \x80\x83R\x83\x81\x06\x85R\x83\x81\x82\t\x84\x82\x82\t\x91P\x80` \x87\x01RP\x80`@\x86\x01RP`\xC0\x85\x01Q\x80Q\x82R` \x81\x01Q` \x83\x01RP`\xE0\x85\x01Q\x80Q`@\x83\x01R` \x81\x01Q``\x83\x01RPa\x01\0\x85\x01Q\x80Q`\x80\x83\x01R` \x81\x01Q`\xA0\x83\x01RPa\x01 \x85\x01Q\x80Q`\xC0\x83\x01R` \x81\x01Q`\xE0\x83\x01RPa\x01@\x85\x01Q\x80Qa\x01\0\x83\x01R` \x81\x01Qa\x01 \x83\x01RPa\x01`\x82 \x82R\x82\x82Q\x06`\xA0\x85\x01Ra\x01\xA0\x85\x01Q\x81Ra\x01\xC0\x85\x01Q` \x82\x01Ra\x01\xE0\x85\x01Q`@\x82\x01Ra\x02\0\x85\x01Q``\x82\x01Ra\x02 \x85\x01Q`\x80\x82\x01Ra\x02@\x85\x01Q`\xA0\x82\x01Ra\x02`\x85\x01Q`\xC0\x82\x01Ra\x02\x80\x85\x01Q`\xE0\x82\x01Ra\x02\xA0\x85\x01Qa\x01\0\x82\x01Ra\x02\xC0\x85\x01Qa\x01 \x82\x01Ra\x01`\x82 \x82R\x82\x82Q\x06`\xC0\x85\x01Ra\x01`\x85\x01Q\x80Q\x82R` \x81\x01Q` \x83\x01RPa\x01\x80\x85\x01Q\x80Q`@\x83\x01R` \x81\x01Q``\x83\x01RPP`\xA0\x81 \x82\x81\x06`\xE0\x85\x01RPPP\x93\x92PPPV[a\x0C\x84a \xE1V[\x81b\x01\0\0\x03a\x0E[W`@Q\x80``\x01`@R\x80`\x10\x81R` \x01\x7F0d\x1E\x0E\x92\xBE\xBE\xF8\x18&\x8Df;\xCA\xD6\xDB\xCF\xD6\xC0\x14\x91p\xF6\xD7\xD3P\xB1\xB1\xFAl\x10\x01\x81R` \x01`@Q\x80a\x01`\x01`@R\x80`\x01\x81R` \x01~\xEE\xB2\xCBY\x81\xEDEd\x9A\xBE\xBD\xE0\x81\xDC\xFF\x16\xC8`\x1D\xE44~}\xD1b\x8B\xA2\xDA\xACC\xB7\x81R` \x01\x7F-\x1B\xA6oYA\xDC\x91\x01qq\xFAi\xEC+\xD0\x02**-A\x15\xA0\t\xA94X\xFDN&\xEC\xFB\x81R` \x01\x7F\x08h\x12\xA0\n\xC4>\xA8\x01f\x9Cd\x01q <A\xA4\x96g\x1B\xFB\xC0e\xAC\x8D\xB2MR\xCF1\xE5\x81R` \x01\x7F-\x96VQ\xCD\xD9\xE4\x81\x1FNQ\xB8\r\xDC\xA8\xA8\xB4\xA9>\xE1t \xAA\xE6\xAD\xAA\x01\xC2a|n\x85\x81R` \x01\x7F\x12YzV\xC2\xE48b\x0B\x90A\xB9\x89\x92\xAE\rNp[x\0W\xBFwf\xA2v|\xEC\xE1n\x1D\x81R` \x01\x7F\x02\xD9A\x17\xCD\x17\xBC\xF1)\x0F\xD6|\x01\x15]\xD4\x08\x07\x85}\xFFJZ\x0BM\xC6{\xEF\xA8\xAA4\xFD\x81R` \x01\x7F\x15\xEE$u\xBE\xE5\x17\xC4\xEE\x05\xE5\x1F\xA1\xEEs\x12\xA87:\x0B\x13\xDB\x8CQ\xBA\xF0L\xB2\xE9\x9B\xD2\xBD\x81R` \x01~o\xABI\xB8i\xAEb\0\x1D\xEA\xC8x\xB2f{\xD3\x1B\xF3\xE2\x8E:-vJ\xA4\x9B\x8D\x9B\xBD\xD3\x10\x81R` \x01\x7F.\x85k\xF6\xD07p\x8F\xFAL\x06\xD4\xD8\x82\x0FE\xCC\xAD\xCE\x9CZm\x17\x8C\xBDW?\x82\xE0\xF9p\x11\x81R` \x01\x7F\x14\x07\xEE\xE3Y\x93\xF2\xB1\xAD^\xC6\xD9\xB8\x95\x0C\xA3\xAF3\x13]\x06\x03\x7F\x87\x1C^3\xBFVm\xD7\xB4\x81RP\x81RP\x90P\x91\x90PV[\x81b\x10\0\0\x03a\x104W`@Q\x80``\x01`@R\x80`\x14\x81R` \x01\x7F0dKl\x9CJr\x16\x9EM\xAA1}%\xF0E\x12\xAE\x15\xC5;4\xE8\xF5\xAC\xD8\xE1U\xD0\xA6\xC1\x01\x81R` \x01`@Q\x80a\x01`\x01`@R\x80`\x01\x81R` \x01\x7F&\x12]\xA1\n\x0E\xD0c'P\x8A\xBA\x06\xD1\xE3\x03\xACaf2\xDB\xED4\x9FSB-\xA9S3xW\x81R` \x01\x7F\"`\xE7$\x84K\xCARQ\x82\x93S\x96\x8EI\x150RXA\x83WG:\\\x1DY\x7Fa?l\xBD\x81R` \x01\x7F \x87\xEA,\xD6d'\x86\x08\xFB\x0E\xBD\xB8 \x90\x7FY\x85\x02\xC8\x1Bf\x90\xC1\x85\xE2\xBF\x15\xCB\x93_B\x81R` \x01\x7F\x19\xDD\xBC\xAF:\x8DF\xC1\\\x01v\xFB\xB5\xB9^M\xC5p\x88\xFF\x13\xF4\xD1\xBD\x84\xC6\xBF\xA5}\xCD\xC0\xE0\x81R` \x01\x7F\x05\xA2\xC8\\\xFCY\x17\x89`\\\xAE\x81\x8E7\xDDAa\xEE\xF9\xAAfk\xECo\xE4(\x8D\t\xE6\xD24\x18\x81R` \x01\x7F\x11\xF7\x0ESc%\x8F\xF4\xF0\xD7\x16\xA6S\xE1\xDCA\xF1\xC6D\x84\xD7\xF4\xB6\xE2\x19\xD67v\x14\xA3\x90\\\x81R` \x01\x7F)\xE8AC\xF5\x87\rGv\xA9-\xF8\xDA\x8Cl\x93\x03\xD5\x90\x88\xF3{\xA8_@\xCFo\xD1Be\xB4\xBC\x81R` \x01\x7F\x1B\xF8-\xEB\xA7\xD7I\x02\xC3p\x8C\xC6\xE7\x0Ea\xF3\x05\x12\xEC\xA9VU!\x0E'nXX\xCE\x8FX\xE5\x81R` \x01\x7F\"\xB9K.+\0C\xD0Nf-^\xC0\x18\xEA\x1C\x8A\x99\xA2:b\xC9\xEBF\xF01\x8Fj\x19I\x85\xF0\x81R` \x01\x7F)\x96\x9D\x8DSc\xBE\xF1\x10\x1Ah\xE4F\xA1N\x1D\xA7\xBA\x92\x94\xE1B\xA1F\xA9\x80\xFD\xDBMMA\xA5\x81RP\x81RP\x90P\x91\x90PV[\x81` \x03a\x12\nW`@Q\x80``\x01`@R\x80`\x05\x81R` \x01\x7F.\xE1+\xFFJ(\x13(j\x8D\xC3\x88\xCDuM\x9A>\xF2I\x065\xEB\xA5\x0C\xB9\xC2\xE5\xE7P\x80\0\x01\x81R` \x01`@Q\x80a\x01`\x01`@R\x80`\x01\x81R` \x01\x7F\t\xC52\xC60k\x93\xD2\x96x \rG\xC0\xB2\xA9\x9C\x18\xD5\x1B\x83\x8E\xEB\x1D>\xEDLS;\xB5\x12\xD0\x81R` \x01\x7F!\x08,\xA2\x16\xCB\xBFN\x1CnOE\x94\xDDP\x8C\x99m\xFB\xE1\x17N\xFB\x98\xB1\x15\t\xC6\xE3\x06F\x0B\x81R` \x01\x7F\x12w\xAEd\x15\xF0\xEF\x18\xF2\xBA_\xB1b\xC3\x9E\xB71\x1F8n-&\xD6D\x01\xF4\xA2]\xA7|%;\x81R` \x01\x7F+3}\xE1\xC8\xC1O\"\xEC\x9B\x9E/\x96\xAF\xEF6Rbsf\xF8\x17\n\n\x94\x8D\xADJ\xC1\xBD^\x80\x81R` \x01\x7F/\xBDM\xD2\x97k\xE5]\x1A\x16:\xA9\x82\x0F\xB8\x8D\xFA\xC5\xDD\xCEw\xE1\x87.\x90c '2z^\xBE\x81R` \x01\x7F\x10z\xABI\xE6Zg\xF9\xDA\x9C\xD2\xAB\xF7\x8B\xE3\x8B\xD9\xDC\x1D]\xB3\x9F\x81\xDE6\xBC\xFA[K\x03\x90C\x81R` \x01~\xE1Kcd\xA4~\x9CB\x84\xA9\xF8\n_\xC4\x1C\xD2\x12\xB0\xD4\xDB\xF8\xA5p7p\xA4\n\x9A49\x90\x81R` \x01\x7F0dNr\xE11\xA0)\x04\x8Bn\x19?\xD8A\x04\\\xEA$\xF6\xFDsk\xEC#\x12\x04p\x8Fp66\x81R` \x01\x7F\"9\x9C4\x13\x9B\xFF\xAD\xA8\xDE\x04j\xACP\xC9b\x8E5\x17\xA3\xA4RySd\xE7w\xCDe\xBB\x9FH\x81R` \x01\x7F\"\x90\xEE1\xC4\x82\xCF\x92\xB7\x9B\x19D\xDB\x1C\x01Gc^\x90\x04\xDB\x8C;\x9D\x13dK\xEF1\xEC;\xD3\x81RP\x81RP\x90P\x91\x90PV[`@Qc\xE2\xEF\t\xE5`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x12D`@Q\x80``\x01`@R\x80_\x81R` \x01_\x81R` \x01_\x81RP\x90V[a\x12N\x84\x84a\x18GV[\x80\x82Ra\x12^\x90\x85\x90\x85\x90a\x18\x98V[` \x82\x01R\x80Qa\x12t\x90\x85\x90\x84\x90\x86\x90a\x19\x07V[`@\x82\x01R\x93\x92PPPV[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01Ra\x12\x9Ba!\x05V[\x83Q\x81R` \x80\x85\x01Q\x90\x82\x01R`@\x81\x01\x83\x90R_``\x83`\x80\x84`\x07a\x07\xD0Z\x03\xFA\x90P\x80\x80a\x12\xCBW__\xFD[P\x80a\x13\x19W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x19`$\x82\x01R\x7FBn254: scalar mul failed!\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x04>V[PP\x92\x91PPV[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01Ra\x13<a!#V[\x83Q\x81R` \x80\x85\x01Q\x81\x83\x01R\x83Q`@\x83\x01R\x83\x01Q``\x80\x83\x01\x91\x90\x91R_\x90\x83`\xC0\x84`\x06a\x07\xD0Z\x03\xFA\x90P\x80\x80a\x13wW__\xFD[P\x80a\x13\x19W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1D`$\x82\x01R\x7FBn254: group addition failed!\0\0\0`D\x82\x01R`d\x01a\x04>V[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R_a\x13\xF8\x87\x87\x87\x87a\x1AVV[\x90P_Q` a&G_9_Q\x90_R_a\x14\x14\x88\x87\x89a\x1F V[\x90Pa\x14 \x81\x83a%\xF4V[`\xC0\x89\x01Qa\x01\xA0\x88\x01Q\x91\x92P\x90\x81\x90\x84\x90\x81\x90\x83\t\x84\x08\x92Pa\x14L\x85a\x04\xEA\x8A_\x01Q\x84a\x12\x80V[\x95P\x83\x82\x82\t\x90P\x83\x84a\x01\xC0\x8A\x01Q\x83\t\x84\x08\x92Pa\x14t\x86a\x04\xEA\x8A` \x01Q\x84a\x12\x80V[\x95P\x83\x82\x82\t\x90P\x83\x84a\x01\xE0\x8A\x01Q\x83\t\x84\x08\x92Pa\x14\x9C\x86a\x04\xEA\x8A`@\x01Q\x84a\x12\x80V[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02\0\x8A\x01Q\x83\t\x84\x08\x92Pa\x14\xC4\x86a\x04\xEA\x8A``\x01Q\x84a\x12\x80V[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02 \x8A\x01Q\x83\t\x84\x08\x92Pa\x14\xEC\x86a\x04\xEA\x8A`\x80\x01Q\x84a\x12\x80V[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02@\x8A\x01Q\x83\t\x84\x08\x92Pa\x15\x14\x86a\x04\xEA\x8D`@\x01Q\x84a\x12\x80V[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02`\x8A\x01Q\x83\t\x84\x08\x92Pa\x15<\x86a\x04\xEA\x8D``\x01Q\x84a\x12\x80V[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02\x80\x8A\x01Q\x83\t\x84\x08\x92Pa\x15d\x86a\x04\xEA\x8D`\x80\x01Q\x84a\x12\x80V[\x95P\x83\x82\x82\t\x90P\x83\x84a\x02\xA0\x8A\x01Q\x83\t\x84\x08\x92Pa\x15\x8C\x86a\x04\xEA\x8D`\xA0\x01Q\x84a\x12\x80V[\x95P_\x8A`\xE0\x01Q\x90P\x84\x85a\x02\xC0\x8B\x01Q\x83\t\x85\x08\x93Pa\x15\xB6\x87a\x04\xEA\x8B`\xA0\x01Q\x84a\x12\x80V[\x96Pa\x15\xECa\x15\xE6`@\x80Q\x80\x82\x01\x82R_\x80\x82R` \x91\x82\x01R\x81Q\x80\x83\x01\x90\x92R`\x01\x82R`\x02\x90\x82\x01R\x90V[\x85a\x12\x80V[\x97PPPPPPP\x94P\x94\x92PPPV[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R\x81Q` \x83\x01Q\x15\x90\x15\x16\x15a\x16$WP\x90V[`@Q\x80`@\x01`@R\x80\x83_\x01Q\x81R` \x01\x7F0dNr\xE11\xA0)\xB8PE\xB6\x81\x81X]\x97\x81j\x91hq\xCA\x8D< \x8C\x16\xD8|\xFDG\x84` \x01Qa\x16h\x91\x90a&'V[a\x16\x92\x90\x7F0dNr\xE11\xA0)\xB8PE\xB6\x81\x81X]\x97\x81j\x91hq\xCA\x8D< \x8C\x16\xD8|\xFDGa%\xF4V[\x90R\x92\x91PPV[a\x16\xC1`@Q\x80`\x80\x01`@R\x80_\x81R` \x01_\x81R` \x01_\x81R` \x01_\x81RP\x90V[`@Q\x80`\x80\x01`@R\x80\x7F\x18\0\xDE\xEF\x12\x1F\x1EvBj\0f^\\DygC\"\xD4\xF7^\xDA\xDDF\xDE\xBD\\\xD9\x92\xF6\xED\x81R` \x01\x7F\x19\x8E\x93\x93\x92\rH:r`\xBF\xB71\xFB]%\xF1\xAAI35\xA9\xE7\x12\x97\xE4\x85\xB7\xAE\xF3\x12\xC2\x81R` \x01\x7F\x12\xC8^\xA5\xDB\x8Cm\xEBJ\xABq\x80\x8D\xCB@\x8F\xE3\xD1\xE7i\x0CC\xD3{L\xE6\xCC\x01f\xFA}\xAA\x81R` \x01\x7F\t\x06\x89\xD0X_\xF0u\xEC\x9E\x99\xADi\x0C3\x95\xBCK13p\xB3\x8E\xF3U\xAC\xDA\xDC\xD1\"\x97[\x81RP\x90P\x90V[___`@Q\x87Q\x81R` \x88\x01Q` \x82\x01R` \x87\x01Q`@\x82\x01R\x86Q``\x82\x01R``\x87\x01Q`\x80\x82\x01R`@\x87\x01Q`\xA0\x82\x01R\x85Q`\xC0\x82\x01R` \x86\x01Q`\xE0\x82\x01R` \x85\x01Qa\x01\0\x82\x01R\x84Qa\x01 \x82\x01R``\x85\x01Qa\x01@\x82\x01R`@\x85\x01Qa\x01`\x82\x01R` _a\x01\x80\x83`\x08Z\xFA\x91PP_Q\x91P\x80a\x189W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1C`$\x82\x01R\x7FBn254: Pairing check failed!\0\0\0\0`D\x82\x01R`d\x01a\x04>V[P\x15\x15\x90P[\x94\x93PPPPV[\x81Q_\x90_Q` a&G_9_Q\x90_R\x90\x83\x80\x15a\x18\x88W\x84\x93P_[\x82\x81\x10\x15a\x18|W\x83\x85\x86\t\x94P`\x01\x01a\x18fV[P`\x01\x84\x03\x93Pa\x18\x8FV[`\x01\x83\x03\x93P[PPP\x92\x91PPV[_\x82`\x01\x03a\x18\xA9WP`\x01a\x02\xA3V[\x81_\x03a\x18\xB7WP_a\x02\xA3V[` \x84\x01Q_Q` a&G_9_Q\x90_R\x90_\x90\x82\x81\x86\t\x90P\x85\x80\x15a\x18\xE5W`\x01\x87\x03\x92Pa\x18\xECV[`\x01\x84\x03\x92P[Pa\x18\xF6\x82a \x0BV[\x91P\x82\x82\x82\t\x97\x96PPPPPPPV[__Q` a&G_9_Q\x90_R\x82\x82\x03a\x19\x80W`\x01_[`\x0B\x81\x10\x15a\x19uW\x81\x86\x03a\x19RW\x86\x81`\x0B\x81\x10a\x19CWa\x19Ca%\xE0V[` \x02\x01Q\x93PPPPa\x18?V[\x82\x80a\x19`Wa\x19`a&\x13V[`@\x89\x01Q` \x01Q\x83\t\x91P`\x01\x01a\x19!V[P_\x92PPPa\x18?V[a\x19\x88a!AV[`@\x87\x01Q`\x01a\x01@\x83\x81\x01\x82\x81R\x92\x01\x90\x80[`\x0B\x81\x10\x15a\x19\xCAW` \x84\x03\x93P\x85\x86\x8A\x85Q\x89\x03\x08\x83\t\x80\x85R`\x1F\x19\x90\x93\x01\x92\x91P`\x01\x01a\x19\x9DV[PPPP___\x90P`\x01\x83\x89`@\x8C\x01Q_[`\x0B\x81\x10\x15a\x1A\x1EW\x88\x82Q\x8A\x85Q\x8C\x88Q\x8A\t\t\t\x89\x81\x88\x08\x96PP\x88\x89\x8D\x84Q\x8C\x03\x08\x86\t\x94P` \x93\x84\x01\x93\x92\x83\x01\x92\x91\x90\x91\x01\x90`\x01\x01a\x19\xDEV[PPPP\x80\x92PP_a\x1A0\x83a \x0BV[\x90P` \x8A\x01Q\x85\x81\x89\t\x96PP\x84\x81\x87\t\x95P\x84\x82\x87\t\x9A\x99PPPPPPPPPPV[`@\x80Q\x80\x82\x01\x90\x91R_\x80\x82R` \x82\x01R______Q` a&G_9_Q\x90_R\x90P`\x80\x89\x01Q\x81` \x8A\x01Q` \x8C\x01Q\t\x95P\x89Q\x94P\x81`\xA0\x8B\x01Q``\x8C\x01Q\t\x93P\x81a\x01\xA0\x89\x01Q\x85\x08\x92P\x81\x81\x84\x08\x92P\x81\x85\x84\t\x94P\x81\x7F/\x8D\xD1\xF1\xA7X<B\xC4\xE1*D\xE1\x10@Ls\xCAl\x94\x81?\x85\x83]\xA4\xFB{\xB10\x1DJ\x85\t\x92P\x81a\x01\xC0\x89\x01Q\x84\x08\x92P\x81\x81\x84\x08\x92P\x81\x85\x84\t\x94P\x81\x7F\x1E\xE6x\xA0G\nu\xA6\xEA\xA8\xFE\x83p`I\x8B\xA8(\xA3p;1\x1D\x0Fw\xF0\x10BJ\xFE\xB0%\x85\t\x92P\x81a\x01\xE0\x89\x01Q\x84\x08\x92P\x81\x81\x84\x08\x92P\x81\x85\x84\t\x94P\x81\x7F B\xA5\x87\xA9\x0C\x18{\n\x08|\x03\xE2\x9C\x96\x8B\x95\x0B\x1D\xB2m\\\x82\xD6f\x90Zh\x95y\x0C\n\x85\t\x92P\x81a\x02\0\x89\x01Q\x84\x08\x92P\x81\x81\x84\x08\x92P\x81\x85\x84\t\x94P\x81\x7F.+\x91Ea\x03i\x8A\xDFW\xB7\x99\x96\x9D\xEA\x1C\x8Fs\x9D\xA5\xD8\xD4\r\xD3\xEB\x92\"\xDB|\x81\xE8\x81\x85\t\x92P\x81a\x02 \x89\x01Q\x84\x08\x92P\x81\x81\x84\x08\x92PP\x80\x84\x83\t\x93P\x80\x84\x86\x08\x94Pa\x1B\xC3\x87`\xA0\x01Q\x86a\x12\x80V[\x95P\x88Q``\x8A\x01Q`\x80\x8B\x01Q\x83\x82\x84\t\x97P\x83a\x02\xC0\x8B\x01Q\x89\t\x97P\x83a\x02@\x8B\x01Q\x83\t\x95P\x83a\x01\xA0\x8B\x01Q\x87\x08\x95P\x83\x81\x87\x08\x95P\x83\x86\x89\t\x97P\x83a\x02`\x8B\x01Q\x83\t\x95P\x83a\x01\xC0\x8B\x01Q\x87\x08\x95P\x83\x81\x87\x08\x95P\x83\x86\x89\t\x97P\x83a\x02\x80\x8B\x01Q\x83\t\x95P\x83a\x01\xE0\x8B\x01Q\x87\x08\x95P\x83\x81\x87\x08\x95P\x83\x86\x89\t\x97P\x83a\x02\xA0\x8B\x01Q\x83\t\x95P\x83a\x02\0\x8B\x01Q\x87\x08\x95P\x83\x81\x87\x08\x95PPPP\x80\x83\x86\t\x94Pa\x1C\x8A\x86a\x04\xEA\x8C`\xC0\x01Q\x88\x85a\x1C\x85\x91\x90a%\xF4V[a\x12\x80V[\x95Pa\x1C\xA3\x86a\x04\xEA\x8C`\xE0\x01Q\x8Aa\x01\xA0\x01Qa\x12\x80V[\x95Pa\x1C\xBD\x86a\x04\xEA\x8Ca\x01\0\x01Q\x8Aa\x01\xC0\x01Qa\x12\x80V[\x95Pa\x1C\xD7\x86a\x04\xEA\x8Ca\x01 \x01Q\x8Aa\x01\xE0\x01Qa\x12\x80V[\x95Pa\x1C\xF1\x86a\x04\xEA\x8Ca\x01@\x01Q\x8Aa\x02\0\x01Qa\x12\x80V[\x95P\x80a\x01\xC0\x88\x01Qa\x01\xA0\x89\x01Q\t\x92Pa\x1D\x16\x86a\x04\xEA\x8Ca\x01`\x01Q\x86a\x12\x80V[\x95P\x80a\x02\0\x88\x01Qa\x01\xE0\x89\x01Q\t\x92Pa\x1D;\x86a\x04\xEA\x8Ca\x01\x80\x01Q\x86a\x12\x80V[\x95Pa\x01\xA0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x1Dj\x86a\x04\xEA\x8Ca\x01\xE0\x01Q\x86a\x12\x80V[\x95Pa\x01\xC0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x1D\x99\x86a\x04\xEA\x8Ca\x02\0\x01Q\x86a\x12\x80V[\x95Pa\x01\xE0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x1D\xC8\x86a\x04\xEA\x8Ca\x02 \x01Q\x86a\x12\x80V[\x95Pa\x02\0\x87\x01Q\x92P\x80\x83\x84\t\x91P\x80\x82\x83\t\x91P\x80\x82\x84\t\x92Pa\x1D\xF7\x86a\x04\xEA\x8Ca\x02@\x01Q\x86a\x12\x80V[\x95Pa\x1E\x14\x86a\x04\xEA\x8Ca\x01\xA0\x01Qa\x1C\x85\x8Ba\x02 \x01Qa \xACV[\x95Pa\x1E%\x86\x8Ba\x01\xC0\x01Qa\x13!V[\x95P\x80a\x01\xC0\x88\x01Qa\x01\xA0\x89\x01Q\t\x92P\x80a\x01\xE0\x88\x01Q\x84\t\x92P\x80a\x02\0\x88\x01Q\x84\t\x92P\x80a\x02 \x88\x01Q\x84\t\x92Pa\x1Ek\x86a\x04\xEA\x8Ca\x02`\x01Q\x86a\x12\x80V[\x95Pa\x1Ey\x88_\x01Qa \xACV[\x94Pa\x1E\x8D\x86a\x04\xEA\x89`\xC0\x01Q\x88a\x12\x80V[\x95P\x80`\x01\x89Q\x08`\xA0\x8A\x01Q\x90\x93P\x81\x90\x80\t\x91P\x80\x82\x84\t\x92P\x80\x83\x86\t\x94Pa\x1E\xC1\x86a\x04\xEA\x89`\xE0\x01Q\x88a\x12\x80V[\x95P\x80\x83\x86\t\x94Pa\x1E\xDC\x86a\x04\xEA\x89a\x01\0\x01Q\x88a\x12\x80V[\x95P\x80\x83\x86\t\x94Pa\x1E\xF7\x86a\x04\xEA\x89a\x01 \x01Q\x88a\x12\x80V[\x95P\x80\x83\x86\t\x94Pa\x1F\x12\x86a\x04\xEA\x89a\x01@\x01Q\x88a\x12\x80V[\x9A\x99PPPPPPPPPPV[___Q` a&G_9_Q\x90_R\x90P_\x83` \x01Q\x90P_\x84`@\x01Q\x90P_`\x01\x90P``\x88\x01Q`\x80\x89\x01Qa\x01\xA0\x89\x01Qa\x02@\x8A\x01Q\x87\x88\x89\x83\x87\t\x8A\x86\x86\x08\x08\x86\t\x94PPPa\x01\xC0\x89\x01Qa\x02`\x8A\x01Q\x87\x88\x89\x83\x87\t\x8A\x86\x86\x08\x08\x86\t\x94PPPa\x01\xE0\x89\x01Qa\x02\x80\x8A\x01Q\x87\x88\x89\x83\x87\t\x8A\x86\x86\x08\x08\x86\t\x94PPPa\x02\0\x89\x01Qa\x02\xA0\x8A\x01Q\x87\x88\x89\x83\x87\t\x8A\x86\x86\x08\x08\x86\t\x94PPPa\x02 \x89\x01Q\x91Pa\x02\xC0\x89\x01Q\x86\x87\x82\x89\x85\x87\x08\t\x85\t\x93PPPP\x87Q` \x89\x01Q\x85\x86\x86\x83\t\x87\x03\x85\x08\x96PP\x84\x85\x83\x83\t\x86\x03\x87\x08\x99\x98PPPPPPPPPV[____Q` a&G_9_Q\x90_R\x90P`@Q` \x81R` \x80\x82\x01R` `@\x82\x01R\x84``\x82\x01R`\x02\x82\x03`\x80\x82\x01R\x81`\xA0\x82\x01R` _`\xC0\x83`\x05Z\xFA\x92PP_Q\x92P\x81a \xA5W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1D`$\x82\x01R\x7FBn254: pow precompile failed!\0\0\0`D\x82\x01R`d\x01a\x04>V[PP\x91\x90PV[_a \xC4_Q` a&G_9_Q\x90_R\x83a&'V[a \xDB\x90_Q` a&G_9_Q\x90_Ra%\xF4V[\x92\x91PPV[`@Q\x80``\x01`@R\x80_\x81R` \x01_\x81R` \x01a!\0a!AV[\x90R\x90V[`@Q\x80``\x01`@R\x80`\x03\x90` \x82\x02\x806\x837P\x91\x92\x91PPV[`@Q\x80`\x80\x01`@R\x80`\x04\x90` \x82\x02\x806\x837P\x91\x92\x91PPV[`@Q\x80a\x01`\x01`@R\x80`\x0B\x90` \x82\x02\x806\x837P\x91\x92\x91PPV[cNH{q`\xE0\x1B_R`A`\x04R`$_\xFD[`@Qa\x02\xE0\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a!\x98Wa!\x98a!`V[`@R\x90V[`@Qa\x02\xC0\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a!\x98Wa!\x98a!`V[_`@\x82\x84\x03\x12\x15a!\xD2W__\xFD[`@\x80Q\x90\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a!\xF5Wa!\xF5a!`V[`@R\x825\x81R` \x92\x83\x015\x92\x81\x01\x92\x90\x92RP\x91\x90PV[_\x82`\x1F\x83\x01\x12a\"\x1EW__\xFD[`@Qa\x01`\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\"BWa\"Ba!`V[`@R\x80a\x01`\x84\x01\x85\x81\x11\x15a\"WW__\xFD[\x84[\x81\x81\x10\x15a\"qW\x805\x83R` \x92\x83\x01\x92\x01a\"YV[P\x91\x95\x94PPPPPV[_a\x04\x80\x82\x84\x03\x12\x15a\"\x8DW__\xFD[a\"\x95a!tV[\x90Pa\"\xA1\x83\x83a!\xC2V[\x81Ra\"\xB0\x83`@\x84\x01a!\xC2V[` \x82\x01Ra\"\xC2\x83`\x80\x84\x01a!\xC2V[`@\x82\x01Ra\"\xD4\x83`\xC0\x84\x01a!\xC2V[``\x82\x01Ra\"\xE7\x83a\x01\0\x84\x01a!\xC2V[`\x80\x82\x01Ra\"\xFA\x83a\x01@\x84\x01a!\xC2V[`\xA0\x82\x01Ra#\r\x83a\x01\x80\x84\x01a!\xC2V[`\xC0\x82\x01Ra# \x83a\x01\xC0\x84\x01a!\xC2V[`\xE0\x82\x01Ra#3\x83a\x02\0\x84\x01a!\xC2V[a\x01\0\x82\x01Ra#G\x83a\x02@\x84\x01a!\xC2V[a\x01 \x82\x01Ra#[\x83a\x02\x80\x84\x01a!\xC2V[a\x01@\x82\x01Ra#o\x83a\x02\xC0\x84\x01a!\xC2V[a\x01`\x82\x01Ra#\x83\x83a\x03\0\x84\x01a!\xC2V[a\x01\x80\x82\x01Ra\x03@\x82\x015a\x01\xA0\x82\x01Ra\x03`\x82\x015a\x01\xC0\x82\x01Ra\x03\x80\x82\x015a\x01\xE0\x82\x01Ra\x03\xA0\x82\x015a\x02\0\x82\x01Ra\x03\xC0\x82\x015a\x02 \x82\x01Ra\x03\xE0\x82\x015a\x02@\x82\x01Ra\x04\0\x82\x015a\x02`\x82\x01Ra\x04 \x82\x015a\x02\x80\x82\x01Ra\x04@\x82\x015a\x02\xA0\x82\x01Ra\x04`\x90\x91\x015a\x02\xC0\x82\x01R\x91\x90PV[___\x83\x85\x03a\n\xE0\x81\x12\x15a$\x1BW__\xFD[a\x05\0\x81\x12\x15a$)W__\xFD[Pa$2a!\x9EV[\x845\x81R` \x80\x86\x015\x90\x82\x01Ra$M\x86`@\x87\x01a!\xC2V[`@\x82\x01Ra$_\x86`\x80\x87\x01a!\xC2V[``\x82\x01Ra$q\x86`\xC0\x87\x01a!\xC2V[`\x80\x82\x01Ra$\x84\x86a\x01\0\x87\x01a!\xC2V[`\xA0\x82\x01Ra$\x97\x86a\x01@\x87\x01a!\xC2V[`\xC0\x82\x01Ra$\xAA\x86a\x01\x80\x87\x01a!\xC2V[`\xE0\x82\x01Ra$\xBD\x86a\x01\xC0\x87\x01a!\xC2V[a\x01\0\x82\x01Ra$\xD1\x86a\x02\0\x87\x01a!\xC2V[a\x01 \x82\x01Ra$\xE5\x86a\x02@\x87\x01a!\xC2V[a\x01@\x82\x01Ra$\xF9\x86a\x02\x80\x87\x01a!\xC2V[a\x01`\x82\x01Ra%\r\x86a\x02\xC0\x87\x01a!\xC2V[a\x01\x80\x82\x01Ra%!\x86a\x03\0\x87\x01a!\xC2V[a\x01\xA0\x82\x01Ra%5\x86a\x03@\x87\x01a!\xC2V[a\x01\xC0\x82\x01Ra%I\x86a\x03\x80\x87\x01a!\xC2V[a\x01\xE0\x82\x01Ra%]\x86a\x03\xC0\x87\x01a!\xC2V[a\x02\0\x82\x01Ra%q\x86a\x04\0\x87\x01a!\xC2V[a\x02 \x82\x01Ra%\x85\x86a\x04@\x87\x01a!\xC2V[a\x02@\x82\x01Ra%\x99\x86a\x04\x80\x87\x01a!\xC2V[a\x02`\x82\x01Ra\x04\xC0\x85\x015a\x02\x80\x82\x01Ra\x04\xE0\x85\x015a\x02\xA0\x82\x01R\x92Pa%\xC7\x85a\x05\0\x86\x01a\"\x0FV[\x91Pa%\xD7\x85a\x06`\x86\x01a\"|V[\x90P\x92P\x92P\x92V[cNH{q`\xE0\x1B_R`2`\x04R`$_\xFD[\x81\x81\x03\x81\x81\x11\x15a \xDBWcNH{q`\xE0\x1B_R`\x11`\x04R`$_\xFD[cNH{q`\xE0\x1B_R`\x12`\x04R`$_\xFD[_\x82a&AWcNH{q`\xE0\x1B_R`\x12`\x04R`$_\xFD[P\x06\x90V\xFE0dNr\xE11\xA0)\xB8PE\xB6\x81\x81X](3\xE8Hy\xB9p\x91C\xE1\xF5\x93\xF0\0\0\x01\xA1dsolcC\0\x08\x1C\0\n",
3082 );
3083 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3084 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3089 #[derive(Clone)]
3090 pub struct InvalidPlonkArgs {}
3091 #[allow(
3092 non_camel_case_types,
3093 non_snake_case,
3094 clippy::pub_underscore_fields,
3095 clippy::style
3096 )]
3097 const _: () = {
3098 use alloy::sol_types as alloy_sol_types;
3099 #[doc(hidden)]
3100 type UnderlyingSolTuple<'a> = ();
3101 #[doc(hidden)]
3102 type UnderlyingRustTuple<'a> = ();
3103 #[cfg(test)]
3104 #[allow(dead_code, unreachable_patterns)]
3105 fn _type_assertion(
3106 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3107 ) {
3108 match _t {
3109 alloy_sol_types::private::AssertTypeEq::<
3110 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3111 >(_) => {}
3112 }
3113 }
3114 #[automatically_derived]
3115 #[doc(hidden)]
3116 impl ::core::convert::From<InvalidPlonkArgs> for UnderlyingRustTuple<'_> {
3117 fn from(value: InvalidPlonkArgs) -> Self {
3118 ()
3119 }
3120 }
3121 #[automatically_derived]
3122 #[doc(hidden)]
3123 impl ::core::convert::From<UnderlyingRustTuple<'_>> for InvalidPlonkArgs {
3124 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3125 Self {}
3126 }
3127 }
3128 #[automatically_derived]
3129 impl alloy_sol_types::SolError for InvalidPlonkArgs {
3130 type Parameters<'a> = UnderlyingSolTuple<'a>;
3131 type Token<'a> = <Self::Parameters<
3132 'a,
3133 > as alloy_sol_types::SolType>::Token<'a>;
3134 const SIGNATURE: &'static str = "InvalidPlonkArgs()";
3135 const SELECTOR: [u8; 4] = [253u8, 154u8, 45u8, 27u8];
3136 #[inline]
3137 fn new<'a>(
3138 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3139 ) -> Self {
3140 tuple.into()
3141 }
3142 #[inline]
3143 fn tokenize(&self) -> Self::Token<'_> {
3144 ()
3145 }
3146 }
3147 };
3148 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3149 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3154 #[derive(Clone)]
3155 pub struct UnsupportedDegree {}
3156 #[allow(
3157 non_camel_case_types,
3158 non_snake_case,
3159 clippy::pub_underscore_fields,
3160 clippy::style
3161 )]
3162 const _: () = {
3163 use alloy::sol_types as alloy_sol_types;
3164 #[doc(hidden)]
3165 type UnderlyingSolTuple<'a> = ();
3166 #[doc(hidden)]
3167 type UnderlyingRustTuple<'a> = ();
3168 #[cfg(test)]
3169 #[allow(dead_code, unreachable_patterns)]
3170 fn _type_assertion(
3171 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3172 ) {
3173 match _t {
3174 alloy_sol_types::private::AssertTypeEq::<
3175 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3176 >(_) => {}
3177 }
3178 }
3179 #[automatically_derived]
3180 #[doc(hidden)]
3181 impl ::core::convert::From<UnsupportedDegree> for UnderlyingRustTuple<'_> {
3182 fn from(value: UnsupportedDegree) -> Self {
3183 ()
3184 }
3185 }
3186 #[automatically_derived]
3187 #[doc(hidden)]
3188 impl ::core::convert::From<UnderlyingRustTuple<'_>> for UnsupportedDegree {
3189 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3190 Self {}
3191 }
3192 }
3193 #[automatically_derived]
3194 impl alloy_sol_types::SolError for UnsupportedDegree {
3195 type Parameters<'a> = UnderlyingSolTuple<'a>;
3196 type Token<'a> = <Self::Parameters<
3197 'a,
3198 > as alloy_sol_types::SolType>::Token<'a>;
3199 const SIGNATURE: &'static str = "UnsupportedDegree()";
3200 const SELECTOR: [u8; 4] = [226u8, 239u8, 9u8, 229u8];
3201 #[inline]
3202 fn new<'a>(
3203 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3204 ) -> Self {
3205 tuple.into()
3206 }
3207 #[inline]
3208 fn tokenize(&self) -> Self::Token<'_> {
3209 ()
3210 }
3211 }
3212 };
3213 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3214 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3219 #[derive(Clone)]
3220 pub struct WrongPlonkVK {}
3221 #[allow(
3222 non_camel_case_types,
3223 non_snake_case,
3224 clippy::pub_underscore_fields,
3225 clippy::style
3226 )]
3227 const _: () = {
3228 use alloy::sol_types as alloy_sol_types;
3229 #[doc(hidden)]
3230 type UnderlyingSolTuple<'a> = ();
3231 #[doc(hidden)]
3232 type UnderlyingRustTuple<'a> = ();
3233 #[cfg(test)]
3234 #[allow(dead_code, unreachable_patterns)]
3235 fn _type_assertion(
3236 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3237 ) {
3238 match _t {
3239 alloy_sol_types::private::AssertTypeEq::<
3240 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3241 >(_) => {}
3242 }
3243 }
3244 #[automatically_derived]
3245 #[doc(hidden)]
3246 impl ::core::convert::From<WrongPlonkVK> for UnderlyingRustTuple<'_> {
3247 fn from(value: WrongPlonkVK) -> Self {
3248 ()
3249 }
3250 }
3251 #[automatically_derived]
3252 #[doc(hidden)]
3253 impl ::core::convert::From<UnderlyingRustTuple<'_>> for WrongPlonkVK {
3254 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3255 Self {}
3256 }
3257 }
3258 #[automatically_derived]
3259 impl alloy_sol_types::SolError for WrongPlonkVK {
3260 type Parameters<'a> = UnderlyingSolTuple<'a>;
3261 type Token<'a> = <Self::Parameters<
3262 'a,
3263 > as alloy_sol_types::SolType>::Token<'a>;
3264 const SIGNATURE: &'static str = "WrongPlonkVK()";
3265 const SELECTOR: [u8; 4] = [65u8, 245u8, 59u8, 18u8];
3266 #[inline]
3267 fn new<'a>(
3268 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3269 ) -> Self {
3270 tuple.into()
3271 }
3272 #[inline]
3273 fn tokenize(&self) -> Self::Token<'_> {
3274 ()
3275 }
3276 }
3277 };
3278 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3279 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3284 #[derive(Clone)]
3285 pub struct BETA_H_X0Call {}
3286 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3287 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3289 #[derive(Clone)]
3290 pub struct BETA_H_X0Return {
3291 #[allow(missing_docs)]
3292 pub _0: alloy::sol_types::private::primitives::aliases::U256,
3293 }
3294 #[allow(
3295 non_camel_case_types,
3296 non_snake_case,
3297 clippy::pub_underscore_fields,
3298 clippy::style
3299 )]
3300 const _: () = {
3301 use alloy::sol_types as alloy_sol_types;
3302 {
3303 #[doc(hidden)]
3304 type UnderlyingSolTuple<'a> = ();
3305 #[doc(hidden)]
3306 type UnderlyingRustTuple<'a> = ();
3307 #[cfg(test)]
3308 #[allow(dead_code, unreachable_patterns)]
3309 fn _type_assertion(
3310 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3311 ) {
3312 match _t {
3313 alloy_sol_types::private::AssertTypeEq::<
3314 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3315 >(_) => {}
3316 }
3317 }
3318 #[automatically_derived]
3319 #[doc(hidden)]
3320 impl ::core::convert::From<BETA_H_X0Call> for UnderlyingRustTuple<'_> {
3321 fn from(value: BETA_H_X0Call) -> Self {
3322 ()
3323 }
3324 }
3325 #[automatically_derived]
3326 #[doc(hidden)]
3327 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BETA_H_X0Call {
3328 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3329 Self {}
3330 }
3331 }
3332 }
3333 {
3334 #[doc(hidden)]
3335 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
3336 #[doc(hidden)]
3337 type UnderlyingRustTuple<'a> = (
3338 alloy::sol_types::private::primitives::aliases::U256,
3339 );
3340 #[cfg(test)]
3341 #[allow(dead_code, unreachable_patterns)]
3342 fn _type_assertion(
3343 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3344 ) {
3345 match _t {
3346 alloy_sol_types::private::AssertTypeEq::<
3347 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3348 >(_) => {}
3349 }
3350 }
3351 #[automatically_derived]
3352 #[doc(hidden)]
3353 impl ::core::convert::From<BETA_H_X0Return> for UnderlyingRustTuple<'_> {
3354 fn from(value: BETA_H_X0Return) -> Self {
3355 (value._0,)
3356 }
3357 }
3358 #[automatically_derived]
3359 #[doc(hidden)]
3360 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BETA_H_X0Return {
3361 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3362 Self { _0: tuple.0 }
3363 }
3364 }
3365 }
3366 #[automatically_derived]
3367 impl alloy_sol_types::SolCall for BETA_H_X0Call {
3368 type Parameters<'a> = ();
3369 type Token<'a> = <Self::Parameters<
3370 'a,
3371 > as alloy_sol_types::SolType>::Token<'a>;
3372 type Return = BETA_H_X0Return;
3373 type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
3374 type ReturnToken<'a> = <Self::ReturnTuple<
3375 'a,
3376 > as alloy_sol_types::SolType>::Token<'a>;
3377 const SIGNATURE: &'static str = "BETA_H_X0()";
3378 const SELECTOR: [u8; 4] = [131u8, 76u8, 69u8, 42u8];
3379 #[inline]
3380 fn new<'a>(
3381 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3382 ) -> Self {
3383 tuple.into()
3384 }
3385 #[inline]
3386 fn tokenize(&self) -> Self::Token<'_> {
3387 ()
3388 }
3389 #[inline]
3390 fn abi_decode_returns(
3391 data: &[u8],
3392 validate: bool,
3393 ) -> alloy_sol_types::Result<Self::Return> {
3394 <Self::ReturnTuple<
3395 '_,
3396 > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
3397 .map(Into::into)
3398 }
3399 }
3400 };
3401 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3402 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3407 #[derive(Clone)]
3408 pub struct BETA_H_X1Call {}
3409 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3410 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3412 #[derive(Clone)]
3413 pub struct BETA_H_X1Return {
3414 #[allow(missing_docs)]
3415 pub _0: alloy::sol_types::private::primitives::aliases::U256,
3416 }
3417 #[allow(
3418 non_camel_case_types,
3419 non_snake_case,
3420 clippy::pub_underscore_fields,
3421 clippy::style
3422 )]
3423 const _: () = {
3424 use alloy::sol_types as alloy_sol_types;
3425 {
3426 #[doc(hidden)]
3427 type UnderlyingSolTuple<'a> = ();
3428 #[doc(hidden)]
3429 type UnderlyingRustTuple<'a> = ();
3430 #[cfg(test)]
3431 #[allow(dead_code, unreachable_patterns)]
3432 fn _type_assertion(
3433 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3434 ) {
3435 match _t {
3436 alloy_sol_types::private::AssertTypeEq::<
3437 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3438 >(_) => {}
3439 }
3440 }
3441 #[automatically_derived]
3442 #[doc(hidden)]
3443 impl ::core::convert::From<BETA_H_X1Call> for UnderlyingRustTuple<'_> {
3444 fn from(value: BETA_H_X1Call) -> Self {
3445 ()
3446 }
3447 }
3448 #[automatically_derived]
3449 #[doc(hidden)]
3450 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BETA_H_X1Call {
3451 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3452 Self {}
3453 }
3454 }
3455 }
3456 {
3457 #[doc(hidden)]
3458 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
3459 #[doc(hidden)]
3460 type UnderlyingRustTuple<'a> = (
3461 alloy::sol_types::private::primitives::aliases::U256,
3462 );
3463 #[cfg(test)]
3464 #[allow(dead_code, unreachable_patterns)]
3465 fn _type_assertion(
3466 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3467 ) {
3468 match _t {
3469 alloy_sol_types::private::AssertTypeEq::<
3470 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3471 >(_) => {}
3472 }
3473 }
3474 #[automatically_derived]
3475 #[doc(hidden)]
3476 impl ::core::convert::From<BETA_H_X1Return> for UnderlyingRustTuple<'_> {
3477 fn from(value: BETA_H_X1Return) -> Self {
3478 (value._0,)
3479 }
3480 }
3481 #[automatically_derived]
3482 #[doc(hidden)]
3483 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BETA_H_X1Return {
3484 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3485 Self { _0: tuple.0 }
3486 }
3487 }
3488 }
3489 #[automatically_derived]
3490 impl alloy_sol_types::SolCall for BETA_H_X1Call {
3491 type Parameters<'a> = ();
3492 type Token<'a> = <Self::Parameters<
3493 'a,
3494 > as alloy_sol_types::SolType>::Token<'a>;
3495 type Return = BETA_H_X1Return;
3496 type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
3497 type ReturnToken<'a> = <Self::ReturnTuple<
3498 'a,
3499 > as alloy_sol_types::SolType>::Token<'a>;
3500 const SIGNATURE: &'static str = "BETA_H_X1()";
3501 const SELECTOR: [u8; 4] = [175u8, 25u8, 107u8, 162u8];
3502 #[inline]
3503 fn new<'a>(
3504 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3505 ) -> Self {
3506 tuple.into()
3507 }
3508 #[inline]
3509 fn tokenize(&self) -> Self::Token<'_> {
3510 ()
3511 }
3512 #[inline]
3513 fn abi_decode_returns(
3514 data: &[u8],
3515 validate: bool,
3516 ) -> alloy_sol_types::Result<Self::Return> {
3517 <Self::ReturnTuple<
3518 '_,
3519 > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
3520 .map(Into::into)
3521 }
3522 }
3523 };
3524 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3525 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3530 #[derive(Clone)]
3531 pub struct BETA_H_Y0Call {}
3532 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3533 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3535 #[derive(Clone)]
3536 pub struct BETA_H_Y0Return {
3537 #[allow(missing_docs)]
3538 pub _0: alloy::sol_types::private::primitives::aliases::U256,
3539 }
3540 #[allow(
3541 non_camel_case_types,
3542 non_snake_case,
3543 clippy::pub_underscore_fields,
3544 clippy::style
3545 )]
3546 const _: () = {
3547 use alloy::sol_types as alloy_sol_types;
3548 {
3549 #[doc(hidden)]
3550 type UnderlyingSolTuple<'a> = ();
3551 #[doc(hidden)]
3552 type UnderlyingRustTuple<'a> = ();
3553 #[cfg(test)]
3554 #[allow(dead_code, unreachable_patterns)]
3555 fn _type_assertion(
3556 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3557 ) {
3558 match _t {
3559 alloy_sol_types::private::AssertTypeEq::<
3560 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3561 >(_) => {}
3562 }
3563 }
3564 #[automatically_derived]
3565 #[doc(hidden)]
3566 impl ::core::convert::From<BETA_H_Y0Call> for UnderlyingRustTuple<'_> {
3567 fn from(value: BETA_H_Y0Call) -> Self {
3568 ()
3569 }
3570 }
3571 #[automatically_derived]
3572 #[doc(hidden)]
3573 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BETA_H_Y0Call {
3574 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3575 Self {}
3576 }
3577 }
3578 }
3579 {
3580 #[doc(hidden)]
3581 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
3582 #[doc(hidden)]
3583 type UnderlyingRustTuple<'a> = (
3584 alloy::sol_types::private::primitives::aliases::U256,
3585 );
3586 #[cfg(test)]
3587 #[allow(dead_code, unreachable_patterns)]
3588 fn _type_assertion(
3589 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3590 ) {
3591 match _t {
3592 alloy_sol_types::private::AssertTypeEq::<
3593 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3594 >(_) => {}
3595 }
3596 }
3597 #[automatically_derived]
3598 #[doc(hidden)]
3599 impl ::core::convert::From<BETA_H_Y0Return> for UnderlyingRustTuple<'_> {
3600 fn from(value: BETA_H_Y0Return) -> Self {
3601 (value._0,)
3602 }
3603 }
3604 #[automatically_derived]
3605 #[doc(hidden)]
3606 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BETA_H_Y0Return {
3607 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3608 Self { _0: tuple.0 }
3609 }
3610 }
3611 }
3612 #[automatically_derived]
3613 impl alloy_sol_types::SolCall for BETA_H_Y0Call {
3614 type Parameters<'a> = ();
3615 type Token<'a> = <Self::Parameters<
3616 'a,
3617 > as alloy_sol_types::SolType>::Token<'a>;
3618 type Return = BETA_H_Y0Return;
3619 type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
3620 type ReturnToken<'a> = <Self::ReturnTuple<
3621 'a,
3622 > as alloy_sol_types::SolType>::Token<'a>;
3623 const SIGNATURE: &'static str = "BETA_H_Y0()";
3624 const SELECTOR: [u8; 4] = [245u8, 20u8, 67u8, 38u8];
3625 #[inline]
3626 fn new<'a>(
3627 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3628 ) -> Self {
3629 tuple.into()
3630 }
3631 #[inline]
3632 fn tokenize(&self) -> Self::Token<'_> {
3633 ()
3634 }
3635 #[inline]
3636 fn abi_decode_returns(
3637 data: &[u8],
3638 validate: bool,
3639 ) -> alloy_sol_types::Result<Self::Return> {
3640 <Self::ReturnTuple<
3641 '_,
3642 > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
3643 .map(Into::into)
3644 }
3645 }
3646 };
3647 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3648 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3653 #[derive(Clone)]
3654 pub struct BETA_H_Y1Call {}
3655 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3656 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3658 #[derive(Clone)]
3659 pub struct BETA_H_Y1Return {
3660 #[allow(missing_docs)]
3661 pub _0: alloy::sol_types::private::primitives::aliases::U256,
3662 }
3663 #[allow(
3664 non_camel_case_types,
3665 non_snake_case,
3666 clippy::pub_underscore_fields,
3667 clippy::style
3668 )]
3669 const _: () = {
3670 use alloy::sol_types as alloy_sol_types;
3671 {
3672 #[doc(hidden)]
3673 type UnderlyingSolTuple<'a> = ();
3674 #[doc(hidden)]
3675 type UnderlyingRustTuple<'a> = ();
3676 #[cfg(test)]
3677 #[allow(dead_code, unreachable_patterns)]
3678 fn _type_assertion(
3679 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3680 ) {
3681 match _t {
3682 alloy_sol_types::private::AssertTypeEq::<
3683 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3684 >(_) => {}
3685 }
3686 }
3687 #[automatically_derived]
3688 #[doc(hidden)]
3689 impl ::core::convert::From<BETA_H_Y1Call> for UnderlyingRustTuple<'_> {
3690 fn from(value: BETA_H_Y1Call) -> Self {
3691 ()
3692 }
3693 }
3694 #[automatically_derived]
3695 #[doc(hidden)]
3696 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BETA_H_Y1Call {
3697 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3698 Self {}
3699 }
3700 }
3701 }
3702 {
3703 #[doc(hidden)]
3704 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
3705 #[doc(hidden)]
3706 type UnderlyingRustTuple<'a> = (
3707 alloy::sol_types::private::primitives::aliases::U256,
3708 );
3709 #[cfg(test)]
3710 #[allow(dead_code, unreachable_patterns)]
3711 fn _type_assertion(
3712 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3713 ) {
3714 match _t {
3715 alloy_sol_types::private::AssertTypeEq::<
3716 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3717 >(_) => {}
3718 }
3719 }
3720 #[automatically_derived]
3721 #[doc(hidden)]
3722 impl ::core::convert::From<BETA_H_Y1Return> for UnderlyingRustTuple<'_> {
3723 fn from(value: BETA_H_Y1Return) -> Self {
3724 (value._0,)
3725 }
3726 }
3727 #[automatically_derived]
3728 #[doc(hidden)]
3729 impl ::core::convert::From<UnderlyingRustTuple<'_>> for BETA_H_Y1Return {
3730 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3731 Self { _0: tuple.0 }
3732 }
3733 }
3734 }
3735 #[automatically_derived]
3736 impl alloy_sol_types::SolCall for BETA_H_Y1Call {
3737 type Parameters<'a> = ();
3738 type Token<'a> = <Self::Parameters<
3739 'a,
3740 > as alloy_sol_types::SolType>::Token<'a>;
3741 type Return = BETA_H_Y1Return;
3742 type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
3743 type ReturnToken<'a> = <Self::ReturnTuple<
3744 'a,
3745 > as alloy_sol_types::SolType>::Token<'a>;
3746 const SIGNATURE: &'static str = "BETA_H_Y1()";
3747 const SELECTOR: [u8; 4] = [75u8, 71u8, 52u8, 227u8];
3748 #[inline]
3749 fn new<'a>(
3750 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3751 ) -> Self {
3752 tuple.into()
3753 }
3754 #[inline]
3755 fn tokenize(&self) -> Self::Token<'_> {
3756 ()
3757 }
3758 #[inline]
3759 fn abi_decode_returns(
3760 data: &[u8],
3761 validate: bool,
3762 ) -> alloy_sol_types::Result<Self::Return> {
3763 <Self::ReturnTuple<
3764 '_,
3765 > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
3766 .map(Into::into)
3767 }
3768 }
3769 };
3770 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3771 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3776 #[derive(Clone)]
3777 pub struct COSET_K1Call {}
3778 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3779 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3781 #[derive(Clone)]
3782 pub struct COSET_K1Return {
3783 #[allow(missing_docs)]
3784 pub _0: alloy::sol_types::private::primitives::aliases::U256,
3785 }
3786 #[allow(
3787 non_camel_case_types,
3788 non_snake_case,
3789 clippy::pub_underscore_fields,
3790 clippy::style
3791 )]
3792 const _: () = {
3793 use alloy::sol_types as alloy_sol_types;
3794 {
3795 #[doc(hidden)]
3796 type UnderlyingSolTuple<'a> = ();
3797 #[doc(hidden)]
3798 type UnderlyingRustTuple<'a> = ();
3799 #[cfg(test)]
3800 #[allow(dead_code, unreachable_patterns)]
3801 fn _type_assertion(
3802 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3803 ) {
3804 match _t {
3805 alloy_sol_types::private::AssertTypeEq::<
3806 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3807 >(_) => {}
3808 }
3809 }
3810 #[automatically_derived]
3811 #[doc(hidden)]
3812 impl ::core::convert::From<COSET_K1Call> for UnderlyingRustTuple<'_> {
3813 fn from(value: COSET_K1Call) -> Self {
3814 ()
3815 }
3816 }
3817 #[automatically_derived]
3818 #[doc(hidden)]
3819 impl ::core::convert::From<UnderlyingRustTuple<'_>> for COSET_K1Call {
3820 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3821 Self {}
3822 }
3823 }
3824 }
3825 {
3826 #[doc(hidden)]
3827 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
3828 #[doc(hidden)]
3829 type UnderlyingRustTuple<'a> = (
3830 alloy::sol_types::private::primitives::aliases::U256,
3831 );
3832 #[cfg(test)]
3833 #[allow(dead_code, unreachable_patterns)]
3834 fn _type_assertion(
3835 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3836 ) {
3837 match _t {
3838 alloy_sol_types::private::AssertTypeEq::<
3839 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3840 >(_) => {}
3841 }
3842 }
3843 #[automatically_derived]
3844 #[doc(hidden)]
3845 impl ::core::convert::From<COSET_K1Return> for UnderlyingRustTuple<'_> {
3846 fn from(value: COSET_K1Return) -> Self {
3847 (value._0,)
3848 }
3849 }
3850 #[automatically_derived]
3851 #[doc(hidden)]
3852 impl ::core::convert::From<UnderlyingRustTuple<'_>> for COSET_K1Return {
3853 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3854 Self { _0: tuple.0 }
3855 }
3856 }
3857 }
3858 #[automatically_derived]
3859 impl alloy_sol_types::SolCall for COSET_K1Call {
3860 type Parameters<'a> = ();
3861 type Token<'a> = <Self::Parameters<
3862 'a,
3863 > as alloy_sol_types::SolType>::Token<'a>;
3864 type Return = COSET_K1Return;
3865 type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
3866 type ReturnToken<'a> = <Self::ReturnTuple<
3867 'a,
3868 > as alloy_sol_types::SolType>::Token<'a>;
3869 const SIGNATURE: &'static str = "COSET_K1()";
3870 const SELECTOR: [u8; 4] = [227u8, 81u8, 45u8, 86u8];
3871 #[inline]
3872 fn new<'a>(
3873 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3874 ) -> Self {
3875 tuple.into()
3876 }
3877 #[inline]
3878 fn tokenize(&self) -> Self::Token<'_> {
3879 ()
3880 }
3881 #[inline]
3882 fn abi_decode_returns(
3883 data: &[u8],
3884 validate: bool,
3885 ) -> alloy_sol_types::Result<Self::Return> {
3886 <Self::ReturnTuple<
3887 '_,
3888 > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
3889 .map(Into::into)
3890 }
3891 }
3892 };
3893 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3894 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3899 #[derive(Clone)]
3900 pub struct COSET_K2Call {}
3901 #[derive(Default, Debug, PartialEq, Eq, Hash)]
3902 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
3904 #[derive(Clone)]
3905 pub struct COSET_K2Return {
3906 #[allow(missing_docs)]
3907 pub _0: alloy::sol_types::private::primitives::aliases::U256,
3908 }
3909 #[allow(
3910 non_camel_case_types,
3911 non_snake_case,
3912 clippy::pub_underscore_fields,
3913 clippy::style
3914 )]
3915 const _: () = {
3916 use alloy::sol_types as alloy_sol_types;
3917 {
3918 #[doc(hidden)]
3919 type UnderlyingSolTuple<'a> = ();
3920 #[doc(hidden)]
3921 type UnderlyingRustTuple<'a> = ();
3922 #[cfg(test)]
3923 #[allow(dead_code, unreachable_patterns)]
3924 fn _type_assertion(
3925 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3926 ) {
3927 match _t {
3928 alloy_sol_types::private::AssertTypeEq::<
3929 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3930 >(_) => {}
3931 }
3932 }
3933 #[automatically_derived]
3934 #[doc(hidden)]
3935 impl ::core::convert::From<COSET_K2Call> for UnderlyingRustTuple<'_> {
3936 fn from(value: COSET_K2Call) -> Self {
3937 ()
3938 }
3939 }
3940 #[automatically_derived]
3941 #[doc(hidden)]
3942 impl ::core::convert::From<UnderlyingRustTuple<'_>> for COSET_K2Call {
3943 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3944 Self {}
3945 }
3946 }
3947 }
3948 {
3949 #[doc(hidden)]
3950 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
3951 #[doc(hidden)]
3952 type UnderlyingRustTuple<'a> = (
3953 alloy::sol_types::private::primitives::aliases::U256,
3954 );
3955 #[cfg(test)]
3956 #[allow(dead_code, unreachable_patterns)]
3957 fn _type_assertion(
3958 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
3959 ) {
3960 match _t {
3961 alloy_sol_types::private::AssertTypeEq::<
3962 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
3963 >(_) => {}
3964 }
3965 }
3966 #[automatically_derived]
3967 #[doc(hidden)]
3968 impl ::core::convert::From<COSET_K2Return> for UnderlyingRustTuple<'_> {
3969 fn from(value: COSET_K2Return) -> Self {
3970 (value._0,)
3971 }
3972 }
3973 #[automatically_derived]
3974 #[doc(hidden)]
3975 impl ::core::convert::From<UnderlyingRustTuple<'_>> for COSET_K2Return {
3976 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
3977 Self { _0: tuple.0 }
3978 }
3979 }
3980 }
3981 #[automatically_derived]
3982 impl alloy_sol_types::SolCall for COSET_K2Call {
3983 type Parameters<'a> = ();
3984 type Token<'a> = <Self::Parameters<
3985 'a,
3986 > as alloy_sol_types::SolType>::Token<'a>;
3987 type Return = COSET_K2Return;
3988 type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
3989 type ReturnToken<'a> = <Self::ReturnTuple<
3990 'a,
3991 > as alloy_sol_types::SolType>::Token<'a>;
3992 const SIGNATURE: &'static str = "COSET_K2()";
3993 const SELECTOR: [u8; 4] = [12u8, 85u8, 31u8, 63u8];
3994 #[inline]
3995 fn new<'a>(
3996 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
3997 ) -> Self {
3998 tuple.into()
3999 }
4000 #[inline]
4001 fn tokenize(&self) -> Self::Token<'_> {
4002 ()
4003 }
4004 #[inline]
4005 fn abi_decode_returns(
4006 data: &[u8],
4007 validate: bool,
4008 ) -> alloy_sol_types::Result<Self::Return> {
4009 <Self::ReturnTuple<
4010 '_,
4011 > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
4012 .map(Into::into)
4013 }
4014 }
4015 };
4016 #[derive(Default, Debug, PartialEq, Eq, Hash)]
4017 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4022 #[derive(Clone)]
4023 pub struct COSET_K3Call {}
4024 #[derive(Default, Debug, PartialEq, Eq, Hash)]
4025 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4027 #[derive(Clone)]
4028 pub struct COSET_K3Return {
4029 #[allow(missing_docs)]
4030 pub _0: alloy::sol_types::private::primitives::aliases::U256,
4031 }
4032 #[allow(
4033 non_camel_case_types,
4034 non_snake_case,
4035 clippy::pub_underscore_fields,
4036 clippy::style
4037 )]
4038 const _: () = {
4039 use alloy::sol_types as alloy_sol_types;
4040 {
4041 #[doc(hidden)]
4042 type UnderlyingSolTuple<'a> = ();
4043 #[doc(hidden)]
4044 type UnderlyingRustTuple<'a> = ();
4045 #[cfg(test)]
4046 #[allow(dead_code, unreachable_patterns)]
4047 fn _type_assertion(
4048 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4049 ) {
4050 match _t {
4051 alloy_sol_types::private::AssertTypeEq::<
4052 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4053 >(_) => {}
4054 }
4055 }
4056 #[automatically_derived]
4057 #[doc(hidden)]
4058 impl ::core::convert::From<COSET_K3Call> for UnderlyingRustTuple<'_> {
4059 fn from(value: COSET_K3Call) -> Self {
4060 ()
4061 }
4062 }
4063 #[automatically_derived]
4064 #[doc(hidden)]
4065 impl ::core::convert::From<UnderlyingRustTuple<'_>> for COSET_K3Call {
4066 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4067 Self {}
4068 }
4069 }
4070 }
4071 {
4072 #[doc(hidden)]
4073 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4074 #[doc(hidden)]
4075 type UnderlyingRustTuple<'a> = (
4076 alloy::sol_types::private::primitives::aliases::U256,
4077 );
4078 #[cfg(test)]
4079 #[allow(dead_code, unreachable_patterns)]
4080 fn _type_assertion(
4081 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4082 ) {
4083 match _t {
4084 alloy_sol_types::private::AssertTypeEq::<
4085 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4086 >(_) => {}
4087 }
4088 }
4089 #[automatically_derived]
4090 #[doc(hidden)]
4091 impl ::core::convert::From<COSET_K3Return> for UnderlyingRustTuple<'_> {
4092 fn from(value: COSET_K3Return) -> Self {
4093 (value._0,)
4094 }
4095 }
4096 #[automatically_derived]
4097 #[doc(hidden)]
4098 impl ::core::convert::From<UnderlyingRustTuple<'_>> for COSET_K3Return {
4099 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4100 Self { _0: tuple.0 }
4101 }
4102 }
4103 }
4104 #[automatically_derived]
4105 impl alloy_sol_types::SolCall for COSET_K3Call {
4106 type Parameters<'a> = ();
4107 type Token<'a> = <Self::Parameters<
4108 'a,
4109 > as alloy_sol_types::SolType>::Token<'a>;
4110 type Return = COSET_K3Return;
4111 type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4112 type ReturnToken<'a> = <Self::ReturnTuple<
4113 'a,
4114 > as alloy_sol_types::SolType>::Token<'a>;
4115 const SIGNATURE: &'static str = "COSET_K3()";
4116 const SELECTOR: [u8; 4] = [90u8, 20u8, 192u8, 254u8];
4117 #[inline]
4118 fn new<'a>(
4119 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4120 ) -> Self {
4121 tuple.into()
4122 }
4123 #[inline]
4124 fn tokenize(&self) -> Self::Token<'_> {
4125 ()
4126 }
4127 #[inline]
4128 fn abi_decode_returns(
4129 data: &[u8],
4130 validate: bool,
4131 ) -> alloy_sol_types::Result<Self::Return> {
4132 <Self::ReturnTuple<
4133 '_,
4134 > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
4135 .map(Into::into)
4136 }
4137 }
4138 };
4139 #[derive(Default, Debug, PartialEq, Eq, Hash)]
4140 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4145 #[derive(Clone)]
4146 pub struct COSET_K4Call {}
4147 #[derive(Default, Debug, PartialEq, Eq, Hash)]
4148 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4150 #[derive(Clone)]
4151 pub struct COSET_K4Return {
4152 #[allow(missing_docs)]
4153 pub _0: alloy::sol_types::private::primitives::aliases::U256,
4154 }
4155 #[allow(
4156 non_camel_case_types,
4157 non_snake_case,
4158 clippy::pub_underscore_fields,
4159 clippy::style
4160 )]
4161 const _: () = {
4162 use alloy::sol_types as alloy_sol_types;
4163 {
4164 #[doc(hidden)]
4165 type UnderlyingSolTuple<'a> = ();
4166 #[doc(hidden)]
4167 type UnderlyingRustTuple<'a> = ();
4168 #[cfg(test)]
4169 #[allow(dead_code, unreachable_patterns)]
4170 fn _type_assertion(
4171 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4172 ) {
4173 match _t {
4174 alloy_sol_types::private::AssertTypeEq::<
4175 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4176 >(_) => {}
4177 }
4178 }
4179 #[automatically_derived]
4180 #[doc(hidden)]
4181 impl ::core::convert::From<COSET_K4Call> for UnderlyingRustTuple<'_> {
4182 fn from(value: COSET_K4Call) -> Self {
4183 ()
4184 }
4185 }
4186 #[automatically_derived]
4187 #[doc(hidden)]
4188 impl ::core::convert::From<UnderlyingRustTuple<'_>> for COSET_K4Call {
4189 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4190 Self {}
4191 }
4192 }
4193 }
4194 {
4195 #[doc(hidden)]
4196 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4197 #[doc(hidden)]
4198 type UnderlyingRustTuple<'a> = (
4199 alloy::sol_types::private::primitives::aliases::U256,
4200 );
4201 #[cfg(test)]
4202 #[allow(dead_code, unreachable_patterns)]
4203 fn _type_assertion(
4204 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4205 ) {
4206 match _t {
4207 alloy_sol_types::private::AssertTypeEq::<
4208 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4209 >(_) => {}
4210 }
4211 }
4212 #[automatically_derived]
4213 #[doc(hidden)]
4214 impl ::core::convert::From<COSET_K4Return> for UnderlyingRustTuple<'_> {
4215 fn from(value: COSET_K4Return) -> Self {
4216 (value._0,)
4217 }
4218 }
4219 #[automatically_derived]
4220 #[doc(hidden)]
4221 impl ::core::convert::From<UnderlyingRustTuple<'_>> for COSET_K4Return {
4222 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4223 Self { _0: tuple.0 }
4224 }
4225 }
4226 }
4227 #[automatically_derived]
4228 impl alloy_sol_types::SolCall for COSET_K4Call {
4229 type Parameters<'a> = ();
4230 type Token<'a> = <Self::Parameters<
4231 'a,
4232 > as alloy_sol_types::SolType>::Token<'a>;
4233 type Return = COSET_K4Return;
4234 type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
4235 type ReturnToken<'a> = <Self::ReturnTuple<
4236 'a,
4237 > as alloy_sol_types::SolType>::Token<'a>;
4238 const SIGNATURE: &'static str = "COSET_K4()";
4239 const SELECTOR: [u8; 4] = [222u8, 36u8, 172u8, 15u8];
4240 #[inline]
4241 fn new<'a>(
4242 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4243 ) -> Self {
4244 tuple.into()
4245 }
4246 #[inline]
4247 fn tokenize(&self) -> Self::Token<'_> {
4248 ()
4249 }
4250 #[inline]
4251 fn abi_decode_returns(
4252 data: &[u8],
4253 validate: bool,
4254 ) -> alloy_sol_types::Result<Self::Return> {
4255 <Self::ReturnTuple<
4256 '_,
4257 > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
4258 .map(Into::into)
4259 }
4260 }
4261 };
4262 #[derive()]
4263 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4268 #[derive(Clone)]
4269 pub struct verifyCall {
4270 #[allow(missing_docs)]
4271 pub verifyingKey: <IPlonkVerifier::VerifyingKey as alloy::sol_types::SolType>::RustType,
4272 #[allow(missing_docs)]
4273 pub publicInput: [alloy::sol_types::private::primitives::aliases::U256; 11usize],
4274 #[allow(missing_docs)]
4275 pub proof: <IPlonkVerifier::PlonkProof as alloy::sol_types::SolType>::RustType,
4276 }
4277 #[derive(Default, Debug, PartialEq, Eq, Hash)]
4278 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
4280 #[derive(Clone)]
4281 pub struct verifyReturn {
4282 #[allow(missing_docs)]
4283 pub _0: bool,
4284 }
4285 #[allow(
4286 non_camel_case_types,
4287 non_snake_case,
4288 clippy::pub_underscore_fields,
4289 clippy::style
4290 )]
4291 const _: () = {
4292 use alloy::sol_types as alloy_sol_types;
4293 {
4294 #[doc(hidden)]
4295 type UnderlyingSolTuple<'a> = (
4296 IPlonkVerifier::VerifyingKey,
4297 alloy::sol_types::sol_data::FixedArray<
4298 alloy::sol_types::sol_data::Uint<256>,
4299 11usize,
4300 >,
4301 IPlonkVerifier::PlonkProof,
4302 );
4303 #[doc(hidden)]
4304 type UnderlyingRustTuple<'a> = (
4305 <IPlonkVerifier::VerifyingKey as alloy::sol_types::SolType>::RustType,
4306 [alloy::sol_types::private::primitives::aliases::U256; 11usize],
4307 <IPlonkVerifier::PlonkProof as alloy::sol_types::SolType>::RustType,
4308 );
4309 #[cfg(test)]
4310 #[allow(dead_code, unreachable_patterns)]
4311 fn _type_assertion(
4312 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4313 ) {
4314 match _t {
4315 alloy_sol_types::private::AssertTypeEq::<
4316 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4317 >(_) => {}
4318 }
4319 }
4320 #[automatically_derived]
4321 #[doc(hidden)]
4322 impl ::core::convert::From<verifyCall> for UnderlyingRustTuple<'_> {
4323 fn from(value: verifyCall) -> Self {
4324 (value.verifyingKey, value.publicInput, value.proof)
4325 }
4326 }
4327 #[automatically_derived]
4328 #[doc(hidden)]
4329 impl ::core::convert::From<UnderlyingRustTuple<'_>> for verifyCall {
4330 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4331 Self {
4332 verifyingKey: tuple.0,
4333 publicInput: tuple.1,
4334 proof: tuple.2,
4335 }
4336 }
4337 }
4338 }
4339 {
4340 #[doc(hidden)]
4341 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,);
4342 #[doc(hidden)]
4343 type UnderlyingRustTuple<'a> = (bool,);
4344 #[cfg(test)]
4345 #[allow(dead_code, unreachable_patterns)]
4346 fn _type_assertion(
4347 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
4348 ) {
4349 match _t {
4350 alloy_sol_types::private::AssertTypeEq::<
4351 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
4352 >(_) => {}
4353 }
4354 }
4355 #[automatically_derived]
4356 #[doc(hidden)]
4357 impl ::core::convert::From<verifyReturn> for UnderlyingRustTuple<'_> {
4358 fn from(value: verifyReturn) -> Self {
4359 (value._0,)
4360 }
4361 }
4362 #[automatically_derived]
4363 #[doc(hidden)]
4364 impl ::core::convert::From<UnderlyingRustTuple<'_>> for verifyReturn {
4365 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
4366 Self { _0: tuple.0 }
4367 }
4368 }
4369 }
4370 #[automatically_derived]
4371 impl alloy_sol_types::SolCall for verifyCall {
4372 type Parameters<'a> = (
4373 IPlonkVerifier::VerifyingKey,
4374 alloy::sol_types::sol_data::FixedArray<
4375 alloy::sol_types::sol_data::Uint<256>,
4376 11usize,
4377 >,
4378 IPlonkVerifier::PlonkProof,
4379 );
4380 type Token<'a> = <Self::Parameters<
4381 'a,
4382 > as alloy_sol_types::SolType>::Token<'a>;
4383 type Return = verifyReturn;
4384 type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,);
4385 type ReturnToken<'a> = <Self::ReturnTuple<
4386 'a,
4387 > as alloy_sol_types::SolType>::Token<'a>;
4388 const SIGNATURE: &'static str = "verify((uint256,uint256,(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),bytes32,bytes32),uint256[11],((uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256))";
4389 const SELECTOR: [u8; 4] = [171u8, 149u8, 158u8, 227u8];
4390 #[inline]
4391 fn new<'a>(
4392 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
4393 ) -> Self {
4394 tuple.into()
4395 }
4396 #[inline]
4397 fn tokenize(&self) -> Self::Token<'_> {
4398 (
4399 <IPlonkVerifier::VerifyingKey as alloy_sol_types::SolType>::tokenize(
4400 &self.verifyingKey,
4401 ),
4402 <alloy::sol_types::sol_data::FixedArray<
4403 alloy::sol_types::sol_data::Uint<256>,
4404 11usize,
4405 > as alloy_sol_types::SolType>::tokenize(&self.publicInput),
4406 <IPlonkVerifier::PlonkProof as alloy_sol_types::SolType>::tokenize(
4407 &self.proof,
4408 ),
4409 )
4410 }
4411 #[inline]
4412 fn abi_decode_returns(
4413 data: &[u8],
4414 validate: bool,
4415 ) -> alloy_sol_types::Result<Self::Return> {
4416 <Self::ReturnTuple<
4417 '_,
4418 > as alloy_sol_types::SolType>::abi_decode_sequence(data, validate)
4419 .map(Into::into)
4420 }
4421 }
4422 };
4423 #[derive()]
4425 pub enum PlonkVerifierV2Calls {
4426 #[allow(missing_docs)]
4427 BETA_H_X0(BETA_H_X0Call),
4428 #[allow(missing_docs)]
4429 BETA_H_X1(BETA_H_X1Call),
4430 #[allow(missing_docs)]
4431 BETA_H_Y0(BETA_H_Y0Call),
4432 #[allow(missing_docs)]
4433 BETA_H_Y1(BETA_H_Y1Call),
4434 #[allow(missing_docs)]
4435 COSET_K1(COSET_K1Call),
4436 #[allow(missing_docs)]
4437 COSET_K2(COSET_K2Call),
4438 #[allow(missing_docs)]
4439 COSET_K3(COSET_K3Call),
4440 #[allow(missing_docs)]
4441 COSET_K4(COSET_K4Call),
4442 #[allow(missing_docs)]
4443 verify(verifyCall),
4444 }
4445 #[automatically_derived]
4446 impl PlonkVerifierV2Calls {
4447 pub const SELECTORS: &'static [[u8; 4usize]] = &[
4454 [12u8, 85u8, 31u8, 63u8],
4455 [75u8, 71u8, 52u8, 227u8],
4456 [90u8, 20u8, 192u8, 254u8],
4457 [131u8, 76u8, 69u8, 42u8],
4458 [171u8, 149u8, 158u8, 227u8],
4459 [175u8, 25u8, 107u8, 162u8],
4460 [222u8, 36u8, 172u8, 15u8],
4461 [227u8, 81u8, 45u8, 86u8],
4462 [245u8, 20u8, 67u8, 38u8],
4463 ];
4464 }
4465 #[automatically_derived]
4466 impl alloy_sol_types::SolInterface for PlonkVerifierV2Calls {
4467 const NAME: &'static str = "PlonkVerifierV2Calls";
4468 const MIN_DATA_LENGTH: usize = 0usize;
4469 const COUNT: usize = 9usize;
4470 #[inline]
4471 fn selector(&self) -> [u8; 4] {
4472 match self {
4473 Self::BETA_H_X0(_) => {
4474 <BETA_H_X0Call as alloy_sol_types::SolCall>::SELECTOR
4475 }
4476 Self::BETA_H_X1(_) => {
4477 <BETA_H_X1Call as alloy_sol_types::SolCall>::SELECTOR
4478 }
4479 Self::BETA_H_Y0(_) => {
4480 <BETA_H_Y0Call as alloy_sol_types::SolCall>::SELECTOR
4481 }
4482 Self::BETA_H_Y1(_) => {
4483 <BETA_H_Y1Call as alloy_sol_types::SolCall>::SELECTOR
4484 }
4485 Self::COSET_K1(_) => <COSET_K1Call as alloy_sol_types::SolCall>::SELECTOR,
4486 Self::COSET_K2(_) => <COSET_K2Call as alloy_sol_types::SolCall>::SELECTOR,
4487 Self::COSET_K3(_) => <COSET_K3Call as alloy_sol_types::SolCall>::SELECTOR,
4488 Self::COSET_K4(_) => <COSET_K4Call as alloy_sol_types::SolCall>::SELECTOR,
4489 Self::verify(_) => <verifyCall as alloy_sol_types::SolCall>::SELECTOR,
4490 }
4491 }
4492 #[inline]
4493 fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> {
4494 Self::SELECTORS.get(i).copied()
4495 }
4496 #[inline]
4497 fn valid_selector(selector: [u8; 4]) -> bool {
4498 Self::SELECTORS.binary_search(&selector).is_ok()
4499 }
4500 #[inline]
4501 #[allow(non_snake_case)]
4502 fn abi_decode_raw(
4503 selector: [u8; 4],
4504 data: &[u8],
4505 validate: bool,
4506 ) -> alloy_sol_types::Result<Self> {
4507 static DECODE_SHIMS: &[fn(
4508 &[u8],
4509 bool,
4510 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls>] = &[
4511 {
4512 fn COSET_K2(
4513 data: &[u8],
4514 validate: bool,
4515 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls> {
4516 <COSET_K2Call as alloy_sol_types::SolCall>::abi_decode_raw(
4517 data,
4518 validate,
4519 )
4520 .map(PlonkVerifierV2Calls::COSET_K2)
4521 }
4522 COSET_K2
4523 },
4524 {
4525 fn BETA_H_Y1(
4526 data: &[u8],
4527 validate: bool,
4528 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls> {
4529 <BETA_H_Y1Call as alloy_sol_types::SolCall>::abi_decode_raw(
4530 data,
4531 validate,
4532 )
4533 .map(PlonkVerifierV2Calls::BETA_H_Y1)
4534 }
4535 BETA_H_Y1
4536 },
4537 {
4538 fn COSET_K3(
4539 data: &[u8],
4540 validate: bool,
4541 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls> {
4542 <COSET_K3Call as alloy_sol_types::SolCall>::abi_decode_raw(
4543 data,
4544 validate,
4545 )
4546 .map(PlonkVerifierV2Calls::COSET_K3)
4547 }
4548 COSET_K3
4549 },
4550 {
4551 fn BETA_H_X0(
4552 data: &[u8],
4553 validate: bool,
4554 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls> {
4555 <BETA_H_X0Call as alloy_sol_types::SolCall>::abi_decode_raw(
4556 data,
4557 validate,
4558 )
4559 .map(PlonkVerifierV2Calls::BETA_H_X0)
4560 }
4561 BETA_H_X0
4562 },
4563 {
4564 fn verify(
4565 data: &[u8],
4566 validate: bool,
4567 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls> {
4568 <verifyCall as alloy_sol_types::SolCall>::abi_decode_raw(
4569 data,
4570 validate,
4571 )
4572 .map(PlonkVerifierV2Calls::verify)
4573 }
4574 verify
4575 },
4576 {
4577 fn BETA_H_X1(
4578 data: &[u8],
4579 validate: bool,
4580 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls> {
4581 <BETA_H_X1Call as alloy_sol_types::SolCall>::abi_decode_raw(
4582 data,
4583 validate,
4584 )
4585 .map(PlonkVerifierV2Calls::BETA_H_X1)
4586 }
4587 BETA_H_X1
4588 },
4589 {
4590 fn COSET_K4(
4591 data: &[u8],
4592 validate: bool,
4593 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls> {
4594 <COSET_K4Call as alloy_sol_types::SolCall>::abi_decode_raw(
4595 data,
4596 validate,
4597 )
4598 .map(PlonkVerifierV2Calls::COSET_K4)
4599 }
4600 COSET_K4
4601 },
4602 {
4603 fn COSET_K1(
4604 data: &[u8],
4605 validate: bool,
4606 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls> {
4607 <COSET_K1Call as alloy_sol_types::SolCall>::abi_decode_raw(
4608 data,
4609 validate,
4610 )
4611 .map(PlonkVerifierV2Calls::COSET_K1)
4612 }
4613 COSET_K1
4614 },
4615 {
4616 fn BETA_H_Y0(
4617 data: &[u8],
4618 validate: bool,
4619 ) -> alloy_sol_types::Result<PlonkVerifierV2Calls> {
4620 <BETA_H_Y0Call as alloy_sol_types::SolCall>::abi_decode_raw(
4621 data,
4622 validate,
4623 )
4624 .map(PlonkVerifierV2Calls::BETA_H_Y0)
4625 }
4626 BETA_H_Y0
4627 },
4628 ];
4629 let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
4630 return Err(
4631 alloy_sol_types::Error::unknown_selector(
4632 <Self as alloy_sol_types::SolInterface>::NAME,
4633 selector,
4634 ),
4635 );
4636 };
4637 DECODE_SHIMS[idx](data, validate)
4638 }
4639 #[inline]
4640 fn abi_encoded_size(&self) -> usize {
4641 match self {
4642 Self::BETA_H_X0(inner) => {
4643 <BETA_H_X0Call as alloy_sol_types::SolCall>::abi_encoded_size(inner)
4644 }
4645 Self::BETA_H_X1(inner) => {
4646 <BETA_H_X1Call as alloy_sol_types::SolCall>::abi_encoded_size(inner)
4647 }
4648 Self::BETA_H_Y0(inner) => {
4649 <BETA_H_Y0Call as alloy_sol_types::SolCall>::abi_encoded_size(inner)
4650 }
4651 Self::BETA_H_Y1(inner) => {
4652 <BETA_H_Y1Call as alloy_sol_types::SolCall>::abi_encoded_size(inner)
4653 }
4654 Self::COSET_K1(inner) => {
4655 <COSET_K1Call as alloy_sol_types::SolCall>::abi_encoded_size(inner)
4656 }
4657 Self::COSET_K2(inner) => {
4658 <COSET_K2Call as alloy_sol_types::SolCall>::abi_encoded_size(inner)
4659 }
4660 Self::COSET_K3(inner) => {
4661 <COSET_K3Call as alloy_sol_types::SolCall>::abi_encoded_size(inner)
4662 }
4663 Self::COSET_K4(inner) => {
4664 <COSET_K4Call as alloy_sol_types::SolCall>::abi_encoded_size(inner)
4665 }
4666 Self::verify(inner) => {
4667 <verifyCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
4668 }
4669 }
4670 }
4671 #[inline]
4672 fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
4673 match self {
4674 Self::BETA_H_X0(inner) => {
4675 <BETA_H_X0Call as alloy_sol_types::SolCall>::abi_encode_raw(
4676 inner,
4677 out,
4678 )
4679 }
4680 Self::BETA_H_X1(inner) => {
4681 <BETA_H_X1Call as alloy_sol_types::SolCall>::abi_encode_raw(
4682 inner,
4683 out,
4684 )
4685 }
4686 Self::BETA_H_Y0(inner) => {
4687 <BETA_H_Y0Call as alloy_sol_types::SolCall>::abi_encode_raw(
4688 inner,
4689 out,
4690 )
4691 }
4692 Self::BETA_H_Y1(inner) => {
4693 <BETA_H_Y1Call as alloy_sol_types::SolCall>::abi_encode_raw(
4694 inner,
4695 out,
4696 )
4697 }
4698 Self::COSET_K1(inner) => {
4699 <COSET_K1Call as alloy_sol_types::SolCall>::abi_encode_raw(
4700 inner,
4701 out,
4702 )
4703 }
4704 Self::COSET_K2(inner) => {
4705 <COSET_K2Call as alloy_sol_types::SolCall>::abi_encode_raw(
4706 inner,
4707 out,
4708 )
4709 }
4710 Self::COSET_K3(inner) => {
4711 <COSET_K3Call as alloy_sol_types::SolCall>::abi_encode_raw(
4712 inner,
4713 out,
4714 )
4715 }
4716 Self::COSET_K4(inner) => {
4717 <COSET_K4Call as alloy_sol_types::SolCall>::abi_encode_raw(
4718 inner,
4719 out,
4720 )
4721 }
4722 Self::verify(inner) => {
4723 <verifyCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
4724 }
4725 }
4726 }
4727 }
4728 #[derive(Debug, PartialEq, Eq, Hash)]
4730 pub enum PlonkVerifierV2Errors {
4731 #[allow(missing_docs)]
4732 InvalidPlonkArgs(InvalidPlonkArgs),
4733 #[allow(missing_docs)]
4734 UnsupportedDegree(UnsupportedDegree),
4735 #[allow(missing_docs)]
4736 WrongPlonkVK(WrongPlonkVK),
4737 }
4738 #[automatically_derived]
4739 impl PlonkVerifierV2Errors {
4740 pub const SELECTORS: &'static [[u8; 4usize]] = &[
4747 [65u8, 245u8, 59u8, 18u8],
4748 [226u8, 239u8, 9u8, 229u8],
4749 [253u8, 154u8, 45u8, 27u8],
4750 ];
4751 }
4752 #[automatically_derived]
4753 impl alloy_sol_types::SolInterface for PlonkVerifierV2Errors {
4754 const NAME: &'static str = "PlonkVerifierV2Errors";
4755 const MIN_DATA_LENGTH: usize = 0usize;
4756 const COUNT: usize = 3usize;
4757 #[inline]
4758 fn selector(&self) -> [u8; 4] {
4759 match self {
4760 Self::InvalidPlonkArgs(_) => {
4761 <InvalidPlonkArgs as alloy_sol_types::SolError>::SELECTOR
4762 }
4763 Self::UnsupportedDegree(_) => {
4764 <UnsupportedDegree as alloy_sol_types::SolError>::SELECTOR
4765 }
4766 Self::WrongPlonkVK(_) => {
4767 <WrongPlonkVK as alloy_sol_types::SolError>::SELECTOR
4768 }
4769 }
4770 }
4771 #[inline]
4772 fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> {
4773 Self::SELECTORS.get(i).copied()
4774 }
4775 #[inline]
4776 fn valid_selector(selector: [u8; 4]) -> bool {
4777 Self::SELECTORS.binary_search(&selector).is_ok()
4778 }
4779 #[inline]
4780 #[allow(non_snake_case)]
4781 fn abi_decode_raw(
4782 selector: [u8; 4],
4783 data: &[u8],
4784 validate: bool,
4785 ) -> alloy_sol_types::Result<Self> {
4786 static DECODE_SHIMS: &[fn(
4787 &[u8],
4788 bool,
4789 ) -> alloy_sol_types::Result<PlonkVerifierV2Errors>] = &[
4790 {
4791 fn WrongPlonkVK(
4792 data: &[u8],
4793 validate: bool,
4794 ) -> alloy_sol_types::Result<PlonkVerifierV2Errors> {
4795 <WrongPlonkVK as alloy_sol_types::SolError>::abi_decode_raw(
4796 data,
4797 validate,
4798 )
4799 .map(PlonkVerifierV2Errors::WrongPlonkVK)
4800 }
4801 WrongPlonkVK
4802 },
4803 {
4804 fn UnsupportedDegree(
4805 data: &[u8],
4806 validate: bool,
4807 ) -> alloy_sol_types::Result<PlonkVerifierV2Errors> {
4808 <UnsupportedDegree as alloy_sol_types::SolError>::abi_decode_raw(
4809 data,
4810 validate,
4811 )
4812 .map(PlonkVerifierV2Errors::UnsupportedDegree)
4813 }
4814 UnsupportedDegree
4815 },
4816 {
4817 fn InvalidPlonkArgs(
4818 data: &[u8],
4819 validate: bool,
4820 ) -> alloy_sol_types::Result<PlonkVerifierV2Errors> {
4821 <InvalidPlonkArgs as alloy_sol_types::SolError>::abi_decode_raw(
4822 data,
4823 validate,
4824 )
4825 .map(PlonkVerifierV2Errors::InvalidPlonkArgs)
4826 }
4827 InvalidPlonkArgs
4828 },
4829 ];
4830 let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
4831 return Err(
4832 alloy_sol_types::Error::unknown_selector(
4833 <Self as alloy_sol_types::SolInterface>::NAME,
4834 selector,
4835 ),
4836 );
4837 };
4838 DECODE_SHIMS[idx](data, validate)
4839 }
4840 #[inline]
4841 fn abi_encoded_size(&self) -> usize {
4842 match self {
4843 Self::InvalidPlonkArgs(inner) => {
4844 <InvalidPlonkArgs as alloy_sol_types::SolError>::abi_encoded_size(
4845 inner,
4846 )
4847 }
4848 Self::UnsupportedDegree(inner) => {
4849 <UnsupportedDegree as alloy_sol_types::SolError>::abi_encoded_size(
4850 inner,
4851 )
4852 }
4853 Self::WrongPlonkVK(inner) => {
4854 <WrongPlonkVK as alloy_sol_types::SolError>::abi_encoded_size(inner)
4855 }
4856 }
4857 }
4858 #[inline]
4859 fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
4860 match self {
4861 Self::InvalidPlonkArgs(inner) => {
4862 <InvalidPlonkArgs as alloy_sol_types::SolError>::abi_encode_raw(
4863 inner,
4864 out,
4865 )
4866 }
4867 Self::UnsupportedDegree(inner) => {
4868 <UnsupportedDegree as alloy_sol_types::SolError>::abi_encode_raw(
4869 inner,
4870 out,
4871 )
4872 }
4873 Self::WrongPlonkVK(inner) => {
4874 <WrongPlonkVK as alloy_sol_types::SolError>::abi_encode_raw(
4875 inner,
4876 out,
4877 )
4878 }
4879 }
4880 }
4881 }
4882 use alloy::contract as alloy_contract;
4883 #[inline]
4887 pub const fn new<
4888 T: alloy_contract::private::Transport + ::core::clone::Clone,
4889 P: alloy_contract::private::Provider<T, N>,
4890 N: alloy_contract::private::Network,
4891 >(
4892 address: alloy_sol_types::private::Address,
4893 provider: P,
4894 ) -> PlonkVerifierV2Instance<T, P, N> {
4895 PlonkVerifierV2Instance::<T, P, N>::new(address, provider)
4896 }
4897 #[inline]
4903 pub fn deploy<
4904 T: alloy_contract::private::Transport + ::core::clone::Clone,
4905 P: alloy_contract::private::Provider<T, N>,
4906 N: alloy_contract::private::Network,
4907 >(
4908 provider: P,
4909 ) -> impl ::core::future::Future<
4910 Output = alloy_contract::Result<PlonkVerifierV2Instance<T, P, N>>,
4911 > {
4912 PlonkVerifierV2Instance::<T, P, N>::deploy(provider)
4913 }
4914 #[inline]
4920 pub fn deploy_builder<
4921 T: alloy_contract::private::Transport + ::core::clone::Clone,
4922 P: alloy_contract::private::Provider<T, N>,
4923 N: alloy_contract::private::Network,
4924 >(provider: P) -> alloy_contract::RawCallBuilder<T, P, N> {
4925 PlonkVerifierV2Instance::<T, P, N>::deploy_builder(provider)
4926 }
4927 #[derive(Clone)]
4939 pub struct PlonkVerifierV2Instance<T, P, N = alloy_contract::private::Ethereum> {
4940 address: alloy_sol_types::private::Address,
4941 provider: P,
4942 _network_transport: ::core::marker::PhantomData<(N, T)>,
4943 }
4944 #[automatically_derived]
4945 impl<T, P, N> ::core::fmt::Debug for PlonkVerifierV2Instance<T, P, N> {
4946 #[inline]
4947 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
4948 f.debug_tuple("PlonkVerifierV2Instance").field(&self.address).finish()
4949 }
4950 }
4951 #[automatically_derived]
4953 impl<
4954 T: alloy_contract::private::Transport + ::core::clone::Clone,
4955 P: alloy_contract::private::Provider<T, N>,
4956 N: alloy_contract::private::Network,
4957 > PlonkVerifierV2Instance<T, P, N> {
4958 #[inline]
4962 pub const fn new(
4963 address: alloy_sol_types::private::Address,
4964 provider: P,
4965 ) -> Self {
4966 Self {
4967 address,
4968 provider,
4969 _network_transport: ::core::marker::PhantomData,
4970 }
4971 }
4972 #[inline]
4978 pub async fn deploy(
4979 provider: P,
4980 ) -> alloy_contract::Result<PlonkVerifierV2Instance<T, P, N>> {
4981 let call_builder = Self::deploy_builder(provider);
4982 let contract_address = call_builder.deploy().await?;
4983 Ok(Self::new(contract_address, call_builder.provider))
4984 }
4985 #[inline]
4991 pub fn deploy_builder(provider: P) -> alloy_contract::RawCallBuilder<T, P, N> {
4992 alloy_contract::RawCallBuilder::new_raw_deploy(
4993 provider,
4994 ::core::clone::Clone::clone(&BYTECODE),
4995 )
4996 }
4997 #[inline]
4999 pub const fn address(&self) -> &alloy_sol_types::private::Address {
5000 &self.address
5001 }
5002 #[inline]
5004 pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
5005 self.address = address;
5006 }
5007 pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
5009 self.set_address(address);
5010 self
5011 }
5012 #[inline]
5014 pub const fn provider(&self) -> &P {
5015 &self.provider
5016 }
5017 }
5018 impl<T, P: ::core::clone::Clone, N> PlonkVerifierV2Instance<T, &P, N> {
5019 #[inline]
5021 pub fn with_cloned_provider(self) -> PlonkVerifierV2Instance<T, P, N> {
5022 PlonkVerifierV2Instance {
5023 address: self.address,
5024 provider: ::core::clone::Clone::clone(&self.provider),
5025 _network_transport: ::core::marker::PhantomData,
5026 }
5027 }
5028 }
5029 #[automatically_derived]
5031 impl<
5032 T: alloy_contract::private::Transport + ::core::clone::Clone,
5033 P: alloy_contract::private::Provider<T, N>,
5034 N: alloy_contract::private::Network,
5035 > PlonkVerifierV2Instance<T, P, N> {
5036 pub fn call_builder<C: alloy_sol_types::SolCall>(
5041 &self,
5042 call: &C,
5043 ) -> alloy_contract::SolCallBuilder<T, &P, C, N> {
5044 alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
5045 }
5046 pub fn BETA_H_X0(
5048 &self,
5049 ) -> alloy_contract::SolCallBuilder<T, &P, BETA_H_X0Call, N> {
5050 self.call_builder(&BETA_H_X0Call {})
5051 }
5052 pub fn BETA_H_X1(
5054 &self,
5055 ) -> alloy_contract::SolCallBuilder<T, &P, BETA_H_X1Call, N> {
5056 self.call_builder(&BETA_H_X1Call {})
5057 }
5058 pub fn BETA_H_Y0(
5060 &self,
5061 ) -> alloy_contract::SolCallBuilder<T, &P, BETA_H_Y0Call, N> {
5062 self.call_builder(&BETA_H_Y0Call {})
5063 }
5064 pub fn BETA_H_Y1(
5066 &self,
5067 ) -> alloy_contract::SolCallBuilder<T, &P, BETA_H_Y1Call, N> {
5068 self.call_builder(&BETA_H_Y1Call {})
5069 }
5070 pub fn COSET_K1(
5072 &self,
5073 ) -> alloy_contract::SolCallBuilder<T, &P, COSET_K1Call, N> {
5074 self.call_builder(&COSET_K1Call {})
5075 }
5076 pub fn COSET_K2(
5078 &self,
5079 ) -> alloy_contract::SolCallBuilder<T, &P, COSET_K2Call, N> {
5080 self.call_builder(&COSET_K2Call {})
5081 }
5082 pub fn COSET_K3(
5084 &self,
5085 ) -> alloy_contract::SolCallBuilder<T, &P, COSET_K3Call, N> {
5086 self.call_builder(&COSET_K3Call {})
5087 }
5088 pub fn COSET_K4(
5090 &self,
5091 ) -> alloy_contract::SolCallBuilder<T, &P, COSET_K4Call, N> {
5092 self.call_builder(&COSET_K4Call {})
5093 }
5094 pub fn verify(
5096 &self,
5097 verifyingKey: <IPlonkVerifier::VerifyingKey as alloy::sol_types::SolType>::RustType,
5098 publicInput: [alloy::sol_types::private::primitives::aliases::U256; 11usize],
5099 proof: <IPlonkVerifier::PlonkProof as alloy::sol_types::SolType>::RustType,
5100 ) -> alloy_contract::SolCallBuilder<T, &P, verifyCall, N> {
5101 self.call_builder(
5102 &verifyCall {
5103 verifyingKey,
5104 publicInput,
5105 proof,
5106 },
5107 )
5108 }
5109 }
5110 #[automatically_derived]
5112 impl<
5113 T: alloy_contract::private::Transport + ::core::clone::Clone,
5114 P: alloy_contract::private::Provider<T, N>,
5115 N: alloy_contract::private::Network,
5116 > PlonkVerifierV2Instance<T, P, N> {
5117 pub fn event_filter<E: alloy_sol_types::SolEvent>(
5122 &self,
5123 ) -> alloy_contract::Event<T, &P, E, N> {
5124 alloy_contract::Event::new_sol(&self.provider, &self.address)
5125 }
5126 }
5127}