diff --git a/rustdoc/latest/halo2_proofs/plonk/enum.Expression.html b/rustdoc/latest/halo2_proofs/plonk/enum.Expression.html index 280831f2..5e4521a6 100644 --- a/rustdoc/latest/halo2_proofs/plonk/enum.Expression.html +++ b/rustdoc/latest/halo2_proofs/plonk/enum.Expression.html @@ -13,7 +13,7 @@ }); }); -
pub enum Expression<F> {
+
pub enum Expression<F> {
     Constant(F),
     Selector(Selector),
     Fixed(FixedQuery),
@@ -33,25 +33,25 @@
 

Sum(Box<Expression<F>>, Box<Expression<F>>)

This is the sum of two polynomials

Product(Box<Expression<F>>, Box<Expression<F>>)

This is the product of two polynomials

Scaled(Box<Expression<F>>, F)

This is a scaled polynomial

-

Implementations

Evaluate the polynomial using the provided closures to perform the +

Implementations

Evaluate the polynomial using the provided closures to perform the operations.

-

Compute the degree of this polynomial

-

Square this expression.

-

Trait Implementations

The resulting type after applying the + operator.

-

Performs the + operation. Read more

-

Returns a copy of the value. Read more

+

Compute the degree of this polynomial

+

Square this expression.

+

Trait Implementations

The resulting type after applying the + operator.

+

Performs the + operation. Read more

+

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Converts to this type from the input type.

-

Converts to this type from the input type.

-

The resulting type after applying the * operator.

-

Performs the * operation. Read more

-

The resulting type after applying the * operator.

-

Performs the * operation. Read more

-

The resulting type after applying the - operator.

-

Performs the unary - operation. Read more

-

The resulting type after applying the - operator.

-

Performs the - operation. Read more

+

Formats the value using the given formatter. Read more

+

Converts to this type from the input type.

+

Converts to this type from the input type.

+

The resulting type after applying the * operator.

+

Performs the * operation. Read more

+

The resulting type after applying the * operator.

+

Performs the * operation. Read more

+

The resulting type after applying the - operator.

+

Performs the unary - operation. Read more

+

The resulting type after applying the - operator.

+

Performs the - operation. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

diff --git a/rustdoc/latest/halo2_proofs/plonk/fn.create_proof.html b/rustdoc/latest/halo2_proofs/plonk/fn.create_proof.html index 29c5ef45..5fa1d93d 100644 --- a/rustdoc/latest/halo2_proofs/plonk/fn.create_proof.html +++ b/rustdoc/latest/halo2_proofs/plonk/fn.create_proof.html @@ -13,7 +13,7 @@ }); }); -
pub fn create_proof<C: CurveAffine, E: EncodedChallenge<C>, R: RngCore, T: TranscriptWrite<C, E>, ConcreteCircuit: Circuit<C::Scalar>>(
    params: &Params<C>,
    pk: &ProvingKey<C>,
    circuits: &[ConcreteCircuit],
    instances: &[&[&[C::Scalar]]],
    rng: R,
    transcript: &mut T
) -> Result<(), Error>
Expand description

This creates a proof for the provided circuit when given the public +

pub fn create_proof<C: CurveAffine, E: EncodedChallenge<C>, R: RngCore, T: TranscriptWrite<C, E>, ConcreteCircuit: Circuit<C::Scalar>>(
    params: &Params<C>,
    pk: &ProvingKey<C>,
    circuits: &[ConcreteCircuit],
    instances: &[&[&[C::Scalar]]],
    rng: R,
    transcript: &mut T
) -> Result<(), Error>
Expand description

This creates a proof for the provided circuit when given the public parameters params and the proving key ProvingKey that was generated previously for the same circuit. The provided instances are zero-padded internally.

diff --git a/rustdoc/latest/halo2_proofs/plonk/struct.Constraint.html b/rustdoc/latest/halo2_proofs/plonk/struct.Constraint.html index c893a70a..4188fa33 100644 --- a/rustdoc/latest/halo2_proofs/plonk/struct.Constraint.html +++ b/rustdoc/latest/halo2_proofs/plonk/struct.Constraint.html @@ -13,11 +13,11 @@ }); }); -
pub struct Constraint<F: Field> { /* private fields */ }
Expand description

An individual polynomial constraint.

+
pub struct Constraint<F: Field> { /* private fields */ }
Expand description

An individual polynomial constraint.

These are returned by the closures passed to ConstraintSystem::create_gate.

-

Trait Implementations

Formats the value using the given formatter. Read more

-

Converts to this type from the input type.

-

Converts to this type from the input type.

+

Trait Implementations

Formats the value using the given formatter. Read more

+

Converts to this type from the input type.

+

Converts to this type from the input type.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

diff --git a/rustdoc/latest/halo2_proofs/plonk/struct.ConstraintSystem.html b/rustdoc/latest/halo2_proofs/plonk/struct.ConstraintSystem.html index a180cb77..cb7800ed 100644 --- a/rustdoc/latest/halo2_proofs/plonk/struct.ConstraintSystem.html +++ b/rustdoc/latest/halo2_proofs/plonk/struct.ConstraintSystem.html @@ -13,45 +13,45 @@ }); }); -
pub struct ConstraintSystem<F: Field> { /* private fields */ }
Expand description

This is a description of the circuit environment, such as the gate, column and +

pub struct ConstraintSystem<F: Field> { /* private fields */ }
Expand description

This is a description of the circuit environment, such as the gate, column and permutation arrangements.

-

Implementations

Obtain a pinned version of this constraint system; a structure with the +

Implementations

Obtain a pinned version of this constraint system; a structure with the minimal parameters needed to determine the rest of the constraint system.

-

Enables this fixed column to be used for global constant assignments.

+

Enables this fixed column to be used for global constant assignments.

Side-effects

The column will be equality-enabled.

-

Enable the ability to enforce equality over cells in this column

-

Add a lookup argument for some input expressions and table columns.

+

Enable the ability to enforce equality over cells in this column

+

Add a lookup argument for some input expressions and table columns.

table_map returns a map between input expressions and the table columns they need to match.

-

Sets the minimum degree required by the circuit, which can be set to a +

Sets the minimum degree required by the circuit, which can be set to a larger amount than actually needed. This can be used, for example, to force the permutation argument to involve more columns in the same set.

-

Creates a new gate.

+

Creates a new gate.

Panics

A gate is required to contain polynomial constraints. This method will panic if constraints returns an empty iterator.

-

Allocate a new (simple) selector. Simple selectors cannot be added to +

Allocate a new (simple) selector. Simple selectors cannot be added to expressions nor multiplied by other expressions containing simple selectors. Also, simple selectors may not appear in lookup argument inputs.

-

Allocate a new complex selector that can appear anywhere +

Allocate a new complex selector that can appear anywhere within expressions.

-

Allocates a new fixed column that can be used in a lookup table.

-

Allocate a new fixed column

-

Allocate a new advice column

-

Allocate a new instance column

-

Compute the degree of the constraint system (the maximum degree of all +

Allocates a new fixed column that can be used in a lookup table.

+

Allocate a new fixed column

+

Allocate a new advice column

+

Allocate a new instance column

+

Compute the degree of the constraint system (the maximum degree of all constraints).

-

Compute the number of blinding factors necessary to perfectly blind +

Compute the number of blinding factors necessary to perfectly blind each of the prover’s witness polynomials.

-

Returns the minimum necessary rows that need to exist in order to +

Returns the minimum necessary rows that need to exist in order to account for e.g. blinding factors.

-

Trait Implementations

Returns a copy of the value. Read more

+

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

diff --git a/rustdoc/latest/halo2_proofs/plonk/struct.Constraints.html b/rustdoc/latest/halo2_proofs/plonk/struct.Constraints.html index b270411f..ca2c4b0e 100644 --- a/rustdoc/latest/halo2_proofs/plonk/struct.Constraints.html +++ b/rustdoc/latest/halo2_proofs/plonk/struct.Constraints.html @@ -13,7 +13,7 @@ }); }); -
pub struct Constraints<F: Field, C: Into<Constraint<F>>, Iter: IntoIterator<Item = C>> { /* private fields */ }
Expand description

A set of polynomial constraints with a common selector.

+
pub struct Constraints<F: Field, C: Into<Constraint<F>>, Iter: IntoIterator<Item = C>> { /* private fields */ }
Expand description

A set of polynomial constraints with a common selector.

use halo2_proofs::{pasta::Fp, plonk::{Constraints, Expression}, poly::Rotation};
 
@@ -42,13 +42,13 @@ meta.create_gate("foo", |meta| {
 

Note that the use of std::array::IntoIter::new is only necessary if you need to support Rust 1.51 or 1.52. If your minimum supported Rust version is 1.53 or greater, you can pass an array directly.

-

Implementations

Constructs a set of constraints that are controlled by the given selector.

+

Implementations

Constructs a set of constraints that are controlled by the given selector.

Each constraint c in iterator will be converted into the constraint selector * c.

-

Trait Implementations

Formats the value using the given formatter. Read more

-

The type of the elements being iterated over.

+

Trait Implementations

Formats the value using the given formatter. Read more

+

The type of the elements being iterated over.

Which kind of iterator are we turning this into?

-

Creates an iterator from a value. Read more

+

Creates an iterator from a value. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

diff --git a/rustdoc/latest/halo2_proofs/plonk/struct.PinnedConstraintSystem.html b/rustdoc/latest/halo2_proofs/plonk/struct.PinnedConstraintSystem.html index 33ee8dcc..8a314d06 100644 --- a/rustdoc/latest/halo2_proofs/plonk/struct.PinnedConstraintSystem.html +++ b/rustdoc/latest/halo2_proofs/plonk/struct.PinnedConstraintSystem.html @@ -13,8 +13,8 @@ }); }); -
pub struct PinnedConstraintSystem<'a, F: Field> { /* private fields */ }
Expand description

Represents the minimal parameters that determine a ConstraintSystem.

-

Trait Implementations

Formats the value using the given formatter. Read more

+
pub struct PinnedConstraintSystem<'a, F: Field> { /* private fields */ }
Expand description

Represents the minimal parameters that determine a ConstraintSystem.

+

Trait Implementations

Formats the value using the given formatter. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

diff --git a/rustdoc/latest/halo2_proofs/plonk/struct.TableColumn.html b/rustdoc/latest/halo2_proofs/plonk/struct.TableColumn.html index 3f9ab545..01be0a54 100644 --- a/rustdoc/latest/halo2_proofs/plonk/struct.TableColumn.html +++ b/rustdoc/latest/halo2_proofs/plonk/struct.TableColumn.html @@ -13,13 +13,14 @@ }); }); -
pub struct TableColumn { /* private fields */ }
Expand description

A fixed column of a lookup table.

+
pub struct TableColumn { /* private fields */ }
Expand description

A fixed column of a lookup table.

A lookup table can be loaded into this column via Layouter::assign_table. Columns can currently only contain a single table, but they may be used in multiple lookup arguments via ConstraintSystem::lookup.

Lookup table columns are always “encumbered” by the lookup arguments they are used in; they cannot simultaneously be used as general fixed columns.

-

Trait Implementations

Returns a copy of the value. Read more

+

Implementations

Enable equality on this TableColumn.

+

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Feeds this value into the given Hasher. Read more

diff --git a/rustdoc/latest/halo2_proofs/plonk/struct.VirtualCells.html b/rustdoc/latest/halo2_proofs/plonk/struct.VirtualCells.html index 4cfd0ad3..29554205 100644 --- a/rustdoc/latest/halo2_proofs/plonk/struct.VirtualCells.html +++ b/rustdoc/latest/halo2_proofs/plonk/struct.VirtualCells.html @@ -13,14 +13,14 @@ }); }); -
pub struct VirtualCells<'a, F: Field> { /* private fields */ }
Expand description

Exposes the “virtual cells” that can be queried while creating a custom gate or lookup +

pub struct VirtualCells<'a, F: Field> { /* private fields */ }
Expand description

Exposes the “virtual cells” that can be queried while creating a custom gate or lookup table.

-

Implementations

Query a selector at the current position.

-

Query a fixed column at a relative position

-

Query an advice column at a relative position

-

Query an instance column at a relative position

-

Query an Any column at a relative position

-

Trait Implementations

Formats the value using the given formatter. Read more

+

Implementations

Query a selector at the current position.

+

Query a fixed column at a relative position

+

Query an advice column at a relative position

+

Query an instance column at a relative position

+

Query an Any column at a relative position

+

Trait Implementations

Formats the value using the given formatter. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

