From 9c45e546646194cf734a07d6e611a12baa4be779 Mon Sep 17 00:00:00 2001 From: "github-merge-queue[bot]" Date: Thu, 14 Mar 2024 19:02:09 +0000 Subject: [PATCH] deploy: 61334546b02839ce17e232c827e8cdcbea8816b2 --- docs/arecibo/supernova/fn.circuit_digest.html | 2 +- docs/arecibo/supernova/index.html | 2 +- .../supernova/struct.PublicParams.html | 8 +++-- .../supernova/struct.RecursiveSNARK.html | 26 +++++++-------- .../supernova/trait.NonUniformCircuit.html | 14 ++++---- docs/search-index.js | 2 +- docs/src/arecibo/supernova/mod.rs.html | 32 +++++++++++++++++++ 7 files changed, 60 insertions(+), 26 deletions(-) diff --git a/docs/arecibo/supernova/fn.circuit_digest.html b/docs/arecibo/supernova/fn.circuit_digest.html index e64deb8c6..3866e2391 100644 --- a/docs/arecibo/supernova/fn.circuit_digest.html +++ b/docs/arecibo/supernova/fn.circuit_digest.html @@ -1,5 +1,5 @@ circuit_digest in arecibo::supernova - Rust -
pub fn circuit_digest<E1: CurveCycleEquipped, C: StepCircuit<E1::Scalar>>(
+    
pub fn circuit_digest<E1: CurveCycleEquipped, C: StepCircuit<E1::Scalar>>(
     circuit: &C,
     num_augmented_circuits: usize
 ) -> E1::Scalar
Expand description

Compute the circuit digest of a supernova StepCircuit.

diff --git a/docs/arecibo/supernova/index.html b/docs/arecibo/supernova/index.html index bc5d52651..fe15ac305 100644 --- a/docs/arecibo/supernova/index.html +++ b/docs/arecibo/supernova/index.html @@ -1,5 +1,5 @@ arecibo::supernova - Rust -

Module arecibo::supernova

source ·
Expand description

SuperNova Description

+

Module arecibo::supernova

source ·
Expand description

SuperNova Description

This document explains from a high-level how the SuperNova protocol was implemented in Arecibo. We aim to provide a mathematical description of the protocol, as it is implemented, and highlight the differences with the original paper.

Terminology and Concept Clarifications

diff --git a/docs/arecibo/supernova/struct.PublicParams.html b/docs/arecibo/supernova/struct.PublicParams.html index 347362683..1ea09c10f 100644 --- a/docs/arecibo/supernova/struct.PublicParams.html +++ b/docs/arecibo/supernova/struct.PublicParams.html @@ -1,7 +1,7 @@ -PublicParams in arecibo::supernova - Rust +PublicParams in arecibo::supernova - Rust
pub struct PublicParams<E1>{ /* private fields */ }
Expand description

A vector of R1CSWithArity adjoined to a set of PublicParams

-

Implementations§

source§

impl<E1> PublicParams<E1>
where +

Implementations§

source§

impl<E1> PublicParams<E1>

source

pub fn setup<NC: NonUniformCircuit<E1>>( non_uniform_circuit: &NC, ck_hint1: &CommitmentKeyHint<E1>, @@ -31,7 +31,9 @@

Arguments
) -> Self

Create a PublicParams from a vector of raw R1CSWithArity and auxiliary params. We don’t check that the aux_params.digest is a valid digest for the created params.

source

pub fn digest(&self) -> E1::Scalar

Return the PublicParams’ digest.

-
source

pub fn circuit_param_digests(&self) -> CircuitDigests<E1>

All of the primary circuit digests of this PublicParams

+
source

pub fn num_constraints_and_variables(&self, index: usize) -> (usize, usize)

Returns the number of constraints and variables of inner circuit based on index

+
source

pub fn num_constraints_and_variables_secondary(&self) -> (usize, usize)

Returns the number of constraints and variables of the secondary circuit

+
source

pub fn circuit_param_digests(&self) -> CircuitDigests<E1>

All of the primary circuit digests of this PublicParams

Trait Implementations§

source§

impl<E1> Debug for PublicParams<E1>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<E1> Index<usize> for PublicParams<E1>
where diff --git a/docs/arecibo/supernova/struct.RecursiveSNARK.html b/docs/arecibo/supernova/struct.RecursiveSNARK.html index 981b1d338..5a6d3acaf 100644 --- a/docs/arecibo/supernova/struct.RecursiveSNARK.html +++ b/docs/arecibo/supernova/struct.RecursiveSNARK.html @@ -1,8 +1,8 @@ RecursiveSNARK in arecibo::supernova - Rust -
pub struct RecursiveSNARK<E1>
where +
pub struct RecursiveSNARK<E1>{ /* private fields */ }
Expand description

A SNARK that proves the correct execution of an non-uniform incremental computation

-

Implementations§

source§

impl<E1> RecursiveSNARK<E1>
where - E1: CurveCycleEquipped,

source

pub fn new<C0: NonUniformCircuit<E1>>( +

Implementations§

source§

impl<E1> RecursiveSNARK<E1>
where + E1: CurveCycleEquipped,

source

pub fn new<C0: NonUniformCircuit<E1>>( pp: &PublicParams<E1>, non_uniform_circuit: &C0, c_primary: &C0::C1, @@ -10,28 +10,28 @@ z0_primary: &[E1::Scalar], z0_secondary: &[<Dual<E1> as Engine>::Scalar] ) -> Result<Self, SuperNovaError>

iterate base step to get new instance of recursive SNARK

-
source

pub fn z0_primary(&self) -> &Vec<E1::Scalar>

Inputs of the primary circuits

-
source

pub fn zi_primary(&self) -> &Vec<E1::Scalar>

Outputs of the primary circuits

-
source

pub fn prove_step<C1: StepCircuit<E1::Scalar>, C2: StepCircuit<<Dual<E1> as Engine>::Scalar>>( +

source

pub fn z0_primary(&self) -> &Vec<E1::Scalar>

Inputs of the primary circuits

+
source

pub fn zi_primary(&self) -> &Vec<E1::Scalar>

Outputs of the primary circuits

+
source

pub fn prove_step<C1: StepCircuit<E1::Scalar>, C2: StepCircuit<<Dual<E1> as Engine>::Scalar>>( &mut self, pp: &PublicParams<E1>, c_primary: &C1, c_secondary: &C2 ) -> Result<(), SuperNovaError>

executing a step of the incremental computation

-
source

pub fn verify( +

source

pub fn verify( &self, pp: &PublicParams<E1>, z0_primary: &[E1::Scalar], z0_secondary: &[<Dual<E1> as Engine>::Scalar] ) -> Result<(Vec<E1::Scalar>, Vec<<Dual<E1> as Engine>::Scalar>), SuperNovaError>

verify recursive snark

-

Trait Implementations§

source§

impl<E1> Clone for RecursiveSNARK<E1>
where +

Trait Implementations§

source§

impl<E1> Clone for RecursiveSNARK<E1>
where E1: CurveCycleEquipped + Clone, - E1::Scalar: Clone,

source§

fn clone(&self) -> RecursiveSNARK<E1>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<E1> Debug for RecursiveSNARK<E1>
where + E1::Scalar: Clone,

source§

fn clone(&self) -> RecursiveSNARK<E1>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<E1> Debug for RecursiveSNARK<E1>
where E1: CurveCycleEquipped + Debug, - E1::Scalar: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de, E1> Deserialize<'de> for RecursiveSNARK<E1>
where - E1: CurveCycleEquipped,

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl<E1> Serialize for RecursiveSNARK<E1>
where - E1: CurveCycleEquipped,

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + E1::Scalar: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de, E1> Deserialize<'de> for RecursiveSNARK<E1>
where + E1: CurveCycleEquipped,

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl<E1> Serialize for RecursiveSNARK<E1>
where + E1: CurveCycleEquipped,

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

§

impl<E1> RefUnwindSafe for RecursiveSNARK<E1>
where <E1 as Engine>::Base: RefUnwindSafe, <<E1 as Engine>::CE as CommitmentEngineTrait<E1>>::Commitment: RefUnwindSafe, diff --git a/docs/arecibo/supernova/trait.NonUniformCircuit.html b/docs/arecibo/supernova/trait.NonUniformCircuit.html index f4643ff03..d072559f8 100644 --- a/docs/arecibo/supernova/trait.NonUniformCircuit.html +++ b/docs/arecibo/supernova/trait.NonUniformCircuit.html @@ -1,5 +1,5 @@ NonUniformCircuit in arecibo::supernova - Rust -
pub trait NonUniformCircuit<E1>
where +
pub trait NonUniformCircuit<E1>{
     type C1: StepCircuit<E1::Scalar>;
     type C2: StepCircuit<<Dual<E1> as Engine>::Scalar>;
@@ -14,10 +14,10 @@
 }
Expand description

SuperNova helper trait, for implementors that provide sets of sub-circuits to be proved via NIVC. C1 must be a type (likely an Enum) for which a potentially-distinct instance can be supplied for each index below self.num_circuits().

-

Required Associated Types§

source

type C1: StepCircuit<E1::Scalar>

The type of the step-circuits on the primary

-
source

type C2: StepCircuit<<Dual<E1> as Engine>::Scalar>

The type of the step-circuits on the secondary

-

Required Methods§

source

fn num_circuits(&self) -> usize

How many circuits are provided?

-
source

fn primary_circuit(&self, circuit_index: usize) -> Self::C1

Return a new instance of the primary circuit at index.

-
source

fn secondary_circuit(&self) -> Self::C2

Return a new instance of the secondary circuit.

-

Provided Methods§

source

fn initial_circuit_index(&self) -> usize

Initial circuit index, defaults to zero.

+

Required Associated Types§

source

type C1: StepCircuit<E1::Scalar>

The type of the step-circuits on the primary

+
source

type C2: StepCircuit<<Dual<E1> as Engine>::Scalar>

The type of the step-circuits on the secondary

+

Required Methods§

source

fn num_circuits(&self) -> usize

How many circuits are provided?

+
source

fn primary_circuit(&self, circuit_index: usize) -> Self::C1

Return a new instance of the primary circuit at index.

+
source

fn secondary_circuit(&self) -> Self::C2

Return a new instance of the secondary circuit.

+

Provided Methods§

source

fn initial_circuit_index(&self) -> usize

Initial circuit index, defaults to zero.

Implementors§

\ No newline at end of file diff --git a/docs/search-index.js b/docs/search-index.js index aa461cdf2..f1715356b 100644 --- a/docs/search-index.js +++ b/docs/search-index.js @@ -1,5 +1,5 @@ var searchIndex = new Map(JSON.parse('[\ -["arecibo",{"doc":"This library implements Nova, a high-speed recursive SNARK.","t":"FFFFFFFNNNNNNNNNNNNNNHNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNCQNNNNNNNNNNNNNNNNNNNNNNCCNNNNNNNNCCNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNQQSPPPPPPPPPPPPPPPPPPGGPPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFIFFFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNIFFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHHNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCCCHCCFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFRRFKFFKFFMNNNNNNNNNNNNNNHMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMNMNNNNNCMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPGPNNNNNNNNNNNNNNNNNNFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKRRRRRRKIKRKRKRRKIIKRRRRKKMMMMCCMCMMMMMCMMMMKFMNNNNNNNNNNNNNNMNNNNNNRKRKRKKMMMMMMRKRRMMMKKRRKRRNNHMMMMMMM","n":["CompressedSNARK","ProverKey","PublicParams","R1CSWithArity","RecursiveSNARK","ResourceBuffer","VerifierKey","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","circuit_digest","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","constants","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","deserialize","digest","digest","drop","drop","drop","drop","drop","drop","drop","entomb","eq","eq","errors","exhume","extent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","gadgets","impl_traits","init","init","init","init","init","init","init","into","into","into","into","into","into","into","new","new","num_constraints","num_steps","num_variables","outputs","prove","prove_step","provider","r1cs","serialize","serialize","serialize","serialize","serialize","serialize","setup","setup","spartan","supernova","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","traits","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","verify","verify","vzip","vzip","vzip","vzip","vzip","vzip","vzip","z0_primary","zi_primary","zip_with","zip_with_for_each","NUM_HASH_BITS","DecompressionError","DigestError","IncorrectWitness","InternalError","InternalTranscriptError","InvalidCommitmentKeyLength","InvalidIndex","InvalidInitialInputLength","InvalidInputLength","InvalidMultisetProof","InvalidNumSteps","InvalidPCS","InvalidProductProof","InvalidStepCircuitIO","InvalidStepOutputLength","InvalidSumcheckProof","InvalidWitnessLength","LengthError","NovaError","PCSError","PCSError","ProofVerifyError","SynthesisError","UnSat","UnSatIndex","ZMError","borrow","borrow","borrow_mut","borrow_mut","deref","deref","deref_mut","deref_mut","drop","drop","eq","eq","fmt","fmt","fmt","fmt","from","from","from","from","init","init","into","into","source","to_string","to_string","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Bn256EngineIPA","Bn256EngineKZG","Bn256EngineZM","GrumpkinEngine","PallasEngine","Secp256k1Engine","Secq256k1Engine","VestaEngine","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","drop","drop","drop","eq","eq","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","hyperkzg","init","init","init","init","init","init","init","init","into","into","into","into","into","into","into","into","ipa_pc","non_hiding_zeromorph","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","EvaluationArgument","EvaluationEngine","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","deref","deref","deref_mut","deref_mut","deserialize","deserialize","drop","drop","fmt","fmt","from","from","init","init","into","into","prove","serialize","serialize","setup","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","verify","vzip","vzip","EvaluationEngine","InnerProductArgument","ProverKey","VerifierKey","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","drop","drop","drop","drop","fmt","fmt","fmt","fmt","from","from","from","from","init","init","init","init","into","into","into","into","prove","serialize","serialize","setup","to_owned","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","verify","vzip","vzip","vzip","vzip","UVKZGEvaluation","UVKZGPCS","UVKZGPoly","UVKZGProof","ZMCommitment","ZMEvaluation","ZMPCS","ZMProof","ZMProverKey","ZMVerifierKey","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","coeffs","commit","default","default","default","default","default","default","default","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","drop","drop","drop","drop","drop","drop","drop","drop","drop","eq","eq","eq","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","init","init","init","init","init","init","init","init","init","into","into","into","into","into","into","into","into","into","open","proof","prove","serialize","serialize","setup","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","verify","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","CommitmentKeyHint","R1CSInstance","R1CSResult","R1CSShape","R1CSWitness","RelaxedR1CSInstance","RelaxedR1CSWitness","absorb_in_ro","absorb_in_ro","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","commit","commit","commit_T","commit_T_into","commitment_key","commitment_key_size","default","default","default","default_T","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","digest","drop","drop","drop","drop","drop","drop","entomb","eq","eq","eq","eq","eq","eq","exhume","extent","fmt","fmt","fmt","fmt","fmt","fmt","fold","fold","fold_mut","fold_mut","from","from","from","from","from","from","from_r1cs_instance","from_r1cs_instance_unchecked","from_r1cs_witness","init","init","init","init","init","init","into","into","into","into","into","into","is_sat","is_sat_relaxed","new","new","new","pad","pad","random","random_witness_instance","serialize","serialize","serialize","serialize","serialize","serialize","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_transcript_bytes","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","batched","batched_ppsnark","polys","powers","ppsnark","snark","BatchedRelaxedR1CSSNARK","ProverKey","VerifierKey","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","ck_floor","deref","deref","deref","deref_mut","deref_mut","deref_mut","deserialize","digest","drop","drop","drop","fmt","fmt","fmt","from","from","from","init","init","init","into","into","into","prove","prove","serialize","serialize","setup","setup","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","verify","verify","vzip","vzip","vzip","BatchedRelaxedR1CSSNARK","ProverKey","VerifierKey","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","ck_floor","ck_floor","deref","deref","deref","deref_mut","deref_mut","deref_mut","deserialize","digest","drop","drop","drop","fmt","fmt","fmt","from","from","from","init","init","init","into","into","into","prove","prove","serialize","serialize","setup","setup","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","verify","verify","vzip","vzip","vzip","multilinear","MultilinearPolynomial","add","bind_poly_var_top","borrow","borrow_mut","clone","clone_into","deref","deref_mut","deserialize","drop","eq","evaluate","evaluate_with","evaluate_with_chis","evaluations","fmt","from","get_num_vars","index","init","into","is_empty","len","new","random","serialize","to_owned","try_from","try_into","type_id","vzip","ProverKey","R1CSShapeSparkCommitment","R1CSShapeSparkRepr","RelaxedR1CSSNARK","VerifierKey","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","ck_floor","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","digest","drop","drop","drop","drop","drop","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","init","init","init","init","init","into","into","into","into","into","new","prove","serialize","serialize","serialize","serialize","setup","to_owned","to_owned","to_owned","to_owned","to_owned","to_transcript_bytes","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","verify","vzip","vzip","vzip","vzip","vzip","ProverKey","RelaxedR1CSSNARK","VerifierKey","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","deref","deref","deref","deref_mut","deref_mut","deref_mut","deserialize","digest","drop","drop","drop","fmt","fmt","fmt","from","from","from","init","init","init","into","into","into","prove","serialize","serialize","setup","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","verify","vzip","vzip","vzip","AuxParams","C1","C2","CircuitDigests","NonUniformCircuit","PublicParams","RecursiveSNARK","StepCircuit","TrivialSecondaryCircuit","TrivialTestCircuit","arity","arity","arity","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","circuit_digest","circuit_index","circuit_index","circuit_index","circuit_param_digests","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","default","default","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","digest","digest","drop","drop","drop","drop","drop","drop","eq","eq","error","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from_parts","from_parts_unchecked","index","init","init","init","init","init","init","initial_circuit_index","into","into","into","into","into","into","into_parts","new","new","num_circuits","primary_circuit","prove_step","secondary_circuit","serialize","serialize","serialize","serialize","setup","snark","synthesize","synthesize","synthesize","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","verify","vzip","vzip","vzip","vzip","vzip","vzip","z0_primary","zi_primary","MissingCK","NovaError","SuperNovaError","UnSatIndex","borrow","borrow_mut","deref","deref_mut","drop","eq","fmt","fmt","from","from","init","into","source","to_string","try_from","try_into","type_id","vzip","CompressedSNARK","ProverKey","VerifierKey","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","deref","deref","deref","deref_mut","deref_mut","deref_mut","deserialize","drop","drop","drop","fmt","fmt","fmt","from","from","from","init","init","init","into","into","into","prove","serialize","setup","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","verify","vzip","vzip","vzip","AbsorbInROTrait","Base","Base","CE","CircuitRO","Constants","Constants","CurveCycleEquipped","Dual","Engine","GE","Group","NativeRO","PrimeFieldExt","RO","ROCircuit","ROCircuitTrait","ROConstants","ROConstantsCircuit","ROTrait","Scalar","Scalar","Secondary","TE","TranscriptEngineTrait","TranscriptReprTrait","absorb","absorb","absorb","absorb_in_ro","circuit","commitment","dom_sep","evaluation","from_uniform","group_params","new","new","new","snark","squeeze","squeeze","squeeze","to_transcript_bytes","StepCircuit","TrivialCircuit","arity","arity","borrow","borrow_mut","clone","clone_into","default","deref","deref_mut","drop","eq","fmt","from","init","into","synthesize","synthesize","to_owned","try_from","try_into","type_id","vzip","Commitment","CommitmentEngineTrait","CommitmentKey","CommitmentTrait","CompressedCommitment","Len","ScalarMul","commit","compress","decompress","length","setup","to_coordinates","EvaluationArgument","EvaluationEngineTrait","ProverKey","VerifierKey","prove","setup","verify","BatchedRelaxedR1CSSNARKTrait","DigestHelperTrait","ProverKey","ProverKey","RelaxedR1CSSNARKTrait","VerifierKey","VerifierKey","ck_floor","ck_floor","default_ck_hint","digest","prove","prove","setup","setup","verify","verify"],"q":[[0,"arecibo"],[160,"arecibo::constants"],[161,"arecibo::errors"],[222,"arecibo::provider"],[369,"arecibo::provider::hyperkzg"],[410,"arecibo::provider::ipa_pc"],[478,"arecibo::provider::non_hiding_zeromorph"],[659,"arecibo::r1cs"],[813,"arecibo::spartan"],[819,"arecibo::spartan::batched"],[872,"arecibo::spartan::batched_ppsnark"],[926,"arecibo::spartan::polys"],[927,"arecibo::spartan::polys::multilinear"],[959,"arecibo::spartan::ppsnark"],[1058,"arecibo::spartan::snark"],[1116,"arecibo::supernova"],[1256,"arecibo::supernova::error"],[1278,"arecibo::supernova::snark"],[1325,"arecibo::traits"],[1369,"arecibo::traits::circuit"],[1393,"arecibo::traits::commitment"],[1406,"arecibo::traits::evaluation"],[1413,"arecibo::traits::snark"],[1430,"core::clone"],[1431,"core::result"],[1432,"serde::de"],[1433,"std::io::error"],[1434,"std::io"],[1435,"core::cmp"],[1436,"core::option"],[1437,"core::fmt"],[1438,"core::fmt"],[1439,"core::any"],[1440,"alloc::vec"],[1441,"bellpepper_core::constraint_system"],[1442,"core::error"],[1443,"alloc::string"],[1444,"pairing"],[1445,"pairing"],[1446,"core::borrow"],[1447,"core::default"],[1448,"rand_core"],[1449,"rand_core"],[1450,"core::ops::function"],[1451,"alloc::boxed"],[1452,"ff"],[1453,"bellpepper_core::constraint_system"],[1454,"core::marker"],[1455,"num_bigint::bigint"],[1456,"bellpepper_core::gadgets::boolean"],[1457,"core::cmp"]],"d":["A SNARK that proves the knowledge of a valid RecursiveSNARK","A type that holds the prover key for CompressedSNARK","A type that holds public parameters of Nova","A type that holds parameters for the primary and secondary …","A SNARK that proves the correct execution of an …","A resource buffer for RecursiveSNARK for storing scratch …","A type that holds the verifier key for CompressedSNARK","","","","","","","","","","","","","","","Compute the circuit digest of a StepCircuit.","","","","","","","","","","","","","Global Nova constants","","","","","","","","","","","","","","","","","","","","Return the R1CSWithArity’ digest.","Retrieve the digest of the public parameters.","","","","","","","","","","","This module defines errors returned by the library.","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","This module implements various gadgets necessary for Nova …","This implementation behaves in ways specific to the …","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Create a new R1CSWithArity","Create new instance of recursive SNARK","Returns the number of constraints in the primary and …","The number of steps which have been executed thus far.","Returns the number of variables in the primary and …","Get the outputs after the last step of computation.","Create a new CompressedSNARK","Create a new RecursiveSNARK (or updates the provided …","This module implements Nova’s traits using the following …","This module defines R1CS related types and a folding …","","","","","","","Set up builder to create PublicParams for a pair of …","Creates prover and verifier keys for CompressedSNARK","This module implements RelaxedR1CSSNARKTrait using Spartan …","SuperNova Description","","","","","","","This module defines various traits required by the users …","","","","","","","","","","","","","","","","","","","","","","Verify the correctness of the RecursiveSNARK","Verify the correctness of the CompressedSNARK","","","","","","","","Inputs of the primary circuits","Outputs of the primary circuits","Macros to give syntactic sugar for zipWith pattern and …","Like zip_with but use for_each instead of map.","Bit size of Nova field element hashes","returned when the supplied compressed commitment cannot be …","returned when there is an error creating a digest","returned when the consistency with public IO and …","returned when the prover cannot prove the provided …","returned when the transcript engine encounters an overflow …","returned if the provided commitment key is not of …","returned if the supplied row or col in (row,col,val) tuple …","returned when the initial input to an incremental …","returned if the supplied input is not of the right length","returned when the multiset check fails","returned if the provided number of steps is zero","returned when an invalid PCS evaluation argument is …","returned when the product proof check fails","returned if the step circuit calls inputize or alloc_io in …","returned when the step execution produces an output whose …","returned when an invalid sum-check proof is provided","returned if the supplied witness is not of the right length","returned when a length check fails in a PCS","Errors returned by Nova","Errors specific to the Polynomial commitment scheme","returned if there is an error in the proof/verification of …","returned if proof verification fails","return when error during synthesis","returned if the supplied witness is not a satisfying …","returned if the supplied witness is not a satisfying …","returned when there is a Zeromorph error","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","An implementation of the Nova Engine trait with BN254 …","An implementation of Nova traits with HyperKZG over the …","An implementation of the Nova Engine trait with BN254 …","An implementation of the Nova Engine trait with Grumpkin …","An implementation of the Nova Engine trait with Pallas …","An implementation of the Nova Engine trait with Secp256k1 …","An implementation of the Nova Engine trait with Secp256k1 …","An implementation of the Nova Engine trait with Vesta …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","This module implements Nova’s evaluation engine using …","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","This module implements EvaluationEngine using an IPA-based …","Non-hiding Zeromorph scheme for Multilinear Polynomials.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Provides an implementation of a polynomial evaluation …","Provides an implementation of a polynomial evaluation …","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","A method to verify purported evaluations of a batch of …","","","Provides an implementation of a polynomial evaluation …","An inner product argument","Provides an implementation of the prover key","Provides an implementation of the verifier key","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","A method to verify purported evaluations of a batch of …","","","","","Polynomial Evaluation","KZG Polynomial Commitment Scheme on univariate polynomial. …","Polynomial and its associated types","Proofs","Commitments","Polynomial Evaluation","Zeromorph Polynomial Commitment Scheme on multilinear …","Proofs","ZMProverKey is used to generate a proof","ZMVerifierKey is used to check evaluation proofs for a …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Generate a commitment for a polynomial Note that the …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","On input a polynomial p and a point point, outputs a proof …","proof","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A type for functions that hints commitment key sizing by …","A type that holds an R1CS instance","A type that holds the result of a R1CS multiplication","A type that holds the shape of the R1CS matrices","A type that holds a witness for a given R1CS instance","A type that holds a Relaxed R1CS instance","A type that holds a witness for a given Relaxed R1CS …","","","","","","","","","","","","","","","","","","","","","","","","","","","Commits to the witness using the supplied generators","Commits to the witness using the supplied generators","A method to compute a commitment to the cross-term T given …","A method to compute a commitment to the cross-term T given …","Generates public parameters for a Rank-1 Constraint System …","Computes the number of generators required for the …","Produces a default R1CSResult given an R1CSShape","Produces a default RelaxedR1CSWitness given an R1CSShape","Produces a default RelaxedR1CSInstance given R1CSGens and …","Empty buffer for commit_T_into","","","","","","","","","","","","","","","","","","","returned the digest of the R1CSShape","","","","","","","","","","","","","","","","","","","","","","Folds an incoming R1CSWitness into the current one","Folds an incoming RelaxedR1CSInstance into the current one","Mutably folds an incoming R1CSWitness into the current one","Mutably folds an incoming RelaxedR1CSInstance into the …","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Initializes a new RelaxedR1CSInstance from an R1CSInstance","Initializes a new RelaxedR1CSInstance from an R1CSInstance","Initializes a new RelaxedR1CSWitness from an R1CSWitness","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Checks if the R1CS instance is satisfiable given a witness …","Checks if the Relaxed R1CS instance is satisfiable given a …","Create an object of type R1CSShape from the explicitly …","A method to create a witness object using a vector of …","A method to create an instance object using constituent …","Pads the R1CSShape so that the shape passes …","Pads the provided witness to the correct length","Generate a random R1CSShape with the specified number of …","Generate a satisfying RelaxedR1CSWitness and …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","This module implements BatchedRelaxedR1CSSNARKTrait using …","batched pp snark","This module contains the definitions of polynomial types …","Creates a vector of the first n powers of s.","This module implements RelaxedR1CSSNARK traits using a …","This module implements RelaxedR1CSSNARKTrait using Spartan …","A succinct proof of knowledge of a witness to a batch of …","A type that represents the prover’s key","A type that represents the verifier’s key","","","","","","","","","","","","","","","Returns the digest of the verifier’s key.","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","A succinct proof of knowledge of a witness to a relaxed …","A type that represents the prover’s key","A type that represents the verifier’s key","","","","","","","","","","","","","","","","Returns the digest of the verifier’s key","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","Main components:","A multilinear extension of a polynomial $Z(\\\\cdot)$, denote …","","Binds the polynomial’s top variable using the given …","","","","","","","","","","Evaluates the polynomial at the given point. Returns Z(r) …","Evaluates the polynomial with the given evaluations and …","Evaluates the polynomial with the given evaluations and …","evaluations of the polynomial in all the 2^num_vars …","","Returns the argument unchanged.","Returns the number of variables in the multilinear …","","","Calls U::from(self).","Returns true if no evaluations.","Returns the total number of evaluations.","Creates a new MultilinearPolynomial from the given …","Returns a random polynomial","","","","","","","A type that represents the prover’s key","A type that holds a commitment to a sparse polynomial","A type that holds R1CSShape in a form amenable to memory …","A succinct proof of knowledge of a witness to a relaxed …","A type that represents the verifier’s key","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the digest of the verifier’s key","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","represents R1CSShape in a Spark-friendly format amenable …","produces a succinct proof of satisfiability of a …","","","","","","","","","","","","","","","","","","","","","","","","","","","verifies a proof of satisfiability of a RelaxedR1CS …","","","","","","A type that represents the prover’s key","A succinct proof of knowledge of a witness to a relaxed …","A type that represents the verifier’s key","","","","","","","","","","","","","","","","","","","","Returns the digest of the verifier’s key.","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","produces a succinct proof of satisfiability of a …","","","","","","","","","","","","","","","","verifies a proof of satisfiability of a RelaxedR1CS …","","","","Auxiliary PublicParams information about the commitment …","The type of the step-circuits on the primary","The type of the step-circuits on the secondary","A struct that manages all the digests of the primary …","SuperNova helper trait, for implementors that provide sets …","A vector of R1CSWithArity adjoined to a set of PublicParams","A SNARK that proves the correct execution of an …","A helper trait for a step of the incremental computation …","A trivial step circuit that simply returns the input, for …","A trivial step circuit that simply returns the input","Return the the number of inputs or outputs of each step …","","","","","","","","","","","","","","","Compute the circuit digest of a supernova StepCircuit.","Return this StepCircuit’s assigned index, for use when …","","","All of the primary circuit digests of this PublicParams","","","","","","","","","","","","","","","","","","","","","","","","","Return the CircuitDigests’ digest.","Return the PublicParams’ digest.","","","","","","","","","This module defines errors returned by the library.","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Create a PublicParams from a vector of raw R1CSWithArity …","Create a PublicParams from a vector of raw R1CSWithArity …","","","","","","","","Initial circuit index, defaults to zero.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Breaks down an instance of PublicParams into the circuit …","Construct a new CircuitDigests","iterate base step to get new instance of recursive SNARK","How many circuits are provided?","Return a new instance of the primary circuit at index.","executing a step of the incremental computation","Return a new instance of the secondary circuit.","","","","","Construct a new PublicParams","This module defines a final compressing SNARK for …","Synthesize the circuit for a computation step and return …","","","","","","","","","","","","","","","","","","","","","","","","","verify recursive snark","","","","","","","Inputs of the primary circuits","Outputs of the primary circuits","missing commitment key","Nova error","Errors returned by Nova","Extended error for supernova","","","","","","","","","Returns the argument unchanged.","","","Calls U::from(self).","","","","","","","A SNARK that proves the knowledge of a valid RecursiveSNARK","A type that holds the prover key for CompressedSNARK","A type that holds the verifier key for CompressedSNARK","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Create a new CompressedSNARK","","Creates prover and verifier keys for CompressedSNARK","","","","","","","","","","Verify the correctness of the CompressedSNARK","","","","A helper trait to absorb different objects in RO","A type representing an element of the base field of the …","A type representing an element of the base field of the …","A type that defines a commitment engine over scalars in …","The circuit alter ego of this trait impl - this constrains …","A type representing constants/parameters associated with …","A type representing constants/parameters associated with …","This is a convenience trait to pair engines which fields …","Convenience projection to the secondary Engine of a …","A collection of engines that are required by the library","A type that represents an element of the group","Represents an element of a group This is currently …","the vanilla alter ego of this trait - this constrains it …","Defines additional methods on PrimeField objects","A type that represents a circuit-friendly sponge that …","An alternate implementation of Self::RO in the circuit …","A helper trait that defines the behavior of a hash …","An alias for constants associated with E::RO","An alias for constants associated with E::ROCircuit","A helper trait that defines the behavior of a hash …","A type representing an element of the scalar field of the …","A type representing an element of the scalar field of the …","The secondary Engine of Self","A type that provides a generic Fiat-Shamir transcript to …","This trait defines the behavior of a transcript engine …","This trait allows types to implement how they want to be …","Adds a scalar to the internal state","Adds a scalar to the internal state","absorbs any type that implements TranscriptReprTrait under …","Absorbs the value in the provided RO","This module defines traits that a step function must …","This module defines a collection of traits that define the …","adds a domain separator","This module defines a collection of traits that define the …","Returns a scalar representing the bytes","Returns A, B, the order of the group, the size of the base …","Initializes the hash function","Initializes the hash function","initializes the transcript","This module defines a collection of traits that define the …","Returns a challenge of num_bits by hashing the internal …","Returns a challenge of num_bits by hashing the internal …","returns a scalar element of the group as a challenge","returns a byte representation of self to be added to the …","A helper trait for a step of the incremental computation …","A trivial step circuit that simply returns the input","Return the number of inputs or outputs of each step (this …","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","Sythesize the circuit for a computation step and return …","","","","","","","Holds the type of the commitment","A trait that ties different pieces of the commitment …","Holds the type of the commitment key The key should …","This trait defines the behavior of the commitment","Holds the type of the compressed commitment","A trait that helps determine the length of a structure. …","A helper trait for types implementing scalar …","Commits to the provided vector using the provided …","Compresses self into a compressed commitment","Decompresses a compressed commitment into a commitment","Returns the length of the structure.","Samples a new commitment key of a specified size","Returns the coordinate representation of the commitment","A type that holds the evaluation argument","A trait that ties different pieces of the commitment …","A type that holds the prover key","A type that holds the verifier key","A method to prove the evaluation of a multilinear …","A method to perform any additional setup needed to produce …","A method to verify the purported evaluation of a …","A trait that defines the behavior of a zkSNARK to prove …","A helper trait that defines the behavior of a verifier key …","A type that represents the prover’s key","A type that represents the prover’s key","A trait that defines the behavior of a zkSNARK","A type that represents the verifier’s key","A type that represents the verifier’s key","This associated function (not a method) provides a hint …","This associated function (not a method) provides a hint …","Public parameter creation takes a size hint. This size …","Returns the digest of the verifier’s key","Produces a new SNARK for a relaxed R1CS","Produces a new SNARK for a batch of relaxed R1CS","Produces the keys for the prover and the verifier","Produces the keys for the prover and the verifier","Verifies a SNARK for a relaxed R1CS","Verifies a SNARK for a batch of relaxed R1CS"],"i":[0,0,0,0,0,0,0,2,5,7,8,9,12,17,2,5,7,8,9,12,17,0,2,5,7,8,9,12,2,5,7,8,9,12,0,2,5,7,8,9,12,17,2,5,7,8,9,12,17,2,5,7,8,17,2,5,2,5,7,8,9,12,17,2,2,5,0,2,2,2,5,7,8,9,12,17,2,5,7,8,9,12,17,0,0,2,5,7,8,9,12,17,2,5,7,8,9,12,17,2,8,5,8,5,8,17,8,0,0,2,5,7,8,12,17,5,17,0,0,2,5,7,8,9,12,0,2,5,7,8,9,12,17,2,5,7,8,9,12,17,2,5,7,8,9,12,17,8,17,2,5,7,8,9,12,17,8,8,0,0,0,29,29,29,29,29,29,29,29,29,29,29,34,29,29,29,29,29,34,0,0,29,29,29,29,29,34,29,34,29,34,29,34,29,34,29,34,29,34,29,29,34,34,29,29,29,34,29,34,29,34,29,29,34,29,34,29,34,29,34,29,34,0,0,0,0,0,0,0,0,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,0,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,0,0,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,0,0,46,48,46,48,46,48,46,48,46,48,46,48,46,48,46,48,46,48,46,48,46,48,46,48,48,46,48,48,46,48,46,48,46,48,46,48,48,46,48,0,0,0,0,56,57,54,55,56,57,54,55,54,55,54,55,56,57,54,55,56,57,54,55,55,56,57,54,55,56,57,54,55,56,57,54,55,56,57,54,55,56,57,54,55,54,57,55,54,54,55,56,57,54,55,56,57,54,55,56,57,54,55,54,56,57,54,55,0,0,0,0,0,0,0,0,0,0,58,59,60,61,62,63,64,65,66,58,59,60,61,62,63,64,65,66,58,59,60,61,62,63,64,65,66,58,59,60,61,62,63,64,65,66,67,60,58,59,60,63,64,65,66,58,59,60,61,62,63,64,65,66,58,59,60,61,62,63,64,65,66,65,58,59,60,61,62,63,64,65,66,58,59,60,61,62,63,64,65,66,58,59,60,61,62,63,64,65,66,58,59,60,61,62,63,64,64,65,66,58,59,60,61,62,63,64,65,66,58,59,60,61,62,63,64,65,66,60,59,66,62,65,66,58,59,60,61,62,63,64,65,66,58,59,60,61,62,63,64,65,66,58,59,60,61,62,63,64,65,66,58,59,60,61,62,63,64,65,66,66,58,59,60,61,62,63,64,65,66,0,0,0,0,0,0,0,70,71,28,72,73,70,74,71,28,72,73,70,74,71,28,72,73,70,74,71,28,72,73,70,74,71,73,74,28,28,0,0,72,74,71,0,28,72,73,70,74,71,28,72,73,70,74,71,28,72,73,70,74,71,28,28,72,73,70,74,71,28,28,72,73,70,74,71,28,28,28,72,73,70,74,71,74,71,74,71,28,72,73,70,74,71,71,71,74,28,72,73,70,74,71,28,72,73,70,74,71,28,28,28,73,70,28,74,28,28,28,72,73,70,74,71,28,72,73,70,74,71,71,28,72,73,70,74,71,28,72,73,70,74,71,28,72,73,70,74,71,28,72,73,70,74,71,0,0,0,0,0,0,0,0,0,80,83,82,80,83,82,80,80,83,82,80,83,82,80,82,80,83,82,80,83,82,80,83,82,80,83,82,80,83,82,80,80,80,82,80,80,80,83,82,80,83,82,80,83,82,80,80,80,83,82,0,0,0,86,85,84,86,85,84,84,84,86,85,84,86,85,84,84,85,86,85,84,86,85,84,86,85,84,86,85,84,86,85,84,84,84,85,84,84,84,86,85,84,86,85,84,86,85,84,84,84,86,85,84,0,0,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,0,0,0,0,0,91,92,93,94,95,91,92,93,94,95,95,91,92,93,94,95,91,92,93,94,95,91,92,93,94,95,91,92,93,94,95,91,92,95,94,91,92,93,94,95,91,92,93,94,95,91,92,93,94,95,91,92,93,94,95,91,92,93,94,95,91,95,91,92,94,95,95,91,92,93,94,95,92,91,92,93,94,95,91,92,93,94,95,91,92,93,94,95,95,91,92,93,94,95,0,0,0,96,97,98,96,97,98,96,97,98,96,97,98,96,97,98,96,97,98,98,97,96,97,98,96,97,98,96,97,98,96,97,98,96,97,98,98,97,98,98,96,97,98,96,97,98,96,97,98,96,97,98,98,96,97,98,0,108,108,0,0,0,0,0,0,0,99,100,101,100,101,103,102,104,105,100,101,103,102,104,105,0,99,100,101,102,100,101,104,105,100,101,104,105,100,101,100,101,103,103,102,104,105,100,101,103,102,104,105,105,103,102,100,101,103,102,104,105,103,104,0,100,101,103,102,104,105,100,101,103,102,104,105,102,102,102,100,101,103,102,104,105,108,100,101,103,102,104,105,102,103,105,108,108,105,108,103,102,104,105,102,0,99,100,101,100,101,104,105,100,101,103,102,104,105,100,101,103,102,104,105,100,101,103,102,104,105,105,100,101,103,102,104,105,105,105,109,109,0,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,0,0,0,114,115,112,114,115,112,114,115,112,114,115,112,112,114,115,112,114,115,112,114,115,112,114,115,112,114,115,112,112,112,112,114,115,112,114,115,112,114,115,112,112,114,115,112,0,138,4,4,118,118,119,0,0,0,4,0,119,0,4,4,0,0,0,0,138,4,6,4,0,0,118,119,124,126,0,0,124,0,127,138,118,119,124,0,118,119,124,125,0,0,1,130,130,130,130,130,130,130,130,130,130,130,130,130,130,1,130,130,130,130,130,130,139,0,139,0,132,0,0,139,132,132,134,139,132,81,0,81,81,81,81,81,0,0,10,113,0,10,113,10,113,0,135,10,113,10,113,10,113],"f":[0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[],1],[[[2,[-1]]],[[2,[-1]]],[3,4]],[[[5,[-1]]],[[5,[-1]]],[6,3]],[[[7,[-1]]],[[7,[-1]]],[3,4]],[[[8,[-1]]],[[8,[-1]]],[6,3]],[[[9,[-1,-2,-3]]],[[9,[-1,-2,-3]]],[6,3],[[10,[-1]],3],[[10,[[11,[-1]]]],3]],[[[12,[-1,-2,-3]]],[[12,[-1,-2,-3]]],[6,3],[[10,[-1]],3],[[10,[[11,[-1]]]],3]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],0,[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[-1,[[15,[[2,[-2]]]]],16,4],[-1,[[15,[[5,[-2]]]]],16,6],[-1,[[15,[[7,[-2]]]]],16,4],[-1,[[15,[[8,[-2]]]]],16,6],[-1,[[15,[[17,[-2,-3,-4]]]]],16,6,[[10,[-2]]],[[10,[[11,[-2]]]]]],[[[2,[-1]]],[],4],[[[5,[-1]]],[],6],[14,13],[14,13],[14,13],[14,13],[14,13],[14,13],[14,13],[[[2,[-1]],-2],[[18,[13]]],4,19],[[[2,[-1]],[2,[-1]]],20,[21,4]],[[[5,[-1]],[5,[-1]]],20,[6,21]],0,[[[2,[-1]],[23,[22]]],[[24,[[23,[22]]]]],4],[[[2,[-1]]],14,4],[[[2,[-1]],25],26,[27,4]],[[[5,[-1]],25],26,[6,27]],[[[7,[-1]],25],26,[27,4]],[[[8,[-1]],25],26,[6,27]],[[[9,[-1,-2,-3]],25],26,[6,27],[[10,[-1]],27],[[10,[[11,[-1]]]],27]],[[[12,[-1,-2,-3]],25],26,[6,27],[[10,[-1]],27],[[10,[[11,[-1]]]],27]],[[[17,[-1,-2,-3]],25],26,[6,27],[[10,[-1]],27],[[10,[[11,[-1]]]],27]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],0,0,[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[28,[-1]],14],[[2,[-1]]],4],[[[5,[-1]],-2,-3,23,23],[[15,[[8,[-1]],29]]],6,1,1],[[[5,[-1]]],[[13,[14,14]]],6],[[[8,[-1]]],14,6],[[[5,[-1]]],[[13,[14,14]]],6],[[[8,[-1]]],[[13,[23,23]]],6],[[[5,[-1]],[9,[-1,-2,-3]],[8,[-1]]],[[15,[[17,[-1,-2,-3]],29]]],6,[[10,[-1]]],[[10,[[11,[-1]]]]]],[[[8,[-1]],[5,[-1]],-2,-3],[[15,[13,29]]],6,1,1],0,0,[[[2,[-1]],-2],15,4,30],[[[5,[-1]],-2],15,6,30],[[[7,[-1]],-2],15,4,30],[[[8,[-1]],-2],15,6,30],[[[12,[-1,-2,-3]],-4],15,6,[[10,[-1]]],[[10,[[11,[-1]]]]],30],[[[17,[-1,-2,-3]],-4],15,6,[[10,[-1]]],[[10,[[11,[-1]]]]],30],[[-1,-2,[31,[-3]],[31,[[11,[-3]]]]],[[15,[[5,[-3]],29]]],1,1,6],[[[5,[-1]]],[[15,[[13,[[9,[-1,-2,-3]],[12,[-1,-2,-3]]]],29]]],6,[[10,[-1]]],[[10,[[11,[-1]]]]]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[[8,[-1]],[5,[-1]],14,23,23],[[15,[[13,[33,33]],29]]],6],[[[17,[-1,-2,-3]],[12,[-1,-2,-3]],14,23,23],[[15,[[13,[33,33]],29]]],6,[[10,[-1]]],[[10,[[11,[-1]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[8,[-1]]],33,6],[[[8,[-1]]],33,6],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,13],[14,13],[[29,29],20],[[34,34],20],[[29,25],26],[[29,25],26],[[34,25],26],[[34,25],26],[35,29],[-1,-1,[]],[34,29],[-1,-1,[]],[[],14],[[],14],[-1,-2,[],[]],[-1,-2,[],[]],[29,[[24,[36]]]],[-1,37,[]],[-1,37,[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[38,38],[39,39],[40,40],[41,41],[42,42],[43,43],[44,44],[45,45],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,13],[14,13],[14,13],[14,13],[14,13],[14,13],[14,13],[14,13],[[38,38],20],[[39,39],20],[[40,40],20],[[41,41],20],[[42,42],20],[[43,43],20],[[44,44],20],[[45,45],20],[[38,25],26],[[39,25],26],[[40,25],26],[[41,25],26],[[42,25],26],[[43,25],26],[[44,25],26],[[45,25],26],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],0,[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[46,[-1]]],[[46,[-1]]],[3,47]],[[[48,[-1,-2]]],[[48,[-1,-2]]],3,3],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[-1,[[15,[[46,[-2]]]]],16,47],[-1,[[15,[[48,[-2,-3]]]]],16,[],[]],[14,13],[14,13],[[[46,[-1]],25],26,[27,47]],[[[48,[-1,-2]],25],26,27,27],[-1,-1,[]],[-1,-1,[]],[[],14],[[],14],[-1,-2,[],[]],[-1,-2,[],[]],[[[0,[-1]],-2,[0,[-3]],23,23],[[15,[-4,29]]],49,[],[[4,[],[[50,[]],[51,[]],[52,[[0,[-1]]]]]]],[]],[[[46,[-1]],-2],15,47,30],[[[48,[-1,-2]],-3],15,[],[],30],[[[53,[[0,[-1]]]]],[[13,[-2,-3]]],49,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[[-1,[0,[-3]],23,-4],[[15,[13,29]]],[],49,[[4,[],[[50,[]],[51,[]],[52,[[0,[-2]]]]]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[54,[-1]]],[[54,[-1]]],3],[[[55,[-1]]],[[55,[-1]]],[3,4]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[-1,[[15,[[55,[-2]]]]],16,4],[14,13],[14,13],[14,13],[14,13],[[[56,[-1]],25],26,[27,4]],[[[57,[-1]],25],26,[27,4]],[[[54,[-1]],25],26,27],[[[55,[-1]],25],26,[27,4]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],14],[[],14],[[],14],[[],14],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[-1,23,23],[[15,[-2,29]]],[],[]],[[[57,[-1]],-2],15,4,30],[[[55,[-1]],-2],15,4,30],[53,[[13,[-1,-2]]],[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[-1,23,-2],[[15,[13,29]]],[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[58,[-1]]],[[58,[-1]]],[3,47]],[[[59,[-1]]],[[59,[-1]]],[3,47]],[[[60,[-1]]],[[60,[-1]]],3],[[[61,[-1]]],[[61,[-1]]],[3,47]],[[[62,[-1]]],[[62,[-1]]],[3,47]],[[[63,[-1]]],[[63,[-1]]],[3,47]],[[[64,[-1]]],[[64,[-1]]],[3,47]],[[[65,[-1]]],[[65,[-1]]],[3,47]],[[[66,[-1,-2]]],[[66,[-1,-2]]],3,3],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],0,[[-2,67],[[15,[[0,[-1]],29]]],49,[[68,[[0,[-1]]]]]],[[],[[58,[-1]]],[69,47]],[[],[[59,[-1]]],[69,47]],[[],[[60,[-1]]],69],[[],[[63,[-1]]],[69,47]],[[],[[64,[-1]]],[69,47]],[[],[[65,[-1]]],[69,47]],[[],[[66,[-1,-2]]],69,69],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[-1,[[15,[[65,[-2]]]]],16,47],[14,13],[14,13],[14,13],[14,13],[14,13],[14,13],[14,13],[14,13],[14,13],[[[58,[-1]],[58,[-1]]],20,[21,47]],[[[59,[-1]],[59,[-1]]],20,[21,47]],[[[60,[-1]],[60,[-1]]],20,21],[[[61,[-1]],[61,[-1]]],20,[21,47]],[[[62,[-1]],[62,[-1]]],20,[21,47]],[[[63,[-1]],[63,[-1]]],20,[21,47]],[[[64,[-1]],[64,[-1]]],20,[21,47]],[[[65,[-1]],[65,[-1]]],20,[21,47]],[[[66,[-1,-2]],[66,[-1,-2]]],20,21,21],[[[58,[-1]],25],26,[27,47]],[[[59,[-1]],25],26,[27,47]],[[[60,[-1]],25],26,27],[[[61,[-1]],25],26,[27,47]],[[[62,[-1]],25],26,[27,47]],[[[63,[-1]],25],26,[27,47]],[[[64,[-1]],25],26,[27,47]],[[[65,[-1]],25],26,[27,47]],[[[66,[-1,-2]],25],26,27,27],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[58,[-1]]],[[64,[-1]]],47],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[-2,67],[[15,[[13,[[59,[-1]],[58,[-1]]]],29]]],49,[[68,[[0,[-1]]]]]],0,[[[0,[-1]],-2,23,23],[[15,[-3,29]]],49,[],[]],[[[62,[-1]],-2],15,47,30],[[[65,[-1]],-2],15,47,30],[[[53,[[0,[-1]]]]],[[13,[-2,-3]]],49,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[-1,23,-2],[[15,[13,29]]],[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,[[[70,[-1]]],13,4],[[[71,[-1]]],13,4],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[28,[-1]]],[[28,[-1]]],[3,4]],[[[72,[-1]]],[[72,[-1]]],[3,4]],[[[73,[-1]]],[[73,[-1]]],[3,4]],[[[70,[-1]]],[[70,[-1]]],[3,4]],[[[74,[-1]]],[[74,[-1]]],[3,4]],[[[71,[-1]]],[[71,[-1]]],[3,4]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[[73,[-1]]],[],4],[[[74,[-1]]],13,4],[[[28,[-1]],[71,[-1]],[74,[-1]],[70,[-1]],[73,[-1]]],[[15,[[13,[33]],29]]],4],[[[28,[-1]],[71,[-1]],[74,[-1]],[70,[-1]],[73,[-1]],33,[72,[-1]],[72,[-1]]],[[15,[29]]],4],[[[28,[-1]],[31,[-1]]],[],4],[[[28,[-1]],[31,[-1]]],14,4],[14,[[72,[-1]]],4],[[[28,[-1]]],[[74,[-1]]],4],[[[28,[-1]]],[[71,[-1]]],4],[14,33],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[-1,[[15,[[28,[-2]]]]],16,4],[-1,[[15,[[72,[-2]]]]],16,4],[-1,[[15,[[73,[-2]]]]],16,4],[-1,[[15,[[70,[-2]]]]],16,4],[-1,[[15,[[74,[-2]]]]],16,4],[-1,[[15,[[71,[-2]]]]],16,4],[[[28,[-1]]],[],4],[14,13],[14,13],[14,13],[14,13],[14,13],[14,13],[[[28,[-1]],-2],[[18,[13]]],4,19],[[[28,[-1]],[28,[-1]]],20,[21,4]],[[[72,[-1]],[72,[-1]]],20,[21,4]],[[[73,[-1]],[73,[-1]]],20,[21,4]],[[[70,[-1]],[70,[-1]]],20,[21,4]],[[[74,[-1]],[74,[-1]]],20,[21,4]],[[[71,[-1]],[71,[-1]]],20,[21,4]],[[[28,[-1]],[23,[22]]],[[24,[[23,[22]]]]],4],[[[28,[-1]]],14,4],[[[28,[-1]],25],26,[27,4]],[[[72,[-1]],25],26,[27,4]],[[[73,[-1]],25],26,[27,4]],[[[70,[-1]],25],26,[27,4]],[[[74,[-1]],25],26,[27,4]],[[[71,[-1]],25],26,[27,4]],[[[74,[-1]],[73,[-1]],23],[[15,[[74,[-1]],29]]],4],[[[71,[-1]],[70,[-1]]],[[71,[-1]]],4],[[[74,[-1]],[73,[-1]],23],[[15,[13,29]]],4],[[[71,[-1]],[70,[-1]]],13,4],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[28,[-1]],[70,[-1]]],[[71,[-1]]],4],[23,[[71,[-1]]],4],[[[28,[-1]],[73,[-1]]],[[74,[-1]]],4],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[28,[-1]],[70,[-1]],[73,[-1]]],[[15,[13,29]]],4],[[[28,[-1]],[71,[-1]],[74,[-1]]],[[15,[13,29]]],4],0,[[[28,[-1]],33],[[15,[[73,[-1]],29]]],4],[[[28,[-1]],33],[[15,[[70,[-1]],29]]],4],[[[28,[-1]]],[[28,[-1]]],4],[[[74,[-1]],[28,[-1]]],[[74,[-1]]],4],[[14,14,14,14,-1],[[28,[-2]]],[75,76],4],[[[28,[-1]],-2],[[13,[[74,[-1]],[71,[-1]]]]],4,[75,76]],[[[28,[-1]],-2],15,4,30],[[[72,[-1]],-2],15,4,30],[[[73,[-1]],-2],15,4,30],[[[70,[-1]],-2],15,4,30],[[[74,[-1]],-2],15,4,30],[[[71,[-1]],-2],15,4,30],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[71,[-1]]],[[33,[22]]],4],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,[[-1,14],[[33,[-1]]],77],0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[],[[79,[78]]]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[-1,[[15,[[80,[-2,-3]]]]],16,4,[[81,[-2]]]],[[[82,[-1,-2]]],[],4,[[81,[-1]]]],[14,13],[14,13],[14,13],[[[80,[-1,-2]],25],26,[27,4],[27,[81,[-1]]]],[[[83,[-1,-2]],25],26,[27,4],[27,[81,[-1]]]],[[[82,[-1,-2]],25],26,[27,4],[27,[81,[-1]]]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],14],[[],14],[[],14],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[-1,[28,[-2]],[71,[-2]],[74,[-2]]],[[15,[[80,[-2,-3]],29]]],[],4,[[81,[-2]]]],[[-1,[33,[[28,[-2]]]],[23,[[71,[-2]]]],[23,[[74,[-2]]]]],[[15,[[80,[-2,-3]],29]]],[],4,[[81,[-2]]]],[[[80,[-1,-2]],-3],15,4,[[81,[-1]]],30],[[[82,[-1,-2]],-3],15,4,[[81,[-1]]],30],[[53,[33,[[28,[-1]]]]],[[15,[[13,[-2,-3]],29]]],4,[],[]],[[53,[28,[-1]]],[[15,[[13,[-2,-3]],29]]],4,[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[[80,[-1,-2]],-3,[71,[-1]]],[[15,[13,29]]],4,[[81,[-1]]],[]],[[[80,[-1,-2]],-3,[23,[[71,[-1]]]]],[[15,[13,29]]],4,[[81,[-1]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[],[[79,[78]]]],[[],[[79,[78]]]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[-1,[[15,[[84,[-2,-3]]]]],16,4,[[81,[-2]]]],[[[85,[-1,-2]]],[],4,[[81,[-1]]]],[14,13],[14,13],[14,13],[[[86,[-1,-2]],25],26,[27,4],[27,[81,[-1]]]],[[[85,[-1,-2]],25],26,[27,4],[27,[81,[-1]]]],[[[84,[-1,-2]],25],26,[27,4],[27,[81,[-1]]]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],14],[[],14],[[],14],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[-1,[28,[-2]],[71,[-2]],[74,[-2]]],[[15,[[84,[-2,-3]],29]]],[],4,[[81,[-2]]]],[[-1,[33,[[28,[-2]]]],[23,[[71,[-2]]]],[23,[[74,[-2]]]]],[[15,[[84,[-2,-3]],29]]],[],4,[[81,[-2]]]],[[[85,[-1,-2]],-3],15,4,[[81,[-1]]],30],[[[84,[-1,-2]],-3],15,4,[[81,[-1]]],30],[[53,[28,[-1]]],[[15,[[13,[-2,-3]],29]]],4,[],[]],[[53,[33,[[28,[-1]]]]],[[15,[[13,[-2,-3]],29]]],4,[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[[84,[-1,-2]],-3,[71,[-1]]],[[15,[13,29]]],4,[[81,[-1]]],[]],[[[84,[-1,-2]],-3,[23,[[71,[-1]]]]],[[15,[13,29]]],4,[[81,[-1]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[[[87,[-1]],[87,[-1]]],-2,88,[]],[[[87,[-1]],-1],13,88],[-1,-2,[],[]],[-1,-2,[],[]],[[[87,[-1]]],[[87,[-1]]],3],[[-1,-2],13,[],[]],[14,-1,[]],[14,-1,[]],[-1,[[15,[[87,[-2]]]]],16,89],[14,13],[[[87,[-1]],[87,[-1]]],20,21],[[[87,[-1]],[23,[-1]]],-1,88],[[[23,[-1]],[23,[-1]]],-1,88],[[[23,[-1]],[23,[-1]]],-1,88],[[[87,[-1]]],[[23,[-1]]],88],[[[87,[-1]],25],26,27],[-1,-1,[]],[[[87,[-1]]],14,88],[[[87,[-1]],14],-1,88],[[],14],[-1,-2,[],[]],[[[87,[-1]]],20,88],[[[87,[-1]]],14,88],[[[33,[-1]]],[[87,[-1]]],88],[[14,-1],[[87,[-2]]],[75,76],88],[[[87,[-1]],-2],15,90,30],[-1,-2,[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,-2,[],[]],0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[],[[79,[78]]]],[[[91,[-1]]],[[91,[-1]]],[3,4]],[[[92,[-1]]],[[92,[-1]]],[3,4]],[[[93,[-1,-2]]],[[93,[-1,-2]]],[3,4],[3,[81,[-1]]]],[[[94,[-1,-2]]],[[94,[-1,-2]]],[3,4],[3,[81,[-1]]]],[[[95,[-1,-2]]],[[95,[-1,-2]]],[3,4],[3,[81,[-1]]]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[-1,[[15,[[91,[-2]]]]],16,4],[-1,[[15,[[92,[-2]]]]],16,4],[-1,[[15,[[95,[-2,-3]]]]],16,4,[[81,[-2]]]],[[[94,[-1,-2]]],[],4,[[81,[-1]]]],[14,13],[14,13],[14,13],[14,13],[14,13],[[[91,[-1]],25],26,[27,4]],[[[92,[-1]],25],26,[27,4]],[[[93,[-1,-2]],25],26,[27,4],[27,[81,[-1]]]],[[[94,[-1,-2]],25],26,[27,4],[27,[81,[-1]]]],[[[95,[-1,-2]],25],26,[27,4],[27,[81,[-1]]]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],14],[[],14],[[],14],[[],14],[[],14],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[28,[-1]]],[[91,[-1]]],4],[[-1,[28,[-2]],[71,[-2]],[74,[-2]]],[[15,[[95,[-2,-3]],29]]],[],4,[[81,[-2]]]],[[[91,[-1]],-2],15,4,30],[[[92,[-1]],-2],15,4,30],[[[94,[-1,-2]],-3],15,4,[[81,[-1]]],30],[[[95,[-1,-2]],-3],15,4,[[81,[-1]]],30],[[53,[28,[-1]]],[[15,[[13,[-2,-3]],29]]],4,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[92,[-1]]],[[33,[22]]],4],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[[95,[-1,-2]],-3,[71,[-1]]],[[15,[13,29]]],4,[[81,[-1]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[96,[-1,-2]]],[[96,[-1,-2]]],[3,4],[3,[81,[-1]]]],[[[97,[-1,-2]]],[[97,[-1,-2]]],[3,4],[3,[81,[-1]]]],[[[98,[-1,-2]]],[[98,[-1,-2]]],[3,4],[3,[81,[-1]]]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[-1,[[15,[[98,[-2,-3]]]]],16,4,[[81,[-2]]]],[[[97,[-1,-2]]],[],4,[[81,[-1]]]],[14,13],[14,13],[14,13],[[[96,[-1,-2]],25],26,[27,4],[27,[81,[-1]]]],[[[97,[-1,-2]],25],26,[27,4],[27,[81,[-1]]]],[[[98,[-1,-2]],25],26,[27,4],[27,[81,[-1]]]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],14],[[],14],[[],14],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[-1,[28,[-2]],[71,[-2]],[74,[-2]]],[[15,[[98,[-2,-3]],29]]],[],4,[[81,[-2]]]],[[[97,[-1,-2]],-3],15,4,[[81,[-1]]],30],[[[98,[-1,-2]],-3],15,4,[[81,[-1]]],30],[[53,[28,[-1]]],[[15,[[13,[-2,-3]],29]]],4,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[[98,[-1,-2]],-3,[71,[-1]]],[[15,[13,29]]],4,[[81,[-1]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,[99,14],[[[100,[-1]]],14,88],[[[101,[-1]]],14,88],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[-1,14],[],99],[99,14],[[[100,[-1]]],14,88],[[[101,[-1]]],14,88],[[[102,[-1]]],[[103,[-1]]],6],[[[100,[-1]]],[[100,[-1]]],3],[[[101,[-1]]],[[101,[-1]]],3],[[[104,[-1]]],[[104,[-1]]],[6,3]],[[[105,[-1]]],[[105,[-1]]],[6,3]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[],[[100,[-1]]],69],[[],[[101,[-1]]],69],[14,-1,[]],[14,-1,[]],[14,-1,[]],[[[103,[-1]]],-2,4,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[-1,[[15,[[105,[-2]]]]],16,6],[[[103,[-1]]],[],4],[[[102,[-1]]],[],6],[14,13],[14,13],[14,13],[14,13],[14,13],[14,13],[[[103,[-1]],[103,[-1]]],20,[21,4]],[[[104,[-1]],[104,[-1]]],20,[6,21]],0,[[[100,[-1]],25],26,27],[[[101,[-1]],25],26,27],[[[103,[-1]],25],26,[27,4]],[[[102,[-1]],25],26,[6,27]],[[[104,[-1]],25],26,[6,27]],[[[105,[-1]],25],26,[6,27]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[33,[[2,[-1]]]],[104,[-1]]],[[102,[-1]]],6],[[[33,[[2,[-1]]]],[104,[-1]]],[[102,[-1]]],6],[[[102,[-1]],14],-2,6,[]],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[[108,[],[[106,[-1]],[107,[-2]]]]],14,99,99],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[102,[-1]]],[[13,[[33,[[2,[-1]]]],[104,[-1]]]]],6],[33,[[103,[-1]]],4],[[[102,[-1]],-2,23,23],[[15,[[105,[-1]],109]]],6,[[108,[-1]]]],[[[108,[],[[106,[-1]],[107,[-2]]]]],14,99,99],[[[108,[],[[106,[-1]],[107,[-2]]]],14],-1,99,99],[[[105,[-1]],[102,[-1]],-2,-3],[[15,[13,109]]],6,99,99],[[[108,[],[[106,[-1]],[107,[-2]]]]],-2,99,99],[[[103,[-1]],-2],15,4,30],[[[102,[-1]],-2],15,6,30],[[[104,[-1]],-2],15,6,30],[[[105,[-1]],-2],15,6,30],[[-2,[31,[-1]],[31,[[11,[-1]]]]],[[102,[-1]]],6,[[108,[-1]]]],0,[[99,-2,[24,[[110,[-1]]]],[23,[[110,[-1]]]]],[[15,[[13,[[24,[[110,[-1]]]],[33,[[110,[-1]]]]]],35]]],88,[[111,[-1]]]],[[[100,[-1]],-2,[24,[[110,[-1]]]],[23,[[110,[-1]]]]],[[15,[[13,[[24,[[110,[-1]]]],[33,[[110,[-1]]]]]],35]]],88,[[111,[-1]]]],[[[101,[-1]],-2,[24,[[110,[-1]]]],[23,[[110,[-1]]]]],[[15,[[13,[[24,[[110,[-1]]]],[33,[[110,[-1]]]]]],35]]],88,[[111,[-1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[[105,[-1]],[102,[-1]],23,23],[[15,[[13,[33,33]],109]]],6],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[105,[-1]]],33,6],[[[105,[-1]]],33,6],0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[14,-1,[]],[14,-1,[]],[14,13],[[109,109],20],[[109,25],26],[[109,25],26],[-1,-1,[]],[29,109],[[],14],[-1,-2,[],[]],[109,[[24,[36]]]],[-1,37,[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,-2,[],[]],0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[-1,[[15,[[112,[-2,-3,-4]]]]],16,6,[[113,[-2]]],[[10,[[11,[-2]]]]]],[14,13],[14,13],[14,13],[[[114,[-1,-2,-3]],25],26,[6,27],[[113,[-1]],27],[[10,[[11,[-1]]]],27]],[[[115,[-1,-2,-3]],25],26,[6,27],[[113,[-1]],27],[[10,[[11,[-1]]]],27]],[[[112,[-1,-2,-3]],25],26,[6,27],[[113,[-1]],27],[[10,[[11,[-1]]]],27]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],14],[[],14],[[],14],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[102,[-1]],[114,[-1,-2,-3]],[105,[-1]]],[[15,[[112,[-1,-2,-3]],109]]],6,[[113,[-1]]],[[10,[[11,[-1]]]]]],[[[112,[-1,-2,-3]],-4],15,6,[[113,[-1]]],[[10,[[11,[-1]]]]],30],[[[102,[-1]]],[[15,[[13,[[114,[-1,-2,-3]],[115,[-1,-2,-3]]]],109]]],6,[[113,[-1]]],[[10,[[11,[-1]]]]]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[[112,[-1,-2,-3]],[102,[-1]],[115,[-1,-2,-3]],23,23],[[15,[[13,[33,33]],109]]],6,[[113,[-1]]],[[10,[[11,[-1]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[118,[],[[116,[-1]],[117,[-3]]]],-2],13,[[119,[-2],[[117,[-3]]]]],88,[27,69,3,21,120,121,90,89,122]],[[[119,[],[[123,[-1]],[117,[-4]]]],[110,[-2]]],13,[[118,[-2,-3],[[117,[-4]]]]],88,[],[27,69,3,21,120,121,90,89,122]],[[124,[23,[22]],-1],13,125],[126,13],0,0,[[124,[23,[22]]],13],0,[[[23,[22]]],127],[[],[[13,[-1,-1,128,128]]],[]],[[-1,14],[[118,[],[[116,[-2]],[117,[-1]]]]],[27,69,3,21,120,121,90,89,122],[[119,[-3],[[117,[-1]]]]],88],[[-1,14],[[119,[],[[123,[-2]],[117,[-1]]]]],[27,69,3,21,120,121,90,89,122],[[118,[-3,-4],[[117,[-1]]]]],88,[]],[[[23,[22]]],124],0,[[[118,[],[[116,[-1]],[117,[-3]]]],14],-4,[[119,[-2],[[117,[-3]]]]],88,[27,69,3,21,120,121,90,89,122],[]],[[[119,[],[[123,[-1]],[117,[-4]]]],-5,14],[[15,[[33,[129]],35]]],[[118,[-2,-3],[[117,[-4]]]]],88,[],[27,69,3,21,120,121,90,89,122],[[111,[-2]]]],[[124,[23,[22]]],[[15,[29]]]],[125,[[33,[22]]]],0,0,[1,14],[[[130,[-1]]],14,88],[-1,-2,[],[]],[-1,-2,[],[]],[[[130,[-1]]],[[130,[-1]]],3],[[-1,-2],13,[],[]],[[],[[130,[-1]]],69],[14,-1,[]],[14,-1,[]],[14,13],[[[130,[-1]],[130,[-1]]],20,21],[[[130,[-1]],25],26,27],[-1,-1,[]],[[],14],[-1,-2,[],[]],[[1,-2,[23,[[110,[-1]]]]],[[15,[[33,[[110,[-1]]]],35]]],88,[[111,[-1]]]],[[[130,[-1]],-2,[23,[[110,[-1]]]]],[[15,[[33,[[110,[-1]]]],35]]],88,[[111,[-1]]]],[-1,-2,[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,-2,[],[]],0,0,0,0,0,0,0,[[-1,23],-2,[],[]],[[[132,[],[[131,[-1]]]]],-1,[3,27,21,133,120,121,125,90,89]],[-1,[[15,[[132,[],[[131,[-1]]]],29]]],[3,27,21,133,120,121,125,90,89]],[134,14],[[[23,[22]],14],-1,[]],[[[132,[],[[131,[-1]]]]],[[13,[20]]],[3,27,21,133,120,121,125,90,89]],0,0,0,0,[[-1,23,23],[[15,[-2,29]]],[],[]],[53,[[13,[-1,-2]]],[],[]],[[-1,23,-2],[[15,[13,29]]],[],[]],0,0,0,0,0,0,0,[[],[[79,[78]]]],[[],[[79,[78]]]],[[],[[79,[78]]]],[135],[[-1,[28,[-2]],[71,[-2]],[74,[-2]]],[[15,[[10,[],[[136,[-1]],[137,[-3]]]],29]]],[120,121],4,[120,121,90]],[[-1,[33,[[28,[-2]]]],[23,[[71,[-2]]]],[23,[[74,[-2]]]]],[[15,[[113,[],[[136,[-1]],[137,[-3]]]],29]]],[120,121],4,[120,121,[135,[-2]]]],[[53,[28,[-1]]],[[15,[[13,[-2,-3]],29]]],4,[],[]],[[53,[33,[[28,[-1]]]]],[[15,[[13,[-2,-3]],29]]],4,[],[]],[[[10,[],[[136,[-1]],[137,[-2]]]],-2,[71,[-3]]],[[15,[13,29]]],[120,121],[120,121,90],4],[[[113,[],[[136,[-1]],[137,[-2]]]],-2,[23,[[71,[-3]]]]],[[15,[13,29]]],[120,121],[120,121,[135,[-3]]],4]],"c":[],"p":[[10,"StepCircuit",1369],[5,"R1CSWithArity",0],[10,"Clone",1430],[10,"Engine",1325],[5,"PublicParams",0],[10,"CurveCycleEquipped",1325],[5,"ResourceBuffer",0],[5,"RecursiveSNARK",0],[5,"ProverKey",0],[10,"RelaxedR1CSSNARKTrait",1413],[8,"Dual",1325],[5,"VerifierKey",0],[1,"tuple"],[1,"usize"],[6,"Result",1431],[10,"Deserializer",1432],[5,"CompressedSNARK",0],[8,"Result",1433],[10,"Write",1434],[1,"bool"],[10,"PartialEq",1435],[1,"u8"],[1,"slice"],[6,"Option",1436],[5,"Formatter",1437],[8,"Result",1437],[10,"Debug",1437],[5,"R1CSShape",659],[6,"NovaError",161],[10,"Serializer",1438],[8,"CommitmentKeyHint",659],[5,"TypeId",1439],[5,"Vec",1440],[6,"PCSError",161],[6,"SynthesisError",1441],[10,"Error",1442],[5,"String",1443],[5,"GrumpkinEngine",222],[5,"Bn256EngineIPA",222],[5,"Bn256EngineZM",222],[5,"Bn256EngineKZG",222],[5,"Secp256k1Engine",222],[5,"Secq256k1Engine",222],[5,"PallasEngine",222],[5,"VestaEngine",222],[5,"EvaluationArgument",369],[10,"Engine",1444],[5,"EvaluationEngine",369],[10,"MultiMillerLoop",1444],[17,"GE"],[17,"Scalar"],[17,"CE"],[5,"Arc",1445],[5,"EvaluationEngine",410],[5,"InnerProductArgument",410],[5,"ProverKey",410],[5,"VerifierKey",410],[5,"UVKZGEvaluation",478],[5,"UVKZGProof",478],[5,"UVKZGPCS",478],[5,"ZMProverKey",478],[5,"ZMVerifierKey",478],[5,"ZMCommitment",478],[5,"ZMEvaluation",478],[5,"ZMProof",478],[5,"ZMPCS",478],[8,"UVKZGPoly",478],[10,"Borrow",1446],[10,"Default",1447],[5,"R1CSInstance",659],[5,"RelaxedR1CSInstance",659],[5,"R1CSResult",659],[5,"R1CSWitness",659],[5,"RelaxedR1CSWitness",659],[10,"RngCore",1448],[10,"CryptoRng",1448],[10,"Field",1449],[10,"Fn",1450],[5,"Box",1451],[5,"BatchedRelaxedR1CSSNARK",819],[10,"EvaluationEngineTrait",1406],[5,"VerifierKey",819],[5,"ProverKey",819],[5,"BatchedRelaxedR1CSSNARK",872],[5,"VerifierKey",872],[5,"ProverKey",872],[5,"MultilinearPolynomial",927],[10,"PrimeField",1449],[10,"Deserialize",1432],[10,"Serialize",1438],[5,"R1CSShapeSparkRepr",959],[5,"R1CSShapeSparkCommitment",959],[5,"ProverKey",959],[5,"VerifierKey",959],[5,"RelaxedR1CSSNARK",959],[5,"ProverKey",1058],[5,"VerifierKey",1058],[5,"RelaxedR1CSSNARK",1058],[10,"StepCircuit",1116],[5,"TrivialTestCircuit",1116],[5,"TrivialSecondaryCircuit",1116],[5,"PublicParams",1116],[5,"CircuitDigests",1116],[5,"AuxParams",1116],[5,"RecursiveSNARK",1116],[17,"C1"],[17,"C2"],[10,"NonUniformCircuit",1116],[6,"SuperNovaError",1256],[5,"AllocatedNum",1452],[10,"ConstraintSystem",1441],[5,"CompressedSNARK",1278],[10,"BatchedRelaxedR1CSSNARKTrait",1413],[5,"ProverKey",1278],[5,"VerifierKey",1278],[17,"CircuitRO"],[17,"Constants"],[10,"ROTrait",1325],[10,"ROCircuitTrait",1325],[10,"Send",1453],[10,"Sync",1453],[10,"Abomonation",1454],[17,"NativeRO"],[10,"TranscriptEngineTrait",1325],[10,"TranscriptReprTrait",1325],[10,"AbsorbInROTrait",1325],[10,"PrimeFieldExt",1325],[5,"BigInt",1455],[5,"AllocatedBit",1456],[5,"TrivialCircuit",1369],[17,"CompressedCommitment"],[10,"CommitmentTrait",1393],[10,"Eq",1435],[10,"Len",1393],[10,"DigestHelperTrait",1413],[17,"ProverKey"],[17,"VerifierKey"],[10,"Group",1325],[10,"CommitmentEngineTrait",1393]],"b":[[199,"impl-Display-for-NovaError"],[200,"impl-Debug-for-NovaError"],[201,"impl-Display-for-PCSError"],[202,"impl-Debug-for-PCSError"],[203,"impl-From%3CSynthesisError%3E-for-NovaError"],[205,"impl-From%3CPCSError%3E-for-NovaError"],[852,"impl-RelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[853,"impl-BatchedRelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[856,"impl-BatchedRelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[857,"impl-RelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[867,"impl-RelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[868,"impl-BatchedRelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[881,"impl-BatchedRelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[882,"impl-RelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[906,"impl-RelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[907,"impl-BatchedRelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[910,"impl-RelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[911,"impl-BatchedRelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[921,"impl-RelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[922,"impl-BatchedRelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[1266,"impl-Debug-for-SuperNovaError"],[1267,"impl-Display-for-SuperNovaError"]]}]\ +["arecibo",{"doc":"This library implements Nova, a high-speed recursive SNARK.","t":"FFFFFFFNNNNNNNNNNNNNNHNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNCQNNNNNNNNNNNNNNNNNNNNNNCCNNNNNNNNCCNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNQQSPPPPPPPPPPPPPPPPPPGGPPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFIFFFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNIFFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHHNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCCCHCCFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFRRFKFFKFFMNNNNNNNNNNNNNNHMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNMNMNNNNNCMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPGPNNNNNNNNNNNNNNNNNNFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKRRRRRRKIKRKRKRRKIIKRRRRKKMMMMCCMCMMMMMCMMMMKFMNNNNNNNNNNNNNNMNNNNNNRKRKRKKMMMMMMRKRRMMMKKRRKRRNNHMMMMMMM","n":["CompressedSNARK","ProverKey","PublicParams","R1CSWithArity","RecursiveSNARK","ResourceBuffer","VerifierKey","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","circuit_digest","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","constants","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","deserialize","digest","digest","drop","drop","drop","drop","drop","drop","drop","entomb","eq","eq","errors","exhume","extent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","gadgets","impl_traits","init","init","init","init","init","init","init","into","into","into","into","into","into","into","new","new","num_constraints","num_steps","num_variables","outputs","prove","prove_step","provider","r1cs","serialize","serialize","serialize","serialize","serialize","serialize","setup","setup","spartan","supernova","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","traits","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","verify","verify","vzip","vzip","vzip","vzip","vzip","vzip","vzip","z0_primary","zi_primary","zip_with","zip_with_for_each","NUM_HASH_BITS","DecompressionError","DigestError","IncorrectWitness","InternalError","InternalTranscriptError","InvalidCommitmentKeyLength","InvalidIndex","InvalidInitialInputLength","InvalidInputLength","InvalidMultisetProof","InvalidNumSteps","InvalidPCS","InvalidProductProof","InvalidStepCircuitIO","InvalidStepOutputLength","InvalidSumcheckProof","InvalidWitnessLength","LengthError","NovaError","PCSError","PCSError","ProofVerifyError","SynthesisError","UnSat","UnSatIndex","ZMError","borrow","borrow","borrow_mut","borrow_mut","deref","deref","deref_mut","deref_mut","drop","drop","eq","eq","fmt","fmt","fmt","fmt","from","from","from","from","init","init","into","into","source","to_string","to_string","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Bn256EngineIPA","Bn256EngineKZG","Bn256EngineZM","GrumpkinEngine","PallasEngine","Secp256k1Engine","Secq256k1Engine","VestaEngine","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","drop","drop","drop","eq","eq","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","hyperkzg","init","init","init","init","init","init","init","init","into","into","into","into","into","into","into","into","ipa_pc","non_hiding_zeromorph","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","EvaluationArgument","EvaluationEngine","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","deref","deref","deref_mut","deref_mut","deserialize","deserialize","drop","drop","fmt","fmt","from","from","init","init","into","into","prove","serialize","serialize","setup","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","verify","vzip","vzip","EvaluationEngine","InnerProductArgument","ProverKey","VerifierKey","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","drop","drop","drop","drop","fmt","fmt","fmt","fmt","from","from","from","from","init","init","init","init","into","into","into","into","prove","serialize","serialize","setup","to_owned","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","verify","vzip","vzip","vzip","vzip","UVKZGEvaluation","UVKZGPCS","UVKZGPoly","UVKZGProof","ZMCommitment","ZMEvaluation","ZMPCS","ZMProof","ZMProverKey","ZMVerifierKey","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","coeffs","commit","default","default","default","default","default","default","default","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","drop","drop","drop","drop","drop","drop","drop","drop","drop","eq","eq","eq","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","init","init","init","init","init","init","init","init","init","into","into","into","into","into","into","into","into","into","open","proof","prove","serialize","serialize","setup","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","verify","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","CommitmentKeyHint","R1CSInstance","R1CSResult","R1CSShape","R1CSWitness","RelaxedR1CSInstance","RelaxedR1CSWitness","absorb_in_ro","absorb_in_ro","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","commit","commit","commit_T","commit_T_into","commitment_key","commitment_key_size","default","default","default","default_T","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","digest","drop","drop","drop","drop","drop","drop","entomb","eq","eq","eq","eq","eq","eq","exhume","extent","fmt","fmt","fmt","fmt","fmt","fmt","fold","fold","fold_mut","fold_mut","from","from","from","from","from","from","from_r1cs_instance","from_r1cs_instance_unchecked","from_r1cs_witness","init","init","init","init","init","init","into","into","into","into","into","into","is_sat","is_sat_relaxed","new","new","new","pad","pad","random","random_witness_instance","serialize","serialize","serialize","serialize","serialize","serialize","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_transcript_bytes","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","batched","batched_ppsnark","polys","powers","ppsnark","snark","BatchedRelaxedR1CSSNARK","ProverKey","VerifierKey","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","ck_floor","deref","deref","deref","deref_mut","deref_mut","deref_mut","deserialize","digest","drop","drop","drop","fmt","fmt","fmt","from","from","from","init","init","init","into","into","into","prove","prove","serialize","serialize","setup","setup","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","verify","verify","vzip","vzip","vzip","BatchedRelaxedR1CSSNARK","ProverKey","VerifierKey","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","ck_floor","ck_floor","deref","deref","deref","deref_mut","deref_mut","deref_mut","deserialize","digest","drop","drop","drop","fmt","fmt","fmt","from","from","from","init","init","init","into","into","into","prove","prove","serialize","serialize","setup","setup","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","verify","verify","vzip","vzip","vzip","multilinear","MultilinearPolynomial","add","bind_poly_var_top","borrow","borrow_mut","clone","clone_into","deref","deref_mut","deserialize","drop","eq","evaluate","evaluate_with","evaluate_with_chis","evaluations","fmt","from","get_num_vars","index","init","into","is_empty","len","new","random","serialize","to_owned","try_from","try_into","type_id","vzip","ProverKey","R1CSShapeSparkCommitment","R1CSShapeSparkRepr","RelaxedR1CSSNARK","VerifierKey","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","ck_floor","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","digest","drop","drop","drop","drop","drop","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","init","init","init","init","init","into","into","into","into","into","new","prove","serialize","serialize","serialize","serialize","setup","to_owned","to_owned","to_owned","to_owned","to_owned","to_transcript_bytes","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","verify","vzip","vzip","vzip","vzip","vzip","ProverKey","RelaxedR1CSSNARK","VerifierKey","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","deref","deref","deref","deref_mut","deref_mut","deref_mut","deserialize","digest","drop","drop","drop","fmt","fmt","fmt","from","from","from","init","init","init","into","into","into","prove","serialize","serialize","setup","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","verify","vzip","vzip","vzip","AuxParams","C1","C2","CircuitDigests","NonUniformCircuit","PublicParams","RecursiveSNARK","StepCircuit","TrivialSecondaryCircuit","TrivialTestCircuit","arity","arity","arity","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","circuit_digest","circuit_index","circuit_index","circuit_index","circuit_param_digests","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","default","default","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","digest","digest","drop","drop","drop","drop","drop","drop","eq","eq","error","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from_parts","from_parts_unchecked","index","init","init","init","init","init","init","initial_circuit_index","into","into","into","into","into","into","into_parts","new","new","num_circuits","num_constraints_and_variables","num_constraints_and_variables_secondary","primary_circuit","prove_step","secondary_circuit","serialize","serialize","serialize","serialize","setup","snark","synthesize","synthesize","synthesize","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","verify","vzip","vzip","vzip","vzip","vzip","vzip","z0_primary","zi_primary","MissingCK","NovaError","SuperNovaError","UnSatIndex","borrow","borrow_mut","deref","deref_mut","drop","eq","fmt","fmt","from","from","init","into","source","to_string","try_from","try_into","type_id","vzip","CompressedSNARK","ProverKey","VerifierKey","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","deref","deref","deref","deref_mut","deref_mut","deref_mut","deserialize","drop","drop","drop","fmt","fmt","fmt","from","from","from","init","init","init","into","into","into","prove","serialize","setup","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","verify","vzip","vzip","vzip","AbsorbInROTrait","Base","Base","CE","CircuitRO","Constants","Constants","CurveCycleEquipped","Dual","Engine","GE","Group","NativeRO","PrimeFieldExt","RO","ROCircuit","ROCircuitTrait","ROConstants","ROConstantsCircuit","ROTrait","Scalar","Scalar","Secondary","TE","TranscriptEngineTrait","TranscriptReprTrait","absorb","absorb","absorb","absorb_in_ro","circuit","commitment","dom_sep","evaluation","from_uniform","group_params","new","new","new","snark","squeeze","squeeze","squeeze","to_transcript_bytes","StepCircuit","TrivialCircuit","arity","arity","borrow","borrow_mut","clone","clone_into","default","deref","deref_mut","drop","eq","fmt","from","init","into","synthesize","synthesize","to_owned","try_from","try_into","type_id","vzip","Commitment","CommitmentEngineTrait","CommitmentKey","CommitmentTrait","CompressedCommitment","Len","ScalarMul","commit","compress","decompress","length","setup","to_coordinates","EvaluationArgument","EvaluationEngineTrait","ProverKey","VerifierKey","prove","setup","verify","BatchedRelaxedR1CSSNARKTrait","DigestHelperTrait","ProverKey","ProverKey","RelaxedR1CSSNARKTrait","VerifierKey","VerifierKey","ck_floor","ck_floor","default_ck_hint","digest","prove","prove","setup","setup","verify","verify"],"q":[[0,"arecibo"],[160,"arecibo::constants"],[161,"arecibo::errors"],[222,"arecibo::provider"],[369,"arecibo::provider::hyperkzg"],[410,"arecibo::provider::ipa_pc"],[478,"arecibo::provider::non_hiding_zeromorph"],[659,"arecibo::r1cs"],[813,"arecibo::spartan"],[819,"arecibo::spartan::batched"],[872,"arecibo::spartan::batched_ppsnark"],[926,"arecibo::spartan::polys"],[927,"arecibo::spartan::polys::multilinear"],[959,"arecibo::spartan::ppsnark"],[1058,"arecibo::spartan::snark"],[1116,"arecibo::supernova"],[1258,"arecibo::supernova::error"],[1280,"arecibo::supernova::snark"],[1327,"arecibo::traits"],[1371,"arecibo::traits::circuit"],[1395,"arecibo::traits::commitment"],[1408,"arecibo::traits::evaluation"],[1415,"arecibo::traits::snark"],[1432,"core::clone"],[1433,"core::result"],[1434,"serde::de"],[1435,"std::io::error"],[1436,"std::io"],[1437,"core::cmp"],[1438,"core::option"],[1439,"core::fmt"],[1440,"core::fmt"],[1441,"core::any"],[1442,"alloc::vec"],[1443,"bellpepper_core::constraint_system"],[1444,"core::error"],[1445,"alloc::string"],[1446,"pairing"],[1447,"pairing"],[1448,"core::borrow"],[1449,"core::default"],[1450,"rand_core"],[1451,"rand_core"],[1452,"core::ops::function"],[1453,"alloc::boxed"],[1454,"ff"],[1455,"bellpepper_core::constraint_system"],[1456,"core::marker"],[1457,"num_bigint::bigint"],[1458,"bellpepper_core::gadgets::boolean"],[1459,"core::cmp"]],"d":["A SNARK that proves the knowledge of a valid RecursiveSNARK","A type that holds the prover key for CompressedSNARK","A type that holds public parameters of Nova","A type that holds parameters for the primary and secondary …","A SNARK that proves the correct execution of an …","A resource buffer for RecursiveSNARK for storing scratch …","A type that holds the verifier key for CompressedSNARK","","","","","","","","","","","","","","","Compute the circuit digest of a StepCircuit.","","","","","","","","","","","","","Global Nova constants","","","","","","","","","","","","","","","","","","","","Return the R1CSWithArity’ digest.","Retrieve the digest of the public parameters.","","","","","","","","","","","This module defines errors returned by the library.","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","This module implements various gadgets necessary for Nova …","This implementation behaves in ways specific to the …","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Create a new R1CSWithArity","Create new instance of recursive SNARK","Returns the number of constraints in the primary and …","The number of steps which have been executed thus far.","Returns the number of variables in the primary and …","Get the outputs after the last step of computation.","Create a new CompressedSNARK","Create a new RecursiveSNARK (or updates the provided …","This module implements Nova’s traits using the following …","This module defines R1CS related types and a folding …","","","","","","","Set up builder to create PublicParams for a pair of …","Creates prover and verifier keys for CompressedSNARK","This module implements RelaxedR1CSSNARKTrait using Spartan …","SuperNova Description","","","","","","","This module defines various traits required by the users …","","","","","","","","","","","","","","","","","","","","","","Verify the correctness of the RecursiveSNARK","Verify the correctness of the CompressedSNARK","","","","","","","","Inputs of the primary circuits","Outputs of the primary circuits","Macros to give syntactic sugar for zipWith pattern and …","Like zip_with but use for_each instead of map.","Bit size of Nova field element hashes","returned when the supplied compressed commitment cannot be …","returned when there is an error creating a digest","returned when the consistency with public IO and …","returned when the prover cannot prove the provided …","returned when the transcript engine encounters an overflow …","returned if the provided commitment key is not of …","returned if the supplied row or col in (row,col,val) tuple …","returned when the initial input to an incremental …","returned if the supplied input is not of the right length","returned when the multiset check fails","returned if the provided number of steps is zero","returned when an invalid PCS evaluation argument is …","returned when the product proof check fails","returned if the step circuit calls inputize or alloc_io in …","returned when the step execution produces an output whose …","returned when an invalid sum-check proof is provided","returned if the supplied witness is not of the right length","returned when a length check fails in a PCS","Errors returned by Nova","Errors specific to the Polynomial commitment scheme","returned if there is an error in the proof/verification of …","returned if proof verification fails","return when error during synthesis","returned if the supplied witness is not a satisfying …","returned if the supplied witness is not a satisfying …","returned when there is a Zeromorph error","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","An implementation of the Nova Engine trait with BN254 …","An implementation of Nova traits with HyperKZG over the …","An implementation of the Nova Engine trait with BN254 …","An implementation of the Nova Engine trait with Grumpkin …","An implementation of the Nova Engine trait with Pallas …","An implementation of the Nova Engine trait with Secp256k1 …","An implementation of the Nova Engine trait with Secp256k1 …","An implementation of the Nova Engine trait with Vesta …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","This module implements Nova’s evaluation engine using …","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","This module implements EvaluationEngine using an IPA-based …","Non-hiding Zeromorph scheme for Multilinear Polynomials.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Provides an implementation of a polynomial evaluation …","Provides an implementation of a polynomial evaluation …","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","A method to verify purported evaluations of a batch of …","","","Provides an implementation of a polynomial evaluation …","An inner product argument","Provides an implementation of the prover key","Provides an implementation of the verifier key","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","A method to verify purported evaluations of a batch of …","","","","","Polynomial Evaluation","KZG Polynomial Commitment Scheme on univariate polynomial. …","Polynomial and its associated types","Proofs","Commitments","Polynomial Evaluation","Zeromorph Polynomial Commitment Scheme on multilinear …","Proofs","ZMProverKey is used to generate a proof","ZMVerifierKey is used to check evaluation proofs for a …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Generate a commitment for a polynomial Note that the …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","On input a polynomial p and a point point, outputs a proof …","proof","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A type for functions that hints commitment key sizing by …","A type that holds an R1CS instance","A type that holds the result of a R1CS multiplication","A type that holds the shape of the R1CS matrices","A type that holds a witness for a given R1CS instance","A type that holds a Relaxed R1CS instance","A type that holds a witness for a given Relaxed R1CS …","","","","","","","","","","","","","","","","","","","","","","","","","","","Commits to the witness using the supplied generators","Commits to the witness using the supplied generators","A method to compute a commitment to the cross-term T given …","A method to compute a commitment to the cross-term T given …","Generates public parameters for a Rank-1 Constraint System …","Computes the number of generators required for the …","Produces a default R1CSResult given an R1CSShape","Produces a default RelaxedR1CSWitness given an R1CSShape","Produces a default RelaxedR1CSInstance given R1CSGens and …","Empty buffer for commit_T_into","","","","","","","","","","","","","","","","","","","returned the digest of the R1CSShape","","","","","","","","","","","","","","","","","","","","","","Folds an incoming R1CSWitness into the current one","Folds an incoming RelaxedR1CSInstance into the current one","Mutably folds an incoming R1CSWitness into the current one","Mutably folds an incoming RelaxedR1CSInstance into the …","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Initializes a new RelaxedR1CSInstance from an R1CSInstance","Initializes a new RelaxedR1CSInstance from an R1CSInstance","Initializes a new RelaxedR1CSWitness from an R1CSWitness","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Checks if the R1CS instance is satisfiable given a witness …","Checks if the Relaxed R1CS instance is satisfiable given a …","Create an object of type R1CSShape from the explicitly …","A method to create a witness object using a vector of …","A method to create an instance object using constituent …","Pads the R1CSShape so that the shape passes …","Pads the provided witness to the correct length","Generate a random R1CSShape with the specified number of …","Generate a satisfying RelaxedR1CSWitness and …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","This module implements BatchedRelaxedR1CSSNARKTrait using …","batched pp snark","This module contains the definitions of polynomial types …","Creates a vector of the first n powers of s.","This module implements RelaxedR1CSSNARK traits using a …","This module implements RelaxedR1CSSNARKTrait using Spartan …","A succinct proof of knowledge of a witness to a batch of …","A type that represents the prover’s key","A type that represents the verifier’s key","","","","","","","","","","","","","","","Returns the digest of the verifier’s key.","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","A succinct proof of knowledge of a witness to a relaxed …","A type that represents the prover’s key","A type that represents the verifier’s key","","","","","","","","","","","","","","","","Returns the digest of the verifier’s key","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","Main components:","A multilinear extension of a polynomial $Z(\\\\cdot)$, denote …","","Binds the polynomial’s top variable using the given …","","","","","","","","","","Evaluates the polynomial at the given point. Returns Z(r) …","Evaluates the polynomial with the given evaluations and …","Evaluates the polynomial with the given evaluations and …","evaluations of the polynomial in all the 2^num_vars …","","Returns the argument unchanged.","Returns the number of variables in the multilinear …","","","Calls U::from(self).","Returns true if no evaluations.","Returns the total number of evaluations.","Creates a new MultilinearPolynomial from the given …","Returns a random polynomial","","","","","","","A type that represents the prover’s key","A type that holds a commitment to a sparse polynomial","A type that holds R1CSShape in a form amenable to memory …","A succinct proof of knowledge of a witness to a relaxed …","A type that represents the verifier’s key","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the digest of the verifier’s key","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","represents R1CSShape in a Spark-friendly format amenable …","produces a succinct proof of satisfiability of a …","","","","","","","","","","","","","","","","","","","","","","","","","","","verifies a proof of satisfiability of a RelaxedR1CS …","","","","","","A type that represents the prover’s key","A succinct proof of knowledge of a witness to a relaxed …","A type that represents the verifier’s key","","","","","","","","","","","","","","","","","","","","Returns the digest of the verifier’s key.","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","produces a succinct proof of satisfiability of a …","","","","","","","","","","","","","","","","verifies a proof of satisfiability of a RelaxedR1CS …","","","","Auxiliary PublicParams information about the commitment …","The type of the step-circuits on the primary","The type of the step-circuits on the secondary","A struct that manages all the digests of the primary …","SuperNova helper trait, for implementors that provide sets …","A vector of R1CSWithArity adjoined to a set of PublicParams","A SNARK that proves the correct execution of an …","A helper trait for a step of the incremental computation …","A trivial step circuit that simply returns the input, for …","A trivial step circuit that simply returns the input","Return the the number of inputs or outputs of each step …","","","","","","","","","","","","","","","Compute the circuit digest of a supernova StepCircuit.","Return this StepCircuit’s assigned index, for use when …","","","All of the primary circuit digests of this PublicParams","","","","","","","","","","","","","","","","","","","","","","","","","Return the CircuitDigests’ digest.","Return the PublicParams’ digest.","","","","","","","","","This module defines errors returned by the library.","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Create a PublicParams from a vector of raw R1CSWithArity …","Create a PublicParams from a vector of raw R1CSWithArity …","","","","","","","","Initial circuit index, defaults to zero.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Breaks down an instance of PublicParams into the circuit …","Construct a new CircuitDigests","iterate base step to get new instance of recursive SNARK","How many circuits are provided?","Returns the number of constraints and variables of inner …","Returns the number of constraints and variables of the …","Return a new instance of the primary circuit at index.","executing a step of the incremental computation","Return a new instance of the secondary circuit.","","","","","Construct a new PublicParams","This module defines a final compressing SNARK for …","Synthesize the circuit for a computation step and return …","","","","","","","","","","","","","","","","","","","","","","","","","verify recursive snark","","","","","","","Inputs of the primary circuits","Outputs of the primary circuits","missing commitment key","Nova error","Errors returned by Nova","Extended error for supernova","","","","","","","","","Returns the argument unchanged.","","","Calls U::from(self).","","","","","","","A SNARK that proves the knowledge of a valid RecursiveSNARK","A type that holds the prover key for CompressedSNARK","A type that holds the verifier key for CompressedSNARK","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Create a new CompressedSNARK","","Creates prover and verifier keys for CompressedSNARK","","","","","","","","","","Verify the correctness of the CompressedSNARK","","","","A helper trait to absorb different objects in RO","A type representing an element of the base field of the …","A type representing an element of the base field of the …","A type that defines a commitment engine over scalars in …","The circuit alter ego of this trait impl - this constrains …","A type representing constants/parameters associated with …","A type representing constants/parameters associated with …","This is a convenience trait to pair engines which fields …","Convenience projection to the secondary Engine of a …","A collection of engines that are required by the library","A type that represents an element of the group","Represents an element of a group This is currently …","the vanilla alter ego of this trait - this constrains it …","Defines additional methods on PrimeField objects","A type that represents a circuit-friendly sponge that …","An alternate implementation of Self::RO in the circuit …","A helper trait that defines the behavior of a hash …","An alias for constants associated with E::RO","An alias for constants associated with E::ROCircuit","A helper trait that defines the behavior of a hash …","A type representing an element of the scalar field of the …","A type representing an element of the scalar field of the …","The secondary Engine of Self","A type that provides a generic Fiat-Shamir transcript to …","This trait defines the behavior of a transcript engine …","This trait allows types to implement how they want to be …","Adds a scalar to the internal state","Adds a scalar to the internal state","absorbs any type that implements TranscriptReprTrait under …","Absorbs the value in the provided RO","This module defines traits that a step function must …","This module defines a collection of traits that define the …","adds a domain separator","This module defines a collection of traits that define the …","Returns a scalar representing the bytes","Returns A, B, the order of the group, the size of the base …","Initializes the hash function","Initializes the hash function","initializes the transcript","This module defines a collection of traits that define the …","Returns a challenge of num_bits by hashing the internal …","Returns a challenge of num_bits by hashing the internal …","returns a scalar element of the group as a challenge","returns a byte representation of self to be added to the …","A helper trait for a step of the incremental computation …","A trivial step circuit that simply returns the input","Return the number of inputs or outputs of each step (this …","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","Sythesize the circuit for a computation step and return …","","","","","","","Holds the type of the commitment","A trait that ties different pieces of the commitment …","Holds the type of the commitment key The key should …","This trait defines the behavior of the commitment","Holds the type of the compressed commitment","A trait that helps determine the length of a structure. …","A helper trait for types implementing scalar …","Commits to the provided vector using the provided …","Compresses self into a compressed commitment","Decompresses a compressed commitment into a commitment","Returns the length of the structure.","Samples a new commitment key of a specified size","Returns the coordinate representation of the commitment","A type that holds the evaluation argument","A trait that ties different pieces of the commitment …","A type that holds the prover key","A type that holds the verifier key","A method to prove the evaluation of a multilinear …","A method to perform any additional setup needed to produce …","A method to verify the purported evaluation of a …","A trait that defines the behavior of a zkSNARK to prove …","A helper trait that defines the behavior of a verifier key …","A type that represents the prover’s key","A type that represents the prover’s key","A trait that defines the behavior of a zkSNARK","A type that represents the verifier’s key","A type that represents the verifier’s key","This associated function (not a method) provides a hint …","This associated function (not a method) provides a hint …","Public parameter creation takes a size hint. This size …","Returns the digest of the verifier’s key","Produces a new SNARK for a relaxed R1CS","Produces a new SNARK for a batch of relaxed R1CS","Produces the keys for the prover and the verifier","Produces the keys for the prover and the verifier","Verifies a SNARK for a relaxed R1CS","Verifies a SNARK for a batch of relaxed R1CS"],"i":[0,0,0,0,0,0,0,2,5,7,8,9,12,17,2,5,7,8,9,12,17,0,2,5,7,8,9,12,2,5,7,8,9,12,0,2,5,7,8,9,12,17,2,5,7,8,9,12,17,2,5,7,8,17,2,5,2,5,7,8,9,12,17,2,2,5,0,2,2,2,5,7,8,9,12,17,2,5,7,8,9,12,17,0,0,2,5,7,8,9,12,17,2,5,7,8,9,12,17,2,8,5,8,5,8,17,8,0,0,2,5,7,8,12,17,5,17,0,0,2,5,7,8,9,12,0,2,5,7,8,9,12,17,2,5,7,8,9,12,17,2,5,7,8,9,12,17,8,17,2,5,7,8,9,12,17,8,8,0,0,0,29,29,29,29,29,29,29,29,29,29,29,34,29,29,29,29,29,34,0,0,29,29,29,29,29,34,29,34,29,34,29,34,29,34,29,34,29,34,29,29,34,34,29,29,29,34,29,34,29,34,29,29,34,29,34,29,34,29,34,29,34,0,0,0,0,0,0,0,0,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,0,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,0,0,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,38,39,40,41,42,43,44,45,0,0,46,48,46,48,46,48,46,48,46,48,46,48,46,48,46,48,46,48,46,48,46,48,46,48,48,46,48,48,46,48,46,48,46,48,46,48,48,46,48,0,0,0,0,56,57,54,55,56,57,54,55,54,55,54,55,56,57,54,55,56,57,54,55,55,56,57,54,55,56,57,54,55,56,57,54,55,56,57,54,55,56,57,54,55,54,57,55,54,54,55,56,57,54,55,56,57,54,55,56,57,54,55,54,56,57,54,55,0,0,0,0,0,0,0,0,0,0,58,59,60,61,62,63,64,65,66,58,59,60,61,62,63,64,65,66,58,59,60,61,62,63,64,65,66,58,59,60,61,62,63,64,65,66,67,60,58,59,60,63,64,65,66,58,59,60,61,62,63,64,65,66,58,59,60,61,62,63,64,65,66,65,58,59,60,61,62,63,64,65,66,58,59,60,61,62,63,64,65,66,58,59,60,61,62,63,64,65,66,58,59,60,61,62,63,64,64,65,66,58,59,60,61,62,63,64,65,66,58,59,60,61,62,63,64,65,66,60,59,66,62,65,66,58,59,60,61,62,63,64,65,66,58,59,60,61,62,63,64,65,66,58,59,60,61,62,63,64,65,66,58,59,60,61,62,63,64,65,66,66,58,59,60,61,62,63,64,65,66,0,0,0,0,0,0,0,70,71,28,72,73,70,74,71,28,72,73,70,74,71,28,72,73,70,74,71,28,72,73,70,74,71,73,74,28,28,0,0,72,74,71,0,28,72,73,70,74,71,28,72,73,70,74,71,28,72,73,70,74,71,28,28,72,73,70,74,71,28,28,72,73,70,74,71,28,28,28,72,73,70,74,71,74,71,74,71,28,72,73,70,74,71,71,71,74,28,72,73,70,74,71,28,72,73,70,74,71,28,28,28,73,70,28,74,28,28,28,72,73,70,74,71,28,72,73,70,74,71,71,28,72,73,70,74,71,28,72,73,70,74,71,28,72,73,70,74,71,28,72,73,70,74,71,0,0,0,0,0,0,0,0,0,80,83,82,80,83,82,80,80,83,82,80,83,82,80,82,80,83,82,80,83,82,80,83,82,80,83,82,80,83,82,80,80,80,82,80,80,80,83,82,80,83,82,80,83,82,80,80,80,83,82,0,0,0,86,85,84,86,85,84,84,84,86,85,84,86,85,84,84,85,86,85,84,86,85,84,86,85,84,86,85,84,86,85,84,84,84,85,84,84,84,86,85,84,86,85,84,86,85,84,84,84,86,85,84,0,0,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,0,0,0,0,0,91,92,93,94,95,91,92,93,94,95,95,91,92,93,94,95,91,92,93,94,95,91,92,93,94,95,91,92,93,94,95,91,92,95,94,91,92,93,94,95,91,92,93,94,95,91,92,93,94,95,91,92,93,94,95,91,92,93,94,95,91,95,91,92,94,95,95,91,92,93,94,95,92,91,92,93,94,95,91,92,93,94,95,91,92,93,94,95,95,91,92,93,94,95,0,0,0,96,97,98,96,97,98,96,97,98,96,97,98,96,97,98,96,97,98,98,97,96,97,98,96,97,98,96,97,98,96,97,98,96,97,98,98,97,98,98,96,97,98,96,97,98,96,97,98,96,97,98,98,96,97,98,0,108,108,0,0,0,0,0,0,0,99,100,101,100,101,103,102,104,105,100,101,103,102,104,105,0,99,100,101,102,100,101,104,105,100,101,104,105,100,101,100,101,103,103,102,104,105,100,101,103,102,104,105,105,103,102,100,101,103,102,104,105,103,104,0,100,101,103,102,104,105,100,101,103,102,104,105,102,102,102,100,101,103,102,104,105,108,100,101,103,102,104,105,102,103,105,108,102,102,108,105,108,103,102,104,105,102,0,99,100,101,100,101,104,105,100,101,103,102,104,105,100,101,103,102,104,105,100,101,103,102,104,105,105,100,101,103,102,104,105,105,105,109,109,0,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,0,0,0,114,115,112,114,115,112,114,115,112,114,115,112,112,114,115,112,114,115,112,114,115,112,114,115,112,114,115,112,112,112,112,114,115,112,114,115,112,114,115,112,112,114,115,112,0,138,4,4,118,118,119,0,0,0,4,0,119,0,4,4,0,0,0,0,138,4,6,4,0,0,118,119,124,126,0,0,124,0,127,138,118,119,124,0,118,119,124,125,0,0,1,130,130,130,130,130,130,130,130,130,130,130,130,130,130,1,130,130,130,130,130,130,139,0,139,0,132,0,0,139,132,132,134,139,132,81,0,81,81,81,81,81,0,0,10,113,0,10,113,10,113,0,135,10,113,10,113,10,113],"f":[0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[],1],[[[2,[-1]]],[[2,[-1]]],[3,4]],[[[5,[-1]]],[[5,[-1]]],[6,3]],[[[7,[-1]]],[[7,[-1]]],[3,4]],[[[8,[-1]]],[[8,[-1]]],[6,3]],[[[9,[-1,-2,-3]]],[[9,[-1,-2,-3]]],[6,3],[[10,[-1]],3],[[10,[[11,[-1]]]],3]],[[[12,[-1,-2,-3]]],[[12,[-1,-2,-3]]],[6,3],[[10,[-1]],3],[[10,[[11,[-1]]]],3]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],0,[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[-1,[[15,[[2,[-2]]]]],16,4],[-1,[[15,[[5,[-2]]]]],16,6],[-1,[[15,[[7,[-2]]]]],16,4],[-1,[[15,[[8,[-2]]]]],16,6],[-1,[[15,[[17,[-2,-3,-4]]]]],16,6,[[10,[-2]]],[[10,[[11,[-2]]]]]],[[[2,[-1]]],[],4],[[[5,[-1]]],[],6],[14,13],[14,13],[14,13],[14,13],[14,13],[14,13],[14,13],[[[2,[-1]],-2],[[18,[13]]],4,19],[[[2,[-1]],[2,[-1]]],20,[21,4]],[[[5,[-1]],[5,[-1]]],20,[6,21]],0,[[[2,[-1]],[23,[22]]],[[24,[[23,[22]]]]],4],[[[2,[-1]]],14,4],[[[2,[-1]],25],26,[27,4]],[[[5,[-1]],25],26,[6,27]],[[[7,[-1]],25],26,[27,4]],[[[8,[-1]],25],26,[6,27]],[[[9,[-1,-2,-3]],25],26,[6,27],[[10,[-1]],27],[[10,[[11,[-1]]]],27]],[[[12,[-1,-2,-3]],25],26,[6,27],[[10,[-1]],27],[[10,[[11,[-1]]]],27]],[[[17,[-1,-2,-3]],25],26,[6,27],[[10,[-1]],27],[[10,[[11,[-1]]]],27]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],0,0,[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[28,[-1]],14],[[2,[-1]]],4],[[[5,[-1]],-2,-3,23,23],[[15,[[8,[-1]],29]]],6,1,1],[[[5,[-1]]],[[13,[14,14]]],6],[[[8,[-1]]],14,6],[[[5,[-1]]],[[13,[14,14]]],6],[[[8,[-1]]],[[13,[23,23]]],6],[[[5,[-1]],[9,[-1,-2,-3]],[8,[-1]]],[[15,[[17,[-1,-2,-3]],29]]],6,[[10,[-1]]],[[10,[[11,[-1]]]]]],[[[8,[-1]],[5,[-1]],-2,-3],[[15,[13,29]]],6,1,1],0,0,[[[2,[-1]],-2],15,4,30],[[[5,[-1]],-2],15,6,30],[[[7,[-1]],-2],15,4,30],[[[8,[-1]],-2],15,6,30],[[[12,[-1,-2,-3]],-4],15,6,[[10,[-1]]],[[10,[[11,[-1]]]]],30],[[[17,[-1,-2,-3]],-4],15,6,[[10,[-1]]],[[10,[[11,[-1]]]]],30],[[-1,-2,[31,[-3]],[31,[[11,[-3]]]]],[[15,[[5,[-3]],29]]],1,1,6],[[[5,[-1]]],[[15,[[13,[[9,[-1,-2,-3]],[12,[-1,-2,-3]]]],29]]],6,[[10,[-1]]],[[10,[[11,[-1]]]]]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[[8,[-1]],[5,[-1]],14,23,23],[[15,[[13,[33,33]],29]]],6],[[[17,[-1,-2,-3]],[12,[-1,-2,-3]],14,23,23],[[15,[[13,[33,33]],29]]],6,[[10,[-1]]],[[10,[[11,[-1]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[8,[-1]]],33,6],[[[8,[-1]]],33,6],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,13],[14,13],[[29,29],20],[[34,34],20],[[29,25],26],[[29,25],26],[[34,25],26],[[34,25],26],[34,29],[-1,-1,[]],[35,29],[-1,-1,[]],[[],14],[[],14],[-1,-2,[],[]],[-1,-2,[],[]],[29,[[24,[36]]]],[-1,37,[]],[-1,37,[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[38,38],[39,39],[40,40],[41,41],[42,42],[43,43],[44,44],[45,45],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,13],[14,13],[14,13],[14,13],[14,13],[14,13],[14,13],[14,13],[[38,38],20],[[39,39],20],[[40,40],20],[[41,41],20],[[42,42],20],[[43,43],20],[[44,44],20],[[45,45],20],[[38,25],26],[[39,25],26],[[40,25],26],[[41,25],26],[[42,25],26],[[43,25],26],[[44,25],26],[[45,25],26],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],0,[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[46,[-1]]],[[46,[-1]]],[3,47]],[[[48,[-1,-2]]],[[48,[-1,-2]]],3,3],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[-1,[[15,[[46,[-2]]]]],16,47],[-1,[[15,[[48,[-2,-3]]]]],16,[],[]],[14,13],[14,13],[[[46,[-1]],25],26,[27,47]],[[[48,[-1,-2]],25],26,27,27],[-1,-1,[]],[-1,-1,[]],[[],14],[[],14],[-1,-2,[],[]],[-1,-2,[],[]],[[[0,[-1]],-2,[0,[-3]],23,23],[[15,[-4,29]]],49,[],[[4,[],[[50,[]],[51,[]],[52,[[0,[-1]]]]]]],[]],[[[46,[-1]],-2],15,47,30],[[[48,[-1,-2]],-3],15,[],[],30],[[[53,[[0,[-1]]]]],[[13,[-2,-3]]],49,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[[-1,[0,[-3]],23,-4],[[15,[13,29]]],[],49,[[4,[],[[50,[]],[51,[]],[52,[[0,[-2]]]]]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[54,[-1]]],[[54,[-1]]],3],[[[55,[-1]]],[[55,[-1]]],[3,4]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[-1,[[15,[[55,[-2]]]]],16,4],[14,13],[14,13],[14,13],[14,13],[[[56,[-1]],25],26,[27,4]],[[[57,[-1]],25],26,[27,4]],[[[54,[-1]],25],26,27],[[[55,[-1]],25],26,[27,4]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],14],[[],14],[[],14],[[],14],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[-1,23,23],[[15,[-2,29]]],[],[]],[[[57,[-1]],-2],15,4,30],[[[55,[-1]],-2],15,4,30],[53,[[13,[-1,-2]]],[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[-1,23,-2],[[15,[13,29]]],[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[58,[-1]]],[[58,[-1]]],[3,47]],[[[59,[-1]]],[[59,[-1]]],[3,47]],[[[60,[-1]]],[[60,[-1]]],3],[[[61,[-1]]],[[61,[-1]]],[3,47]],[[[62,[-1]]],[[62,[-1]]],[3,47]],[[[63,[-1]]],[[63,[-1]]],[3,47]],[[[64,[-1]]],[[64,[-1]]],[3,47]],[[[65,[-1]]],[[65,[-1]]],[3,47]],[[[66,[-1,-2]]],[[66,[-1,-2]]],3,3],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],0,[[-2,67],[[15,[[0,[-1]],29]]],49,[[68,[[0,[-1]]]]]],[[],[[58,[-1]]],[69,47]],[[],[[59,[-1]]],[69,47]],[[],[[60,[-1]]],69],[[],[[63,[-1]]],[69,47]],[[],[[64,[-1]]],[69,47]],[[],[[65,[-1]]],[69,47]],[[],[[66,[-1,-2]]],69,69],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[-1,[[15,[[65,[-2]]]]],16,47],[14,13],[14,13],[14,13],[14,13],[14,13],[14,13],[14,13],[14,13],[14,13],[[[58,[-1]],[58,[-1]]],20,[21,47]],[[[59,[-1]],[59,[-1]]],20,[21,47]],[[[60,[-1]],[60,[-1]]],20,21],[[[61,[-1]],[61,[-1]]],20,[21,47]],[[[62,[-1]],[62,[-1]]],20,[21,47]],[[[63,[-1]],[63,[-1]]],20,[21,47]],[[[64,[-1]],[64,[-1]]],20,[21,47]],[[[65,[-1]],[65,[-1]]],20,[21,47]],[[[66,[-1,-2]],[66,[-1,-2]]],20,21,21],[[[58,[-1]],25],26,[27,47]],[[[59,[-1]],25],26,[27,47]],[[[60,[-1]],25],26,27],[[[61,[-1]],25],26,[27,47]],[[[62,[-1]],25],26,[27,47]],[[[63,[-1]],25],26,[27,47]],[[[64,[-1]],25],26,[27,47]],[[[65,[-1]],25],26,[27,47]],[[[66,[-1,-2]],25],26,27,27],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[58,[-1]]],[[64,[-1]]],47],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[-2,67],[[15,[[13,[[59,[-1]],[58,[-1]]]],29]]],49,[[68,[[0,[-1]]]]]],0,[[[0,[-1]],-2,23,23],[[15,[-3,29]]],49,[],[]],[[[62,[-1]],-2],15,47,30],[[[65,[-1]],-2],15,47,30],[[[53,[[0,[-1]]]]],[[13,[-2,-3]]],49,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[-1,23,-2],[[15,[13,29]]],[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,[[[70,[-1]]],13,4],[[[71,[-1]]],13,4],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[28,[-1]]],[[28,[-1]]],[3,4]],[[[72,[-1]]],[[72,[-1]]],[3,4]],[[[73,[-1]]],[[73,[-1]]],[3,4]],[[[70,[-1]]],[[70,[-1]]],[3,4]],[[[74,[-1]]],[[74,[-1]]],[3,4]],[[[71,[-1]]],[[71,[-1]]],[3,4]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[[73,[-1]]],[],4],[[[74,[-1]]],13,4],[[[28,[-1]],[71,[-1]],[74,[-1]],[70,[-1]],[73,[-1]]],[[15,[[13,[33]],29]]],4],[[[28,[-1]],[71,[-1]],[74,[-1]],[70,[-1]],[73,[-1]],33,[72,[-1]],[72,[-1]]],[[15,[29]]],4],[[[28,[-1]],[31,[-1]]],[],4],[[[28,[-1]],[31,[-1]]],14,4],[14,[[72,[-1]]],4],[[[28,[-1]]],[[74,[-1]]],4],[[[28,[-1]]],[[71,[-1]]],4],[14,33],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[-1,[[15,[[28,[-2]]]]],16,4],[-1,[[15,[[72,[-2]]]]],16,4],[-1,[[15,[[73,[-2]]]]],16,4],[-1,[[15,[[70,[-2]]]]],16,4],[-1,[[15,[[74,[-2]]]]],16,4],[-1,[[15,[[71,[-2]]]]],16,4],[[[28,[-1]]],[],4],[14,13],[14,13],[14,13],[14,13],[14,13],[14,13],[[[28,[-1]],-2],[[18,[13]]],4,19],[[[28,[-1]],[28,[-1]]],20,[21,4]],[[[72,[-1]],[72,[-1]]],20,[21,4]],[[[73,[-1]],[73,[-1]]],20,[21,4]],[[[70,[-1]],[70,[-1]]],20,[21,4]],[[[74,[-1]],[74,[-1]]],20,[21,4]],[[[71,[-1]],[71,[-1]]],20,[21,4]],[[[28,[-1]],[23,[22]]],[[24,[[23,[22]]]]],4],[[[28,[-1]]],14,4],[[[28,[-1]],25],26,[27,4]],[[[72,[-1]],25],26,[27,4]],[[[73,[-1]],25],26,[27,4]],[[[70,[-1]],25],26,[27,4]],[[[74,[-1]],25],26,[27,4]],[[[71,[-1]],25],26,[27,4]],[[[74,[-1]],[73,[-1]],23],[[15,[[74,[-1]],29]]],4],[[[71,[-1]],[70,[-1]]],[[71,[-1]]],4],[[[74,[-1]],[73,[-1]],23],[[15,[13,29]]],4],[[[71,[-1]],[70,[-1]]],13,4],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[28,[-1]],[70,[-1]]],[[71,[-1]]],4],[23,[[71,[-1]]],4],[[[28,[-1]],[73,[-1]]],[[74,[-1]]],4],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[28,[-1]],[70,[-1]],[73,[-1]]],[[15,[13,29]]],4],[[[28,[-1]],[71,[-1]],[74,[-1]]],[[15,[13,29]]],4],0,[[[28,[-1]],33],[[15,[[73,[-1]],29]]],4],[[[28,[-1]],33],[[15,[[70,[-1]],29]]],4],[[[28,[-1]]],[[28,[-1]]],4],[[[74,[-1]],[28,[-1]]],[[74,[-1]]],4],[[14,14,14,14,-1],[[28,[-2]]],[75,76],4],[[[28,[-1]],-2],[[13,[[74,[-1]],[71,[-1]]]]],4,[75,76]],[[[28,[-1]],-2],15,4,30],[[[72,[-1]],-2],15,4,30],[[[73,[-1]],-2],15,4,30],[[[70,[-1]],-2],15,4,30],[[[74,[-1]],-2],15,4,30],[[[71,[-1]],-2],15,4,30],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[71,[-1]]],[[33,[22]]],4],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,[[-1,14],[[33,[-1]]],77],0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[],[[79,[78]]]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[-1,[[15,[[80,[-2,-3]]]]],16,4,[[81,[-2]]]],[[[82,[-1,-2]]],[],4,[[81,[-1]]]],[14,13],[14,13],[14,13],[[[80,[-1,-2]],25],26,[27,4],[27,[81,[-1]]]],[[[83,[-1,-2]],25],26,[27,4],[27,[81,[-1]]]],[[[82,[-1,-2]],25],26,[27,4],[27,[81,[-1]]]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],14],[[],14],[[],14],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[-1,[28,[-2]],[71,[-2]],[74,[-2]]],[[15,[[80,[-2,-3]],29]]],[],4,[[81,[-2]]]],[[-1,[33,[[28,[-2]]]],[23,[[71,[-2]]]],[23,[[74,[-2]]]]],[[15,[[80,[-2,-3]],29]]],[],4,[[81,[-2]]]],[[[80,[-1,-2]],-3],15,4,[[81,[-1]]],30],[[[82,[-1,-2]],-3],15,4,[[81,[-1]]],30],[[53,[33,[[28,[-1]]]]],[[15,[[13,[-2,-3]],29]]],4,[],[]],[[53,[28,[-1]]],[[15,[[13,[-2,-3]],29]]],4,[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[[80,[-1,-2]],-3,[23,[[71,[-1]]]]],[[15,[13,29]]],4,[[81,[-1]]],[]],[[[80,[-1,-2]],-3,[71,[-1]]],[[15,[13,29]]],4,[[81,[-1]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[],[[79,[78]]]],[[],[[79,[78]]]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[-1,[[15,[[84,[-2,-3]]]]],16,4,[[81,[-2]]]],[[[85,[-1,-2]]],[],4,[[81,[-1]]]],[14,13],[14,13],[14,13],[[[86,[-1,-2]],25],26,[27,4],[27,[81,[-1]]]],[[[85,[-1,-2]],25],26,[27,4],[27,[81,[-1]]]],[[[84,[-1,-2]],25],26,[27,4],[27,[81,[-1]]]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],14],[[],14],[[],14],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[-1,[33,[[28,[-2]]]],[23,[[71,[-2]]]],[23,[[74,[-2]]]]],[[15,[[84,[-2,-3]],29]]],[],4,[[81,[-2]]]],[[-1,[28,[-2]],[71,[-2]],[74,[-2]]],[[15,[[84,[-2,-3]],29]]],[],4,[[81,[-2]]]],[[[85,[-1,-2]],-3],15,4,[[81,[-1]]],30],[[[84,[-1,-2]],-3],15,4,[[81,[-1]]],30],[[53,[28,[-1]]],[[15,[[13,[-2,-3]],29]]],4,[],[]],[[53,[33,[[28,[-1]]]]],[[15,[[13,[-2,-3]],29]]],4,[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[[84,[-1,-2]],-3,[71,[-1]]],[[15,[13,29]]],4,[[81,[-1]]],[]],[[[84,[-1,-2]],-3,[23,[[71,[-1]]]]],[[15,[13,29]]],4,[[81,[-1]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[[[87,[-1]],[87,[-1]]],-2,88,[]],[[[87,[-1]],-1],13,88],[-1,-2,[],[]],[-1,-2,[],[]],[[[87,[-1]]],[[87,[-1]]],3],[[-1,-2],13,[],[]],[14,-1,[]],[14,-1,[]],[-1,[[15,[[87,[-2]]]]],16,89],[14,13],[[[87,[-1]],[87,[-1]]],20,21],[[[87,[-1]],[23,[-1]]],-1,88],[[[23,[-1]],[23,[-1]]],-1,88],[[[23,[-1]],[23,[-1]]],-1,88],[[[87,[-1]]],[[23,[-1]]],88],[[[87,[-1]],25],26,27],[-1,-1,[]],[[[87,[-1]]],14,88],[[[87,[-1]],14],-1,88],[[],14],[-1,-2,[],[]],[[[87,[-1]]],20,88],[[[87,[-1]]],14,88],[[[33,[-1]]],[[87,[-1]]],88],[[14,-1],[[87,[-2]]],[75,76],88],[[[87,[-1]],-2],15,90,30],[-1,-2,[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,-2,[],[]],0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[],[[79,[78]]]],[[[91,[-1]]],[[91,[-1]]],[3,4]],[[[92,[-1]]],[[92,[-1]]],[3,4]],[[[93,[-1,-2]]],[[93,[-1,-2]]],[3,4],[3,[81,[-1]]]],[[[94,[-1,-2]]],[[94,[-1,-2]]],[3,4],[3,[81,[-1]]]],[[[95,[-1,-2]]],[[95,[-1,-2]]],[3,4],[3,[81,[-1]]]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[-1,[[15,[[91,[-2]]]]],16,4],[-1,[[15,[[92,[-2]]]]],16,4],[-1,[[15,[[95,[-2,-3]]]]],16,4,[[81,[-2]]]],[[[94,[-1,-2]]],[],4,[[81,[-1]]]],[14,13],[14,13],[14,13],[14,13],[14,13],[[[91,[-1]],25],26,[27,4]],[[[92,[-1]],25],26,[27,4]],[[[93,[-1,-2]],25],26,[27,4],[27,[81,[-1]]]],[[[94,[-1,-2]],25],26,[27,4],[27,[81,[-1]]]],[[[95,[-1,-2]],25],26,[27,4],[27,[81,[-1]]]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],14],[[],14],[[],14],[[],14],[[],14],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[28,[-1]]],[[91,[-1]]],4],[[-1,[28,[-2]],[71,[-2]],[74,[-2]]],[[15,[[95,[-2,-3]],29]]],[],4,[[81,[-2]]]],[[[91,[-1]],-2],15,4,30],[[[92,[-1]],-2],15,4,30],[[[94,[-1,-2]],-3],15,4,[[81,[-1]]],30],[[[95,[-1,-2]],-3],15,4,[[81,[-1]]],30],[[53,[28,[-1]]],[[15,[[13,[-2,-3]],29]]],4,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[92,[-1]]],[[33,[22]]],4],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[[95,[-1,-2]],-3,[71,[-1]]],[[15,[13,29]]],4,[[81,[-1]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[96,[-1,-2]]],[[96,[-1,-2]]],[3,4],[3,[81,[-1]]]],[[[97,[-1,-2]]],[[97,[-1,-2]]],[3,4],[3,[81,[-1]]]],[[[98,[-1,-2]]],[[98,[-1,-2]]],[3,4],[3,[81,[-1]]]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[-1,[[15,[[98,[-2,-3]]]]],16,4,[[81,[-2]]]],[[[97,[-1,-2]]],[],4,[[81,[-1]]]],[14,13],[14,13],[14,13],[[[96,[-1,-2]],25],26,[27,4],[27,[81,[-1]]]],[[[97,[-1,-2]],25],26,[27,4],[27,[81,[-1]]]],[[[98,[-1,-2]],25],26,[27,4],[27,[81,[-1]]]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],14],[[],14],[[],14],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[-1,[28,[-2]],[71,[-2]],[74,[-2]]],[[15,[[98,[-2,-3]],29]]],[],4,[[81,[-2]]]],[[[97,[-1,-2]],-3],15,4,[[81,[-1]]],30],[[[98,[-1,-2]],-3],15,4,[[81,[-1]]],30],[[53,[28,[-1]]],[[15,[[13,[-2,-3]],29]]],4,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[[98,[-1,-2]],-3,[71,[-1]]],[[15,[13,29]]],4,[[81,[-1]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,[99,14],[[[100,[-1]]],14,88],[[[101,[-1]]],14,88],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[-1,14],[],99],[99,14],[[[100,[-1]]],14,88],[[[101,[-1]]],14,88],[[[102,[-1]]],[[103,[-1]]],6],[[[100,[-1]]],[[100,[-1]]],3],[[[101,[-1]]],[[101,[-1]]],3],[[[104,[-1]]],[[104,[-1]]],[6,3]],[[[105,[-1]]],[[105,[-1]]],[6,3]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[-1,-2],13,[],[]],[[],[[100,[-1]]],69],[[],[[101,[-1]]],69],[14,-1,[]],[14,-1,[]],[[[103,[-1]]],-2,4,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[-1,[[15,[[105,[-2]]]]],16,6],[[[103,[-1]]],[],4],[[[102,[-1]]],[],6],[14,13],[14,13],[14,13],[14,13],[14,13],[14,13],[[[103,[-1]],[103,[-1]]],20,[21,4]],[[[104,[-1]],[104,[-1]]],20,[6,21]],0,[[[100,[-1]],25],26,27],[[[101,[-1]],25],26,27],[[[103,[-1]],25],26,[27,4]],[[[102,[-1]],25],26,[6,27]],[[[104,[-1]],25],26,[6,27]],[[[105,[-1]],25],26,[6,27]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[33,[[2,[-1]]]],[104,[-1]]],[[102,[-1]]],6],[[[33,[[2,[-1]]]],[104,[-1]]],[[102,[-1]]],6],[[[102,[-1]],14],-2,6,[]],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[[108,[],[[106,[-1]],[107,[-2]]]]],14,99,99],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[102,[-1]]],[[13,[[33,[[2,[-1]]]],[104,[-1]]]]],6],[33,[[103,[-1]]],4],[[[102,[-1]],-2,23,23],[[15,[[105,[-1]],109]]],6,[[108,[-1]]]],[[[108,[],[[106,[-1]],[107,[-2]]]]],14,99,99],[[[102,[-1]],14],[[13,[14,14]]],6],[[[102,[-1]]],[[13,[14,14]]],6],[[[108,[],[[106,[-1]],[107,[-2]]]],14],-1,99,99],[[[105,[-1]],[102,[-1]],-2,-3],[[15,[13,109]]],6,99,99],[[[108,[],[[106,[-1]],[107,[-2]]]]],-2,99,99],[[[103,[-1]],-2],15,4,30],[[[102,[-1]],-2],15,6,30],[[[104,[-1]],-2],15,6,30],[[[105,[-1]],-2],15,6,30],[[-2,[31,[-1]],[31,[[11,[-1]]]]],[[102,[-1]]],6,[[108,[-1]]]],0,[[99,-2,[24,[[110,[-1]]]],[23,[[110,[-1]]]]],[[15,[[13,[[24,[[110,[-1]]]],[33,[[110,[-1]]]]]],35]]],88,[[111,[-1]]]],[[[100,[-1]],-2,[24,[[110,[-1]]]],[23,[[110,[-1]]]]],[[15,[[13,[[24,[[110,[-1]]]],[33,[[110,[-1]]]]]],35]]],88,[[111,[-1]]]],[[[101,[-1]],-2,[24,[[110,[-1]]]],[23,[[110,[-1]]]]],[[15,[[13,[[24,[[110,[-1]]]],[33,[[110,[-1]]]]]],35]]],88,[[111,[-1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[[105,[-1]],[102,[-1]],23,23],[[15,[[13,[33,33]],109]]],6],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[105,[-1]]],33,6],[[[105,[-1]]],33,6],0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[14,-1,[]],[14,-1,[]],[14,13],[[109,109],20],[[109,25],26],[[109,25],26],[-1,-1,[]],[29,109],[[],14],[-1,-2,[],[]],[109,[[24,[36]]]],[-1,37,[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,-2,[],[]],0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[14,-1,[]],[-1,[[15,[[112,[-2,-3,-4]]]]],16,6,[[113,[-2]]],[[10,[[11,[-2]]]]]],[14,13],[14,13],[14,13],[[[114,[-1,-2,-3]],25],26,[6,27],[[113,[-1]],27],[[10,[[11,[-1]]]],27]],[[[115,[-1,-2,-3]],25],26,[6,27],[[113,[-1]],27],[[10,[[11,[-1]]]],27]],[[[112,[-1,-2,-3]],25],26,[6,27],[[113,[-1]],27],[[10,[[11,[-1]]]],27]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],14],[[],14],[[],14],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[102,[-1]],[114,[-1,-2,-3]],[105,[-1]]],[[15,[[112,[-1,-2,-3]],109]]],6,[[113,[-1]]],[[10,[[11,[-1]]]]]],[[[112,[-1,-2,-3]],-4],15,6,[[113,[-1]]],[[10,[[11,[-1]]]]],30],[[[102,[-1]]],[[15,[[13,[[114,[-1,-2,-3]],[115,[-1,-2,-3]]]],109]]],6,[[113,[-1]]],[[10,[[11,[-1]]]]]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,32,[]],[-1,32,[]],[[[112,[-1,-2,-3]],[102,[-1]],[115,[-1,-2,-3]],23,23],[[15,[[13,[33,33]],109]]],6,[[113,[-1]]],[[10,[[11,[-1]]]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[118,[],[[116,[-1]],[117,[-3]]]],-2],13,[[119,[-2],[[117,[-3]]]]],88,[27,69,3,21,120,121,90,89,122]],[[[119,[],[[123,[-1]],[117,[-4]]]],[110,[-2]]],13,[[118,[-2,-3],[[117,[-4]]]]],88,[],[27,69,3,21,120,121,90,89,122]],[[124,[23,[22]],-1],13,125],[126,13],0,0,[[124,[23,[22]]],13],0,[[[23,[22]]],127],[[],[[13,[-1,-1,128,128]]],[]],[[-1,14],[[118,[],[[116,[-2]],[117,[-1]]]]],[27,69,3,21,120,121,90,89,122],[[119,[-3],[[117,[-1]]]]],88],[[-1,14],[[119,[],[[123,[-2]],[117,[-1]]]]],[27,69,3,21,120,121,90,89,122],[[118,[-3,-4],[[117,[-1]]]]],88,[]],[[[23,[22]]],124],0,[[[118,[],[[116,[-1]],[117,[-3]]]],14],-4,[[119,[-2],[[117,[-3]]]]],88,[27,69,3,21,120,121,90,89,122],[]],[[[119,[],[[123,[-1]],[117,[-4]]]],-5,14],[[15,[[33,[129]],35]]],[[118,[-2,-3],[[117,[-4]]]]],88,[],[27,69,3,21,120,121,90,89,122],[[111,[-2]]]],[[124,[23,[22]]],[[15,[29]]]],[125,[[33,[22]]]],0,0,[1,14],[[[130,[-1]]],14,88],[-1,-2,[],[]],[-1,-2,[],[]],[[[130,[-1]]],[[130,[-1]]],3],[[-1,-2],13,[],[]],[[],[[130,[-1]]],69],[14,-1,[]],[14,-1,[]],[14,13],[[[130,[-1]],[130,[-1]]],20,21],[[[130,[-1]],25],26,27],[-1,-1,[]],[[],14],[-1,-2,[],[]],[[1,-2,[23,[[110,[-1]]]]],[[15,[[33,[[110,[-1]]]],35]]],88,[[111,[-1]]]],[[[130,[-1]],-2,[23,[[110,[-1]]]]],[[15,[[33,[[110,[-1]]]],35]]],88,[[111,[-1]]]],[-1,-2,[],[]],[-1,[[15,[-2]]],[],[]],[-1,[[15,[-2]]],[],[]],[-1,32,[]],[-1,-2,[],[]],0,0,0,0,0,0,0,[[-1,23],-2,[],[]],[[[132,[],[[131,[-1]]]]],-1,[3,27,21,133,120,121,125,90,89]],[-1,[[15,[[132,[],[[131,[-1]]]],29]]],[3,27,21,133,120,121,125,90,89]],[134,14],[[[23,[22]],14],-1,[]],[[[132,[],[[131,[-1]]]]],[[13,[20]]],[3,27,21,133,120,121,125,90,89]],0,0,0,0,[[-1,23,23],[[15,[-2,29]]],[],[]],[53,[[13,[-1,-2]]],[],[]],[[-1,23,-2],[[15,[13,29]]],[],[]],0,0,0,0,0,0,0,[[],[[79,[78]]]],[[],[[79,[78]]]],[[],[[79,[78]]]],[135],[[-1,[28,[-2]],[71,[-2]],[74,[-2]]],[[15,[[10,[],[[136,[-1]],[137,[-3]]]],29]]],[120,121],4,[120,121,90]],[[-1,[33,[[28,[-2]]]],[23,[[71,[-2]]]],[23,[[74,[-2]]]]],[[15,[[113,[],[[136,[-1]],[137,[-3]]]],29]]],[120,121],4,[120,121,[135,[-2]]]],[[53,[28,[-1]]],[[15,[[13,[-2,-3]],29]]],4,[],[]],[[53,[33,[[28,[-1]]]]],[[15,[[13,[-2,-3]],29]]],4,[],[]],[[[10,[],[[136,[-1]],[137,[-2]]]],-2,[71,[-3]]],[[15,[13,29]]],[120,121],[120,121,90],4],[[[113,[],[[136,[-1]],[137,[-2]]]],-2,[23,[[71,[-3]]]]],[[15,[13,29]]],[120,121],[120,121,[135,[-3]]],4]],"c":[],"p":[[10,"StepCircuit",1371],[5,"R1CSWithArity",0],[10,"Clone",1432],[10,"Engine",1327],[5,"PublicParams",0],[10,"CurveCycleEquipped",1327],[5,"ResourceBuffer",0],[5,"RecursiveSNARK",0],[5,"ProverKey",0],[10,"RelaxedR1CSSNARKTrait",1415],[8,"Dual",1327],[5,"VerifierKey",0],[1,"tuple"],[1,"usize"],[6,"Result",1433],[10,"Deserializer",1434],[5,"CompressedSNARK",0],[8,"Result",1435],[10,"Write",1436],[1,"bool"],[10,"PartialEq",1437],[1,"u8"],[1,"slice"],[6,"Option",1438],[5,"Formatter",1439],[8,"Result",1439],[10,"Debug",1439],[5,"R1CSShape",659],[6,"NovaError",161],[10,"Serializer",1440],[8,"CommitmentKeyHint",659],[5,"TypeId",1441],[5,"Vec",1442],[6,"PCSError",161],[6,"SynthesisError",1443],[10,"Error",1444],[5,"String",1445],[5,"GrumpkinEngine",222],[5,"Bn256EngineIPA",222],[5,"Bn256EngineZM",222],[5,"Bn256EngineKZG",222],[5,"Secp256k1Engine",222],[5,"Secq256k1Engine",222],[5,"PallasEngine",222],[5,"VestaEngine",222],[5,"EvaluationArgument",369],[10,"Engine",1446],[5,"EvaluationEngine",369],[10,"MultiMillerLoop",1446],[17,"GE"],[17,"Scalar"],[17,"CE"],[5,"Arc",1447],[5,"EvaluationEngine",410],[5,"InnerProductArgument",410],[5,"ProverKey",410],[5,"VerifierKey",410],[5,"UVKZGEvaluation",478],[5,"UVKZGProof",478],[5,"UVKZGPCS",478],[5,"ZMProverKey",478],[5,"ZMVerifierKey",478],[5,"ZMCommitment",478],[5,"ZMEvaluation",478],[5,"ZMProof",478],[5,"ZMPCS",478],[8,"UVKZGPoly",478],[10,"Borrow",1448],[10,"Default",1449],[5,"R1CSInstance",659],[5,"RelaxedR1CSInstance",659],[5,"R1CSResult",659],[5,"R1CSWitness",659],[5,"RelaxedR1CSWitness",659],[10,"RngCore",1450],[10,"CryptoRng",1450],[10,"Field",1451],[10,"Fn",1452],[5,"Box",1453],[5,"BatchedRelaxedR1CSSNARK",819],[10,"EvaluationEngineTrait",1408],[5,"VerifierKey",819],[5,"ProverKey",819],[5,"BatchedRelaxedR1CSSNARK",872],[5,"VerifierKey",872],[5,"ProverKey",872],[5,"MultilinearPolynomial",927],[10,"PrimeField",1451],[10,"Deserialize",1434],[10,"Serialize",1440],[5,"R1CSShapeSparkRepr",959],[5,"R1CSShapeSparkCommitment",959],[5,"ProverKey",959],[5,"VerifierKey",959],[5,"RelaxedR1CSSNARK",959],[5,"ProverKey",1058],[5,"VerifierKey",1058],[5,"RelaxedR1CSSNARK",1058],[10,"StepCircuit",1116],[5,"TrivialTestCircuit",1116],[5,"TrivialSecondaryCircuit",1116],[5,"PublicParams",1116],[5,"CircuitDigests",1116],[5,"AuxParams",1116],[5,"RecursiveSNARK",1116],[17,"C1"],[17,"C2"],[10,"NonUniformCircuit",1116],[6,"SuperNovaError",1258],[5,"AllocatedNum",1454],[10,"ConstraintSystem",1443],[5,"CompressedSNARK",1280],[10,"BatchedRelaxedR1CSSNARKTrait",1415],[5,"ProverKey",1280],[5,"VerifierKey",1280],[17,"CircuitRO"],[17,"Constants"],[10,"ROTrait",1327],[10,"ROCircuitTrait",1327],[10,"Send",1455],[10,"Sync",1455],[10,"Abomonation",1456],[17,"NativeRO"],[10,"TranscriptEngineTrait",1327],[10,"TranscriptReprTrait",1327],[10,"AbsorbInROTrait",1327],[10,"PrimeFieldExt",1327],[5,"BigInt",1457],[5,"AllocatedBit",1458],[5,"TrivialCircuit",1371],[17,"CompressedCommitment"],[10,"CommitmentTrait",1395],[10,"Eq",1437],[10,"Len",1395],[10,"DigestHelperTrait",1415],[17,"ProverKey"],[17,"VerifierKey"],[10,"Group",1327],[10,"CommitmentEngineTrait",1395]],"b":[[199,"impl-Debug-for-NovaError"],[200,"impl-Display-for-NovaError"],[201,"impl-Display-for-PCSError"],[202,"impl-Debug-for-PCSError"],[203,"impl-From%3CPCSError%3E-for-NovaError"],[205,"impl-From%3CSynthesisError%3E-for-NovaError"],[852,"impl-RelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[853,"impl-BatchedRelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[856,"impl-BatchedRelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[857,"impl-RelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[867,"impl-BatchedRelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[868,"impl-RelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[881,"impl-BatchedRelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[882,"impl-RelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[906,"impl-BatchedRelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[907,"impl-RelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[910,"impl-RelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[911,"impl-BatchedRelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[921,"impl-RelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[922,"impl-BatchedRelaxedR1CSSNARKTrait%3CE%3E-for-BatchedRelaxedR1CSSNARK%3CE,+EE%3E"],[1268,"impl-Debug-for-SuperNovaError"],[1269,"impl-Display-for-SuperNovaError"]]}]\ ]')); if (typeof exports !== 'undefined') exports.searchIndex = searchIndex; else if (window.initSearch) window.initSearch(searchIndex); diff --git a/docs/src/arecibo/supernova/mod.rs.html b/docs/src/arecibo/supernova/mod.rs.html index c41b2bbde..e80f6a7b0 100644 --- a/docs/src/arecibo/supernova/mod.rs.html +++ b/docs/src/arecibo/supernova/mod.rs.html @@ -1204,6 +1204,22 @@ 1203 1204 1205 +1206 +1207 +1208 +1209 +1210 +1211 +1212 +1213 +1214 +1215 +1216 +1217 +1218 +1219 +1220 +1221
#![doc = include_str!("./Readme.md")]
 
 use std::ops::Index;
@@ -1633,6 +1649,22 @@
       .expect("Failure in retrieving digest")
   }
 
+  /// Returns the number of constraints and variables of inner circuit based on index
+  pub fn num_constraints_and_variables(&self, index: usize) -> (usize, usize) {
+    (
+      self.circuit_shapes[index].r1cs_shape.num_cons,
+      self.circuit_shapes[index].r1cs_shape.num_vars,
+    )
+  }
+
+  /// Returns the number of constraints and variables of the secondary circuit
+  pub fn num_constraints_and_variables_secondary(&self) -> (usize, usize) {
+    (
+      self.circuit_shape_secondary.r1cs_shape.num_cons,
+      self.circuit_shape_secondary.r1cs_shape.num_vars,
+    )
+  }
+
   /// All of the primary circuit digests of this [`PublicParams`]
   pub fn circuit_param_digests(&self) -> CircuitDigests<E1> {
     let digests = self