diff --git a/rustdoc/latest/halo2_proofs/plonk/trait.Assignment.html b/rustdoc/latest/halo2_proofs/plonk/trait.Assignment.html index 61db30c5..d8ddf363 100644 --- a/rustdoc/latest/halo2_proofs/plonk/trait.Assignment.html +++ b/rustdoc/latest/halo2_proofs/plonk/trait.Assignment.html @@ -13,7 +13,7 @@ }); }); -
pub trait Assignment<F: Field> {
+
pub trait Assignment<F: Field> {
     fn enter_region<NR, N>(&mut self, name_fn: N)
   where
        NR: Into<String>,
        N: FnOnce() -> NR
; fn exit_region(&mut self); fn enable_selector<A, AR>(
        &mut self,
        annotation: A,
        selector: &Selector,
        row: usize
    ) -> Result<(), Error>
   where
        A: FnOnce() -> AR,
        AR: Into<String>
; @@ -26,21 +26,21 @@ fn pop_namespace(&mut self, gadget_name: Option<String>); }
Expand description

This trait allows a Circuit to direct some backend to assign a witness for a constraint system.

-

Required Methods

Creates a new region and enters into it.

+

Required Methods

Creates a new region and enters into it.

Panics if we are currently in a region (if exit_region was not called).

Not intended for downstream consumption; use Layouter::assign_region instead.

-

Exits the current region.

+

Exits the current region.

Panics if we are not currently in a region (if enter_region was not called).

Not intended for downstream consumption; use Layouter::assign_region instead.

-

Enables a selector at the given row.

-

Queries the cell of an instance column at a particular absolute row.

+

Enables a selector at the given row.

+

Queries the cell of an instance column at a particular absolute row.

Returns the cell’s value, if known.

-

Assign an advice column value (witness)

-

Assign a fixed value

-

Assign two cells to have the same value

-

Fills a fixed column starting from the given row with value to.

-

Creates a new (sub)namespace and enters into it.

+

Assign an advice column value (witness)

+

Assign a fixed value

+

Assign two cells to have the same value

+

Fills a fixed column starting from the given row with value to.

+

Creates a new (sub)namespace and enters into it.

Not intended for downstream consumption; use Layouter::namespace instead.

-

Exits out of the existing namespace.

+

Exits out of the existing namespace.

Not intended for downstream consumption; use Layouter::namespace instead.

Implementors

\ No newline at end of file diff --git a/rustdoc/latest/halo2_proofs/plonk/trait.Circuit.html b/rustdoc/latest/halo2_proofs/plonk/trait.Circuit.html index efe18e65..146cf5a9 100644 --- a/rustdoc/latest/halo2_proofs/plonk/trait.Circuit.html +++ b/rustdoc/latest/halo2_proofs/plonk/trait.Circuit.html @@ -13,7 +13,7 @@ }); }); -
pub trait Circuit<F: Field> {
+
pub trait Circuit<F: Field> {
     type Config: Clone;
     type FloorPlanner: FloorPlanner;
 
@@ -23,14 +23,14 @@
 }
Expand description

This is a trait that circuits provide implementations for so that the backend prover can ask the circuit to synthesize using some given ConstraintSystem implementation.

-

Required Associated Types

This is a configuration object that stores things like columns.

-

The floor planner used for this circuit. This is an associated type of the +

Required Associated Types

This is a configuration object that stores things like columns.

+

The floor planner used for this circuit. This is an associated type of the Circuit trait because its behaviour is circuit-critical.

-

Required Methods

Returns a copy of this circuit with no witness values (i.e. all witnesses set to +

Required Methods

Returns a copy of this circuit with no witness values (i.e. all witnesses set to None). For most circuits, this will be equal to Self::default().

-

The circuit is given an opportunity to describe the exact gate +

The circuit is given an opportunity to describe the exact gate arrangement, column arrangement, etc.

-

Given the provided cs, synthesize the circuit. The concrete type of +

Given the provided cs, synthesize the circuit. The concrete type of the caller will be different depending on the context, and they may or may not expect to have a witness present.

Implementors

\ No newline at end of file diff --git a/rustdoc/latest/halo2_proofs/plonk/trait.FloorPlanner.html b/rustdoc/latest/halo2_proofs/plonk/trait.FloorPlanner.html index dc96822e..083990ad 100644 --- a/rustdoc/latest/halo2_proofs/plonk/trait.FloorPlanner.html +++ b/rustdoc/latest/halo2_proofs/plonk/trait.FloorPlanner.html @@ -13,12 +13,12 @@ }); }); -
pub trait FloorPlanner {
+
pub trait FloorPlanner {
     fn synthesize<F: Field, CS: Assignment<F>, C: Circuit<F>>(
        cs: &mut CS,
        circuit: &C,
        config: C::Config,
        constants: Vec<Column<Fixed>>
    ) -> Result<(), Error>; }
Expand description

A floor planning strategy for a circuit.

The floor planner is chip-agnostic and applies its strategy to the circuit it is used within.

-

Required Methods

Given the provided cs, synthesize the given circuit.

+

Required Methods

Given the provided cs, synthesize the given circuit.

constants is the list of fixed columns that the layouter may use to assign global constant values. These columns will all have been equality-enabled.

Internally, a floor planner will perform the following operations:

diff --git a/rustdoc/latest/search-index.js b/rustdoc/latest/search-index.js index bf532d8c..940d1241 100644 --- a/rustdoc/latest/search-index.js +++ b/rustdoc/latest/search-index.js @@ -1,7 +1,7 @@ var searchIndex = JSON.parse('{\ "halo2":{"doc":"halo2","t":[],"n":[],"q":[],"d":[],"i":[],"f":[],"p":[]},\ "halo2_gadgets":{"doc":"This crate provides various common gadgets and chips for …","t":[0,0,0,0,0,16,8,8,3,3,3,8,16,16,3,16,3,16,3,16,3,16,3,16,16,3,16,10,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,10,10,10,11,11,11,11,11,10,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,10,10,10,4,13,3,3,3,3,3,8,8,16,4,13,18,3,4,4,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,12,17,17,17,17,5,5,5,5,3,13,4,13,8,8,3,3,3,3,3,16,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,10,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,3,3,8,3,3,16,8,8,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,10,11,10,11,10,11,11,10,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,17,3,16,3,3,8,16,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,16,3,8,16,16,3,8,16,3,16,3,16,16,10,16,8,16,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,10,10,11,11,11,11,11,11,11,11,11,11,0,11,11,0,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,17,8,3,11,11,11,0,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,17,3,3,17,17,11,11,17,11,17,17,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,8,3,8,8,16,11,5,5,11,11,10,11,11,0,0,5,11,11,11,11,11,5,11,11,11,5,11,0,11,5,5,11,11,11,11,11,10,10,11,11,11,3,3,8,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11],"n":["ecc","poseidon","sha256","sinsemilla","utilities","Base","BaseFitsInScalarInstructions","EccInstructions","FixedPoint","FixedPointBaseField","FixedPointShort","FixedPoints","FixedPoints","FullScalar","NonIdentityPoint","NonIdentityPoint","Point","Point","ScalarFixed","ScalarFixed","ScalarFixedShort","ScalarFixedShort","ScalarVar","ScalarVar","ShortScalar","X","X","add","add","add","add_incomplete","add_incomplete","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","chip","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","constrain_equal","constrain_equal","constrain_equal","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","drop","drop","drop","drop","drop","drop","drop","drop","drop","extract_p","extract_p","extract_p","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from_base","from_inner","from_inner","from_inner","from_inner","from_inner","from_inner","init","init","init","init","init","init","init","init","init","inner","inner","inner","into","into","into","into","into","into","into","into","into","mul","mul","mul","mul","mul","mul_fixed","mul_fixed_base_field_elem","mul_fixed_short","new","new","new","new","new","scalar_fixed_from_signed_short","scalar_var_from_base","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","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","witness_point","witness_point_non_id","witness_scalar_fixed","witness_scalar_var","BaseFieldElem","BaseFieldElem","EccChip","EccConfig","EccPoint","EccScalarFixed","EccScalarFixedShort","FixedPoint","FixedScalarKind","FixedScalarKind","FullScalar","FullWidth","NUM_WINDOWS","NonIdentityEccPoint","ScalarVar","ShortScalar","add","add_incomplete","advices","borrow","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","borrow_mut","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","config","configure","constants","constrain_equal","construct","deref","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","deref_mut","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","eq","eq","extract_p","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","generator","init","init","init","init","init","init","init","init","init","init","into","into","into","into","into","into","into","into","into","into","lagrange_coeffs","loaded","lookup_config","mul","mul_fixed","mul_fixed_base_field_elem","mul_fixed_short","point","point","scalar_fixed_from_signed_short","scalar_var_from_base","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_from","try_into","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","type_id","u","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","witness_point","witness_point_non_id","witness_scalar_fixed","witness_scalar_var","x","x","y","y","z","0","FIXED_BASE_WINDOW_SIZE","H","NUM_WINDOWS","NUM_WINDOWS_SHORT","compute_lagrange_coeffs","find_zs_and_us","test_lagrange_coeffs","test_zs_and_us","Hash","Message","PaddedWord","Padding","PoseidonInstructions","PoseidonSpongeInstructions","Pow5Chip","Pow5Config","Sponge","StateWord","Word","Word","absorb","add_input","add_input","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cell","clone","clone","clone","clone_into","clone_into","clone_into","config","configure","construct","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","drop","drop","finish_absorbing","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from_inner","get_output","get_output","hash","init","init","init","init","init","init","init","init","initial_state","initial_state","inner","into","into","into","into","into","into","into","loaded","new","permute","permute","primitives","squeeze","to_owned","to_owned","to_owned","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","value","vzip","vzip","vzip","vzip","vzip","vzip","vzip","0","0","Absorbing","ConstantLength","Domain","Hash","P128Pow5T3","Padding","Spec","SpongeMode","Squeezing","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","constants","constants","constants","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","full_rounds","full_rounds","full_rounds","hash","init","init","init","init","init","init","initial_capacity_element","initial_capacity_element","into","into","into","into","into","name","name","padding","padding","partial_rounds","partial_rounds","partial_rounds","sbox","sbox","sbox","secure_mds","secure_mds","secure_mds","to_owned","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","vzip","vzip","vzip","vzip","vzip","0","BLOCK_SIZE","BlockWord","BlockWord","Sha256","Sha256Digest","Sha256Instructions","State","Table16Chip","Table16Config","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","compress","compress","config","configure","construct","default","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","digest","digest","digest","drop","drop","drop","drop","drop","finalize","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","init","init","init","init","init","initialization","initialization","initialization_vector","initialization_vector","into","into","into","into","into","load","loaded","new","to_owned","to_owned","to_owned","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","update","vzip","vzip","vzip","vzip","vzip","CellValue","CommitDomain","CommitDomains","CommitDomains","FixedPoints","HashDomain","HashDomains","HashDomains","Message","Message","MessagePiece","MessagePiece","NonIdentityPoint","Q","RunningSum","SinsemillaInstructions","X","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","chip","clone","clone","clone_into","clone_into","commit","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","extract","fmt","fmt","fmt","fmt","from","from","from","from","from_field_elem","from_pieces","from_subpieces","hash","hash_domain","hash_to_point","hash_to_point","init","init","init","init","inner","into","into","into","into","merkle","new","new","primitives","r","short_commit","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","vzip","vzip","vzip","vzip","witness_message_piece","SinsemillaChip","SinsemillaConfig","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","config","configure","construct","deref","deref","deref_mut","deref_mut","drop","drop","eq","eq","extract","fmt","fmt","from","from","hash_to_point","init","init","into","into","load","loaded","lookup_config","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","witness_message_piece","MERKLE_CRH_PERSONALIZATION","MerkleInstructions","MerklePath","borrow","borrow_mut","calculate_root","chip","clone","clone_into","construct","deref","deref_mut","drop","fmt","from","hash_layer","init","into","to_owned","try_from","try_into","type_id","vzip","MerkleChip","MerkleConfig","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","config","configure","construct","deref","deref","deref_mut","deref_mut","drop","drop","eq","eq","extract","fmt","fmt","from","from","hash_layer","hash_to_point","init","init","into","into","loaded","swap","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","witness_message_piece","C","CommitDomain","HashDomain","INV_TWO_POW_K","K","Q","Q","Q_PERSONALIZATION","R","SINSEMILLA_S","S_PERSONALIZATION","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","commit","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","from","from","hash","hash_to_point","init","init","into","into","new","new","short_commit","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","FieldValue","RangeConstrained","UtilitiesInstructions","Var","Var","bitrange_of","bitrange_subset","bool_check","borrow","borrow_mut","cell","clone","clone_into","cond_swap","decompose_running_sum","decompose_word","deref","deref_mut","drop","fmt","from","i2lebsp","init","inner","into","lebs2ip","load_private","lookup_range_check","num_bits","range_check","ternary","to_owned","try_from","try_into","type_id","unsound_unchecked","value","value","value","vzip","witness_short","CondSwapChip","CondSwapConfig","CondSwapInstructions","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","config","configure","construct","deref","deref","deref_mut","deref_mut","drop","drop","eq","fmt","fmt","from","from","init","init","into","into","loaded","swap","swap","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","RunningSum","RunningSumConfig","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","configure","copy_decompose","deref","deref","deref","deref_mut","deref_mut","drop","drop","eq","fmt","fmt","from","from","init","init","into","into","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","witness_decompose","LookupRangeCheckConfig","RunningSum","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","configure","copy_check","copy_short_check","deref","deref","deref","deref_mut","deref_mut","drop","drop","eq","fmt","fmt","from","from","init","init","into","into","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","witness_check","witness_short_check"],"q":["halo2_gadgets","","","","","halo2_gadgets::ecc","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_gadgets::ecc::chip","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_gadgets::ecc::chip::ScalarVar","halo2_gadgets::ecc::chip::constants","","","","","","","","halo2_gadgets::poseidon","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_gadgets::poseidon::PaddedWord","","halo2_gadgets::poseidon::primitives","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_gadgets::sha256","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_gadgets::sinsemilla","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_gadgets::sinsemilla::chip","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_gadgets::sinsemilla::merkle","","","","","","","","","","","","","","","","","","","","","","","halo2_gadgets::sinsemilla::merkle::chip","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_gadgets::sinsemilla::primitives","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_gadgets::utilities","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_gadgets::utilities::cond_swap","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_gadgets::utilities::decompose_running_sum","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_gadgets::utilities::lookup_range_check","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["Elliptic curve operations.","The Poseidon algebraic hash function.","The SHA-256 hash function.","The Sinsemilla hash function.","Utility gadgets.","Fixed points that can be multiplied by base field elements.","Instructions that can be implemented for a curve whose …","The set of circuit instructions required to use the ECC …","Precomputed multiples of a fixed point, for full-width …","Precomputed multiples of a fixed point, that can be …","Precomputed multiples of a fixed point, for short signed …","Defines the fixed points for a given instantiation of the …","Enumeration of the set of fixed bases to be used in scalar …","Fixed points that can be used with full-width scalar …","A point on a specific elliptic curve that is guaranteed to …","Variable representing a non-identity elliptic curve point.","A point on a specific elliptic curve.","Variable representing an elliptic curve point.","An integer representing an element of the scalar field for …","Variable representing a full-width element of the elliptic …","A signed short (64-bit) integer represented as an element …","Variable representing a signed short element of the …","An integer representing an element of the scalar field for …","Variable representing a scalar used in variable-base …","Fixed points that can be used with short scalar …","The affine short Weierstrass x-coordinate of a point on a …","Variable representing the affine short Weierstrass …","Performs complete point addition, returning a + b.","Returns self + other using complete addition.","Returns self + other using complete addition.","Performs incomplete point addition, returning a + b.","Returns self + other using incomplete addition. The …","","","","","","","","","","","","","","","","","","","Chip implementations for the ECC gadgets.","","","","","","","","","","","Constrains point a to be equal in value to point b.","Constrains this point to be equal in value to another …","Constrains this point to be equal in value to another …","","","","","","","","","","","","","","","","","","","","","","","","","","","","Extracts the x-coordinate of a point.","Extracts the x-coordinate of a point.","Extracts the x-coordinate of a point.","","","","","","","","","","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.","Constructs a scalar from an existing base-field element.","Wraps the given point (obtained directly from an …","Wraps the given point (obtained directly from an …","Wraps the given x-coordinate (obtained directly from an …","Wraps the given fixed base (obtained directly from an …","Wraps the given fixed base (obtained directly from an …","Wraps the given fixed base (obtained directly from an …","","","","","","","","","","Returns the inner point.","Returns the inner point.","Returns the inner x-coordinate.","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).","Performs variable-base scalar multiplication, returning …","Returns [by] self.","Returns [by] self.","Returns [by] self.","Returns [by] self.","Performs fixed-base scalar multiplication using a …","Performs fixed-base scalar multiplication using a base …","Performs fixed-base scalar multiplication using a short …","Witnesses the given full-width scalar.","Witnesses the given full-width scalar.","Converts the given signed short scalar.","Constructs a new point with the given value.","Constructs a new point with the given value.","Converts a magnitude and sign that exists as variables in …","Converts a base field element that exists as a variable in …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Witnesses the given point as a private input to the …","Witnesses the given point as a private input to the …","Witnesses a full-width scalar to be used in fixed-base …","Witnesses a full-width scalar to be used in variable-base …","Type marker representing a base field element being used …","An element of the elliptic curve’s base field, that is …","An EccInstructions chip that uses 10 advice columns.","Configuration for EccChip.","A curve point represented in affine (x, y) coordinates, or …","A full-width scalar used for fixed-base scalar …","A signed short scalar used for fixed-base scalar …","Returns information about a fixed point that is required …","A trait representing the kind of scalar used with a …","The kind of scalar that this fixed point can be multiplied …","Type marker representing a full-width scalar for use in …","A full-width scalar. This is unimplemented for …","The number of windows that this scalar kind requires.","A non-identity point represented in affine (x, y) …","An enumeration of the possible types of scalars used in …","Type marker representing a signed 64-bit scalar for use in …","","","Advice columns needed by instructions in the ECC chip.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Side effects","Constants required for the ECC chip.","","Reconstructs this chip from the given config.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","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.","Returns the argument unchanged.","Returns the generator for this fixed point.","","","","","","","","","","","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).","Calls U::from(self).","Returns the Lagrange coefficients for this fixed point.","","Lookup range check using 10-bit lookup table","","","","","Returns the value of this curve point, if known.","Returns the value of this curve point, if known.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the $u$ values for this fixed point.","","","","","","","","","","","","","","","The cell containing the affine short-Weierstrass …","The cell containing the affine short-Weierstrass …","The cell containing the affine short-Weierstrass …","The cell containing the affine short-Weierstrass …","Returns the $z$ value for this fixed point.","","Window size for fixed-base scalar multiplication","$2^{FIXED_BASE_WINDOW_SIZE}$","Number of windows for a full-width scalar","Number of windows for a short signed scalar","For each window, we interpolate the $x$-coordinate. Here, …","For each window, $z$ is a field element such that for each …","Test that Lagrange interpolation coefficients reproduce …","Test that the z-values and u-values satisfy the conditions:","A Poseidon hash function, built around a sponge.","A message word provided by the prover.","A word from the padded input to a Poseidon sponge.","A padding word, that will be fixed in the circuit …","The set of circuit instructions required to use the …","The set of circuit instructions required to use the Sponge …","A Poseidon chip using an $x^5$ S-Box.","Configuration for a Pow5Chip.","A Poseidon sponge.","A word in the Poseidon state.","A word over which the Poseidon permutation operates.","Variable representing the word over which the Poseidon …","Absorbs an element into the sponge.","Adds the given input to the state.","","","","","","","","","","","","","","","","","","","","","","","","Configures this chip for use in a circuit.","Construct a Pow5Chip.","","","","","","","","","","","","","","","","","","","","","","Transitions the sponge into its squeezing state.","","","","","","","","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.","Construct a Word gadget from the inner word.","Extracts sponge output from the given state.","","Hashes the given input.","","","","","","","","Initializes a new hasher.","Returns the initial empty state for the given domain.","","The word contained in this gadget.","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).","","Constructs a new duplex sponge for the given Poseidon …","Applies the Poseidon permutation to the given state.","","The Poseidon algebraic hash function.","Squeezes an element from the sponge.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The absorbing state of the Sponge.","A Poseidon hash function used with constant input length.","A domain in which a Poseidon hash function is being used.","A Poseidon hash function, built around a sponge.","Poseidon-128 using the $x^5$ S-box, with a width of 3 …","Iterator that outputs padding field elements.","A specification for a Poseidon permutation.","The state of the Sponge.","The squeezing state of the Sponge.","","","","","","","","","","","","","Generates (round_constants, mds, mds^-1) corresponding to …","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","The number of full rounds for this specification.","","","Hashes the given input.","Initializes a new hasher.","","","","","","The initial capacity element, encoding this domain.","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","The name of this domain, for debug formatting purposes.","","Returns the padding to be appended to the input.","","The number of partial rounds for this specification.","","","The S-box for this specification.","","","Side-loaded index of the first correct and secure MDS that …","","","","","","","","","","","","","","","","","","","","","","","","","The size of a SHA-256 block, in 32-bit words.","A word in a Table16 message block.","Variable representing a 32-bit word of the input block to …","A gadget that constrains a SHA-256 invocation. It supports …","The output of a SHA-256 circuit invocation.","The set of circuit instructions required to use the Sha256 …","Variable representing the SHA-256 internal state.","A chip that implements SHA-256 with a maximum lookup table …","Configuration for a Table16Chip.","","","","","","","","","","","","","","","","","Starting from the given initialized state, processes a …","","","Configures a circuit to include this chip.","Reconstructs this chip from the given config.","","","","","","","","","","","","Converts the given state into a message digest.","","Convenience function to compute hash of the data. It will …","","","","","","Retrieve result and consume hasher instance.","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","Creates an initial state from the output state of a …","","Places the SHA-256 IV in the circuit, returning the …","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Loads the lookup table required by this chip into the …","","Create a new hasher instance.","","","","","","","","","","","","","","","","","","","Digest data, updating the internal state.","","","","","","A variable in the circuit.","Gadget representing a domain in which …","Trait allowing circuit’s Sinsemilla CommitDomains to be …","CommitDomains used in this instruction.","A type enumerating the fixed points used in CommitDomains.","A domain in which $\\\\mathsf{SinsemillaHashToPoint}$ and …","Trait allowing circuit’s Sinsemilla HashDomains to be …","HashDomains used in this instruction.","A message to be hashed.","A message composed of Self::MessagePieces.","A message piece with a bitlength of some multiple of K.","A piece in a message containing a number of K-bit words. A …","A point output of Self::hash_to_point.","Returns the Q constant for this domain.","A cumulative sum z is used to decompose a Sinsemilla …","The set of circuit instructions required to use the …","The x-coordinate of a point output of Self::hash_to_point.","","","","","","","","","Chip implementations for the Sinsemilla gadgets.","","","","","$\\\\mathsf{SinsemillaCommit}$ from § 5.4.8.4.","","","","","","","","","","","","","Extracts the x-coordinate of the output of a Sinsemilla …","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Constructs a MessagePiece from a field element.","Constructs a message from a vector of MessagePieces.","Constructs a MessagePiece by concatenating a sequence of …","$\\\\mathsf{SinsemillaHash}$ from § 5.4.1.9.","Returns the HashDomain contained in this CommitDomain","Hashes a message to an ECC curve point. This returns both …","$\\\\mathsf{SinsemillaHashToPoint}$ from § 5.4.1.9.","","","","","Returns the inner MessagePiece contained in this gadget.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Gadgets for implementing a Merkle tree with Sinsemilla.","Constructs a new HashDomain for the given domain.","Constructs a new CommitDomain for the given domain.","Implementation of Sinsemilla outside the circuit.","Returns the fixed point corresponding to the R constant …","$\\\\mathsf{SinsemillaShortCommit}$ from § 5.4.8.4.","","","","","","","","","","","","","","","","","","","Witness a message piece given a field element. Returns a …","A chip that implements 10-bit Sinsemilla using a lookup …","Configuration for the Sinsemilla hash chip","","","","","","","","","","Side-effects","Reconstructs this chip from the given config.","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","Loads the lookup table required by this chip into the …","","Returns the lookup range check config used in this config.","","","","","","","","","","","","SWU hash-to-curve personalization for the Merkle CRH …","Instructions to check the validity of a Merkle path of a …","Gadget representing a Merkle path that proves a leaf …","","","Calculates the root of the tree containing the given leaf …","Chip implementing a Merkle hash using Sinsemilla as the …","","","Constructs a MerklePath.","","","","","Returns the argument unchanged.","Compute MerkleCRH for a given layer. The hash that …","","Calls U::from(self).","","","","","","Chip implementing MerkleInstructions.","Configuration for the MerkleChip implementation.","","","","","","","","","","Configures the MerkleChip.","Constructs a MerkleChip given a MerkleConfig.","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","The largest integer such that $2^c \\\\leq (r_P - 1) / 2$, …","A domain in which $\\\\mathsf{SinsemillaCommit}$ and …","A domain in which $\\\\mathsf{SinsemillaHashToPoint}$ and …","$\\\\frac{1}{2^K}$","Number of bits of each message piece in …","Returns the Sinsemilla $Q$ constant for this domain.","Returns the Sinsemilla $Q$ constant for this domain.","SWU hash-to-curve personalization for Sinsemilla $Q$ …","Returns the Sinsemilla $R$ constant for this domain.","The precomputed bases for the Sinsemilla hash function.","SWU hash-to-curve personalization for Sinsemilla $S$ …","","","","","","","$\\\\mathsf{SinsemillaCommit}$ from § 5.4.8.4.","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","$\\\\mathsf{SinsemillaHash}$ from § 5.4.1.9.","$\\\\mathsf{SinsemillaHashToPoint}$ from § 5.4.1.9.","","","Calls U::from(self).","Calls U::from(self).","Constructs a new HashDomain with a specific prefix string.","Constructs a new CommitDomain with a specific prefix …","$\\\\mathsf{SinsemillaShortCommit}$ from § 5.4.8.4.","","","","","","","","","","A type that has a value at either keygen or proving time.","A type representing a range-constrained field element.","Trait for utilities used across circuits.","Trait for a variable in the circuit.","Variable in the circuit.","Constructs a RangeConstrained<Value<F>> as a bitrange of …","Takes a specified subsequence of the little-endian bit …","Checks that an expression is either 1 or 0.","","","The cell at which this variable was allocated.","","","Gadget and chip for a conditional swap utility.","Decomposes an $n$-bit field element $\\\\alpha$ into $W$ …","Decompose a word alpha into window_num_bits bits …","","","","","Returns the argument unchanged.","The sequence of bits representing a u64 in little-endian …","","Returns the range-constrained inner type.","Calls U::from(self).","The u64 integer represented by an L-bit little-endian …","Load a variable.","Make use of a K-bit lookup table to decompose a field …","Returns the number of bits to which this cell is …","Check that an expression is in the small range [0..range), …","If a then b, else c. Returns (a * b) + (1 - a) * c.","","","","","Constructs a RangeConstrained<AssignedCell<F, F>> without …","Returns the value of this type.","The value allocated to this variable.","Extracts the range-constrained value from this …","","Witnesses a subset of the bits in value and constrains …","A chip implementing a conditional swap.","Configuration for the CondSwapChip.","Instructions for a conditional swap gadget.","","","","","","","","","","Configures this chip for use in a circuit.","Constructs a CondSwapChip given a CondSwapConfig.","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","Given an input pair (a,b) and a swap boolean flag, returns …","","","","","","","","","","","","The running sum $[z_0, …, z_W]$. If created in strict …","Configuration that provides methods for running sum …","","","","","","","perm MUST include the advice column z.","Decompose an existing variable alpha that is copied into …","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","Decompose a field element alpha that is witnessed in this …","Configuration that provides methods for a lookup range …","The running sum $[z_0, …, z_W]$. If created in strict …","","","","","","","The running_sum advice column breaks the field element …","Range check on an existing cell that is copied into this …","Short range check on an existing cell that is copied into …","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","Range check on a value that is witnessed in this helper.","Short range check on value that is witnessed in this …"],"i":[0,0,0,0,0,25,0,0,0,0,0,0,4,25,0,4,0,4,0,4,0,4,0,4,25,0,4,4,5,7,4,5,16,19,20,5,7,15,11,12,13,16,19,20,5,7,15,11,12,13,0,5,7,11,12,13,5,7,11,12,13,4,5,7,16,19,20,5,7,15,11,12,13,16,19,20,5,7,15,11,12,13,16,19,20,5,7,15,11,12,13,4,5,7,16,19,20,5,7,15,11,12,13,16,19,20,5,7,7,15,11,12,13,16,5,7,15,11,12,13,16,19,20,5,7,15,11,12,13,5,7,15,16,19,20,5,7,15,11,12,13,4,5,11,12,13,4,4,4,16,19,20,5,7,4,21,5,7,11,12,13,16,19,20,5,7,15,11,12,13,16,19,20,5,7,15,11,12,13,16,19,20,5,7,15,11,12,13,16,19,20,5,7,15,11,12,13,4,4,4,4,0,32,0,0,0,0,0,0,0,108,0,32,109,0,0,0,26,26,29,27,28,29,38,39,40,26,30,31,32,27,28,29,38,39,40,26,30,31,32,27,28,29,26,30,31,32,27,28,29,26,30,31,32,26,26,0,26,26,27,28,29,38,39,40,26,30,31,32,27,28,29,38,39,40,26,30,31,32,27,28,29,38,39,40,26,30,31,32,29,26,26,27,28,29,38,39,40,26,30,31,32,27,27,28,29,38,39,40,26,30,31,32,108,27,28,29,38,39,40,26,30,31,32,27,28,29,38,39,40,26,30,31,32,108,26,29,26,26,26,26,27,28,26,26,27,28,29,26,30,31,32,27,28,29,38,39,40,26,30,31,32,27,28,29,38,39,40,26,30,31,32,27,28,29,38,39,40,26,30,31,32,108,27,28,29,38,39,40,26,30,31,32,26,26,26,26,27,28,27,28,108,110,0,0,0,0,0,0,0,0,0,50,0,50,0,0,0,0,0,0,0,61,52,49,53,56,53,54,50,62,52,64,56,53,54,50,62,52,64,54,56,54,50,56,54,50,53,53,53,56,53,54,50,62,52,64,56,53,54,50,62,52,64,56,53,54,50,62,52,64,52,56,53,54,50,62,52,64,56,53,54,54,50,62,52,64,62,49,53,64,56,53,54,50,62,52,64,64,49,53,62,56,53,54,50,62,52,64,53,52,61,53,0,52,56,54,50,56,53,54,50,62,52,64,56,53,54,50,62,52,64,56,53,54,50,62,52,64,54,56,53,54,50,62,52,64,111,112,0,0,0,0,0,48,0,0,0,66,67,51,60,65,66,67,51,60,65,65,65,47,67,67,66,67,51,60,65,66,67,51,60,65,66,67,51,60,65,66,67,51,60,65,66,67,51,60,65,47,67,67,66,66,66,67,51,60,65,48,65,66,67,51,60,65,48,65,48,65,47,67,67,47,67,67,47,67,67,65,66,67,51,60,65,66,67,51,60,65,66,67,51,60,65,66,67,51,60,65,70,0,0,73,0,0,0,73,0,0,70,71,72,74,75,70,71,72,74,75,70,71,72,70,71,72,73,72,72,72,72,70,70,71,72,74,75,70,71,72,74,75,73,72,75,70,71,72,74,75,75,70,71,72,74,75,70,71,72,74,75,70,71,72,74,75,73,72,73,72,70,71,72,74,75,72,72,75,70,71,72,70,71,72,74,75,70,71,72,74,75,70,71,72,74,75,75,70,71,72,74,75,113,0,0,113,113,0,0,113,0,113,0,113,113,114,113,0,113,76,77,79,78,76,77,79,78,0,76,77,76,77,78,76,77,79,78,76,77,79,78,76,77,79,78,113,76,77,79,78,76,77,79,78,77,76,77,79,115,113,79,76,77,79,78,77,76,77,79,78,0,79,78,0,115,78,76,77,76,77,79,78,76,77,79,78,76,77,79,78,76,77,79,78,113,0,0,81,82,81,82,81,82,81,82,82,82,82,81,82,81,82,81,82,81,82,82,81,82,81,82,82,81,82,81,82,82,82,81,81,82,81,82,81,82,81,82,81,82,82,0,0,0,84,84,84,0,84,84,84,84,84,84,84,84,116,84,84,84,84,84,84,84,0,0,86,87,86,87,86,87,86,87,87,87,87,86,87,86,87,86,87,86,87,87,86,87,86,87,87,87,86,87,86,87,87,87,86,87,86,87,86,87,86,87,86,87,87,0,0,0,0,0,88,90,0,90,0,0,88,90,88,90,88,88,90,88,90,88,90,88,90,88,90,88,90,88,88,88,90,88,90,88,90,90,88,88,90,88,90,88,90,88,90,0,0,0,0,117,96,0,0,96,96,118,96,96,0,0,0,96,96,96,96,96,0,96,96,96,0,117,0,96,0,0,96,96,96,96,96,98,118,96,96,96,0,0,0,100,101,100,101,100,101,100,101,100,100,100,100,101,100,101,100,101,101,100,101,100,101,100,101,100,101,100,119,100,100,101,100,101,100,101,100,101,100,101,0,0,105,102,105,102,102,102,102,102,105,105,102,105,102,105,102,102,105,102,105,102,105,102,105,102,102,105,102,105,102,105,102,105,102,102,0,0,107,35,107,35,35,35,35,35,35,107,107,35,107,35,107,35,35,107,35,107,35,107,35,107,35,35,107,35,107,35,107,35,107,35,35,35],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[],[[2,[1]]]],[[[5,[3,[4,[3]]]],6],[[2,[[7,[3,[4,[3]]]],1]]]],[[[7,[3,[0,[[4,[3]],8,9,10]]]],6],[[2,[[7,[3,[0,[[4,[3]],8,9,10]]]],1]]]],[[],[[2,[1]]]],[[[5,[3,[4,[3]]]],6,[5,[3,[4,[3]]]]],[[2,[[5,[3,[4,[3]]]],1]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[[5,[[0,[8,3]],[0,[8,[4,[[0,[8,3]]]]]]]]],[[5,[[0,[8,3]],[0,[8,[4,[[0,[8,3]]]]]]]]]],[[[7,[[0,[8,3]],[0,[8,[4,[[0,[8,3]]]],8,9,10]]]]],[[7,[[0,[8,3]],[0,[8,[4,[[0,[8,3]]]],8,9,10]]]]]],[[[11,[[0,[8,3]],[0,[8,[4,[[0,[8,3]]]]]]]]],[[11,[[0,[8,3]],[0,[8,[4,[[0,[8,3]]]]]]]]]],[[[12,[[0,[8,3]],[0,[8,[4,[[0,[8,3]]]]]]]]],[[12,[[0,[8,3]],[0,[8,[4,[[0,[8,3]]]]]]]]]],[[[13,[[0,[8,3]],[0,[8,[4,[[0,[8,3]]]]]]]]],[[13,[[0,[8,3]],[0,[8,[4,[[0,[8,3]]]]]]]]]],[[]],[[]],[[]],[[]],[[]],[[],[[2,[1]]]],[[[5,[3,[4,[3]]]],6],[[2,[1]]]],[[[7,[3,[0,[[4,[3]],8,9,10]]]],6],[[2,[1]]]],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[[]],[[[5,[3,[4,[3]]]]],[[15,[3,[4,[3]]]]]],[[[7,[3,[0,[[4,[3]],8,9,10]]]]],[[15,[3,[0,[[4,[3]],8,9,10]]]]]],[[[16,[[0,[9,3]],[0,[9,[4,[[0,[9,3]]]]]]]],17],18],[[[19,[[0,[9,3]],[0,[9,[4,[[0,[9,3]]]]]]]],17],18],[[[20,[[0,[9,3]],[0,[9,[4,[[0,[9,3]]]]]]]],17],18],[[[5,[[0,[9,3]],[0,[9,[4,[[0,[9,3]]]]]]]],17],18],[[[7,[[0,[9,3]],[0,[9,[4,[[0,[9,3]]]],8,9,10]]]],17],18],[[[15,[[0,[9,3]],[0,[9,[4,[[0,[9,3]]]]]]]],17],18],[[[11,[[0,[9,3]],[0,[9,[4,[[0,[9,3]]]]]]]],17],18],[[[12,[[0,[9,3]],[0,[9,[4,[[0,[9,3]]]]]]]],17],18],[[[13,[[0,[9,3]],[0,[9,[4,[[0,[9,3]]]]]]]],17],18],[[]],[[]],[[]],[[]],[[]],[[[5,[3,[0,[[4,[3]],8,9,10]]]]],[[7,[3,[0,[[4,[3]],8,9,10]]]]]],[[]],[[]],[[]],[[]],[[[21,[3]],6],[[2,[[16,[3,[21,[3]]]],1]]]],[[[4,[3]]],[[5,[3,[4,[3]]]]]],[[[0,[[4,[3]],8,9,10]]],[[7,[3,[0,[[4,[3]],8,9,10]]]]]],[[[4,[3]]],[[15,[3,[4,[3]]]]]],[[[4,[3]]],[[11,[3,[4,[3]]]]]],[[[4,[3]]],[[12,[3,[4,[3]]]]]],[[[4,[3]]],[[13,[3,[4,[3]]]]]],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[[5,[3,[4,[3]]]]]],[[[7,[3,[0,[[4,[3]],8,9,10]]]]]],[[[15,[3,[4,[3]]]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],[[2,[1]]]],[[[5,[3,[4,[3]]]],6,[16,[3,[4,[3]]]]],[[2,[1]]]],[[[11,[3,[4,[3]]]],6,[19,[3,[4,[3]]]]],[[2,[1]]]],[[[12,[3,[4,[3]]]],6],[[2,[[7,[3,[4,[3]]]],1]]]],[[[13,[3,[4,[3]]]],6,[20,[3,[4,[3]]]]],[[2,[1]]]],[[],[[2,[1]]]],[[],[[2,[1]]]],[[],[[2,[1]]]],[[[4,[3]],6,22],[[2,[[16,[3,[4,[3]]]],1]]]],[[[4,[3]],6,22],[[2,[[19,[3,[4,[3]]]],1]]]],[[[4,[3]],6],[[2,[[20,[3,[4,[3]]]],1]]]],[[[4,[3]],6,[22,[3]]],[[2,[[5,[3,[4,[3]]]],1]]]],[[[0,[[4,[3]],8,9,10]],6,[22,[3]]],[[2,[[7,[3,[0,[[4,[3]],8,9,10]]]],1]]]],[[],[[2,[1]]]],[[],[[2,[1]]]],[[]],[[]],[[]],[[]],[[]],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],23],[[],23],[[],23],[[],23],[[],23],[[],23],[[],23],[[],23],[[],23],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[22,[[2,[1]]]],[22,[[2,[1]]]],[22,[[2,[1]]]],[22,[[2,[1]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[26,[[25,[24]]]]],[[2,[1]]]],[[[26,[[25,[24]]]]],[[2,[1]]]],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[27,27],[28,28],[[[29,[[0,[8,[25,[24]]]]]]],[[29,[[0,[8,[25,[24]]]]]]]],[[[26,[[0,[8,[25,[24]]]]]]],[[26,[[0,[8,[25,[24]]]]]]]],[30,30],[31,31],[32,32],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[26,[[25,[24]]]]]],[[33,[35,[34]]]],0,[[[26,[[25,[24]]]]],[[2,[1]]]],[[],[[26,[[25,[24]]]]]],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[[[29,[[0,[36,[25,[24]]]]]],29],37],[[[26,[[0,[36,[25,[24]]]]]],26],37],[[]],[[27,17],18],[[28,17],18],[[[29,[[0,[9,[25,[24]]]]]],17],18],[[38,17],18],[[39,17],18],[[40,17],18],[[[26,[[0,[9,[25,[24]]]]]],17],18],[[30,17],18],[[31,17],18],[[32,17],18],[[]],[28,27],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],41],[[[26,[[25,[24]]]]]],0,[[[26,[[25,[24]]]]],[[2,[1]]]],[[[26,[[25,[24]]]]],[[2,[1]]]],[[[26,[[25,[24]]]],[42,[34,34]]],[[2,[1]]]],[[[26,[[25,[24]]]]],[[2,[1]]]],[27,[[22,[24]]]],[28,[[22,[24]]]],[[[26,[[25,[24]]]]],[[2,[1]]]],[[[26,[[25,[24]]]]],[[2,[1]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],23],[[],23],[[],23],[[],23],[[],23],[[],23],[[],23],[[],23],[[],23],[[],23],[[],41],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[26,[[25,[24]]]],[22,[24]]],[[2,[1]]]],[[[26,[[25,[24]]]],[22,[24]]],[[2,[1]]]],[[[26,[[25,[24]]]],[22,[43]]],[[2,[1]]]],[[[26,[[25,[24]]]],[22,[43]]],[[2,[1]]]],[27,[[42,[34,34]]]],[28,[[42,[34,34]]]],[27,[[42,[34,34]]]],[28,[[42,[34,34]]]],[[],[[41,[44]]]],0,0,0,0,0,[[3,14],41],[[3,14],[[45,[41]]]],[[3,14]],[[3,14]],0,0,0,0,0,0,0,0,0,0,0,0,[[[52,[46,[49,[46,[47,[46]],[48,[46]]]],[47,[46]],[51,[[50,[46]]]],[48,[46]]]],[6,[46]],[50,[46]]],[[2,[1]]]],[51,[[2,[1]]]],[[[53,[46]],51],[[2,[1]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[54,[46]]],55],[[[56,[[0,[8,46]]]]],[[56,[[0,[8,46]]]]]],[[[54,[[0,[8,46]]]]],[[54,[[0,[8,46]]]]]],[[[50,[[0,[8,57]]]]],[[50,[[0,[8,57]]]]]],[[]],[[]],[[]],[[[53,[46]]]],[[33,[59,[58]]],[[56,[46]]]],[[[56,[46]]],[[53,[46]]]],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[[[52,[46,[49,[46,[47,[46]],[48,[46]]]],[47,[46]],[51,[[50,[46]]]],[48,[46]]]],[6,[46]]],[[2,[[52,[46,[49,[46,[47,[46]],[48,[46]]]],[47,[46]],60,[48,[46]]]],1]]]],[[[56,[[0,[9,46]]]],17],18],[[[53,[[0,[9,46]]]],17],18],[[[54,[[0,[9,46]]]],17],18],[[[50,[[0,[9,57]]]],17],18],[[[62,[[0,[9,46]],[0,[9,[61,[[0,[9,46]],[0,[9,[47,[[0,[9,46]]]]]]]]]],[0,[9,[47,[[0,[9,46]]]]]]]],17],18],[[[52,[[0,[9,46]],[0,[9,[49,[[0,[9,46]],[0,[9,[47,[[0,[9,46]]]]]],[0,[9,[48,[[0,[9,46]]]]]]]]]],[0,[9,[47,[[0,[9,46]]]]]],[0,[9,63]],[0,[9,[48,[[0,[9,46]]]]]]]],17],18],[[[64,[[0,[9,46]],[0,[9,[49,[[0,[9,46]],[0,[9,[47,[[0,[9,46]]]]]],[0,[9,[48,[[0,[9,46]]]]]]]]]],[0,[9,[47,[[0,[9,46]]]]]],[0,[9,[48,[[0,[9,46]]]]]]]],17],18],[[]],[[]],[[]],[[[42,[46,46]]],[[54,[46]]]],[[]],[[]],[[]],[[]],[[],[[62,[46,[61,[46,[47,[46]]]],[47,[46]]]]]],[[],60],[[],60],[[[64,[46,[49,[46,[47,[46]],65]],[47,[46]],65]],[6,[46]]],[[2,[[42,[46,46]],1]]]],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[[49,[46,[47,[46]],[48,[46]]]],[6,[46]]],[[2,[[64,[46,[49,[46,[47,[46]],[48,[46]]]],[47,[46]],[48,[46]]]],1]]]],[[],[[2,[1]]]],[[[53,[46]]],[[2,[1]]]],[[[62,[46,[61,[46,[47,[46]]]],[47,[46]]]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[53,[46]]]],[[[49,[46,[47,[46]],[48,[46]]]],[6,[46]]],[[2,[[52,[46,[49,[46,[47,[46]],[48,[46]]]],[47,[46]],[51,[[50,[46]]]],[48,[46]]]],1]]]],[[],[[2,[1]]]],[[[53,[46]]],[[2,[1]]]],0,[[[52,[46,[49,[46,[47,[46]],[48,[46]]]],[47,[46]],60,[48,[46]]]],[6,[46]]],[[2,[[42,[46,46]],1]]]],[[]],[[]],[[]],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],23],[[],23],[[],23],[[],23],[[],23],[[],23],[[],23],[[[54,[46]]],[[22,[46]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[65,65],[[]],[[]],[[]],[[]],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[[[66,[46,[47,[46]],[48,[46]]]],17],18],[[67,17],18],[[[51,[9]],17],18],[[[60,[9]],17],18],[[65,17],18],[[]],[[]],[[]],[[]],[[]],[[],14],[[],14],[[],14],[[[66,[46,[47,[46]],65]]],46],[[],[[66,[46,[47,[46]],[48,[46]]]]]],[[],14],[[],14],[[],14],[[],14],[[],14],[[]],[[],46],[[]],[[]],[[]],[[]],[[]],[[],68],[[],68],[14],[14],[[],14],[[],14],[[],14],[[]],[34,34],[69,69],[[],14],[[],14],[[],14],[[]],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],23],[[],23],[[],23],[[],23],[[],23],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[70,70],[71,71],[72,72],[[]],[[]],[[]],[[],[[2,[1]]]],[72,[[2,[1]]]],[72],[33],[[],72],[[],70],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[[],[[2,[1]]]],[72,[[2,[1]]]],[[[73,[46]],[6,[46]]],[[2,[74,1]]]],[14],[14],[14],[14],[14],[[[75,[46,[73,[46]]]],[6,[46]]],[[2,[74,1]]]],[[70,17],18],[[71,17],18],[[72,17],18],[[[74,[9]],17],18],[[[75,[[0,[9,46]],[0,[9,[73,[[0,[9,46]]]]]]]],17],18],[[]],[[]],[[]],[[]],[[]],[[],14],[[],14],[[],14],[[],14],[[],14],[[],[[2,[1]]]],[72,[[2,[1]]]],[[],[[2,[1]]]],[72,[[2,[0,1]]]],[[]],[[]],[[]],[[]],[[]],[71,[[2,[1]]]],[72],[[[73,[46]],[6,[46]]],[[2,[[75,[46,[73,[46]]]],1]]]],[[]],[[]],[[]],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],23],[[],23],[[],23],[[],23],[[],23],[[[75,[46,[73,[46]]]],[6,[46]]],[[2,[1]]]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[[76,[[0,[8,3]],8]]],[[76,[[0,[8,3]],8]]]],[[[77,[[0,[8,3]],8]]],[[77,[[0,[8,3]],8]]]],[[]],[[]],[[[78,[3]],6,[76,[3]],[19,[3]]],[[2,[1]]]],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[14],[[]],[[[76,[[0,[9,3]],9]],17],18],[[[77,[[0,[9,3]],9]],17],18],[[[79,[[0,[9,3]],9,9]],17],18],[[[78,[[0,[9,3]],9,9]],17],18],[[]],[[]],[[]],[[]],[[6,22,14],[[2,[[77,[3]],1]]]],[[[41,[[77,[3]]]]],[[76,[3]]]],[[6,80],[[2,[[77,[3]],1]]]],[[[79,[3]],6,[76,[3]]],[[2,[1]]]],[[]],[6,[[2,[1]]]],[[[79,[3]],6,[76,[3]]],[[2,[1]]]],[[],14],[[],14],[[],14],[[],14],[[[77,[3]]]],[[]],[[]],[[]],[[]],0,[[],[[79,[3]]]],[[],[[78,[3]]]],0,[[]],[[[78,[3]],6,[76,[3]],[19,[3]]],[[2,[1]]]],[[]],[[]],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],23],[[],23],[[],23],[[],23],[[]],[[]],[[]],[[]],[[6,22,14],[[2,[1]]]],0,0,[[]],[[]],[[]],[[]],[[[81,[8,8,8]]],[[81,[8,8,8]]]],[[[82,[8,8,8]]],[[82,[8,8,8]]]],[[]],[[]],[82],[[33,[59,[58]],[59,[83]],[35,[34]]]],[[],82],[14],[14],[14],[14],[14],[14],[[[81,[36,36,36]],81],37],[[[82,[36,36,36]],82],37],[[]],[[[81,[9,9,9]],17],18],[[[82,[9,9,9]],17],18],[[]],[[]],[[82,[6,[34]],24],[[2,[1]]]],[[],14],[[],14],[[]],[[]],[81,[[2,[1]]]],[82],[81,[[35,[34]]]],[[]],[[]],[[],2],[[],2],[[],2],[[],2],[[],23],[[],23],[[]],[[]],[[82,[6,[34]],[22,[34]],14],[[2,[1]]]],0,0,0,[[]],[[]],[[[84,[3]],6],[[2,[1]]]],0,[[[84,[[0,[8,3]],8]]],[[84,[[0,[8,3]],8]]]],[[]],[[[22,[85]],22],[[84,[3]]]],[14],[14],[14],[[[84,[[0,[9,3]],9]],17],18],[[]],[[6,14],[[2,[1]]]],[[],14],[[]],[[]],[[],2],[[],2],[[],23],[[]],0,0,[[]],[[]],[[]],[[]],[[[86,[8,8,8]]],[[86,[8,8,8]]]],[[[87,[8,8,8]]],[[87,[8,8,8]]]],[[]],[[]],[87],[[33,81],86],[86,87],[14],[14],[14],[14],[14],[14],[[[86,[36,36,36]],86],37],[[[87,[36,36,36]],87],37],[[]],[[[86,[9,9,9]],17],18],[[[87,[9,9,9]],17],18],[[]],[[]],[[87,[6,[34]],24,14],[[2,[1]]]],[[87,[6,[34]],24],[[2,[1]]]],[[],14],[[],14],[[]],[[]],[87],[[87,[6,[34]],[22,[37]]],[[2,[1]]]],[[]],[[]],[[],2],[[],2],[[],2],[[],2],[[],23],[[],23],[[]],[[]],[[87,[6,[34]],[22,[34]],14],[[2,[1]]]],0,0,0,0,0,[88,89],[90,89],0,[90,89],0,0,[[]],[[]],[[]],[[]],[88,88],[[]],[[90,91,43],[[92,[89]]]],[14],[14],[14],[14],[14],[14],[[88,17],18],[[90,17],18],[[]],[[]],[[88,91],[[92,[34]]]],[[88,91],[[92,[89]]]],[[],14],[[],14],[[]],[[]],[93,88],[93,90],[[90,91,43],[[92,[34]]]],[[]],[[],2],[[],2],[[],2],[[],2],[[],23],[[],23],[[]],[[]],0,0,0,0,0,[[22,[94,[14]]],[[96,[95,[22,[95]]]]]],[[[94,[14]]],95],[[[97,[46]]],[[97,[46]]]],[[]],[[]],[[],55],[[[96,[[0,[8,57]],[0,[8,[98,[[0,[8,57]]]]]]]]],[[96,[[0,[8,57]],[0,[8,[98,[[0,[8,57]]]]]]]]]],[[]],0,0,[[14,14],[[41,[99]]]],[14],[14],[14],[[[96,[[0,[9,57]],[0,[9,[98,[[0,[9,57]]]]]]]],17],18],[[]],[44],[[],14],[[[96,[57,[98,[57]]]]]],[[]],[[],44],[[6,[59,[58]],22],[[2,[1]]]],0,[[[96,[57,[98,[57]]]]],14],[[[97,[46]],14],[[97,[46]]]],[[[97,[46]],[97,[46]],[97,[46]]],[[97,[46]]]],[[]],[[],2],[[],2],[[],23],[[[42,[57,57]],14],[[96,[57,[42,[57,57]]]]]],[[],22],[[],22],[[[96,[57,[42,[57,57]]]]],[[96,[57,[22,[57]]]]]],[[]],[[35,[6,[[0,[46,95]]]],22,[94,[14]]],[[2,[[96,[[0,[46,95]],[42,[[0,[46,95]],[0,[46,95]]]]]],1]]]],0,0,0,[[]],[[]],[[]],[[]],[[[100,[8]]],[[100,[8]]]],[101,101],[[]],[[]],[[[100,[46]]]],[33,101],[101,[[100,[46]]]],[14],[14],[14],[14],[14],[14],[[101,101],37],[[[100,[9]],17],18],[[101,17],18],[[]],[[]],[[],14],[[],14],[[]],[[]],[[[100,[46]]]],[[6,[22,[37]]],[[2,[1]]]],[[[100,[46]],[6,[46]],[22,[37]]],[[2,[1]]]],[[]],[[]],[[],2],[[],2],[[],2],[[],2],[[],23],[[],23],[[]],[[]],0,0,[[]],[[]],[[]],[[]],[[[102,[[0,[8,46,95]]]]],[[102,[[0,[8,46,95]]]]]],[[]],[[33,103,[59,[58]]],[[102,[[0,[46,95]]]]]],[[[102,[[0,[46,95]]]],104,14,[42,[[0,[46,95]],[0,[46,95]]]],37,14,14],[[2,[[105,[[0,[46,95]]]],1]]]],[[[105,[[0,[46,95]]]]],41],[14],[14],[14],[14],[14],[14],[[[102,[[0,[36,46,95]]]],102],37],[[[105,[[0,[9,46,95]]]],17],18],[[[102,[[0,[9,46,95]]]],17],18],[[]],[[]],[[],14],[[],14],[[]],[[]],[[]],[[],2],[[],2],[[],2],[[],2],[[],23],[[],23],[[]],[[]],[[[102,[[0,[46,95]]]],104,14,[22,[[0,[46,95]]]],37,14,14],[[2,[[105,[[0,[46,95]]]],1]]]],0,0,[[]],[[]],[[]],[[]],[[[35,[[0,[8,46,95]]]]],[[35,[[0,[8,46,95]]]]]],[[]],[[33,[59,[58]],106],[[35,[[0,[46,95]]]]]],[[[35,[[0,[46,95]]]],[6,[[0,[46,95]]]],[42,[[0,[46,95]],[0,[46,95]]]],14,37],[[2,[[107,[[0,[46,95]]]],1]]]],[[[35,[[0,[46,95]]]],[6,[[0,[46,95]]]],[42,[[0,[46,95]],[0,[46,95]]]],14],[[2,[1]]]],[[[107,[[0,[46,95]]]]],41],[14],[14],[14],[14],[14],[14],[[[35,[[0,[36,46,95]]]],35],37],[[[107,[[0,[9,46,95]]]],17],18],[[[35,[[0,[9,46,95]]]],17],18],[[]],[[]],[[],14],[[],14],[[]],[[]],[[]],[[],2],[[],2],[[],2],[[],2],[[],23],[[],23],[[]],[[]],[[[35,[[0,[46,95]]]],[6,[[0,[46,95]]]],[22,[[0,[46,95]]]],14,37],[[2,[[107,[[0,[46,95]]]],1]]]],[[[35,[[0,[46,95]]]],[6,[[0,[46,95]]]],[22,[[0,[46,95]]]],14],[[2,[[42,[[0,[46,95]],[0,[46,95]]]],1]]]]],"p":[[4,"Error"],[4,"Result"],[8,"CurveAffine"],[8,"EccInstructions"],[3,"NonIdentityPoint"],[8,"Layouter"],[3,"Point"],[8,"Clone"],[8,"Debug"],[8,"Eq"],[3,"FixedPoint"],[3,"FixedPointBaseField"],[3,"FixedPointShort"],[15,"usize"],[3,"X"],[3,"ScalarVar"],[3,"Formatter"],[6,"Result"],[3,"ScalarFixed"],[3,"ScalarFixedShort"],[8,"BaseFitsInScalarInstructions"],[3,"Value"],[3,"TypeId"],[6,"Affine"],[8,"FixedPoints"],[3,"EccChip"],[3,"EccPoint"],[3,"NonIdentityEccPoint"],[3,"EccConfig"],[3,"EccScalarFixed"],[3,"EccScalarFixedShort"],[4,"ScalarVar"],[3,"ConstraintSystem"],[6,"Base"],[3,"LookupRangeCheckConfig"],[8,"PartialEq"],[15,"bool"],[4,"FullScalar"],[4,"ShortScalar"],[4,"BaseFieldElem"],[3,"Vec"],[3,"AssignedCell"],[6,"Scalar"],[15,"u64"],[4,"Option"],[8,"FieldExt"],[8,"Spec"],[8,"Domain"],[8,"PoseidonSpongeInstructions"],[4,"PaddedWord"],[3,"Absorbing"],[3,"Sponge"],[3,"Pow5Chip"],[3,"StateWord"],[3,"Cell"],[3,"Pow5Config"],[8,"Field"],[3,"Advice"],[3,"Column"],[3,"Squeezing"],[8,"PoseidonInstructions"],[3,"Word"],[8,"SpongeMode"],[3,"Hash"],[3,"ConstantLength"],[3,"Hash"],[3,"P128Pow5T3"],[3,"String"],[6,"Base"],[3,"BlockWord"],[3,"Table16Config"],[3,"Table16Chip"],[8,"Sha256Instructions"],[3,"Sha256Digest"],[3,"Sha256"],[3,"Message"],[3,"MessagePiece"],[3,"CommitDomain"],[3,"HashDomain"],[8,"IntoIterator"],[3,"SinsemillaConfig"],[3,"SinsemillaChip"],[3,"Fixed"],[3,"MerklePath"],[15,"u32"],[3,"MerkleConfig"],[3,"MerkleChip"],[3,"HashDomain"],[6,"Point"],[3,"CommitDomain"],[8,"Iterator"],[3,"CtOption"],[15,"str"],[3,"Range"],[8,"PrimeFieldBits"],[3,"RangeConstrained"],[4,"Expression"],[8,"FieldValue"],[15,"u8"],[3,"CondSwapChip"],[3,"CondSwapConfig"],[3,"RunningSumConfig"],[3,"Selector"],[3,"Region"],[3,"RunningSum"],[3,"TableColumn"],[3,"RunningSum"],[8,"FixedPoint"],[8,"FixedScalarKind"],[13,"BaseFieldElem"],[13,"Message"],[13,"Padding"],[8,"SinsemillaInstructions"],[8,"HashDomains"],[8,"CommitDomains"],[8,"MerkleInstructions"],[8,"UtilitiesInstructions"],[8,"Var"],[8,"CondSwapInstructions"]]},\ -"halo2_proofs":{"doc":"halo2_proofs","t":[0,0,0,2,0,0,0,16,16,16,18,3,8,8,16,18,8,8,8,18,18,16,16,16,8,3,18,18,18,10,10,10,10,5,5,11,11,11,11,11,11,5,11,10,11,11,11,11,11,11,10,11,11,10,5,11,11,11,11,10,10,10,11,10,10,10,10,10,10,10,11,11,11,11,10,10,10,11,11,10,5,5,11,10,10,5,11,11,11,10,5,5,10,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,10,3,3,8,16,8,16,3,3,3,3,16,3,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,10,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,13,4,8,3,13,8,10,11,10,11,10,11,10,10,11,11,11,11,11,11,11,11,11,11,11,10,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,13,2,3,3,13,13,4,13,13,3,13,13,4,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,3,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,3,3,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,13,13,3,4,4,8,3,13,8,3,13,8,16,13,3,3,13,3,4,4,3,13,13,3,8,16,3,13,13,3,13,13,13,13,13,13,16,3,3,13,3,13,13,3,13,3,13,13,3,13,13,8,3,3,13,11,11,11,11,11,11,11,11,11,11,11,10,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,10,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,10,11,11,11,11,11,11,11,11,11,11,10,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,10,11,11,10,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,8,3,4,3,3,3,13,3,3,3,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,3,3,3,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,5,11,11,11,11,11,11,3,3,12,11,11,11,11,11,11,11,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,5,11,11,3,3,3,3,8,16,8,8,8,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,10,11,10,11,10,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,10,11],"n":["arithmetic","circuit","dev","pasta","plonk","poly","transcript","AffineExt","Base","Base","CURVE_ID","Coordinates","CurveAffine","CurveExt","CurveExt","DELTA","Field","FieldExt","Group","MODULUS","ROOT_OF_UNITY_INV","Scalar","ScalarExt","ScalarExt","SqrtRatio","SqrtTables","TWO_INV","T_MINUS1_OVER2","ZETA","a","a","b","b","best_fft","best_multiexp","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","compute_inner_product","conditional_select","coordinates","cube","default","deref","deref","deref_mut","deref_mut","double","drop","drop","endo","eval_polynomial","fmt","fmt","from","from","from_bytes_wide","from_u128","from_xy","from_xy","get_lower_128","get_lower_32","group_add","group_scale","group_sub","group_zero","hash_to_curve","init","init","into","into","invert","is_on_curve","is_on_curve","is_zero","is_zero_vartime","jacobian_coordinates","kate_division","lagrange_interpolate","new","new_jacobian","one","parallelize","pow","pow_by_t_minus1_over2","pow_vartime","random","recursive_butterfly_arithmetic","small_multiexp","sqrt","sqrt_alt","sqrt_alt","sqrt_ratio","sqrt_ratio","square","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","u","v","vzip","vzip","x","y","zero","AssignedCell","Cell","Chip","Config","Layouter","Loaded","NamespacedLayouter","Region","RegionIndex","RegionStart","Root","SimpleFloorPlanner","Table","Value","add","add","add","add","add","add","add","add","add","add","and_then","as_mut","as_ref","assert_if_known","assign_advice","assign_advice_from_constant","assign_advice_from_instance","assign_cell","assign_fixed","assign_region","assign_region","assign_table","assign_table","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","cell","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cloned","cloned","config","constrain_constant","constrain_equal","constrain_instance","constrain_instance","copied","copied","copy_advice","cube","default","deref","deref","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","double","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","eq","error_if_known_and","evaluate","evaluate","floor_planner","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_iter","get_root","get_root","init","init","init","init","init","init","init","init","init","into","into","into","into","into","into","into","into","into","into_field","invert","known","layouter","loaded","map","mul","mul","mul","mul","mul","mul","mul","mul","mul","mul","namespace","neg","pop_namespace","pop_namespace","push_namespace","push_namespace","square","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","synthesize","to_field","to_owned","to_owned","to_owned","to_owned","to_owned","transpose_array","transpose_vec","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","unknown","unzip","value","value_field","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","zip","V1","V1Pass","assign_region","assign_table","borrow","borrow","borrow_mut","borrow_mut","constrain_instance","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","from","from","get_root","init","init","into","into","pop_namespace","push_namespace","synthesize","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Column","RegionColumn","RegionLayouter","RegionShape","Selector","TableLayouter","assign_advice","assign_advice","assign_advice_from_constant","assign_advice_from_constant","assign_advice_from_instance","assign_advice_from_instance","assign_cell","assign_fixed","assign_fixed","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","cmp","columns","constrain_constant","constrain_constant","constrain_equal","constrain_equal","deref","deref","deref_mut","deref_mut","drop","drop","enable_selector","enable_selector","eq","fmt","fmt","from","from","from","from","hash","init","init","into","into","new","partial_cmp","region_index","row_count","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","0","0","CellNotAssigned","CircuitCost","CircuitGates","CircuitLayout","ConstraintNotSatisfied","ConstraintPoisoned","FailureLocation","InRegion","Lookup","MockProver","OutsideRegion","Permutation","VerifyFailure","assert_satisfied","assign_advice","assign_fixed","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","circuit_dot_graph","collect","copy","cost","default","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","enable_selector","enter_region","eq","eq","exit_region","fill_from_row","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","init","init","init","init","init","into","into","into","into","into","mark_equality_cells","metadata","pop_namespace","push_namespace","queries_to_csv","query_instance","render","run","show_equality_constraints","show_labels","to_string","to_string","to_string","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","view_height","view_width","vzip","vzip","vzip","vzip","vzip","offset","region","row","cell_values","column","column","constraint","constraint","gate","gate_offset","location","location","location","lookup_index","offset","region","CircuitCost","MarginalProofSize","ProofSize","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","fmt","fmt","fmt","from","from","from","init","init","init","into","into","into","marginal_proof_size","measure","proof_size","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","Column","Constraint","Gate","Region","VirtualCell","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","cmp","cmp","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","init","init","init","init","init","into","into","into","into","into","partial_cmp","partial_cmp","to_owned","to_owned","to_string","to_string","to_string","to_string","to_string","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","vzip","vzip","vzip","vzip","vzip","Advice","Advice","Advice","AdviceQuery","Any","Assigned","Assignment","BatchVerifier","BoundsFailure","Circuit","Column","ColumnNotInPermutation","ColumnType","Config","Constant","Constraint","ConstraintSystem","ConstraintSystemFailure","Constraints","Error","Expression","Fixed","Fixed","Fixed","FixedQuery","FloorPlanner","FloorPlanner","Instance","Instance","Instance","InstanceQuery","InstanceTooLarge","InvalidInstances","Negated","NotEnoughColumnsForConstants","NotEnoughRowsAvailable","Opening","Output","PinnedConstraintSystem","PinnedVerificationKey","Product","ProvingKey","Rational","Scaled","Selector","Selector","SingleVerifier","Sum","Synthesis","TableColumn","Transcript","Trivial","VerificationStrategy","VerifyingKey","VirtualCells","Zero","add","add","add","add","add","add","add","add_assign","add_assign","add_proof","advice_column","assign_advice","assign_fixed","blinding_factors","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","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","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","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","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","column_type","complex_selector","configure","copy","create_gate","create_proof","cube","default","default","degree","degree","denominator","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","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","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","double","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","enable","enable_constant","enable_equality","enable_selector","enter_region","eq","eq","eq","eq","eq","eq","eq","eq","evaluate","evaluate","exit_region","fill_from_row","finalize","fixed_column","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","get_domain","get_vk","hash","hash","hash","hash","hash","hash","hash","hash_into","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","instance_column","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into_iter","invert","is_simple","is_zero_vartime","keygen_pk","keygen_vk","lookup","lookup_table_column","minimum_rows","mul","mul","mul","mul","mul","mul","mul_assign","mul_assign","neg","neg","neg","new","new","numerator","partial_cmp","partial_cmp","pinned","pinned","pop_namespace","process","process","provide","push_namespace","query_advice","query_any","query_fixed","query_instance","query_instance","query_selector","selector","set_minimum_degree","source","square","square","sub","sub","sub","sub","sub","sub","sub","sub_assign","sub_assign","synthesize","synthesize","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","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","try_into","try_into","try_into","try_into","try_into","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","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","verify_proof","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","with_selector","without_witnesses","0","0","1","0","0","current_k","0","0","0","0","0","0","0","0","0","1","1","1","0","Basis","Coeff","Error","EvaluationDomain","ExtendedLagrangeCoeff","LagrangeCoeff","OpeningError","PinnedEvaluationDomain","Polynomial","Rotation","SamplingError","add","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_into","clone_into","clone_into","clone_into","clone_into","clone_into","coeff_from_vec","coeff_to_extended","commitment","constant_extended","constant_lagrange","cur","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","divide_by_vanishing_poly","drop","drop","drop","drop","drop","drop","drop","drop","empty_coeff","empty_extended","empty_lagrange","eq","extended_len","extended_to_coeff","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","get_extended_omega","get_omega","get_omega_inv","get_quotient_poly_degree","index","index","index","index_mut","index_mut","index_mut","init","init","init","init","init","init","init","init","into","into","into","into","into","into","into","into","iter","iter_mut","l_i_range","lagrange_from_vec","lagrange_to_coeff","mul","multiopen","new","next","num_coeffs","pinned","prev","rotate","rotate_extended","rotate_omega","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","0","Accumulator","Blind","Guard","MSM","Params","add","add_assign","add_assign","add_constant_term","add_msm","add_to_g_scalars","add_to_u_scalar","add_to_w_scalar","append_term","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","commit","commit_lagrange","compute_g","create_proof","default","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","empty_msm","eq","eval","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","g","get_g","init","init","init","init","init","into","into","into","into","into","mul","mul_assign","mul_assign","new","new","read","scale","to_owned","to_owned","to_owned","to_owned","to_owned","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","u_packed","use_challenges","use_g","verify_proof","vzip","vzip","vzip","vzip","vzip","write","ProverQuery","VerifierQuery","blind","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","create_proof","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","from","from","init","init","into","into","new_commitment","new_msm","point","poly","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","verify_proof","vzip","vzip","Blake2bRead","Blake2bWrite","Challenge255","ChallengeScalar","EncodedChallenge","Input","Transcript","TranscriptRead","TranscriptWrite","as_challenge_scalar","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","common_point","common_point","common_point","common_scalar","common_scalar","common_scalar","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","finalize","fmt","fmt","fmt","fmt","from","from","from","from","get_scalar","get_scalar","init","init","init","init","init","init","into","into","into","into","new","new","read_point","read_point","read_scalar","read_scalar","squeeze_challenge","squeeze_challenge","squeeze_challenge","squeeze_challenge_scalar","to_owned","to_owned","to_owned","to_owned","translate","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","write_point","write_point","write_scalar","write_scalar"],"q":["halo2_proofs","","","","","","","halo2_proofs::arithmetic","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_proofs::circuit","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_proofs::circuit::floor_planner","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_proofs::circuit::layouter","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_proofs::circuit::layouter::RegionColumn","","halo2_proofs::dev","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_proofs::dev::FailureLocation","","","halo2_proofs::dev::VerifyFailure","","","","","","","","","","","","","halo2_proofs::dev::cost","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_proofs::dev::metadata","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_proofs::plonk","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_proofs::plonk::Assigned","","","halo2_proofs::plonk::Error","","","halo2_proofs::plonk::Expression","","","","","","","","","","","","halo2_proofs::poly","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_proofs::poly::commitment","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_proofs::poly::multiopen","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_proofs::transcript","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["This module provides common utilities, traits and …","Traits and structs for implementing circuit components.","Tools for developing circuits.","","This module provides an implementation of a variant of …","Contains utilities for performing arithmetic over …","This module contains utilities and traits for dealing with …","The affine version of the curve","The base field over which this elliptic curve is …","The base field over which this elliptic curve is …","CURVE_ID used for hash-to-curve.","The affine coordinates of a point on an elliptic curve.","This trait is the affine counterpart to Curve and is used …","This trait is a common interface for dealing with elements …","The projective form of the curve","Generator of the $t-order$ multiplicative subgroup","This trait represents an element of a field.","This trait is a common interface for dealing with elements …","This represents an element of a group with basic …","Modulus of the field written as a string for display …","Inverse of PrimeField::root_of_unity()","The group is assumed to be of prime order $p$. Scalar is …","The scalar field of this elliptic curve.","The scalar field of this elliptic curve.","A trait that exposes additional operations related to …","Tables used for square root computation.","Inverse of $2$ in the field.","The value $(T-1)/2$ such that $2^S \\\\cdot T = p - 1$ with …","Element of multiplicative order $3$.","Returns the curve constant a.","Returns the curve constant $a$.","Returns the curve constant b.","Returns the curve constant $b$.","Performs a radix-$2$ Fast-Fourier Transformation (FFT) on …","Performs a multi-exponentiation operation.","","","","","","","This computes the inner product of two vectors a and b.","","Gets the coordinates of this point.","Cubes this element.","","","","","","Doubles this element.","","","Apply the curve endomorphism by multiplying the …","This evaluates a provided polynomial (in coefficient form) …","","","Returns the argument unchanged.","Returns the argument unchanged.","Obtains a field element that is congruent to the provided …","Obtains a field element congruent to the integer v.","Obtains a point given $(x, y)$, failing if it is not on the","Obtains a Coordinates value given $(x, y)$, failing if it …","Gets the lower 128 bits of this field element when …","Gets the lower 32 bits of this field element when expressed","Adds rhs to this group element.","Scales this group element by a scalar.","Subtracts rhs from this group element.","Returns the additive identity of the group.","Requests a hasher that accepts messages and returns …","","","Calls U::from(self).","Calls U::from(self).","Computes the multiplicative inverse of this element, …","Returns whether or not this element is on the curve; should","Returns whether or not this element is on the curve; should","Returns true iff this element is zero.","Returns true iff this element is zero.","Return the Jacobian coordinates of this point.","Divides polynomial a in X by X - b with no remainder.","Returns coefficients of an n - 1 degree polynomial given a …","Build tables given parameters for the perfect hash.","Obtains a point given Jacobian coordinates $X : Y : Z$, …","Returns the one element of the field, the multiplicative …","This simple utility function will parallelize an operation …","Exponentiates self by by, where by is a little-endian order","Raise this field element to the power Self::T_MINUS1_OVER2.","Exponentiates self by exp, where exp is a little-endian …","Returns an element chosen uniformly at random using a …","This perform recursive butterfly arithmetic","Performs a small multi-exponentiation operation. Uses the …","Returns the square root of the field element, if it is …","Equivalent to Self::sqrt_ratio(self, one()).","Same as sqrt_ratio(u, one()) but more efficient.","Computes:","Computes:","Squares this element.","","","","","","","","Returns the u-coordinate.","Returns the v-coordinate.","","","Returns the x-coordinate.","Returns the y-coordinate.","Returns the zero element of the field, the additive …","An assigned cell.","A pointer to a cell within a circuit.","A chip implements a set of instructions that can be used …","A type that holds the configuration for this chip, and any …","A layout strategy within a circuit. The layouter is …","A type that holds any general chip state that needs to be …","This is a “namespaced” layouter which borrows a …","A region of the circuit in which a Chip can assign cells.","Index of a region in a layouter","Starting row of a region in a layouter","Represents the type of the “root” of this layouter, so …","A simple FloorPlanner that performs minimal optimizations.","A lookup table in the circuit.","A value that might exist within a circuit.","","","","","","","","","","","Returns Value::unknown() if the value is Value::unknown(), …","Converts from &mut Value<V> to Value<&mut V>.","Converts from &Value<V> to Value<&V>.","Enforces an assertion on the contained value, if known.","Assign an advice column value (witness).","Assigns a constant value to the column advice at offset …","Assign the value of the instance column’s cell at …","Assigns a fixed value to a table cell.","Assign a fixed value.","Assign a region of gates to an absolute row number.","","Assign a table region to an absolute row number.","","","","","","","","","","","","","","","","","","","","Returns the cell.","","","","","","","","","","","Maps a Value<&mut V> to a Value<V> by cloning the contents …","Maps a Value<&V> to a Value<V> by cloning the contents of …","The chip holds its own configuration.","Constrains a cell to have a constant value.","Constrains two cells to have the same value.","Constrains a Cell to equal an instance column’s row …","","Maps a Value<&mut V> to a Value<V> by copying the contents …","Maps a Value<&V> to a Value<V> by copying the contents of …","Copies the value to a given advice cell and constrains …","Cubes this field element.","","","","","","","","","","","","","","","","","","","","","","Doubles this field element.","","","","","","","","","","","","Checks the contained value for an error condition, if …","Evaluates this value directly, performing an unbatched …","Evaluates this assigned cell’s value directly, …","Implementations of common circuit floor planners.","","","","","","","","","","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.","Takes each element in the Iterator: if it is …","Gets the “root” of this assignment, bypassing 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).","Calls U::from(self).","Calls U::from(self).","Returns the field element corresponding to this value.","Inverts this assigned value (taking the inverse of zero to …","Constructs a known value.","Implementations of common circuit layouters.","Provides access to general chip state loaded at the …","Maps a Value<V> to Value<W> by applying a function to the …","","","","","","","","","","","Enters into a namespace.","","Exits out of the existing namespace.","","Creates a new (sub)namespace and enters into it.","","Squares this field element.","","","","","","","","","","","","Returns the field element corresponding to this value.","","","","","","Transposes a Value<[V; LEN]> into a [Value<V>; LEN].","Transposes a Value<impl IntoIterator<Item = V>> into a …","","","","","","","","","","","","","","","","","","","","","","","","","","","","Constructs an unwitnessed value.","Unzips a value containing a tuple of two values.","Returns the value of the AssignedCell.","Returns the field element value of the AssignedCell.","","","","","","","","","","Zips self with another Value.","The version 1 FloorPlanner provided by halo2.","A single pass of the V1 layouter.","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","Concrete column","The virtual column involved in a region. This includes …","Helper trait for implementing a custom Layouter.","The shape of a region. For a region at a certain index, we …","Virtual column representing a (boolean) selector","Helper trait for implementing a custom Layouter.","Assign an advice column value (witness)","","Assigns a constant value to the column advice at offset …","","Assign the value of the instance column’s cell at …","","Assigns a fixed value to a table cell.","Assign a fixed value","","","","","","","","","","","Get a reference to the set of columns used in a RegionShape…","Constrains a cell to have a constant value.","","Constraint two cells to have the same value.","","","","","","","","Enables a selector at the given offset.","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","","","","","Calls U::from(self).","Calls U::from(self).","Create a new RegionShape for a region at region_index.","","Get the region_index of a RegionShape.","Get the row_count of a RegionShape.","","","","","","","","","","","","","A cell used in an active gate was not assigned to.","","A struct for collecting and displaying the gates within a …","Graphical renderer for circuit layouts.","A constraint was not satisfied for a particular row.","A constraint was active on an unusable row, and is likely …","The location within the circuit at which a particular …","A location inside a region.","A lookup input did not exist in its corresponding table.","A test prover for debugging circuits.","A location outside of a region.","A permutation did not preserve the original value of a …","The reasons why a particular circuit is not satisfied.","Panics if the circuit being checked by this MockProver is …","","","","","","","","","","","","","Builds a dot graph string representing the given circuit.","Collects the gates from within the circuit.","","Developer tools for investigating the cost of a circuit.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","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).","Marks cells involved in equality constraints, in red.","Metadata about circuits.","","","Prints the queries in this circuit to a CSV grid.","","Renders the given circuit on the given drawing area.","Runs a synthetic keygen-and-prove operation on the given …","Draws red lines between equality-constrained cells.","Sets the visibility of region labels.","","","","","","","","","","","","","","","","","","","Returns Ok(()) if this MockProver is satisfied, or a list …","Sets the view height for this layout, as a number of rows.","Sets the view width for this layout, as a number of …","","","","","","The offset (relative to the start of the region) at which …","The region in which the failure occurred.","The circuit row on which the failure occurred.","The values of the virtual cells used by this constraint.","The column in which this cell should be assigned.","The column in which this permutation is not satisfied.","The polynomial constraint that is not satisfied.","The polynomial constraint that is not satisfied.","The index of the active gate.","The offset (relative to the start of the region) at which …","The location at which this constraint is not satisfied.","The location at which the lookup is not satisfied.","The location at which the permutation is not satisfied.","The index of the lookup that is not satisfied. These …","The offset (relative to the start of the region) at which …","The region in which this cell should be assigned.","Measures a circuit to determine its costs, and explain …","The marginal size of a Halo 2 proof, broken down into its …","The size of a Halo 2 proof, broken down into its …","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Returns the marginal proof size per instance of this …","Measures a circuit with parameter constant k.","Returns the proof size for the given number of instances …","","","","","","","","","","","","","Metadata about a column within a circuit.","Metadata about a configured constraint within a circuit.","Metadata about a configured gate within a circuit.","Metadata about an assigned region within a circuit.","A “virtual cell” is a PLONK cell that has been queried …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","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).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","An advice column","An Advice variant","This is an advice (witness) column queried at a certain …","Query of advice column at a certain relative location","An enum over the Advice, Fixed, Instance structs","A value assigned to a cell within a circuit.","This trait allows a Circuit to direct some backend to …","A verifier that checks multiple proofs in a batch. This …","Out of bounds index passed to a backend","This is a trait that circuits provide implementations for …","A column with an index and type","The instance sets up a copy constraint involving a column …","A column type","This is a configuration object that stores things like …","This is a constant polynomial","An individual polynomial constraint.","This is a description of the circuit environment, such as …","The constraint system is not satisfied.","A set of polynomial constraints with a common selector.","This is an error that could occur during proving or …","Low-degree expression representing an identity that must …","A fixed column","A Fixed variant","This is a fixed column queried at a certain relative …","Query of fixed column at a certain relative location","A floor planning strategy for a circuit.","The floor planner used for this circuit. This is an …","An instance column","An Instance variant","This is an instance (external) column queried at a certain …","Query of instance column at a certain relative location","Instance provided exceeds number of available rows","The provided instances do not match the circuit parameters.","This is a negated polynomial","Circuit synthesis requires global constants, but circuit …","k is too small for the given circuit.","Opening error","The output type of this verification strategy after …","Represents the minimal parameters that determine a …","Minimal representation of a verification key that can be …","This is the product of two polynomials","This is a proving key which allows for the creation of …","A value stored as a fraction to enable batch inversion.","This is a scaled polynomial","A selector, representing a fixed boolean value per row of …","This is a virtual selector","A verifier that checks a single proof at a time.","This is the sum of two polynomials","This is an error that can occur during synthesis of the …","A fixed column of a lookup table.","Transcript error","A value that does not require inversion to evaluate.","Trait representing a strategy for verifying Halo 2 proofs.","This is a verifying key which allows for the verification …","Exposes the “virtual cells” that can be queried while …","The field element zero.","","","","","","","","","","Adds a proof to the batch.","Allocate a new advice column","Assign an advice column value (witness)","Assign a fixed value","Compute the number of blinding factors necessary to …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Type of this column.","Allocate a new complex selector that can appear anywhere …","The circuit is given an opportunity to describe the exact …","Assign two cells to have the same value","Creates a new gate.","This creates a proof for the provided circuit when given …","Cubes this element.","","","Compute the degree of this polynomial","Compute the degree of the constraint system (the maximum …","Returns the denominator, if non-trivial.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Doubles this element.","","","","","","","","","","","","","","","","","","","","","","","","Enable this selector at the given offset within the given …","Enables this fixed column to be used for global constant …","Enable the ability to enforce equality over cells in this …","Enables a selector at the given row.","Creates a new region and enters into it.","","","","","","","","","Evaluates this assigned value directly, performing an …","Evaluate the polynomial using the provided closures to …","Exits the current region.","Fills a fixed column starting from the given row with …","Finalizes the batch and checks its validity.","Allocate a new fixed column","","","","","","","","","","","","","","","","","","","","","","","","","","","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.","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.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Get the underlying EvaluationDomain.","Get the underlying VerifyingKey.","","","","","","","","Hashes a verification key into a transcript.","","","","","","","","","","","","","","","","","","","","","","","","Allocate a new instance column","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).","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).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","Inverts this assigned value (taking the inverse of zero to …","Is this selector “simple”? Simple selectors can only …","Returns true iff this element is zero.","Generate a ProvingKey from a VerifyingKey and an instance …","Generate a VerifyingKey from an instance of Circuit.","Add a lookup argument for some input expressions and table …","Allocates a new fixed column that can be used in a lookup …","Returns the minimum necessary rows that need to exist in …","","","","","","","","","","","","Constructs a new batch verifier.","Constructs a new single proof verifier.","Returns the numerator.","","","Obtain a pinned version of this constraint system; a …","Obtains a pinned representation of this verification key …","Exits out of the existing namespace.","Obtains an MSM from the verifier strategy and yields back …","","","Creates a new (sub)namespace and enters into it.","Query an advice column at a relative position","Query an Any column at a relative position","Query a fixed column at a relative position","Queries the cell of an instance column at a particular …","Query an instance column at a relative position","Query a selector at the current position.","Allocate a new (simple) selector. Simple selectors cannot …","Sets the minimum degree required by the circuit, which can …","","Squares this element.","Square this expression.","","","","","","","","","","Given the provided cs, synthesize the given circuit.","Given the provided cs, synthesize the circuit. The …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns a boolean indicating whether or not the proof is …","","","","","","","","","","","","","","","","","","","","","","","","Constructs a set of constraints that are controlled by the …","Returns a copy of this circuit with no witness values …","","","","","","The current value of k being used.","","","","","","","","","","","","","","The basis over which a polynomial is described.","The polynomial is defined as coefficients","This is an error that could occur during proving or …","This structure contains precomputed constants and other …","The polynomial is defined as coefficients of Lagrange …","The polynomial is defined as coefficients of Lagrange …","OpeningProof is not well-formed","Represents the minimal parameters that determine an …","Represents a univariate polynomial defined over a field …","Describes the relative rotation of a vector. Negative …","Caller needs to re-sample a point","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Obtains a polynomial in coefficient form when given a …","This takes us from an n-length coefficient vector into a …","This module contains an implementation of the polynomial …","Returns a constant polynomial in the extended Lagrange …","Returns a constant polynomial in the Lagrange coefficient …","The current location in the evaluation domain","","","","","","","","","","","","","","","","","","","This divides the polynomial (in the extended domain) by …","","","","","","","","","Returns an empty (zero) polynomial in the coefficient basis","Returns an empty (zero) polynomial in the extended …","Returns an empty (zero) polynomial in the Lagrange …","","Get the size of the extended domain","This takes us from the extended evaluation domain and gets …","","","","","","","","","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.","Get the generator of the extended domain’s …","Get $\\\\omega$, the generator of the $2^k$ order …","Get $\\\\omega^{-1}$, the inverse of the generator of the …","Gets the quotient polynomial’s degree (as a multiple of …","","","","","","","","","","","","","","","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).","Iterate over the values, which are either in coefficient …","Iterate over the values mutably, which are either in …","Computes evaluations (at the point x, where xn = x^n) of …","Obtains a polynomial in Lagrange form when given a vector …","This takes us from an n-length vector into the coefficient …","","This module contains an optimisation of the polynomial …","This constructs a new evaluation domain object based on …","The next location in the evaluation domain","Gets the size of this polynomial in terms of the number of …","Obtain a pinned version of this evaluation domain; a …","The previous location in the evaluation domain","Rotates the values in a Lagrange basis polynomial by …","Rotate the extended domain polynomial over the original …","Multiplies a value by some power of $\\\\omega$, essentially …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","An accumulator instance consisting of an evaluation claim …","Wrapper type around a blinding factor.","A guard returned by the verifier","A multiscalar multiplication in the polynomial commitment …","These are the public parameters for the polynomial …","","","","Add a value to the first entry of g_scalars.","Add another multiexp into this one","Add a vector of scalars to g_scalars. This function will …","Add to u_scalar","Add to w_scalar","Add arbitrary term (the scalar and the point)","","","","","","","","","","","","","","","","","","","","","This computes a commitment to a polynomial described by …","This commits to a polynomial using its evaluations over …","Computes G = ⟨s, params.g⟩","Create a polynomial commitment opening proof for the …","","","","","","","","","","","","","","","","","Generates an empty multiscalar multiplication struct using …","","Perform multiexp and check that it results in zero","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","The claimed output of the linear-time polycommit opening …","Getter for g generators","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","Create a new, empty MSM using the provided parameters.","Initializes parameters for the curve, given a random …","Reads params from a buffer.","Scale all scalars in the MSM by some scaling factor","","","","","","","","","","","","","","","","","","","","","A vector of challenges u_0, …, u_{k - 1} sampled by the …","Lets caller supply the challenges and obtain an MSM with …","Lets caller supply the purported G point and simply appends","Checks to see if the proof represented within transcript …","","","","","","Writes params to a buffer.","A polynomial query at a point","A polynomial query at a point","blinding factor of polynomial","","","","","","","","","Create a multi-opening proof","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","Create a new verifier query based on a commitment","Create a new verifier query based on a linear combination …","point at which polynomial is queried","coefficients of polynomial","","","","","","","","","Verify a multi-opening proof","","","We will replace BLAKE2b with an algebraic hash function in …","We will replace BLAKE2b with an algebraic hash function in …","A 255-bit challenge.","The scalar representation of a verifier challenge.","EncodedChallenge<C> defines a challenge encoding with a …","The Input type used to derive the challenge encoding. For …","Generic transcript view (from either the prover or verifier…","Transcript view from the perspective of a verifier that …","Transcript view from the perspective of a prover that has …","Cast an encoded challenge as a typed ChallengeScalar.","","","","","","","","","","","","","","","","","Writing the point to the transcript without writing it to …","","","Writing the scalar to the transcript without writing it to …","","","","","","","","","","","","","","","","","Conclude the interaction and return the output buffer …","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Get a scalar field element from an encoded challenge.","","","Initialize a transcript given an input buffer.","","Initialize a transcript given an output buffer.","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Get an encoded challenge from a given input challenge.","","Read a curve point from the prover.","","Read a curve scalar from the prover.","","Squeeze an encoded verifier challenge from the transcript.","","","Squeeze a typed challenge (in the scalar field) from the …","","","","","","","","","","","","","","","","","","","","","","Write a curve point to the proof and the transcript.","","Write a scalar to the proof and the transcript.",""],"i":[0,0,0,0,0,0,0,132,132,81,132,0,0,0,81,19,0,0,0,19,19,62,132,81,0,0,19,133,19,132,81,132,81,0,0,2,10,2,10,2,2,0,2,81,3,2,2,10,2,10,3,2,10,132,0,2,10,2,10,19,19,81,2,19,133,62,62,62,62,132,2,10,2,10,3,132,81,3,3,132,0,0,10,132,3,0,19,133,3,3,0,0,3,133,10,133,10,3,2,2,10,2,10,2,10,2,2,2,10,2,2,3,0,0,0,134,0,134,0,0,0,0,37,0,0,0,26,26,26,26,26,26,26,26,26,26,26,26,26,26,28,28,28,34,28,37,38,37,38,26,44,40,41,39,31,28,34,38,26,44,40,41,39,31,28,34,38,31,26,40,41,39,31,26,40,41,39,31,26,26,134,28,28,37,38,26,26,31,26,26,26,44,40,40,41,41,39,31,28,34,38,26,44,40,41,39,31,28,34,38,26,26,44,40,41,39,31,28,34,38,38,41,26,26,31,0,26,44,40,41,39,31,28,34,38,26,26,44,40,40,41,41,39,31,28,28,34,34,38,26,37,38,26,44,40,41,39,31,28,34,38,26,44,40,41,39,31,28,34,38,26,26,26,0,134,26,26,26,26,26,26,26,26,26,26,26,37,26,37,38,37,38,26,26,26,26,26,26,26,26,26,26,26,44,26,26,40,41,39,31,26,26,26,44,40,41,39,31,28,34,38,26,44,40,41,39,31,28,34,38,26,44,40,41,39,31,28,34,38,26,26,31,31,26,44,40,41,39,31,28,34,38,26,0,0,52,52,53,52,53,52,52,53,52,53,52,53,52,53,52,53,52,52,53,52,53,52,52,52,53,53,52,53,52,53,52,53,52,56,0,0,0,56,0,45,55,45,55,45,55,46,45,55,55,56,55,56,55,56,55,56,56,55,45,55,45,55,55,56,55,56,55,56,45,55,56,55,56,55,56,56,56,56,55,56,55,56,55,56,55,55,55,56,55,56,55,56,55,56,55,56,135,136,66,0,0,0,66,66,0,65,66,0,65,66,0,61,61,61,65,66,63,64,61,65,66,63,64,61,0,63,61,0,64,65,66,63,64,61,65,66,63,64,61,65,66,63,64,61,61,61,65,66,61,61,65,65,66,66,63,63,64,61,65,66,63,64,61,65,66,63,64,61,65,66,63,64,61,64,0,61,61,63,61,64,61,64,64,65,66,63,65,66,63,64,61,65,66,63,64,61,65,66,63,64,61,61,64,64,65,66,63,64,61,137,137,138,139,140,141,139,142,140,140,139,143,141,143,140,140,0,0,0,72,73,74,72,73,74,72,73,74,72,73,74,72,73,74,72,73,74,72,73,74,72,73,74,72,73,74,72,72,72,72,73,74,72,73,74,72,73,74,72,73,74,0,0,0,0,0,75,77,78,79,76,75,77,78,79,76,75,76,75,76,75,77,75,77,78,79,76,75,77,78,79,76,75,77,78,79,76,75,77,78,79,76,75,75,77,77,78,78,79,79,76,76,75,75,75,77,77,77,78,78,79,79,76,76,76,75,77,78,79,76,75,77,78,79,76,75,77,75,76,75,77,78,79,76,75,77,78,79,76,75,77,78,79,76,75,77,78,79,76,75,77,78,79,76,0,60,80,0,0,0,0,0,32,0,0,32,0,71,80,0,0,32,0,0,0,0,60,80,0,0,71,0,60,80,0,32,32,80,32,32,32,108,0,0,80,0,25,80,0,80,0,80,32,0,32,25,0,0,0,25,25,25,25,25,25,25,80,25,25,82,84,51,51,84,25,30,29,36,33,60,59,86,87,88,35,80,95,96,84,97,98,32,82,99,89,100,90,25,30,29,36,33,60,59,86,87,88,35,80,95,96,84,97,98,32,82,99,89,100,90,25,30,29,36,33,60,59,86,87,88,35,80,84,89,90,25,30,29,36,33,60,59,86,87,88,35,80,84,89,90,30,60,30,84,71,51,84,0,25,84,82,80,84,25,25,30,29,36,33,60,59,86,87,88,35,80,95,96,84,97,98,32,82,99,89,100,90,25,30,29,36,33,60,59,86,87,88,35,80,95,96,84,97,98,32,82,99,89,100,90,25,25,30,29,36,33,60,59,86,87,88,35,80,95,96,84,97,98,32,82,99,89,100,90,59,84,84,51,51,25,30,29,36,33,60,59,35,25,80,51,51,82,84,25,30,29,36,33,60,59,86,87,88,35,80,95,96,84,97,98,32,32,82,99,89,100,90,25,25,25,25,25,30,30,30,30,29,36,33,60,60,60,60,59,86,87,88,35,80,95,95,95,96,84,97,98,32,32,82,99,89,100,90,89,90,30,29,36,33,60,59,35,89,25,30,29,36,33,60,59,86,87,88,35,80,95,96,84,97,98,32,82,99,89,100,90,84,25,30,29,36,33,60,59,86,87,88,35,80,95,96,84,97,98,32,82,99,89,100,90,96,25,59,25,0,0,84,84,84,25,25,25,25,80,80,25,25,25,25,80,82,99,25,30,60,84,89,51,108,99,32,51,98,98,98,51,98,98,84,84,32,25,80,25,25,25,25,25,25,80,25,25,144,71,25,30,29,36,33,60,59,86,87,88,35,80,84,89,90,32,25,30,30,30,30,29,36,33,60,59,86,87,88,35,80,95,96,84,97,98,32,82,99,89,100,90,25,30,29,36,33,60,59,86,87,88,35,80,95,96,84,97,98,32,82,99,89,100,90,25,30,29,36,33,60,59,86,87,88,35,80,95,96,84,97,98,32,82,99,89,100,90,0,25,30,29,36,33,60,59,86,87,88,35,80,95,96,84,97,98,32,82,99,89,100,90,96,71,145,146,146,147,148,149,150,151,152,153,154,155,156,157,158,156,157,158,106,0,0,0,0,0,0,115,0,0,0,115,110,102,114,115,111,112,113,110,106,102,114,115,111,112,113,110,106,102,111,112,113,110,106,102,111,112,113,110,106,102,102,0,102,102,106,102,114,115,111,112,113,110,110,106,102,114,115,111,112,113,110,110,106,102,102,114,115,111,112,113,110,106,102,102,102,106,102,102,102,114,115,111,112,113,110,106,102,114,115,111,112,113,110,106,102,102,102,102,110,110,110,110,110,110,102,114,115,111,112,113,110,106,102,114,115,111,112,113,110,106,110,110,102,102,102,110,0,102,106,110,102,106,110,102,102,102,111,112,113,110,106,102,114,115,111,112,113,110,106,102,114,115,111,112,113,110,106,102,114,115,111,112,113,110,106,102,114,115,111,112,113,110,106,119,0,0,0,0,0,119,119,119,120,120,120,120,120,120,120,122,123,91,119,120,122,123,91,119,120,122,123,91,119,120,122,123,91,119,91,91,122,0,119,120,122,123,91,119,120,122,123,91,119,120,122,123,91,119,91,119,120,120,122,123,91,119,120,122,123,91,119,123,91,120,122,123,91,119,120,122,123,91,119,119,119,119,120,91,91,120,120,122,123,91,119,120,122,123,91,119,120,122,123,91,119,120,122,123,91,119,123,122,122,0,120,122,123,91,119,91,0,0,124,124,125,124,125,124,125,124,125,0,124,125,124,125,124,125,124,125,124,125,124,125,124,125,125,125,124,124,124,125,124,125,124,125,124,125,0,124,125,0,0,0,0,0,121,0,0,0,121,128,130,126,131,128,130,126,131,128,130,126,131,128,130,126,131,159,128,130,159,128,130,128,130,126,126,131,131,128,130,126,131,128,130,126,131,130,128,130,126,131,128,130,126,131,121,131,128,128,130,130,126,131,128,130,126,131,121,131,160,128,160,128,159,128,130,159,128,130,126,131,126,128,130,126,131,128,130,126,131,128,130,126,131,128,130,126,131,161,130,161,130],"f":[0,0,0,0,0,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,2],[[]],[[],3],[[2,2,4],2],[[],[[5,[2]]]],[[]],[[],2],[6],[6],[6],[6],[[]],[6],[6],[[]],[3,3],[[2,7],[[9,[8]]]],[[10,7],[[9,[8]]]],[[]],[[]],[[]],[11],[[],5],[[],[[5,[2]]]],[[],11],[[],1],[[]],[[]],[[]],[[]],[12,[[15,[13,14]]]],[[],6],[[],6],[[]],[[]],[[],5],[[],4],[[],4],[[],4],[[],16],[[]],[[17,3],[[18,[3]]]],[[],[[18,[19]]]],[[1,6],10],[[],5],[[]],[[[0,[13,20,21,22]]]],[[]],[[]],[[]],[23],[[6,6]],[[]],[[],5],[[]],[10],[[]],[10],[[]],[[]],[[],9],[[],9],[[],9],[[],9],[[],24],[[],24],[2],[2],[[]],[[]],[2],[2],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[26,[25]],[26,[3]]]],[[26,26]],[[[26,[25]],3]],[[26,26]],[[26,26]],[[[26,[[25,[3]]]],3]],[[[26,[[25,[3]]]],[26,[3]]]],[[26,26]],[[26,26]],[[26,26]],[[26,27],26],[26,26],[26,26],[[26,27]],[[[28,[3]],[30,[29]],6],[[9,[[31,[3]],32]]]],[[[28,[3]],[30,[29]],6],[[9,[[31,[3]],32]]]],[[[28,[3]],[30,[33]],6,[30,[29]],6],[[9,[[31,[3,3]],32]]]],[[[34,[3]],35,6],[[9,[32]]]],[[[28,[3]],[30,[36]],6],[[9,[[31,[3]],32]]]],[[],[[9,[32]]]],[[[38,[3,[37,[3]]]]],[[9,[32]]]],[[],[[9,[32]]]],[[[38,[3,[37,[3]]]]],[[9,[32]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[31,[3]]],39],[[[26,[22]]],[[26,[22]]]],[40,40],[41,41],[39,39],[[[31,[22,[0,[22,3]]]]],[[31,[22,[0,[22,3]]]]]],[[]],[[]],[[]],[[]],[[]],[26,26],[26,26],[[]],[[[28,[3]],39],[[9,[32]]]],[[[28,[3]],39,39],[[9,[32]]]],[[39,[30,[33]],6],[[9,[32]]]],[[[38,[3,[37,[3]]]],39,[30,[33]],6],[[9,[32]]]],[26,26],[26,26],[[[31,[22,3]],28,[30,[29]],6],[[9,[[31,[22,3]],32]]]],[26,[[26,[[25,[3]]]]]],[[],26],[6],[6],[6],[40],[6],[41],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[26,[[26,[[25,[3]]]]]],[6],[6],[6],[6],[6],[6],[6],[6],[[[38,[3,[37,[3]]]]]],[6],[[41,41],16],[[26,27],[[9,[32]]]],[[[26,[[25,[3]]]]],[[26,[3]]]],[[[31,[[25,[3]],3]]],[[31,[3,3]]]],0,[[[26,[42]],7],43],[[44,7],43],[[40,7],43],[[41,7],43],[[39,7],43],[[[31,[42,[0,[42,3]]]],7],43],[[[28,[[0,[42,3]]]],7],43],[[[34,[[0,[42,3]]]],7],43],[[[38,[[0,[42,3]],[0,[42,[37,[[0,[42,3]]]]]]]],7],43],[[]],[[[26,[3]]],[[26,[[25,[3]]]]]],[[]],[6,40],[[]],[6,41],[[]],[[]],[[]],[45,[[28,[3]]]],[[]],[46,[[34,[3]]]],[[]],[[]],[17,[[26,[47]]]],[[]],[[[38,[3,[37,[3]]]]]],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[26,[[26,[[25,[3]]]]]],[26,[[26,[[25,[3]]]]]],[[],26],0,[[]],[[26,27],26],[[26,26]],[[26,26]],[[26,26]],[[[26,[25]],[26,[3]]]],[[[26,[25]],3]],[[26,26]],[[26,26]],[[26,26]],[[[26,[[25,[3]]]],[26,[3]]]],[[[26,[[25,[3]]]],3]],[[],38],[[[26,[48]]]],[[[50,[49]]]],[[[38,[3,[37,[3]]]],[50,[49]]]],[[]],[[[38,[3,[37,[3]]]]]],[26,[[26,[[25,[3]]]]]],[[[26,[[25,[3]]]],3]],[[[26,[25]],[26,[3]]]],[[[26,[[25,[3]]]],[26,[3]]]],[[[26,[25]],3]],[[26,26]],[[26,26]],[[26,26]],[[26,26]],[[26,26]],[[26,26]],[[[18,[[30,[36]]]]],[[9,[32]]]],[26,[[26,[[25,[3]]]]]],[[]],[[]],[[]],[[]],[[]],[26],[[26,6],[[18,[26]]]],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],26],[26],[[[31,[3]]],26],[[[31,[3]]],[[26,[[25,[3]]]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[26,26],26],0,0,[[[52,[3,[51,[3]]]]],[[9,[32]]]],[[[52,[3,[51,[3]]]]],[[9,[32]]]],[[]],[[]],[[]],[[]],[[[52,[3,[51,[3]]]],39,[30,[33]],6],[[9,[32]]]],[6],[6],[6],[6],[6],[6],[[53,7],43],[[[52,[[0,[42,3]],[0,[42,[51,[[0,[42,3]]]]]]]],7],43],[[]],[[]],[[[52,[3,[51,[3]]]]]],[[],6],[[],6],[[]],[[]],[[[52,[3,[51,[3]]]],[50,[49]]]],[[[52,[3,[51,[3]]]]]],[[[18,[[30,[36]]]]],[[9,[32]]]],[[],9],[[],9],[[],9],[[],9],[[],24],[[],24],[[]],[[]],0,0,0,0,0,0,[[13,[30,[29]],6,54],[[9,[39,32]]]],[[55,13,[30,[29]],6,54],[[9,[39,32]]]],[[13,[30,[29]],6,25],[[9,[39,32]]]],[[55,13,[30,[29]],6,[25,[3]]],[[9,[39,32]]]],[[13,[30,[33]],6,[30,[29]],6],[[9,[32]]]],[[55,13,[30,[33]],6,[30,[29]],6],[[9,[32]]]],[[13,35,6,54],[[9,[32]]]],[[13,[30,[36]],6,54],[[9,[39,32]]]],[[55,13,[30,[36]],6,54],[[9,[39,32]]]],[[]],[[]],[[]],[[]],[55,55],[56,56],[[]],[[]],[[56,56],57],[55,58],[[39,25],[[9,[32]]]],[[55,39,[25,[3]]],[[9,[32]]]],[[39,39],[[9,[32]]]],[[55,39,39],[[9,[32]]]],[6],[6],[6],[6],[6],[6],[[13,59,6],[[9,[32]]]],[[55,13,59,6],[[9,[32]]]],[[56,56],16],[[55,7],43],[[56,7],43],[[]],[59,56],[[]],[[[30,[60]]],56],[56],[[],6],[[],6],[[]],[[]],[40,55],[[56,56],[[50,[57]]]],[55,40],[55,6],[[]],[[]],[[],9],[[],9],[[],9],[[],9],[[],24],[[],24],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[61,[19]]]],[[[61,[[0,[3,62]]]],[30,[29]],6],[[9,[32]]]],[[[61,[[0,[3,62]]]],[30,[36]],6],[[9,[32]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],49],[[],63],[[[61,[[0,[3,62]]]],[30,[60]],6,[30,[60]],6],[[9,[32]]]],0,[[],64],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[[[61,[[0,[3,62]]]],59,6],[[9,[32]]]],[[[61,[[0,[3,62]]]]]],[[65,65],16],[[66,66],16],[[[61,[[0,[3,62]]]]]],[[[61,[[0,[3,62]]]],[30,[36]],6,[26,[[25,[[0,[3,62]]]]]]],[[9,[32]]]],[[65,7],43],[[65,7],43],[[66,7],43],[[66,7],43],[[63,7],43],[[63,7],[[9,[8]]]],[[64,7],43],[[[61,[[0,[42,62,3]]]],7],43],[[]],[[]],[[]],[[]],[[]],[[],6],[[],6],[[],6],[[],6],[[],6],[[]],[[]],[[]],[[]],[[]],[[64,16],64],0,[[[61,[[0,[3,62]]]],[50,[49]]]],[[[61,[[0,[3,62]]]]]],[63,49],[[[61,[[0,[3,62]]]],[30,[33]],6],[[9,[[26,[[0,[3,62]]]],32]]]],[[64,1,67],[[9,[68]]]],[[1,[18,[[18,[19]]]]],[[9,[[61,[19]],32]]]],[[64,16],64],[[64,16],64],[[],49],[[],49],[[],49],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],24],[[],24],[[],24],[[],24],[[],24],[[[61,[19]]],[[9,[[18,[66]]]]]],[[64,[69,[6]]],64],[[64,[69,[6]]],64],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[6],[6],[6],[6],[6],[6],[6],[6],[6],[[[72,[[0,[42,70]],[0,[42,71]]]],7],43],[[[73,[[0,[42,70]]]],7],43],[[[74,[[0,[42,70]]]],7],43],[[]],[[]],[[]],[[],6],[[],6],[[],6],[[]],[[]],[[]],[[[72,[70,71]]],[[73,[70]]]],[6,[[72,[70,71]]]],[[[72,[70,71]],6],[[74,[70]]]],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],24],[[],24],[[],24],[[]],[[]],[[]],0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[75,75],[76,76],[[]],[[]],[[75,75],57],[[77,77],57],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[[75,75],16],[[77,77],16],[[78,78],16],[[79,79],16],[[76,76],16],[[75,7],43],[[75,7],43],[[77,7],43],[[77,7],43],[[78,7],43],[[78,7],43],[[79,7],43],[[79,7],43],[[76,7],43],[[76,7],43],[[],75],[[[30,[60]]],75],[[]],[[],77],[[]],[[],77],[[],78],[[]],[[],79],[[]],[[]],[[],76],[[],76],[[],6],[[],6],[[],6],[[],6],[[],6],[[]],[[]],[[]],[[]],[[]],[[75,75],[[50,[57]]]],[[77,77],[[50,[57]]]],[[]],[[]],[[],49],[[],49],[[],49],[[],49],[[],49],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],24],[[],24],[[],24],[[],24],[[],24],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[25,[3]],[25,[3]]],[[25,[3]]]],[[[25,[3]],[25,[3]]],[[25,[3]]]],[[25,3],[[25,[3]]]],[[[25,[3]],3],[[25,[3]]]],[[25,[25,[3]]],[[25,[3]]]],[[25,25],[[25,[3]]]],[[[80,[3]],[80,[3]]],[[80,[3]]]],[[[25,[3]],[25,[3]]]],[[[25,[3]],[25,[3]]]],[[[82,[81]],[18,[[18,[18]]]],[18,[83]]]],[[[84,[3]]],[[30,[29]]]],[[[30,[29]],6],[[9,[32]]]],[[[30,[36]],6],[[9,[32]]]],[[[84,[3]]],6],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[25,[22]]],[[25,[22]]]],[[[30,[[0,[22,85]]]]],[[30,[[0,[22,85]]]]]],[29,29],[36,36],[33,33],[60,60],[59,59],[86,86],[87,87],[88,88],[35,35],[[[80,[22]]],[[80,[22]]]],[[[84,[[0,[22,3]]]]],[[84,[[0,[22,3]]]]]],[[[89,[[0,[22,81]]]]],[[89,[[0,[22,81]]]]]],[[[90,[[0,[22,81]]]]],[[90,[[0,[22,81]]]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[30,[85]],[30,[85]]],57],[[60,60],57],[[[30,[85]]]],[[[84,[3]]],59],[84],[[[30,[60]],6,[30,[60]],6],[[9,[32]]]],[[[84,[3]],12,27]],[[91,90,23],[[9,[32]]]],[[[25,[3]]],[[25,[3]]]],[[],[[84,[3]]]],[[],[[82,[[0,[92,81]]]]]],[[[80,[3]]],6],[[[84,[3]]],6],[[[25,[3]]],[[50,[3]]]],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[[[25,[3]]],[[25,[3]]]],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[[59,28,6],[[9,[32]]]],[[[84,[3]],[30,[36]]]],[[[84,[3]],[93,[[30,[60]]]]]],[[59,6],[[9,[32]]]],[[]],[[[25,[3]],[25,[3]]],16],[[[30,[[0,[94,85]]]],30],16],[[29,29],16],[[36,36],16],[[33,33],16],[[60,60],16],[[59,59],16],[[35,35],16],[[[25,[3]]],3],[[[80,[3]]]],[[]],[[[30,[36]],6,[26,[25]]],[[9,[32]]]],[[[82,[81]],91,89],16],[[[84,[3]]],[[30,[36]]]],[[[25,[42]],7],43],[[[30,[[0,[42,85]]]],7],43],[[29,7],43],[[36,7],43],[[33,7],43],[[60,7],43],[[59,7],43],[[86,7],43],[[87,7],43],[[88,7],43],[[35,7],43],[[[80,[42]],7],43],[[[95,[[0,[42,3]]]],7],43],[[[96,[[0,[42,3]],[0,[42,[93,[[95,[[0,[42,3]]]]]]]],[0,[42,17]]]],7],43],[[[84,[[0,[42,3]]]],7],43],[[[97,[[0,[42,3]]]],7],43],[[[98,[[0,[42,3]]]],7],43],[[32,7],43],[[32,7],43],[[[82,[[0,[42,81]]]],7],43],[[[99,[[0,[42,81]]]],7],43],[[[89,[[0,[42,81]]]],7],43],[[[100,[[0,[42,81]]]],7],43],[[[90,[[0,[42,81]]]],7],43],[25,[[25,[3]]]],[[],[[25,[3]]]],[[]],[3,[[25,[3]]]],[[],[[25,[3]]]],[[[30,[33]]],[[30,[60]]]],[[]],[[[30,[36]]],[[30,[60]]]],[[[30,[29]]],[[30,[60]]]],[[]],[[]],[[]],[36,60],[33,60],[[]],[29,60],[[]],[[]],[[]],[[]],[[]],[[]],[[[80,[3]]],[[95,[3]]]],[[]],[[],[[95,[3]]]],[[]],[[]],[[]],[[]],[[]],[101,32],[[]],[[]],[[]],[[]],[[]],[[[89,[81]]],102],[[[90,[81]]],89],[[[30,[[0,[103,85]]]]]],[29],[36],[33],[60],[59],[35],[[[89,[81]]],104],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[[84,[3]]],[[30,[33]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[96,[3,[93,[[95,[3]]]],17]]]],[[[25,[3]]],[[25,[3]]]],[59,16],[[[25,[3]]],16],[[91,89],[[9,[90,32]]]],[91,[[9,[89,32]]]],[[[84,[3]],27],6],[[[84,[3]]],35],[[[84,[3]]],6],[[[25,[3]],[25,[3]]],[[25,[3]]]],[[[25,[3]],3],[[25,[3]]]],[[25,3],[[25,[3]]]],[[[25,[3]],25],[[25,[3]]]],[[[80,[3]],3],[[80,[3]]]],[[[80,[3]],[80,[3]]],[[80,[3]]]],[[[25,[3]],[25,[3]]]],[[[25,[3]],[25,[3]]]],[25],[[[25,[3]]]],[[[80,[3]]]],[[],[[82,[81]]]],[91,[[99,[81]]]],[[[25,[3]]],3],[[[30,[85]],[30,[85]]],[[50,[57]]]],[[60,60],[[50,[57]]]],[[[84,[3]]],[[97,[3]]]],[[[89,[81]]],[[100,[81]]]],[[[50,[49]]]],[27,[[9,[32]]]],[[[99,[81]],27],[[9,[32]]]],[105],[[]],[[[98,[3]],[30,[29]],106],[[80,[3]]]],[[[98,[3]],[93,[[30,[60]]]],106],[[80,[3]]]],[[[98,[3]],[30,[36]],106],[[80,[3]]]],[[[30,[33]],6],[[9,[26,32]]]],[[[98,[3]],[30,[33]],106],[[80,[3]]]],[[[98,[3]],59],[[80,[3]]]],[[[84,[3]]],59],[[[84,[3]],6]],[32,[[50,[107]]]],[[[25,[3]]],[[25,[3]]]],[[[80,[3]]],[[80,[3]]]],[[[25,[3]],3],[[25,[3]]]],[[25,25],[[25,[3]]]],[[25,[25,[3]]],[[25,[3]]]],[[25,3],[[25,[3]]]],[[[25,[3]],[25,[3]]],[[25,[3]]]],[[[25,[3]],[25,[3]]],[[25,[3]]]],[[[80,[3]],[80,[3]]],[[80,[3]]]],[[[25,[3]],[25,[3]]]],[[[25,[3]],[25,[3]]]],[[[18,[[30,[36]]]]],[[9,[32]]]],[37,[[9,[32]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],49],[[],9],[[[30,[60]]],[[9,[[30,[36]]]]]],[[[30,[60]]],[[9,[[30,[33]]]]]],[[],9],[[[30,[60]]],[[9,[[30,[29]]]]]],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[91,89,[108,[81]]],[[9,[32]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[80,[3]],17],[[96,[3,[93,[[95,[3]]]],17]]]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[110,[3,109]],110],[[110,[3,109]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[102,[[0,[22,62]]]]],[[102,[[0,[22,62]]]]]],[111,111],[112,112],[113,113],[[[110,[22,22]]],[[110,[22,22]]]],[106,106],[[]],[[]],[[]],[[]],[[]],[[]],[[[102,[62]],[18,[62]]],[[110,[62,111]]]],[[[102,[62]],[110,[62,111]]],[[110,[62,113]]]],0,[[[102,[62]],62],[[110,[62,113]]]],[[[102,[62]],62],[[110,[62,112]]]],[[],106],[6],[6],[6],[6],[6],[6],[110],[6],[6],[6],[6],[6],[6],[6],[6],[6],[110],[6],[[[102,[62]],[110,[62,113]]],[[110,[62,113]]]],[6],[6],[6],[6],[6],[6],[6],[6],[[[102,[62]]],[[110,[62,111]]]],[[[102,[62]]],[[110,[62,113]]]],[[[102,[62]]],[[110,[62,112]]]],[[106,106],16],[[[102,[62]]],6],[[[102,[62]],[110,[62,113]]],[[18,[62]]]],[[[102,[[0,[42,62]]]],7],43],[[[114,[[0,[42,62]]]],7],43],[[115,7],43],[[111,7],43],[[112,7],43],[[113,7],43],[[[110,[42,42]],7],43],[[106,7],43],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[102,[62]]]],[[[102,[62]]]],[[[102,[62]]]],[[[102,[62]]],6],[[110,6]],[[110,116]],[[110,[117,[6]]]],[[110,116]],[[110,6]],[[110,[117,[6]]]],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[110,118],[110,118],[[[102,[62]],[0,[17,22]]],18],[[[102,[62]],[18,[62]]],[[110,[62,112]]]],[[[102,[62]],[110,[62,112]]],[[110,[62,111]]]],[[[110,[3,109]],3],[[110,[3,109]]]],0,[[1,1],[[102,[62]]]],[[],106],[110,6],[[[102,[62]]],[[114,[62]]]],[[],106],[[[110,[3,112]],106],[[110,[3,112]]]],[[[102,[62]],110,106],[[110,[62,113]]]],[[[102,[62]],106]],[[]],[[]],[[]],[[]],[[]],[[]],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,[[[119,[19]],[119,[19]]],[[119,[19]]]],[[[119,[19]],19]],[[[119,[19]],[119,[19]]]],[[[120,[81]]]],[[[120,[81]],[120,[81]]]],[[[120,[81]]]],[[[120,[81]]]],[[[120,[81]]]],[[[120,[81]],81]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[120,[[0,[22,81]]]]],[[120,[[0,[22,81]]]]]],[[[122,[[0,[22,81]],[0,[22,[121,[[0,[22,81]]]]]]]]],[[122,[[0,[22,81]],[0,[22,[121,[[0,[22,81]]]]]]]]]],[[[123,[[0,[22,81]],[0,[22,[121,[[0,[22,81]]]]]]]]],[[123,[[0,[22,81]],[0,[22,[121,[[0,[22,81]]]]]]]]]],[[[91,[[0,[22,81]]]]],[[91,[[0,[22,81]]]]]],[[[119,[22]]],[[119,[22]]]],[[]],[[]],[[]],[[]],[[]],[[[91,[81]],110,119]],[[[91,[81]],110,119]],[[[122,[81,[121,[81]]]]],81],[[91,23,110,119],104],[[],[[119,[19]]]],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[[[91,[81]]],[[120,[81]]]],[[[119,[94]],119],16],[[[120,[81]]],16],[[[120,[[0,[42,81]]]],7],43],[[[122,[[0,[42,81]],[0,[42,[121,[[0,[42,81]]]]]]]],7],43],[[[123,[[0,[42,81]],[0,[42,[121,[[0,[42,81]]]]]]]],7],43],[[[91,[[0,[42,81]]]],7],43],[[[119,[42]],7],43],[[]],[[]],[[]],[[]],[[]],0,[[[91,[81]]],[[18,[81]]]],[[],6],[[],6],[[],6],[[],6],[[],6],[[]],[[]],[[]],[[]],[[]],[[[119,[19]],[119,[19]]],[[119,[19]]]],[[[119,[19]],[119,[19]]]],[[[119,[19]],19]],[91,[[120,[81]]]],[1,[[91,[81]]]],[[],[[104,[[91,[81]]]]]],[[[120,[81]]]],[[]],[[]],[[]],[[]],[[]],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],24],[[],24],[[],24],[[],24],[[],24],0,[[[122,[81,[121,[81]]]]],[[120,[81]]]],[[[122,[81,[121,[81]]]],81]],[[91,[120,[81]]],[[9,[[122,[81,[121,[81]]]],115]]]],[[]],[[]],[[]],[[]],[[]],[[[91,[81]]],104],0,0,0,[[]],[[]],[[]],[[]],[[[124,[[0,[22,81]]]]],[[124,[[0,[22,81]]]]]],[[[125,[[0,[22,81]]]]],[[125,[[0,[22,81]]]]]],[[]],[[]],[[91,23],104],[6],[6],[6],[6],[6],[6],[[[124,[[0,[42,81]]]],7],43],[[[125,[[0,[42,81]]]],7],43],[[]],[[]],[[],6],[[],6],[[]],[[]],[[],[[125,[81]]]],[120,[[125,[81]]]],0,0,[[]],[[]],[[],9],[[],9],[[],9],[[],9],[[],24],[[],24],[[91,[120,[81]]],[[9,[[122,[81,[121,[81]]]],115]]]],[[]],[[]],0,0,0,0,0,0,0,0,0,[[],126],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[128,[[0,[22,127]],[0,[22,81]],[0,[22,[121,[[0,[22,81]]]]]]]]],[[128,[[0,[22,127]],[0,[22,81]],[0,[22,[121,[[0,[22,81]]]]]]]]]],[[[130,[[0,[22,129]],[0,[22,81]],[0,[22,[121,[[0,[22,81]]]]]]]]],[[130,[[0,[22,129]],[0,[22,81]],[0,[22,[121,[[0,[22,81]]]]]]]]]],[[[126,[[0,[22,81]],22]]],[[126,[[0,[22,81]],22]]]],[[[131,[[0,[22,81]]]]],[[131,[[0,[22,81]]]]]],[[]],[[]],[[]],[[]],[[],104],[[[128,[127,81,[131,[81]]]],81],104],[[[130,[129,81,[131,[81]]]],81],104],[[],104],[[[128,[127,81,[131,[81]]]]],104],[[[130,[129,81,[131,[81]]]]],104],[6],[6],[[[126,[81]]]],[6],[6],[[[131,[81]]]],[6],[6],[6],[6],[6],[6],[6],[6],[[[130,[129,81,[121,[81]]]]],129],[[[128,[[0,[42,127]],[0,[42,81]],[0,[42,[121,[[0,[42,81]]]]]]]],7],43],[[[130,[[0,[42,129]],[0,[42,81]],[0,[42,[121,[[0,[42,81]]]]]]]],7],43],[[[126,[[0,[42,81]],42]],7],43],[[[131,[[0,[42,81]]]],7],43],[[]],[[]],[[]],[[]],[[]],[[[131,[81]]]],[[],6],[127,[[128,[127,81,[121,[81]]]]]],[[],6],[129,[[130,[129,81,[121,[81]]]]]],[[],6],[[],6],[[]],[[]],[[]],[[]],[[]],[[],[[131,[81]]]],[[],104],[[[128,[127,81,[131,[81]]]]],[[104,[81]]]],[[],104],[[[128,[127,81,[131,[81]]]]],104],[[]],[[[128,[127,81,[131,[81]]]]],[[131,[81]]]],[[[130,[129,81,[131,[81]]]]],[[131,[81]]]],[[],126],[[]],[[]],[[]],[[]],[[]],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],24],[[],24],[[],24],[[],24],[[]],[[]],[[]],[[]],[[],104],[[[130,[129,81,[131,[81]]]],81],104],[[],104],[[[130,[129,81,[131,[81]]]]],104]],"p":[[15,"u32"],[3,"Coordinates"],[8,"Field"],[3,"Choice"],[3,"CtOption"],[15,"usize"],[3,"Formatter"],[3,"Error"],[4,"Result"],[3,"SqrtTables"],[15,"u128"],[15,"str"],[8,"Fn"],[3,"Global"],[3,"Box"],[15,"bool"],[8,"IntoIterator"],[3,"Vec"],[8,"FieldExt"],[8,"Send"],[8,"Sync"],[8,"Clone"],[8,"RngCore"],[3,"TypeId"],[4,"Assigned"],[3,"Value"],[8,"FnOnce"],[3,"Region"],[3,"Advice"],[3,"Column"],[3,"AssignedCell"],[4,"Error"],[3,"Instance"],[3,"Table"],[3,"TableColumn"],[3,"Fixed"],[8,"Layouter"],[3,"NamespacedLayouter"],[3,"Cell"],[3,"RegionIndex"],[3,"RegionStart"],[8,"Debug"],[6,"Result"],[3,"SimpleFloorPlanner"],[8,"RegionLayouter"],[8,"TableLayouter"],[8,"FromIterator"],[8,"Neg"],[3,"String"],[4,"Option"],[8,"Assignment"],[3,"V1Pass"],[3,"V1"],[8,"FnMut"],[3,"RegionShape"],[4,"RegionColumn"],[4,"Ordering"],[3,"HashSet"],[3,"Selector"],[4,"Any"],[3,"MockProver"],[8,"Group"],[3,"CircuitGates"],[3,"CircuitLayout"],[4,"FailureLocation"],[4,"VerifyFailure"],[3,"DrawingArea"],[4,"DrawingAreaErrorKind"],[3,"Range"],[8,"PrimeGroup"],[8,"Circuit"],[3,"CircuitCost"],[3,"MarginalProofSize"],[3,"ProofSize"],[3,"Column"],[3,"Region"],[3,"VirtualCell"],[3,"Gate"],[3,"Constraint"],[4,"Expression"],[8,"CurveAffine"],[3,"BatchVerifier"],[15,"u8"],[3,"ConstraintSystem"],[8,"ColumnType"],[3,"FixedQuery"],[3,"AdviceQuery"],[3,"InstanceQuery"],[3,"VerifyingKey"],[3,"ProvingKey"],[3,"Params"],[8,"Default"],[8,"Into"],[8,"PartialEq"],[3,"Constraint"],[3,"Constraints"],[3,"PinnedConstraintSystem"],[3,"VirtualCells"],[3,"SingleVerifier"],[3,"PinnedVerificationKey"],[3,"Error"],[3,"EvaluationDomain"],[8,"Hash"],[6,"Result"],[3,"Demand"],[3,"Rotation"],[8,"Error"],[8,"VerificationStrategy"],[8,"Basis"],[3,"Polynomial"],[3,"Coeff"],[3,"LagrangeCoeff"],[3,"ExtendedLagrangeCoeff"],[3,"PinnedEvaluationDomain"],[4,"Error"],[3,"RangeFull"],[3,"RangeFrom"],[8,"Iterator"],[3,"Blind"],[3,"MSM"],[8,"EncodedChallenge"],[3,"Guard"],[3,"Accumulator"],[3,"ProverQuery"],[3,"VerifierQuery"],[3,"ChallengeScalar"],[8,"Read"],[3,"Blake2bRead"],[8,"Write"],[3,"Blake2bWrite"],[3,"Challenge255"],[8,"CurveExt"],[8,"SqrtRatio"],[8,"Chip"],[13,"Column"],[13,"Selector"],[13,"InRegion"],[13,"OutsideRegion"],[13,"ConstraintNotSatisfied"],[13,"CellNotAssigned"],[13,"Permutation"],[13,"ConstraintPoisoned"],[13,"Lookup"],[8,"FloorPlanner"],[13,"Trivial"],[13,"Rational"],[13,"Transcript"],[13,"ColumnNotInPermutation"],[13,"NotEnoughRowsAvailable"],[13,"Constant"],[13,"Selector"],[13,"Fixed"],[13,"Advice"],[13,"Instance"],[13,"Negated"],[13,"Sum"],[13,"Product"],[13,"Scaled"],[8,"Transcript"],[8,"TranscriptRead"],[8,"TranscriptWrite"]]}\ +"halo2_proofs":{"doc":"halo2_proofs","t":[0,0,0,2,0,0,0,16,16,16,18,3,8,8,16,18,8,8,8,18,18,16,16,16,8,3,18,18,18,10,10,10,10,5,5,11,11,11,11,11,11,5,11,10,11,11,11,11,11,11,10,11,11,10,5,11,11,11,11,10,10,10,11,10,10,10,10,10,10,10,11,11,11,11,10,10,10,11,11,10,5,5,11,10,10,5,11,11,11,10,5,5,10,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,10,3,3,8,16,8,16,3,3,3,3,16,3,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,10,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,13,4,8,3,13,8,10,11,10,11,10,11,10,10,11,11,11,11,11,11,11,11,11,11,11,10,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,13,2,3,3,13,13,4,13,13,3,13,13,4,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,3,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,3,3,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,13,13,3,4,4,8,3,13,8,3,13,8,16,13,3,3,13,3,4,4,3,13,13,3,8,16,3,13,13,3,13,13,13,13,13,13,16,3,3,13,3,13,13,3,13,3,13,13,3,13,13,8,3,3,13,11,11,11,11,11,11,11,11,11,11,11,10,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,10,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,10,11,11,11,11,11,11,11,11,11,11,10,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,10,11,11,10,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,8,3,4,3,3,3,13,3,3,3,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,3,3,3,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,5,11,11,11,11,11,11,3,3,12,11,11,11,11,11,11,11,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,5,11,11,3,3,3,3,8,16,8,8,8,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,10,11,10,11,10,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,10,11],"n":["arithmetic","circuit","dev","pasta","plonk","poly","transcript","AffineExt","Base","Base","CURVE_ID","Coordinates","CurveAffine","CurveExt","CurveExt","DELTA","Field","FieldExt","Group","MODULUS","ROOT_OF_UNITY_INV","Scalar","ScalarExt","ScalarExt","SqrtRatio","SqrtTables","TWO_INV","T_MINUS1_OVER2","ZETA","a","a","b","b","best_fft","best_multiexp","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","compute_inner_product","conditional_select","coordinates","cube","default","deref","deref","deref_mut","deref_mut","double","drop","drop","endo","eval_polynomial","fmt","fmt","from","from","from_bytes_wide","from_u128","from_xy","from_xy","get_lower_128","get_lower_32","group_add","group_scale","group_sub","group_zero","hash_to_curve","init","init","into","into","invert","is_on_curve","is_on_curve","is_zero","is_zero_vartime","jacobian_coordinates","kate_division","lagrange_interpolate","new","new_jacobian","one","parallelize","pow","pow_by_t_minus1_over2","pow_vartime","random","recursive_butterfly_arithmetic","small_multiexp","sqrt","sqrt_alt","sqrt_alt","sqrt_ratio","sqrt_ratio","square","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","u","v","vzip","vzip","x","y","zero","AssignedCell","Cell","Chip","Config","Layouter","Loaded","NamespacedLayouter","Region","RegionIndex","RegionStart","Root","SimpleFloorPlanner","Table","Value","add","add","add","add","add","add","add","add","add","add","and_then","as_mut","as_ref","assert_if_known","assign_advice","assign_advice_from_constant","assign_advice_from_instance","assign_cell","assign_fixed","assign_region","assign_region","assign_table","assign_table","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","cell","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cloned","cloned","config","constrain_constant","constrain_equal","constrain_instance","constrain_instance","copied","copied","copy_advice","cube","default","deref","deref","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","double","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","eq","error_if_known_and","evaluate","evaluate","floor_planner","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_iter","get_root","get_root","init","init","init","init","init","init","init","init","init","into","into","into","into","into","into","into","into","into","into_field","invert","known","layouter","loaded","map","mul","mul","mul","mul","mul","mul","mul","mul","mul","mul","namespace","neg","pop_namespace","pop_namespace","push_namespace","push_namespace","square","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","synthesize","to_field","to_owned","to_owned","to_owned","to_owned","to_owned","transpose_array","transpose_vec","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","unknown","unzip","value","value_field","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","zip","V1","V1Pass","assign_region","assign_table","borrow","borrow","borrow_mut","borrow_mut","constrain_instance","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","from","from","get_root","init","init","into","into","pop_namespace","push_namespace","synthesize","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Column","RegionColumn","RegionLayouter","RegionShape","Selector","TableLayouter","assign_advice","assign_advice","assign_advice_from_constant","assign_advice_from_constant","assign_advice_from_instance","assign_advice_from_instance","assign_cell","assign_fixed","assign_fixed","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","cmp","columns","constrain_constant","constrain_constant","constrain_equal","constrain_equal","deref","deref","deref_mut","deref_mut","drop","drop","enable_selector","enable_selector","eq","fmt","fmt","from","from","from","from","hash","init","init","into","into","new","partial_cmp","region_index","row_count","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","0","0","CellNotAssigned","CircuitCost","CircuitGates","CircuitLayout","ConstraintNotSatisfied","ConstraintPoisoned","FailureLocation","InRegion","Lookup","MockProver","OutsideRegion","Permutation","VerifyFailure","assert_satisfied","assign_advice","assign_fixed","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","circuit_dot_graph","collect","copy","cost","default","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","enable_selector","enter_region","eq","eq","exit_region","fill_from_row","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","init","init","init","init","init","into","into","into","into","into","mark_equality_cells","metadata","pop_namespace","push_namespace","queries_to_csv","query_instance","render","run","show_equality_constraints","show_labels","to_string","to_string","to_string","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","view_height","view_width","vzip","vzip","vzip","vzip","vzip","offset","region","row","cell_values","column","column","constraint","constraint","gate","gate_offset","location","location","location","lookup_index","offset","region","CircuitCost","MarginalProofSize","ProofSize","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","fmt","fmt","fmt","from","from","from","init","init","init","into","into","into","marginal_proof_size","measure","proof_size","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","Column","Constraint","Gate","Region","VirtualCell","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","cmp","cmp","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","init","init","init","init","init","into","into","into","into","into","partial_cmp","partial_cmp","to_owned","to_owned","to_string","to_string","to_string","to_string","to_string","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","vzip","vzip","vzip","vzip","vzip","Advice","Advice","Advice","AdviceQuery","Any","Assigned","Assignment","BatchVerifier","BoundsFailure","Circuit","Column","ColumnNotInPermutation","ColumnType","Config","Constant","Constraint","ConstraintSystem","ConstraintSystemFailure","Constraints","Error","Expression","Fixed","Fixed","Fixed","FixedQuery","FloorPlanner","FloorPlanner","Instance","Instance","Instance","InstanceQuery","InstanceTooLarge","InvalidInstances","Negated","NotEnoughColumnsForConstants","NotEnoughRowsAvailable","Opening","Output","PinnedConstraintSystem","PinnedVerificationKey","Product","ProvingKey","Rational","Scaled","Selector","Selector","SingleVerifier","Sum","Synthesis","TableColumn","Transcript","Trivial","VerificationStrategy","VerifyingKey","VirtualCells","Zero","add","add","add","add","add","add","add","add_assign","add_assign","add_proof","advice_column","assign_advice","assign_fixed","blinding_factors","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","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","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","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","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","column_type","complex_selector","configure","copy","create_gate","create_proof","cube","default","default","degree","degree","denominator","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","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","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","double","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","enable","enable_constant","enable_equality","enable_equality","enable_selector","enter_region","eq","eq","eq","eq","eq","eq","eq","eq","evaluate","evaluate","exit_region","fill_from_row","finalize","fixed_column","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","get_domain","get_vk","hash","hash","hash","hash","hash","hash","hash","hash_into","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","instance_column","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into_iter","invert","is_simple","is_zero_vartime","keygen_pk","keygen_vk","lookup","lookup_table_column","minimum_rows","mul","mul","mul","mul","mul","mul","mul_assign","mul_assign","neg","neg","neg","new","new","numerator","partial_cmp","partial_cmp","pinned","pinned","pop_namespace","process","process","provide","push_namespace","query_advice","query_any","query_fixed","query_instance","query_instance","query_selector","selector","set_minimum_degree","source","square","square","sub","sub","sub","sub","sub","sub","sub","sub_assign","sub_assign","synthesize","synthesize","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","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","try_into","try_into","try_into","try_into","try_into","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","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","verify_proof","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","with_selector","without_witnesses","0","0","1","0","0","current_k","0","0","0","0","0","0","0","0","0","1","1","1","0","Basis","Coeff","Error","EvaluationDomain","ExtendedLagrangeCoeff","LagrangeCoeff","OpeningError","PinnedEvaluationDomain","Polynomial","Rotation","SamplingError","add","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_into","clone_into","clone_into","clone_into","clone_into","clone_into","coeff_from_vec","coeff_to_extended","commitment","constant_extended","constant_lagrange","cur","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","divide_by_vanishing_poly","drop","drop","drop","drop","drop","drop","drop","drop","empty_coeff","empty_extended","empty_lagrange","eq","extended_len","extended_to_coeff","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","get_extended_omega","get_omega","get_omega_inv","get_quotient_poly_degree","index","index","index","index_mut","index_mut","index_mut","init","init","init","init","init","init","init","init","into","into","into","into","into","into","into","into","iter","iter_mut","l_i_range","lagrange_from_vec","lagrange_to_coeff","mul","multiopen","new","next","num_coeffs","pinned","prev","rotate","rotate_extended","rotate_omega","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","0","Accumulator","Blind","Guard","MSM","Params","add","add_assign","add_assign","add_constant_term","add_msm","add_to_g_scalars","add_to_u_scalar","add_to_w_scalar","append_term","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","commit","commit_lagrange","compute_g","create_proof","default","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","empty_msm","eq","eval","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","g","get_g","init","init","init","init","init","into","into","into","into","into","mul","mul_assign","mul_assign","new","new","read","scale","to_owned","to_owned","to_owned","to_owned","to_owned","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","u_packed","use_challenges","use_g","verify_proof","vzip","vzip","vzip","vzip","vzip","write","ProverQuery","VerifierQuery","blind","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","create_proof","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","from","from","init","init","into","into","new_commitment","new_msm","point","poly","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","verify_proof","vzip","vzip","Blake2bRead","Blake2bWrite","Challenge255","ChallengeScalar","EncodedChallenge","Input","Transcript","TranscriptRead","TranscriptWrite","as_challenge_scalar","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","common_point","common_point","common_point","common_scalar","common_scalar","common_scalar","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","finalize","fmt","fmt","fmt","fmt","from","from","from","from","get_scalar","get_scalar","init","init","init","init","init","init","into","into","into","into","new","new","read_point","read_point","read_scalar","read_scalar","squeeze_challenge","squeeze_challenge","squeeze_challenge","squeeze_challenge_scalar","to_owned","to_owned","to_owned","to_owned","translate","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","write_point","write_point","write_scalar","write_scalar"],"q":["halo2_proofs","","","","","","","halo2_proofs::arithmetic","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_proofs::circuit","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_proofs::circuit::floor_planner","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_proofs::circuit::layouter","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_proofs::circuit::layouter::RegionColumn","","halo2_proofs::dev","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_proofs::dev::FailureLocation","","","halo2_proofs::dev::VerifyFailure","","","","","","","","","","","","","halo2_proofs::dev::cost","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_proofs::dev::metadata","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_proofs::plonk","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_proofs::plonk::Assigned","","","halo2_proofs::plonk::Error","","","halo2_proofs::plonk::Expression","","","","","","","","","","","","halo2_proofs::poly","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_proofs::poly::commitment","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_proofs::poly::multiopen","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_proofs::transcript","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["This module provides common utilities, traits and …","Traits and structs for implementing circuit components.","Tools for developing circuits.","","This module provides an implementation of a variant of …","Contains utilities for performing arithmetic over …","This module contains utilities and traits for dealing with …","The affine version of the curve","The base field over which this elliptic curve is …","The base field over which this elliptic curve is …","CURVE_ID used for hash-to-curve.","The affine coordinates of a point on an elliptic curve.","This trait is the affine counterpart to Curve and is used …","This trait is a common interface for dealing with elements …","The projective form of the curve","Generator of the $t-order$ multiplicative subgroup","This trait represents an element of a field.","This trait is a common interface for dealing with elements …","This represents an element of a group with basic …","Modulus of the field written as a string for display …","Inverse of PrimeField::root_of_unity()","The group is assumed to be of prime order $p$. Scalar is …","The scalar field of this elliptic curve.","The scalar field of this elliptic curve.","A trait that exposes additional operations related to …","Tables used for square root computation.","Inverse of $2$ in the field.","The value $(T-1)/2$ such that $2^S \\\\cdot T = p - 1$ with …","Element of multiplicative order $3$.","Returns the curve constant a.","Returns the curve constant $a$.","Returns the curve constant b.","Returns the curve constant $b$.","Performs a radix-$2$ Fast-Fourier Transformation (FFT) on …","Performs a multi-exponentiation operation.","","","","","","","This computes the inner product of two vectors a and b.","","Gets the coordinates of this point.","Cubes this element.","","","","","","Doubles this element.","","","Apply the curve endomorphism by multiplying the …","This evaluates a provided polynomial (in coefficient form) …","","","Returns the argument unchanged.","Returns the argument unchanged.","Obtains a field element that is congruent to the provided …","Obtains a field element congruent to the integer v.","Obtains a point given $(x, y)$, failing if it is not on the","Obtains a Coordinates value given $(x, y)$, failing if it …","Gets the lower 128 bits of this field element when …","Gets the lower 32 bits of this field element when expressed","Adds rhs to this group element.","Scales this group element by a scalar.","Subtracts rhs from this group element.","Returns the additive identity of the group.","Requests a hasher that accepts messages and returns …","","","Calls U::from(self).","Calls U::from(self).","Computes the multiplicative inverse of this element, …","Returns whether or not this element is on the curve; should","Returns whether or not this element is on the curve; should","Returns true iff this element is zero.","Returns true iff this element is zero.","Return the Jacobian coordinates of this point.","Divides polynomial a in X by X - b with no remainder.","Returns coefficients of an n - 1 degree polynomial given a …","Build tables given parameters for the perfect hash.","Obtains a point given Jacobian coordinates $X : Y : Z$, …","Returns the one element of the field, the multiplicative …","This simple utility function will parallelize an operation …","Exponentiates self by by, where by is a little-endian order","Raise this field element to the power Self::T_MINUS1_OVER2.","Exponentiates self by exp, where exp is a little-endian …","Returns an element chosen uniformly at random using a …","This perform recursive butterfly arithmetic","Performs a small multi-exponentiation operation. Uses the …","Returns the square root of the field element, if it is …","Equivalent to Self::sqrt_ratio(self, one()).","Same as sqrt_ratio(u, one()) but more efficient.","Computes:","Computes:","Squares this element.","","","","","","","","Returns the u-coordinate.","Returns the v-coordinate.","","","Returns the x-coordinate.","Returns the y-coordinate.","Returns the zero element of the field, the additive …","An assigned cell.","A pointer to a cell within a circuit.","A chip implements a set of instructions that can be used …","A type that holds the configuration for this chip, and any …","A layout strategy within a circuit. The layouter is …","A type that holds any general chip state that needs to be …","This is a “namespaced” layouter which borrows a …","A region of the circuit in which a Chip can assign cells.","Index of a region in a layouter","Starting row of a region in a layouter","Represents the type of the “root” of this layouter, so …","A simple FloorPlanner that performs minimal optimizations.","A lookup table in the circuit.","A value that might exist within a circuit.","","","","","","","","","","","Returns Value::unknown() if the value is Value::unknown(), …","Converts from &mut Value<V> to Value<&mut V>.","Converts from &Value<V> to Value<&V>.","Enforces an assertion on the contained value, if known.","Assign an advice column value (witness).","Assigns a constant value to the column advice at offset …","Assign the value of the instance column’s cell at …","Assigns a fixed value to a table cell.","Assign a fixed value.","Assign a region of gates to an absolute row number.","","Assign a table region to an absolute row number.","","","","","","","","","","","","","","","","","","","","Returns the cell.","","","","","","","","","","","Maps a Value<&mut V> to a Value<V> by cloning the contents …","Maps a Value<&V> to a Value<V> by cloning the contents of …","The chip holds its own configuration.","Constrains a cell to have a constant value.","Constrains two cells to have the same value.","Constrains a Cell to equal an instance column’s row …","","Maps a Value<&mut V> to a Value<V> by copying the contents …","Maps a Value<&V> to a Value<V> by copying the contents of …","Copies the value to a given advice cell and constrains …","Cubes this field element.","","","","","","","","","","","","","","","","","","","","","","Doubles this field element.","","","","","","","","","","","","Checks the contained value for an error condition, if …","Evaluates this value directly, performing an unbatched …","Evaluates this assigned cell’s value directly, …","Implementations of common circuit floor planners.","","","","","","","","","","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.","Takes each element in the Iterator: if it is …","Gets the “root” of this assignment, bypassing 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).","Calls U::from(self).","Calls U::from(self).","Returns the field element corresponding to this value.","Inverts this assigned value (taking the inverse of zero to …","Constructs a known value.","Implementations of common circuit layouters.","Provides access to general chip state loaded at the …","Maps a Value<V> to Value<W> by applying a function to the …","","","","","","","","","","","Enters into a namespace.","","Exits out of the existing namespace.","","Creates a new (sub)namespace and enters into it.","","Squares this field element.","","","","","","","","","","","","Returns the field element corresponding to this value.","","","","","","Transposes a Value<[V; LEN]> into a [Value<V>; LEN].","Transposes a Value<impl IntoIterator<Item = V>> into a …","","","","","","","","","","","","","","","","","","","","","","","","","","","","Constructs an unwitnessed value.","Unzips a value containing a tuple of two values.","Returns the value of the AssignedCell.","Returns the field element value of the AssignedCell.","","","","","","","","","","Zips self with another Value.","The version 1 FloorPlanner provided by halo2.","A single pass of the V1 layouter.","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","Concrete column","The virtual column involved in a region. This includes …","Helper trait for implementing a custom Layouter.","The shape of a region. For a region at a certain index, we …","Virtual column representing a (boolean) selector","Helper trait for implementing a custom Layouter.","Assign an advice column value (witness)","","Assigns a constant value to the column advice at offset …","","Assign the value of the instance column’s cell at …","","Assigns a fixed value to a table cell.","Assign a fixed value","","","","","","","","","","","Get a reference to the set of columns used in a RegionShape…","Constrains a cell to have a constant value.","","Constraint two cells to have the same value.","","","","","","","","Enables a selector at the given offset.","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","","","","","Calls U::from(self).","Calls U::from(self).","Create a new RegionShape for a region at region_index.","","Get the region_index of a RegionShape.","Get the row_count of a RegionShape.","","","","","","","","","","","","","A cell used in an active gate was not assigned to.","","A struct for collecting and displaying the gates within a …","Graphical renderer for circuit layouts.","A constraint was not satisfied for a particular row.","A constraint was active on an unusable row, and is likely …","The location within the circuit at which a particular …","A location inside a region.","A lookup input did not exist in its corresponding table.","A test prover for debugging circuits.","A location outside of a region.","A permutation did not preserve the original value of a …","The reasons why a particular circuit is not satisfied.","Panics if the circuit being checked by this MockProver is …","","","","","","","","","","","","","Builds a dot graph string representing the given circuit.","Collects the gates from within the circuit.","","Developer tools for investigating the cost of a circuit.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","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).","Marks cells involved in equality constraints, in red.","Metadata about circuits.","","","Prints the queries in this circuit to a CSV grid.","","Renders the given circuit on the given drawing area.","Runs a synthetic keygen-and-prove operation on the given …","Draws red lines between equality-constrained cells.","Sets the visibility of region labels.","","","","","","","","","","","","","","","","","","","Returns Ok(()) if this MockProver is satisfied, or a list …","Sets the view height for this layout, as a number of rows.","Sets the view width for this layout, as a number of …","","","","","","The offset (relative to the start of the region) at which …","The region in which the failure occurred.","The circuit row on which the failure occurred.","The values of the virtual cells used by this constraint.","The column in which this cell should be assigned.","The column in which this permutation is not satisfied.","The polynomial constraint that is not satisfied.","The polynomial constraint that is not satisfied.","The index of the active gate.","The offset (relative to the start of the region) at which …","The location at which this constraint is not satisfied.","The location at which the lookup is not satisfied.","The location at which the permutation is not satisfied.","The index of the lookup that is not satisfied. These …","The offset (relative to the start of the region) at which …","The region in which this cell should be assigned.","Measures a circuit to determine its costs, and explain …","The marginal size of a Halo 2 proof, broken down into its …","The size of a Halo 2 proof, broken down into its …","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Returns the marginal proof size per instance of this …","Measures a circuit with parameter constant k.","Returns the proof size for the given number of instances …","","","","","","","","","","","","","Metadata about a column within a circuit.","Metadata about a configured constraint within a circuit.","Metadata about a configured gate within a circuit.","Metadata about an assigned region within a circuit.","A “virtual cell” is a PLONK cell that has been queried …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","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).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","An advice column","An Advice variant","This is an advice (witness) column queried at a certain …","Query of advice column at a certain relative location","An enum over the Advice, Fixed, Instance structs","A value assigned to a cell within a circuit.","This trait allows a Circuit to direct some backend to …","A verifier that checks multiple proofs in a batch. This …","Out of bounds index passed to a backend","This is a trait that circuits provide implementations for …","A column with an index and type","The instance sets up a copy constraint involving a column …","A column type","This is a configuration object that stores things like …","This is a constant polynomial","An individual polynomial constraint.","This is a description of the circuit environment, such as …","The constraint system is not satisfied.","A set of polynomial constraints with a common selector.","This is an error that could occur during proving or …","Low-degree expression representing an identity that must …","A fixed column","A Fixed variant","This is a fixed column queried at a certain relative …","Query of fixed column at a certain relative location","A floor planning strategy for a circuit.","The floor planner used for this circuit. This is an …","An instance column","An Instance variant","This is an instance (external) column queried at a certain …","Query of instance column at a certain relative location","Instance provided exceeds number of available rows","The provided instances do not match the circuit parameters.","This is a negated polynomial","Circuit synthesis requires global constants, but circuit …","k is too small for the given circuit.","Opening error","The output type of this verification strategy after …","Represents the minimal parameters that determine a …","Minimal representation of a verification key that can be …","This is the product of two polynomials","This is a proving key which allows for the creation of …","A value stored as a fraction to enable batch inversion.","This is a scaled polynomial","A selector, representing a fixed boolean value per row of …","This is a virtual selector","A verifier that checks a single proof at a time.","This is the sum of two polynomials","This is an error that can occur during synthesis of the …","A fixed column of a lookup table.","Transcript error","A value that does not require inversion to evaluate.","Trait representing a strategy for verifying Halo 2 proofs.","This is a verifying key which allows for the verification …","Exposes the “virtual cells” that can be queried while …","The field element zero.","","","","","","","","","","Adds a proof to the batch.","Allocate a new advice column","Assign an advice column value (witness)","Assign a fixed value","Compute the number of blinding factors necessary to …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Type of this column.","Allocate a new complex selector that can appear anywhere …","The circuit is given an opportunity to describe the exact …","Assign two cells to have the same value","Creates a new gate.","This creates a proof for the provided circuit when given …","Cubes this element.","","","Compute the degree of this polynomial","Compute the degree of the constraint system (the maximum …","Returns the denominator, if non-trivial.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Doubles this element.","","","","","","","","","","","","","","","","","","","","","","","","Enable this selector at the given offset within the given …","Enables this fixed column to be used for global constant …","Enable equality on this TableColumn.","Enable the ability to enforce equality over cells in this …","Enables a selector at the given row.","Creates a new region and enters into it.","","","","","","","","","Evaluates this assigned value directly, performing an …","Evaluate the polynomial using the provided closures to …","Exits the current region.","Fills a fixed column starting from the given row with …","Finalizes the batch and checks its validity.","Allocate a new fixed column","","","","","","","","","","","","","","","","","","","","","","","","","","","","","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.","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.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Get the underlying EvaluationDomain.","Get the underlying VerifyingKey.","","","","","","","","Hashes a verification key into a transcript.","","","","","","","","","","","","","","","","","","","","","","","","Allocate a new instance column","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).","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).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","Inverts this assigned value (taking the inverse of zero to …","Is this selector “simple”? Simple selectors can only …","Returns true iff this element is zero.","Generate a ProvingKey from a VerifyingKey and an instance …","Generate a VerifyingKey from an instance of Circuit.","Add a lookup argument for some input expressions and table …","Allocates a new fixed column that can be used in a lookup …","Returns the minimum necessary rows that need to exist in …","","","","","","","","","","","","Constructs a new batch verifier.","Constructs a new single proof verifier.","Returns the numerator.","","","Obtain a pinned version of this constraint system; a …","Obtains a pinned representation of this verification key …","Exits out of the existing namespace.","Obtains an MSM from the verifier strategy and yields back …","","","Creates a new (sub)namespace and enters into it.","Query an advice column at a relative position","Query an Any column at a relative position","Query a fixed column at a relative position","Queries the cell of an instance column at a particular …","Query an instance column at a relative position","Query a selector at the current position.","Allocate a new (simple) selector. Simple selectors cannot …","Sets the minimum degree required by the circuit, which can …","","Squares this element.","Square this expression.","","","","","","","","","","Given the provided cs, synthesize the given circuit.","Given the provided cs, synthesize the circuit. The …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns a boolean indicating whether or not the proof is …","","","","","","","","","","","","","","","","","","","","","","","","Constructs a set of constraints that are controlled by the …","Returns a copy of this circuit with no witness values …","","","","","","The current value of k being used.","","","","","","","","","","","","","","The basis over which a polynomial is described.","The polynomial is defined as coefficients","This is an error that could occur during proving or …","This structure contains precomputed constants and other …","The polynomial is defined as coefficients of Lagrange …","The polynomial is defined as coefficients of Lagrange …","OpeningProof is not well-formed","Represents the minimal parameters that determine an …","Represents a univariate polynomial defined over a field …","Describes the relative rotation of a vector. Negative …","Caller needs to re-sample a point","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Obtains a polynomial in coefficient form when given a …","This takes us from an n-length coefficient vector into a …","This module contains an implementation of the polynomial …","Returns a constant polynomial in the extended Lagrange …","Returns a constant polynomial in the Lagrange coefficient …","The current location in the evaluation domain","","","","","","","","","","","","","","","","","","","This divides the polynomial (in the extended domain) by …","","","","","","","","","Returns an empty (zero) polynomial in the coefficient basis","Returns an empty (zero) polynomial in the extended …","Returns an empty (zero) polynomial in the Lagrange …","","Get the size of the extended domain","This takes us from the extended evaluation domain and gets …","","","","","","","","","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.","Get the generator of the extended domain’s …","Get $\\\\omega$, the generator of the $2^k$ order …","Get $\\\\omega^{-1}$, the inverse of the generator of the …","Gets the quotient polynomial’s degree (as a multiple of …","","","","","","","","","","","","","","","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).","Iterate over the values, which are either in coefficient …","Iterate over the values mutably, which are either in …","Computes evaluations (at the point x, where xn = x^n) of …","Obtains a polynomial in Lagrange form when given a vector …","This takes us from an n-length vector into the coefficient …","","This module contains an optimisation of the polynomial …","This constructs a new evaluation domain object based on …","The next location in the evaluation domain","Gets the size of this polynomial in terms of the number of …","Obtain a pinned version of this evaluation domain; a …","The previous location in the evaluation domain","Rotates the values in a Lagrange basis polynomial by …","Rotate the extended domain polynomial over the original …","Multiplies a value by some power of $\\\\omega$, essentially …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","An accumulator instance consisting of an evaluation claim …","Wrapper type around a blinding factor.","A guard returned by the verifier","A multiscalar multiplication in the polynomial commitment …","These are the public parameters for the polynomial …","","","","Add a value to the first entry of g_scalars.","Add another multiexp into this one","Add a vector of scalars to g_scalars. This function will …","Add to u_scalar","Add to w_scalar","Add arbitrary term (the scalar and the point)","","","","","","","","","","","","","","","","","","","","","This computes a commitment to a polynomial described by …","This commits to a polynomial using its evaluations over …","Computes G = ⟨s, params.g⟩","Create a polynomial commitment opening proof for the …","","","","","","","","","","","","","","","","","Generates an empty multiscalar multiplication struct using …","","Perform multiexp and check that it results in zero","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","The claimed output of the linear-time polycommit opening …","Getter for g generators","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","Create a new, empty MSM using the provided parameters.","Initializes parameters for the curve, given a random …","Reads params from a buffer.","Scale all scalars in the MSM by some scaling factor","","","","","","","","","","","","","","","","","","","","","A vector of challenges u_0, …, u_{k - 1} sampled by the …","Lets caller supply the challenges and obtain an MSM with …","Lets caller supply the purported G point and simply appends","Checks to see if the proof represented within transcript …","","","","","","Writes params to a buffer.","A polynomial query at a point","A polynomial query at a point","blinding factor of polynomial","","","","","","","","","Create a multi-opening proof","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","Create a new verifier query based on a commitment","Create a new verifier query based on a linear combination …","point at which polynomial is queried","coefficients of polynomial","","","","","","","","","Verify a multi-opening proof","","","We will replace BLAKE2b with an algebraic hash function in …","We will replace BLAKE2b with an algebraic hash function in …","A 255-bit challenge.","The scalar representation of a verifier challenge.","EncodedChallenge<C> defines a challenge encoding with a …","The Input type used to derive the challenge encoding. For …","Generic transcript view (from either the prover or verifier…","Transcript view from the perspective of a verifier that …","Transcript view from the perspective of a prover that has …","Cast an encoded challenge as a typed ChallengeScalar.","","","","","","","","","","","","","","","","","Writing the point to the transcript without writing it to …","","","Writing the scalar to the transcript without writing it to …","","","","","","","","","","","","","","","","","Conclude the interaction and return the output buffer …","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Get a scalar field element from an encoded challenge.","","Initialize a transcript given an input buffer.","","Initialize a transcript given an output buffer.","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Get an encoded challenge from a given input challenge.","","Read a curve point from the prover.","","Read a curve scalar from the prover.","","Squeeze an encoded verifier challenge from the transcript.","","","Squeeze a typed challenge (in the scalar field) from the …","","","","","","","","","","","","","","","","","","","","","","Write a curve point to the proof and the transcript.","","Write a scalar to the proof and the transcript.",""],"i":[0,0,0,0,0,0,0,132,132,81,132,0,0,0,81,19,0,0,0,19,19,62,132,81,0,0,19,133,19,132,81,132,81,0,0,2,10,2,10,2,2,0,2,81,3,2,2,10,2,10,3,2,10,132,0,2,10,2,10,19,19,81,2,19,133,62,62,62,62,132,2,10,2,10,3,132,81,3,3,132,0,0,10,132,3,0,19,133,3,3,0,0,3,133,10,133,10,3,2,2,10,2,10,2,10,2,2,2,10,2,2,3,0,0,0,134,0,134,0,0,0,0,37,0,0,0,26,26,26,26,26,26,26,26,26,26,26,26,26,26,28,28,28,34,28,37,38,37,38,26,44,40,41,39,31,28,34,38,26,44,40,41,39,31,28,34,38,31,26,40,41,39,31,26,40,41,39,31,26,26,134,28,28,37,38,26,26,31,26,26,26,44,40,40,41,41,39,31,28,34,38,26,44,40,41,39,31,28,34,38,26,26,44,40,41,39,31,28,34,38,38,41,26,26,31,0,26,44,40,41,39,31,28,34,38,26,26,44,40,40,41,41,39,31,28,28,34,34,38,26,37,38,26,44,40,41,39,31,28,34,38,26,44,40,41,39,31,28,34,38,26,26,26,0,134,26,26,26,26,26,26,26,26,26,26,26,37,26,37,38,37,38,26,26,26,26,26,26,26,26,26,26,26,44,26,26,40,41,39,31,26,26,26,44,40,41,39,31,28,34,38,26,44,40,41,39,31,28,34,38,26,44,40,41,39,31,28,34,38,26,26,31,31,26,44,40,41,39,31,28,34,38,26,0,0,52,52,53,52,53,52,52,53,52,53,52,53,52,53,52,53,52,52,53,52,53,52,52,52,53,53,52,53,52,53,52,53,52,56,0,0,0,56,0,45,55,45,55,45,55,46,45,55,55,56,55,56,55,56,55,56,56,55,45,55,45,55,55,56,55,56,55,56,45,55,56,55,56,55,56,56,56,56,55,56,55,56,55,56,55,55,55,56,55,56,55,56,55,56,55,56,135,136,66,0,0,0,66,66,0,65,66,0,65,66,0,61,61,61,65,66,63,64,61,65,66,63,64,61,0,63,61,0,64,65,66,63,64,61,65,66,63,64,61,65,66,63,64,61,61,61,65,66,61,61,65,65,66,66,63,63,64,61,65,66,63,64,61,65,66,63,64,61,65,66,63,64,61,64,0,61,61,63,61,64,61,64,64,65,66,63,65,66,63,64,61,65,66,63,64,61,65,66,63,64,61,61,64,64,65,66,63,64,61,137,137,138,139,140,141,139,142,140,140,139,143,141,143,140,140,0,0,0,72,73,74,72,73,74,72,73,74,72,73,74,72,73,74,72,73,74,72,73,74,72,73,74,72,73,74,72,72,72,72,73,74,72,73,74,72,73,74,72,73,74,0,0,0,0,0,75,77,78,79,76,75,77,78,79,76,75,76,75,76,75,77,75,77,78,79,76,75,77,78,79,76,75,77,78,79,76,75,77,78,79,76,75,75,77,77,78,78,79,79,76,76,75,75,75,77,77,77,78,78,79,79,76,76,76,75,77,78,79,76,75,77,78,79,76,75,77,75,76,75,77,78,79,76,75,77,78,79,76,75,77,78,79,76,75,77,78,79,76,75,77,78,79,76,0,60,80,0,0,0,0,0,32,0,0,32,0,71,80,0,0,32,0,0,0,0,60,80,0,0,71,0,60,80,0,32,32,80,32,32,32,108,0,0,80,0,25,80,0,80,0,80,32,0,32,25,0,0,0,25,25,25,25,25,25,25,80,25,25,82,84,51,51,84,25,30,29,36,33,60,59,86,87,88,35,80,95,96,84,97,98,32,82,99,89,100,90,25,30,29,36,33,60,59,86,87,88,35,80,95,96,84,97,98,32,82,99,89,100,90,25,30,29,36,33,60,59,86,87,88,35,80,84,89,90,25,30,29,36,33,60,59,86,87,88,35,80,84,89,90,30,60,30,84,71,51,84,0,25,84,82,80,84,25,25,30,29,36,33,60,59,86,87,88,35,80,95,96,84,97,98,32,82,99,89,100,90,25,30,29,36,33,60,59,86,87,88,35,80,95,96,84,97,98,32,82,99,89,100,90,25,25,30,29,36,33,60,59,86,87,88,35,80,95,96,84,97,98,32,82,99,89,100,90,59,84,35,84,51,51,25,30,29,36,33,60,59,35,25,80,51,51,82,84,25,30,29,36,33,60,59,86,87,88,35,80,95,96,84,97,98,32,32,82,99,89,100,90,25,25,25,25,25,30,30,30,30,29,36,33,60,60,60,60,59,86,87,88,35,80,95,95,95,96,84,97,98,32,32,82,99,89,100,90,89,90,30,29,36,33,60,59,35,89,25,30,29,36,33,60,59,86,87,88,35,80,95,96,84,97,98,32,82,99,89,100,90,84,25,30,29,36,33,60,59,86,87,88,35,80,95,96,84,97,98,32,82,99,89,100,90,96,25,59,25,0,0,84,84,84,25,25,25,25,80,80,25,25,25,25,80,82,99,25,30,60,84,89,51,108,99,32,51,98,98,98,51,98,98,84,84,32,25,80,25,25,25,25,25,25,80,25,25,144,71,25,30,29,36,33,60,59,86,87,88,35,80,84,89,90,32,25,30,30,30,30,29,36,33,60,59,86,87,88,35,80,95,96,84,97,98,32,82,99,89,100,90,25,30,29,36,33,60,59,86,87,88,35,80,95,96,84,97,98,32,82,99,89,100,90,25,30,29,36,33,60,59,86,87,88,35,80,95,96,84,97,98,32,82,99,89,100,90,0,25,30,29,36,33,60,59,86,87,88,35,80,95,96,84,97,98,32,82,99,89,100,90,96,71,145,146,146,147,148,149,150,151,152,153,154,155,156,157,158,156,157,158,106,0,0,0,0,0,0,115,0,0,0,115,110,102,114,115,111,112,113,110,106,102,114,115,111,112,113,110,106,102,111,112,113,110,106,102,111,112,113,110,106,102,102,0,102,102,106,102,114,115,111,112,113,110,110,106,102,114,115,111,112,113,110,110,106,102,102,114,115,111,112,113,110,106,102,102,102,106,102,102,102,114,115,111,112,113,110,106,102,114,115,111,112,113,110,106,102,102,102,102,110,110,110,110,110,110,102,114,115,111,112,113,110,106,102,114,115,111,112,113,110,106,110,110,102,102,102,110,0,102,106,110,102,106,110,102,102,102,111,112,113,110,106,102,114,115,111,112,113,110,106,102,114,115,111,112,113,110,106,102,114,115,111,112,113,110,106,102,114,115,111,112,113,110,106,119,0,0,0,0,0,119,119,119,120,120,120,120,120,120,120,122,123,91,119,120,122,123,91,119,120,122,123,91,119,120,122,123,91,119,91,91,122,0,119,120,122,123,91,119,120,122,123,91,119,120,122,123,91,119,91,119,120,120,122,123,91,119,120,122,123,91,119,123,91,120,122,123,91,119,120,122,123,91,119,119,119,119,120,91,91,120,120,122,123,91,119,120,122,123,91,119,120,122,123,91,119,120,122,123,91,119,123,122,122,0,120,122,123,91,119,91,0,0,124,124,125,124,125,124,125,124,125,0,124,125,124,125,124,125,124,125,124,125,124,125,124,125,125,125,124,124,124,125,124,125,124,125,124,125,0,124,125,0,0,0,0,0,121,0,0,0,121,128,130,126,131,128,130,126,131,128,130,126,131,128,130,126,131,159,128,130,159,128,130,128,130,126,126,131,131,128,130,126,131,128,130,126,131,130,128,130,126,131,128,130,126,131,121,131,128,128,130,130,126,131,128,130,126,131,121,131,160,128,160,128,159,128,130,159,128,130,126,131,126,128,130,126,131,128,130,126,131,128,130,126,131,128,130,126,131,161,130,161,130],"f":[0,0,0,0,0,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,2],[[]],[[],3],[[2,2,4],2],[[],[[5,[2]]]],[[]],[[],2],[6],[6],[6],[6],[[]],[6],[6],[[]],[3,3],[[2,7],[[9,[8]]]],[[10,7],[[9,[8]]]],[[]],[[]],[[]],[11],[[],5],[[],[[5,[2]]]],[[],11],[[],1],[[]],[[]],[[]],[[]],[12,[[15,[13,14]]]],[[],6],[[],6],[[]],[[]],[[],5],[[],4],[[],4],[[],4],[[],16],[[]],[[17,3],[[18,[3]]]],[[],[[18,[19]]]],[[1,6],10],[[],5],[[]],[[[0,[13,20,21,22]]]],[[]],[[]],[[]],[23],[[6,6]],[[]],[[],5],[[]],[10],[[]],[10],[[]],[[]],[[],9],[[],9],[[],9],[[],9],[[],24],[[],24],[2],[2],[[]],[[]],[2],[2],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[26,[25]],[26,[3]]]],[[26,26]],[[[26,[25]],3]],[[26,26]],[[26,26]],[[[26,[[25,[3]]]],3]],[[[26,[[25,[3]]]],[26,[3]]]],[[26,26]],[[26,26]],[[26,26]],[[26,27],26],[26,26],[26,26],[[26,27]],[[[28,[3]],[30,[29]],6],[[9,[[31,[3]],32]]]],[[[28,[3]],[30,[29]],6],[[9,[[31,[3]],32]]]],[[[28,[3]],[30,[33]],6,[30,[29]],6],[[9,[[31,[3,3]],32]]]],[[[34,[3]],35,6],[[9,[32]]]],[[[28,[3]],[30,[36]],6],[[9,[[31,[3]],32]]]],[[],[[9,[32]]]],[[[38,[3,[37,[3]]]]],[[9,[32]]]],[[],[[9,[32]]]],[[[38,[3,[37,[3]]]]],[[9,[32]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[31,[3]]],39],[[[26,[22]]],[[26,[22]]]],[40,40],[41,41],[39,39],[[[31,[22,[0,[22,3]]]]],[[31,[22,[0,[22,3]]]]]],[[]],[[]],[[]],[[]],[[]],[26,26],[26,26],[[]],[[[28,[3]],39],[[9,[32]]]],[[[28,[3]],39,39],[[9,[32]]]],[[39,[30,[33]],6],[[9,[32]]]],[[[38,[3,[37,[3]]]],39,[30,[33]],6],[[9,[32]]]],[26,26],[26,26],[[[31,[22,3]],28,[30,[29]],6],[[9,[[31,[22,3]],32]]]],[26,[[26,[[25,[3]]]]]],[[],26],[6],[6],[6],[40],[6],[41],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[26,[[26,[[25,[3]]]]]],[6],[6],[6],[6],[6],[6],[6],[6],[[[38,[3,[37,[3]]]]]],[6],[[41,41],16],[[26,27],[[9,[32]]]],[[[26,[[25,[3]]]]],[[26,[3]]]],[[[31,[[25,[3]],3]]],[[31,[3,3]]]],0,[[[26,[42]],7],43],[[44,7],43],[[40,7],43],[[41,7],43],[[39,7],43],[[[31,[42,[0,[42,3]]]],7],43],[[[28,[[0,[42,3]]]],7],43],[[[34,[[0,[42,3]]]],7],43],[[[38,[[0,[42,3]],[0,[42,[37,[[0,[42,3]]]]]]]],7],43],[[]],[[[26,[3]]],[[26,[[25,[3]]]]]],[[]],[6,40],[[]],[6,41],[[]],[[]],[[]],[45,[[28,[3]]]],[[]],[46,[[34,[3]]]],[[]],[[]],[17,[[26,[47]]]],[[]],[[[38,[3,[37,[3]]]]]],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[26,[[26,[[25,[3]]]]]],[26,[[26,[[25,[3]]]]]],[[],26],0,[[]],[[26,27],26],[[26,26]],[[26,26]],[[26,26]],[[[26,[25]],[26,[3]]]],[[[26,[25]],3]],[[26,26]],[[26,26]],[[26,26]],[[[26,[[25,[3]]]],[26,[3]]]],[[[26,[[25,[3]]]],3]],[[],38],[[[26,[48]]]],[[[50,[49]]]],[[[38,[3,[37,[3]]]],[50,[49]]]],[[]],[[[38,[3,[37,[3]]]]]],[26,[[26,[[25,[3]]]]]],[[[26,[[25,[3]]]],3]],[[[26,[25]],[26,[3]]]],[[[26,[[25,[3]]]],[26,[3]]]],[[[26,[25]],3]],[[26,26]],[[26,26]],[[26,26]],[[26,26]],[[26,26]],[[26,26]],[[[18,[[30,[36]]]]],[[9,[32]]]],[26,[[26,[[25,[3]]]]]],[[]],[[]],[[]],[[]],[[]],[26],[[26,6],[[18,[26]]]],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],26],[26],[[[31,[3]]],26],[[[31,[3]]],[[26,[[25,[3]]]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[26,26],26],0,0,[[[52,[3,[51,[3]]]]],[[9,[32]]]],[[[52,[3,[51,[3]]]]],[[9,[32]]]],[[]],[[]],[[]],[[]],[[[52,[3,[51,[3]]]],39,[30,[33]],6],[[9,[32]]]],[6],[6],[6],[6],[6],[6],[[53,7],43],[[[52,[[0,[42,3]],[0,[42,[51,[[0,[42,3]]]]]]]],7],43],[[]],[[]],[[[52,[3,[51,[3]]]]]],[[],6],[[],6],[[]],[[]],[[[52,[3,[51,[3]]]],[50,[49]]]],[[[52,[3,[51,[3]]]]]],[[[18,[[30,[36]]]]],[[9,[32]]]],[[],9],[[],9],[[],9],[[],9],[[],24],[[],24],[[]],[[]],0,0,0,0,0,0,[[13,[30,[29]],6,54],[[9,[39,32]]]],[[55,13,[30,[29]],6,54],[[9,[39,32]]]],[[13,[30,[29]],6,25],[[9,[39,32]]]],[[55,13,[30,[29]],6,[25,[3]]],[[9,[39,32]]]],[[13,[30,[33]],6,[30,[29]],6],[[9,[32]]]],[[55,13,[30,[33]],6,[30,[29]],6],[[9,[32]]]],[[13,35,6,54],[[9,[32]]]],[[13,[30,[36]],6,54],[[9,[39,32]]]],[[55,13,[30,[36]],6,54],[[9,[39,32]]]],[[]],[[]],[[]],[[]],[55,55],[56,56],[[]],[[]],[[56,56],57],[55,58],[[39,25],[[9,[32]]]],[[55,39,[25,[3]]],[[9,[32]]]],[[39,39],[[9,[32]]]],[[55,39,39],[[9,[32]]]],[6],[6],[6],[6],[6],[6],[[13,59,6],[[9,[32]]]],[[55,13,59,6],[[9,[32]]]],[[56,56],16],[[55,7],43],[[56,7],43],[[]],[59,56],[[]],[[[30,[60]]],56],[56],[[],6],[[],6],[[]],[[]],[40,55],[[56,56],[[50,[57]]]],[55,40],[55,6],[[]],[[]],[[],9],[[],9],[[],9],[[],9],[[],24],[[],24],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[61,[19]]]],[[[61,[[0,[3,62]]]],[30,[29]],6],[[9,[32]]]],[[[61,[[0,[3,62]]]],[30,[36]],6],[[9,[32]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],49],[[],63],[[[61,[[0,[3,62]]]],[30,[60]],6,[30,[60]],6],[[9,[32]]]],0,[[],64],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[[[61,[[0,[3,62]]]],59,6],[[9,[32]]]],[[[61,[[0,[3,62]]]]]],[[65,65],16],[[66,66],16],[[[61,[[0,[3,62]]]]]],[[[61,[[0,[3,62]]]],[30,[36]],6,[26,[[25,[[0,[3,62]]]]]]],[[9,[32]]]],[[65,7],43],[[65,7],43],[[66,7],43],[[66,7],43],[[63,7],43],[[63,7],[[9,[8]]]],[[64,7],43],[[[61,[[0,[42,62,3]]]],7],43],[[]],[[]],[[]],[[]],[[]],[[],6],[[],6],[[],6],[[],6],[[],6],[[]],[[]],[[]],[[]],[[]],[[64,16],64],0,[[[61,[[0,[3,62]]]],[50,[49]]]],[[[61,[[0,[3,62]]]]]],[63,49],[[[61,[[0,[3,62]]]],[30,[33]],6],[[9,[[26,[[0,[3,62]]]],32]]]],[[64,1,67],[[9,[68]]]],[[1,[18,[[18,[19]]]]],[[9,[[61,[19]],32]]]],[[64,16],64],[[64,16],64],[[],49],[[],49],[[],49],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],24],[[],24],[[],24],[[],24],[[],24],[[[61,[19]]],[[9,[[18,[66]]]]]],[[64,[69,[6]]],64],[[64,[69,[6]]],64],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[6],[6],[6],[6],[6],[6],[6],[6],[6],[[[72,[[0,[42,70]],[0,[42,71]]]],7],43],[[[73,[[0,[42,70]]]],7],43],[[[74,[[0,[42,70]]]],7],43],[[]],[[]],[[]],[[],6],[[],6],[[],6],[[]],[[]],[[]],[[[72,[70,71]]],[[73,[70]]]],[6,[[72,[70,71]]]],[[[72,[70,71]],6],[[74,[70]]]],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],24],[[],24],[[],24],[[]],[[]],[[]],0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[75,75],[76,76],[[]],[[]],[[75,75],57],[[77,77],57],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[[75,75],16],[[77,77],16],[[78,78],16],[[79,79],16],[[76,76],16],[[75,7],43],[[75,7],43],[[77,7],43],[[77,7],43],[[78,7],43],[[78,7],43],[[79,7],43],[[79,7],43],[[76,7],43],[[76,7],43],[[]],[[],75],[[[30,[60]]],75],[[]],[[],77],[[],77],[[],78],[[]],[[]],[[],79],[[],76],[[],76],[[]],[[],6],[[],6],[[],6],[[],6],[[],6],[[]],[[]],[[]],[[]],[[]],[[75,75],[[50,[57]]]],[[77,77],[[50,[57]]]],[[]],[[]],[[],49],[[],49],[[],49],[[],49],[[],49],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],24],[[],24],[[],24],[[],24],[[],24],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[25,3],[[25,[3]]]],[[25,[25,[3]]],[[25,[3]]]],[[25,25],[[25,[3]]]],[[[25,[3]],[25,[3]]],[[25,[3]]]],[[[25,[3]],[25,[3]]],[[25,[3]]]],[[[25,[3]],3],[[25,[3]]]],[[[80,[3]],[80,[3]]],[[80,[3]]]],[[[25,[3]],[25,[3]]]],[[[25,[3]],[25,[3]]]],[[[82,[81]],[18,[[18,[18]]]],[18,[83]]]],[[[84,[3]]],[[30,[29]]]],[[[30,[29]],6],[[9,[32]]]],[[[30,[36]],6],[[9,[32]]]],[[[84,[3]]],6],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[25,[22]]],[[25,[22]]]],[[[30,[[0,[22,85]]]]],[[30,[[0,[22,85]]]]]],[29,29],[36,36],[33,33],[60,60],[59,59],[86,86],[87,87],[88,88],[35,35],[[[80,[22]]],[[80,[22]]]],[[[84,[[0,[22,3]]]]],[[84,[[0,[22,3]]]]]],[[[89,[[0,[22,81]]]]],[[89,[[0,[22,81]]]]]],[[[90,[[0,[22,81]]]]],[[90,[[0,[22,81]]]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[30,[85]],[30,[85]]],57],[[60,60],57],[[[30,[85]]]],[[[84,[3]]],59],[84],[[[30,[60]],6,[30,[60]],6],[[9,[32]]]],[[[84,[3]],12,27]],[[91,90,23],[[9,[32]]]],[[[25,[3]]],[[25,[3]]]],[[],[[84,[3]]]],[[],[[82,[[0,[92,81]]]]]],[[[80,[3]]],6],[[[84,[3]]],6],[[[25,[3]]],[[50,[3]]]],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[[[25,[3]]],[[25,[3]]]],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[[59,28,6],[[9,[32]]]],[[[84,[3]],[30,[36]]]],[[35,84]],[[[84,[3]],[93,[[30,[60]]]]]],[[59,6],[[9,[32]]]],[[]],[[[25,[3]],[25,[3]]],16],[[[30,[[0,[94,85]]]],30],16],[[29,29],16],[[36,36],16],[[33,33],16],[[60,60],16],[[59,59],16],[[35,35],16],[[[25,[3]]],3],[[[80,[3]]]],[[]],[[[30,[36]],6,[26,[25]]],[[9,[32]]]],[[[82,[81]],91,89],16],[[[84,[3]]],[[30,[36]]]],[[[25,[42]],7],43],[[[30,[[0,[42,85]]]],7],43],[[29,7],43],[[36,7],43],[[33,7],43],[[60,7],43],[[59,7],43],[[86,7],43],[[87,7],43],[[88,7],43],[[35,7],43],[[[80,[42]],7],43],[[[95,[[0,[42,3]]]],7],43],[[[96,[[0,[42,3]],[0,[42,[93,[[95,[[0,[42,3]]]]]]]],[0,[42,17]]]],7],43],[[[84,[[0,[42,3]]]],7],43],[[[97,[[0,[42,3]]]],7],43],[[[98,[[0,[42,3]]]],7],43],[[32,7],43],[[32,7],43],[[[82,[[0,[42,81]]]],7],43],[[[99,[[0,[42,81]]]],7],43],[[[89,[[0,[42,81]]]],7],43],[[[100,[[0,[42,81]]]],7],43],[[[90,[[0,[42,81]]]],7],43],[[],[[25,[3]]]],[3,[[25,[3]]]],[[],[[25,[3]]]],[25,[[25,[3]]]],[[]],[[]],[[[30,[33]]],[[30,[60]]]],[[[30,[36]]],[[30,[60]]]],[[[30,[29]]],[[30,[60]]]],[[]],[[]],[[]],[36,60],[33,60],[[]],[29,60],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],[[95,[3]]]],[[[80,[3]]],[[95,[3]]]],[[]],[[]],[[]],[[]],[[]],[101,32],[[]],[[]],[[]],[[]],[[]],[[[89,[81]]],102],[[[90,[81]]],89],[[[30,[[0,[103,85]]]]]],[29],[36],[33],[60],[59],[35],[[[89,[81]]],104],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[[84,[3]]],[[30,[33]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[96,[3,[93,[[95,[3]]]],17]]]],[[[25,[3]]],[[25,[3]]]],[59,16],[[[25,[3]]],16],[[91,89],[[9,[90,32]]]],[91,[[9,[89,32]]]],[[[84,[3]],27],6],[[[84,[3]]],35],[[[84,[3]]],6],[[25,3],[[25,[3]]]],[[[25,[3]],25],[[25,[3]]]],[[[25,[3]],3],[[25,[3]]]],[[[25,[3]],[25,[3]]],[[25,[3]]]],[[[80,[3]],3],[[80,[3]]]],[[[80,[3]],[80,[3]]],[[80,[3]]]],[[[25,[3]],[25,[3]]]],[[[25,[3]],[25,[3]]]],[25],[[[25,[3]]]],[[[80,[3]]]],[[],[[82,[81]]]],[91,[[99,[81]]]],[[[25,[3]]],3],[[[30,[85]],[30,[85]]],[[50,[57]]]],[[60,60],[[50,[57]]]],[[[84,[3]]],[[97,[3]]]],[[[89,[81]]],[[100,[81]]]],[[[50,[49]]]],[27,[[9,[32]]]],[[[99,[81]],27],[[9,[32]]]],[105],[[]],[[[98,[3]],[30,[29]],106],[[80,[3]]]],[[[98,[3]],[93,[[30,[60]]]],106],[[80,[3]]]],[[[98,[3]],[30,[36]],106],[[80,[3]]]],[[[30,[33]],6],[[9,[26,32]]]],[[[98,[3]],[30,[33]],106],[[80,[3]]]],[[[98,[3]],59],[[80,[3]]]],[[[84,[3]]],59],[[[84,[3]],6]],[32,[[50,[107]]]],[[[25,[3]]],[[25,[3]]]],[[[80,[3]]],[[80,[3]]]],[[25,[25,[3]]],[[25,[3]]]],[[[25,[3]],3],[[25,[3]]]],[[25,25],[[25,[3]]]],[[[25,[3]],[25,[3]]],[[25,[3]]]],[[25,3],[[25,[3]]]],[[[25,[3]],[25,[3]]],[[25,[3]]]],[[[80,[3]],[80,[3]]],[[80,[3]]]],[[[25,[3]],[25,[3]]]],[[[25,[3]],[25,[3]]]],[[[18,[[30,[36]]]]],[[9,[32]]]],[37,[[9,[32]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],49],[[],9],[[[30,[60]]],[[9,[[30,[36]]]]]],[[],9],[[[30,[60]]],[[9,[[30,[33]]]]]],[[[30,[60]]],[[9,[[30,[29]]]]]],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[91,89,[108,[81]]],[[9,[32]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[80,[3]],17],[[96,[3,[93,[[95,[3]]]],17]]]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[110,[3,109]],110],[[110,[3,109]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[102,[[0,[22,62]]]]],[[102,[[0,[22,62]]]]]],[111,111],[112,112],[113,113],[[[110,[22,22]]],[[110,[22,22]]]],[106,106],[[]],[[]],[[]],[[]],[[]],[[]],[[[102,[62]],[18,[62]]],[[110,[62,111]]]],[[[102,[62]],[110,[62,111]]],[[110,[62,113]]]],0,[[[102,[62]],62],[[110,[62,113]]]],[[[102,[62]],62],[[110,[62,112]]]],[[],106],[6],[6],[6],[6],[6],[6],[110],[6],[6],[6],[6],[6],[6],[6],[6],[6],[110],[6],[[[102,[62]],[110,[62,113]]],[[110,[62,113]]]],[6],[6],[6],[6],[6],[6],[6],[6],[[[102,[62]]],[[110,[62,111]]]],[[[102,[62]]],[[110,[62,113]]]],[[[102,[62]]],[[110,[62,112]]]],[[106,106],16],[[[102,[62]]],6],[[[102,[62]],[110,[62,113]]],[[18,[62]]]],[[[102,[[0,[42,62]]]],7],43],[[[114,[[0,[42,62]]]],7],43],[[115,7],43],[[111,7],43],[[112,7],43],[[113,7],43],[[[110,[42,42]],7],43],[[106,7],43],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[102,[62]]]],[[[102,[62]]]],[[[102,[62]]]],[[[102,[62]]],6],[[110,116]],[[110,6]],[[110,[117,[6]]]],[[110,[117,[6]]]],[[110,116]],[[110,6]],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[110,118],[110,118],[[[102,[62]],[0,[17,22]]],18],[[[102,[62]],[18,[62]]],[[110,[62,112]]]],[[[102,[62]],[110,[62,112]]],[[110,[62,111]]]],[[[110,[3,109]],3],[[110,[3,109]]]],0,[[1,1],[[102,[62]]]],[[],106],[110,6],[[[102,[62]]],[[114,[62]]]],[[],106],[[[110,[3,112]],106],[[110,[3,112]]]],[[[102,[62]],110,106],[[110,[62,113]]]],[[[102,[62]],106]],[[]],[[]],[[]],[[]],[[]],[[]],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,[[[119,[19]],[119,[19]]],[[119,[19]]]],[[[119,[19]],19]],[[[119,[19]],[119,[19]]]],[[[120,[81]]]],[[[120,[81]],[120,[81]]]],[[[120,[81]]]],[[[120,[81]]]],[[[120,[81]]]],[[[120,[81]],81]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[120,[[0,[22,81]]]]],[[120,[[0,[22,81]]]]]],[[[122,[[0,[22,81]],[0,[22,[121,[[0,[22,81]]]]]]]]],[[122,[[0,[22,81]],[0,[22,[121,[[0,[22,81]]]]]]]]]],[[[123,[[0,[22,81]],[0,[22,[121,[[0,[22,81]]]]]]]]],[[123,[[0,[22,81]],[0,[22,[121,[[0,[22,81]]]]]]]]]],[[[91,[[0,[22,81]]]]],[[91,[[0,[22,81]]]]]],[[[119,[22]]],[[119,[22]]]],[[]],[[]],[[]],[[]],[[]],[[[91,[81]],110,119]],[[[91,[81]],110,119]],[[[122,[81,[121,[81]]]]],81],[[91,23,110,119],104],[[],[[119,[19]]]],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[6],[[[91,[81]]],[[120,[81]]]],[[[119,[94]],119],16],[[[120,[81]]],16],[[[120,[[0,[42,81]]]],7],43],[[[122,[[0,[42,81]],[0,[42,[121,[[0,[42,81]]]]]]]],7],43],[[[123,[[0,[42,81]],[0,[42,[121,[[0,[42,81]]]]]]]],7],43],[[[91,[[0,[42,81]]]],7],43],[[[119,[42]],7],43],[[]],[[]],[[]],[[]],[[]],0,[[[91,[81]]],[[18,[81]]]],[[],6],[[],6],[[],6],[[],6],[[],6],[[]],[[]],[[]],[[]],[[]],[[[119,[19]],[119,[19]]],[[119,[19]]]],[[[119,[19]],[119,[19]]]],[[[119,[19]],19]],[91,[[120,[81]]]],[1,[[91,[81]]]],[[],[[104,[[91,[81]]]]]],[[[120,[81]]]],[[]],[[]],[[]],[[]],[[]],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],24],[[],24],[[],24],[[],24],[[],24],0,[[[122,[81,[121,[81]]]]],[[120,[81]]]],[[[122,[81,[121,[81]]]],81]],[[91,[120,[81]]],[[9,[[122,[81,[121,[81]]]],115]]]],[[]],[[]],[[]],[[]],[[]],[[[91,[81]]],104],0,0,0,[[]],[[]],[[]],[[]],[[[124,[[0,[22,81]]]]],[[124,[[0,[22,81]]]]]],[[[125,[[0,[22,81]]]]],[[125,[[0,[22,81]]]]]],[[]],[[]],[[91,23],104],[6],[6],[6],[6],[6],[6],[[[124,[[0,[42,81]]]],7],43],[[[125,[[0,[42,81]]]],7],43],[[]],[[]],[[],6],[[],6],[[]],[[]],[[],[[125,[81]]]],[120,[[125,[81]]]],0,0,[[]],[[]],[[],9],[[],9],[[],9],[[],9],[[],24],[[],24],[[91,[120,[81]]],[[9,[[122,[81,[121,[81]]]],115]]]],[[]],[[]],0,0,0,0,0,0,0,0,0,[[],126],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[128,[[0,[22,127]],[0,[22,81]],[0,[22,[121,[[0,[22,81]]]]]]]]],[[128,[[0,[22,127]],[0,[22,81]],[0,[22,[121,[[0,[22,81]]]]]]]]]],[[[130,[[0,[22,129]],[0,[22,81]],[0,[22,[121,[[0,[22,81]]]]]]]]],[[130,[[0,[22,129]],[0,[22,81]],[0,[22,[121,[[0,[22,81]]]]]]]]]],[[[126,[[0,[22,81]],22]]],[[126,[[0,[22,81]],22]]]],[[[131,[[0,[22,81]]]]],[[131,[[0,[22,81]]]]]],[[]],[[]],[[]],[[]],[[],104],[[[128,[127,81,[131,[81]]]],81],104],[[[130,[129,81,[131,[81]]]],81],104],[[],104],[[[128,[127,81,[131,[81]]]]],104],[[[130,[129,81,[131,[81]]]]],104],[6],[6],[[[126,[81]]]],[6],[[[131,[81]]]],[6],[6],[6],[6],[6],[6],[6],[6],[6],[[[130,[129,81,[121,[81]]]]],129],[[[128,[[0,[42,127]],[0,[42,81]],[0,[42,[121,[[0,[42,81]]]]]]]],7],43],[[[130,[[0,[42,129]],[0,[42,81]],[0,[42,[121,[[0,[42,81]]]]]]]],7],43],[[[126,[[0,[42,81]],42]],7],43],[[[131,[[0,[42,81]]]],7],43],[[]],[[]],[[]],[[]],[[]],[[[131,[81]]]],[127,[[128,[127,81,[121,[81]]]]]],[[],6],[129,[[130,[129,81,[121,[81]]]]]],[[],6],[[],6],[[],6],[[]],[[]],[[]],[[]],[[]],[[],[[131,[81]]]],[[],104],[[[128,[127,81,[131,[81]]]]],[[104,[81]]]],[[],104],[[[128,[127,81,[131,[81]]]]],104],[[]],[[[128,[127,81,[131,[81]]]]],[[131,[81]]]],[[[130,[129,81,[131,[81]]]]],[[131,[81]]]],[[],126],[[]],[[]],[[]],[[]],[[]],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],24],[[],24],[[],24],[[],24],[[]],[[]],[[]],[[]],[[],104],[[[130,[129,81,[131,[81]]]],81],104],[[],104],[[[130,[129,81,[131,[81]]]]],104]],"p":[[15,"u32"],[3,"Coordinates"],[8,"Field"],[3,"Choice"],[3,"CtOption"],[15,"usize"],[3,"Formatter"],[3,"Error"],[4,"Result"],[3,"SqrtTables"],[15,"u128"],[15,"str"],[8,"Fn"],[3,"Global"],[3,"Box"],[15,"bool"],[8,"IntoIterator"],[3,"Vec"],[8,"FieldExt"],[8,"Send"],[8,"Sync"],[8,"Clone"],[8,"RngCore"],[3,"TypeId"],[4,"Assigned"],[3,"Value"],[8,"FnOnce"],[3,"Region"],[3,"Advice"],[3,"Column"],[3,"AssignedCell"],[4,"Error"],[3,"Instance"],[3,"Table"],[3,"TableColumn"],[3,"Fixed"],[8,"Layouter"],[3,"NamespacedLayouter"],[3,"Cell"],[3,"RegionIndex"],[3,"RegionStart"],[8,"Debug"],[6,"Result"],[3,"SimpleFloorPlanner"],[8,"RegionLayouter"],[8,"TableLayouter"],[8,"FromIterator"],[8,"Neg"],[3,"String"],[4,"Option"],[8,"Assignment"],[3,"V1Pass"],[3,"V1"],[8,"FnMut"],[3,"RegionShape"],[4,"RegionColumn"],[4,"Ordering"],[3,"HashSet"],[3,"Selector"],[4,"Any"],[3,"MockProver"],[8,"Group"],[3,"CircuitGates"],[3,"CircuitLayout"],[4,"FailureLocation"],[4,"VerifyFailure"],[3,"DrawingArea"],[4,"DrawingAreaErrorKind"],[3,"Range"],[8,"PrimeGroup"],[8,"Circuit"],[3,"CircuitCost"],[3,"MarginalProofSize"],[3,"ProofSize"],[3,"Column"],[3,"Region"],[3,"VirtualCell"],[3,"Gate"],[3,"Constraint"],[4,"Expression"],[8,"CurveAffine"],[3,"BatchVerifier"],[15,"u8"],[3,"ConstraintSystem"],[8,"ColumnType"],[3,"FixedQuery"],[3,"AdviceQuery"],[3,"InstanceQuery"],[3,"VerifyingKey"],[3,"ProvingKey"],[3,"Params"],[8,"Default"],[8,"Into"],[8,"PartialEq"],[3,"Constraint"],[3,"Constraints"],[3,"PinnedConstraintSystem"],[3,"VirtualCells"],[3,"SingleVerifier"],[3,"PinnedVerificationKey"],[3,"Error"],[3,"EvaluationDomain"],[8,"Hash"],[6,"Result"],[3,"Demand"],[3,"Rotation"],[8,"Error"],[8,"VerificationStrategy"],[8,"Basis"],[3,"Polynomial"],[3,"Coeff"],[3,"LagrangeCoeff"],[3,"ExtendedLagrangeCoeff"],[3,"PinnedEvaluationDomain"],[4,"Error"],[3,"RangeFull"],[3,"RangeFrom"],[8,"Iterator"],[3,"Blind"],[3,"MSM"],[8,"EncodedChallenge"],[3,"Guard"],[3,"Accumulator"],[3,"ProverQuery"],[3,"VerifierQuery"],[3,"ChallengeScalar"],[8,"Read"],[3,"Blake2bRead"],[8,"Write"],[3,"Blake2bWrite"],[3,"Challenge255"],[8,"CurveExt"],[8,"SqrtRatio"],[8,"Chip"],[13,"Column"],[13,"Selector"],[13,"InRegion"],[13,"OutsideRegion"],[13,"ConstraintNotSatisfied"],[13,"CellNotAssigned"],[13,"Permutation"],[13,"ConstraintPoisoned"],[13,"Lookup"],[8,"FloorPlanner"],[13,"Trivial"],[13,"Rational"],[13,"Transcript"],[13,"ColumnNotInPermutation"],[13,"NotEnoughRowsAvailable"],[13,"Constant"],[13,"Selector"],[13,"Fixed"],[13,"Advice"],[13,"Instance"],[13,"Negated"],[13,"Sum"],[13,"Product"],[13,"Scaled"],[8,"Transcript"],[8,"TranscriptRead"],[8,"TranscriptWrite"]]}\ }'); if (typeof window !== 'undefined' && window.initSearch) {window.initSearch(searchIndex)}; if (typeof exports !== 'undefined') {exports.searchIndex = searchIndex}; diff --git a/rustdoc/latest/src/halo2_proofs/plonk/circuit.rs.html b/rustdoc/latest/src/halo2_proofs/plonk/circuit.rs.html index 3be6fb9f..a29b5466 100644 --- a/rustdoc/latest/src/halo2_proofs/plonk/circuit.rs.html +++ b/rustdoc/latest/src/halo2_proofs/plonk/circuit.rs.html @@ -1545,6 +1545,11 @@ 1530 1531 1532 +1533 +1534 +1535 +1536 +1537
use core::cmp::max;
 use core::ops::{Add, Mul};
 use ff::Field;
@@ -1875,6 +1880,11 @@
     pub(crate) fn inner(&self) -> Column<Fixed> {
         self.inner
     }
+
+    /// Enable equality on this TableColumn.
+    pub fn enable_equality<F: Field>(&self, meta: &mut ConstraintSystem<F>) {
+        meta.enable_equality(self.inner)
+    }
 }
 
 /// This trait allows a [`Circuit`] to direct some backend to assign a witness
diff --git a/rustdoc/latest/src/halo2_proofs/plonk/prover.rs.html b/rustdoc/latest/src/halo2_proofs/plonk/prover.rs.html
index b9634a47..7d76ed66 100644
--- a/rustdoc/latest/src/halo2_proofs/plonk/prover.rs.html
+++ b/rustdoc/latest/src/halo2_proofs/plonk/prover.rs.html
@@ -735,6 +735,71 @@
 720
 721
 722
+723
+724
+725
+726
+727
+728
+729
+730
+731
+732
+733
+734
+735
+736
+737
+738
+739
+740
+741
+742
+743
+744
+745
+746
+747
+748
+749
+750
+751
+752
+753
+754
+755
+756
+757
+758
+759
+760
+761
+762
+763
+764
+765
+766
+767
+768
+769
+770
+771
+772
+773
+774
+775
+776
+777
+778
+779
+780
+781
+782
+783
+784
+785
+786
+787
 
use ff::Field;
 use group::Curve;
 use rand_core::RngCore;
@@ -783,6 +848,10 @@
     mut rng: R,
     transcript: &mut T,
 ) -> Result<(), Error> {
+    if circuits.len() != instances.len() {
+        return Err(Error::InvalidInstances);
+    }
+
     for instance in instances.iter() {
         if instance.len() != pk.vk.cs.num_instance_columns {
             return Err(Error::InvalidInstances);
@@ -1457,5 +1526,66 @@
 
     multiopen::create_proof(params, rng, transcript, instances).map_err(|_| Error::Opening)
 }
+
+#[test]
+fn test_create_proof() {
+    use crate::{
+        circuit::SimpleFloorPlanner,
+        plonk::{keygen_pk, keygen_vk},
+        transcript::{Blake2bWrite, Challenge255},
+    };
+    use pasta_curves::EqAffine;
+    use rand_core::OsRng;
+
+    #[derive(Clone, Copy)]
+    struct MyCircuit;
+
+    impl<F: Field> Circuit<F> for MyCircuit {
+        type Config = ();
+
+        type FloorPlanner = SimpleFloorPlanner;
+
+        fn without_witnesses(&self) -> Self {
+            *self
+        }
+
+        fn configure(_meta: &mut ConstraintSystem<F>) -> Self::Config {}
+
+        fn synthesize(
+            &self,
+            _config: Self::Config,
+            _layouter: impl crate::circuit::Layouter<F>,
+        ) -> Result<(), Error> {
+            Ok(())
+        }
+    }
+
+    let params: Params<EqAffine> = Params::new(3);
+    let vk = keygen_vk(&params, &MyCircuit).expect("keygen_vk should not fail");
+    let pk = keygen_pk(&params, vk, &MyCircuit).expect("keygen_pk should not fail");
+    let mut transcript = Blake2bWrite::<_, _, Challenge255<_>>::init(vec![]);
+
+    // Create proof with wrong number of instances
+    let proof = create_proof(
+        &params,
+        &pk,
+        &[MyCircuit, MyCircuit],
+        &[],
+        OsRng,
+        &mut transcript,
+    );
+    assert!(matches!(proof.unwrap_err(), Error::InvalidInstances));
+
+    // Create proof with correct number of instances
+    create_proof(
+        &params,
+        &pk,
+        &[MyCircuit, MyCircuit],
+        &[&[], &[]],
+        OsRng,
+        &mut transcript,
+    )
+    .expect("proof generation should not fail");
+}
 
\ No newline at end of file