diff --git a/halo2_backend/arithmetic/trait.CurveAffine.html b/halo2_backend/arithmetic/trait.CurveAffine.html index 518b42dc30..76a4694f7c 100644 --- a/halo2_backend/arithmetic/trait.CurveAffine.html +++ b/halo2_backend/arithmetic/trait.CurveAffine.html @@ -39,31 +39,31 @@ always be true unless an “unchecked” API was used.

fn a() -> Self::Base

Returns the curve constant $a$.

fn b() -> Self::Base

Returns the curve constant $b$.

-

Implementations on Foreign Types§

§

impl CurveAffine for G2Affine

§

type ScalarExt = Fq

§

type Base = Fp2

§

type CurveExt = G2

§

fn is_on_curve(&self) -> Choice

§

fn coordinates(&self) -> CtOption<Coordinates<G2Affine>>

§

fn from_xy( +

Implementations on Foreign Types§

§

impl CurveAffine for G2Affine

§

type ScalarExt = Fr

§

type Base = Fq2

§

type CurveExt = G2

§

fn is_on_curve(&self) -> Choice

§

fn coordinates(&self) -> CtOption<Coordinates<G2Affine>>

§

fn from_xy( x: <G2Affine as CurveAffine>::Base, y: <G2Affine as CurveAffine>::Base -) -> CtOption<G2Affine>

§

fn a() -> <G2Affine as CurveAffine>::Base

§

fn b() -> <G2Affine as CurveAffine>::Base

§

impl CurveAffine for Secq256k1Affine

§

type ScalarExt = Fp

§

type Base = Fq

§

type CurveExt = Secq256k1

§

fn is_on_curve(&self) -> Choice

§

fn coordinates(&self) -> CtOption<Coordinates<Secq256k1Affine>>

§

fn from_xy( - x: <Secq256k1Affine as CurveAffine>::Base, - y: <Secq256k1Affine as CurveAffine>::Base -) -> CtOption<Secq256k1Affine>

§

fn a() -> <Secq256k1Affine as CurveAffine>::Base

§

fn b() -> <Secq256k1Affine as CurveAffine>::Base

§

impl CurveAffine for G1Affine

§

type ScalarExt = Fq

§

type Base = Fp

§

type CurveExt = G1

§

fn is_on_curve(&self) -> Choice

§

fn coordinates(&self) -> CtOption<Coordinates<G1Affine>>

§

fn from_xy( - x: <G1Affine as CurveAffine>::Base, - y: <G1Affine as CurveAffine>::Base -) -> CtOption<G1Affine>

§

fn a() -> <G1Affine as CurveAffine>::Base

§

fn b() -> <G1Affine as CurveAffine>::Base

§

impl CurveAffine for Secp256k1Affine

§

type ScalarExt = Fq

§

type Base = Fp

§

type CurveExt = Secp256k1

§

fn is_on_curve(&self) -> Choice

§

fn coordinates(&self) -> CtOption<Coordinates<Secp256k1Affine>>

§

fn from_xy( - x: <Secp256k1Affine as CurveAffine>::Base, - y: <Secp256k1Affine as CurveAffine>::Base -) -> CtOption<Secp256k1Affine>

§

fn a() -> <Secp256k1Affine as CurveAffine>::Base

§

fn b() -> <Secp256k1Affine as CurveAffine>::Base

§

impl CurveAffine for G1Affine

§

type ScalarExt = Fq

§

type Base = Fr

§

type CurveExt = G1

§

fn is_on_curve(&self) -> Choice

§

fn coordinates(&self) -> CtOption<Coordinates<G1Affine>>

§

fn from_xy( - x: <G1Affine as CurveAffine>::Base, - y: <G1Affine as CurveAffine>::Base -) -> CtOption<G1Affine>

§

fn a() -> <G1Affine as CurveAffine>::Base

§

fn b() -> <G1Affine as CurveAffine>::Base

§

impl CurveAffine for G2Affine

§

type ScalarExt = Fr

§

type Base = Fq2

§

type CurveExt = G2

§

fn is_on_curve(&self) -> Choice

§

fn coordinates(&self) -> CtOption<Coordinates<G2Affine>>

§

fn from_xy( - x: <G2Affine as CurveAffine>::Base, - y: <G2Affine as CurveAffine>::Base -) -> CtOption<G2Affine>

§

fn a() -> <G2Affine as CurveAffine>::Base

§

fn b() -> <G2Affine as CurveAffine>::Base

§

impl CurveAffine for ErisAffine

§

type ScalarExt = Fp

§

type Base = Fq

§

type CurveExt = Eris

§

fn is_on_curve(&self) -> Choice

§

fn coordinates(&self) -> CtOption<Coordinates<ErisAffine>>

§

fn from_xy( +) -> CtOption<G2Affine>

§

fn a() -> <G2Affine as CurveAffine>::Base

§

fn b() -> <G2Affine as CurveAffine>::Base

§

impl CurveAffine for ErisAffine

§

type ScalarExt = Fp

§

type Base = Fq

§

type CurveExt = Eris

§

fn is_on_curve(&self) -> Choice

§

fn coordinates(&self) -> CtOption<Coordinates<ErisAffine>>

§

fn from_xy( x: <ErisAffine as CurveAffine>::Base, y: <ErisAffine as CurveAffine>::Base -) -> CtOption<ErisAffine>

§

fn a() -> <ErisAffine as CurveAffine>::Base

§

fn b() -> <ErisAffine as CurveAffine>::Base

§

impl CurveAffine for Secp256r1Affine

§

type ScalarExt = Fq

§

type Base = Fp

§

type CurveExt = Secp256r1

§

fn is_on_curve(&self) -> Choice

§

fn coordinates(&self) -> CtOption<Coordinates<Secp256r1Affine>>

§

fn from_xy( +) -> CtOption<ErisAffine>

§

fn a() -> <ErisAffine as CurveAffine>::Base

§

fn b() -> <ErisAffine as CurveAffine>::Base

§

impl CurveAffine for Secp256r1Affine

§

type ScalarExt = Fq

§

type Base = Fp

§

type CurveExt = Secp256r1

§

fn is_on_curve(&self) -> Choice

§

fn coordinates(&self) -> CtOption<Coordinates<Secp256r1Affine>>

§

fn from_xy( x: <Secp256r1Affine as CurveAffine>::Base, y: <Secp256r1Affine as CurveAffine>::Base -) -> CtOption<Secp256r1Affine>

§

fn a() -> <Secp256r1Affine as CurveAffine>::Base

§

fn b() -> <Secp256r1Affine as CurveAffine>::Base

§

impl CurveAffine for G1Affine

§

type ScalarExt = Fr

§

type Base = Fq

§

type CurveExt = G1

§

fn is_on_curve(&self) -> Choice

§

fn coordinates(&self) -> CtOption<Coordinates<G1Affine>>

§

fn from_xy( +) -> CtOption<Secp256r1Affine>

§

fn a() -> <Secp256r1Affine as CurveAffine>::Base

§

fn b() -> <Secp256r1Affine as CurveAffine>::Base

§

impl CurveAffine for G1Affine

§

type ScalarExt = Fq

§

type Base = Fp

§

type CurveExt = G1

§

fn is_on_curve(&self) -> Choice

§

fn coordinates(&self) -> CtOption<Coordinates<G1Affine>>

§

fn from_xy( x: <G1Affine as CurveAffine>::Base, y: <G1Affine as CurveAffine>::Base -) -> CtOption<G1Affine>

§

fn a() -> <G1Affine as CurveAffine>::Base

§

fn b() -> <G1Affine as CurveAffine>::Base

Implementors§

§

impl CurveAffine for EpAffine

§

type ScalarExt = Fq

§

type Base = Fp

§

type CurveExt = Ep

§

impl CurveAffine for EqAffine

§

type ScalarExt = Fp

§

type Base = Fq

§

type CurveExt = Eq

\ No newline at end of file +) -> CtOption<G1Affine>
§

fn a() -> <G1Affine as CurveAffine>::Base

§

fn b() -> <G1Affine as CurveAffine>::Base

§

impl CurveAffine for G2Affine

§

type ScalarExt = Fq

§

type Base = Fp2

§

type CurveExt = G2

§

fn is_on_curve(&self) -> Choice

§

fn coordinates(&self) -> CtOption<Coordinates<G2Affine>>

§

fn from_xy( + x: <G2Affine as CurveAffine>::Base, + y: <G2Affine as CurveAffine>::Base +) -> CtOption<G2Affine>

§

fn a() -> <G2Affine as CurveAffine>::Base

§

fn b() -> <G2Affine as CurveAffine>::Base

§

impl CurveAffine for G1Affine

§

type ScalarExt = Fr

§

type Base = Fq

§

type CurveExt = G1

§

fn is_on_curve(&self) -> Choice

§

fn coordinates(&self) -> CtOption<Coordinates<G1Affine>>

§

fn from_xy( + x: <G1Affine as CurveAffine>::Base, + y: <G1Affine as CurveAffine>::Base +) -> CtOption<G1Affine>

§

fn a() -> <G1Affine as CurveAffine>::Base

§

fn b() -> <G1Affine as CurveAffine>::Base

§

impl CurveAffine for Secp256k1Affine

§

type ScalarExt = Fq

§

type Base = Fp

§

type CurveExt = Secp256k1

§

fn is_on_curve(&self) -> Choice

§

fn coordinates(&self) -> CtOption<Coordinates<Secp256k1Affine>>

§

fn from_xy( + x: <Secp256k1Affine as CurveAffine>::Base, + y: <Secp256k1Affine as CurveAffine>::Base +) -> CtOption<Secp256k1Affine>

§

fn a() -> <Secp256k1Affine as CurveAffine>::Base

§

fn b() -> <Secp256k1Affine as CurveAffine>::Base

§

impl CurveAffine for G1Affine

§

type ScalarExt = Fq

§

type Base = Fr

§

type CurveExt = G1

§

fn is_on_curve(&self) -> Choice

§

fn coordinates(&self) -> CtOption<Coordinates<G1Affine>>

§

fn from_xy( + x: <G1Affine as CurveAffine>::Base, + y: <G1Affine as CurveAffine>::Base +) -> CtOption<G1Affine>

§

fn a() -> <G1Affine as CurveAffine>::Base

§

fn b() -> <G1Affine as CurveAffine>::Base

§

impl CurveAffine for Secq256k1Affine

§

type ScalarExt = Fp

§

type Base = Fq

§

type CurveExt = Secq256k1

§

fn is_on_curve(&self) -> Choice

§

fn coordinates(&self) -> CtOption<Coordinates<Secq256k1Affine>>

§

fn from_xy( + x: <Secq256k1Affine as CurveAffine>::Base, + y: <Secq256k1Affine as CurveAffine>::Base +) -> CtOption<Secq256k1Affine>

§

fn a() -> <Secq256k1Affine as CurveAffine>::Base

§

fn b() -> <Secq256k1Affine as CurveAffine>::Base

Implementors§

§

impl CurveAffine for EpAffine

§

type ScalarExt = Fq

§

type Base = Fp

§

type CurveExt = Ep

§

impl CurveAffine for EqAffine

§

type ScalarExt = Fp

§

type Base = Fq

§

type CurveExt = Eq

\ No newline at end of file diff --git a/halo2_backend/arithmetic/trait.CurveExt.html b/halo2_backend/arithmetic/trait.CurveExt.html index f052b1d4de..40d6c49008 100644 --- a/halo2_backend/arithmetic/trait.CurveExt.html +++ b/halo2_backend/arithmetic/trait.CurveExt.html @@ -68,58 +68,58 @@
Example

fn b() -> Self::Base

Returns the curve constant b.

fn new_jacobian(x: Self::Base, y: Self::Base, z: Self::Base) -> CtOption<Self>

Obtains a point given Jacobian coordinates $X : Y : Z$, failing if the coordinates are not on the curve.

-

Implementations on Foreign Types§

§

impl CurveExt for G1

§

type ScalarExt = Fr

§

type Base = Fq

§

type AffineExt = G1Affine

§

const CURVE_ID: &'static str = "bn256_g1"

§

fn endo(&self) -> G1

§

fn jacobian_coordinates(&self) -> (Fq, Fq, Fq)

§

fn hash_to_curve<'a>( +

Implementations on Foreign Types§

§

impl CurveExt for Eris

§

type ScalarExt = Fp

§

type Base = Fq

§

type AffineExt = ErisAffine

§

const CURVE_ID: &'static str = "eris"

§

fn endo(&self) -> Eris

§

fn jacobian_coordinates(&self) -> (Fq, Fq, Fq)

§

fn hash_to_curve<'a>( domain_prefix: &'a str -) -> Box<dyn Fn(&[u8]) -> G1 + 'a, Global>

§

fn is_on_curve(&self) -> Choice

§

fn b() -> <G1 as CurveExt>::Base

§

fn a() -> <G1 as CurveExt>::Base

§

fn new_jacobian( +) -> Box<dyn Fn(&[u8]) -> Eris + 'a, Global>

§

fn is_on_curve(&self) -> Choice

§

fn b() -> <Eris as CurveExt>::Base

§

fn a() -> <Eris as CurveExt>::Base

§

fn new_jacobian( + x: <Eris as CurveExt>::Base, + y: <Eris as CurveExt>::Base, + z: <Eris as CurveExt>::Base +) -> CtOption<Eris>

§

impl CurveExt for G2

§

type ScalarExt = Fr

§

type Base = Fq2

§

type AffineExt = G2Affine

§

const CURVE_ID: &'static str = "bn256_g2"

§

fn endo(&self) -> G2

§

fn jacobian_coordinates(&self) -> (Fq2, Fq2, Fq2)

§

fn hash_to_curve<'a>( + domain_prefix: &'a str +) -> Box<dyn Fn(&[u8]) -> G2 + 'a, Global>

§

fn is_on_curve(&self) -> Choice

§

fn b() -> <G2 as CurveExt>::Base

§

fn a() -> <G2 as CurveExt>::Base

§

fn new_jacobian( + x: <G2 as CurveExt>::Base, + y: <G2 as CurveExt>::Base, + z: <G2 as CurveExt>::Base +) -> CtOption<G2>

§

impl CurveExt for G1

§

type ScalarExt = Fq

§

type Base = Fr

§

type AffineExt = G1Affine

§

const CURVE_ID: &'static str = "grumpkin_g1"

§

fn endo(&self) -> G1

§

fn jacobian_coordinates(&self) -> (Fr, Fr, Fr)

§

fn hash_to_curve<'a>( + domain_prefix: &'a str +) -> Box<dyn Fn(&[u8]) -> G1 + 'a, Global>

§

fn is_on_curve(&self) -> Choice

§

fn b() -> <G1 as CurveExt>::Base

§

fn a() -> <G1 as CurveExt>::Base

§

fn new_jacobian( x: <G1 as CurveExt>::Base, y: <G1 as CurveExt>::Base, z: <G1 as CurveExt>::Base -) -> CtOption<G1>

§

impl CurveExt for Secq256k1

§

type ScalarExt = Fp

§

type Base = Fq

§

type AffineExt = Secq256k1Affine

§

const CURVE_ID: &'static str = "secq256k1"

§

fn endo(&self) -> Secq256k1

§

fn jacobian_coordinates(&self) -> (Fq, Fq, Fq)

§

fn hash_to_curve<'a>( +) -> CtOption<G1>

§

impl CurveExt for Secp256k1

§

type ScalarExt = Fq

§

type Base = Fp

§

type AffineExt = Secp256k1Affine

§

const CURVE_ID: &'static str = "secp256k1"

§

fn endo(&self) -> Secp256k1

§

fn jacobian_coordinates(&self) -> (Fp, Fp, Fp)

§

fn hash_to_curve<'a>( domain_prefix: &'a str -) -> Box<dyn Fn(&[u8]) -> Secq256k1 + 'a, Global>

§

fn is_on_curve(&self) -> Choice

§

fn b() -> <Secq256k1 as CurveExt>::Base

§

fn a() -> <Secq256k1 as CurveExt>::Base

§

fn new_jacobian( +) -> Box<dyn Fn(&[u8]) -> Secp256k1 + 'a, Global>

§

fn is_on_curve(&self) -> Choice

§

fn b() -> <Secp256k1 as CurveExt>::Base

§

fn a() -> <Secp256k1 as CurveExt>::Base

§

fn new_jacobian( + x: <Secp256k1 as CurveExt>::Base, + y: <Secp256k1 as CurveExt>::Base, + z: <Secp256k1 as CurveExt>::Base +) -> CtOption<Secp256k1>

§

impl CurveExt for Secq256k1

§

type ScalarExt = Fp

§

type Base = Fq

§

type AffineExt = Secq256k1Affine

§

const CURVE_ID: &'static str = "secq256k1"

§

fn endo(&self) -> Secq256k1

§

fn jacobian_coordinates(&self) -> (Fq, Fq, Fq)

§

fn hash_to_curve<'a>( + domain_prefix: &'a str +) -> Box<dyn Fn(&[u8]) -> Secq256k1 + 'a, Global>

§

fn is_on_curve(&self) -> Choice

§

fn b() -> <Secq256k1 as CurveExt>::Base

§

fn a() -> <Secq256k1 as CurveExt>::Base

§

fn new_jacobian( x: <Secq256k1 as CurveExt>::Base, y: <Secq256k1 as CurveExt>::Base, z: <Secq256k1 as CurveExt>::Base -) -> CtOption<Secq256k1>

§

impl CurveExt for G2

§

type ScalarExt = Fq

§

type Base = Fp2

§

type AffineExt = G2Affine

§

const CURVE_ID: &'static str = "triton"

§

fn endo(&self) -> G2

§

fn jacobian_coordinates(&self) -> (Fp2, Fp2, Fp2)

§

fn hash_to_curve<'a>( +) -> CtOption<Secq256k1>

§

impl CurveExt for Secp256r1

§

type ScalarExt = Fq

§

type Base = Fp

§

type AffineExt = Secp256r1Affine

§

const CURVE_ID: &'static str = "secp256r1"

§

fn endo(&self) -> Secp256r1

§

fn jacobian_coordinates(&self) -> (Fp, Fp, Fp)

§

fn hash_to_curve<'a>( domain_prefix: &'a str -) -> Box<dyn Fn(&[u8]) -> G2 + 'a, Global>

§

fn is_on_curve(&self) -> Choice

§

fn b() -> <G2 as CurveExt>::Base

§

fn a() -> <G2 as CurveExt>::Base

§

fn new_jacobian( - x: <G2 as CurveExt>::Base, - y: <G2 as CurveExt>::Base, - z: <G2 as CurveExt>::Base -) -> CtOption<G2>

§

impl CurveExt for G1

§

type ScalarExt = Fq

§

type Base = Fp

§

type AffineExt = G1Affine

§

const CURVE_ID: &'static str = "pluto"

§

fn endo(&self) -> G1

§

fn jacobian_coordinates(&self) -> (Fp, Fp, Fp)

§

fn hash_to_curve<'a>( +) -> Box<dyn Fn(&[u8]) -> Secp256r1 + 'a, Global>

§

fn is_on_curve(&self) -> Choice

§

fn b() -> <Secp256r1 as CurveExt>::Base

§

fn a() -> <Secp256r1 as CurveExt>::Base

§

fn new_jacobian( + x: <Secp256r1 as CurveExt>::Base, + y: <Secp256r1 as CurveExt>::Base, + z: <Secp256r1 as CurveExt>::Base +) -> CtOption<Secp256r1>

§

impl CurveExt for G1

§

type ScalarExt = Fq

§

type Base = Fp

§

type AffineExt = G1Affine

§

const CURVE_ID: &'static str = "pluto"

§

fn endo(&self) -> G1

§

fn jacobian_coordinates(&self) -> (Fp, Fp, Fp)

§

fn hash_to_curve<'a>( domain_prefix: &'a str -) -> Box<dyn Fn(&[u8]) -> G1 + 'a, Global>

§

fn is_on_curve(&self) -> Choice

§

fn b() -> <G1 as CurveExt>::Base

§

fn a() -> <G1 as CurveExt>::Base

§

fn new_jacobian( +) -> Box<dyn Fn(&[u8]) -> G1 + 'a, Global>

§

fn is_on_curve(&self) -> Choice

§

fn b() -> <G1 as CurveExt>::Base

§

fn a() -> <G1 as CurveExt>::Base

§

fn new_jacobian( x: <G1 as CurveExt>::Base, y: <G1 as CurveExt>::Base, z: <G1 as CurveExt>::Base -) -> CtOption<G1>

§

impl CurveExt for G2

§

type ScalarExt = Fr

§

type Base = Fq2

§

type AffineExt = G2Affine

§

const CURVE_ID: &'static str = "bn256_g2"

§

fn endo(&self) -> G2

§

fn jacobian_coordinates(&self) -> (Fq2, Fq2, Fq2)

§

fn hash_to_curve<'a>( +) -> CtOption<G1>

§

impl CurveExt for G2

§

type ScalarExt = Fq

§

type Base = Fp2

§

type AffineExt = G2Affine

§

const CURVE_ID: &'static str = "triton"

§

fn endo(&self) -> G2

§

fn jacobian_coordinates(&self) -> (Fp2, Fp2, Fp2)

§

fn hash_to_curve<'a>( domain_prefix: &'a str -) -> Box<dyn Fn(&[u8]) -> G2 + 'a, Global>

§

fn is_on_curve(&self) -> Choice

§

fn b() -> <G2 as CurveExt>::Base

§

fn a() -> <G2 as CurveExt>::Base

§

fn new_jacobian( +) -> Box<dyn Fn(&[u8]) -> G2 + 'a, Global>

§

fn is_on_curve(&self) -> Choice

§

fn b() -> <G2 as CurveExt>::Base

§

fn a() -> <G2 as CurveExt>::Base

§

fn new_jacobian( x: <G2 as CurveExt>::Base, y: <G2 as CurveExt>::Base, z: <G2 as CurveExt>::Base -) -> CtOption<G2>

§

impl CurveExt for Eris

§

type ScalarExt = Fp

§

type Base = Fq

§

type AffineExt = ErisAffine

§

const CURVE_ID: &'static str = "eris"

§

fn endo(&self) -> Eris

§

fn jacobian_coordinates(&self) -> (Fq, Fq, Fq)

§

fn hash_to_curve<'a>( - domain_prefix: &'a str -) -> Box<dyn Fn(&[u8]) -> Eris + 'a, Global>

§

fn is_on_curve(&self) -> Choice

§

fn b() -> <Eris as CurveExt>::Base

§

fn a() -> <Eris as CurveExt>::Base

§

fn new_jacobian( - x: <Eris as CurveExt>::Base, - y: <Eris as CurveExt>::Base, - z: <Eris as CurveExt>::Base -) -> CtOption<Eris>

§

impl CurveExt for Secp256r1

§

type ScalarExt = Fq

§

type Base = Fp

§

type AffineExt = Secp256r1Affine

§

const CURVE_ID: &'static str = "secp256r1"

§

fn endo(&self) -> Secp256r1

§

fn jacobian_coordinates(&self) -> (Fp, Fp, Fp)

§

fn hash_to_curve<'a>( +) -> CtOption<G2>

§

impl CurveExt for G1

§

type ScalarExt = Fr

§

type Base = Fq

§

type AffineExt = G1Affine

§

const CURVE_ID: &'static str = "bn256_g1"

§

fn endo(&self) -> G1

§

fn jacobian_coordinates(&self) -> (Fq, Fq, Fq)

§

fn hash_to_curve<'a>( domain_prefix: &'a str -) -> Box<dyn Fn(&[u8]) -> Secp256r1 + 'a, Global>

§

fn is_on_curve(&self) -> Choice

§

fn b() -> <Secp256r1 as CurveExt>::Base

§

fn a() -> <Secp256r1 as CurveExt>::Base

§

fn new_jacobian( - x: <Secp256r1 as CurveExt>::Base, - y: <Secp256r1 as CurveExt>::Base, - z: <Secp256r1 as CurveExt>::Base -) -> CtOption<Secp256r1>

§

impl CurveExt for G1

§

type ScalarExt = Fq

§

type Base = Fr

§

type AffineExt = G1Affine

§

const CURVE_ID: &'static str = "grumpkin_g1"

§

fn endo(&self) -> G1

§

fn jacobian_coordinates(&self) -> (Fr, Fr, Fr)

§

fn hash_to_curve<'a>( - domain_prefix: &'a str -) -> Box<dyn Fn(&[u8]) -> G1 + 'a, Global>

§

fn is_on_curve(&self) -> Choice

§

fn b() -> <G1 as CurveExt>::Base

§

fn a() -> <G1 as CurveExt>::Base

§

fn new_jacobian( +) -> Box<dyn Fn(&[u8]) -> G1 + 'a, Global>

§

fn is_on_curve(&self) -> Choice

§

fn b() -> <G1 as CurveExt>::Base

§

fn a() -> <G1 as CurveExt>::Base

§

fn new_jacobian( x: <G1 as CurveExt>::Base, y: <G1 as CurveExt>::Base, z: <G1 as CurveExt>::Base -) -> CtOption<G1>

§

impl CurveExt for Secp256k1

§

type ScalarExt = Fq

§

type Base = Fp

§

type AffineExt = Secp256k1Affine

§

const CURVE_ID: &'static str = "secp256k1"

§

fn endo(&self) -> Secp256k1

§

fn jacobian_coordinates(&self) -> (Fp, Fp, Fp)

§

fn hash_to_curve<'a>( - domain_prefix: &'a str -) -> Box<dyn Fn(&[u8]) -> Secp256k1 + 'a, Global>

§

fn is_on_curve(&self) -> Choice

§

fn b() -> <Secp256k1 as CurveExt>::Base

§

fn a() -> <Secp256k1 as CurveExt>::Base

§

fn new_jacobian( - x: <Secp256k1 as CurveExt>::Base, - y: <Secp256k1 as CurveExt>::Base, - z: <Secp256k1 as CurveExt>::Base -) -> CtOption<Secp256k1>

Implementors§

§

impl CurveExt for Ep

§

type ScalarExt = Fq

§

type Base = Fp

§

type AffineExt = EpAffine

§

const CURVE_ID: &'static str = "pallas"

§

impl CurveExt for Eq

§

type ScalarExt = Fp

§

type Base = Fq

§

type AffineExt = EqAffine

§

const CURVE_ID: &'static str = "vesta"

\ No newline at end of file +) -> CtOption<G1>

Implementors§

§

impl CurveExt for Ep

§

type ScalarExt = Fq

§

type Base = Fp

§

type AffineExt = EpAffine

§

const CURVE_ID: &'static str = "pallas"

§

impl CurveExt for Eq

§

type ScalarExt = Fp

§

type Base = Fq

§

type AffineExt = EqAffine

§

const CURVE_ID: &'static str = "vesta"

\ No newline at end of file diff --git a/halo2_backend/arithmetic/trait.Field.html b/halo2_backend/arithmetic/trait.Field.html index 2108986c71..752c135dc0 100644 --- a/halo2_backend/arithmetic/trait.Field.html +++ b/halo2_backend/arithmetic/trait.Field.html @@ -86,35 +86,35 @@
Guarantees

This operation is variable time with respect to self, for all exponent. If the exponent is fixed, this operation is effectively constant time. However, for stronger constant-time guarantees, Field::pow should be used.

-

Implementations on Foreign Types§

§

impl Field for Fq

§

fn invert(&self) -> CtOption<Fq>

Computes the multiplicative inverse of this element, -failing if the element is zero.

-
§

const ZERO: Fq = _

§

const ONE: Fq = _

§

fn random(rng: impl RngCore) -> Fq

§

fn double(&self) -> Fq

§

fn square(&self) -> Fq

§

fn sqrt(&self) -> CtOption<Fq>

§

fn sqrt_ratio(num: &Fq, div: &Fq) -> (Choice, Fq)

§

impl Field for Fq

§

fn invert(&self) -> CtOption<Fq>

Returns the multiplicative inverse of the -element. If it is zero, the method fails.

-
§

const ZERO: Fq = _

§

const ONE: Fq = _

§

fn random(rng: impl RngCore) -> Fq

§

fn double(&self) -> Fq

§

fn square(&self) -> Fq

§

fn pow_vartime<S>(&self, exp: S) -> Fqwhere - S: AsRef<[u64]>,

§

fn sqrt(&self) -> CtOption<Fq>

§

fn sqrt_ratio(num: &Fq, div: &Fq) -> (Choice, Fq)

§

impl Field for Fp

§

fn sqrt(&self) -> CtOption<Fp>

Computes the square root of this element, if it exists.

-
§

fn invert(&self) -> CtOption<Fp>

Returns the multiplicative inverse of the +

Implementations on Foreign Types§

§

impl Field for Fr

§

fn invert(&self) -> CtOption<Fr>

Returns the multiplicative inverse of the element. If it is zero, the method fails.

-
§

const ZERO: Fp = _

§

const ONE: Fp = _

§

fn random(rng: impl RngCore) -> Fp

§

fn double(&self) -> Fp

§

fn square(&self) -> Fp

§

fn pow_vartime<S>(&self, exp: S) -> Fpwhere - S: AsRef<[u64]>,

§

fn sqrt_ratio(num: &Fp, div: &Fp) -> (Choice, Fp)

§

impl Field for Fq

§

fn invert(&self) -> CtOption<Fq>

Returns the multiplicative inverse of the +

§

const ZERO: Fr = _

§

const ONE: Fr = _

§

fn random(rng: impl RngCore) -> Fr

§

fn double(&self) -> Fr

§

fn square(&self) -> Fr

§

fn sqrt(&self) -> CtOption<Fr>

§

fn sqrt_ratio(num: &Fr, div: &Fr) -> (Choice, Fr)

§

impl Field for Fq

§

fn sqrt(&self) -> CtOption<Fq>

Computes the square root of this element, if it exists.

+
§

fn invert(&self) -> CtOption<Fq>

Returns the multiplicative inverse of the element. If it is zero, the method fails.

-
§

const ZERO: Fq = _

§

const ONE: Fq = _

§

fn random(rng: impl RngCore) -> Fq

§

fn double(&self) -> Fq

§

fn square(&self) -> Fq

§

fn pow_vartime<S>(&self, exp: S) -> Fqwhere - S: AsRef<[u64]>,

§

fn sqrt(&self) -> CtOption<Fq>

§

fn sqrt_ratio(num: &Fq, div: &Fq) -> (Choice, Fq)

§

impl Field for Fp

§

fn invert(&self) -> CtOption<Fp>

Computes the multiplicative inverse of this element, +

§

const ZERO: Fq = _

§

const ONE: Fq = _

§

fn random(rng: impl RngCore) -> Fq

§

fn double(&self) -> Fq

§

fn square(&self) -> Fq

§

fn sqrt_ratio(num: &Fq, div: &Fq) -> (Choice, Fq)

§

impl Field for Fq

§

fn invert(&self) -> CtOption<Fq>

Computes the multiplicative inverse of this element, failing if the element is zero.

-
§

const ZERO: Fp = _

§

const ONE: Fp = _

§

fn random(rng: impl RngCore) -> Fp

§

fn double(&self) -> Fp

§

fn square(&self) -> Fp

§

fn sqrt(&self) -> CtOption<Fp>

§

fn sqrt_ratio(num: &Fp, div: &Fp) -> (Choice, Fp)

§

impl Field for Fq6

§

const ZERO: Fq6 = _

§

const ONE: Fq6 = _

§

fn random(rng: impl RngCore) -> Fq6

§

fn is_zero(&self) -> Choice

§

fn square(&self) -> Fq6

§

fn double(&self) -> Fq6

§

fn sqrt(&self) -> CtOption<Fq6>

§

fn sqrt_ratio(_num: &Fq6, _div: &Fq6) -> (Choice, Fq6)

§

fn invert(&self) -> CtOption<Fq6>

§

impl Field for Fp

§

fn sqrt(&self) -> CtOption<Fp>

Computes the square root of this element, if it exists.

-
§

fn invert(&self) -> CtOption<Fp>

Returns the multiplicative inverse of the +

§

const ZERO: Fq = _

§

const ONE: Fq = _

§

fn random(rng: impl RngCore) -> Fq

§

fn double(&self) -> Fq

§

fn square(&self) -> Fq

§

fn sqrt(&self) -> CtOption<Fq>

§

fn sqrt_ratio(num: &Fq, div: &Fq) -> (Choice, Fq)

§

impl Field for Fq6

§

const ZERO: Fq6 = _

§

const ONE: Fq6 = _

§

fn random(rng: impl RngCore) -> Fq6

§

fn is_zero(&self) -> Choice

§

fn square(&self) -> Fq6

§

fn double(&self) -> Fq6

§

fn sqrt(&self) -> CtOption<Fq6>

§

fn sqrt_ratio(_num: &Fq6, _div: &Fq6) -> (Choice, Fq6)

§

fn invert(&self) -> CtOption<Fq6>

§

impl Field for Fq

§

fn invert(&self) -> CtOption<Fq>

Returns the multiplicative inverse of the element. If it is zero, the method fails.

-
§

const ZERO: Fp = _

§

const ONE: Fp = _

§

fn random(rng: impl RngCore) -> Fp

§

fn double(&self) -> Fp

§

fn square(&self) -> Fp

§

fn pow_vartime<S>(&self, exp: S) -> Fpwhere - S: AsRef<[u64]>,

§

fn sqrt_ratio(num: &Fp, div: &Fp) -> (Choice, Fp)

§

impl Field for Fq

§

fn sqrt(&self) -> CtOption<Fq>

Computes the square root of this element, if it exists.

-
§

fn invert(&self) -> CtOption<Fq>

Returns the multiplicative inverse of the +

§

const ZERO: Fq = _

§

const ONE: Fq = _

§

fn random(rng: impl RngCore) -> Fq

§

fn double(&self) -> Fq

§

fn square(&self) -> Fq

§

fn pow_vartime<S>(&self, exp: S) -> Fqwhere + S: AsRef<[u64]>,

§

fn sqrt(&self) -> CtOption<Fq>

§

fn sqrt_ratio(num: &Fq, div: &Fq) -> (Choice, Fq)

§

impl Field for Fq

§

fn invert(&self) -> CtOption<Fq>

Returns the multiplicative inverse of the +element. If it is zero, the method fails.

+
§

const ZERO: Fq = _

§

const ONE: Fq = _

§

fn random(rng: impl RngCore) -> Fq

§

fn double(&self) -> Fq

§

fn square(&self) -> Fq

§

fn pow_vartime<S>(&self, exp: S) -> Fqwhere + S: AsRef<[u64]>,

§

fn sqrt(&self) -> CtOption<Fq>

§

fn sqrt_ratio(num: &Fq, div: &Fq) -> (Choice, Fq)

§

impl Field for Fp

§

fn invert(&self) -> CtOption<Fp>

Computes the multiplicative inverse of this element, +failing if the element is zero.

+
§

const ZERO: Fp = _

§

const ONE: Fp = _

§

fn random(rng: impl RngCore) -> Fp

§

fn double(&self) -> Fp

§

fn square(&self) -> Fp

§

fn sqrt(&self) -> CtOption<Fp>

§

fn sqrt_ratio(num: &Fp, div: &Fp) -> (Choice, Fp)

§

impl Field for Fp

§

fn sqrt(&self) -> CtOption<Fp>

Computes the square root of this element, if it exists.

+
§

fn invert(&self) -> CtOption<Fp>

Returns the multiplicative inverse of the element. If it is zero, the method fails.

-
§

const ZERO: Fq = _

§

const ONE: Fq = _

§

fn random(rng: impl RngCore) -> Fq

§

fn double(&self) -> Fq

§

fn square(&self) -> Fq

§

fn sqrt_ratio(num: &Fq, div: &Fq) -> (Choice, Fq)

§

impl Field for Fq2

§

const ZERO: Fq2 = _

§

const ONE: Fq2 = _

§

fn random(rng: impl RngCore) -> Fq2

§

fn is_zero(&self) -> Choice

§

fn square(&self) -> Fq2

§

fn double(&self) -> Fq2

§

fn sqrt(&self) -> CtOption<Fq2>

§

fn sqrt_ratio(num: &Fq2, div: &Fq2) -> (Choice, Fq2)

§

fn invert(&self) -> CtOption<Fq2>

§

impl Field for Fq12

§

const ZERO: Fq12 = _

§

const ONE: Fq12 = _

§

fn random(rng: impl RngCore) -> Fq12

§

fn is_zero(&self) -> Choice

§

fn square(&self) -> Fq12

§

fn double(&self) -> Fq12

§

fn sqrt(&self) -> CtOption<Fq12>

§

fn sqrt_ratio(_num: &Fq12, _div: &Fq12) -> (Choice, Fq12)

§

fn invert(&self) -> CtOption<Fq12>

§

impl Field for Fr

§

fn invert(&self) -> CtOption<Fr>

Returns the multiplicative inverse of the +

§

const ZERO: Fp = _

§

const ONE: Fp = _

§

fn random(rng: impl RngCore) -> Fp

§

fn double(&self) -> Fp

§

fn square(&self) -> Fp

§

fn pow_vartime<S>(&self, exp: S) -> Fpwhere + S: AsRef<[u64]>,

§

fn sqrt_ratio(num: &Fp, div: &Fp) -> (Choice, Fp)

§

impl Field for Fp

§

fn sqrt(&self) -> CtOption<Fp>

Computes the square root of this element, if it exists.

+
§

fn invert(&self) -> CtOption<Fp>

Returns the multiplicative inverse of the element. If it is zero, the method fails.

-
§

const ZERO: Fr = _

§

const ONE: Fr = _

§

fn random(rng: impl RngCore) -> Fr

§

fn double(&self) -> Fr

§

fn square(&self) -> Fr

§

fn sqrt(&self) -> CtOption<Fr>

§

fn sqrt_ratio(num: &Fr, div: &Fr) -> (Choice, Fr)

§

impl Field for Fq

§

fn sqrt(&self) -> CtOption<Fq>

Computes the square root of this element, if it exists.

-
§

fn invert(&self) -> CtOption<Fq>

Computes the multiplicative inverse of this element, +

§

const ZERO: Fp = _

§

const ONE: Fp = _

§

fn random(rng: impl RngCore) -> Fp

§

fn double(&self) -> Fp

§

fn square(&self) -> Fp

§

fn pow_vartime<S>(&self, exp: S) -> Fpwhere + S: AsRef<[u64]>,

§

fn sqrt_ratio(num: &Fp, div: &Fp) -> (Choice, Fp)

§

impl Field for Fq2

§

const ZERO: Fq2 = _

§

const ONE: Fq2 = _

§

fn random(rng: impl RngCore) -> Fq2

§

fn is_zero(&self) -> Choice

§

fn square(&self) -> Fq2

§

fn double(&self) -> Fq2

§

fn sqrt(&self) -> CtOption<Fq2>

§

fn sqrt_ratio(num: &Fq2, div: &Fq2) -> (Choice, Fq2)

§

fn invert(&self) -> CtOption<Fq2>

§

impl Field for Fq12

§

const ZERO: Fq12 = _

§

const ONE: Fq12 = _

§

fn random(rng: impl RngCore) -> Fq12

§

fn is_zero(&self) -> Choice

§

fn square(&self) -> Fq12

§

fn double(&self) -> Fq12

§

fn sqrt(&self) -> CtOption<Fq12>

§

fn sqrt_ratio(_num: &Fq12, _div: &Fq12) -> (Choice, Fq12)

§

fn invert(&self) -> CtOption<Fq12>

§

impl Field for Fp

§

fn sqrt(&self) -> CtOption<Fp>

Computes the square root of this element, if it exists.

+
§

fn invert(&self) -> CtOption<Fp>

Computes the multiplicative inverse of this element, failing if the element is zero.

-
§

const ZERO: Fq = _

§

const ONE: Fq = _

§

fn random(rng: impl RngCore) -> Fq

§

fn double(&self) -> Fq

§

fn square(&self) -> Fq

§

fn sqrt_ratio(num: &Fq, div: &Fq) -> (Choice, Fq)

§

fn sqrt_alt(&self) -> (Choice, Fq)

§

fn pow_vartime<S>(&self, exp: S) -> Fqwhere - S: AsRef<[u64]>,

§

impl Field for Fp

§

fn sqrt(&self) -> CtOption<Fp>

Computes the square root of this element, if it exists.

-
§

fn invert(&self) -> CtOption<Fp>

Computes the multiplicative inverse of this element, +

§

const ZERO: Fp = _

§

const ONE: Fp = _

§

fn random(rng: impl RngCore) -> Fp

§

fn double(&self) -> Fp

§

fn square(&self) -> Fp

§

fn sqrt_ratio(num: &Fp, div: &Fp) -> (Choice, Fp)

§

fn sqrt_alt(&self) -> (Choice, Fp)

§

fn pow_vartime<S>(&self, exp: S) -> Fpwhere + S: AsRef<[u64]>,

§

impl Field for Fq

§

fn sqrt(&self) -> CtOption<Fq>

Computes the square root of this element, if it exists.

+
§

fn invert(&self) -> CtOption<Fq>

Computes the multiplicative inverse of this element, failing if the element is zero.

-
§

const ZERO: Fp = _

§

const ONE: Fp = _

§

fn random(rng: impl RngCore) -> Fp

§

fn double(&self) -> Fp

§

fn square(&self) -> Fp

§

fn sqrt_ratio(num: &Fp, div: &Fp) -> (Choice, Fp)

§

fn sqrt_alt(&self) -> (Choice, Fp)

§

fn pow_vartime<S>(&self, exp: S) -> Fpwhere +

§

const ZERO: Fq = _

§

const ONE: Fq = _

§

fn random(rng: impl RngCore) -> Fq

§

fn double(&self) -> Fq

§

fn square(&self) -> Fq

§

fn sqrt_ratio(num: &Fq, div: &Fq) -> (Choice, Fq)

§

fn sqrt_alt(&self) -> (Choice, Fq)

§

fn pow_vartime<S>(&self, exp: S) -> Fqwhere S: AsRef<[u64]>,

Implementors§

\ No newline at end of file diff --git a/halo2_backend/multicore/index.html b/halo2_backend/multicore/index.html index 05a54a2d86..380f082c3a 100644 --- a/halo2_backend/multicore/index.html +++ b/halo2_backend/multicore/index.html @@ -14,7 +14,7 @@ }); -

Structs

Obtains an MSM from the verifier strategy and yields back the strategy’s output.
source§

impl<'params, C: CurveAffine> Verifier<'params, IPACommitmentScheme<C>> for VerifierIPA<'params, C>

§

type Guard = GuardIPA<'params, C>

Unfinalized verification result. This is returned in verification -to allow developer to compress or combine verification results
§

type MSMAccumulator = MSMIPA<'params, C>

Accumulator for compressed verification
source§

const QUERY_INSTANCE: bool = true

Query instance or not
source§

fn new(params: &'params ParamsVerifierIPA<C>) -> Self

Creates new verifier instance
source§

fn verify_proof<'com, E: EncodedChallenge<C>, T: TranscriptRead<C, E>, I>( +to allow developer to compress or combine verification results

§

type MSMAccumulator = MSMIPA<'params, C>

Accumulator for compressed verification
source§

const QUERY_INSTANCE: bool = true

Query instance or not
source§

fn new(params: &'params ParamsVerifierIPA<C>) -> Self

Creates new verifier instance
source§

fn verify_proof<'com, E: EncodedChallenge<C>, T: TranscriptRead<C, E>, I>( &self, transcript: &mut T, queries: I, diff --git a/halo2_backend/poly/ipa/commitment/struct.ParamsIPA.html b/halo2_backend/poly/ipa/commitment/struct.ParamsIPA.html index a5c780eec7..3b96b33a7b 100644 --- a/halo2_backend/poly/ipa/commitment/struct.ParamsIPA.html +++ b/halo2_backend/poly/ipa/commitment/struct.ParamsIPA.html @@ -17,7 +17,7 @@
pub struct ParamsIPA<C: CurveAffine> { /* private fields */ }
Expand description

Public parameters for IPA commitment scheme

Trait Implementations§

source§

impl<C: Clone + CurveAffine> Clone for ParamsIPA<C>

source§

fn clone(&self) -> ParamsIPA<C>

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

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

Performs copy-assignment from source. Read more
source§

impl<C: Debug + CurveAffine> Debug for ParamsIPA<C>

source§

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

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

impl<'params, C: CurveAffine> Params<'params, C> for ParamsIPA<C>

source§

fn commit_lagrange( &self, - engine: &impl MsmAccel<C>, + engine: &impl MsmAccel<C>, poly: &Polynomial<C::Scalar, LagrangeCoeff>, r: Blind<C::Scalar> ) -> C::Curve

This commits to a polynomial using its evaluations over the $2^k$ size @@ -30,7 +30,7 @@ points from.

source§

fn commit( &self, - engine: &impl MsmAccel<C>, + engine: &impl MsmAccel<C>, poly: &Polynomial<C::Scalar, Coeff>, r: Blind<C::Scalar> ) -> C::Curve

This computes a commitment to a polynomial described by the provided diff --git a/halo2_backend/poly/ipa/commitment/type.ParamsVerifierIPA.html b/halo2_backend/poly/ipa/commitment/type.ParamsVerifierIPA.html index 84bcf0702c..8c9c52e8f6 100644 --- a/halo2_backend/poly/ipa/commitment/type.ParamsVerifierIPA.html +++ b/halo2_backend/poly/ipa/commitment/type.ParamsVerifierIPA.html @@ -17,7 +17,7 @@

pub type ParamsVerifierIPA<C> = ParamsIPA<C>;
Expand description

Verifier parameters

Aliased Type§

struct ParamsVerifierIPA<C> { /* private fields */ }

Trait Implementations§

source§

impl<C: Clone + CurveAffine> Clone for ParamsIPA<C>

source§

fn clone(&self) -> ParamsIPA<C>

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

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

Performs copy-assignment from source. Read more
source§

impl<C: Debug + CurveAffine> Debug for ParamsIPA<C>

source§

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

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

impl<'params, C: CurveAffine> Params<'params, C> for ParamsIPA<C>

source§

fn commit_lagrange( &self, - engine: &impl MsmAccel<C>, + engine: &impl MsmAccel<C>, poly: &Polynomial<C::Scalar, LagrangeCoeff>, r: Blind<C::Scalar> ) -> C::Curve

This commits to a polynomial using its evaluations over the $2^k$ size @@ -30,7 +30,7 @@ points from.

source§

fn commit( &self, - engine: &impl MsmAccel<C>, + engine: &impl MsmAccel<C>, poly: &Polynomial<C::Scalar, Coeff>, r: Blind<C::Scalar> ) -> C::Curve

This computes a commitment to a polynomial described by the provided diff --git a/halo2_backend/poly/ipa/msm/struct.MSMIPA.html b/halo2_backend/poly/ipa/msm/struct.MSMIPA.html index fc99c34fb7..b3cb64245b 100644 --- a/halo2_backend/poly/ipa/msm/struct.MSMIPA.html +++ b/halo2_backend/poly/ipa/msm/struct.MSMIPA.html @@ -27,7 +27,7 @@ C::Base: Clone,

source§

fn clone(&self) -> MSMIPA<'params, C>

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

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

Performs copy-assignment from source. Read more
source§

impl<'params, C: Debug + CurveAffine> Debug for MSMIPA<'params, C>where C::Scalar: Debug, C::Base: Debug,

source§

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

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

impl<'a, C: CurveAffine> MSM<C> for MSMIPA<'a, C>

source§

fn add_msm(&mut self, other: &Self)

Add another multiexp into this one

-
source§

fn append_term(&mut self, scalar: C::Scalar, point: C::Curve)

Add arbitrary term (the scalar and the point)
source§

fn scale(&mut self, factor: C::Scalar)

Scale all scalars in the MSM by some scaling factor
source§

fn check(&self, engine: &impl MsmAccel<C>) -> bool

Perform multiexp and check that it results in zero
source§

fn eval(&self, engine: &impl MsmAccel<C>) -> C::Curve

Perform multiexp and return the result
source§

fn bases(&self) -> Vec<C::CurveExt>

Return base points
source§

fn scalars(&self) -> Vec<C::Scalar>

Scalars

Auto Trait Implementations§

§

impl<'params, C> RefUnwindSafe for MSMIPA<'params, C>where +

source§

fn append_term(&mut self, scalar: C::Scalar, point: C::Curve)

Add arbitrary term (the scalar and the point)
source§

fn scale(&mut self, factor: C::Scalar)

Scale all scalars in the MSM by some scaling factor
source§

fn check(&self, engine: &impl MsmAccel<C>) -> bool

Perform multiexp and check that it results in zero
source§

fn eval(&self, engine: &impl MsmAccel<C>) -> C::Curve

Perform multiexp and return the result
source§

fn bases(&self) -> Vec<C::CurveExt>

Return base points
source§

fn scalars(&self) -> Vec<C::Scalar>

Scalars

Auto Trait Implementations§

§

impl<'params, C> RefUnwindSafe for MSMIPA<'params, C>where C: RefUnwindSafe, <C as CurveAffine>::Base: RefUnwindSafe, <C as CurveAffine>::ScalarExt: RefUnwindSafe,

§

impl<'params, C> Send for MSMIPA<'params, C>

§

impl<'params, C> Sync for MSMIPA<'params, C>

§

impl<'params, C> Unpin for MSMIPA<'params, C>where diff --git a/halo2_backend/poly/ipa/multiopen/struct.ProverIPA.html b/halo2_backend/poly/ipa/multiopen/struct.ProverIPA.html index 5dd035f0aa..1c63475aa3 100644 --- a/halo2_backend/poly/ipa/multiopen/struct.ProverIPA.html +++ b/halo2_backend/poly/ipa/multiopen/struct.ProverIPA.html @@ -17,7 +17,7 @@
pub struct ProverIPA<'params, C: CurveAffine> { /* private fields */ }
Expand description

IPA multi-open prover

Trait Implementations§

source§

impl<'params, C: Debug + CurveAffine> Debug for ProverIPA<'params, C>

source§

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

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

impl<'params, C: CurveAffine> Prover<'params, IPACommitmentScheme<C>> for ProverIPA<'params, C>

source§

fn create_proof_with_engine<'com, Z: EncodedChallenge<C>, T: TranscriptWrite<C, Z>, R, I>( &self, - engine: &impl MsmAccel<C>, + engine: &impl MsmAccel<C>, rng: R, transcript: &mut T, queries: I diff --git a/halo2_backend/poly/ipa/multiopen/struct.VerifierIPA.html b/halo2_backend/poly/ipa/multiopen/struct.VerifierIPA.html index 982c4ca68d..4713a812ed 100644 --- a/halo2_backend/poly/ipa/multiopen/struct.VerifierIPA.html +++ b/halo2_backend/poly/ipa/multiopen/struct.VerifierIPA.html @@ -18,7 +18,7 @@

Trait Implementations§

source§

impl<'params, C: Debug + CurveAffine> Debug for VerifierIPA<'params, C>

source§

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

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

impl<'params, C: CurveAffine> VerificationStrategy<'params, IPACommitmentScheme<C>, VerifierIPA<'params, C>> for AccumulatorStrategy<'params, C>

source§

fn finalize(self) -> bool

Finalizes the batch and checks its validity.

Returns false if some proof was invalid. If the caller needs to identify specific failing proofs, it must re-process the proofs separately.

-
§

type Output = AccumulatorStrategy<'params, C>

The output type of this verification strategy after processing a proof.
source§

fn new(params: &'params ParamsIPA<C>) -> Self

Creates new verification strategy instance
source§

fn process( +

§

type Output = AccumulatorStrategy<'params, C>

The output type of this verification strategy after processing a proof.
source§

fn new(params: &'params ParamsIPA<C>) -> Self

Creates new verification strategy instance
source§

fn process( self, f: impl FnOnce(MSMIPA<'params, C>) -> Result<GuardIPA<'params, C>, Error> ) -> Result<Self::Output, Error>

Obtains an MSM from the verifier strategy and yields back the strategy’s @@ -30,7 +30,7 @@ f: impl FnOnce(MSMIPA<'params, C>) -> Result<GuardIPA<'params, C>, Error> ) -> Result<Self::Output, Error>

Obtains an MSM from the verifier strategy and yields back the strategy’s output.
source§

impl<'params, C: CurveAffine> Verifier<'params, IPACommitmentScheme<C>> for VerifierIPA<'params, C>

§

type Guard = GuardIPA<'params, C>

Unfinalized verification result. This is returned in verification -to allow developer to compress or combine verification results
§

type MSMAccumulator = MSMIPA<'params, C>

Accumulator for compressed verification
source§

const QUERY_INSTANCE: bool = true

Query instance or not
source§

fn new(params: &'params ParamsVerifierIPA<C>) -> Self

Creates new verifier instance
source§

fn verify_proof<'com, E: EncodedChallenge<C>, T: TranscriptRead<C, E>, I>( +to allow developer to compress or combine verification results

§

type MSMAccumulator = MSMIPA<'params, C>

Accumulator for compressed verification
source§

const QUERY_INSTANCE: bool = true

Query instance or not
source§

fn new(params: &'params ParamsVerifierIPA<C>) -> Self

Creates new verifier instance
source§

fn verify_proof<'com, E: EncodedChallenge<C>, T: TranscriptRead<C, E>, I>( &self, transcript: &mut T, queries: I, diff --git a/halo2_backend/poly/ipa/strategy/struct.GuardIPA.html b/halo2_backend/poly/ipa/strategy/struct.GuardIPA.html index 79d491f5b1..d8007e72f4 100644 --- a/halo2_backend/poly/ipa/strategy/struct.GuardIPA.html +++ b/halo2_backend/poly/ipa/strategy/struct.GuardIPA.html @@ -20,7 +20,7 @@ scalars and points.

source

pub fn use_g(self, g: C) -> (MSMIPA<'params, C>, Accumulator<C>)

Lets caller supply the purported G point and simply appends [-c] G to return an updated MSM.

-
source

pub fn compute_g(&self, engine: &impl MsmAccel<C>) -> C

Computes G = ⟨s, params.g⟩

+
source

pub fn compute_g(&self, engine: &impl MsmAccel<C>) -> C

Computes G = ⟨s, params.g⟩

Trait Implementations§

source§

impl<'params, C: Clone + CurveAffine> Clone for GuardIPA<'params, C>where C::Scalar: Clone,

source§

fn clone(&self) -> GuardIPA<'params, C>

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

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

Performs copy-assignment from source. Read more
source§

impl<'params, C: Debug + CurveAffine> Debug for GuardIPA<'params, C>where C::Scalar: Debug,

source§

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

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

impl<'params, C: CurveAffine> Guard<IPACommitmentScheme<C>> for GuardIPA<'params, C>

Define accumulator type as MSMIPA

diff --git a/halo2_backend/poly/kzg/commitment/struct.KZGCommitmentScheme.html b/halo2_backend/poly/kzg/commitment/struct.KZGCommitmentScheme.html index 9404f1abc2..fb2f1e9152 100644 --- a/halo2_backend/poly/kzg/commitment/struct.KZGCommitmentScheme.html +++ b/halo2_backend/poly/kzg/commitment/struct.KZGCommitmentScheme.html @@ -23,20 +23,20 @@ E::G1Affine: SerdeCurveAffine<ScalarExt = <E as Engine>::Fr, CurveExt = <E as Engine>::G1>, E::G1: CurveExt<AffineExt = E::G1Affine>, E::G2Affine: SerdeCurveAffine,

Define accumulator type as DualMSM

-
§

type MSMAccumulator = DualMSM<'params, E>

Multi scalar engine which is not evaluated yet.
source§

impl<'params, E: Engine + Debug> Prover<'params, KZGCommitmentScheme<E>> for ProverGWC<'params, E>where +

§

type MSMAccumulator = DualMSM<'params, E>

Multi scalar engine which is not evaluated yet.
source§

impl<'params, E: Engine + Debug> Prover<'params, KZGCommitmentScheme<E>> for ProverGWC<'params, E>where E::G1Affine: SerdeCurveAffine<ScalarExt = <E as Engine>::Fr, CurveExt = <E as Engine>::G1>, E::G1: CurveExt<AffineExt = E::G1Affine>, E::G2Affine: SerdeCurveAffine,

Create a multi-opening proof

source§

fn create_proof_with_engine<'com, Ch: EncodedChallenge<E::G1Affine>, T: TranscriptWrite<E::G1Affine, Ch>, R, I>( &self, - engine: &impl MsmAccel<E::G1Affine>, + engine: &impl MsmAccel<E::G1Affine>, _: R, transcript: &mut T, queries: I ) -> Result<()>where I: IntoIterator<Item = ProverQuery<'com, E::G1Affine>> + Clone, R: RngCore,

Create a multi-opening proof

-
source§

const QUERY_INSTANCE: bool = false

Query instance or not
source§

fn new(params: &'params ParamsKZG<E>) -> Self

Creates new prover instance
source§

fn create_proof<'com, E: EncodedChallenge<Scheme::Curve>, T: TranscriptWrite<Scheme::Curve, E>, R, I>( +

source§

const QUERY_INSTANCE: bool = false

Query instance or not
source§

fn new(params: &'params ParamsKZG<E>) -> Self

Creates new prover instance
source§

fn create_proof<'com, E: EncodedChallenge<Scheme::Curve>, T: TranscriptWrite<Scheme::Curve, E>, R, I>( &self, rng: R, transcript: &mut T, @@ -50,14 +50,14 @@ E::G2Affine: SerdeCurveAffine,

Create a multi-opening proof

source§

fn create_proof_with_engine<'com, Ch: EncodedChallenge<E::G1Affine>, T: TranscriptWrite<E::G1Affine, Ch>, R, I>( &self, - engine: &impl MsmAccel<E::G1Affine>, + engine: &impl MsmAccel<E::G1Affine>, _: R, transcript: &mut T, queries: I ) -> Result<()>where I: IntoIterator<Item = ProverQuery<'com, E::G1Affine>> + Clone, R: RngCore,

Create a multi-opening proof

-
source§

const QUERY_INSTANCE: bool = false

Query instance or not
source§

fn new(params: &'params ParamsKZG<E>) -> Self

Creates new prover instance
source§

fn create_proof<'com, E: EncodedChallenge<Scheme::Curve>, T: TranscriptWrite<Scheme::Curve, E>, R, I>( +

source§

const QUERY_INSTANCE: bool = false

Query instance or not
source§

fn new(params: &'params ParamsKZG<E>) -> Self

Creates new prover instance
source§

fn create_proof<'com, E: EncodedChallenge<Scheme::Curve>, T: TranscriptWrite<Scheme::Curve, E>, R, I>( &self, rng: R, transcript: &mut T, @@ -67,14 +67,14 @@ R: RngCore,

Create a multi-opening proof
source§

impl<'params, E: MultiMillerLoop + Debug, V: Verifier<'params, KZGCommitmentScheme<E>, MSMAccumulator = DualMSM<'params, E>, Guard = GuardKZG<'params, E>>> VerificationStrategy<'params, KZGCommitmentScheme<E>, V> for AccumulatorStrategy<'params, E>where E::G1Affine: SerdeCurveAffine<ScalarExt = <E as Engine>::Fr, CurveExt = <E as Engine>::G1>, E::G1: CurveExt<AffineExt = E::G1Affine>, - E::G2Affine: SerdeCurveAffine,

§

type Output = AccumulatorStrategy<'params, E>

The output type of this verification strategy after processing a proof.
source§

fn new(params: &'params ParamsKZG<E>) -> Self

Creates new verification strategy instance
source§

fn process( + E::G2Affine: SerdeCurveAffine,

§

type Output = AccumulatorStrategy<'params, E>

The output type of this verification strategy after processing a proof.
source§

fn new(params: &'params ParamsKZG<E>) -> Self

Creates new verification strategy instance
source§

fn process( self, f: impl FnOnce(V::MSMAccumulator) -> Result<V::Guard, Error> ) -> Result<Self::Output, Error>

Obtains an MSM from the verifier strategy and yields back the strategy’s output.
source§

fn finalize(self) -> bool

Finalizes the batch and checks its validity. Read more
source§

impl<'params, E: MultiMillerLoop + Debug, V: Verifier<'params, KZGCommitmentScheme<E>, MSMAccumulator = DualMSM<'params, E>, Guard = GuardKZG<'params, E>>> VerificationStrategy<'params, KZGCommitmentScheme<E>, V> for SingleStrategy<'params, E>where E::G1Affine: SerdeCurveAffine<ScalarExt = <E as Engine>::Fr, CurveExt = <E as Engine>::G1>, E::G1: CurveExt<AffineExt = E::G1Affine>, - E::G2Affine: SerdeCurveAffine,

§

type Output = ()

The output type of this verification strategy after processing a proof.
source§

fn new(params: &'params ParamsKZG<E>) -> Self

Creates new verification strategy instance
source§

fn process( + E::G2Affine: SerdeCurveAffine,

§

type Output = ()

The output type of this verification strategy after processing a proof.
source§

fn new(params: &'params ParamsKZG<E>) -> Self

Creates new verification strategy instance
source§

fn process( self, f: impl FnOnce(V::MSMAccumulator) -> Result<V::Guard, Error> ) -> Result<Self::Output, Error>

Obtains an MSM from the verifier strategy and yields back the strategy’s @@ -83,7 +83,7 @@ E::G1Affine: SerdeCurveAffine<ScalarExt = <E as Engine>::Fr, CurveExt = <E as Engine>::G1>, E::G1: CurveExt<AffineExt = E::G1Affine>, E::G2Affine: SerdeCurveAffine,
§

type Guard = GuardKZG<'params, E>

Unfinalized verification result. This is returned in verification -to allow developer to compress or combine verification results
§

type MSMAccumulator = DualMSM<'params, E>

Accumulator for compressed verification
source§

const QUERY_INSTANCE: bool = false

Query instance or not
source§

fn new(params: &'params ParamsKZG<E>) -> Self

Creates new verifier instance
source§

fn verify_proof<'com, Ch: EncodedChallenge<E::G1Affine>, T: TranscriptRead<E::G1Affine, Ch>, I>( +to allow developer to compress or combine verification results

§

type MSMAccumulator = DualMSM<'params, E>

Accumulator for compressed verification
source§

const QUERY_INSTANCE: bool = false

Query instance or not
source§

fn new(params: &'params ParamsKZG<E>) -> Self

Creates new verifier instance
source§

fn verify_proof<'com, Ch: EncodedChallenge<E::G1Affine>, T: TranscriptRead<E::G1Affine, Ch>, I>( &self, transcript: &mut T, queries: I, @@ -102,7 +102,7 @@ ) -> Result<Self::Guard, Error>where I: IntoIterator<Item = VerifierQuery<'com, E::G1Affine, MSMKZG<E>>> + Clone,

Verify a multi-opening proof

§

type Guard = GuardKZG<'params, E>

Unfinalized verification result. This is returned in verification -to allow developer to compress or combine verification results
§

type MSMAccumulator = DualMSM<'params, E>

Accumulator for compressed verification
source§

const QUERY_INSTANCE: bool = false

Query instance or not
source§

fn new(params: &'params ParamsKZG<E>) -> Self

Creates new verifier instance

Auto Trait Implementations§

§

impl<E> RefUnwindSafe for KZGCommitmentScheme<E>where +to allow developer to compress or combine verification results

§

type MSMAccumulator = DualMSM<'params, E>

Accumulator for compressed verification
source§

const QUERY_INSTANCE: bool = false

Query instance or not
source§

fn new(params: &'params ParamsKZG<E>) -> Self

Creates new verifier instance

Auto Trait Implementations§

§

impl<E> RefUnwindSafe for KZGCommitmentScheme<E>where E: RefUnwindSafe,

§

impl<E> Send for KZGCommitmentScheme<E>

§

impl<E> Sync for KZGCommitmentScheme<E>

§

impl<E> Unpin for KZGCommitmentScheme<E>where E: Unpin,

§

impl<E> UnwindSafe for KZGCommitmentScheme<E>where E: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for Twhere diff --git a/halo2_backend/poly/kzg/commitment/struct.ParamsKZG.html b/halo2_backend/poly/kzg/commitment/struct.ParamsKZG.html index f88825d442..f7d8e8d2dc 100644 --- a/halo2_backend/poly/kzg/commitment/struct.ParamsKZG.html +++ b/halo2_backend/poly/kzg/commitment/struct.ParamsKZG.html @@ -52,7 +52,7 @@

§

type MSM = MSMKZG<E>

Multiscalar multiplication engine
source§

fn k(&self) -> u32

Logarithmic size of the circuit
source§

fn n(&self) -> u64

Size of the circuit
source§

fn downsize(&mut self, k: u32)

Downsize Params with smaller k.
source§

fn empty_msm(&'params self) -> MSMKZG<E>

Generates an empty multiscalar multiplication struct using the appropriate params.
source§

fn commit_lagrange( &self, - engine: &impl MsmAccel<E::G1Affine>, + engine: &impl MsmAccel<E::G1Affine>, poly: &Polynomial<E::Fr, LagrangeCoeff>, _: Blind<E::Fr> ) -> E::G1

This commits to a polynomial using its evaluations over the $2^k$ size @@ -62,7 +62,7 @@ E::G1: CurveExt<AffineExt = E::G1Affine>, E::G2Affine: SerdeCurveAffine,
§

type ParamsVerifier = ParamsKZG<E>

Constant verifier parameters.
source§

fn verifier_params(&'params self) -> &'params Self::ParamsVerifier

Returns verification parameters.
source§

fn new(k: u32) -> Self

Returns new instance of parameters
source§

fn commit( &self, - engine: &impl MsmAccel<E::G1Affine>, + engine: &impl MsmAccel<E::G1Affine>, poly: &Polynomial<E::Fr, Coeff>, _: Blind<E::Fr> ) -> E::G1

This computes a commitment to a polynomial described by the provided diff --git a/halo2_backend/poly/kzg/commitment/type.ParamsVerifierKZG.html b/halo2_backend/poly/kzg/commitment/type.ParamsVerifierKZG.html index e4436529be..d5cdcea366 100644 --- a/halo2_backend/poly/kzg/commitment/type.ParamsVerifierKZG.html +++ b/halo2_backend/poly/kzg/commitment/type.ParamsVerifierKZG.html @@ -50,7 +50,7 @@
§

type MSM = MSMKZG<E>

Multiscalar multiplication engine
source§

fn k(&self) -> u32

Logarithmic size of the circuit
source§

fn n(&self) -> u64

Size of the circuit
source§

fn downsize(&mut self, k: u32)

Downsize Params with smaller k.
source§

fn empty_msm(&'params self) -> MSMKZG<E>

Generates an empty multiscalar multiplication struct using the appropriate params.
source§

fn commit_lagrange( &self, - engine: &impl MsmAccel<E::G1Affine>, + engine: &impl MsmAccel<E::G1Affine>, poly: &Polynomial<E::Fr, LagrangeCoeff>, _: Blind<E::Fr> ) -> E::G1

This commits to a polynomial using its evaluations over the $2^k$ size @@ -60,7 +60,7 @@ E::G1: CurveExt<AffineExt = E::G1Affine>, E::G2Affine: SerdeCurveAffine,
§

type ParamsVerifier = ParamsKZG<E>

Constant verifier parameters.
source§

fn verifier_params(&'params self) -> &'params Self::ParamsVerifier

Returns verification parameters.
source§

fn new(k: u32) -> Self

Returns new instance of parameters
source§

fn commit( &self, - engine: &impl MsmAccel<E::G1Affine>, + engine: &impl MsmAccel<E::G1Affine>, poly: &Polynomial<E::Fr, Coeff>, _: Blind<E::Fr> ) -> E::G1

This computes a commitment to a polynomial described by the provided diff --git a/halo2_backend/poly/kzg/msm/struct.DualMSM.html b/halo2_backend/poly/kzg/msm/struct.DualMSM.html index dac6d1bfe7..259f5f6350 100644 --- a/halo2_backend/poly/kzg/msm/struct.DualMSM.html +++ b/halo2_backend/poly/kzg/msm/struct.DualMSM.html @@ -22,7 +22,7 @@ E::G1: CurveExt<AffineExt = E::G1Affine>,
source

pub fn new(params: &'a ParamsKZG<E>) -> Self

Create a new two channel MSM accumulator instance

source

pub fn scale(&mut self, e: E::Fr)

Scale all scalars in the MSM by some scaling factor

source

pub fn add_msm(&mut self, other: Self)

Add another multiexp into this one

-
source

pub fn check(self, engine: &impl MsmAccel<E::G1Affine>) -> bool

Performs final pairing check with given verifier params and two channel linear combination

+
source

pub fn check(self, engine: &impl MsmAccel<E::G1Affine>) -> bool

Performs final pairing check with given verifier params and two channel linear combination

Trait Implementations§

source§

impl<'a, E: Clone + Engine> Clone for DualMSM<'a, E>where E::G1Affine: CurveAffine<ScalarExt = <E as Engine>::Fr, CurveExt = <E as Engine>::G1>, E::G1: CurveExt<AffineExt = E::G1Affine>,

source§

fn clone(&self) -> DualMSM<'a, E>

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

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

Performs copy-assignment from source. Read more
source§

impl<'a, E: Debug + Engine> Debug for DualMSM<'a, E>where diff --git a/halo2_backend/poly/kzg/msm/struct.MSMKZG.html b/halo2_backend/poly/kzg/msm/struct.MSMKZG.html index e6c12147d7..fb40e8a1ec 100644 --- a/halo2_backend/poly/kzg/msm/struct.MSMKZG.html +++ b/halo2_backend/poly/kzg/msm/struct.MSMKZG.html @@ -32,7 +32,7 @@ E::G1: CurveExt<AffineExt = E::G1Affine> + Default, E::Fr: Default,

source§

fn default() -> MSMKZG<E>

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

impl<E: Engine + Debug> MSM<<E as Engine>::G1Affine> for MSMKZG<E>where E::G1Affine: CurveAffine<ScalarExt = <E as Engine>::Fr, CurveExt = <E as Engine>::G1>, - E::G1: CurveExt<AffineExt = E::G1Affine>,

source§

fn append_term(&mut self, scalar: E::Fr, point: E::G1)

Add arbitrary term (the scalar and the point)
source§

fn add_msm(&mut self, other: &Self)

Add another multiexp into this one
source§

fn scale(&mut self, factor: E::Fr)

Scale all scalars in the MSM by some scaling factor
source§

fn check(&self, engine: &impl MsmAccel<E::G1Affine>) -> bool

Perform multiexp and check that it results in zero
source§

fn eval(&self, engine: &impl MsmAccel<E::G1Affine>) -> E::G1

Perform multiexp and return the result
source§

fn bases(&self) -> Vec<E::G1>

Return base points
source§

fn scalars(&self) -> Vec<E::Fr>

Scalars

Auto Trait Implementations§

§

impl<E> RefUnwindSafe for MSMKZG<E>where + E::G1: CurveExt<AffineExt = E::G1Affine>,

source§

fn append_term(&mut self, scalar: E::Fr, point: E::G1)

Add arbitrary term (the scalar and the point)
source§

fn add_msm(&mut self, other: &Self)

Add another multiexp into this one
source§

fn scale(&mut self, factor: E::Fr)

Scale all scalars in the MSM by some scaling factor
source§

fn check(&self, engine: &impl MsmAccel<E::G1Affine>) -> bool

Perform multiexp and check that it results in zero
source§

fn eval(&self, engine: &impl MsmAccel<E::G1Affine>) -> E::G1

Perform multiexp and return the result
source§

fn bases(&self) -> Vec<E::G1>

Return base points
source§

fn scalars(&self) -> Vec<E::Fr>

Scalars

Auto Trait Implementations§

§

impl<E> RefUnwindSafe for MSMKZG<E>where <E as Engine>::Fr: RefUnwindSafe, <E as Engine>::G1: RefUnwindSafe,

§

impl<E> Send for MSMKZG<E>

§

impl<E> Sync for MSMKZG<E>

§

impl<E> Unpin for MSMKZG<E>where <E as Engine>::Fr: Unpin, diff --git a/halo2_backend/poly/kzg/multiopen/struct.ProverGWC.html b/halo2_backend/poly/kzg/multiopen/struct.ProverGWC.html index d332a8f324..e7cd88ad7a 100644 --- a/halo2_backend/poly/kzg/multiopen/struct.ProverGWC.html +++ b/halo2_backend/poly/kzg/multiopen/struct.ProverGWC.html @@ -21,7 +21,7 @@ E::G2Affine: SerdeCurveAffine,

Create a multi-opening proof

source§

fn create_proof_with_engine<'com, Ch: EncodedChallenge<E::G1Affine>, T: TranscriptWrite<E::G1Affine, Ch>, R, I>( &self, - engine: &impl MsmAccel<E::G1Affine>, + engine: &impl MsmAccel<E::G1Affine>, _: R, transcript: &mut T, queries: I diff --git a/halo2_backend/poly/kzg/multiopen/struct.ProverSHPLONK.html b/halo2_backend/poly/kzg/multiopen/struct.ProverSHPLONK.html index 4c3cb02dd3..61ccacf147 100644 --- a/halo2_backend/poly/kzg/multiopen/struct.ProverSHPLONK.html +++ b/halo2_backend/poly/kzg/multiopen/struct.ProverSHPLONK.html @@ -23,7 +23,7 @@ E::G2Affine: SerdeCurveAffine,

Create a multi-opening proof

source§

fn create_proof_with_engine<'com, Ch: EncodedChallenge<E::G1Affine>, T: TranscriptWrite<E::G1Affine, Ch>, R, I>( &self, - engine: &impl MsmAccel<E::G1Affine>, + engine: &impl MsmAccel<E::G1Affine>, _: R, transcript: &mut T, queries: I diff --git a/halo2_backend/poly/struct.EvaluationDomain.html b/halo2_backend/poly/struct.EvaluationDomain.html index d905756743..8c36f2c2ef 100644 --- a/halo2_backend/poly/struct.EvaluationDomain.html +++ b/halo2_backend/poly/struct.EvaluationDomain.html @@ -49,7 +49,7 @@

source

pub fn rotate_extended( &self, poly: &Polynomial<F, ExtendedLagrangeCoeff>, - rotation: Rotation + rotation: Rotation ) -> Polynomial<F, ExtendedLagrangeCoeff>

Rotate the extended domain polynomial over the original domain.

source

pub fn extended_to_coeff( &self, @@ -70,7 +70,7 @@

source

pub fn get_omega_inv(&self) -> F

Get $\omega^{-1}$, the inverse of the generator of the $2^k$ order multiplicative subgroup.

source

pub fn get_extended_omega(&self) -> F

Get the generator of the extended domain’s multiplicative subgroup.

-
source

pub fn rotate_omega(&self, value: F, rotation: Rotation) -> F

Multiplies a value by some power of $\omega$, essentially rotating over +

source

pub fn rotate_omega(&self, value: F, rotation: Rotation) -> F

Multiplies a value by some power of $\omega$, essentially rotating over the domain.

source

pub fn l_i_range<I: IntoIterator<Item = i32> + Clone>( &self, diff --git a/halo2_backend/poly/struct.Polynomial.html b/halo2_backend/poly/struct.Polynomial.html index 6fb5d744d9..410338755a 100644 --- a/halo2_backend/poly/struct.Polynomial.html +++ b/halo2_backend/poly/struct.Polynomial.html @@ -28,7 +28,7 @@ evaluation form depending on the basis B.

source

pub fn num_coeffs(&self) -> usize

Gets the size of this polynomial in terms of the number of coefficients used to describe it.

-
source§

impl<F: Field> Polynomial<F, LagrangeCoeff>

source

pub fn rotate(&self, rotation: Rotation) -> Polynomial<F, LagrangeCoeff>

Rotates the values in a Lagrange basis polynomial by Rotation

+
source§

impl<F: Field> Polynomial<F, LagrangeCoeff>

source

pub fn rotate(&self, rotation: Rotation) -> Polynomial<F, LagrangeCoeff>

Rotates the values in a Lagrange basis polynomial by Rotation

Methods from Deref<Target = [F]>§

source

pub fn sort_floats(&mut self)

🔬This is a nightly-only experimental API. (sort_floats)

Sorts the slice of floats.

This sort is in-place (i.e. does not allocate), O(n * log(n)) worst-case, and uses the ordering defined by f64::total_cmp.

@@ -2369,7 +2369,7 @@
Examples

ASCII letters ‘A’ to ‘Z’ are mapped to ‘a’ to ‘z’, but non-ASCII letters are unchanged.

To lowercase the value in-place, use make_ascii_lowercase.

-

Trait Implementations§

source§

impl<'a, F: Field, B: Basis> Add<&'a Polynomial<F, B>> for Polynomial<F, B>

§

type Output = Polynomial<F, B>

The resulting type after applying the + operator.
source§

fn add(self, rhs: &'a Polynomial<F, B>) -> Polynomial<F, B>

Performs the + operation. Read more
source§

impl<F: Clone, B: Clone> Clone for Polynomial<F, B>

source§

fn clone(&self) -> Polynomial<F, B>

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

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

Performs copy-assignment from source. Read more
source§

impl<F: Debug, B: Debug> Debug for Polynomial<F, B>

source§

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

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

impl<F, B> Deref for Polynomial<F, B>

§

type Target = [F]

The resulting type after dereferencing.
source§

fn deref(&self) -> &[F]

Dereferences the value.
source§

impl<F, B> DerefMut for Polynomial<F, B>

source§

fn deref_mut(&mut self) -> &mut [F]

Mutably dereferences the value.
source§

impl<F, B> Index<RangeFrom<usize>> for Polynomial<F, B>

§

type Output = [F]

The returned type after indexing.
source§

fn index(&self, index: RangeFrom<usize>) -> &[F]

Performs the indexing (container[index]) operation. Read more
source§

impl<F, B> Index<RangeFull> for Polynomial<F, B>

§

type Output = [F]

The returned type after indexing.
source§

fn index(&self, index: RangeFull) -> &[F]

Performs the indexing (container[index]) operation. Read more
source§

impl<F, B> Index<usize> for Polynomial<F, B>

§

type Output = F

The returned type after indexing.
source§

fn index(&self, index: usize) -> &F

Performs the indexing (container[index]) operation. Read more
source§

impl<F, B> IndexMut<RangeFrom<usize>> for Polynomial<F, B>

source§

fn index_mut(&mut self, index: RangeFrom<usize>) -> &mut [F]

Performs the mutable indexing (container[index]) operation. Read more
source§

impl<F, B> IndexMut<RangeFull> for Polynomial<F, B>

source§

fn index_mut(&mut self, index: RangeFull) -> &mut [F]

Performs the mutable indexing (container[index]) operation. Read more
source§

impl<F, B> IndexMut<usize> for Polynomial<F, B>

source§

fn index_mut(&mut self, index: usize) -> &mut F

Performs the mutable indexing (container[index]) operation. Read more
source§

impl<F: Field, B: Basis> Mul<F> for Polynomial<F, B>

§

type Output = Polynomial<F, B>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: F) -> Polynomial<F, B>

Performs the * operation. Read more
source§

impl<'a, F: Field, B: Basis> Sub<&'a Polynomial<F, B>> for Polynomial<F, B>

§

type Output = Polynomial<F, B>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: &'a Polynomial<F, B>) -> Polynomial<F, B>

Performs the - operation. Read more
source§

impl<'a, F: Field, B: Basis> Sub<F> for &'a Polynomial<F, B>

§

type Output = Polynomial<F, B>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: F) -> Polynomial<F, B>

Performs the - operation. Read more

Auto Trait Implementations§

§

impl<F, B> RefUnwindSafe for Polynomial<F, B>where +

Trait Implementations§

source§

impl<'a, F: Field, B: Basis> Add<&'a Polynomial<F, B>> for Polynomial<F, B>

§

type Output = Polynomial<F, B>

The resulting type after applying the + operator.
source§

fn add(self, rhs: &'a Polynomial<F, B>) -> Polynomial<F, B>

Performs the + operation. Read more
source§

impl<F: Clone, B: Clone> Clone for Polynomial<F, B>

source§

fn clone(&self) -> Polynomial<F, B>

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

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

Performs copy-assignment from source. Read more
source§

impl<F: Debug, B: Debug> Debug for Polynomial<F, B>

source§

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

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

impl<F, B> Deref for Polynomial<F, B>

§

type Target = [F]

The resulting type after dereferencing.
source§

fn deref(&self) -> &[F]

Dereferences the value.
source§

impl<F, B> DerefMut for Polynomial<F, B>

source§

fn deref_mut(&mut self) -> &mut [F]

Mutably dereferences the value.
source§

impl<F, B> Index<RangeFrom<usize>> for Polynomial<F, B>

§

type Output = [F]

The returned type after indexing.
source§

fn index(&self, index: RangeFrom<usize>) -> &[F]

Performs the indexing (container[index]) operation. Read more
source§

impl<F, B> Index<RangeFull> for Polynomial<F, B>

§

type Output = [F]

The returned type after indexing.
source§

fn index(&self, index: RangeFull) -> &[F]

Performs the indexing (container[index]) operation. Read more
source§

impl<F, B> Index<usize> for Polynomial<F, B>

§

type Output = F

The returned type after indexing.
source§

fn index(&self, index: usize) -> &F

Performs the indexing (container[index]) operation. Read more
source§

impl<F, B> IndexMut<RangeFrom<usize>> for Polynomial<F, B>

source§

fn index_mut(&mut self, index: RangeFrom<usize>) -> &mut [F]

Performs the mutable indexing (container[index]) operation. Read more
source§

impl<F, B> IndexMut<RangeFull> for Polynomial<F, B>

source§

fn index_mut(&mut self, index: RangeFull) -> &mut [F]

Performs the mutable indexing (container[index]) operation. Read more
source§

impl<F, B> IndexMut<usize> for Polynomial<F, B>

source§

fn index_mut(&mut self, index: usize) -> &mut F

Performs the mutable indexing (container[index]) operation. Read more
source§

impl<F: Field, B: Basis> Mul<F> for Polynomial<F, B>

§

type Output = Polynomial<F, B>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: F) -> Polynomial<F, B>

Performs the * operation. Read more
source§

impl<'a, F: Field, B: Basis> Sub<&'a Polynomial<F, B>> for Polynomial<F, B>

§

type Output = Polynomial<F, B>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: &'a Polynomial<F, B>) -> Polynomial<F, B>

Performs the - operation. Read more
source§

impl<'a, F: Field, B: Basis> Sub<F> for &'a Polynomial<F, B>

§

type Output = Polynomial<F, B>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: F) -> Polynomial<F, B>

Performs the - operation. Read more

Auto Trait Implementations§

§

impl<F, B> RefUnwindSafe for Polynomial<F, B>where B: RefUnwindSafe, F: RefUnwindSafe,

§

impl<F, B> Send for Polynomial<F, B>where B: Send, diff --git a/halo2_backend/transcript/struct.Challenge255.html b/halo2_backend/transcript/struct.Challenge255.html index 5da0d7fa81..4768710ec2 100644 --- a/halo2_backend/transcript/struct.Challenge255.html +++ b/halo2_backend/transcript/struct.Challenge255.html @@ -111,29 +111,29 @@
Examples
C::Scalar: FromUniformBytes<64>,

§

type Input = [u8; 64]

The Input type used to derive the challenge encoding. For example, an input from the Poseidon hash would be a base field element; an input from the Blake2b hash would be a [u8; 64].
source§

fn new(challenge_input: &[u8; 64]) -> Self

Get an encoded challenge from a given input challenge.
source§

fn get_scalar(&self) -> C::Scalar

Get a scalar field element from an encoded challenge.
source§

fn as_challenge_scalar<T>(&self) -> ChallengeScalar<C, T>

Cast an encoded challenge as a typed ChallengeScalar.
source§

impl<R: Read, C: CurveAffine> Transcript<C, Challenge255<C>> for Blake2bRead<R, C, Challenge255<C>>where - C::Scalar: FromUniformBytes<64>,

source§

fn squeeze_challenge(&mut self) -> Challenge255<C>

Squeeze an encoded verifier challenge from the transcript.
source§

fn common_point(&mut self, point: C) -> Result<()>

Writing the point to the transcript without writing it to the proof, -treating it as a common input.
source§

fn common_scalar(&mut self, scalar: C::Scalar) -> Result<()>

Writing the scalar to the transcript without writing it to the proof, -treating it as a common input.
source§

fn squeeze_challenge_scalar<T>(&mut self) -> ChallengeScalar<C, T>

Squeeze a typed challenge (in the scalar field) from the transcript.
source§

impl<W: Write, C: CurveAffine> Transcript<C, Challenge255<C>> for Blake2bWrite<W, C, Challenge255<C>>where - C::Scalar: FromUniformBytes<64>,

source§

fn squeeze_challenge(&mut self) -> Challenge255<C>

Squeeze an encoded verifier challenge from the transcript.
source§

fn common_point(&mut self, point: C) -> Result<()>

Writing the point to the transcript without writing it to the proof, -treating it as a common input.
source§

fn common_scalar(&mut self, scalar: C::Scalar) -> Result<()>

Writing the scalar to the transcript without writing it to the proof, -treating it as a common input.
source§

fn squeeze_challenge_scalar<T>(&mut self) -> ChallengeScalar<C, T>

Squeeze a typed challenge (in the scalar field) from the transcript.
source§

impl<R: Read, C: CurveAffine> Transcript<C, Challenge255<C>> for Keccak256Read<R, C, Challenge255<C>>where - C::Scalar: FromUniformBytes<64>,

source§

fn squeeze_challenge(&mut self) -> Challenge255<C>

Squeeze an encoded verifier challenge from the transcript.
source§

fn common_point(&mut self, point: C) -> Result<()>

Writing the point to the transcript without writing it to the proof, -treating it as a common input.
source§

fn common_scalar(&mut self, scalar: C::Scalar) -> Result<()>

Writing the scalar to the transcript without writing it to the proof, -treating it as a common input.
source§

fn squeeze_challenge_scalar<T>(&mut self) -> ChallengeScalar<C, T>

Squeeze a typed challenge (in the scalar field) from the transcript.
source§

impl<W: Write, C: CurveAffine> Transcript<C, Challenge255<C>> for Keccak256Write<W, C, Challenge255<C>>where - C::Scalar: FromUniformBytes<64>,

source§

fn squeeze_challenge(&mut self) -> Challenge255<C>

Squeeze an encoded verifier challenge from the transcript.
source§

fn common_point(&mut self, point: C) -> Result<()>

Writing the point to the transcript without writing it to the proof, -treating it as a common input.
source§

fn common_scalar(&mut self, scalar: C::Scalar) -> Result<()>

Writing the scalar to the transcript without writing it to the proof, -treating it as a common input.
source§

fn squeeze_challenge_scalar<T>(&mut self) -> ChallengeScalar<C, T>

Squeeze a typed challenge (in the scalar field) from the transcript.
source§

impl<R: Read, C: CurveAffine> TranscriptRead<C, Challenge255<C>> for Blake2bRead<R, C, Challenge255<C>>where - C::Scalar: FromUniformBytes<64>,

source§

fn read_point(&mut self) -> Result<C>

Read a curve point from the prover.
source§

fn read_scalar(&mut self) -> Result<C::Scalar>

Read a curve scalar from the prover.
source§

impl<R: Read, C: CurveAffine> TranscriptRead<C, Challenge255<C>> for Keccak256Read<R, C, Challenge255<C>>where - C::Scalar: FromUniformBytes<64>,

source§

fn read_point(&mut self) -> Result<C>

Read a curve point from the prover.
source§

fn read_scalar(&mut self) -> Result<C::Scalar>

Read a curve scalar from the prover.
source§

impl<R: Read, C: CurveAffine> TranscriptReadBuffer<R, C, Challenge255<C>> for Blake2bRead<R, C, Challenge255<C>>where + C::Scalar: FromUniformBytes<64>,

source§

fn squeeze_challenge(&mut self) -> Challenge255<C>

Squeeze an encoded verifier challenge from the transcript.
source§

fn common_point(&mut self, point: C) -> Result<()>

Writing the point to the transcript without writing it to the proof, +treating it as a common input.
source§

fn common_scalar(&mut self, scalar: C::Scalar) -> Result<()>

Writing the scalar to the transcript without writing it to the proof, +treating it as a common input.
source§

fn squeeze_challenge_scalar<T>(&mut self) -> ChallengeScalar<C, T>

Squeeze a typed challenge (in the scalar field) from the transcript.
source§

impl<W: Write, C: CurveAffine> Transcript<C, Challenge255<C>> for Blake2bWrite<W, C, Challenge255<C>>where + C::Scalar: FromUniformBytes<64>,

source§

fn squeeze_challenge(&mut self) -> Challenge255<C>

Squeeze an encoded verifier challenge from the transcript.
source§

fn common_point(&mut self, point: C) -> Result<()>

Writing the point to the transcript without writing it to the proof, +treating it as a common input.
source§

fn common_scalar(&mut self, scalar: C::Scalar) -> Result<()>

Writing the scalar to the transcript without writing it to the proof, +treating it as a common input.
source§

fn squeeze_challenge_scalar<T>(&mut self) -> ChallengeScalar<C, T>

Squeeze a typed challenge (in the scalar field) from the transcript.
source§

impl<R: Read, C: CurveAffine> Transcript<C, Challenge255<C>> for Keccak256Read<R, C, Challenge255<C>>where + C::Scalar: FromUniformBytes<64>,

source§

fn squeeze_challenge(&mut self) -> Challenge255<C>

Squeeze an encoded verifier challenge from the transcript.
source§

fn common_point(&mut self, point: C) -> Result<()>

Writing the point to the transcript without writing it to the proof, +treating it as a common input.
source§

fn common_scalar(&mut self, scalar: C::Scalar) -> Result<()>

Writing the scalar to the transcript without writing it to the proof, +treating it as a common input.
source§

fn squeeze_challenge_scalar<T>(&mut self) -> ChallengeScalar<C, T>

Squeeze a typed challenge (in the scalar field) from the transcript.
source§

impl<W: Write, C: CurveAffine> Transcript<C, Challenge255<C>> for Keccak256Write<W, C, Challenge255<C>>where + C::Scalar: FromUniformBytes<64>,

source§

fn squeeze_challenge(&mut self) -> Challenge255<C>

Squeeze an encoded verifier challenge from the transcript.
source§

fn common_point(&mut self, point: C) -> Result<()>

Writing the point to the transcript without writing it to the proof, +treating it as a common input.
source§

fn common_scalar(&mut self, scalar: C::Scalar) -> Result<()>

Writing the scalar to the transcript without writing it to the proof, +treating it as a common input.
source§

fn squeeze_challenge_scalar<T>(&mut self) -> ChallengeScalar<C, T>

Squeeze a typed challenge (in the scalar field) from the transcript.
source§

impl<R: Read, C: CurveAffine> TranscriptRead<C, Challenge255<C>> for Blake2bRead<R, C, Challenge255<C>>where + C::Scalar: FromUniformBytes<64>,

source§

fn read_point(&mut self) -> Result<C>

Read a curve point from the prover.
source§

fn read_scalar(&mut self) -> Result<C::Scalar>

Read a curve scalar from the prover.
source§

impl<R: Read, C: CurveAffine> TranscriptRead<C, Challenge255<C>> for Keccak256Read<R, C, Challenge255<C>>where + C::Scalar: FromUniformBytes<64>,

source§

fn read_point(&mut self) -> Result<C>

Read a curve point from the prover.
source§

fn read_scalar(&mut self) -> Result<C::Scalar>

Read a curve scalar from the prover.
source§

impl<R: Read, C: CurveAffine> TranscriptReadBuffer<R, C, Challenge255<C>> for Blake2bRead<R, C, Challenge255<C>>where C::Scalar: FromUniformBytes<64>,

source§

fn init(reader: R) -> Self

Initialize a transcript given an input buffer.

source§

impl<R: Read, C: CurveAffine> TranscriptReadBuffer<R, C, Challenge255<C>> for Keccak256Read<R, C, Challenge255<C>>where - C::Scalar: FromUniformBytes<64>,

source§

fn init(reader: R) -> Self

Initialize a transcript given an input buffer.

+ C::Scalar: FromUniformBytes<64>,
source§

fn init(reader: R) -> Self

Initialize a transcript given an input buffer.

source§

impl<W: Write, C: CurveAffine> TranscriptWrite<C, Challenge255<C>> for Blake2bWrite<W, C, Challenge255<C>>where C::Scalar: FromUniformBytes<64>,

source§

fn write_point(&mut self, point: C) -> Result<()>

Write a curve point to the proof and the transcript.
source§

fn write_scalar(&mut self, scalar: C::Scalar) -> Result<()>

Write a scalar to the proof and the transcript.
source§

impl<W: Write, C: CurveAffine> TranscriptWrite<C, Challenge255<C>> for Keccak256Write<W, C, Challenge255<C>>where C::Scalar: FromUniformBytes<64>,

source§

fn write_point(&mut self, point: C) -> Result<()>

Write a curve point to the proof and the transcript.
source§

fn write_scalar(&mut self, scalar: C::Scalar) -> Result<()>

Write a scalar to the proof and the transcript.
source§

impl<W: Write, C: CurveAffine> TranscriptWriterBuffer<W, C, Challenge255<C>> for Blake2bWrite<W, C, Challenge255<C>>where - C::Scalar: FromUniformBytes<64>,

source§

fn init(writer: W) -> Self

Initialize a transcript given an output buffer.

+ C::Scalar: FromUniformBytes<64>,
source§

fn init(writer: W) -> Self

Initialize a transcript given an output buffer.

source§

fn finalize(self) -> W

Conclude the interaction and return the output buffer (writer).
source§

impl<W: Write, C: CurveAffine> TranscriptWriterBuffer<W, C, Challenge255<C>> for Keccak256Write<W, C, Challenge255<C>>where - C::Scalar: FromUniformBytes<64>,

source§

fn init(writer: W) -> Self

Initialize a transcript given an output buffer.

+ C::Scalar: FromUniformBytes<64>,
source§

fn init(writer: W) -> Self

Initialize a transcript given an output buffer.

source§

fn finalize(self) -> W

Conclude the interaction and return the output buffer (writer).

source§

impl<C: Copy + CurveAffine> Copy for Challenge255<C>

Auto Trait Implementations§

§

impl<C> RefUnwindSafe for Challenge255<C>where C: RefUnwindSafe,

§

impl<C> Send for Challenge255<C>

§

impl<C> Sync for Challenge255<C>

§

impl<C> Unpin for Challenge255<C>where diff --git a/halo2_frontend/circuit/struct.Value.html b/halo2_frontend/circuit/struct.Value.html index f77ec07d0a..e352fc3dd8 100644 --- a/halo2_frontend/circuit/struct.Value.html +++ b/halo2_frontend/circuit/struct.Value.html @@ -91,28 +91,28 @@
Examples

source§

impl<F: Field> Value<Assigned<F>>

source

pub fn evaluate(self) -> Value<F>

Evaluates this value directly, performing an unbatched inversion if necessary.

If the denominator is zero, the returned value is zero.

Trait Implementations§

source§

impl<V, O> Add<&Value<V>> for &Value<V>where - for<'v> &'v V: Add<Output = O>,

§

type Output = Value<O>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Self) -> Self::Output

Performs the + operation. Read more
source§

impl<V, O> Add<&Value<V>> for Value<V>where - for<'v> V: Add<&'v V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the + operator.
source§

fn add(self, rhs: &Self) -> Self::Output

Performs the + operation. Read more
source§

impl<F: Field> Add<F> for Value<&Assigned<F>>

§

type Output = Value<Assigned<F>>

The resulting type after applying the + operator.
source§

fn add(self, rhs: F) -> Self::Output

Performs the + operation. Read more
source§

impl<F: Field> Add<F> for Value<Assigned<F>>

§

type Output = Value<Assigned<F>>

The resulting type after applying the + operator.
source§

fn add(self, rhs: F) -> Self::Output

Performs the + operation. Read more
source§

impl<V, O> Add<Value<&V>> for Value<V>where - for<'v> V: Add<&'v V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Value<&V>) -> Self::Output

Performs the + operation. Read more
source§

impl<F: Field> Add<Value<F>> for Value<&Assigned<F>>

§

type Output = Value<Assigned<F>>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Value<F>) -> Self::Output

Performs the + operation. Read more
source§

impl<F: Field> Add<Value<F>> for Value<Assigned<F>>

§

type Output = Value<Assigned<F>>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Value<F>) -> Self::Output

Performs the + operation. Read more
source§

impl<V, O> Add<Value<V>> for &Value<V>where - for<'v> &'v V: Add<V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Value<V>) -> Self::Output

Performs the + operation. Read more
source§

impl<V, O> Add<Value<V>> for Value<&V>where - for<'v> &'v V: Add<V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Value<V>) -> Self::Output

Performs the + operation. Read more
source§

impl<V, O> Add<Value<V>> for Value<V>where - V: Add<Output = O>,

§

type Output = Value<O>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Self) -> Self::Output

Performs the + operation. Read more
source§

impl<V: Clone> Clone for Value<V>

source§

fn clone(&self) -> Value<V>

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

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

Performs copy-assignment from source. Read more
source§

impl<V: Debug> Debug for Value<V>

source§

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

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

impl<V> Default for Value<V>

source§

fn default() -> Self

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

impl<F: Field> From<Value<F>> for Value<Assigned<F>>

source§

fn from(value: Value<F>) -> Self

Converts to this type from the input type.
source§

impl<A, V: FromIterator<A>> FromIterator<Value<A>> for Value<V>

source§

fn from_iter<I: IntoIterator<Item = Value<A>>>(iter: I) -> Self

Takes each element in the Iterator: if it is Value::unknown(), no further + for<'v> &'v V: Add<Output = O>,

§

type Output = Value<O>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Self) -> Self::Output

Performs the + operation. Read more
source§

impl<V, O> Add<&Value<V>> for Value<V>where + for<'v> V: Add<&'v V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the + operator.
source§

fn add(self, rhs: &Self) -> Self::Output

Performs the + operation. Read more
source§

impl<F: Field> Add<F> for Value<&Assigned<F>>

§

type Output = Value<Assigned<F>>

The resulting type after applying the + operator.
source§

fn add(self, rhs: F) -> Self::Output

Performs the + operation. Read more
source§

impl<F: Field> Add<F> for Value<Assigned<F>>

§

type Output = Value<Assigned<F>>

The resulting type after applying the + operator.
source§

fn add(self, rhs: F) -> Self::Output

Performs the + operation. Read more
source§

impl<V, O> Add<Value<&V>> for Value<V>where + for<'v> V: Add<&'v V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Value<&V>) -> Self::Output

Performs the + operation. Read more
source§

impl<F: Field> Add<Value<F>> for Value<&Assigned<F>>

§

type Output = Value<Assigned<F>>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Value<F>) -> Self::Output

Performs the + operation. Read more
source§

impl<F: Field> Add<Value<F>> for Value<Assigned<F>>

§

type Output = Value<Assigned<F>>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Value<F>) -> Self::Output

Performs the + operation. Read more
source§

impl<V, O> Add<Value<V>> for &Value<V>where + for<'v> &'v V: Add<V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Value<V>) -> Self::Output

Performs the + operation. Read more
source§

impl<V, O> Add<Value<V>> for Value<&V>where + for<'v> &'v V: Add<V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Value<V>) -> Self::Output

Performs the + operation. Read more
source§

impl<V, O> Add<Value<V>> for Value<V>where + V: Add<Output = O>,

§

type Output = Value<O>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Self) -> Self::Output

Performs the + operation. Read more
source§

impl<V: Clone> Clone for Value<V>

source§

fn clone(&self) -> Value<V>

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

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

Performs copy-assignment from source. Read more
source§

impl<V: Debug> Debug for Value<V>

source§

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

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

impl<V> Default for Value<V>

source§

fn default() -> Self

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

impl<F: Field> From<Value<F>> for Value<Assigned<F>>

source§

fn from(value: Value<F>) -> Self

Converts to this type from the input type.
source§

impl<A, V: FromIterator<A>> FromIterator<Value<A>> for Value<V>

source§

fn from_iter<I: IntoIterator<Item = Value<A>>>(iter: I) -> Self

Takes each element in the Iterator: if it is Value::unknown(), no further elements are taken, and the Value::unknown() is returned. Should no Value::unknown() occur, a container of type V containing the values of each Value is returned.

source§

impl<V, O> Mul<&Value<V>> for &Value<V>where - for<'v> &'v V: Mul<Output = O>,

§

type Output = Value<O>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Self) -> Self::Output

Performs the * operation. Read more
source§

impl<V, O> Mul<&Value<V>> for Value<V>where - for<'v> V: Mul<&'v V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: &Self) -> Self::Output

Performs the * operation. Read more
source§

impl<F: Field> Mul<F> for Value<&Assigned<F>>

§

type Output = Value<Assigned<F>>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: F) -> Self::Output

Performs the * operation. Read more
source§

impl<F: Field> Mul<F> for Value<Assigned<F>>

§

type Output = Value<Assigned<F>>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: F) -> Self::Output

Performs the * operation. Read more
source§

impl<V, O> Mul<Value<&V>> for Value<V>where - for<'v> V: Mul<&'v V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Value<&V>) -> Self::Output

Performs the * operation. Read more
source§

impl<F: Field> Mul<Value<F>> for Value<&Assigned<F>>

§

type Output = Value<Assigned<F>>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Value<F>) -> Self::Output

Performs the * operation. Read more
source§

impl<F: Field> Mul<Value<F>> for Value<Assigned<F>>

§

type Output = Value<Assigned<F>>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Value<F>) -> Self::Output

Performs the * operation. Read more
source§

impl<V, O> Mul<Value<V>> for &Value<V>where - for<'v> &'v V: Mul<V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Value<V>) -> Self::Output

Performs the * operation. Read more
source§

impl<V, O> Mul<Value<V>> for Value<&V>where - for<'v> &'v V: Mul<V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Value<V>) -> Self::Output

Performs the * operation. Read more
source§

impl<V, O> Mul<Value<V>> for Value<V>where - V: Mul<Output = O>,

§

type Output = Value<O>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Self) -> Self::Output

Performs the * operation. Read more
source§

impl<V: Neg> Neg for Value<V>

§

type Output = Value<<V as Neg>::Output>

The resulting type after applying the - operator.
source§

fn neg(self) -> Self::Output

Performs the unary - operation. Read more
source§

impl<V, O> Sub<&Value<V>> for &Value<V>where - for<'v> &'v V: Sub<Output = O>,

§

type Output = Value<O>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Self) -> Self::Output

Performs the - operation. Read more
source§

impl<V, O> Sub<&Value<V>> for Value<V>where - for<'v> V: Sub<&'v V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: &Self) -> Self::Output

Performs the - operation. Read more
source§

impl<F: Field> Sub<F> for Value<&Assigned<F>>

§

type Output = Value<Assigned<F>>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: F) -> Self::Output

Performs the - operation. Read more
source§

impl<F: Field> Sub<F> for Value<Assigned<F>>

§

type Output = Value<Assigned<F>>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: F) -> Self::Output

Performs the - operation. Read more
source§

impl<V, O> Sub<Value<&V>> for Value<V>where - for<'v> V: Sub<&'v V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Value<&V>) -> Self::Output

Performs the - operation. Read more
source§

impl<F: Field> Sub<Value<F>> for Value<&Assigned<F>>

§

type Output = Value<Assigned<F>>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Value<F>) -> Self::Output

Performs the - operation. Read more
source§

impl<F: Field> Sub<Value<F>> for Value<Assigned<F>>

§

type Output = Value<Assigned<F>>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Value<F>) -> Self::Output

Performs the - operation. Read more
source§

impl<V, O> Sub<Value<V>> for &Value<V>where - for<'v> &'v V: Sub<V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Value<V>) -> Self::Output

Performs the - operation. Read more
source§

impl<V, O> Sub<Value<V>> for Value<&V>where - for<'v> &'v V: Sub<V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Value<V>) -> Self::Output

Performs the - operation. Read more
source§

impl<V, O> Sub<Value<V>> for Value<V>where - V: Sub<Output = O>,

§

type Output = Value<O>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Self) -> Self::Output

Performs the - operation. Read more
source§

impl<V: Copy> Copy for Value<V>

Auto Trait Implementations§

§

impl<V> RefUnwindSafe for Value<V>where + for<'v> &'v V: Mul<Output = O>,

§

type Output = Value<O>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Self) -> Self::Output

Performs the * operation. Read more
source§

impl<V, O> Mul<&Value<V>> for Value<V>where + for<'v> V: Mul<&'v V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: &Self) -> Self::Output

Performs the * operation. Read more
source§

impl<F: Field> Mul<F> for Value<&Assigned<F>>

§

type Output = Value<Assigned<F>>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: F) -> Self::Output

Performs the * operation. Read more
source§

impl<F: Field> Mul<F> for Value<Assigned<F>>

§

type Output = Value<Assigned<F>>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: F) -> Self::Output

Performs the * operation. Read more
source§

impl<V, O> Mul<Value<&V>> for Value<V>where + for<'v> V: Mul<&'v V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Value<&V>) -> Self::Output

Performs the * operation. Read more
source§

impl<F: Field> Mul<Value<F>> for Value<&Assigned<F>>

§

type Output = Value<Assigned<F>>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Value<F>) -> Self::Output

Performs the * operation. Read more
source§

impl<F: Field> Mul<Value<F>> for Value<Assigned<F>>

§

type Output = Value<Assigned<F>>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Value<F>) -> Self::Output

Performs the * operation. Read more
source§

impl<V, O> Mul<Value<V>> for &Value<V>where + for<'v> &'v V: Mul<V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Value<V>) -> Self::Output

Performs the * operation. Read more
source§

impl<V, O> Mul<Value<V>> for Value<&V>where + for<'v> &'v V: Mul<V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Value<V>) -> Self::Output

Performs the * operation. Read more
source§

impl<V, O> Mul<Value<V>> for Value<V>where + V: Mul<Output = O>,

§

type Output = Value<O>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Self) -> Self::Output

Performs the * operation. Read more
source§

impl<V: Neg> Neg for Value<V>

§

type Output = Value<<V as Neg>::Output>

The resulting type after applying the - operator.
source§

fn neg(self) -> Self::Output

Performs the unary - operation. Read more
source§

impl<V, O> Sub<&Value<V>> for &Value<V>where + for<'v> &'v V: Sub<Output = O>,

§

type Output = Value<O>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Self) -> Self::Output

Performs the - operation. Read more
source§

impl<V, O> Sub<&Value<V>> for Value<V>where + for<'v> V: Sub<&'v V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: &Self) -> Self::Output

Performs the - operation. Read more
source§

impl<F: Field> Sub<F> for Value<&Assigned<F>>

§

type Output = Value<Assigned<F>>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: F) -> Self::Output

Performs the - operation. Read more
source§

impl<F: Field> Sub<F> for Value<Assigned<F>>

§

type Output = Value<Assigned<F>>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: F) -> Self::Output

Performs the - operation. Read more
source§

impl<V, O> Sub<Value<&V>> for Value<V>where + for<'v> V: Sub<&'v V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Value<&V>) -> Self::Output

Performs the - operation. Read more
source§

impl<F: Field> Sub<Value<F>> for Value<&Assigned<F>>

§

type Output = Value<Assigned<F>>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Value<F>) -> Self::Output

Performs the - operation. Read more
source§

impl<F: Field> Sub<Value<F>> for Value<Assigned<F>>

§

type Output = Value<Assigned<F>>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Value<F>) -> Self::Output

Performs the - operation. Read more
source§

impl<V, O> Sub<Value<V>> for &Value<V>where + for<'v> &'v V: Sub<V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Value<V>) -> Self::Output

Performs the - operation. Read more
source§

impl<V, O> Sub<Value<V>> for Value<&V>where + for<'v> &'v V: Sub<V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Value<V>) -> Self::Output

Performs the - operation. Read more
source§

impl<V, O> Sub<Value<V>> for Value<V>where + V: Sub<Output = O>,

§

type Output = Value<O>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Self) -> Self::Output

Performs the - operation. Read more
source§

impl<V: Copy> Copy for Value<V>

Auto Trait Implementations§

§

impl<V> RefUnwindSafe for Value<V>where V: RefUnwindSafe,

§

impl<V> Send for Value<V>where V: Send,

§

impl<V> Sync for Value<V>where V: Sync,

§

impl<V> Unpin for Value<V>where diff --git a/halo2_frontend/dev/enum.FailureLocation.html b/halo2_frontend/dev/enum.FailureLocation.html index 152ca489fa..acb29f2c39 100644 --- a/halo2_frontend/dev/enum.FailureLocation.html +++ b/halo2_frontend/dev/enum.FailureLocation.html @@ -29,7 +29,7 @@

A location inside a region.

§

OutsideRegion

Fields

§row: usize

The circuit row on which the failure occurred.

A location outside of a region.

-

Trait Implementations§

source§

impl Clone for FailureLocation

source§

fn clone(&self) -> FailureLocation

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

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

Performs copy-assignment from source. Read more
source§

impl Debug for FailureLocation

source§

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

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

impl Display for FailureLocation

source§

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

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

impl PartialEq<FailureLocation> for FailureLocation

source§

fn eq(&self, other: &FailureLocation) -> bool

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for FailureLocation

source§

fn clone(&self) -> FailureLocation

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

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

Performs copy-assignment from source. Read more
source§

impl Debug for FailureLocation

source§

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

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

impl Display for FailureLocation

source§

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

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

impl PartialEq<FailureLocation> for FailureLocation

source§

fn eq(&self, other: &FailureLocation) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Eq for FailureLocation

source§

impl StructuralEq for FailureLocation

source§

impl StructuralPartialEq for FailureLocation

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere diff --git a/halo2_frontend/dev/metadata/struct.Gate.html b/halo2_frontend/dev/metadata/struct.Gate.html index d0fc2f0a0b..c3055b3905 100644 --- a/halo2_frontend/dev/metadata/struct.Gate.html +++ b/halo2_frontend/dev/metadata/struct.Gate.html @@ -15,7 +15,7 @@
pub struct Gate { /* private fields */ }
Expand description

Metadata about a configured gate within a circuit.

-

Trait Implementations§

source§

impl Clone for Gate

source§

fn clone(&self) -> Gate

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

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

Performs copy-assignment from source. Read more
source§

impl Debug for Gate

source§

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

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

impl Display for Gate

source§

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

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

impl<S: AsRef<str>> From<(usize, S)> for Gate

source§

fn from((index, name): (usize, S)) -> Self

Converts to this type from the input type.
source§

impl PartialEq<Gate> for Gate

source§

fn eq(&self, other: &Gate) -> bool

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for Gate

source§

fn clone(&self) -> Gate

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

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

Performs copy-assignment from source. Read more
source§

impl Debug for Gate

source§

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

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

impl Display for Gate

source§

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

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

impl<S: AsRef<str>> From<(usize, S)> for Gate

source§

fn from((index, name): (usize, S)) -> Self

Converts to this type from the input type.
source§

impl PartialEq<Gate> for Gate

source§

fn eq(&self, other: &Gate) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Eq for Gate

source§

impl StructuralEq for Gate

source§

impl StructuralPartialEq for Gate

Auto Trait Implementations§

§

impl RefUnwindSafe for Gate

§

impl Send for Gate

§

impl Sync for Gate

§

impl Unpin for Gate

§

impl UnwindSafe for Gate

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere diff --git a/halo2_frontend/dev/metadata/struct.Region.html b/halo2_frontend/dev/metadata/struct.Region.html index 7be4501608..67bd4e1500 100644 --- a/halo2_frontend/dev/metadata/struct.Region.html +++ b/halo2_frontend/dev/metadata/struct.Region.html @@ -15,9 +15,9 @@
pub struct Region { /* private fields */ }
Expand description

Metadata about an assigned region within a circuit.

-

Trait Implementations§

source§

impl Clone for Region

source§

fn clone(&self) -> Region

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

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

Performs copy-assignment from source. Read more
source§

impl Debug for Region

source§

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

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

impl Display for Region

source§

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

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

impl From<(usize, &str)> for Region

source§

fn from((index, name): (usize, &str)) -> Self

Converts to this type from the input type.
source§

impl From<(usize, &str, HashMap<ColumnMid, String, RandomState>)> for Region

Trait Implementations§

source§

impl Clone for Region

source§

fn clone(&self) -> Region

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

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

Performs copy-assignment from source. Read more
source§

impl Debug for Region

source§

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

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

impl Display for Region

source§

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

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

impl From<(usize, &str)> for Region

source§

fn from((index, name): (usize, &str)) -> Self

Converts to this type from the input type.
source§

impl From<(usize, &str, HashMap<ColumnMid, String, RandomState>)> for Region

source§

fn from( (index, name, annotations): (usize, &str, HashMap<ColumnMetadata, String>) -) -> Self

Converts to this type from the input type.
source§

impl From<(usize, String)> for Region

source§

fn from((index, name): (usize, String)) -> Self

Converts to this type from the input type.
source§

impl From<(usize, String, HashMap<ColumnMid, String, RandomState>)> for Region

source§

fn from( +) -> Self

Converts to this type from the input type.
source§

impl From<(usize, String)> for Region

source§

fn from((index, name): (usize, String)) -> Self

Converts to this type from the input type.
source§

impl From<(usize, String, HashMap<ColumnMid, String, RandomState>)> for Region

source§

fn from( (index, name, annotations): (usize, String, HashMap<ColumnMetadata, String>) ) -> Self

Converts to this type from the input type.
source§

impl PartialEq<Region> for Region

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always diff --git a/halo2_frontend/dev/metadata/struct.VirtualCell.html b/halo2_frontend/dev/metadata/struct.VirtualCell.html index c535c16663..667b3237da 100644 --- a/halo2_frontend/dev/metadata/struct.VirtualCell.html +++ b/halo2_frontend/dev/metadata/struct.VirtualCell.html @@ -16,7 +16,7 @@
pub struct VirtualCell { /* private fields */ }
Expand description

A “virtual cell” is a PLONK cell that has been queried at a particular relative offset within a custom gate.

-

Trait Implementations§

source§

impl Debug for VirtualCell

source§

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

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

impl Display for VirtualCell

source§

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

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

impl From<(ColumnMid, i32)> for VirtualCell

source§

fn from((column, rotation): (Column, i32)) -> Self

Converts to this type from the input type.
source§

impl<S: AsRef<str>> From<(S, ColumnMid, i32)> for VirtualCell

source§

fn from((name, column, rotation): (S, Column, i32)) -> Self

Converts to this type from the input type.
source§

impl From<VirtualCell> for VirtualCell

source§

fn from(c: VirtualCell) -> Self

Converts to this type from the input type.
source§

impl Ord for VirtualCell

source§

fn cmp(&self, other: &VirtualCell) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Selfwhere +

Trait Implementations§

source§

impl Debug for VirtualCell

source§

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

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

impl Display for VirtualCell

source§

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

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

impl From<(ColumnMid, i32)> for VirtualCell

source§

fn from((column, rotation): (Column, i32)) -> Self

Converts to this type from the input type.
source§

impl<S: AsRef<str>> From<(S, ColumnMid, i32)> for VirtualCell

source§

fn from((name, column, rotation): (S, Column, i32)) -> Self

Converts to this type from the input type.
source§

impl From<VirtualCell> for VirtualCell

source§

fn from(c: VirtualCell) -> Self

Converts to this type from the input type.
source§

impl Ord for VirtualCell

source§

fn cmp(&self, other: &VirtualCell) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Selfwhere Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Selfwhere Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Selfwhere Self: Sized + PartialOrd<Self>,

Restrict a value to a certain interval. Read more
source§

impl PartialEq<VirtualCell> for VirtualCell

source§

fn eq(&self, other: &VirtualCell) -> bool

This method tests for self and other values to be equal, and is used diff --git a/halo2_frontend/dev/struct.CircuitGates.html b/halo2_frontend/dev/struct.CircuitGates.html index 6b320b5b5e..2b8a64004c 100644 --- a/halo2_frontend/dev/struct.CircuitGates.html +++ b/halo2_frontend/dev/struct.CircuitGates.html @@ -84,7 +84,7 @@

Examples

);

Implementations§

source§

impl CircuitGates

source

pub fn collect<F: PrimeField, C: Circuit<F>>(params: C::Params) -> Self

Collects the gates from within the circuit.

source

pub fn queries_to_csv(&self) -> String

Prints the queries in this circuit to a CSV grid.

-

Trait Implementations§

source§

impl Debug for CircuitGates

source§

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

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

impl Display for CircuitGates

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere +

Trait Implementations§

source§

impl Debug for CircuitGates

source§

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

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

impl Display for CircuitGates

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> Twhere diff --git a/halo2_frontend/plonk/assigned/enum.Assigned.html b/halo2_frontend/plonk/assigned/enum.Assigned.html index 7790632bc6..c76dc22e09 100644 --- a/halo2_frontend/plonk/assigned/enum.Assigned.html +++ b/halo2_frontend/plonk/assigned/enum.Assigned.html @@ -34,9 +34,9 @@

source

pub fn evaluate(self) -> F

Evaluates this assigned value directly, performing an unbatched inversion if necessary.

If the denominator is zero, this returns zero.

-

Trait Implementations§

source§

impl<F: Field> Add<&Assigned<F>> for &Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the + operator.
source§

fn add(self, rhs: &Assigned<F>) -> Assigned<F>

Performs the + operation. Read more
source§

impl<F: Field> Add<&Assigned<F>> for Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the + operator.
source§

fn add(self, rhs: &Self) -> Assigned<F>

Performs the + operation. Read more
source§

impl<F: Field> Add<Assigned<F>> for &Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Assigned<F>) -> Assigned<F>

Performs the + operation. Read more
source§

impl<F: Field> Add<Assigned<F>> for Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Assigned<F>) -> Assigned<F>

Performs the + operation. Read more
source§

impl<F: Field> Add<F> for &Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the + operator.
source§

fn add(self, rhs: F) -> Assigned<F>

Performs the + operation. Read more
source§

impl<F: Field> Add<F> for Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the + operator.
source§

fn add(self, rhs: F) -> Assigned<F>

Performs the + operation. Read more
source§

impl<F: Field> AddAssign<&Assigned<F>> for Assigned<F>

source§

fn add_assign(&mut self, rhs: &Self)

Performs the += operation. Read more
source§

impl<F: Field> AddAssign<Assigned<F>> for Assigned<F>

source§

fn add_assign(&mut self, rhs: Self)

Performs the += operation. Read more
source§

impl<F: Clone> Clone for Assigned<F>

source§

fn clone(&self) -> Assigned<F>

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

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

Performs copy-assignment from source. Read more
source§

impl<F: Debug> Debug for Assigned<F>

source§

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

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

impl<F: Field> From<&Assigned<F>> for Assigned<F>

source§

fn from(val: &Assigned<F>) -> Self

Converts to this type from the input type.
source§

impl<F: Field> From<&F> for Assigned<F>

source§

fn from(numerator: &F) -> Self

Converts to this type from the input type.
source§

impl<F: Field> From<(F, F)> for Assigned<F>

source§

fn from((numerator, denominator): (F, F)) -> Self

Converts to this type from the input type.
source§

impl<F: Field> From<F> for Assigned<F>

source§

fn from(numerator: F) -> Self

Converts to this type from the input type.
source§

impl<F: Field> Mul<&Assigned<F>> for Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: &Assigned<F>) -> Assigned<F>

Performs the * operation. Read more
source§

impl<F: Field> Mul<Assigned<F>> for Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Assigned<F>) -> Assigned<F>

Performs the * operation. Read more
source§

impl<F: Field> Mul<F> for &Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: F) -> Assigned<F>

Performs the * operation. Read more
source§

impl<F: Field> Mul<F> for Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: F) -> Assigned<F>

Performs the * operation. Read more
source§

impl<F: Field> MulAssign<&Assigned<F>> for Assigned<F>

source§

fn mul_assign(&mut self, rhs: &Self)

Performs the *= operation. Read more
source§

impl<F: Field> MulAssign<Assigned<F>> for Assigned<F>

source§

fn mul_assign(&mut self, rhs: Self)

Performs the *= operation. Read more
source§

impl<F: Field> Neg for &Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the - operator.
source§

fn neg(self) -> Self::Output

Performs the unary - operation. Read more
source§

impl<F: Field> Neg for Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the - operator.
source§

fn neg(self) -> Self::Output

Performs the unary - operation. Read more
source§

impl<F: Field> PartialEq<Assigned<F>> for Assigned<F>

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl<F: Field> Add<&Assigned<F>> for &Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the + operator.
source§

fn add(self, rhs: &Assigned<F>) -> Assigned<F>

Performs the + operation. Read more
source§

impl<F: Field> Add<&Assigned<F>> for Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the + operator.
source§

fn add(self, rhs: &Self) -> Assigned<F>

Performs the + operation. Read more
source§

impl<F: Field> Add<Assigned<F>> for &Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Assigned<F>) -> Assigned<F>

Performs the + operation. Read more
source§

impl<F: Field> Add<Assigned<F>> for Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Assigned<F>) -> Assigned<F>

Performs the + operation. Read more
source§

impl<F: Field> Add<F> for &Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the + operator.
source§

fn add(self, rhs: F) -> Assigned<F>

Performs the + operation. Read more
source§

impl<F: Field> Add<F> for Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the + operator.
source§

fn add(self, rhs: F) -> Assigned<F>

Performs the + operation. Read more
source§

impl<F: Field> AddAssign<&Assigned<F>> for Assigned<F>

source§

fn add_assign(&mut self, rhs: &Self)

Performs the += operation. Read more
source§

impl<F: Field> AddAssign<Assigned<F>> for Assigned<F>

source§

fn add_assign(&mut self, rhs: Self)

Performs the += operation. Read more
source§

impl<F: Clone> Clone for Assigned<F>

source§

fn clone(&self) -> Assigned<F>

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

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

Performs copy-assignment from source. Read more
source§

impl<F: Debug> Debug for Assigned<F>

source§

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

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

impl<F: Field> From<&Assigned<F>> for Assigned<F>

source§

fn from(val: &Assigned<F>) -> Self

Converts to this type from the input type.
source§

impl<F: Field> From<&F> for Assigned<F>

source§

fn from(numerator: &F) -> Self

Converts to this type from the input type.
source§

impl<F: Field> From<(F, F)> for Assigned<F>

source§

fn from((numerator, denominator): (F, F)) -> Self

Converts to this type from the input type.
source§

impl<F: Field> From<F> for Assigned<F>

source§

fn from(numerator: F) -> Self

Converts to this type from the input type.
source§

impl<F: Field> Mul<&Assigned<F>> for Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: &Assigned<F>) -> Assigned<F>

Performs the * operation. Read more
source§

impl<F: Field> Mul<Assigned<F>> for Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Assigned<F>) -> Assigned<F>

Performs the * operation. Read more
source§

impl<F: Field> Mul<F> for &Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: F) -> Assigned<F>

Performs the * operation. Read more
source§

impl<F: Field> Mul<F> for Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: F) -> Assigned<F>

Performs the * operation. Read more
source§

impl<F: Field> MulAssign<&Assigned<F>> for Assigned<F>

source§

fn mul_assign(&mut self, rhs: &Self)

Performs the *= operation. Read more
source§

impl<F: Field> MulAssign<Assigned<F>> for Assigned<F>

source§

fn mul_assign(&mut self, rhs: Self)

Performs the *= operation. Read more
source§

impl<F: Field> Neg for &Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the - operator.
source§

fn neg(self) -> Self::Output

Performs the unary - operation. Read more
source§

impl<F: Field> Neg for Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the - operator.
source§

fn neg(self) -> Self::Output

Performs the unary - operation. Read more
source§

impl<F: Field> PartialEq<Assigned<F>> for Assigned<F>

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl<F: Field> Sub<&Assigned<F>> for &Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: &Assigned<F>) -> Assigned<F>

Performs the - operation. Read more
source§

impl<F: Field> Sub<&Assigned<F>> for Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: &Self) -> Assigned<F>

Performs the - operation. Read more
source§

impl<F: Field> Sub<Assigned<F>> for &Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Assigned<F>) -> Assigned<F>

Performs the - operation. Read more
source§

impl<F: Field> Sub<Assigned<F>> for Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Assigned<F>) -> Assigned<F>

Performs the - operation. Read more
source§

impl<F: Field> Sub<F> for &Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: F) -> Assigned<F>

Performs the - operation. Read more
source§

impl<F: Field> Sub<F> for Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: F) -> Assigned<F>

Performs the - operation. Read more
source§

impl<F: Field> SubAssign<&Assigned<F>> for Assigned<F>

source§

fn sub_assign(&mut self, rhs: &Self)

Performs the -= operation. Read more
source§

impl<F: Field> SubAssign<Assigned<F>> for Assigned<F>

source§

fn sub_assign(&mut self, rhs: Self)

Performs the -= operation. Read more
source§

impl<F: Copy> Copy for Assigned<F>

source§

impl<F: Field> Eq for Assigned<F>

Auto Trait Implementations§

§

impl<F> RefUnwindSafe for Assigned<F>where +sufficient, and should not be overridden without very good reason.

source§

impl<F: Field> Sub<&Assigned<F>> for &Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: &Assigned<F>) -> Assigned<F>

Performs the - operation. Read more
source§

impl<F: Field> Sub<&Assigned<F>> for Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: &Self) -> Assigned<F>

Performs the - operation. Read more
source§

impl<F: Field> Sub<Assigned<F>> for &Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Assigned<F>) -> Assigned<F>

Performs the - operation. Read more
source§

impl<F: Field> Sub<Assigned<F>> for Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Assigned<F>) -> Assigned<F>

Performs the - operation. Read more
source§

impl<F: Field> Sub<F> for &Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: F) -> Assigned<F>

Performs the - operation. Read more
source§

impl<F: Field> Sub<F> for Assigned<F>

§

type Output = Assigned<F>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: F) -> Assigned<F>

Performs the - operation. Read more
source§

impl<F: Field> SubAssign<&Assigned<F>> for Assigned<F>

source§

fn sub_assign(&mut self, rhs: &Self)

Performs the -= operation. Read more
source§

impl<F: Field> SubAssign<Assigned<F>> for Assigned<F>

source§

fn sub_assign(&mut self, rhs: Self)

Performs the -= operation. Read more
source§

impl<F: Copy> Copy for Assigned<F>

source§

impl<F: Field> Eq for Assigned<F>

Auto Trait Implementations§

§

impl<F> RefUnwindSafe for Assigned<F>where F: RefUnwindSafe,

§

impl<F> Send for Assigned<F>where F: Send,

§

impl<F> Sync for Assigned<F>where F: Sync,

§

impl<F> Unpin for Assigned<F>where diff --git a/halo2_frontend/plonk/circuit/expression/enum.Expression.html b/halo2_frontend/plonk/circuit/expression/enum.Expression.html index cc73f89871..b63ce8a4e7 100644 --- a/halo2_frontend/plonk/circuit/expression/enum.Expression.html +++ b/halo2_frontend/plonk/circuit/expression/enum.Expression.html @@ -72,10 +72,10 @@

source

pub fn degree(&self) -> usize

Compute the degree of this polynomial

source

pub fn complexity(&self) -> usize

Approximate the computational complexity of this expression.

source

pub fn square(self) -> Self

Square this expression.

-

Trait Implementations§

source§

impl<F: Field> Add<Expression<F>> for Expression<F>

§

type Output = Expression<F>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Expression<F>) -> Expression<F>

Performs the + operation. Read more
source§

impl<F: Clone> Clone for Expression<F>

source§

fn clone(&self) -> Expression<F>

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

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

Performs copy-assignment from source. Read more
source§

impl<F: Debug> Debug for Expression<F>

source§

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

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

impl<F: Field> From<Expression<F>> for Constraint<F>

source§

fn from(poly: Expression<F>) -> Self

Converts to this type from the input type.
source§

impl<F> From<Expression<F>> for ExpressionMid<F>

source§

fn from(val: Expression<F>) -> Self

Converts to this type from the input type.
source§

impl<F: Field> From<Expression<F>> for Vec<Constraint<F>>

source§

fn from(poly: Expression<F>) -> Self

Converts to this type from the input type.
source§

impl<F: Field> Mul<Expression<F>> for Expression<F>

§

type Output = Expression<F>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Expression<F>) -> Expression<F>

Performs the * operation. Read more
source§

impl<F: Field> Mul<F> for Expression<F>

§

type Output = Expression<F>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: F) -> Expression<F>

Performs the * operation. Read more
source§

impl<F: Field> Neg for Expression<F>

§

type Output = Expression<F>

The resulting type after applying the - operator.
source§

fn neg(self) -> Self::Output

Performs the unary - operation. Read more
source§

impl<F: PartialEq> PartialEq<Expression<F>> for Expression<F>

source§

fn eq(&self, other: &Expression<F>) -> bool

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl<F: Field> Add<Expression<F>> for Expression<F>

§

type Output = Expression<F>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Expression<F>) -> Expression<F>

Performs the + operation. Read more
source§

impl<F: Clone> Clone for Expression<F>

source§

fn clone(&self) -> Expression<F>

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

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

Performs copy-assignment from source. Read more
source§

impl<F: Debug> Debug for Expression<F>

source§

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

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

impl<F: Field> From<Expression<F>> for Constraint<F>

source§

fn from(poly: Expression<F>) -> Self

Converts to this type from the input type.
source§

impl<F> From<Expression<F>> for ExpressionMid<F>

source§

fn from(val: Expression<F>) -> Self

Converts to this type from the input type.
source§

impl<F: Field> From<Expression<F>> for Vec<Constraint<F>>

source§

fn from(poly: Expression<F>) -> Self

Converts to this type from the input type.
source§

impl<F: Field> Mul<Expression<F>> for Expression<F>

§

type Output = Expression<F>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Expression<F>) -> Expression<F>

Performs the * operation. Read more
source§

impl<F: Field> Mul<F> for Expression<F>

§

type Output = Expression<F>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: F) -> Expression<F>

Performs the * operation. Read more
source§

impl<F: Field> Neg for Expression<F>

§

type Output = Expression<F>

The resulting type after applying the - operator.
source§

fn neg(self) -> Self::Output

Performs the unary - operation. Read more
source§

impl<F: PartialEq> PartialEq<Expression<F>> for Expression<F>

source§

fn eq(&self, other: &Expression<F>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<F: Field> Product<Expression<F>> for Expression<F>

source§

fn product<I: Iterator<Item = Self>>(iter: I) -> Self

Method which takes an iterator and generates Self from the elements by -multiplying the items.
source§

impl<F: Field> Sub<Expression<F>> for Expression<F>

§

type Output = Expression<F>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Expression<F>) -> Expression<F>

Performs the - operation. Read more
source§

impl<F: Field> Sum<Expression<F>> for Expression<F>

source§

fn sum<I: Iterator<Item = Self>>(iter: I) -> Self

Method which takes an iterator and generates Self from the elements by +multiplying the items.
source§

impl<F: Field> Sub<Expression<F>> for Expression<F>

§

type Output = Expression<F>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Expression<F>) -> Expression<F>

Performs the - operation. Read more
source§

impl<F: Field> Sum<Expression<F>> for Expression<F>

source§

fn sum<I: Iterator<Item = Self>>(iter: I) -> Self

Method which takes an iterator and generates Self from the elements by “summing up” the items.
source§

impl<F: Eq> Eq for Expression<F>

source§

impl<F> StructuralEq for Expression<F>

source§

impl<F> StructuralPartialEq for Expression<F>

Auto Trait Implementations§

§

impl<F> RefUnwindSafe for Expression<F>where F: RefUnwindSafe,

§

impl<F> Send for Expression<F>where F: Send,

§

impl<F> Sync for Expression<F>where diff --git a/halo2_frontend/plonk/circuit/expression/struct.Challenge.html b/halo2_frontend/plonk/circuit/expression/struct.Challenge.html index bb90709d98..6efdafd984 100644 --- a/halo2_frontend/plonk/circuit/expression/struct.Challenge.html +++ b/halo2_frontend/plonk/circuit/expression/struct.Challenge.html @@ -21,7 +21,7 @@

Fields§

§index: usize

Implementations§

source§

impl Challenge

source

pub fn index(&self) -> usize

Index of this challenge.

source

pub fn phase(&self) -> u8

Phase of this challenge.

source

pub fn expr<F: Field>(&self) -> Expression<F>

Return Expression

-

Trait Implementations§

source§

impl Clone for Challenge

source§

fn clone(&self) -> Challenge

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

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

Performs copy-assignment from source. Read more
source§

impl Debug for Challenge

source§

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

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

impl From<Challenge> for ChallengeMid

source§

fn from(val: Challenge) -> Self

Converts to this type from the input type.
source§

impl From<ChallengeMid> for Challenge

source§

fn from(c: ChallengeMid) -> Self

Converts to this type from the input type.
source§

impl Hash for Challenge

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where +

Trait Implementations§

source§

impl Clone for Challenge

source§

fn clone(&self) -> Challenge

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

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

Performs copy-assignment from source. Read more
source§

impl Debug for Challenge

source§

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

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

impl From<Challenge> for ChallengeMid

source§

fn from(val: Challenge) -> Self

Converts to this type from the input type.
source§

impl From<ChallengeMid> for Challenge

source§

fn from(c: ChallengeMid) -> Self

Converts to this type from the input type.
source§

impl Hash for Challenge

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq<Challenge> for Challenge

source§

fn eq(&self, other: &Challenge) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always diff --git a/halo2_frontend/plonk/circuit/expression/struct.Column.html b/halo2_frontend/plonk/circuit/expression/struct.Column.html index b1f4c2b794..65cb2cf63f 100644 --- a/halo2_frontend/plonk/circuit/expression/struct.Column.html +++ b/halo2_frontend/plonk/circuit/expression/struct.Column.html @@ -25,7 +25,7 @@
source

pub fn next<F: Field>(&self) -> Expression<F>

Return expression from column at the next row

source

pub fn prev<F: Field>(&self) -> Expression<F>

Return expression from column at the previous row

source

pub fn rot<F: Field>(&self, rotation: i32) -> Expression<F>

Return expression from column at the specified rotation

-

Trait Implementations§

source§

impl<C: Clone + ColumnType> Clone for Column<C>

source§

fn clone(&self) -> Column<C>

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

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

Performs copy-assignment from source. Read more
source§

impl<C: Debug + ColumnType> Debug for Column<C>

source§

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

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

impl From<Column<Advice>> for Column<Any>

source§

fn from(advice: Column<Advice>) -> Column<Any>

Converts to this type from the input type.
source§

impl From<Column<Any>> for ColumnMid

source§

fn from(val: Column<Any>) -> Self

Converts to this type from the input type.
source§

impl From<Column<Any>> for RegionColumn

source§

fn from(column: Column<Any>) -> RegionColumn

Converts to this type from the input type.
source§

impl From<Column<Fixed>> for Column<Any>

source§

fn from(advice: Column<Fixed>) -> Column<Any>

Converts to this type from the input type.
source§

impl From<Column<Instance>> for Column<Any>

source§

fn from(advice: Column<Instance>) -> Column<Any>

Converts to this type from the input type.
source§

impl From<ColumnMid> for Column<Any>

source§

fn from(column: ColumnMid) -> Column<Any>

Converts to this type from the input type.
source§

impl<C: Hash + ColumnType> Hash for Column<C>

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where +

Trait Implementations§

source§

impl<C: Clone + ColumnType> Clone for Column<C>

source§

fn clone(&self) -> Column<C>

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

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

Performs copy-assignment from source. Read more
source§

impl<C: Debug + ColumnType> Debug for Column<C>

source§

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

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

impl From<Column<Advice>> for Column<Any>

source§

fn from(advice: Column<Advice>) -> Column<Any>

Converts to this type from the input type.
source§

impl From<Column<Any>> for ColumnMid

source§

fn from(val: Column<Any>) -> Self

Converts to this type from the input type.
source§

impl From<Column<Any>> for RegionColumn

source§

fn from(column: Column<Any>) -> RegionColumn

Converts to this type from the input type.
source§

impl From<Column<Fixed>> for Column<Any>

source§

fn from(advice: Column<Fixed>) -> Column<Any>

Converts to this type from the input type.
source§

impl From<Column<Instance>> for Column<Any>

source§

fn from(advice: Column<Instance>) -> Column<Any>

Converts to this type from the input type.
source§

impl From<ColumnMid> for Column<Any>

source§

fn from(column: ColumnMid) -> Column<Any>

Converts to this type from the input type.
source§

impl<C: Hash + ColumnType> Hash for Column<C>

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl<C: ColumnType> Ord for Column<C>

source§

fn cmp(&self, other: &Self) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Selfwhere Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Selfwhere @@ -34,7 +34,7 @@ by ==.

1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<C: ColumnType> PartialOrd<Column<C>> for Column<C>

source§

fn partial_cmp(&self, other: &Self) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more
source§

impl TryFrom<Column<Any>> for Column<Advice>

§

type Error = &'static str

The type returned in the event of a conversion error.
source§

fn try_from(any: Column<Any>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl TryFrom<Column<Any>> for Column<Fixed>

§

type Error = &'static str

The type returned in the event of a conversion error.
source§

fn try_from(any: Column<Any>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl TryFrom<Column<Any>> for Column<Instance>

§

type Error = &'static str

The type returned in the event of a conversion error.
source§

fn try_from(any: Column<Any>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<C: Copy + ColumnType> Copy for Column<C>

source§

impl<C: Eq + ColumnType> Eq for Column<C>

source§

impl<C: ColumnType> StructuralEq for Column<C>

source§

impl<C: ColumnType> StructuralPartialEq for Column<C>

Auto Trait Implementations§

§

impl<C> RefUnwindSafe for Column<C>where +operator. Read more

source§

impl TryFrom<Column<Any>> for Column<Advice>

§

type Error = &'static str

The type returned in the event of a conversion error.
source§

fn try_from(any: Column<Any>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl TryFrom<Column<Any>> for Column<Fixed>

§

type Error = &'static str

The type returned in the event of a conversion error.
source§

fn try_from(any: Column<Any>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl TryFrom<Column<Any>> for Column<Instance>

§

type Error = &'static str

The type returned in the event of a conversion error.
source§

fn try_from(any: Column<Any>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<C: Copy + ColumnType> Copy for Column<C>

source§

impl<C: Eq + ColumnType> Eq for Column<C>

source§

impl<C: ColumnType> StructuralEq for Column<C>

source§

impl<C: ColumnType> StructuralPartialEq for Column<C>

Auto Trait Implementations§

§

impl<C> RefUnwindSafe for Column<C>where C: RefUnwindSafe,

§

impl<C> Send for Column<C>where C: Send,

§

impl<C> Sync for Column<C>where C: Sync,

§

impl<C> Unpin for Column<C>where diff --git a/halo2_middleware/circuit/type.ExpressionMid.html b/halo2_middleware/circuit/type.ExpressionMid.html index c4ec59e07c..80a83dc08b 100644 --- a/halo2_middleware/circuit/type.ExpressionMid.html +++ b/halo2_middleware/circuit/type.ExpressionMid.html @@ -39,7 +39,7 @@ in how they are composed e.g. 1 + 2 and 2 + 1 can have the same identifier).

source

pub fn degree(&self) -> usize

Compute the degree of this polynomial

source

pub fn complexity(&self) -> usize

Approximate the computational complexity of this expression.

-

Trait Implementations§

source§

impl<F: Field, V: Variable> Add<Expression<F, V>> for Expression<F, V>

§

type Output = Expression<F, V>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Expression<F, V>) -> Expression<F, V>

Performs the + operation. Read more
source§

impl<F: Clone, V: Clone + Variable> Clone for Expression<F, V>

source§

fn clone(&self) -> Expression<F, V>

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

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

Performs copy-assignment from source. Read more
source§

impl<F: Debug, V: Debug + Variable> Debug for Expression<F, V>

source§

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

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

impl<F: Field, V: Variable> Mul<Expression<F, V>> for Expression<F, V>

§

type Output = Expression<F, V>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Expression<F, V>) -> Expression<F, V>

Performs the * operation. Read more
source§

impl<F: Field, V: Variable> Mul<F> for Expression<F, V>

§

type Output = Expression<F, V>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: F) -> Expression<F, V>

Performs the * operation. Read more
source§

impl<F: Field, V: Variable> Neg for Expression<F, V>

§

type Output = Expression<F, V>

The resulting type after applying the - operator.
source§

fn neg(self) -> Self::Output

Performs the unary - operation. Read more
source§

impl<F: PartialEq, V: PartialEq + Variable> PartialEq<Expression<F, V>> for Expression<F, V>

source§

fn eq(&self, other: &Expression<F, V>) -> bool

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl<F: Field, V: Variable> Add<Expression<F, V>> for Expression<F, V>

§

type Output = Expression<F, V>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Expression<F, V>) -> Expression<F, V>

Performs the + operation. Read more
source§

impl<F: Clone, V: Clone + Variable> Clone for Expression<F, V>

source§

fn clone(&self) -> Expression<F, V>

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

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

Performs copy-assignment from source. Read more
source§

impl<F: Debug, V: Debug + Variable> Debug for Expression<F, V>

source§

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

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

impl<F: Field, V: Variable> Mul<Expression<F, V>> for Expression<F, V>

§

type Output = Expression<F, V>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Expression<F, V>) -> Expression<F, V>

Performs the * operation. Read more
source§

impl<F: Field, V: Variable> Mul<F> for Expression<F, V>

§

type Output = Expression<F, V>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: F) -> Expression<F, V>

Performs the * operation. Read more
source§

impl<F: Field, V: Variable> Neg for Expression<F, V>

§

type Output = Expression<F, V>

The resulting type after applying the - operator.
source§

fn neg(self) -> Self::Output

Performs the unary - operation. Read more
source§

impl<F: PartialEq, V: PartialEq + Variable> PartialEq<Expression<F, V>> for Expression<F, V>

source§

fn eq(&self, other: &Expression<F, V>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<F: Field, V: Variable> Product<Expression<F, V>> for Expression<F, V>

source§

fn product<I: Iterator<Item = Self>>(iter: I) -> Self

Method which takes an iterator and generates Self from the elements by multiplying the items.
source§

impl<F: Field, V: Variable> Sub<Expression<F, V>> for Expression<F, V>

§

type Output = Expression<F, V>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Expression<F, V>) -> Expression<F, V>

Performs the - operation. Read more
source§

impl<F: Field, V: Variable> Sum<Expression<F, V>> for Expression<F, V>

source§

fn sum<I: Iterator<Item = Self>>(iter: I) -> Self

Method which takes an iterator and generates Self from the elements by diff --git a/halo2_middleware/expression/enum.Expression.html b/halo2_middleware/expression/enum.Expression.html index 6ac41a5f0c..dfaa58b1fe 100644 --- a/halo2_middleware/expression/enum.Expression.html +++ b/halo2_middleware/expression/enum.Expression.html @@ -40,7 +40,7 @@ in how they are composed e.g. 1 + 2 and 2 + 1 can have the same identifier).

source

pub fn degree(&self) -> usize

Compute the degree of this polynomial

source

pub fn complexity(&self) -> usize

Approximate the computational complexity of this expression.

-

Trait Implementations§

source§

impl<F: Field, V: Variable> Add<Expression<F, V>> for Expression<F, V>

§

type Output = Expression<F, V>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Expression<F, V>) -> Expression<F, V>

Performs the + operation. Read more
source§

impl<F: Clone, V: Clone + Variable> Clone for Expression<F, V>

source§

fn clone(&self) -> Expression<F, V>

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

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

Performs copy-assignment from source. Read more
source§

impl<F: Debug, V: Debug + Variable> Debug for Expression<F, V>

source§

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

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

impl<F: Field, V: Variable> Mul<Expression<F, V>> for Expression<F, V>

§

type Output = Expression<F, V>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Expression<F, V>) -> Expression<F, V>

Performs the * operation. Read more
source§

impl<F: Field, V: Variable> Mul<F> for Expression<F, V>

§

type Output = Expression<F, V>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: F) -> Expression<F, V>

Performs the * operation. Read more
source§

impl<F: Field, V: Variable> Neg for Expression<F, V>

§

type Output = Expression<F, V>

The resulting type after applying the - operator.
source§

fn neg(self) -> Self::Output

Performs the unary - operation. Read more
source§

impl<F: PartialEq, V: PartialEq + Variable> PartialEq<Expression<F, V>> for Expression<F, V>

source§

fn eq(&self, other: &Expression<F, V>) -> bool

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl<F: Field, V: Variable> Add<Expression<F, V>> for Expression<F, V>

§

type Output = Expression<F, V>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Expression<F, V>) -> Expression<F, V>

Performs the + operation. Read more
source§

impl<F: Clone, V: Clone + Variable> Clone for Expression<F, V>

source§

fn clone(&self) -> Expression<F, V>

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

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

Performs copy-assignment from source. Read more
source§

impl<F: Debug, V: Debug + Variable> Debug for Expression<F, V>

source§

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

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

impl<F: Field, V: Variable> Mul<Expression<F, V>> for Expression<F, V>

§

type Output = Expression<F, V>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Expression<F, V>) -> Expression<F, V>

Performs the * operation. Read more
source§

impl<F: Field, V: Variable> Mul<F> for Expression<F, V>

§

type Output = Expression<F, V>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: F) -> Expression<F, V>

Performs the * operation. Read more
source§

impl<F: Field, V: Variable> Neg for Expression<F, V>

§

type Output = Expression<F, V>

The resulting type after applying the - operator.
source§

fn neg(self) -> Self::Output

Performs the unary - operation. Read more
source§

impl<F: PartialEq, V: PartialEq + Variable> PartialEq<Expression<F, V>> for Expression<F, V>

source§

fn eq(&self, other: &Expression<F, V>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<F: Field, V: Variable> Product<Expression<F, V>> for Expression<F, V>

source§

fn product<I: Iterator<Item = Self>>(iter: I) -> Self

Method which takes an iterator and generates Self from the elements by multiplying the items.
source§

impl<F: Field, V: Variable> Sub<Expression<F, V>> for Expression<F, V>

§

type Output = Expression<F, V>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Expression<F, V>) -> Expression<F, V>

Performs the - operation. Read more
source§

impl<F: Field, V: Variable> Sum<Expression<F, V>> for Expression<F, V>

source§

fn sum<I: Iterator<Item = Self>>(iter: I) -> Self

Method which takes an iterator and generates Self from the elements by diff --git a/halo2_middleware/index.html b/halo2_middleware/index.html index 07386919d8..ec99124997 100644 --- a/halo2_middleware/index.html +++ b/halo2_middleware/index.html @@ -14,5 +14,5 @@ }); -

Crate halo2_middleware

source ·

Re-exports

  • pub use ff;

Modules

fn a() -> Self::Base

Returns the curve constant $a$.

fn b() -> Self::Base

Returns the curve constant $b$.

-

Implementations on Foreign Types§

§

impl CurveAffine for G2Affine

§

type ScalarExt = Fq

§

type Base = Fp2

§

type CurveExt = G2

§

fn is_on_curve(&self) -> Choice

§

fn coordinates(&self) -> CtOption<Coordinates<G2Affine>>

§

fn from_xy( +

Implementations on Foreign Types§

§

impl CurveAffine for G2Affine

§

type ScalarExt = Fr

§

type Base = Fq2

§

type CurveExt = G2

§

fn is_on_curve(&self) -> Choice

§

fn coordinates(&self) -> CtOption<Coordinates<G2Affine>>

§

fn from_xy( x: <G2Affine as CurveAffine>::Base, y: <G2Affine as CurveAffine>::Base -) -> CtOption<G2Affine>

§

fn a() -> <G2Affine as CurveAffine>::Base

§

fn b() -> <G2Affine as CurveAffine>::Base

§

impl CurveAffine for Secq256k1Affine

§

type ScalarExt = Fp

§

type Base = Fq

§

type CurveExt = Secq256k1

§

fn is_on_curve(&self) -> Choice

§

fn coordinates(&self) -> CtOption<Coordinates<Secq256k1Affine>>

§

fn from_xy( - x: <Secq256k1Affine as CurveAffine>::Base, - y: <Secq256k1Affine as CurveAffine>::Base -) -> CtOption<Secq256k1Affine>

§

fn a() -> <Secq256k1Affine as CurveAffine>::Base

§

fn b() -> <Secq256k1Affine as CurveAffine>::Base

§

impl CurveAffine for G1Affine

§

type ScalarExt = Fq

§

type Base = Fp

§

type CurveExt = G1

§

fn is_on_curve(&self) -> Choice

§

fn coordinates(&self) -> CtOption<Coordinates<G1Affine>>

§

fn from_xy( - x: <G1Affine as CurveAffine>::Base, - y: <G1Affine as CurveAffine>::Base -) -> CtOption<G1Affine>

§

fn a() -> <G1Affine as CurveAffine>::Base

§

fn b() -> <G1Affine as CurveAffine>::Base

§

impl CurveAffine for Secp256k1Affine

§

type ScalarExt = Fq

§

type Base = Fp

§

type CurveExt = Secp256k1

§

fn is_on_curve(&self) -> Choice

§

fn coordinates(&self) -> CtOption<Coordinates<Secp256k1Affine>>

§

fn from_xy( - x: <Secp256k1Affine as CurveAffine>::Base, - y: <Secp256k1Affine as CurveAffine>::Base -) -> CtOption<Secp256k1Affine>

§

fn a() -> <Secp256k1Affine as CurveAffine>::Base

§

fn b() -> <Secp256k1Affine as CurveAffine>::Base

§

impl CurveAffine for G1Affine

§

type ScalarExt = Fq

§

type Base = Fr

§

type CurveExt = G1

§

fn is_on_curve(&self) -> Choice

§

fn coordinates(&self) -> CtOption<Coordinates<G1Affine>>

§

fn from_xy( - x: <G1Affine as CurveAffine>::Base, - y: <G1Affine as CurveAffine>::Base -) -> CtOption<G1Affine>

§

fn a() -> <G1Affine as CurveAffine>::Base

§

fn b() -> <G1Affine as CurveAffine>::Base

§

impl CurveAffine for G2Affine

§

type ScalarExt = Fr

§

type Base = Fq2

§

type CurveExt = G2

§

fn is_on_curve(&self) -> Choice

§

fn coordinates(&self) -> CtOption<Coordinates<G2Affine>>

§

fn from_xy( - x: <G2Affine as CurveAffine>::Base, - y: <G2Affine as CurveAffine>::Base -) -> CtOption<G2Affine>

§

fn a() -> <G2Affine as CurveAffine>::Base

§

fn b() -> <G2Affine as CurveAffine>::Base

§

impl CurveAffine for ErisAffine

§

type ScalarExt = Fp

§

type Base = Fq

§

type CurveExt = Eris

§

fn is_on_curve(&self) -> Choice

§

fn coordinates(&self) -> CtOption<Coordinates<ErisAffine>>

§

fn from_xy( +) -> CtOption<G2Affine>

§

fn a() -> <G2Affine as CurveAffine>::Base

§

fn b() -> <G2Affine as CurveAffine>::Base

§

impl CurveAffine for ErisAffine

§

type ScalarExt = Fp

§

type Base = Fq

§

type CurveExt = Eris

§

fn is_on_curve(&self) -> Choice

§

fn coordinates(&self) -> CtOption<Coordinates<ErisAffine>>

§

fn from_xy( x: <ErisAffine as CurveAffine>::Base, y: <ErisAffine as CurveAffine>::Base -) -> CtOption<ErisAffine>

§

fn a() -> <ErisAffine as CurveAffine>::Base

§

fn b() -> <ErisAffine as CurveAffine>::Base

§

impl CurveAffine for Secp256r1Affine

§

type ScalarExt = Fq

§

type Base = Fp

§

type CurveExt = Secp256r1

§

fn is_on_curve(&self) -> Choice

§

fn coordinates(&self) -> CtOption<Coordinates<Secp256r1Affine>>

§

fn from_xy( +) -> CtOption<ErisAffine>

§

fn a() -> <ErisAffine as CurveAffine>::Base

§

fn b() -> <ErisAffine as CurveAffine>::Base

§

impl CurveAffine for Secp256r1Affine

§

type ScalarExt = Fq

§

type Base = Fp

§

type CurveExt = Secp256r1

§

fn is_on_curve(&self) -> Choice

§

fn coordinates(&self) -> CtOption<Coordinates<Secp256r1Affine>>

§

fn from_xy( x: <Secp256r1Affine as CurveAffine>::Base, y: <Secp256r1Affine as CurveAffine>::Base -) -> CtOption<Secp256r1Affine>

§

fn a() -> <Secp256r1Affine as CurveAffine>::Base

§

fn b() -> <Secp256r1Affine as CurveAffine>::Base

§

impl CurveAffine for G1Affine

§

type ScalarExt = Fr

§

type Base = Fq

§

type CurveExt = G1

§

fn is_on_curve(&self) -> Choice

§

fn coordinates(&self) -> CtOption<Coordinates<G1Affine>>

§

fn from_xy( +) -> CtOption<Secp256r1Affine>

§

fn a() -> <Secp256r1Affine as CurveAffine>::Base

§

fn b() -> <Secp256r1Affine as CurveAffine>::Base

§

impl CurveAffine for G1Affine

§

type ScalarExt = Fq

§

type Base = Fp

§

type CurveExt = G1

§

fn is_on_curve(&self) -> Choice

§

fn coordinates(&self) -> CtOption<Coordinates<G1Affine>>

§

fn from_xy( x: <G1Affine as CurveAffine>::Base, y: <G1Affine as CurveAffine>::Base -) -> CtOption<G1Affine>

§

fn a() -> <G1Affine as CurveAffine>::Base

§

fn b() -> <G1Affine as CurveAffine>::Base

Implementors§

§

impl CurveAffine for EpAffine

§

type ScalarExt = Fq

§

type Base = Fp

§

type CurveExt = Ep

§

impl CurveAffine for EqAffine

§

type ScalarExt = Fp

§

type Base = Fq

§

type CurveExt = Eq

\ No newline at end of file +) -> CtOption<G1Affine>
§

fn a() -> <G1Affine as CurveAffine>::Base

§

fn b() -> <G1Affine as CurveAffine>::Base

§

impl CurveAffine for G2Affine

§

type ScalarExt = Fq

§

type Base = Fp2

§

type CurveExt = G2

§

fn is_on_curve(&self) -> Choice

§

fn coordinates(&self) -> CtOption<Coordinates<G2Affine>>

§

fn from_xy( + x: <G2Affine as CurveAffine>::Base, + y: <G2Affine as CurveAffine>::Base +) -> CtOption<G2Affine>

§

fn a() -> <G2Affine as CurveAffine>::Base

§

fn b() -> <G2Affine as CurveAffine>::Base

§

impl CurveAffine for G1Affine

§

type ScalarExt = Fr

§

type Base = Fq

§

type CurveExt = G1

§

fn is_on_curve(&self) -> Choice

§

fn coordinates(&self) -> CtOption<Coordinates<G1Affine>>

§

fn from_xy( + x: <G1Affine as CurveAffine>::Base, + y: <G1Affine as CurveAffine>::Base +) -> CtOption<G1Affine>

§

fn a() -> <G1Affine as CurveAffine>::Base

§

fn b() -> <G1Affine as CurveAffine>::Base

§

impl CurveAffine for Secp256k1Affine

§

type ScalarExt = Fq

§

type Base = Fp

§

type CurveExt = Secp256k1

§

fn is_on_curve(&self) -> Choice

§

fn coordinates(&self) -> CtOption<Coordinates<Secp256k1Affine>>

§

fn from_xy( + x: <Secp256k1Affine as CurveAffine>::Base, + y: <Secp256k1Affine as CurveAffine>::Base +) -> CtOption<Secp256k1Affine>

§

fn a() -> <Secp256k1Affine as CurveAffine>::Base

§

fn b() -> <Secp256k1Affine as CurveAffine>::Base

§

impl CurveAffine for G1Affine

§

type ScalarExt = Fq

§

type Base = Fr

§

type CurveExt = G1

§

fn is_on_curve(&self) -> Choice

§

fn coordinates(&self) -> CtOption<Coordinates<G1Affine>>

§

fn from_xy( + x: <G1Affine as CurveAffine>::Base, + y: <G1Affine as CurveAffine>::Base +) -> CtOption<G1Affine>

§

fn a() -> <G1Affine as CurveAffine>::Base

§

fn b() -> <G1Affine as CurveAffine>::Base

§

impl CurveAffine for Secq256k1Affine

§

type ScalarExt = Fp

§

type Base = Fq

§

type CurveExt = Secq256k1

§

fn is_on_curve(&self) -> Choice

§

fn coordinates(&self) -> CtOption<Coordinates<Secq256k1Affine>>

§

fn from_xy( + x: <Secq256k1Affine as CurveAffine>::Base, + y: <Secq256k1Affine as CurveAffine>::Base +) -> CtOption<Secq256k1Affine>

§

fn a() -> <Secq256k1Affine as CurveAffine>::Base

§

fn b() -> <Secq256k1Affine as CurveAffine>::Base

Implementors§

§

impl CurveAffine for EpAffine

§

type ScalarExt = Fq

§

type Base = Fp

§

type CurveExt = Ep

§

impl CurveAffine for EqAffine

§

type ScalarExt = Fp

§

type Base = Fq

§

type CurveExt = Eq

\ No newline at end of file diff --git a/halo2_proofs/arithmetic/trait.CurveExt.html b/halo2_proofs/arithmetic/trait.CurveExt.html index d741ca2f1f..9c5438dae1 100644 --- a/halo2_proofs/arithmetic/trait.CurveExt.html +++ b/halo2_proofs/arithmetic/trait.CurveExt.html @@ -68,58 +68,58 @@
Example

fn b() -> Self::Base

Returns the curve constant b.

fn new_jacobian(x: Self::Base, y: Self::Base, z: Self::Base) -> CtOption<Self>

Obtains a point given Jacobian coordinates $X : Y : Z$, failing if the coordinates are not on the curve.

-

Implementations on Foreign Types§

§

impl CurveExt for G1

§

type ScalarExt = Fr

§

type Base = Fq

§

type AffineExt = G1Affine

§

const CURVE_ID: &'static str = "bn256_g1"

§

fn endo(&self) -> G1

§

fn jacobian_coordinates(&self) -> (Fq, Fq, Fq)

§

fn hash_to_curve<'a>( +

Implementations on Foreign Types§

§

impl CurveExt for Eris

§

type ScalarExt = Fp

§

type Base = Fq

§

type AffineExt = ErisAffine

§

const CURVE_ID: &'static str = "eris"

§

fn endo(&self) -> Eris

§

fn jacobian_coordinates(&self) -> (Fq, Fq, Fq)

§

fn hash_to_curve<'a>( domain_prefix: &'a str -) -> Box<dyn Fn(&[u8]) -> G1 + 'a, Global>

§

fn is_on_curve(&self) -> Choice

§

fn b() -> <G1 as CurveExt>::Base

§

fn a() -> <G1 as CurveExt>::Base

§

fn new_jacobian( +) -> Box<dyn Fn(&[u8]) -> Eris + 'a, Global>

§

fn is_on_curve(&self) -> Choice

§

fn b() -> <Eris as CurveExt>::Base

§

fn a() -> <Eris as CurveExt>::Base

§

fn new_jacobian( + x: <Eris as CurveExt>::Base, + y: <Eris as CurveExt>::Base, + z: <Eris as CurveExt>::Base +) -> CtOption<Eris>

§

impl CurveExt for G2

§

type ScalarExt = Fr

§

type Base = Fq2

§

type AffineExt = G2Affine

§

const CURVE_ID: &'static str = "bn256_g2"

§

fn endo(&self) -> G2

§

fn jacobian_coordinates(&self) -> (Fq2, Fq2, Fq2)

§

fn hash_to_curve<'a>( + domain_prefix: &'a str +) -> Box<dyn Fn(&[u8]) -> G2 + 'a, Global>

§

fn is_on_curve(&self) -> Choice

§

fn b() -> <G2 as CurveExt>::Base

§

fn a() -> <G2 as CurveExt>::Base

§

fn new_jacobian( + x: <G2 as CurveExt>::Base, + y: <G2 as CurveExt>::Base, + z: <G2 as CurveExt>::Base +) -> CtOption<G2>

§

impl CurveExt for G1

§

type ScalarExt = Fq

§

type Base = Fr

§

type AffineExt = G1Affine

§

const CURVE_ID: &'static str = "grumpkin_g1"

§

fn endo(&self) -> G1

§

fn jacobian_coordinates(&self) -> (Fr, Fr, Fr)

§

fn hash_to_curve<'a>( + domain_prefix: &'a str +) -> Box<dyn Fn(&[u8]) -> G1 + 'a, Global>

§

fn is_on_curve(&self) -> Choice

§

fn b() -> <G1 as CurveExt>::Base

§

fn a() -> <G1 as CurveExt>::Base

§

fn new_jacobian( x: <G1 as CurveExt>::Base, y: <G1 as CurveExt>::Base, z: <G1 as CurveExt>::Base -) -> CtOption<G1>

§

impl CurveExt for Secq256k1

§

type ScalarExt = Fp

§

type Base = Fq

§

type AffineExt = Secq256k1Affine

§

const CURVE_ID: &'static str = "secq256k1"

§

fn endo(&self) -> Secq256k1

§

fn jacobian_coordinates(&self) -> (Fq, Fq, Fq)

§

fn hash_to_curve<'a>( +) -> CtOption<G1>

§

impl CurveExt for Secp256k1

§

type ScalarExt = Fq

§

type Base = Fp

§

type AffineExt = Secp256k1Affine

§

const CURVE_ID: &'static str = "secp256k1"

§

fn endo(&self) -> Secp256k1

§

fn jacobian_coordinates(&self) -> (Fp, Fp, Fp)

§

fn hash_to_curve<'a>( domain_prefix: &'a str -) -> Box<dyn Fn(&[u8]) -> Secq256k1 + 'a, Global>

§

fn is_on_curve(&self) -> Choice

§

fn b() -> <Secq256k1 as CurveExt>::Base

§

fn a() -> <Secq256k1 as CurveExt>::Base

§

fn new_jacobian( +) -> Box<dyn Fn(&[u8]) -> Secp256k1 + 'a, Global>

§

fn is_on_curve(&self) -> Choice

§

fn b() -> <Secp256k1 as CurveExt>::Base

§

fn a() -> <Secp256k1 as CurveExt>::Base

§

fn new_jacobian( + x: <Secp256k1 as CurveExt>::Base, + y: <Secp256k1 as CurveExt>::Base, + z: <Secp256k1 as CurveExt>::Base +) -> CtOption<Secp256k1>

§

impl CurveExt for Secq256k1

§

type ScalarExt = Fp

§

type Base = Fq

§

type AffineExt = Secq256k1Affine

§

const CURVE_ID: &'static str = "secq256k1"

§

fn endo(&self) -> Secq256k1

§

fn jacobian_coordinates(&self) -> (Fq, Fq, Fq)

§

fn hash_to_curve<'a>( + domain_prefix: &'a str +) -> Box<dyn Fn(&[u8]) -> Secq256k1 + 'a, Global>

§

fn is_on_curve(&self) -> Choice

§

fn b() -> <Secq256k1 as CurveExt>::Base

§

fn a() -> <Secq256k1 as CurveExt>::Base

§

fn new_jacobian( x: <Secq256k1 as CurveExt>::Base, y: <Secq256k1 as CurveExt>::Base, z: <Secq256k1 as CurveExt>::Base -) -> CtOption<Secq256k1>

§

impl CurveExt for G2

§

type ScalarExt = Fq

§

type Base = Fp2

§

type AffineExt = G2Affine

§

const CURVE_ID: &'static str = "triton"

§

fn endo(&self) -> G2

§

fn jacobian_coordinates(&self) -> (Fp2, Fp2, Fp2)

§

fn hash_to_curve<'a>( +) -> CtOption<Secq256k1>

§

impl CurveExt for Secp256r1

§

type ScalarExt = Fq

§

type Base = Fp

§

type AffineExt = Secp256r1Affine

§

const CURVE_ID: &'static str = "secp256r1"

§

fn endo(&self) -> Secp256r1

§

fn jacobian_coordinates(&self) -> (Fp, Fp, Fp)

§

fn hash_to_curve<'a>( domain_prefix: &'a str -) -> Box<dyn Fn(&[u8]) -> G2 + 'a, Global>

§

fn is_on_curve(&self) -> Choice

§

fn b() -> <G2 as CurveExt>::Base

§

fn a() -> <G2 as CurveExt>::Base

§

fn new_jacobian( - x: <G2 as CurveExt>::Base, - y: <G2 as CurveExt>::Base, - z: <G2 as CurveExt>::Base -) -> CtOption<G2>

§

impl CurveExt for G1

§

type ScalarExt = Fq

§

type Base = Fp

§

type AffineExt = G1Affine

§

const CURVE_ID: &'static str = "pluto"

§

fn endo(&self) -> G1

§

fn jacobian_coordinates(&self) -> (Fp, Fp, Fp)

§

fn hash_to_curve<'a>( +) -> Box<dyn Fn(&[u8]) -> Secp256r1 + 'a, Global>

§

fn is_on_curve(&self) -> Choice

§

fn b() -> <Secp256r1 as CurveExt>::Base

§

fn a() -> <Secp256r1 as CurveExt>::Base

§

fn new_jacobian( + x: <Secp256r1 as CurveExt>::Base, + y: <Secp256r1 as CurveExt>::Base, + z: <Secp256r1 as CurveExt>::Base +) -> CtOption<Secp256r1>

§

impl CurveExt for G1

§

type ScalarExt = Fq

§

type Base = Fp

§

type AffineExt = G1Affine

§

const CURVE_ID: &'static str = "pluto"

§

fn endo(&self) -> G1

§

fn jacobian_coordinates(&self) -> (Fp, Fp, Fp)

§

fn hash_to_curve<'a>( domain_prefix: &'a str -) -> Box<dyn Fn(&[u8]) -> G1 + 'a, Global>

§

fn is_on_curve(&self) -> Choice

§

fn b() -> <G1 as CurveExt>::Base

§

fn a() -> <G1 as CurveExt>::Base

§

fn new_jacobian( +) -> Box<dyn Fn(&[u8]) -> G1 + 'a, Global>

§

fn is_on_curve(&self) -> Choice

§

fn b() -> <G1 as CurveExt>::Base

§

fn a() -> <G1 as CurveExt>::Base

§

fn new_jacobian( x: <G1 as CurveExt>::Base, y: <G1 as CurveExt>::Base, z: <G1 as CurveExt>::Base -) -> CtOption<G1>

§

impl CurveExt for G2

§

type ScalarExt = Fr

§

type Base = Fq2

§

type AffineExt = G2Affine

§

const CURVE_ID: &'static str = "bn256_g2"

§

fn endo(&self) -> G2

§

fn jacobian_coordinates(&self) -> (Fq2, Fq2, Fq2)

§

fn hash_to_curve<'a>( +) -> CtOption<G1>

§

impl CurveExt for G2

§

type ScalarExt = Fq

§

type Base = Fp2

§

type AffineExt = G2Affine

§

const CURVE_ID: &'static str = "triton"

§

fn endo(&self) -> G2

§

fn jacobian_coordinates(&self) -> (Fp2, Fp2, Fp2)

§

fn hash_to_curve<'a>( domain_prefix: &'a str -) -> Box<dyn Fn(&[u8]) -> G2 + 'a, Global>

§

fn is_on_curve(&self) -> Choice

§

fn b() -> <G2 as CurveExt>::Base

§

fn a() -> <G2 as CurveExt>::Base

§

fn new_jacobian( +) -> Box<dyn Fn(&[u8]) -> G2 + 'a, Global>

§

fn is_on_curve(&self) -> Choice

§

fn b() -> <G2 as CurveExt>::Base

§

fn a() -> <G2 as CurveExt>::Base

§

fn new_jacobian( x: <G2 as CurveExt>::Base, y: <G2 as CurveExt>::Base, z: <G2 as CurveExt>::Base -) -> CtOption<G2>

§

impl CurveExt for Eris

§

type ScalarExt = Fp

§

type Base = Fq

§

type AffineExt = ErisAffine

§

const CURVE_ID: &'static str = "eris"

§

fn endo(&self) -> Eris

§

fn jacobian_coordinates(&self) -> (Fq, Fq, Fq)

§

fn hash_to_curve<'a>( - domain_prefix: &'a str -) -> Box<dyn Fn(&[u8]) -> Eris + 'a, Global>

§

fn is_on_curve(&self) -> Choice

§

fn b() -> <Eris as CurveExt>::Base

§

fn a() -> <Eris as CurveExt>::Base

§

fn new_jacobian( - x: <Eris as CurveExt>::Base, - y: <Eris as CurveExt>::Base, - z: <Eris as CurveExt>::Base -) -> CtOption<Eris>

§

impl CurveExt for Secp256r1

§

type ScalarExt = Fq

§

type Base = Fp

§

type AffineExt = Secp256r1Affine

§

const CURVE_ID: &'static str = "secp256r1"

§

fn endo(&self) -> Secp256r1

§

fn jacobian_coordinates(&self) -> (Fp, Fp, Fp)

§

fn hash_to_curve<'a>( +) -> CtOption<G2>

§

impl CurveExt for G1

§

type ScalarExt = Fr

§

type Base = Fq

§

type AffineExt = G1Affine

§

const CURVE_ID: &'static str = "bn256_g1"

§

fn endo(&self) -> G1

§

fn jacobian_coordinates(&self) -> (Fq, Fq, Fq)

§

fn hash_to_curve<'a>( domain_prefix: &'a str -) -> Box<dyn Fn(&[u8]) -> Secp256r1 + 'a, Global>

§

fn is_on_curve(&self) -> Choice

§

fn b() -> <Secp256r1 as CurveExt>::Base

§

fn a() -> <Secp256r1 as CurveExt>::Base

§

fn new_jacobian( - x: <Secp256r1 as CurveExt>::Base, - y: <Secp256r1 as CurveExt>::Base, - z: <Secp256r1 as CurveExt>::Base -) -> CtOption<Secp256r1>

§

impl CurveExt for G1

§

type ScalarExt = Fq

§

type Base = Fr

§

type AffineExt = G1Affine

§

const CURVE_ID: &'static str = "grumpkin_g1"

§

fn endo(&self) -> G1

§

fn jacobian_coordinates(&self) -> (Fr, Fr, Fr)

§

fn hash_to_curve<'a>( - domain_prefix: &'a str -) -> Box<dyn Fn(&[u8]) -> G1 + 'a, Global>

§

fn is_on_curve(&self) -> Choice

§

fn b() -> <G1 as CurveExt>::Base

§

fn a() -> <G1 as CurveExt>::Base

§

fn new_jacobian( +) -> Box<dyn Fn(&[u8]) -> G1 + 'a, Global>

§

fn is_on_curve(&self) -> Choice

§

fn b() -> <G1 as CurveExt>::Base

§

fn a() -> <G1 as CurveExt>::Base

§

fn new_jacobian( x: <G1 as CurveExt>::Base, y: <G1 as CurveExt>::Base, z: <G1 as CurveExt>::Base -) -> CtOption<G1>

§

impl CurveExt for Secp256k1

§

type ScalarExt = Fq

§

type Base = Fp

§

type AffineExt = Secp256k1Affine

§

const CURVE_ID: &'static str = "secp256k1"

§

fn endo(&self) -> Secp256k1

§

fn jacobian_coordinates(&self) -> (Fp, Fp, Fp)

§

fn hash_to_curve<'a>( - domain_prefix: &'a str -) -> Box<dyn Fn(&[u8]) -> Secp256k1 + 'a, Global>

§

fn is_on_curve(&self) -> Choice

§

fn b() -> <Secp256k1 as CurveExt>::Base

§

fn a() -> <Secp256k1 as CurveExt>::Base

§

fn new_jacobian( - x: <Secp256k1 as CurveExt>::Base, - y: <Secp256k1 as CurveExt>::Base, - z: <Secp256k1 as CurveExt>::Base -) -> CtOption<Secp256k1>

Implementors§

§

impl CurveExt for Ep

§

type ScalarExt = Fq

§

type Base = Fp

§

type AffineExt = EpAffine

§

const CURVE_ID: &'static str = "pallas"

§

impl CurveExt for Eq

§

type ScalarExt = Fp

§

type Base = Fq

§

type AffineExt = EqAffine

§

const CURVE_ID: &'static str = "vesta"

\ No newline at end of file +) -> CtOption<G1>

Implementors§

§

impl CurveExt for Ep

§

type ScalarExt = Fq

§

type Base = Fp

§

type AffineExt = EpAffine

§

const CURVE_ID: &'static str = "pallas"

§

impl CurveExt for Eq

§

type ScalarExt = Fp

§

type Base = Fq

§

type AffineExt = EqAffine

§

const CURVE_ID: &'static str = "vesta"

\ No newline at end of file diff --git a/halo2_proofs/arithmetic/trait.Field.html b/halo2_proofs/arithmetic/trait.Field.html index 935cb218d5..7a1c271d42 100644 --- a/halo2_proofs/arithmetic/trait.Field.html +++ b/halo2_proofs/arithmetic/trait.Field.html @@ -86,35 +86,35 @@
Guarantees

This operation is variable time with respect to self, for all exponent. If the exponent is fixed, this operation is effectively constant time. However, for stronger constant-time guarantees, Field::pow should be used.

-

Implementations on Foreign Types§

§

impl Field for Fq

§

fn invert(&self) -> CtOption<Fq>

Computes the multiplicative inverse of this element, -failing if the element is zero.

-
§

const ZERO: Fq = _

§

const ONE: Fq = _

§

fn random(rng: impl RngCore) -> Fq

§

fn double(&self) -> Fq

§

fn square(&self) -> Fq

§

fn sqrt(&self) -> CtOption<Fq>

§

fn sqrt_ratio(num: &Fq, div: &Fq) -> (Choice, Fq)

§

impl Field for Fq

§

fn invert(&self) -> CtOption<Fq>

Returns the multiplicative inverse of the -element. If it is zero, the method fails.

-
§

const ZERO: Fq = _

§

const ONE: Fq = _

§

fn random(rng: impl RngCore) -> Fq

§

fn double(&self) -> Fq

§

fn square(&self) -> Fq

§

fn pow_vartime<S>(&self, exp: S) -> Fqwhere - S: AsRef<[u64]>,

§

fn sqrt(&self) -> CtOption<Fq>

§

fn sqrt_ratio(num: &Fq, div: &Fq) -> (Choice, Fq)

§

impl Field for Fp

§

fn sqrt(&self) -> CtOption<Fp>

Computes the square root of this element, if it exists.

-
§

fn invert(&self) -> CtOption<Fp>

Returns the multiplicative inverse of the +

Implementations on Foreign Types§

§

impl Field for Fr

§

fn invert(&self) -> CtOption<Fr>

Returns the multiplicative inverse of the element. If it is zero, the method fails.

-
§

const ZERO: Fp = _

§

const ONE: Fp = _

§

fn random(rng: impl RngCore) -> Fp

§

fn double(&self) -> Fp

§

fn square(&self) -> Fp

§

fn pow_vartime<S>(&self, exp: S) -> Fpwhere - S: AsRef<[u64]>,

§

fn sqrt_ratio(num: &Fp, div: &Fp) -> (Choice, Fp)

§

impl Field for Fq

§

fn invert(&self) -> CtOption<Fq>

Returns the multiplicative inverse of the +

§

const ZERO: Fr = _

§

const ONE: Fr = _

§

fn random(rng: impl RngCore) -> Fr

§

fn double(&self) -> Fr

§

fn square(&self) -> Fr

§

fn sqrt(&self) -> CtOption<Fr>

§

fn sqrt_ratio(num: &Fr, div: &Fr) -> (Choice, Fr)

§

impl Field for Fq

§

fn sqrt(&self) -> CtOption<Fq>

Computes the square root of this element, if it exists.

+
§

fn invert(&self) -> CtOption<Fq>

Returns the multiplicative inverse of the element. If it is zero, the method fails.

-
§

const ZERO: Fq = _

§

const ONE: Fq = _

§

fn random(rng: impl RngCore) -> Fq

§

fn double(&self) -> Fq

§

fn square(&self) -> Fq

§

fn pow_vartime<S>(&self, exp: S) -> Fqwhere - S: AsRef<[u64]>,

§

fn sqrt(&self) -> CtOption<Fq>

§

fn sqrt_ratio(num: &Fq, div: &Fq) -> (Choice, Fq)

§

impl Field for Fp

§

fn invert(&self) -> CtOption<Fp>

Computes the multiplicative inverse of this element, +

§

const ZERO: Fq = _

§

const ONE: Fq = _

§

fn random(rng: impl RngCore) -> Fq

§

fn double(&self) -> Fq

§

fn square(&self) -> Fq

§

fn sqrt_ratio(num: &Fq, div: &Fq) -> (Choice, Fq)

§

impl Field for Fq

§

fn invert(&self) -> CtOption<Fq>

Computes the multiplicative inverse of this element, failing if the element is zero.

-
§

const ZERO: Fp = _

§

const ONE: Fp = _

§

fn random(rng: impl RngCore) -> Fp

§

fn double(&self) -> Fp

§

fn square(&self) -> Fp

§

fn sqrt(&self) -> CtOption<Fp>

§

fn sqrt_ratio(num: &Fp, div: &Fp) -> (Choice, Fp)

§

impl Field for Fq6

§

const ZERO: Fq6 = _

§

const ONE: Fq6 = _

§

fn random(rng: impl RngCore) -> Fq6

§

fn is_zero(&self) -> Choice

§

fn square(&self) -> Fq6

§

fn double(&self) -> Fq6

§

fn sqrt(&self) -> CtOption<Fq6>

§

fn sqrt_ratio(_num: &Fq6, _div: &Fq6) -> (Choice, Fq6)

§

fn invert(&self) -> CtOption<Fq6>

§

impl Field for Fp

§

fn sqrt(&self) -> CtOption<Fp>

Computes the square root of this element, if it exists.

-
§

fn invert(&self) -> CtOption<Fp>

Returns the multiplicative inverse of the +

§

const ZERO: Fq = _

§

const ONE: Fq = _

§

fn random(rng: impl RngCore) -> Fq

§

fn double(&self) -> Fq

§

fn square(&self) -> Fq

§

fn sqrt(&self) -> CtOption<Fq>

§

fn sqrt_ratio(num: &Fq, div: &Fq) -> (Choice, Fq)

§

impl Field for Fq6

§

const ZERO: Fq6 = _

§

const ONE: Fq6 = _

§

fn random(rng: impl RngCore) -> Fq6

§

fn is_zero(&self) -> Choice

§

fn square(&self) -> Fq6

§

fn double(&self) -> Fq6

§

fn sqrt(&self) -> CtOption<Fq6>

§

fn sqrt_ratio(_num: &Fq6, _div: &Fq6) -> (Choice, Fq6)

§

fn invert(&self) -> CtOption<Fq6>

§

impl Field for Fq

§

fn invert(&self) -> CtOption<Fq>

Returns the multiplicative inverse of the element. If it is zero, the method fails.

-
§

const ZERO: Fp = _

§

const ONE: Fp = _

§

fn random(rng: impl RngCore) -> Fp

§

fn double(&self) -> Fp

§

fn square(&self) -> Fp

§

fn pow_vartime<S>(&self, exp: S) -> Fpwhere - S: AsRef<[u64]>,

§

fn sqrt_ratio(num: &Fp, div: &Fp) -> (Choice, Fp)

§

impl Field for Fq

§

fn sqrt(&self) -> CtOption<Fq>

Computes the square root of this element, if it exists.

-
§

fn invert(&self) -> CtOption<Fq>

Returns the multiplicative inverse of the +

§

const ZERO: Fq = _

§

const ONE: Fq = _

§

fn random(rng: impl RngCore) -> Fq

§

fn double(&self) -> Fq

§

fn square(&self) -> Fq

§

fn pow_vartime<S>(&self, exp: S) -> Fqwhere + S: AsRef<[u64]>,

§

fn sqrt(&self) -> CtOption<Fq>

§

fn sqrt_ratio(num: &Fq, div: &Fq) -> (Choice, Fq)

§

impl Field for Fq

§

fn invert(&self) -> CtOption<Fq>

Returns the multiplicative inverse of the +element. If it is zero, the method fails.

+
§

const ZERO: Fq = _

§

const ONE: Fq = _

§

fn random(rng: impl RngCore) -> Fq

§

fn double(&self) -> Fq

§

fn square(&self) -> Fq

§

fn pow_vartime<S>(&self, exp: S) -> Fqwhere + S: AsRef<[u64]>,

§

fn sqrt(&self) -> CtOption<Fq>

§

fn sqrt_ratio(num: &Fq, div: &Fq) -> (Choice, Fq)

§

impl Field for Fp

§

fn invert(&self) -> CtOption<Fp>

Computes the multiplicative inverse of this element, +failing if the element is zero.

+
§

const ZERO: Fp = _

§

const ONE: Fp = _

§

fn random(rng: impl RngCore) -> Fp

§

fn double(&self) -> Fp

§

fn square(&self) -> Fp

§

fn sqrt(&self) -> CtOption<Fp>

§

fn sqrt_ratio(num: &Fp, div: &Fp) -> (Choice, Fp)

§

impl Field for Fp

§

fn sqrt(&self) -> CtOption<Fp>

Computes the square root of this element, if it exists.

+
§

fn invert(&self) -> CtOption<Fp>

Returns the multiplicative inverse of the element. If it is zero, the method fails.

-
§

const ZERO: Fq = _

§

const ONE: Fq = _

§

fn random(rng: impl RngCore) -> Fq

§

fn double(&self) -> Fq

§

fn square(&self) -> Fq

§

fn sqrt_ratio(num: &Fq, div: &Fq) -> (Choice, Fq)

§

impl Field for Fq2

§

const ZERO: Fq2 = _

§

const ONE: Fq2 = _

§

fn random(rng: impl RngCore) -> Fq2

§

fn is_zero(&self) -> Choice

§

fn square(&self) -> Fq2

§

fn double(&self) -> Fq2

§

fn sqrt(&self) -> CtOption<Fq2>

§

fn sqrt_ratio(num: &Fq2, div: &Fq2) -> (Choice, Fq2)

§

fn invert(&self) -> CtOption<Fq2>

§

impl Field for Fq12

§

const ZERO: Fq12 = _

§

const ONE: Fq12 = _

§

fn random(rng: impl RngCore) -> Fq12

§

fn is_zero(&self) -> Choice

§

fn square(&self) -> Fq12

§

fn double(&self) -> Fq12

§

fn sqrt(&self) -> CtOption<Fq12>

§

fn sqrt_ratio(_num: &Fq12, _div: &Fq12) -> (Choice, Fq12)

§

fn invert(&self) -> CtOption<Fq12>

§

impl Field for Fr

§

fn invert(&self) -> CtOption<Fr>

Returns the multiplicative inverse of the +

§

const ZERO: Fp = _

§

const ONE: Fp = _

§

fn random(rng: impl RngCore) -> Fp

§

fn double(&self) -> Fp

§

fn square(&self) -> Fp

§

fn pow_vartime<S>(&self, exp: S) -> Fpwhere + S: AsRef<[u64]>,

§

fn sqrt_ratio(num: &Fp, div: &Fp) -> (Choice, Fp)

§

impl Field for Fp

§

fn sqrt(&self) -> CtOption<Fp>

Computes the square root of this element, if it exists.

+
§

fn invert(&self) -> CtOption<Fp>

Returns the multiplicative inverse of the element. If it is zero, the method fails.

-
§

const ZERO: Fr = _

§

const ONE: Fr = _

§

fn random(rng: impl RngCore) -> Fr

§

fn double(&self) -> Fr

§

fn square(&self) -> Fr

§

fn sqrt(&self) -> CtOption<Fr>

§

fn sqrt_ratio(num: &Fr, div: &Fr) -> (Choice, Fr)

§

impl Field for Fq

§

fn sqrt(&self) -> CtOption<Fq>

Computes the square root of this element, if it exists.

-
§

fn invert(&self) -> CtOption<Fq>

Computes the multiplicative inverse of this element, +

§

const ZERO: Fp = _

§

const ONE: Fp = _

§

fn random(rng: impl RngCore) -> Fp

§

fn double(&self) -> Fp

§

fn square(&self) -> Fp

§

fn pow_vartime<S>(&self, exp: S) -> Fpwhere + S: AsRef<[u64]>,

§

fn sqrt_ratio(num: &Fp, div: &Fp) -> (Choice, Fp)

§

impl Field for Fq2

§

const ZERO: Fq2 = _

§

const ONE: Fq2 = _

§

fn random(rng: impl RngCore) -> Fq2

§

fn is_zero(&self) -> Choice

§

fn square(&self) -> Fq2

§

fn double(&self) -> Fq2

§

fn sqrt(&self) -> CtOption<Fq2>

§

fn sqrt_ratio(num: &Fq2, div: &Fq2) -> (Choice, Fq2)

§

fn invert(&self) -> CtOption<Fq2>

§

impl Field for Fq12

§

const ZERO: Fq12 = _

§

const ONE: Fq12 = _

§

fn random(rng: impl RngCore) -> Fq12

§

fn is_zero(&self) -> Choice

§

fn square(&self) -> Fq12

§

fn double(&self) -> Fq12

§

fn sqrt(&self) -> CtOption<Fq12>

§

fn sqrt_ratio(_num: &Fq12, _div: &Fq12) -> (Choice, Fq12)

§

fn invert(&self) -> CtOption<Fq12>

§

impl Field for Fp

§

fn sqrt(&self) -> CtOption<Fp>

Computes the square root of this element, if it exists.

+
§

fn invert(&self) -> CtOption<Fp>

Computes the multiplicative inverse of this element, failing if the element is zero.

-
§

const ZERO: Fq = _

§

const ONE: Fq = _

§

fn random(rng: impl RngCore) -> Fq

§

fn double(&self) -> Fq

§

fn square(&self) -> Fq

§

fn sqrt_ratio(num: &Fq, div: &Fq) -> (Choice, Fq)

§

fn sqrt_alt(&self) -> (Choice, Fq)

§

fn pow_vartime<S>(&self, exp: S) -> Fqwhere - S: AsRef<[u64]>,

§

impl Field for Fp

§

fn sqrt(&self) -> CtOption<Fp>

Computes the square root of this element, if it exists.

-
§

fn invert(&self) -> CtOption<Fp>

Computes the multiplicative inverse of this element, +

§

const ZERO: Fp = _

§

const ONE: Fp = _

§

fn random(rng: impl RngCore) -> Fp

§

fn double(&self) -> Fp

§

fn square(&self) -> Fp

§

fn sqrt_ratio(num: &Fp, div: &Fp) -> (Choice, Fp)

§

fn sqrt_alt(&self) -> (Choice, Fp)

§

fn pow_vartime<S>(&self, exp: S) -> Fpwhere + S: AsRef<[u64]>,

§

impl Field for Fq

§

fn sqrt(&self) -> CtOption<Fq>

Computes the square root of this element, if it exists.

+
§

fn invert(&self) -> CtOption<Fq>

Computes the multiplicative inverse of this element, failing if the element is zero.

-
§

const ZERO: Fp = _

§

const ONE: Fp = _

§

fn random(rng: impl RngCore) -> Fp

§

fn double(&self) -> Fp

§

fn square(&self) -> Fp

§

fn sqrt_ratio(num: &Fp, div: &Fp) -> (Choice, Fp)

§

fn sqrt_alt(&self) -> (Choice, Fp)

§

fn pow_vartime<S>(&self, exp: S) -> Fpwhere +

§

const ZERO: Fq = _

§

const ONE: Fq = _

§

fn random(rng: impl RngCore) -> Fq

§

fn double(&self) -> Fq

§

fn square(&self) -> Fq

§

fn sqrt_ratio(num: &Fq, div: &Fq) -> (Choice, Fq)

§

fn sqrt_alt(&self) -> (Choice, Fq)

§

fn pow_vartime<S>(&self, exp: S) -> Fqwhere S: AsRef<[u64]>,

Implementors§

\ No newline at end of file diff --git a/halo2_proofs/circuit/struct.Value.html b/halo2_proofs/circuit/struct.Value.html index 558dd03f62..6a3f4f2f8d 100644 --- a/halo2_proofs/circuit/struct.Value.html +++ b/halo2_proofs/circuit/struct.Value.html @@ -101,15 +101,15 @@
Examples

If the denominator is zero, the returned value is zero.

Trait Implementations§

source§

impl<V, O> Add<&Value<V>> for &Value<V>where &'v V: for<'v> Add<&'v V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the + operator.
source§

fn add(self, rhs: &Value<V>) -> <&Value<V> as Add<&Value<V>>>::Output

Performs the + operation. Read more
source§

impl<V, O> Add<&Value<V>> for Value<V>where - V: for<'v> Add<&'v V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the + operator.
source§

fn add(self, rhs: &Value<V>) -> <Value<V> as Add<&Value<V>>>::Output

Performs the + operation. Read more
source§

impl<F> Add<F> for Value<&Assigned<F>>where - F: Field,

§

type Output = Value<Assigned<F>>

The resulting type after applying the + operator.
source§

fn add(self, rhs: F) -> <Value<&Assigned<F>> as Add<F>>::Output

Performs the + operation. Read more
source§

impl<F> Add<F> for Value<Assigned<F>>where - F: Field,

§

type Output = Value<Assigned<F>>

The resulting type after applying the + operator.
source§

fn add(self, rhs: F) -> <Value<Assigned<F>> as Add<F>>::Output

Performs the + operation. Read more
source§

impl<V, O> Add<Value<&V>> for Value<V>where + V: for<'v> Add<&'v V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the + operator.
source§

fn add(self, rhs: &Value<V>) -> <Value<V> as Add<&Value<V>>>::Output

Performs the + operation. Read more
source§

impl<F> Add<F> for Value<&Assigned<F>>where + F: Field,

§

type Output = Value<Assigned<F>>

The resulting type after applying the + operator.
source§

fn add(self, rhs: F) -> <Value<&Assigned<F>> as Add<F>>::Output

Performs the + operation. Read more
source§

impl<F> Add<F> for Value<Assigned<F>>where + F: Field,

§

type Output = Value<Assigned<F>>

The resulting type after applying the + operator.
source§

fn add(self, rhs: F) -> <Value<Assigned<F>> as Add<F>>::Output

Performs the + operation. Read more
source§

impl<V, O> Add<Value<&V>> for Value<V>where V: for<'v> Add<&'v V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Value<&V>) -> <Value<V> as Add<Value<&V>>>::Output

Performs the + operation. Read more
source§

impl<F> Add<Value<F>> for Value<&Assigned<F>>where - F: Field,

§

type Output = Value<Assigned<F>>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Value<F>) -> <Value<&Assigned<F>> as Add<Value<F>>>::Output

Performs the + operation. Read more
source§

impl<F> Add<Value<F>> for Value<Assigned<F>>where - F: Field,

§

type Output = Value<Assigned<F>>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Value<F>) -> <Value<Assigned<F>> as Add<Value<F>>>::Output

Performs the + operation. Read more
source§

impl<V, O> Add<Value<V>> for &Value<V>where - &'v V: for<'v> Add<V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Value<V>) -> <&Value<V> as Add<Value<V>>>::Output

Performs the + operation. Read more
source§

impl<V, O> Add<Value<V>> for Value<&V>where - &'v V: for<'v> Add<V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Value<V>) -> <Value<&V> as Add<Value<V>>>::Output

Performs the + operation. Read more
source§

impl<V, O> Add<Value<V>> for Value<V>where - V: Add<V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Value<V>) -> <Value<V> as Add<Value<V>>>::Output

Performs the + operation. Read more
source§

impl<V> Clone for Value<V>where + F: Field,

§

type Output = Value<Assigned<F>>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Value<F>) -> <Value<&Assigned<F>> as Add<Value<F>>>::Output

Performs the + operation. Read more
source§

impl<F> Add<Value<F>> for Value<Assigned<F>>where + F: Field,

§

type Output = Value<Assigned<F>>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Value<F>) -> <Value<Assigned<F>> as Add<Value<F>>>::Output

Performs the + operation. Read more
source§

impl<V, O> Add<Value<V>> for &Value<V>where + &'v V: for<'v> Add<V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Value<V>) -> <&Value<V> as Add<Value<V>>>::Output

Performs the + operation. Read more
source§

impl<V, O> Add<Value<V>> for Value<&V>where + &'v V: for<'v> Add<V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Value<V>) -> <Value<&V> as Add<Value<V>>>::Output

Performs the + operation. Read more
source§

impl<V, O> Add<Value<V>> for Value<V>where + V: Add<V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Value<V>) -> <Value<V> as Add<Value<V>>>::Output

Performs the + operation. Read more
source§

impl<V> Clone for Value<V>where V: Clone,

source§

fn clone(&self) -> Value<V>

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

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

Performs copy-assignment from source. Read more
source§

impl<V> Debug for Value<V>where V: Debug,

source§

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

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

impl<V> Default for Value<V>

source§

fn default() -> Value<V>

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

impl<F> From<Value<F>> for Value<Assigned<F>>where F: Field,

source§

fn from(value: Value<F>) -> Value<Assigned<F>>

Converts to this type from the input type.
source§

impl<A, V> FromIterator<Value<A>> for Value<V>where @@ -119,27 +119,27 @@
Examples
Value::unknown() occur, a container of type V containing the values of each Value is returned.

source§

impl<V, O> Mul<&Value<V>> for &Value<V>where - &'v V: for<'v> Mul<&'v V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: &Value<V>) -> <&Value<V> as Mul<&Value<V>>>::Output

Performs the * operation. Read more
source§

impl<V, O> Mul<&Value<V>> for Value<V>where - V: for<'v> Mul<&'v V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: &Value<V>) -> <Value<V> as Mul<&Value<V>>>::Output

Performs the * operation. Read more
source§

impl<F> Mul<F> for Value<&Assigned<F>>where - F: Field,

§

type Output = Value<Assigned<F>>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: F) -> <Value<&Assigned<F>> as Mul<F>>::Output

Performs the * operation. Read more
source§

impl<F> Mul<F> for Value<Assigned<F>>where - F: Field,

§

type Output = Value<Assigned<F>>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: F) -> <Value<Assigned<F>> as Mul<F>>::Output

Performs the * operation. Read more
source§

impl<V, O> Mul<Value<&V>> for Value<V>where - V: for<'v> Mul<&'v V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Value<&V>) -> <Value<V> as Mul<Value<&V>>>::Output

Performs the * operation. Read more
source§

impl<F> Mul<Value<F>> for Value<&Assigned<F>>where - F: Field,

§

type Output = Value<Assigned<F>>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Value<F>) -> <Value<&Assigned<F>> as Mul<Value<F>>>::Output

Performs the * operation. Read more
source§

impl<F> Mul<Value<F>> for Value<Assigned<F>>where + &'v V: for<'v> Mul<&'v V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: &Value<V>) -> <&Value<V> as Mul<&Value<V>>>::Output

Performs the * operation. Read more
source§

impl<V, O> Mul<&Value<V>> for Value<V>where + V: for<'v> Mul<&'v V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: &Value<V>) -> <Value<V> as Mul<&Value<V>>>::Output

Performs the * operation. Read more
source§

impl<F> Mul<F> for Value<&Assigned<F>>where + F: Field,

§

type Output = Value<Assigned<F>>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: F) -> <Value<&Assigned<F>> as Mul<F>>::Output

Performs the * operation. Read more
source§

impl<F> Mul<F> for Value<Assigned<F>>where + F: Field,

§

type Output = Value<Assigned<F>>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: F) -> <Value<Assigned<F>> as Mul<F>>::Output

Performs the * operation. Read more
source§

impl<V, O> Mul<Value<&V>> for Value<V>where + V: for<'v> Mul<&'v V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Value<&V>) -> <Value<V> as Mul<Value<&V>>>::Output

Performs the * operation. Read more
source§

impl<F> Mul<Value<F>> for Value<&Assigned<F>>where + F: Field,

§

type Output = Value<Assigned<F>>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Value<F>) -> <Value<&Assigned<F>> as Mul<Value<F>>>::Output

Performs the * operation. Read more
source§

impl<F> Mul<Value<F>> for Value<Assigned<F>>where F: Field,

§

type Output = Value<Assigned<F>>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Value<F>) -> <Value<Assigned<F>> as Mul<Value<F>>>::Output

Performs the * operation. Read more
source§

impl<V, O> Mul<Value<V>> for &Value<V>where - &'v V: for<'v> Mul<V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Value<V>) -> <&Value<V> as Mul<Value<V>>>::Output

Performs the * operation. Read more
source§

impl<V, O> Mul<Value<V>> for Value<&V>where + &'v V: for<'v> Mul<V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Value<V>) -> <&Value<V> as Mul<Value<V>>>::Output

Performs the * operation. Read more
source§

impl<V, O> Mul<Value<V>> for Value<&V>where &'v V: for<'v> Mul<V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Value<V>) -> <Value<&V> as Mul<Value<V>>>::Output

Performs the * operation. Read more
source§

impl<V, O> Mul<Value<V>> for Value<V>where - V: Mul<V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Value<V>) -> <Value<V> as Mul<Value<V>>>::Output

Performs the * operation. Read more
source§

impl<V> Neg for Value<V>where - V: Neg,

§

type Output = Value<<V as Neg>::Output>

The resulting type after applying the - operator.
source§

fn neg(self) -> <Value<V> as Neg>::Output

Performs the unary - operation. Read more
source§

impl<V, O> Sub<&Value<V>> for &Value<V>where - &'v V: for<'v> Sub<&'v V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: &Value<V>) -> <&Value<V> as Sub<&Value<V>>>::Output

Performs the - operation. Read more
source§

impl<V, O> Sub<&Value<V>> for Value<V>where - V: for<'v> Sub<&'v V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: &Value<V>) -> <Value<V> as Sub<&Value<V>>>::Output

Performs the - operation. Read more
source§

impl<F> Sub<F> for Value<&Assigned<F>>where - F: Field,

§

type Output = Value<Assigned<F>>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: F) -> <Value<&Assigned<F>> as Sub<F>>::Output

Performs the - operation. Read more
source§

impl<F> Sub<F> for Value<Assigned<F>>where - F: Field,

§

type Output = Value<Assigned<F>>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: F) -> <Value<Assigned<F>> as Sub<F>>::Output

Performs the - operation. Read more
source§

impl<V, O> Sub<Value<&V>> for Value<V>where - V: for<'v> Sub<&'v V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Value<&V>) -> <Value<V> as Sub<Value<&V>>>::Output

Performs the - operation. Read more
source§

impl<F> Sub<Value<F>> for Value<&Assigned<F>>where - F: Field,

§

type Output = Value<Assigned<F>>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Value<F>) -> <Value<&Assigned<F>> as Sub<Value<F>>>::Output

Performs the - operation. Read more
source§

impl<F> Sub<Value<F>> for Value<Assigned<F>>where - F: Field,

§

type Output = Value<Assigned<F>>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Value<F>) -> <Value<Assigned<F>> as Sub<Value<F>>>::Output

Performs the - operation. Read more
source§

impl<V, O> Sub<Value<V>> for &Value<V>where - &'v V: for<'v> Sub<V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Value<V>) -> <&Value<V> as Sub<Value<V>>>::Output

Performs the - operation. Read more
source§

impl<V, O> Sub<Value<V>> for Value<&V>where - &'v V: for<'v> Sub<V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Value<V>) -> <Value<&V> as Sub<Value<V>>>::Output

Performs the - operation. Read more
source§

impl<V, O> Sub<Value<V>> for Value<V>where - V: Sub<V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Value<V>) -> <Value<V> as Sub<Value<V>>>::Output

Performs the - operation. Read more
source§

impl<V> Copy for Value<V>where + V: Mul<V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Value<V>) -> <Value<V> as Mul<Value<V>>>::Output

Performs the * operation. Read more
source§

impl<V> Neg for Value<V>where + V: Neg,

§

type Output = Value<<V as Neg>::Output>

The resulting type after applying the - operator.
source§

fn neg(self) -> <Value<V> as Neg>::Output

Performs the unary - operation. Read more
source§

impl<V, O> Sub<&Value<V>> for &Value<V>where + &'v V: for<'v> Sub<&'v V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: &Value<V>) -> <&Value<V> as Sub<&Value<V>>>::Output

Performs the - operation. Read more
source§

impl<V, O> Sub<&Value<V>> for Value<V>where + V: for<'v> Sub<&'v V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: &Value<V>) -> <Value<V> as Sub<&Value<V>>>::Output

Performs the - operation. Read more
source§

impl<F> Sub<F> for Value<&Assigned<F>>where + F: Field,

§

type Output = Value<Assigned<F>>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: F) -> <Value<&Assigned<F>> as Sub<F>>::Output

Performs the - operation. Read more
source§

impl<F> Sub<F> for Value<Assigned<F>>where + F: Field,

§

type Output = Value<Assigned<F>>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: F) -> <Value<Assigned<F>> as Sub<F>>::Output

Performs the - operation. Read more
source§

impl<V, O> Sub<Value<&V>> for Value<V>where + V: for<'v> Sub<&'v V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Value<&V>) -> <Value<V> as Sub<Value<&V>>>::Output

Performs the - operation. Read more
source§

impl<F> Sub<Value<F>> for Value<&Assigned<F>>where + F: Field,

§

type Output = Value<Assigned<F>>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Value<F>) -> <Value<&Assigned<F>> as Sub<Value<F>>>::Output

Performs the - operation. Read more
source§

impl<F> Sub<Value<F>> for Value<Assigned<F>>where + F: Field,

§

type Output = Value<Assigned<F>>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Value<F>) -> <Value<Assigned<F>> as Sub<Value<F>>>::Output

Performs the - operation. Read more
source§

impl<V, O> Sub<Value<V>> for &Value<V>where + &'v V: for<'v> Sub<V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Value<V>) -> <&Value<V> as Sub<Value<V>>>::Output

Performs the - operation. Read more
source§

impl<V, O> Sub<Value<V>> for Value<&V>where + &'v V: for<'v> Sub<V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Value<V>) -> <Value<&V> as Sub<Value<V>>>::Output

Performs the - operation. Read more
source§

impl<V, O> Sub<Value<V>> for Value<V>where + V: Sub<V, Output = O>,

§

type Output = Value<O>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Value<V>) -> <Value<V> as Sub<Value<V>>>::Output

Performs the - operation. Read more
source§

impl<V> Copy for Value<V>where V: Copy,

Auto Trait Implementations§

§

impl<V> RefUnwindSafe for Value<V>where V: RefUnwindSafe,

§

impl<V> Send for Value<V>where V: Send,

§

impl<V> Sync for Value<V>where diff --git a/halo2_proofs/dev/metadata/struct.Region.html b/halo2_proofs/dev/metadata/struct.Region.html index 245cf6c74b..38209cb3c6 100644 --- a/halo2_proofs/dev/metadata/struct.Region.html +++ b/halo2_proofs/dev/metadata/struct.Region.html @@ -15,7 +15,7 @@
pub struct Region { /* private fields */ }
Expand description

Metadata about an assigned region within a circuit.

-

Trait Implementations§

source§

impl Clone for Region

source§

fn clone(&self) -> Region

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

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

Performs copy-assignment from source. Read more
source§

impl Debug for Region

source§

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

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

impl Display for Region

source§

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

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

impl From<(usize, &str)> for Region

source§

fn from(_: (usize, &str)) -> Region

Converts to this type from the input type.
source§

impl From<(usize, &str, HashMap<ColumnMid, String, RandomState>)> for Region

source§

fn from(_: (usize, &str, HashMap<ColumnMid, String, RandomState>)) -> Region

Converts to this type from the input type.
source§

impl From<(usize, String)> for Region

source§

fn from(_: (usize, String)) -> Region

Converts to this type from the input type.
source§

impl From<(usize, String, HashMap<ColumnMid, String, RandomState>)> for Region

source§

fn from(_: (usize, String, HashMap<ColumnMid, String, RandomState>)) -> Region

Converts to this type from the input type.
source§

impl PartialEq<Region> for Region

source§

fn eq(&self, other: &Region) -> bool

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for Region

source§

fn clone(&self) -> Region

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

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

Performs copy-assignment from source. Read more
source§

impl Debug for Region

source§

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

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

impl Display for Region

source§

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

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

impl From<(usize, &str)> for Region

source§

fn from(_: (usize, &str)) -> Region

Converts to this type from the input type.
source§

impl From<(usize, &str, HashMap<ColumnMid, String, RandomState>)> for Region

source§

fn from(_: (usize, &str, HashMap<ColumnMid, String, RandomState>)) -> Region

Converts to this type from the input type.
source§

impl From<(usize, String)> for Region

source§

fn from(_: (usize, String)) -> Region

Converts to this type from the input type.
source§

impl From<(usize, String, HashMap<ColumnMid, String, RandomState>)> for Region

source§

fn from(_: (usize, String, HashMap<ColumnMid, String, RandomState>)) -> Region

Converts to this type from the input type.
source§

impl PartialEq<Region> for Region

source§

fn eq(&self, other: &Region) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Eq for Region

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere diff --git a/halo2_proofs/dev/metadata/struct.VirtualCell.html b/halo2_proofs/dev/metadata/struct.VirtualCell.html index 7f1d3fdf23..9fc497935d 100644 --- a/halo2_proofs/dev/metadata/struct.VirtualCell.html +++ b/halo2_proofs/dev/metadata/struct.VirtualCell.html @@ -16,8 +16,8 @@
pub struct VirtualCell { /* private fields */ }
Expand description

A “virtual cell” is a PLONK cell that has been queried at a particular relative offset within a custom gate.

-

Trait Implementations§

source§

impl Debug for VirtualCell

source§

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

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

impl Display for VirtualCell

source§

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

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

impl From<(ColumnMid, i32)> for VirtualCell

source§

fn from(_: (ColumnMid, i32)) -> VirtualCell

Converts to this type from the input type.
source§

impl<S> From<(S, ColumnMid, i32)> for VirtualCellwhere - S: AsRef<str>,

source§

fn from(_: (S, ColumnMid, i32)) -> VirtualCell

Converts to this type from the input type.
source§

impl From<VirtualCell> for VirtualCell

source§

fn from(c: VirtualCell) -> VirtualCell

Converts to this type from the input type.
source§

impl Ord for VirtualCell

source§

fn cmp(&self, other: &VirtualCell) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Selfwhere +

Trait Implementations§

source§

impl Debug for VirtualCell

source§

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

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

impl Display for VirtualCell

source§

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

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

impl From<(ColumnMid, i32)> for VirtualCell

source§

fn from(_: (ColumnMid, i32)) -> VirtualCell

Converts to this type from the input type.
source§

impl<S> From<(S, ColumnMid, i32)> for VirtualCellwhere + S: AsRef<str>,

source§

fn from(_: (S, ColumnMid, i32)) -> VirtualCell

Converts to this type from the input type.
source§

impl From<VirtualCell> for VirtualCell

source§

fn from(c: VirtualCell) -> VirtualCell

Converts to this type from the input type.
source§

impl Ord for VirtualCell

source§

fn cmp(&self, other: &VirtualCell) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Selfwhere Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Selfwhere Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Selfwhere Self: Sized + PartialOrd<Self>,

Restrict a value to a certain interval. Read more
source§

impl PartialEq<VirtualCell> for VirtualCell

source§

fn eq(&self, other: &VirtualCell) -> bool

This method tests for self and other values to be equal, and is used diff --git a/halo2_proofs/plonk/enum.Any.html b/halo2_proofs/plonk/enum.Any.html index 9ad46701f0..9dcccda6d6 100644 --- a/halo2_proofs/plonk/enum.Any.html +++ b/halo2_proofs/plonk/enum.Any.html @@ -23,7 +23,7 @@
§

Fixed

A Fixed variant

§

Instance

An Instance variant

Trait Implementations§

source§

impl Clone for Any

source§

fn clone(&self) -> Any

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

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

Performs copy-assignment from source. Read more
source§

impl ColumnType for Any

source§

fn query_cell<F>(&self, index: usize, at: Rotation) -> Expression<F>where - F: Field,

Return expression from cell
source§

impl Debug for Any

source§

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

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

impl From<Advice> for Any

source§

fn from(_: Advice) -> Any

Converts to this type from the input type.
source§

impl From<Fixed> for Any

source§

fn from(_: Fixed) -> Any

Converts to this type from the input type.
source§

impl From<Instance> for Any

source§

fn from(_: Instance) -> Any

Converts to this type from the input type.
source§

impl Hash for Any

source§

fn hash<__H>(&self, state: &mut __H)where + F: Field,

Return expression from cell
source§

impl Debug for Any

source§

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

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

impl From<Advice> for Any

source§

fn from(_: Advice) -> Any

Converts to this type from the input type.
source§

impl From<Fixed> for Any

source§

fn from(_: Fixed) -> Any

Converts to this type from the input type.
source§

impl From<Instance> for Any

source§

fn from(_: Instance) -> Any

Converts to this type from the input type.
source§

impl Hash for Any

source§

fn hash<__H>(&self, state: &mut __H)where __H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Ord for Any

source§

fn cmp(&self, other: &Any) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Selfwhere diff --git a/halo2_proofs/plonk/enum.Assigned.html b/halo2_proofs/plonk/enum.Assigned.html index 1363fa67c6..d5ec84396c 100644 --- a/halo2_proofs/plonk/enum.Assigned.html +++ b/halo2_proofs/plonk/enum.Assigned.html @@ -36,37 +36,37 @@ necessary.

If the denominator is zero, this returns zero.

Trait Implementations§

source§

impl<F> Add<&Assigned<F>> for &Assigned<F>where - F: Field,

§

type Output = Assigned<F>

The resulting type after applying the + operator.
source§

fn add(self, rhs: &Assigned<F>) -> Assigned<F>

Performs the + operation. Read more
source§

impl<F> Add<&Assigned<F>> for Assigned<F>where - F: Field,

§

type Output = Assigned<F>

The resulting type after applying the + operator.
source§

fn add(self, rhs: &Assigned<F>) -> Assigned<F>

Performs the + operation. Read more
source§

impl<F> Add<Assigned<F>> for &Assigned<F>where - F: Field,

§

type Output = Assigned<F>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Assigned<F>) -> Assigned<F>

Performs the + operation. Read more
source§

impl<F> Add<Assigned<F>> for Assigned<F>where + F: Field,

§

type Output = Assigned<F>

The resulting type after applying the + operator.
source§

fn add(self, rhs: &Assigned<F>) -> Assigned<F>

Performs the + operation. Read more
source§

impl<F> Add<&Assigned<F>> for Assigned<F>where + F: Field,

§

type Output = Assigned<F>

The resulting type after applying the + operator.
source§

fn add(self, rhs: &Assigned<F>) -> Assigned<F>

Performs the + operation. Read more
source§

impl<F> Add<Assigned<F>> for &Assigned<F>where + F: Field,

§

type Output = Assigned<F>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Assigned<F>) -> Assigned<F>

Performs the + operation. Read more
source§

impl<F> Add<Assigned<F>> for Assigned<F>where F: Field,

§

type Output = Assigned<F>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Assigned<F>) -> Assigned<F>

Performs the + operation. Read more
source§

impl<F> Add<F> for &Assigned<F>where F: Field,

§

type Output = Assigned<F>

The resulting type after applying the + operator.
source§

fn add(self, rhs: F) -> Assigned<F>

Performs the + operation. Read more
source§

impl<F> Add<F> for Assigned<F>where - F: Field,

§

type Output = Assigned<F>

The resulting type after applying the + operator.
source§

fn add(self, rhs: F) -> Assigned<F>

Performs the + operation. Read more
source§

impl<F> AddAssign<&Assigned<F>> for Assigned<F>where - F: Field,

source§

fn add_assign(&mut self, rhs: &Assigned<F>)

Performs the += operation. Read more
source§

impl<F> AddAssign<Assigned<F>> for Assigned<F>where - F: Field,

source§

fn add_assign(&mut self, rhs: Assigned<F>)

Performs the += operation. Read more
source§

impl<F> Clone for Assigned<F>where + F: Field,

§

type Output = Assigned<F>

The resulting type after applying the + operator.
source§

fn add(self, rhs: F) -> Assigned<F>

Performs the + operation. Read more
source§

impl<F> AddAssign<&Assigned<F>> for Assigned<F>where + F: Field,

source§

fn add_assign(&mut self, rhs: &Assigned<F>)

Performs the += operation. Read more
source§

impl<F> AddAssign<Assigned<F>> for Assigned<F>where + F: Field,

source§

fn add_assign(&mut self, rhs: Assigned<F>)

Performs the += operation. Read more
source§

impl<F> Clone for Assigned<F>where F: Clone,

source§

fn clone(&self) -> Assigned<F>

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

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

Performs copy-assignment from source. Read more
source§

impl<F> Debug for Assigned<F>where F: Debug,

source§

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

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

impl<F> From<&Assigned<F>> for Assigned<F>where - F: Field,

source§

fn from(val: &Assigned<F>) -> Assigned<F>

Converts to this type from the input type.
source§

impl<F> From<&F> for Assigned<F>where - F: Field,

source§

fn from(numerator: &F) -> Assigned<F>

Converts to this type from the input type.
source§

impl<F> From<(F, F)> for Assigned<F>where - F: Field,

source§

fn from(_: (F, F)) -> Assigned<F>

Converts to this type from the input type.
source§

impl<F> From<F> for Assigned<F>where - F: Field,

source§

fn from(numerator: F) -> Assigned<F>

Converts to this type from the input type.
source§

impl<F> Mul<&Assigned<F>> for Assigned<F>where - F: Field,

§

type Output = Assigned<F>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: &Assigned<F>) -> Assigned<F>

Performs the * operation. Read more
source§

impl<F> Mul<Assigned<F>> for Assigned<F>where - F: Field,

§

type Output = Assigned<F>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Assigned<F>) -> Assigned<F>

Performs the * operation. Read more
source§

impl<F> Mul<F> for &Assigned<F>where - F: Field,

§

type Output = Assigned<F>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: F) -> Assigned<F>

Performs the * operation. Read more
source§

impl<F> Mul<F> for Assigned<F>where - F: Field,

§

type Output = Assigned<F>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: F) -> Assigned<F>

Performs the * operation. Read more
source§

impl<F> MulAssign<&Assigned<F>> for Assigned<F>where - F: Field,

source§

fn mul_assign(&mut self, rhs: &Assigned<F>)

Performs the *= operation. Read more
source§

impl<F> MulAssign<Assigned<F>> for Assigned<F>where - F: Field,

source§

fn mul_assign(&mut self, rhs: Assigned<F>)

Performs the *= operation. Read more
source§

impl<F> Neg for &Assigned<F>where - F: Field,

§

type Output = Assigned<F>

The resulting type after applying the - operator.
source§

fn neg(self) -> <&Assigned<F> as Neg>::Output

Performs the unary - operation. Read more
source§

impl<F> Neg for Assigned<F>where - F: Field,

§

type Output = Assigned<F>

The resulting type after applying the - operator.
source§

fn neg(self) -> <Assigned<F> as Neg>::Output

Performs the unary - operation. Read more
source§

impl<F> PartialEq<Assigned<F>> for Assigned<F>where + F: Field,

source§

fn from(val: &Assigned<F>) -> Assigned<F>

Converts to this type from the input type.
source§

impl<F> From<&F> for Assigned<F>where + F: Field,

source§

fn from(numerator: &F) -> Assigned<F>

Converts to this type from the input type.
source§

impl<F> From<(F, F)> for Assigned<F>where + F: Field,

source§

fn from(_: (F, F)) -> Assigned<F>

Converts to this type from the input type.
source§

impl<F> From<F> for Assigned<F>where + F: Field,

source§

fn from(numerator: F) -> Assigned<F>

Converts to this type from the input type.
source§

impl<F> Mul<&Assigned<F>> for Assigned<F>where + F: Field,

§

type Output = Assigned<F>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: &Assigned<F>) -> Assigned<F>

Performs the * operation. Read more
source§

impl<F> Mul<Assigned<F>> for Assigned<F>where + F: Field,

§

type Output = Assigned<F>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Assigned<F>) -> Assigned<F>

Performs the * operation. Read more
source§

impl<F> Mul<F> for &Assigned<F>where + F: Field,

§

type Output = Assigned<F>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: F) -> Assigned<F>

Performs the * operation. Read more
source§

impl<F> Mul<F> for Assigned<F>where + F: Field,

§

type Output = Assigned<F>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: F) -> Assigned<F>

Performs the * operation. Read more
source§

impl<F> MulAssign<&Assigned<F>> for Assigned<F>where + F: Field,

source§

fn mul_assign(&mut self, rhs: &Assigned<F>)

Performs the *= operation. Read more
source§

impl<F> MulAssign<Assigned<F>> for Assigned<F>where + F: Field,

source§

fn mul_assign(&mut self, rhs: Assigned<F>)

Performs the *= operation. Read more
source§

impl<F> Neg for &Assigned<F>where + F: Field,

§

type Output = Assigned<F>

The resulting type after applying the - operator.
source§

fn neg(self) -> <&Assigned<F> as Neg>::Output

Performs the unary - operation. Read more
source§

impl<F> Neg for Assigned<F>where + F: Field,

§

type Output = Assigned<F>

The resulting type after applying the - operator.
source§

fn neg(self) -> <Assigned<F> as Neg>::Output

Performs the unary - operation. Read more
source§

impl<F> PartialEq<Assigned<F>> for Assigned<F>where F: Field,

source§

fn eq(&self, other: &Assigned<F>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<F> Sub<&Assigned<F>> for &Assigned<F>where - F: Field,

§

type Output = Assigned<F>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: &Assigned<F>) -> Assigned<F>

Performs the - operation. Read more
source§

impl<F> Sub<&Assigned<F>> for Assigned<F>where - F: Field,

§

type Output = Assigned<F>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: &Assigned<F>) -> Assigned<F>

Performs the - operation. Read more
source§

impl<F> Sub<Assigned<F>> for &Assigned<F>where - F: Field,

§

type Output = Assigned<F>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Assigned<F>) -> Assigned<F>

Performs the - operation. Read more
source§

impl<F> Sub<Assigned<F>> for Assigned<F>where - F: Field,

§

type Output = Assigned<F>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Assigned<F>) -> Assigned<F>

Performs the - operation. Read more
source§

impl<F> Sub<F> for &Assigned<F>where - F: Field,

§

type Output = Assigned<F>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: F) -> Assigned<F>

Performs the - operation. Read more
source§

impl<F> Sub<F> for Assigned<F>where - F: Field,

§

type Output = Assigned<F>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: F) -> Assigned<F>

Performs the - operation. Read more
source§

impl<F> SubAssign<&Assigned<F>> for Assigned<F>where + F: Field,

§

type Output = Assigned<F>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: &Assigned<F>) -> Assigned<F>

Performs the - operation. Read more
source§

impl<F> Sub<&Assigned<F>> for Assigned<F>where + F: Field,

§

type Output = Assigned<F>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: &Assigned<F>) -> Assigned<F>

Performs the - operation. Read more
source§

impl<F> Sub<Assigned<F>> for &Assigned<F>where + F: Field,

§

type Output = Assigned<F>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Assigned<F>) -> Assigned<F>

Performs the - operation. Read more
source§

impl<F> Sub<Assigned<F>> for Assigned<F>where + F: Field,

§

type Output = Assigned<F>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Assigned<F>) -> Assigned<F>

Performs the - operation. Read more
source§

impl<F> Sub<F> for &Assigned<F>where + F: Field,

§

type Output = Assigned<F>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: F) -> Assigned<F>

Performs the - operation. Read more
source§

impl<F> Sub<F> for Assigned<F>where + F: Field,

§

type Output = Assigned<F>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: F) -> Assigned<F>

Performs the - operation. Read more
source§

impl<F> SubAssign<&Assigned<F>> for Assigned<F>where F: Field,

source§

fn sub_assign(&mut self, rhs: &Assigned<F>)

Performs the -= operation. Read more
source§

impl<F> SubAssign<Assigned<F>> for Assigned<F>where F: Field,

source§

fn sub_assign(&mut self, rhs: Assigned<F>)

Performs the -= operation. Read more
source§

impl<F> Copy for Assigned<F>where F: Copy,

source§

impl<F> Eq for Assigned<F>where diff --git a/halo2_proofs/plonk/enum.Error.html b/halo2_proofs/plonk/enum.Error.html index 62b4a79cc1..4958a3f8e4 100644 --- a/halo2_proofs/plonk/enum.Error.html +++ b/halo2_proofs/plonk/enum.Error.html @@ -20,7 +20,7 @@ }
Expand description

This is an error that could occur during proving or circuit synthesis.

Variants§

§

Frontend(ErrorFront)

Frontend error case

§

Backend(ErrorBack)

Backend error case

-

Trait Implementations§

source§

impl Debug for Error

source§

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

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

impl Display for Error

source§

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

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

impl From<Error> for Error

source§

fn from(err: ErrorBack) -> Self

Converts to this type from the input type.
source§

impl From<Error> for Error

source§

fn from(err: ErrorFront) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl !RefUnwindSafe for Error

§

impl Send for Error

§

impl Sync for Error

§

impl Unpin for Error

§

impl !UnwindSafe for Error

Blanket Implementations§

source§

impl<T> Any for Twhere +

Trait Implementations§

source§

impl Debug for Error

source§

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

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

impl Display for Error

source§

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

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

impl From<Error> for Error

source§

fn from(err: ErrorFront) -> Self

Converts to this type from the input type.
source§

impl From<Error> for Error

source§

fn from(err: ErrorBack) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl !RefUnwindSafe for Error

§

impl Send for Error

§

impl Sync for Error

§

impl Unpin for Error

§

impl !UnwindSafe for Error

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> Twhere diff --git a/halo2_proofs/plonk/enum.Expression.html b/halo2_proofs/plonk/enum.Expression.html index 15888f185d..ca7b4b01e5 100644 --- a/halo2_proofs/plonk/enum.Expression.html +++ b/halo2_proofs/plonk/enum.Expression.html @@ -80,14 +80,14 @@ F: Debug,

source§

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

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

impl<F> Mul<Expression<F>> for Expression<F>where F: Field,

§

type Output = Expression<F>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Expression<F>) -> Expression<F>

Performs the * operation. Read more
source§

impl<F> Mul<F> for Expression<F>where F: Field,

§

type Output = Expression<F>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: F) -> Expression<F>

Performs the * operation. Read more
source§

impl<F> Neg for Expression<F>where - F: Field,

§

type Output = Expression<F>

The resulting type after applying the - operator.
source§

fn neg(self) -> <Expression<F> as Neg>::Output

Performs the unary - operation. Read more
source§

impl<F> PartialEq<Expression<F>> for Expression<F>where + F: Field,

§

type Output = Expression<F>

The resulting type after applying the - operator.
source§

fn neg(self) -> <Expression<F> as Neg>::Output

Performs the unary - operation. Read more
source§

impl<F> PartialEq<Expression<F>> for Expression<F>where F: PartialEq<F>,

source§

fn eq(&self, other: &Expression<F>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<F> Product<Expression<F>> for Expression<F>where F: Field,

source§

fn product<I>(iter: I) -> Expression<F>where I: Iterator<Item = Expression<F>>,

Method which takes an iterator and generates Self from the elements by multiplying the items.
source§

impl<F> Sub<Expression<F>> for Expression<F>where - F: Field,

§

type Output = Expression<F>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Expression<F>) -> Expression<F>

Performs the - operation. Read more
source§

impl<F> Sum<Expression<F>> for Expression<F>where + F: Field,

§

type Output = Expression<F>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Expression<F>) -> Expression<F>

Performs the - operation. Read more
source§

impl<F> Sum<Expression<F>> for Expression<F>where F: Field,

source§

fn sum<I>(iter: I) -> Expression<F>where I: Iterator<Item = Expression<F>>,

Method which takes an iterator and generates Self from the elements by “summing up” the items.
source§

impl<F> Eq for Expression<F>where diff --git a/halo2_proofs/plonk/struct.Column.html b/halo2_proofs/plonk/struct.Column.html index 0805469397..e9fc7e2e1b 100644 --- a/halo2_proofs/plonk/struct.Column.html +++ b/halo2_proofs/plonk/struct.Column.html @@ -34,7 +34,7 @@ F: Field,

Return expression from column at the specified rotation

Trait Implementations§

source§

impl<C> Clone for Column<C>where C: Clone + ColumnType,

source§

fn clone(&self) -> Column<C>

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

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

Performs copy-assignment from source. Read more
source§

impl<C> Debug for Column<C>where - C: Debug + ColumnType,

source§

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

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

impl From<Column<Advice>> for Column<Any>

source§

fn from(advice: Column<Advice>) -> Column<Any>

Converts to this type from the input type.
source§

impl From<Column<Any>> for ColumnMid

source§

fn from(val: Column<Any>) -> ColumnMid

Converts to this type from the input type.
source§

impl From<Column<Fixed>> for Column<Any>

source§

fn from(advice: Column<Fixed>) -> Column<Any>

Converts to this type from the input type.
source§

impl From<Column<Instance>> for Column<Any>

source§

fn from(advice: Column<Instance>) -> Column<Any>

Converts to this type from the input type.
source§

impl From<ColumnMid> for Column<Any>

source§

fn from(column: ColumnMid) -> Column<Any>

Converts to this type from the input type.
source§

impl<C> Hash for Column<C>where + C: Debug + ColumnType,

source§

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

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

impl From<Column<Advice>> for Column<Any>

source§

fn from(advice: Column<Advice>) -> Column<Any>

Converts to this type from the input type.
source§

impl From<Column<Any>> for ColumnMid

source§

fn from(val: Column<Any>) -> ColumnMid

Converts to this type from the input type.
source§

impl From<Column<Fixed>> for Column<Any>

source§

fn from(advice: Column<Fixed>) -> Column<Any>

Converts to this type from the input type.
source§

impl From<Column<Instance>> for Column<Any>

source§

fn from(advice: Column<Instance>) -> Column<Any>

Converts to this type from the input type.
source§

impl From<ColumnMid> for Column<Any>

source§

fn from(column: ColumnMid) -> Column<Any>

Converts to this type from the input type.
source§

impl<C> Hash for Column<C>where C: Hash + ColumnType,

source§

fn hash<__H>(&self, state: &mut __H)where __H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where H: Hasher, @@ -48,11 +48,11 @@ sufficient, and should not be overridden without very good reason.

source§

impl<C> PartialOrd<Column<C>> for Column<C>where C: ColumnType,

source§

fn partial_cmp(&self, other: &Column<C>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more
source§

impl TryFrom<Column<Any>> for Column<Advice>

§

type Error = &'static str

The type returned in the event of a conversion error.
source§

fn try_from( +operator. Read more

source§

impl TryFrom<Column<Any>> for Column<Advice>

§

type Error = &'static str

The type returned in the event of a conversion error.
source§

fn try_from( any: Column<Any> -) -> Result<Column<Advice>, <Column<Advice> as TryFrom<Column<Any>>>::Error>

Performs the conversion.
source§

impl TryFrom<Column<Any>> for Column<Fixed>

§

type Error = &'static str

The type returned in the event of a conversion error.
source§

fn try_from( +) -> Result<Column<Advice>, <Column<Advice> as TryFrom<Column<Any>>>::Error>

Performs the conversion.
source§

impl TryFrom<Column<Any>> for Column<Fixed>

§

type Error = &'static str

The type returned in the event of a conversion error.
source§

fn try_from( any: Column<Any> -) -> Result<Column<Fixed>, <Column<Fixed> as TryFrom<Column<Any>>>::Error>

Performs the conversion.
source§

impl TryFrom<Column<Any>> for Column<Instance>

§

type Error = &'static str

The type returned in the event of a conversion error.
source§

fn try_from( +) -> Result<Column<Fixed>, <Column<Fixed> as TryFrom<Column<Any>>>::Error>

Performs the conversion.
source§

impl TryFrom<Column<Any>> for Column<Instance>

§

type Error = &'static str

The type returned in the event of a conversion error.
source§

fn try_from( any: Column<Any> ) -> Result<Column<Instance>, <Column<Instance> as TryFrom<Column<Any>>>::Error>

Performs the conversion.
source§

impl<C> Copy for Column<C>where C: Copy + ColumnType,

source§

impl<C> Eq for Column<C>where diff --git a/halo2_proofs/poly/commitment/struct.Blind.html b/halo2_proofs/poly/commitment/struct.Blind.html index 9515c5ce04..1f7e2ff791 100644 --- a/halo2_proofs/poly/commitment/struct.Blind.html +++ b/halo2_proofs/poly/commitment/struct.Blind.html @@ -20,14 +20,14 @@ R: RngCore,

Given rng creates new blinding scalar

Trait Implementations§

source§

impl<F> Add<Blind<F>> for Blind<F>where F: Field,

§

type Output = Blind<F>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Blind<F>) -> Blind<F>

Performs the + operation. Read more
source§

impl<F> AddAssign<Blind<F>> for Blind<F>where - F: Field,

source§

fn add_assign(&mut self, rhs: Blind<F>)

Performs the += operation. Read more
source§

impl<F> AddAssign<F> for Blind<F>where - F: Field,

source§

fn add_assign(&mut self, rhs: F)

Performs the += operation. Read more
source§

impl<F> Clone for Blind<F>where + F: Field,

source§

fn add_assign(&mut self, rhs: Blind<F>)

Performs the += operation. Read more
source§

impl<F> AddAssign<F> for Blind<F>where + F: Field,

source§

fn add_assign(&mut self, rhs: F)

Performs the += operation. Read more
source§

impl<F> Clone for Blind<F>where F: Clone,

source§

fn clone(&self) -> Blind<F>

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

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

Performs copy-assignment from source. Read more
source§

impl<F> Debug for Blind<F>where F: Debug,

source§

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

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

impl<F> Default for Blind<F>where F: Field,

source§

fn default() -> Blind<F>

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

impl<F> Mul<Blind<F>> for Blind<F>where F: Field,

§

type Output = Blind<F>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Blind<F>) -> Blind<F>

Performs the * operation. Read more
source§

impl<F> MulAssign<Blind<F>> for Blind<F>where - F: Field,

source§

fn mul_assign(&mut self, rhs: Blind<F>)

Performs the *= operation. Read more
source§

impl<F> MulAssign<F> for Blind<F>where - F: Field,

source§

fn mul_assign(&mut self, rhs: F)

Performs the *= operation. Read more
source§

impl<F> PartialEq<Blind<F>> for Blind<F>where + F: Field,

source§

fn mul_assign(&mut self, rhs: Blind<F>)

Performs the *= operation. Read more
source§

impl<F> MulAssign<F> for Blind<F>where + F: Field,

source§

fn mul_assign(&mut self, rhs: F)

Performs the *= operation. Read more
source§

impl<F> PartialEq<Blind<F>> for Blind<F>where F: PartialEq<F>,

source§

fn eq(&self, other: &Blind<F>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<F> Copy for Blind<F>where diff --git a/halo2_proofs/transcript/struct.Challenge255.html b/halo2_proofs/transcript/struct.Challenge255.html index cff328ce02..58fa46f7e0 100644 --- a/halo2_proofs/transcript/struct.Challenge255.html +++ b/halo2_proofs/transcript/struct.Challenge255.html @@ -119,42 +119,42 @@
Examples
an input from the Blake2b hash would be a [u8; 64].

source§

fn new(challenge_input: &[u8; 64]) -> Challenge255<C>

Get an encoded challenge from a given input challenge.
source§

fn get_scalar(&self) -> <C as PrimeCurveAffine>::Scalar

Get a scalar field element from an encoded challenge.
source§

fn as_challenge_scalar<T>(&self) -> ChallengeScalar<C, T>

Cast an encoded challenge as a typed ChallengeScalar.
source§

impl<R, C> Transcript<C, Challenge255<C>> for Blake2bRead<R, C, Challenge255<C>>where R: Read, C: CurveAffine, - <C as PrimeCurveAffine>::Scalar: FromUniformBytes<64>,

source§

fn squeeze_challenge(&mut self) -> Challenge255<C>

Squeeze an encoded verifier challenge from the transcript.
source§

fn common_point(&mut self, point: C) -> Result<(), Error>

Writing the point to the transcript without writing it to the proof, -treating it as a common input.
source§

fn common_scalar( + <C as PrimeCurveAffine>::Scalar: FromUniformBytes<64>,

source§

fn squeeze_challenge(&mut self) -> Challenge255<C>

Squeeze an encoded verifier challenge from the transcript.
source§

fn common_point(&mut self, point: C) -> Result<(), Error>

Writing the point to the transcript without writing it to the proof, +treating it as a common input.
source§

fn common_scalar( &mut self, scalar: <C as PrimeCurveAffine>::Scalar ) -> Result<(), Error>

Writing the scalar to the transcript without writing it to the proof, -treating it as a common input.
source§

fn squeeze_challenge_scalar<T>(&mut self) -> ChallengeScalar<C, T>

Squeeze a typed challenge (in the scalar field) from the transcript.
source§

impl<W, C> Transcript<C, Challenge255<C>> for Blake2bWrite<W, C, Challenge255<C>>where +treating it as a common input.

source§

fn squeeze_challenge_scalar<T>(&mut self) -> ChallengeScalar<C, T>

Squeeze a typed challenge (in the scalar field) from the transcript.
source§

impl<W, C> Transcript<C, Challenge255<C>> for Blake2bWrite<W, C, Challenge255<C>>where W: Write, C: CurveAffine, - <C as PrimeCurveAffine>::Scalar: FromUniformBytes<64>,

source§

fn squeeze_challenge(&mut self) -> Challenge255<C>

Squeeze an encoded verifier challenge from the transcript.
source§

fn common_point(&mut self, point: C) -> Result<(), Error>

Writing the point to the transcript without writing it to the proof, -treating it as a common input.
source§

fn common_scalar( + <C as PrimeCurveAffine>::Scalar: FromUniformBytes<64>,

source§

fn squeeze_challenge(&mut self) -> Challenge255<C>

Squeeze an encoded verifier challenge from the transcript.
source§

fn common_point(&mut self, point: C) -> Result<(), Error>

Writing the point to the transcript without writing it to the proof, +treating it as a common input.
source§

fn common_scalar( &mut self, scalar: <C as PrimeCurveAffine>::Scalar ) -> Result<(), Error>

Writing the scalar to the transcript without writing it to the proof, -treating it as a common input.
source§

fn squeeze_challenge_scalar<T>(&mut self) -> ChallengeScalar<C, T>

Squeeze a typed challenge (in the scalar field) from the transcript.
source§

impl<R, C> Transcript<C, Challenge255<C>> for Keccak256Read<R, C, Challenge255<C>>where +treating it as a common input.

source§

fn squeeze_challenge_scalar<T>(&mut self) -> ChallengeScalar<C, T>

Squeeze a typed challenge (in the scalar field) from the transcript.
source§

impl<R, C> Transcript<C, Challenge255<C>> for Keccak256Read<R, C, Challenge255<C>>where R: Read, C: CurveAffine, - <C as PrimeCurveAffine>::Scalar: FromUniformBytes<64>,

source§

fn squeeze_challenge(&mut self) -> Challenge255<C>

Squeeze an encoded verifier challenge from the transcript.
source§

fn common_point(&mut self, point: C) -> Result<(), Error>

Writing the point to the transcript without writing it to the proof, -treating it as a common input.
source§

fn common_scalar( + <C as PrimeCurveAffine>::Scalar: FromUniformBytes<64>,

source§

fn squeeze_challenge(&mut self) -> Challenge255<C>

Squeeze an encoded verifier challenge from the transcript.
source§

fn common_point(&mut self, point: C) -> Result<(), Error>

Writing the point to the transcript without writing it to the proof, +treating it as a common input.
source§

fn common_scalar( &mut self, scalar: <C as PrimeCurveAffine>::Scalar ) -> Result<(), Error>

Writing the scalar to the transcript without writing it to the proof, -treating it as a common input.
source§

fn squeeze_challenge_scalar<T>(&mut self) -> ChallengeScalar<C, T>

Squeeze a typed challenge (in the scalar field) from the transcript.
source§

impl<W, C> Transcript<C, Challenge255<C>> for Keccak256Write<W, C, Challenge255<C>>where +treating it as a common input.

source§

fn squeeze_challenge_scalar<T>(&mut self) -> ChallengeScalar<C, T>

Squeeze a typed challenge (in the scalar field) from the transcript.
source§

impl<W, C> Transcript<C, Challenge255<C>> for Keccak256Write<W, C, Challenge255<C>>where W: Write, C: CurveAffine, - <C as PrimeCurveAffine>::Scalar: FromUniformBytes<64>,

source§

fn squeeze_challenge(&mut self) -> Challenge255<C>

Squeeze an encoded verifier challenge from the transcript.
source§

fn common_point(&mut self, point: C) -> Result<(), Error>

Writing the point to the transcript without writing it to the proof, -treating it as a common input.
source§

fn common_scalar( + <C as PrimeCurveAffine>::Scalar: FromUniformBytes<64>,

source§

fn squeeze_challenge(&mut self) -> Challenge255<C>

Squeeze an encoded verifier challenge from the transcript.
source§

fn common_point(&mut self, point: C) -> Result<(), Error>

Writing the point to the transcript without writing it to the proof, +treating it as a common input.
source§

fn common_scalar( &mut self, scalar: <C as PrimeCurveAffine>::Scalar ) -> Result<(), Error>

Writing the scalar to the transcript without writing it to the proof, -treating it as a common input.
source§

fn squeeze_challenge_scalar<T>(&mut self) -> ChallengeScalar<C, T>

Squeeze a typed challenge (in the scalar field) from the transcript.
source§

impl<R, C> TranscriptRead<C, Challenge255<C>> for Blake2bRead<R, C, Challenge255<C>>where +treating it as a common input.

source§

fn squeeze_challenge_scalar<T>(&mut self) -> ChallengeScalar<C, T>

Squeeze a typed challenge (in the scalar field) from the transcript.
source§

impl<R, C> TranscriptRead<C, Challenge255<C>> for Blake2bRead<R, C, Challenge255<C>>where R: Read, C: CurveAffine, - <C as PrimeCurveAffine>::Scalar: FromUniformBytes<64>,

source§

fn read_point(&mut self) -> Result<C, Error>

Read a curve point from the prover.
source§

fn read_scalar(&mut self) -> Result<<C as PrimeCurveAffine>::Scalar, Error>

Read a curve scalar from the prover.
source§

impl<R, C> TranscriptRead<C, Challenge255<C>> for Keccak256Read<R, C, Challenge255<C>>where + <C as PrimeCurveAffine>::Scalar: FromUniformBytes<64>,

source§

fn read_point(&mut self) -> Result<C, Error>

Read a curve point from the prover.
source§

fn read_scalar(&mut self) -> Result<<C as PrimeCurveAffine>::Scalar, Error>

Read a curve scalar from the prover.
source§

impl<R, C> TranscriptRead<C, Challenge255<C>> for Keccak256Read<R, C, Challenge255<C>>where R: Read, C: CurveAffine, - <C as PrimeCurveAffine>::Scalar: FromUniformBytes<64>,

source§

fn read_point(&mut self) -> Result<C, Error>

Read a curve point from the prover.
source§

fn read_scalar(&mut self) -> Result<<C as PrimeCurveAffine>::Scalar, Error>

Read a curve scalar from the prover.
source§

impl<R, C> TranscriptReadBuffer<R, C, Challenge255<C>> for Blake2bRead<R, C, Challenge255<C>>where + <C as PrimeCurveAffine>::Scalar: FromUniformBytes<64>,

source§

fn read_point(&mut self) -> Result<C, Error>

Read a curve point from the prover.
source§

fn read_scalar(&mut self) -> Result<<C as PrimeCurveAffine>::Scalar, Error>

Read a curve scalar from the prover.
source§

impl<R, C> TranscriptReadBuffer<R, C, Challenge255<C>> for Blake2bRead<R, C, Challenge255<C>>where R: Read, C: CurveAffine, <C as PrimeCurveAffine>::Scalar: FromUniformBytes<64>,

source§

fn init(reader: R) -> Blake2bRead<R, C, Challenge255<C>>

Initialize a transcript given an input buffer.

diff --git a/implementors/core/clone/trait.Clone.js b/implementors/core/clone/trait.Clone.js index dc425be0fd..5585b62e5f 100644 --- a/implementors/core/clone/trait.Clone.js +++ b/implementors/core/clone/trait.Clone.js @@ -1,5 +1,5 @@ (function() {var implementors = { -"halo2_backend":[["impl<C: Clone + CurveAffine, T: Clone> Clone for ChallengeScalar<C, T>where\n C::Scalar: Clone,"],["impl Clone for SerdeFormat"],["impl Clone for ExtendedLagrangeCoeff"],["impl<C: Clone + CurveAffine> Clone for ProvingKey<C>where\n C::Scalar: Clone,"],["impl<E: Clone + Engine> Clone for MSMKZG<E>where\n E::G1Affine: CurveAffine<ScalarExt = <E as Engine>::Fr, CurveExt = <E as Engine>::G1>,\n E::G1: CurveExt<AffineExt = E::G1Affine> + Clone,\n E::Fr: Clone,"],["impl<C: Clone + CurveAffine> Clone for ParamsIPA<C>"],["impl Clone for Coeff"],["impl<'a, E: Clone + Engine> Clone for DualMSM<'a, E>where\n E::G1Affine: CurveAffine<ScalarExt = <E as Engine>::Fr, CurveExt = <E as Engine>::G1>,\n E::G1: CurveExt<AffineExt = E::G1Affine>,"],["impl<W: Clone + Write, C: Clone + CurveAffine, E: Clone + EncodedChallenge<C>> Clone for Blake2bWrite<W, C, E>"],["impl Clone for LagrangeCoeff"],["impl<F: Clone + Field> Clone for EvaluationDomain<F>"],["impl<C: Clone + CurveAffine> Clone for VerifyingKey<C>where\n C::Scalar: Clone,"],["impl<C: Clone + CurveAffine> Clone for Accumulator<C>where\n C::Scalar: Clone,"],["impl<F: Clone> Clone for Blind<F>"],["impl<'params, C: Clone + CurveAffine> Clone for MSMIPA<'params, C>where\n C::Scalar: Clone,\n C::Base: Clone,"],["impl<'params, E: Clone + Engine> Clone for SingleStrategy<'params, E>where\n E::G1Affine: CurveAffine<ScalarExt = <E as Engine>::Fr, CurveExt = <E as Engine>::G1>,\n E::G1: CurveExt<AffineExt = E::G1Affine>,"],["impl<C: Clone + CurveAffine> Clone for Challenge255<C>"],["impl<'params, E: Clone + Engine> Clone for AccumulatorStrategy<'params, E>where\n E::G1Affine: CurveAffine<ScalarExt = <E as Engine>::Fr, CurveExt = <E as Engine>::G1>,\n E::G1: CurveExt<AffineExt = E::G1Affine>,"],["impl<F: Clone, B: Clone> Clone for Polynomial<F, B>"],["impl<'params, C: Clone + CurveAffine> Clone for GuardIPA<'params, C>where\n C::Scalar: Clone,"],["impl<'params, E: Clone + MultiMillerLoop + Debug> Clone for GuardKZG<'params, E>where\n E::G1Affine: CurveAffine<ScalarExt = <E as Engine>::Fr, CurveExt = <E as Engine>::G1>,\n E::G1: CurveExt<AffineExt = E::G1Affine>,"],["impl<W: Clone + Write, C: Clone + CurveAffine, E: Clone + EncodedChallenge<C>> Clone for Keccak256Write<W, C, E>"],["impl<R: Clone + Read, C: Clone + CurveAffine, E: Clone + EncodedChallenge<C>> Clone for Blake2bRead<R, C, E>"],["impl<E: Clone + Engine> Clone for ParamsKZG<E>where\n E::G1Affine: Clone,\n E::G2Affine: Clone,"],["impl<R: Clone + Read, C: Clone + CurveAffine, E: Clone + EncodedChallenge<C>> Clone for Keccak256Read<R, C, E>"]], -"halo2_frontend":[["impl Clone for Lookup"],["impl Clone for RegionColumn"],["impl Clone for Permutation"],["impl Clone for RegionStart"],["impl<F: Clone + Field> Clone for Gate<F>"],["impl Clone for Advice"],["impl Clone for InstanceQuery"],["impl<F: Clone> Clone for Expression<F>"],["impl<F: Clone + Field> Clone for CellValue<F>"],["impl Clone for Instance"],["impl Clone for FailureLocation"],["impl<V: Clone> Clone for Value<V>"],["impl Clone for Constraint"],["impl Clone for Shuffle"],["impl Clone for RegionIndex"],["impl Clone for Challenge"],["impl Clone for AdviceQuery"],["impl<C: Clone + ColumnType> Clone for Column<C>"],["impl Clone for Argument"],["impl Clone for VirtualCell"],["impl<V: Clone, F: Clone + Field> Clone for AssignedCell<V, F>"],["impl Clone for Fixed"],["impl<F: Clone + Field> Clone for Argument<F>"],["impl Clone for Poly"],["impl Clone for Cell"],["impl<F: Clone + Field> Clone for InstanceValue<F>"],["impl Clone for TableColumn"],["impl Clone for Region"],["impl Clone for RegionShape"],["impl Clone for Gate"],["impl Clone for FixedQuery"],["impl<F: Clone + Field> Clone for Argument<F>"],["impl Clone for Selector"],["impl<F: Clone + Field> Clone for ConstraintSystem<F>"],["impl Clone for Phase"],["impl<F: Clone> Clone for Assigned<F>"]], -"halo2_middleware":[["impl<F: Clone + Field, V: Clone + Variable> Clone for Argument<F, V>"],["impl<F: Clone + Field> Clone for ConstraintSystemMid<F>"],["impl Clone for Rotation"],["impl Clone for ArgumentMid"],["impl<F: Clone + Field, V: Clone + Variable> Clone for Argument<F, V>"],["impl Clone for ChallengeMid"],["impl Clone for ColumnMid"],["impl<F: Clone + Field, V: Clone + Variable> Clone for Gate<F, V>"],["impl Clone for VarMid"],["impl Clone for Any"],["impl Clone for AssemblyMid"],["impl<F: Clone + Field> Clone for CompiledCircuit<F>"],["impl Clone for Cell"],["impl<F: Clone + Field> Clone for Preprocessing<F>"],["impl<F: Clone, V: Clone + Variable> Clone for Expression<F, V>"],["impl Clone for QueryMid"]] +"halo2_backend":[["impl<C: Clone + CurveAffine> Clone for ParamsIPA<C>"],["impl<C: Clone + CurveAffine> Clone for ProvingKey<C>where\n C::Scalar: Clone,"],["impl<F: Clone, B: Clone> Clone for Polynomial<F, B>"],["impl Clone for ExtendedLagrangeCoeff"],["impl<C: Clone + CurveAffine> Clone for Challenge255<C>"],["impl<'a, E: Clone + Engine> Clone for DualMSM<'a, E>where\n E::G1Affine: CurveAffine<ScalarExt = <E as Engine>::Fr, CurveExt = <E as Engine>::G1>,\n E::G1: CurveExt<AffineExt = E::G1Affine>,"],["impl<C: Clone + CurveAffine> Clone for Accumulator<C>where\n C::Scalar: Clone,"],["impl<W: Clone + Write, C: Clone + CurveAffine, E: Clone + EncodedChallenge<C>> Clone for Blake2bWrite<W, C, E>"],["impl<W: Clone + Write, C: Clone + CurveAffine, E: Clone + EncodedChallenge<C>> Clone for Keccak256Write<W, C, E>"],["impl<'params, E: Clone + Engine> Clone for SingleStrategy<'params, E>where\n E::G1Affine: CurveAffine<ScalarExt = <E as Engine>::Fr, CurveExt = <E as Engine>::G1>,\n E::G1: CurveExt<AffineExt = E::G1Affine>,"],["impl Clone for LagrangeCoeff"],["impl<'params, C: Clone + CurveAffine> Clone for GuardIPA<'params, C>where\n C::Scalar: Clone,"],["impl<E: Clone + Engine> Clone for MSMKZG<E>where\n E::G1Affine: CurveAffine<ScalarExt = <E as Engine>::Fr, CurveExt = <E as Engine>::G1>,\n E::G1: CurveExt<AffineExt = E::G1Affine> + Clone,\n E::Fr: Clone,"],["impl<F: Clone> Clone for Blind<F>"],["impl<'params, C: Clone + CurveAffine> Clone for MSMIPA<'params, C>where\n C::Scalar: Clone,\n C::Base: Clone,"],["impl Clone for SerdeFormat"],["impl<F: Clone + Field> Clone for EvaluationDomain<F>"],["impl<'params, E: Clone + Engine> Clone for AccumulatorStrategy<'params, E>where\n E::G1Affine: CurveAffine<ScalarExt = <E as Engine>::Fr, CurveExt = <E as Engine>::G1>,\n E::G1: CurveExt<AffineExt = E::G1Affine>,"],["impl Clone for Coeff"],["impl<E: Clone + Engine> Clone for ParamsKZG<E>where\n E::G1Affine: Clone,\n E::G2Affine: Clone,"],["impl<R: Clone + Read, C: Clone + CurveAffine, E: Clone + EncodedChallenge<C>> Clone for Blake2bRead<R, C, E>"],["impl<C: Clone + CurveAffine> Clone for VerifyingKey<C>where\n C::Scalar: Clone,"],["impl<C: Clone + CurveAffine, T: Clone> Clone for ChallengeScalar<C, T>where\n C::Scalar: Clone,"],["impl<'params, E: Clone + MultiMillerLoop + Debug> Clone for GuardKZG<'params, E>where\n E::G1Affine: CurveAffine<ScalarExt = <E as Engine>::Fr, CurveExt = <E as Engine>::G1>,\n E::G1: CurveExt<AffineExt = E::G1Affine>,"],["impl<R: Clone + Read, C: Clone + CurveAffine, E: Clone + EncodedChallenge<C>> Clone for Keccak256Read<R, C, E>"]], +"halo2_frontend":[["impl Clone for Cell"],["impl Clone for RegionColumn"],["impl<F: Clone + Field> Clone for CellValue<F>"],["impl<F: Clone + Field> Clone for Gate<F>"],["impl Clone for Argument"],["impl Clone for RegionIndex"],["impl Clone for VirtualCell"],["impl Clone for Shuffle"],["impl Clone for Advice"],["impl Clone for Selector"],["impl Clone for Challenge"],["impl<C: Clone + ColumnType> Clone for Column<C>"],["impl<V: Clone, F: Clone + Field> Clone for AssignedCell<V, F>"],["impl<F: Clone + Field> Clone for Argument<F>"],["impl Clone for Instance"],["impl<F: Clone + Field> Clone for Argument<F>"],["impl<F: Clone> Clone for Assigned<F>"],["impl Clone for Lookup"],["impl Clone for Poly"],["impl Clone for FixedQuery"],["impl<F: Clone> Clone for Expression<F>"],["impl Clone for RegionStart"],["impl Clone for Constraint"],["impl Clone for FailureLocation"],["impl Clone for TableColumn"],["impl<F: Clone + Field> Clone for ConstraintSystem<F>"],["impl Clone for Gate"],["impl Clone for RegionShape"],["impl<F: Clone + Field> Clone for InstanceValue<F>"],["impl Clone for InstanceQuery"],["impl Clone for Phase"],["impl Clone for AdviceQuery"],["impl Clone for Region"],["impl<V: Clone> Clone for Value<V>"],["impl Clone for Permutation"],["impl Clone for Fixed"]], +"halo2_middleware":[["impl Clone for Cell"],["impl Clone for ColumnMid"],["impl<F: Clone, V: Clone + Variable> Clone for Expression<F, V>"],["impl Clone for ChallengeMid"],["impl<F: Clone + Field> Clone for Preprocessing<F>"],["impl Clone for Any"],["impl Clone for QueryMid"],["impl Clone for ArgumentMid"],["impl<F: Clone + Field, V: Clone + Variable> Clone for Gate<F, V>"],["impl Clone for VarMid"],["impl Clone for AssemblyMid"],["impl<F: Clone + Field> Clone for ConstraintSystemMid<F>"],["impl<F: Clone + Field, V: Clone + Variable> Clone for Argument<F, V>"],["impl<F: Clone + Field, V: Clone + Variable> Clone for Argument<F, V>"],["impl<F: Clone + Field> Clone for CompiledCircuit<F>"],["impl Clone for Rotation"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/cmp/trait.Eq.js b/implementors/core/cmp/trait.Eq.js index 56672fcec4..4eae6e1696 100644 --- a/implementors/core/cmp/trait.Eq.js +++ b/implementors/core/cmp/trait.Eq.js @@ -1,5 +1,5 @@ (function() {var implementors = { "halo2_backend":[["impl<F: Eq> Eq for Blind<F>"]], -"halo2_frontend":[["impl Eq for Gate"],["impl Eq for FailureLocation"],["impl Eq for Instance"],["impl Eq for Selector"],["impl Eq for Poly"],["impl Eq for Constraint"],["impl Eq for VerifyFailure"],["impl Eq for AdviceQuery"],["impl Eq for RegionStart"],["impl Eq for TableColumn"],["impl Eq for RegionColumn"],["impl Eq for FixedQuery"],["impl Eq for Advice"],["impl<F: Eq> Eq for Expression<F>"],["impl Eq for CommitmentScheme"],["impl<F: Eq + Field> Eq for CellValue<F>"],["impl<C: Eq + ColumnType> Eq for Column<C>"],["impl Eq for Fixed"],["impl<F: Field> Eq for Assigned<F>"],["impl Eq for Region"],["impl Eq for Phase"],["impl<F: Eq + Field> Eq for InstanceValue<F>"],["impl Eq for InstanceQuery"],["impl Eq for Challenge"],["impl Eq for VirtualCell"]], -"halo2_middleware":[["impl Eq for QueryMid"],["impl Eq for ColumnMid"],["impl<F: Eq, V: Eq + Variable> Eq for Expression<F, V>"],["impl Eq for Rotation"],["impl Eq for VarMid"],["impl Eq for Cell"],["impl Eq for ChallengeMid"],["impl Eq for Any"]] +"halo2_frontend":[["impl Eq for Region"],["impl<F: Eq> Eq for Expression<F>"],["impl<C: Eq + ColumnType> Eq for Column<C>"],["impl Eq for TableColumn"],["impl Eq for Selector"],["impl Eq for CommitmentScheme"],["impl<F: Field> Eq for Assigned<F>"],["impl Eq for Gate"],["impl Eq for FixedQuery"],["impl Eq for RegionStart"],["impl Eq for VirtualCell"],["impl Eq for RegionColumn"],["impl<F: Eq + Field> Eq for InstanceValue<F>"],["impl Eq for Instance"],["impl Eq for Phase"],["impl Eq for Fixed"],["impl Eq for AdviceQuery"],["impl Eq for FailureLocation"],["impl<F: Eq + Field> Eq for CellValue<F>"],["impl Eq for InstanceQuery"],["impl Eq for Challenge"],["impl Eq for Advice"],["impl Eq for Poly"],["impl Eq for Constraint"],["impl Eq for VerifyFailure"]], +"halo2_middleware":[["impl Eq for Any"],["impl Eq for ColumnMid"],["impl Eq for QueryMid"],["impl Eq for VarMid"],["impl Eq for ChallengeMid"],["impl<F: Eq, V: Eq + Variable> Eq for Expression<F, V>"],["impl Eq for Rotation"],["impl Eq for Cell"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/cmp/trait.Ord.js b/implementors/core/cmp/trait.Ord.js index 16189819fb..815d268b43 100644 --- a/implementors/core/cmp/trait.Ord.js +++ b/implementors/core/cmp/trait.Ord.js @@ -1,4 +1,4 @@ (function() {var implementors = { -"halo2_frontend":[["impl Ord for Poly"],["impl Ord for VirtualCell"],["impl Ord for TableColumn"],["impl<C: ColumnType> Ord for Column<C>"],["impl Ord for RegionColumn"],["impl Ord for Phase"]], -"halo2_middleware":[["impl Ord for Rotation"],["impl Ord for Cell"],["impl Ord for ColumnMid"],["impl Ord for Any"]] +"halo2_frontend":[["impl<C: ColumnType> Ord for Column<C>"],["impl Ord for VirtualCell"],["impl Ord for TableColumn"],["impl Ord for Poly"],["impl Ord for RegionColumn"],["impl Ord for Phase"]], +"halo2_middleware":[["impl Ord for Cell"],["impl Ord for Any"],["impl Ord for ColumnMid"],["impl Ord for Rotation"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/cmp/trait.PartialEq.js b/implementors/core/cmp/trait.PartialEq.js index 96cfdd50b5..e88246df56 100644 --- a/implementors/core/cmp/trait.PartialEq.js +++ b/implementors/core/cmp/trait.PartialEq.js @@ -1,5 +1,5 @@ (function() {var implementors = { "halo2_backend":[["impl<F: PartialEq> PartialEq<Blind<F>> for Blind<F>"]], -"halo2_frontend":[["impl PartialEq<Region> for Region"],["impl PartialEq<VerifyFailure> for VerifyFailure"],["impl PartialEq<RegionColumn> for RegionColumn"],["impl PartialEq<Phase> for Phase"],["impl PartialEq<Selector> for Selector"],["impl PartialEq<Instance> for Instance"],["impl<F: Field> PartialEq<Assigned<F>> for Assigned<F>"],["impl PartialEq<TableColumn> for TableColumn"],["impl PartialEq<RegionStart> for RegionStart"],["impl PartialEq<Challenge> for Challenge"],["impl PartialEq<VirtualCell> for VirtualCell"],["impl PartialEq<CommitmentScheme> for CommitmentScheme"],["impl PartialEq<FailureLocation> for FailureLocation"],["impl PartialEq<Gate> for Gate"],["impl PartialEq<FixedQuery> for FixedQuery"],["impl PartialEq<Fixed> for Fixed"],["impl<C: PartialEq + ColumnType> PartialEq<Column<C>> for Column<C>"],["impl PartialEq<InstanceQuery> for InstanceQuery"],["impl PartialEq<Constraint> for Constraint"],["impl<F: PartialEq + Field> PartialEq<InstanceValue<F>> for InstanceValue<F>"],["impl<F: PartialEq> PartialEq<Expression<F>> for Expression<F>"],["impl PartialEq<AdviceQuery> for AdviceQuery"],["impl PartialEq<Advice> for Advice"],["impl<F: PartialEq + Field> PartialEq<CellValue<F>> for CellValue<F>"],["impl PartialEq<Poly> for Poly"]], -"halo2_middleware":[["impl PartialEq<ColumnMid> for ColumnMid"],["impl PartialEq<QueryMid> for QueryMid"],["impl<F: PartialEq, V: PartialEq + Variable> PartialEq<Expression<F, V>> for Expression<F, V>"],["impl PartialEq<Any> for Any"],["impl PartialEq<Cell> for Cell"],["impl PartialEq<VarMid> for VarMid"],["impl PartialEq<ChallengeMid> for ChallengeMid"],["impl PartialEq<Rotation> for Rotation"]] +"halo2_frontend":[["impl PartialEq<Instance> for Instance"],["impl PartialEq<Fixed> for Fixed"],["impl PartialEq<Advice> for Advice"],["impl PartialEq<Constraint> for Constraint"],["impl PartialEq<InstanceQuery> for InstanceQuery"],["impl PartialEq<Poly> for Poly"],["impl PartialEq<FailureLocation> for FailureLocation"],["impl PartialEq<Phase> for Phase"],["impl<C: PartialEq + ColumnType> PartialEq<Column<C>> for Column<C>"],["impl PartialEq<FixedQuery> for FixedQuery"],["impl PartialEq<Region> for Region"],["impl PartialEq<Challenge> for Challenge"],["impl<F: PartialEq + Field> PartialEq<CellValue<F>> for CellValue<F>"],["impl PartialEq<RegionColumn> for RegionColumn"],["impl PartialEq<CommitmentScheme> for CommitmentScheme"],["impl PartialEq<VerifyFailure> for VerifyFailure"],["impl PartialEq<AdviceQuery> for AdviceQuery"],["impl<F: PartialEq> PartialEq<Expression<F>> for Expression<F>"],["impl PartialEq<Gate> for Gate"],["impl PartialEq<VirtualCell> for VirtualCell"],["impl PartialEq<TableColumn> for TableColumn"],["impl PartialEq<Selector> for Selector"],["impl<F: Field> PartialEq<Assigned<F>> for Assigned<F>"],["impl<F: PartialEq + Field> PartialEq<InstanceValue<F>> for InstanceValue<F>"],["impl PartialEq<RegionStart> for RegionStart"]], +"halo2_middleware":[["impl PartialEq<Any> for Any"],["impl PartialEq<VarMid> for VarMid"],["impl PartialEq<ChallengeMid> for ChallengeMid"],["impl PartialEq<QueryMid> for QueryMid"],["impl PartialEq<ColumnMid> for ColumnMid"],["impl PartialEq<Cell> for Cell"],["impl PartialEq<Rotation> for Rotation"],["impl<F: PartialEq, V: PartialEq + Variable> PartialEq<Expression<F, V>> for Expression<F, V>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/cmp/trait.PartialOrd.js b/implementors/core/cmp/trait.PartialOrd.js index 264bae295e..9f5aa57183 100644 --- a/implementors/core/cmp/trait.PartialOrd.js +++ b/implementors/core/cmp/trait.PartialOrd.js @@ -1,4 +1,4 @@ (function() {var implementors = { -"halo2_frontend":[["impl<C: ColumnType> PartialOrd<Column<C>> for Column<C>"],["impl PartialOrd<Poly> for Poly"],["impl PartialOrd<Phase> for Phase"],["impl PartialOrd<RegionColumn> for RegionColumn"],["impl PartialOrd<VirtualCell> for VirtualCell"],["impl PartialOrd<TableColumn> for TableColumn"]], -"halo2_middleware":[["impl PartialOrd<Rotation> for Rotation"],["impl PartialOrd<ColumnMid> for ColumnMid"],["impl PartialOrd<Cell> for Cell"],["impl PartialOrd<Any> for Any"]] +"halo2_frontend":[["impl PartialOrd<Phase> for Phase"],["impl PartialOrd<TableColumn> for TableColumn"],["impl<C: ColumnType> PartialOrd<Column<C>> for Column<C>"],["impl PartialOrd<Poly> for Poly"],["impl PartialOrd<VirtualCell> for VirtualCell"],["impl PartialOrd<RegionColumn> for RegionColumn"]], +"halo2_middleware":[["impl PartialOrd<Cell> for Cell"],["impl PartialOrd<Any> for Any"],["impl PartialOrd<Rotation> for Rotation"],["impl PartialOrd<ColumnMid> for ColumnMid"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/convert/trait.From.js b/implementors/core/convert/trait.From.js index 7dbb07eba0..819f5dda28 100644 --- a/implementors/core/convert/trait.From.js +++ b/implementors/core/convert/trait.From.js @@ -1,5 +1,5 @@ (function() {var implementors = { -"halo2_backend":[["impl<'params, E: MultiMillerLoop + Debug> From<&'params ParamsKZG<E>> for DualMSM<'params, E>where\n E::G1Affine: CurveAffine<ScalarExt = <E as Engine>::Fr, CurveExt = <E as Engine>::G1>,\n E::G1: CurveExt<AffineExt = E::G1Affine>,"],["impl From<Error> for Error"]], -"halo2_frontend":[["impl<F: Field> From<ConstraintSystem<F>> for ConstraintSystemMid<F>"],["impl From<Advice> for Any"],["impl From<Instance> for Any"],["impl<S: AsRef<str>> From<(S, ColumnMid, i32)> for VirtualCell"],["impl<F: Field> From<Value<F>> for Value<Assigned<F>>"],["impl From<(usize, &str)> for Region"],["impl From<Column<Fixed>> for Column<Any>"],["impl<F: Field> From<F> for Assigned<F>"],["impl<F: Field> From<(F, F)> for Assigned<F>"],["impl<'r, F: Field> From<&'r mut dyn RegionLayouter<F>> for Region<'r, F>"],["impl From<(usize, String)> for Region"],["impl From<Fixed> for Any"],["impl<F> From<Expression<F>> for ExpressionMid<F>"],["impl From<(usize, String, HashMap<ColumnMid, String, RandomState>)> for Region"],["impl From<Challenge> for ChallengeMid"],["impl<G: PrimeGroup> From<ProofSize<G>> for usize"],["impl<F: Field, S: AsRef<str>> From<(S, Expression<F>)> for Constraint<F>"],["impl<G: PrimeGroup> From<MarginalProofSize<G>> for usize"],["impl<F: Field> From<&Assigned<F>> for Assigned<F>"],["impl<F: Field> From<Expression<F>> for Vec<Constraint<F>>"],["impl From<ChallengeMid> for Challenge"],["impl From<Column<Instance>> for Column<Any>"],["impl<F: Field> From<Expression<F>> for Constraint<F>"],["impl<Col: Into<Column<Any>>> From<(Col, Rotation)> for VirtualCell"],["impl From<Column<Advice>> for Column<Any>"],["impl From<Column<Any>> for RegionColumn"],["impl From<ColumnMid> for Column<Any>"],["impl From<VirtualCell> for VirtualCell"],["impl From<usize> for RegionStart"],["impl From<Column<Any>> for ColumnMid"],["impl<'r, F: Field> From<&'r mut dyn TableLayouter<F>> for Table<'r, F>"],["impl From<usize> for RegionIndex"],["impl From<(usize, &str, HashMap<ColumnMid, String, RandomState>)> for Region"],["impl From<(ColumnMid, i32)> for VirtualCell"],["impl<S: AsRef<str>> From<(usize, S)> for Gate"],["impl From<Selector> for RegionColumn"],["impl<S: AsRef<str>> From<(Gate, usize, S)> for Constraint"],["impl<F: Field> From<&F> for Assigned<F>"]], -"halo2_proofs":[["impl From<Error> for Error"],["impl From<Error> for Error"]] +"halo2_backend":[["impl From<Error> for Error"],["impl<'params, E: MultiMillerLoop + Debug> From<&'params ParamsKZG<E>> for DualMSM<'params, E>where\n E::G1Affine: CurveAffine<ScalarExt = <E as Engine>::Fr, CurveExt = <E as Engine>::G1>,\n E::G1: CurveExt<AffineExt = E::G1Affine>,"]], +"halo2_frontend":[["impl From<Fixed> for Any"],["impl From<ChallengeMid> for Challenge"],["impl From<Challenge> for ChallengeMid"],["impl<S: AsRef<str>> From<(usize, S)> for Gate"],["impl<F: Field> From<(F, F)> for Assigned<F>"],["impl From<Advice> for Any"],["impl From<(usize, String)> for Region"],["impl From<Column<Advice>> for Column<Any>"],["impl<F: Field, S: AsRef<str>> From<(S, Expression<F>)> for Constraint<F>"],["impl From<usize> for RegionStart"],["impl<Col: Into<Column<Any>>> From<(Col, Rotation)> for VirtualCell"],["impl From<Column<Any>> for RegionColumn"],["impl<F: Field> From<Expression<F>> for Vec<Constraint<F>>"],["impl From<Column<Instance>> for Column<Any>"],["impl<G: PrimeGroup> From<MarginalProofSize<G>> for usize"],["impl<S: AsRef<str>> From<(S, ColumnMid, i32)> for VirtualCell"],["impl<S: AsRef<str>> From<(Gate, usize, S)> for Constraint"],["impl From<(usize, &str, HashMap<ColumnMid, String, RandomState>)> for Region"],["impl From<(usize, &str)> for Region"],["impl From<Column<Fixed>> for Column<Any>"],["impl<'r, F: Field> From<&'r mut dyn TableLayouter<F>> for Table<'r, F>"],["impl<G: PrimeGroup> From<ProofSize<G>> for usize"],["impl<F> From<Expression<F>> for ExpressionMid<F>"],["impl<F: Field> From<Value<F>> for Value<Assigned<F>>"],["impl<F: Field> From<&F> for Assigned<F>"],["impl From<Instance> for Any"],["impl<F: Field> From<F> for Assigned<F>"],["impl From<Selector> for RegionColumn"],["impl From<(ColumnMid, i32)> for VirtualCell"],["impl From<VirtualCell> for VirtualCell"],["impl<'r, F: Field> From<&'r mut dyn RegionLayouter<F>> for Region<'r, F>"],["impl From<usize> for RegionIndex"],["impl<F: Field> From<Expression<F>> for Constraint<F>"],["impl<F: Field> From<ConstraintSystem<F>> for ConstraintSystemMid<F>"],["impl From<ColumnMid> for Column<Any>"],["impl From<(usize, String, HashMap<ColumnMid, String, RandomState>)> for Region"],["impl From<Column<Any>> for ColumnMid"],["impl<F: Field> From<&Assigned<F>> for Assigned<F>"]], +"halo2_proofs":[["impl From<Error> for Error"],["impl From<Error> for Error"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/convert/trait.TryFrom.js b/implementors/core/convert/trait.TryFrom.js index bb511e52ba..498aa623d8 100644 --- a/implementors/core/convert/trait.TryFrom.js +++ b/implementors/core/convert/trait.TryFrom.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"halo2_frontend":[["impl TryFrom<Column<Any>> for Column<Advice>"],["impl TryFrom<Column<Any>> for Column<Instance>"],["impl TryFrom<Column<Any>> for Column<Fixed>"]] +"halo2_frontend":[["impl TryFrom<Column<Any>> for Column<Fixed>"],["impl TryFrom<Column<Any>> for Column<Advice>"],["impl TryFrom<Column<Any>> for Column<Instance>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/default/trait.Default.js b/implementors/core/default/trait.Default.js index 67e851dbcc..0ec1b0d724 100644 --- a/implementors/core/default/trait.Default.js +++ b/implementors/core/default/trait.Default.js @@ -1,5 +1,5 @@ (function() {var implementors = { -"halo2_backend":[["impl<C: Default + CurveAffine> Default for BatchVerifier<C>"],["impl<E: Default + Engine> Default for MSMKZG<E>where\n E::G1Affine: CurveAffine<ScalarExt = <E as Engine>::Fr, CurveExt = <E as Engine>::G1>,\n E::G1: CurveExt<AffineExt = E::G1Affine> + Default,\n E::Fr: Default,"],["impl<F: Field> Default for Blind<F>"]], -"halo2_frontend":[["impl Default for Argument"],["impl<V> Default for Value<V>"],["impl<F: Field> Default for ConstraintSystem<F>"],["impl Default for CircuitLayout"]], -"halo2_middleware":[["impl<C: Default, M: Default> Default for PlonkEngineConfig<C, M>"],["impl Default for H2cEngine"],["impl Default for NoCurve"],["impl<C: Default + CurveAffine> Default for HasCurve<C>"],["impl Default for NoMsmEngine"]] +"halo2_backend":[["impl<F: Field> Default for Blind<F>"],["impl<C: Default + CurveAffine> Default for BatchVerifier<C>"],["impl<E: Default + Engine> Default for MSMKZG<E>where\n E::G1Affine: CurveAffine<ScalarExt = <E as Engine>::Fr, CurveExt = <E as Engine>::G1>,\n E::G1: CurveExt<AffineExt = E::G1Affine> + Default,\n E::Fr: Default,"]], +"halo2_frontend":[["impl<V> Default for Value<V>"],["impl Default for CircuitLayout"],["impl<F: Field> Default for ConstraintSystem<F>"],["impl Default for Argument"]], +"halo2_middleware":[["impl Default for NoCurve"],["impl Default for NoMsmEngine"],["impl<C: Default + CurveAffine> Default for HasCurve<C>"],["impl<C: Default, M: Default> Default for PlonkEngineConfig<C, M>"],["impl Default for H2cEngine"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/fmt/trait.Debug.js b/implementors/core/fmt/trait.Debug.js index 546c679dbe..f58f845679 100644 --- a/implementors/core/fmt/trait.Debug.js +++ b/implementors/core/fmt/trait.Debug.js @@ -1,6 +1,6 @@ (function() {var implementors = { -"halo2_backend":[["impl<'params, E: Debug + Engine> Debug for SingleStrategy<'params, E>where\n E::G1Affine: CurveAffine<ScalarExt = <E as Engine>::Fr, CurveExt = <E as Engine>::G1>,\n E::G1: CurveExt<AffineExt = E::G1Affine>,"],["impl<C: Debug + CurveAffine> Debug for IPACommitmentScheme<C>"],["impl<'params, E: Debug + Engine> Debug for VerifierGWC<'params, E>"],["impl<C: Debug + CurveAffine> Debug for BatchVerifier<C>"],["impl Debug for ExtendedLagrangeCoeff"],["impl<F: Debug> Debug for Blind<F>"],["impl<C: Debug + CurveAffine> Debug for Challenge255<C>"],["impl<'params, C: Debug + CurveAffine> Debug for VerifierIPA<'params, C>"],["impl<'a, E: Debug + Engine> Debug for DualMSM<'a, E>where\n E::G1Affine: CurveAffine<ScalarExt = <E as Engine>::Fr, CurveExt = <E as Engine>::G1>,\n E::G1: CurveExt<AffineExt = E::G1Affine>,"],["impl<C: Debug + CurveAffine> Debug for ParamsIPA<C>"],["impl<'a, 'params, Scheme: Debug + CommitmentScheme, P: Debug + Prover<'params, Scheme>, E: Debug + EncodedChallenge<Scheme::Curve>, R: Debug + RngCore, T: Debug + TranscriptWrite<Scheme::Curve, E>, M: Debug + MsmAccel<Scheme::Curve>> Debug for Prover<'a, 'params, Scheme, P, E, R, T, M>where\n Scheme::Curve: Debug,\n Scheme::ParamsProver: Debug,\n Scheme::Scalar: Debug,"],["impl Debug for LagrangeCoeff"],["impl<'params, E: Debug + Engine> Debug for VerifierSHPLONK<'params, E>"],["impl<'params, E: Debug + Engine> Debug for AccumulatorStrategy<'params, E>where\n E::G1Affine: CurveAffine<ScalarExt = <E as Engine>::Fr, CurveExt = <E as Engine>::G1>,\n E::G1: CurveExt<AffineExt = E::G1Affine>,"],["impl<'params, C: Debug + CurveAffine> Debug for MSMIPA<'params, C>where\n C::Scalar: Debug,\n C::Base: Debug,"],["impl<F: Debug + Field> Debug for EvaluationDomain<F>"],["impl<'params, E: Debug + Engine> Debug for ProverGWC<'params, E>"],["impl Debug for Error"],["impl<'params, C: Debug + CurveAffine> Debug for GuardIPA<'params, C>where\n C::Scalar: Debug,"],["impl<C: Debug + CurveAffine> Debug for Accumulator<C>where\n C::Scalar: Debug,"],["impl<'a, 'params, Scheme: Debug + CommitmentScheme, P: Debug + Prover<'params, Scheme>, E: Debug + EncodedChallenge<Scheme::Curve>, R: Debug + RngCore, T: Debug + TranscriptWrite<Scheme::Curve, E>, M: Debug + MsmAccel<Scheme::Curve>> Debug for ProverSingle<'a, 'params, Scheme, P, E, R, T, M>"],["impl<'params, C: Debug + CurveAffine> Debug for SingleStrategy<'params, C>"],["impl<'params, C: Debug + CurveAffine> Debug for ProverIPA<'params, C>"],["impl<F: Debug, B: Debug> Debug for Polynomial<F, B>"],["impl<W: Debug + Write, C: Debug + CurveAffine, E: Debug + EncodedChallenge<C>> Debug for Keccak256Write<W, C, E>"],["impl<E: Debug + Engine> Debug for MSMKZG<E>where\n E::G1Affine: CurveAffine<ScalarExt = <E as Engine>::Fr, CurveExt = <E as Engine>::G1>,\n E::G1: CurveExt<AffineExt = E::G1Affine> + Debug,\n E::Fr: Debug,"],["impl<C: Debug + CurveAffine> Debug for ProvingKey<C>where\n C::Scalar: Debug,"],["impl<'a, C: Debug + CurveAffine> Debug for PinnedVerificationKey<'a, C>where\n C::Scalar: Debug,"],["impl<'params, E: Debug + MultiMillerLoop + Debug> Debug for GuardKZG<'params, E>where\n E::G1Affine: CurveAffine<ScalarExt = <E as Engine>::Fr, CurveExt = <E as Engine>::G1>,\n E::G1: CurveExt<AffineExt = E::G1Affine>,"],["impl Debug for Error"],["impl<'a, E: Debug + Engine> Debug for ProverSHPLONK<'a, E>"],["impl<'a, F: Debug + Field> Debug for PinnedEvaluationDomain<'a, F>"],["impl<E: Debug + Engine> Debug for ParamsKZG<E>where\n E::G1Affine: Debug,\n E::G2Affine: Debug,"],["impl<W: Debug + Write, C: Debug + CurveAffine, E: Debug + EncodedChallenge<C>> Debug for Blake2bWrite<W, C, E>"],["impl<C: Debug + CurveAffine, T: Debug> Debug for ChallengeScalar<C, T>where\n C::Scalar: Debug,"],["impl Debug for Coeff"],["impl<E: Debug + Engine> Debug for KZGCommitmentScheme<E>"],["impl<'params, C: Debug + CurveAffine> Debug for AccumulatorStrategy<'params, C>"],["impl<R: Debug + Read, C: Debug + CurveAffine, E: Debug + EncodedChallenge<C>> Debug for Blake2bRead<R, C, E>"],["impl Debug for SerdeFormat"],["impl<R: Debug + Read, C: Debug + CurveAffine, E: Debug + EncodedChallenge<C>> Debug for Keccak256Read<R, C, E>"],["impl<C: Debug + CurveAffine> Debug for VerifyingKey<C>where\n C::Scalar: Debug,"]], -"halo2_frontend":[["impl<G: Debug + PrimeGroup, ConcreteCircuit: Debug + Circuit<G::Scalar>> Debug for CircuitCost<G, ConcreteCircuit>"],["impl<F: Debug + Field> Debug for MockProver<F>"],["impl Debug for Lookup"],["impl<F: Debug + Field> Debug for CellValue<F>"],["impl Debug for ThirdPhase"],["impl Debug for Selector"],["impl Debug for RegionStart"],["impl<C: Debug + ColumnType> Debug for Column<C>"],["impl Debug for Challenge"],["impl Debug for CircuitGates"],["impl<F: Debug + Field, C: Debug + Into<Constraint<F>>, Iter: Debug + IntoIterator<Item = C>> Debug for Constraints<F, C, Iter>"],["impl Debug for V1"],["impl<'r, 'a, F: Field, CS: Assignment<F> + 'a> Debug for SimpleTableLayouter<'r, 'a, F, CS>"],["impl Debug for SecondPhase"],["impl Debug for VirtualCell"],["impl Debug for Phase"],["impl Debug for Fixed"],["impl Debug for RegionIndex"],["impl Debug for InstanceQuery"],["impl<'a, F: Debug + Field> Debug for VirtualCells<'a, F>"],["impl<'r, F: Debug + Field> Debug for Table<'r, F>"],["impl<'p, 'a, F: Debug + Field, CS: Debug + Assignment<F> + 'a> Debug for V1Pass<'p, 'a, F, CS>"],["impl Debug for FailureLocation"],["impl Debug for MeasurementPass"],["impl<'r, F: Debug + Field> Debug for Region<'r, F>"],["impl<F: Field> Debug for Argument<F>"],["impl Debug for Argument"],["impl<'a, F: Field, CS: Assignment<F> + 'a> Debug for SingleChipLayouter<'a, F, CS>"],["impl<F: Debug> Debug for Assigned<F>"],["impl<F: Debug + Field> Debug for Gate<F>"],["impl Debug for Gate"],["impl<F: Debug + Field> Debug for ConstraintSystem<F>"],["impl Debug for Constraint"],["impl Debug for VirtualCell"],["impl<F: Debug + Field> Debug for InstanceValue<F>"],["impl Debug for Advice"],["impl<'a, F: Debug + Field, L: Debug + Layouter<F> + 'a> Debug for NamespacedLayouter<'a, F, L>"],["impl<F: Debug> Debug for Expression<F>"],["impl Debug for TableColumn"],["impl Debug for ModelCircuit"],["impl<P: Debug + FloorPlanner> Debug for TracingFloorPlanner<P>"],["impl Debug for RegionColumn"],["impl Debug for RegionShape"],["impl Debug for SimpleFloorPlanner"],["impl<V: Debug, F: Debug + Field> Debug for AssignedCell<V, F>"],["impl<F: Debug + Field> Debug for Constraint<F>"],["impl Debug for CircuitLayout"],["impl Debug for AdviceQuery"],["impl Debug for Poly"],["impl Debug for CommitmentScheme"],["impl<'p, 'a, F: Debug + Field, CS: Debug + Assignment<F> + 'a> Debug for AssignmentPass<'p, 'a, F, CS>"],["impl Debug for Shuffle"],["impl Debug for Region"],["impl Debug for VerifyFailure"],["impl Debug for Cell"],["impl Debug for Instance"],["impl<V: Debug> Debug for Value<V>"],["impl Debug for FirstPhase"],["impl<F: Field> Debug for Argument<F>"],["impl Debug for TableError"],["impl<G: Debug + PrimeGroup> Debug for ProofSize<G>"],["impl<G: Debug + PrimeGroup> Debug for MarginalProofSize<G>"],["impl Debug for CostOptions"],["impl Debug for Permutation"],["impl Debug for FixedQuery"],["impl<'a, F: Debug + Field, ConcreteCircuit: Debug + Circuit<F>> Debug for WitnessCalculator<'a, F, ConcreteCircuit>where\n ConcreteCircuit::Config: Debug,"],["impl Debug for Error"]], -"halo2_middleware":[["impl Debug for Any"],["impl Debug for Cell"],["impl Debug for AssemblyMid"],["impl<F: Debug + Field> Debug for CompiledCircuit<F>"],["impl<F: Debug, V: Debug + Variable> Debug for Expression<F, V>"],["impl<F: Debug + Field> Debug for Preprocessing<F>"],["impl<F: Debug + Field, V: Debug + Variable> Debug for Gate<F, V>"],["impl Debug for Rotation"],["impl Debug for ChallengeMid"],["impl Debug for ColumnMid"],["impl Debug for QueryMid"],["impl<F: Debug + Field, V: Debug + Variable> Debug for Argument<F, V>"],["impl Debug for ArgumentMid"],["impl<C: Debug + CurveAffine, MsmEngine: Debug + MsmAccel<C>> Debug for PlonkEngine<C, MsmEngine>"],["impl<F: Debug + Field> Debug for ConstraintSystemMid<F>"],["impl<F: Debug + Field, V: Debug + Variable> Debug for Argument<F, V>"],["impl Debug for VarMid"]], +"halo2_backend":[["impl<W: Debug + Write, C: Debug + CurveAffine, E: Debug + EncodedChallenge<C>> Debug for Blake2bWrite<W, C, E>"],["impl<'a, E: Debug + Engine> Debug for ProverSHPLONK<'a, E>"],["impl<W: Debug + Write, C: Debug + CurveAffine, E: Debug + EncodedChallenge<C>> Debug for Keccak256Write<W, C, E>"],["impl<C: Debug + CurveAffine, T: Debug> Debug for ChallengeScalar<C, T>where\n C::Scalar: Debug,"],["impl<'params, E: Debug + Engine> Debug for ProverGWC<'params, E>"],["impl<'params, C: Debug + CurveAffine> Debug for VerifierIPA<'params, C>"],["impl<C: Debug + CurveAffine> Debug for ParamsIPA<C>"],["impl Debug for SerdeFormat"],["impl<F: Debug + Field> Debug for EvaluationDomain<F>"],["impl Debug for LagrangeCoeff"],["impl Debug for Coeff"],["impl<'params, C: Debug + CurveAffine> Debug for ProverIPA<'params, C>"],["impl<'a, C: Debug + CurveAffine> Debug for PinnedVerificationKey<'a, C>where\n C::Scalar: Debug,"],["impl<'a, 'params, Scheme: Debug + CommitmentScheme, P: Debug + Prover<'params, Scheme>, E: Debug + EncodedChallenge<Scheme::Curve>, R: Debug + RngCore, T: Debug + TranscriptWrite<Scheme::Curve, E>, M: Debug + MsmAccel<Scheme::Curve>> Debug for ProverSingle<'a, 'params, Scheme, P, E, R, T, M>"],["impl<C: Debug + CurveAffine> Debug for Challenge255<C>"],["impl<E: Debug + Engine> Debug for ParamsKZG<E>where\n E::G1Affine: Debug,\n E::G2Affine: Debug,"],["impl<E: Debug + Engine> Debug for KZGCommitmentScheme<E>"],["impl<'a, F: Debug + Field> Debug for PinnedEvaluationDomain<'a, F>"],["impl<'params, E: Debug + Engine> Debug for VerifierGWC<'params, E>"],["impl<'params, C: Debug + CurveAffine> Debug for MSMIPA<'params, C>where\n C::Scalar: Debug,\n C::Base: Debug,"],["impl<'params, E: Debug + Engine> Debug for SingleStrategy<'params, E>where\n E::G1Affine: CurveAffine<ScalarExt = <E as Engine>::Fr, CurveExt = <E as Engine>::G1>,\n E::G1: CurveExt<AffineExt = E::G1Affine>,"],["impl<'a, 'params, Scheme: Debug + CommitmentScheme, P: Debug + Prover<'params, Scheme>, E: Debug + EncodedChallenge<Scheme::Curve>, R: Debug + RngCore, T: Debug + TranscriptWrite<Scheme::Curve, E>, M: Debug + MsmAccel<Scheme::Curve>> Debug for Prover<'a, 'params, Scheme, P, E, R, T, M>where\n Scheme::Curve: Debug,\n Scheme::ParamsProver: Debug,\n Scheme::Scalar: Debug,"],["impl Debug for Error"],["impl<C: Debug + CurveAffine> Debug for ProvingKey<C>where\n C::Scalar: Debug,"],["impl<F: Debug, B: Debug> Debug for Polynomial<F, B>"],["impl<'params, E: Debug + Engine> Debug for AccumulatorStrategy<'params, E>where\n E::G1Affine: CurveAffine<ScalarExt = <E as Engine>::Fr, CurveExt = <E as Engine>::G1>,\n E::G1: CurveExt<AffineExt = E::G1Affine>,"],["impl<'params, E: Debug + Engine> Debug for VerifierSHPLONK<'params, E>"],["impl<R: Debug + Read, C: Debug + CurveAffine, E: Debug + EncodedChallenge<C>> Debug for Keccak256Read<R, C, E>"],["impl Debug for ExtendedLagrangeCoeff"],["impl<'params, C: Debug + CurveAffine> Debug for GuardIPA<'params, C>where\n C::Scalar: Debug,"],["impl<C: Debug + CurveAffine> Debug for IPACommitmentScheme<C>"],["impl<C: Debug + CurveAffine> Debug for VerifyingKey<C>where\n C::Scalar: Debug,"],["impl<C: Debug + CurveAffine> Debug for Accumulator<C>where\n C::Scalar: Debug,"],["impl<'params, C: Debug + CurveAffine> Debug for SingleStrategy<'params, C>"],["impl Debug for Error"],["impl<'a, E: Debug + Engine> Debug for DualMSM<'a, E>where\n E::G1Affine: CurveAffine<ScalarExt = <E as Engine>::Fr, CurveExt = <E as Engine>::G1>,\n E::G1: CurveExt<AffineExt = E::G1Affine>,"],["impl<C: Debug + CurveAffine> Debug for BatchVerifier<C>"],["impl<E: Debug + Engine> Debug for MSMKZG<E>where\n E::G1Affine: CurveAffine<ScalarExt = <E as Engine>::Fr, CurveExt = <E as Engine>::G1>,\n E::G1: CurveExt<AffineExt = E::G1Affine> + Debug,\n E::Fr: Debug,"],["impl<R: Debug + Read, C: Debug + CurveAffine, E: Debug + EncodedChallenge<C>> Debug for Blake2bRead<R, C, E>"],["impl<F: Debug> Debug for Blind<F>"],["impl<'params, C: Debug + CurveAffine> Debug for AccumulatorStrategy<'params, C>"],["impl<'params, E: Debug + MultiMillerLoop + Debug> Debug for GuardKZG<'params, E>where\n E::G1Affine: CurveAffine<ScalarExt = <E as Engine>::Fr, CurveExt = <E as Engine>::G1>,\n E::G1: CurveExt<AffineExt = E::G1Affine>,"]], +"halo2_frontend":[["impl Debug for RegionShape"],["impl Debug for Phase"],["impl Debug for CircuitGates"],["impl<F: Debug> Debug for Expression<F>"],["impl Debug for ModelCircuit"],["impl Debug for ThirdPhase"],["impl<'a, F: Field, CS: Assignment<F> + 'a> Debug for SingleChipLayouter<'a, F, CS>"],["impl<F: Debug + Field> Debug for MockProver<F>"],["impl Debug for VerifyFailure"],["impl Debug for Cell"],["impl<F: Debug + Field> Debug for InstanceValue<F>"],["impl Debug for VirtualCell"],["impl Debug for TableColumn"],["impl<'r, F: Debug + Field> Debug for Region<'r, F>"],["impl<P: Debug + FloorPlanner> Debug for TracingFloorPlanner<P>"],["impl Debug for VirtualCell"],["impl<'r, F: Debug + Field> Debug for Table<'r, F>"],["impl Debug for CommitmentScheme"],["impl Debug for MeasurementPass"],["impl Debug for CostOptions"],["impl<G: Debug + PrimeGroup> Debug for MarginalProofSize<G>"],["impl Debug for CircuitLayout"],["impl Debug for FirstPhase"],["impl<F: Debug + Field> Debug for Constraint<F>"],["impl Debug for Lookup"],["impl Debug for Shuffle"],["impl<F: Debug + Field> Debug for CellValue<F>"],["impl<'a, F: Debug + Field, ConcreteCircuit: Debug + Circuit<F>> Debug for WitnessCalculator<'a, F, ConcreteCircuit>where\n ConcreteCircuit::Config: Debug,"],["impl<F: Field> Debug for Argument<F>"],["impl<F: Debug + Field, C: Debug + Into<Constraint<F>>, Iter: Debug + IntoIterator<Item = C>> Debug for Constraints<F, C, Iter>"],["impl<F: Debug> Debug for Assigned<F>"],["impl Debug for FailureLocation"],["impl Debug for Constraint"],["impl Debug for InstanceQuery"],["impl Debug for Challenge"],["impl<F: Debug + Field> Debug for Gate<F>"],["impl<'a, F: Debug + Field, L: Debug + Layouter<F> + 'a> Debug for NamespacedLayouter<'a, F, L>"],["impl<G: Debug + PrimeGroup, ConcreteCircuit: Debug + Circuit<G::Scalar>> Debug for CircuitCost<G, ConcreteCircuit>"],["impl Debug for Gate"],["impl Debug for Fixed"],["impl Debug for AdviceQuery"],["impl<V: Debug, F: Debug + Field> Debug for AssignedCell<V, F>"],["impl Debug for FixedQuery"],["impl Debug for Advice"],["impl Debug for Region"],["impl Debug for Permutation"],["impl Debug for RegionStart"],["impl<F: Debug + Field> Debug for ConstraintSystem<F>"],["impl<V: Debug> Debug for Value<V>"],["impl Debug for RegionColumn"],["impl<'p, 'a, F: Debug + Field, CS: Debug + Assignment<F> + 'a> Debug for V1Pass<'p, 'a, F, CS>"],["impl Debug for Argument"],["impl Debug for RegionIndex"],["impl<G: Debug + PrimeGroup> Debug for ProofSize<G>"],["impl Debug for SecondPhase"],["impl Debug for TableError"],["impl<'r, 'a, F: Field, CS: Assignment<F> + 'a> Debug for SimpleTableLayouter<'r, 'a, F, CS>"],["impl<C: Debug + ColumnType> Debug for Column<C>"],["impl<'a, F: Debug + Field> Debug for VirtualCells<'a, F>"],["impl Debug for V1"],["impl Debug for Poly"],["impl<'p, 'a, F: Debug + Field, CS: Debug + Assignment<F> + 'a> Debug for AssignmentPass<'p, 'a, F, CS>"],["impl<F: Field> Debug for Argument<F>"],["impl Debug for Selector"],["impl Debug for Error"],["impl Debug for Instance"],["impl Debug for SimpleFloorPlanner"]], +"halo2_middleware":[["impl<F: Debug + Field, V: Debug + Variable> Debug for Argument<F, V>"],["impl Debug for ChallengeMid"],["impl Debug for ArgumentMid"],["impl<C: Debug + CurveAffine, MsmEngine: Debug + MsmAccel<C>> Debug for PlonkEngine<C, MsmEngine>"],["impl Debug for Rotation"],["impl<F: Debug + Field, V: Debug + Variable> Debug for Gate<F, V>"],["impl<F: Debug + Field> Debug for ConstraintSystemMid<F>"],["impl Debug for QueryMid"],["impl<F: Debug + Field> Debug for CompiledCircuit<F>"],["impl Debug for VarMid"],["impl Debug for ColumnMid"],["impl<F: Debug + Field, V: Debug + Variable> Debug for Argument<F, V>"],["impl Debug for AssemblyMid"],["impl Debug for Cell"],["impl<F: Debug + Field> Debug for Preprocessing<F>"],["impl Debug for Any"],["impl<F: Debug, V: Debug + Variable> Debug for Expression<F, V>"]], "halo2_proofs":[["impl Debug for Error"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/fmt/trait.Display.js b/implementors/core/fmt/trait.Display.js index edcb7b1a6e..7f2f258886 100644 --- a/implementors/core/fmt/trait.Display.js +++ b/implementors/core/fmt/trait.Display.js @@ -1,6 +1,6 @@ (function() {var implementors = { "halo2_backend":[["impl Display for Error"]], -"halo2_frontend":[["impl Display for CircuitGates"],["impl Display for FailureLocation"],["impl Display for Error"],["impl Display for TableError"],["impl Display for VirtualCell"],["impl Display for Gate"],["impl Display for Constraint"],["impl Display for Region"],["impl Display for VerifyFailure"]], +"halo2_frontend":[["impl Display for TableError"],["impl Display for Gate"],["impl Display for Error"],["impl Display for Region"],["impl Display for CircuitGates"],["impl Display for VerifyFailure"],["impl Display for VirtualCell"],["impl Display for FailureLocation"],["impl Display for Constraint"]], "halo2_middleware":[["impl Display for ColumnMid"]], "halo2_proofs":[["impl Display for Error"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/hash/trait.Hash.js b/implementors/core/hash/trait.Hash.js index 15cc20e2ad..dbe0fdf846 100644 --- a/implementors/core/hash/trait.Hash.js +++ b/implementors/core/hash/trait.Hash.js @@ -1,4 +1,4 @@ (function() {var implementors = { -"halo2_frontend":[["impl Hash for Challenge"],["impl Hash for TableColumn"],["impl<C: Hash + ColumnType> Hash for Column<C>"],["impl Hash for Selector"],["impl Hash for RegionColumn"],["impl Hash for Instance"],["impl Hash for Advice"],["impl Hash for Phase"],["impl Hash for Fixed"]], -"halo2_middleware":[["impl Hash for Rotation"],["impl Hash for Any"],["impl Hash for ColumnMid"],["impl Hash for ChallengeMid"]] +"halo2_frontend":[["impl<C: Hash + ColumnType> Hash for Column<C>"],["impl Hash for TableColumn"],["impl Hash for Phase"],["impl Hash for Challenge"],["impl Hash for Selector"],["impl Hash for Advice"],["impl Hash for RegionColumn"],["impl Hash for Fixed"],["impl Hash for Instance"]], +"halo2_middleware":[["impl Hash for Any"],["impl Hash for Rotation"],["impl Hash for ChallengeMid"],["impl Hash for ColumnMid"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/marker/trait.Copy.js b/implementors/core/marker/trait.Copy.js index 464b64dd28..6b9c83cabe 100644 --- a/implementors/core/marker/trait.Copy.js +++ b/implementors/core/marker/trait.Copy.js @@ -1,5 +1,5 @@ (function() {var implementors = { -"halo2_backend":[["impl Copy for SerdeFormat"],["impl<C: Copy + CurveAffine, T: Copy> Copy for ChallengeScalar<C, T>where\n C::Scalar: Copy,"],["impl<F: Copy> Copy for Blind<F>"],["impl Copy for ExtendedLagrangeCoeff"],["impl Copy for Coeff"],["impl Copy for LagrangeCoeff"],["impl<C: Copy + CurveAffine> Copy for Challenge255<C>"]], -"halo2_frontend":[["impl Copy for Cell"],["impl Copy for TableColumn"],["impl Copy for Advice"],["impl Copy for RegionColumn"],["impl Copy for AdviceQuery"],["impl Copy for RegionIndex"],["impl Copy for Phase"],["impl Copy for Instance"],["impl Copy for Selector"],["impl Copy for FixedQuery"],["impl<V: Copy> Copy for Value<V>"],["impl Copy for RegionStart"],["impl<F: Copy> Copy for Assigned<F>"],["impl Copy for Challenge"],["impl Copy for InstanceQuery"],["impl<C: Copy + ColumnType> Copy for Column<C>"],["impl Copy for Fixed"],["impl<F: Copy + Field> Copy for CellValue<F>"]], -"halo2_middleware":[["impl Copy for ColumnMid"],["impl Copy for Any"],["impl Copy for VarMid"],["impl Copy for ChallengeMid"],["impl Copy for QueryMid"],["impl Copy for Rotation"]] +"halo2_backend":[["impl Copy for SerdeFormat"],["impl Copy for Coeff"],["impl Copy for LagrangeCoeff"],["impl Copy for ExtendedLagrangeCoeff"],["impl<C: Copy + CurveAffine> Copy for Challenge255<C>"],["impl<C: Copy + CurveAffine, T: Copy> Copy for ChallengeScalar<C, T>where\n C::Scalar: Copy,"],["impl<F: Copy> Copy for Blind<F>"]], +"halo2_frontend":[["impl<C: Copy + ColumnType> Copy for Column<C>"],["impl Copy for RegionStart"],["impl Copy for InstanceQuery"],["impl<V: Copy> Copy for Value<V>"],["impl<F: Copy> Copy for Assigned<F>"],["impl<F: Copy + Field> Copy for CellValue<F>"],["impl Copy for Instance"],["impl Copy for Phase"],["impl Copy for Advice"],["impl Copy for TableColumn"],["impl Copy for Challenge"],["impl Copy for Fixed"],["impl Copy for FixedQuery"],["impl Copy for AdviceQuery"],["impl Copy for RegionColumn"],["impl Copy for Cell"],["impl Copy for Selector"],["impl Copy for RegionIndex"]], +"halo2_middleware":[["impl Copy for VarMid"],["impl Copy for QueryMid"],["impl Copy for ColumnMid"],["impl Copy for Any"],["impl Copy for ChallengeMid"],["impl Copy for Rotation"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/marker/trait.StructuralEq.js b/implementors/core/marker/trait.StructuralEq.js index bd2bbfb9fb..9b1e3dc687 100644 --- a/implementors/core/marker/trait.StructuralEq.js +++ b/implementors/core/marker/trait.StructuralEq.js @@ -1,5 +1,5 @@ (function() {var implementors = { "halo2_backend":[["impl<F> StructuralEq for Blind<F>"]], -"halo2_frontend":[["impl StructuralEq for Advice"],["impl StructuralEq for Gate"],["impl StructuralEq for Poly"],["impl StructuralEq for FailureLocation"],["impl StructuralEq for Constraint"],["impl StructuralEq for AdviceQuery"],["impl StructuralEq for Selector"],["impl<F: Field> StructuralEq for InstanceValue<F>"],["impl StructuralEq for Fixed"],["impl StructuralEq for VirtualCell"],["impl StructuralEq for VerifyFailure"],["impl StructuralEq for CommitmentScheme"],["impl StructuralEq for Instance"],["impl StructuralEq for TableColumn"],["impl StructuralEq for Phase"],["impl StructuralEq for InstanceQuery"],["impl<F: Field> StructuralEq for CellValue<F>"],["impl StructuralEq for Challenge"],["impl<C: ColumnType> StructuralEq for Column<C>"],["impl StructuralEq for RegionStart"],["impl StructuralEq for FixedQuery"],["impl<F> StructuralEq for Expression<F>"],["impl StructuralEq for RegionColumn"]], -"halo2_middleware":[["impl StructuralEq for VarMid"],["impl StructuralEq for QueryMid"],["impl<F, V: Variable> StructuralEq for Expression<F, V>"],["impl StructuralEq for Any"],["impl StructuralEq for ColumnMid"],["impl StructuralEq for Rotation"],["impl StructuralEq for ChallengeMid"],["impl StructuralEq for Cell"]] +"halo2_frontend":[["impl StructuralEq for FailureLocation"],["impl StructuralEq for VirtualCell"],["impl<F: Field> StructuralEq for CellValue<F>"],["impl StructuralEq for Challenge"],["impl StructuralEq for RegionStart"],["impl<F: Field> StructuralEq for InstanceValue<F>"],["impl StructuralEq for Gate"],["impl StructuralEq for Instance"],["impl StructuralEq for VerifyFailure"],["impl StructuralEq for InstanceQuery"],["impl StructuralEq for AdviceQuery"],["impl<F> StructuralEq for Expression<F>"],["impl<C: ColumnType> StructuralEq for Column<C>"],["impl StructuralEq for Poly"],["impl StructuralEq for Advice"],["impl StructuralEq for CommitmentScheme"],["impl StructuralEq for Selector"],["impl StructuralEq for Constraint"],["impl StructuralEq for FixedQuery"],["impl StructuralEq for Phase"],["impl StructuralEq for TableColumn"],["impl StructuralEq for Fixed"],["impl StructuralEq for RegionColumn"]], +"halo2_middleware":[["impl StructuralEq for ColumnMid"],["impl StructuralEq for ChallengeMid"],["impl StructuralEq for Any"],["impl StructuralEq for Rotation"],["impl StructuralEq for VarMid"],["impl StructuralEq for Cell"],["impl<F, V: Variable> StructuralEq for Expression<F, V>"],["impl StructuralEq for QueryMid"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/marker/trait.StructuralPartialEq.js b/implementors/core/marker/trait.StructuralPartialEq.js index ff074ed101..568224b482 100644 --- a/implementors/core/marker/trait.StructuralPartialEq.js +++ b/implementors/core/marker/trait.StructuralPartialEq.js @@ -1,5 +1,5 @@ (function() {var implementors = { "halo2_backend":[["impl<F> StructuralPartialEq for Blind<F>"]], -"halo2_frontend":[["impl StructuralPartialEq for Fixed"],["impl StructuralPartialEq for TableColumn"],["impl<F: Field> StructuralPartialEq for InstanceValue<F>"],["impl StructuralPartialEq for Phase"],["impl StructuralPartialEq for FailureLocation"],["impl StructuralPartialEq for RegionColumn"],["impl<C: ColumnType> StructuralPartialEq for Column<C>"],["impl StructuralPartialEq for Poly"],["impl StructuralPartialEq for Gate"],["impl StructuralPartialEq for Advice"],["impl StructuralPartialEq for CommitmentScheme"],["impl<F: Field> StructuralPartialEq for CellValue<F>"],["impl StructuralPartialEq for InstanceQuery"],["impl StructuralPartialEq for Constraint"],["impl<F> StructuralPartialEq for Expression<F>"],["impl StructuralPartialEq for AdviceQuery"],["impl StructuralPartialEq for Challenge"],["impl StructuralPartialEq for Instance"],["impl StructuralPartialEq for FixedQuery"],["impl StructuralPartialEq for Selector"],["impl StructuralPartialEq for VirtualCell"],["impl StructuralPartialEq for VerifyFailure"],["impl StructuralPartialEq for RegionStart"]], -"halo2_middleware":[["impl StructuralPartialEq for VarMid"],["impl StructuralPartialEq for QueryMid"],["impl StructuralPartialEq for Rotation"],["impl<F, V: Variable> StructuralPartialEq for Expression<F, V>"],["impl StructuralPartialEq for Any"],["impl StructuralPartialEq for ColumnMid"],["impl StructuralPartialEq for ChallengeMid"],["impl StructuralPartialEq for Cell"]] +"halo2_frontend":[["impl StructuralPartialEq for Challenge"],["impl StructuralPartialEq for VerifyFailure"],["impl StructuralPartialEq for FixedQuery"],["impl StructuralPartialEq for Phase"],["impl StructuralPartialEq for AdviceQuery"],["impl StructuralPartialEq for InstanceQuery"],["impl StructuralPartialEq for Poly"],["impl<F> StructuralPartialEq for Expression<F>"],["impl<C: ColumnType> StructuralPartialEq for Column<C>"],["impl<F: Field> StructuralPartialEq for CellValue<F>"],["impl StructuralPartialEq for CommitmentScheme"],["impl StructuralPartialEq for Selector"],["impl StructuralPartialEq for RegionColumn"],["impl StructuralPartialEq for Instance"],["impl StructuralPartialEq for RegionStart"],["impl StructuralPartialEq for VirtualCell"],["impl StructuralPartialEq for Advice"],["impl StructuralPartialEq for Constraint"],["impl StructuralPartialEq for TableColumn"],["impl StructuralPartialEq for Fixed"],["impl<F: Field> StructuralPartialEq for InstanceValue<F>"],["impl StructuralPartialEq for Gate"],["impl StructuralPartialEq for FailureLocation"]], +"halo2_middleware":[["impl StructuralPartialEq for VarMid"],["impl StructuralPartialEq for ColumnMid"],["impl StructuralPartialEq for QueryMid"],["impl<F, V: Variable> StructuralPartialEq for Expression<F, V>"],["impl StructuralPartialEq for Rotation"],["impl StructuralPartialEq for Cell"],["impl StructuralPartialEq for ChallengeMid"],["impl StructuralPartialEq for Any"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/ops/arith/trait.Add.js b/implementors/core/ops/arith/trait.Add.js index f228bcfc05..e62f3e5699 100644 --- a/implementors/core/ops/arith/trait.Add.js +++ b/implementors/core/ops/arith/trait.Add.js @@ -1,5 +1,5 @@ (function() {var implementors = { "halo2_backend":[["impl<'a, F: Field, B: Basis> Add<&'a Polynomial<F, B>> for Polynomial<F, B>"],["impl<F: Field> Add<Blind<F>> for Blind<F>"]], -"halo2_frontend":[["impl<V, O> Add<&Value<V>> for &Value<V>where\n for<'v> &'v V: Add<Output = O>,"],["impl<F: Field> Add<Assigned<F>> for &Assigned<F>"],["impl<F: Field> Add<F> for Value<Assigned<F>>"],["impl<F: Field> Add<Assigned<F>> for Assigned<F>"],["impl<V, O> Add<&Value<V>> for Value<V>where\n for<'v> V: Add<&'v V, Output = O>,"],["impl<F: Field> Add<F> for Assigned<F>"],["impl<F: Field> Add<F> for Value<&Assigned<F>>"],["impl<V, O> Add<Value<&V>> for Value<V>where\n for<'v> V: Add<&'v V, Output = O>,"],["impl<V, O> Add<Value<V>> for Value<&V>where\n for<'v> &'v V: Add<V, Output = O>,"],["impl<F: Field> Add<F> for &Assigned<F>"],["impl<F: Field> Add<&Assigned<F>> for Assigned<F>"],["impl<F: Field> Add<Value<F>> for Value<&Assigned<F>>"],["impl<V, O> Add<Value<V>> for &Value<V>where\n for<'v> &'v V: Add<V, Output = O>,"],["impl<V, O> Add<Value<V>> for Value<V>where\n V: Add<Output = O>,"],["impl<F: Field> Add<Value<F>> for Value<Assigned<F>>"],["impl<F: Field> Add<Expression<F>> for Expression<F>"],["impl<F: Field> Add<&Assigned<F>> for &Assigned<F>"]], +"halo2_frontend":[["impl<F: Field> Add<F> for Assigned<F>"],["impl<V, O> Add<&Value<V>> for &Value<V>where\n for<'v> &'v V: Add<Output = O>,"],["impl<F: Field> Add<Assigned<F>> for Assigned<F>"],["impl<F: Field> Add<&Assigned<F>> for &Assigned<F>"],["impl<F: Field> Add<F> for &Assigned<F>"],["impl<F: Field> Add<Value<F>> for Value<Assigned<F>>"],["impl<F: Field> Add<F> for Value<Assigned<F>>"],["impl<V, O> Add<Value<V>> for &Value<V>where\n for<'v> &'v V: Add<V, Output = O>,"],["impl<V, O> Add<Value<&V>> for Value<V>where\n for<'v> V: Add<&'v V, Output = O>,"],["impl<V, O> Add<&Value<V>> for Value<V>where\n for<'v> V: Add<&'v V, Output = O>,"],["impl<F: Field> Add<Assigned<F>> for &Assigned<F>"],["impl<F: Field> Add<&Assigned<F>> for Assigned<F>"],["impl<V, O> Add<Value<V>> for Value<V>where\n V: Add<Output = O>,"],["impl<F: Field> Add<F> for Value<&Assigned<F>>"],["impl<F: Field> Add<Expression<F>> for Expression<F>"],["impl<F: Field> Add<Value<F>> for Value<&Assigned<F>>"],["impl<V, O> Add<Value<V>> for Value<&V>where\n for<'v> &'v V: Add<V, Output = O>,"]], "halo2_middleware":[["impl<F: Field, V: Variable> Add<Expression<F, V>> for Expression<F, V>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/ops/arith/trait.AddAssign.js b/implementors/core/ops/arith/trait.AddAssign.js index 5bdcbb8385..a699a3b086 100644 --- a/implementors/core/ops/arith/trait.AddAssign.js +++ b/implementors/core/ops/arith/trait.AddAssign.js @@ -1,4 +1,4 @@ (function() {var implementors = { -"halo2_backend":[["impl<F: Field> AddAssign<F> for Blind<F>"],["impl<F: Field> AddAssign<Blind<F>> for Blind<F>"]], -"halo2_frontend":[["impl<F: Field> AddAssign<&Assigned<F>> for Assigned<F>"],["impl<F: Field> AddAssign<Assigned<F>> for Assigned<F>"]] +"halo2_backend":[["impl<F: Field> AddAssign<Blind<F>> for Blind<F>"],["impl<F: Field> AddAssign<F> for Blind<F>"]], +"halo2_frontend":[["impl<F: Field> AddAssign<Assigned<F>> for Assigned<F>"],["impl<F: Field> AddAssign<&Assigned<F>> for Assigned<F>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/ops/arith/trait.Mul.js b/implementors/core/ops/arith/trait.Mul.js index ef52228c5e..fed7a58a18 100644 --- a/implementors/core/ops/arith/trait.Mul.js +++ b/implementors/core/ops/arith/trait.Mul.js @@ -1,5 +1,5 @@ (function() {var implementors = { "halo2_backend":[["impl<F: Field> Mul<Blind<F>> for Blind<F>"],["impl<F: Field, B: Basis> Mul<F> for Polynomial<F, B>"]], -"halo2_frontend":[["impl<F: Field> Mul<F> for Assigned<F>"],["impl<F: Field> Mul<Expression<F>> for Expression<F>"],["impl<V, O> Mul<&Value<V>> for Value<V>where\n for<'v> V: Mul<&'v V, Output = O>,"],["impl<V, O> Mul<&Value<V>> for &Value<V>where\n for<'v> &'v V: Mul<Output = O>,"],["impl<F: Field> Mul<Assigned<F>> for Assigned<F>"],["impl<F: Field> Mul<&Assigned<F>> for Assigned<F>"],["impl<V, O> Mul<Value<&V>> for Value<V>where\n for<'v> V: Mul<&'v V, Output = O>,"],["impl<V, O> Mul<Value<V>> for Value<&V>where\n for<'v> &'v V: Mul<V, Output = O>,"],["impl<V, O> Mul<Value<V>> for Value<V>where\n V: Mul<Output = O>,"],["impl<F: Field> Mul<F> for Value<Assigned<F>>"],["impl<V, O> Mul<Value<V>> for &Value<V>where\n for<'v> &'v V: Mul<V, Output = O>,"],["impl<F: Field> Mul<F> for &Assigned<F>"],["impl<F: Field> Mul<F> for Value<&Assigned<F>>"],["impl<F: Field> Mul<F> for Expression<F>"],["impl<F: Field> Mul<Value<F>> for Value<Assigned<F>>"],["impl<F: Field> Mul<Value<F>> for Value<&Assigned<F>>"]], +"halo2_frontend":[["impl<V, O> Mul<Value<&V>> for Value<V>where\n for<'v> V: Mul<&'v V, Output = O>,"],["impl<V, O> Mul<Value<V>> for &Value<V>where\n for<'v> &'v V: Mul<V, Output = O>,"],["impl<F: Field> Mul<Expression<F>> for Expression<F>"],["impl<F: Field> Mul<F> for Value<Assigned<F>>"],["impl<F: Field> Mul<F> for Expression<F>"],["impl<F: Field> Mul<&Assigned<F>> for Assigned<F>"],["impl<V, O> Mul<Value<V>> for Value<&V>where\n for<'v> &'v V: Mul<V, Output = O>,"],["impl<F: Field> Mul<F> for Assigned<F>"],["impl<F: Field> Mul<F> for Value<&Assigned<F>>"],["impl<F: Field> Mul<Value<F>> for Value<&Assigned<F>>"],["impl<V, O> Mul<&Value<V>> for &Value<V>where\n for<'v> &'v V: Mul<Output = O>,"],["impl<F: Field> Mul<F> for &Assigned<F>"],["impl<V, O> Mul<&Value<V>> for Value<V>where\n for<'v> V: Mul<&'v V, Output = O>,"],["impl<F: Field> Mul<Assigned<F>> for Assigned<F>"],["impl<F: Field> Mul<Value<F>> for Value<Assigned<F>>"],["impl<V, O> Mul<Value<V>> for Value<V>where\n V: Mul<Output = O>,"]], "halo2_middleware":[["impl<F: Field, V: Variable> Mul<Expression<F, V>> for Expression<F, V>"],["impl<F: Field, V: Variable> Mul<F> for Expression<F, V>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/ops/arith/trait.MulAssign.js b/implementors/core/ops/arith/trait.MulAssign.js index 0479857a41..cfea93261c 100644 --- a/implementors/core/ops/arith/trait.MulAssign.js +++ b/implementors/core/ops/arith/trait.MulAssign.js @@ -1,4 +1,4 @@ (function() {var implementors = { -"halo2_backend":[["impl<F: Field> MulAssign<Blind<F>> for Blind<F>"],["impl<F: Field> MulAssign<F> for Blind<F>"]], -"halo2_frontend":[["impl<F: Field> MulAssign<Assigned<F>> for Assigned<F>"],["impl<F: Field> MulAssign<&Assigned<F>> for Assigned<F>"]] +"halo2_backend":[["impl<F: Field> MulAssign<F> for Blind<F>"],["impl<F: Field> MulAssign<Blind<F>> for Blind<F>"]], +"halo2_frontend":[["impl<F: Field> MulAssign<&Assigned<F>> for Assigned<F>"],["impl<F: Field> MulAssign<Assigned<F>> for Assigned<F>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/ops/arith/trait.Neg.js b/implementors/core/ops/arith/trait.Neg.js index 6791c87fdd..783eaaa394 100644 --- a/implementors/core/ops/arith/trait.Neg.js +++ b/implementors/core/ops/arith/trait.Neg.js @@ -1,4 +1,4 @@ (function() {var implementors = { -"halo2_frontend":[["impl<F: Field> Neg for Assigned<F>"],["impl<V: Neg> Neg for Value<V>"],["impl<F: Field> Neg for Expression<F>"],["impl<F: Field> Neg for &Assigned<F>"]], +"halo2_frontend":[["impl<V: Neg> Neg for Value<V>"],["impl<F: Field> Neg for &Assigned<F>"],["impl<F: Field> Neg for Expression<F>"],["impl<F: Field> Neg for Assigned<F>"]], "halo2_middleware":[["impl<F: Field, V: Variable> Neg for Expression<F, V>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/ops/arith/trait.Sub.js b/implementors/core/ops/arith/trait.Sub.js index 70c7e61006..97dffe3775 100644 --- a/implementors/core/ops/arith/trait.Sub.js +++ b/implementors/core/ops/arith/trait.Sub.js @@ -1,5 +1,5 @@ (function() {var implementors = { "halo2_backend":[["impl<'a, F: Field, B: Basis> Sub<&'a Polynomial<F, B>> for Polynomial<F, B>"],["impl<'a, F: Field, B: Basis> Sub<F> for &'a Polynomial<F, B>"]], -"halo2_frontend":[["impl<F: Field> Sub<F> for &Assigned<F>"],["impl<F: Field> Sub<Assigned<F>> for Assigned<F>"],["impl<V, O> Sub<Value<&V>> for Value<V>where\n for<'v> V: Sub<&'v V, Output = O>,"],["impl<F: Field> Sub<F> for Value<&Assigned<F>>"],["impl<V, O> Sub<Value<V>> for Value<V>where\n V: Sub<Output = O>,"],["impl<F: Field> Sub<&Assigned<F>> for Assigned<F>"],["impl<F: Field> Sub<Value<F>> for Value<&Assigned<F>>"],["impl<V, O> Sub<Value<V>> for Value<&V>where\n for<'v> &'v V: Sub<V, Output = O>,"],["impl<F: Field> Sub<F> for Assigned<F>"],["impl<F: Field> Sub<Assigned<F>> for &Assigned<F>"],["impl<F: Field> Sub<Expression<F>> for Expression<F>"],["impl<V, O> Sub<&Value<V>> for Value<V>where\n for<'v> V: Sub<&'v V, Output = O>,"],["impl<V, O> Sub<Value<V>> for &Value<V>where\n for<'v> &'v V: Sub<V, Output = O>,"],["impl<V, O> Sub<&Value<V>> for &Value<V>where\n for<'v> &'v V: Sub<Output = O>,"],["impl<F: Field> Sub<F> for Value<Assigned<F>>"],["impl<F: Field> Sub<&Assigned<F>> for &Assigned<F>"],["impl<F: Field> Sub<Value<F>> for Value<Assigned<F>>"]], +"halo2_frontend":[["impl<F: Field> Sub<F> for Value<&Assigned<F>>"],["impl<V, O> Sub<Value<V>> for &Value<V>where\n for<'v> &'v V: Sub<V, Output = O>,"],["impl<F: Field> Sub<&Assigned<F>> for Assigned<F>"],["impl<F: Field> Sub<Assigned<F>> for &Assigned<F>"],["impl<F: Field> Sub<Expression<F>> for Expression<F>"],["impl<F: Field> Sub<Value<F>> for Value<Assigned<F>>"],["impl<F: Field> Sub<Value<F>> for Value<&Assigned<F>>"],["impl<V, O> Sub<&Value<V>> for Value<V>where\n for<'v> V: Sub<&'v V, Output = O>,"],["impl<V, O> Sub<&Value<V>> for &Value<V>where\n for<'v> &'v V: Sub<Output = O>,"],["impl<F: Field> Sub<F> for &Assigned<F>"],["impl<F: Field> Sub<F> for Value<Assigned<F>>"],["impl<V, O> Sub<Value<V>> for Value<&V>where\n for<'v> &'v V: Sub<V, Output = O>,"],["impl<V, O> Sub<Value<&V>> for Value<V>where\n for<'v> V: Sub<&'v V, Output = O>,"],["impl<F: Field> Sub<Assigned<F>> for Assigned<F>"],["impl<F: Field> Sub<F> for Assigned<F>"],["impl<F: Field> Sub<&Assigned<F>> for &Assigned<F>"],["impl<V, O> Sub<Value<V>> for Value<V>where\n V: Sub<Output = O>,"]], "halo2_middleware":[["impl<F: Field, V: Variable> Sub<Expression<F, V>> for Expression<F, V>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/ops/deref/trait.Deref.js b/implementors/core/ops/deref/trait.Deref.js index 705c9be033..c4da25a586 100644 --- a/implementors/core/ops/deref/trait.Deref.js +++ b/implementors/core/ops/deref/trait.Deref.js @@ -1,4 +1,4 @@ (function() {var implementors = { -"halo2_backend":[["impl<C: CurveAffine> Deref for Challenge255<C>"],["impl<C: CurveAffine, T> Deref for ChallengeScalar<C, T>"],["impl<F, B> Deref for Polynomial<F, B>"]], -"halo2_frontend":[["impl Deref for RegionStart"],["impl Deref for RegionIndex"]] +"halo2_backend":[["impl<F, B> Deref for Polynomial<F, B>"],["impl<C: CurveAffine, T> Deref for ChallengeScalar<C, T>"],["impl<C: CurveAffine> Deref for Challenge255<C>"]], +"halo2_frontend":[["impl Deref for RegionIndex"],["impl Deref for RegionStart"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/ops/index/trait.Index.js b/implementors/core/ops/index/trait.Index.js index 04483464ec..6e9bcf122a 100644 --- a/implementors/core/ops/index/trait.Index.js +++ b/implementors/core/ops/index/trait.Index.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"halo2_backend":[["impl<F, B> Index<usize> for Polynomial<F, B>"],["impl<F, B> Index<RangeFull> for Polynomial<F, B>"],["impl<F, B> Index<RangeFrom<usize>> for Polynomial<F, B>"]] +"halo2_backend":[["impl<F, B> Index<RangeFrom<usize>> for Polynomial<F, B>"],["impl<F, B> Index<RangeFull> for Polynomial<F, B>"],["impl<F, B> Index<usize> for Polynomial<F, B>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/ops/index/trait.IndexMut.js b/implementors/core/ops/index/trait.IndexMut.js index 967f09379c..0bf8ad1689 100644 --- a/implementors/core/ops/index/trait.IndexMut.js +++ b/implementors/core/ops/index/trait.IndexMut.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"halo2_backend":[["impl<F, B> IndexMut<RangeFull> for Polynomial<F, B>"],["impl<F, B> IndexMut<usize> for Polynomial<F, B>"],["impl<F, B> IndexMut<RangeFrom<usize>> for Polynomial<F, B>"]] +"halo2_backend":[["impl<F, B> IndexMut<usize> for Polynomial<F, B>"],["impl<F, B> IndexMut<RangeFull> for Polynomial<F, B>"],["impl<F, B> IndexMut<RangeFrom<usize>> for Polynomial<F, B>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/search-index.js b/search-index.js index eb4241b9c8..b2e984274a 100644 --- a/search-index.js +++ b/search-index.js @@ -1,9 +1,9 @@ var searchIndex = JSON.parse('{\ "halo2":{"doc":"halo2","t":"","n":[],"q":[],"d":[],"i":[],"f":[],"c":[],"p":[]},\ -"halo2_backend":{"doc":"","t":"AAAAAAQQQSIIQISQQSKKKKKLKKKKKKKLLKKFLLKLLKKINNNIEILLLLLLLLLLLLLLLLLLLLLLIIIIQQQQQQQIIDILLKLLLLLLLLLLLLLFLLKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKFLKLLLLLLLLLLLLLLLLKKLLLLLLLLLLLLLLLLLLLLLLFLLLLLLLLLLLKLLLLLLLLLLLLLLLLKLLNNNENNNNNDDNDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLALLALLLLLLLLLLLLLLLLLLLLLALLLLLLMFFDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDLLLLLLLLLLLLLLLLFFLIDEDDIIDQNQDDNIMLLLLLLLLLLLLLLLLLLLLLLLLLLLALLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLALLLALLLLKLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLDIQQIQQIIQIQQISSQILLLKKKLLKLLKKLKLLLKLKLLKLLKLLKLLLKKKKLKKKKKLLLLKKLKAAAADDGLLLLLLLLFLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLFLLLDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLAAAADDGLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDDDIQDDIIIIILLLLLLLLLLLLLLLLLLLLLLLLLKLLLLKLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLKLKKLLLLLLLLLLLLLLLLKLFFKLLKLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLKLL","n":["arithmetic","helpers","multicore","plonk","poly","transcript","AffineExt","Base","Base","CURVE_ID","CurveAffine","CurveExt","CurveExt","Field","ONE","ScalarExt","ScalarExt","ZERO","a","a","b","b","coordinates","cube","double","endo","from_xy","hash_to_curve","invert","is_on_curve","is_on_curve","is_zero","is_zero_vartime","jacobian_coordinates","new_jacobian","parallelize","pow","pow_vartime","random","sqrt","sqrt_alt","sqrt_ratio","square","CurveRead","Processed","RawBytes","RawBytesUnchecked","SerdeCurveAffine","SerdeFormat","SerdePrimeField","borrow","borrow_mut","byte_length","clone","clone_into","deref","deref_mut","drop","fmt","from","init","into","read","read","read","to_owned","try_from","try_into","type_id","vzip","write","write","IndexedParallelIterator","IntoParallelIterator","IntoParallelRefIterator","IntoParallelRefMutIterator","Item","Item","Item","Item","Iter","Iter","Iter","ParallelIterator","ParallelSliceMut","Scope","TryFoldAndReduce","all","any","as_parallel_slice_mut","borrow","borrow_mut","by_exponential_blocks","by_uniform_blocks","chain","chunks","cloned","cmp","collect","collect_into_vec","collect_vec_list","copied","count","current_num_threads","deref","deref_mut","drive","drive_unindexed","drop","enumerate","eq","filter","filter_map","find_any","find_first","find_last","find_map_any","find_map_first","find_map_last","flat_map","flat_map_iter","flatten","flatten_iter","fmt","fold","fold_chunks","fold_chunks_with","fold_with","for_each","for_each_init","for_each_with","from","ge","gt","init","inspect","interleave","interleave_shortest","intersperse","into","into_par_iter","join","le","len","lt","map","map_init","map_with","max","max_by","max_by_key","min","min_by","min_by_key","ne","opt_len","panic_fuse","par_chunk_by_mut","par_chunks_exact_mut","par_chunks_mut","par_iter","par_iter_mut","par_rchunks_exact_mut","par_rchunks_mut","par_sort","par_sort_by","par_sort_by_cached_key","par_sort_by_key","par_sort_unstable","par_sort_unstable_by","par_sort_unstable_by_key","par_split_inclusive_mut","par_split_mut","partial_cmp","partition","partition_map","position_any","position_first","position_last","positions","product","reduce","reduce_with","rev","scope","skip","skip_any","skip_any_while","spawn","spawn_broadcast","step_by","sum","take","take_any","take_any_while","try_fold","try_fold_and_reduce","try_fold_with","try_for_each","try_for_each_init","try_for_each_with","try_from","try_into","try_reduce","try_reduce_with","type_id","unzip","unzip_into_vecs","update","vzip","while_some","with_max_len","with_min_len","with_producer","zip","zip_eq","BoundsFailure","ColumnNotInPermutation","ConstraintSystemFailure","Error","InstanceTooLarge","InvalidInstances","NotEnoughRowsAvailable","Opening","Other","PinnedVerificationKey","ProvingKey","Transcript","VerifyingKey","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","fixed_commitments","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from_bytes","from_bytes","get_domain","get_vk","hash_into","init","init","init","init","into","into","into","into","keygen","not_enough_rows_available","pinned","prover","read","read","source","to_bytes","to_bytes","to_owned","to_owned","to_string","transcript_repr","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","verifier","vzip","vzip","vzip","vzip","write","write","current_k","keygen_pk","keygen_vk","Prover","ProverSingle","borrow","borrow","borrow_mut","borrow_mut","commit_phase","commit_phase","create_proof","create_proof","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","from","from","init","init","into","into","new","new","new_with_engine","new_with_engine","phases","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","BatchVerifier","add_proof","borrow","borrow_mut","default","deref","deref_mut","drop","finalize","fmt","from","init","into","new","try_from","try_into","type_id","verify_proof","verify_proof_single","vzip","Basis","Coeff","Error","EvaluationDomain","ExtendedLagrangeCoeff","Guard","LagrangeBasis","LagrangeCoeff","MSMAccumulator","OpeningError","Output","PinnedEvaluationDomain","Polynomial","SamplingError","VerificationStrategy","_marker","add","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","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","coeff_from_vec","coeff_to_extended","commitment","constant_extended","constant_lagrange","deref","deref","deref","deref","deref","deref","deref","deref","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","empty_coeff","empty_extended","empty_lagrange","extended_k","extended_len","extended_to_coeff","finalize","fmt","fmt","fmt","fmt","fmt","fmt","fmt","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","into","into","into","into","into","into","into","ipa","iter","iter_mut","k","kzg","l_i_range","lagrange_from_vec","lagrange_to_coeff","mul","new","new","new_empty","new_lagrange_from_vec","num_coeffs","pinned","process","rotate","rotate_extended","rotate_omega","sub","sub","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_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","values","vzip","vzip","vzip","vzip","vzip","vzip","vzip","Blind","CommitmentScheme","Curve","Guard","MSM","MSM","MSMAccumulator","Params","ParamsProver","ParamsProver","ParamsVerifier","ParamsVerifier","ParamsVerifier","Prover","QUERY_INSTANCE","QUERY_INSTANCE","Scalar","Verifier","add","add_assign","add_assign","add_msm","append_term","bases","borrow","borrow_mut","check","clone","clone_into","commit","commit_lagrange","create_proof","create_proof_with_engine","default","deref","deref_mut","downsize","drop","empty_msm","eq","equivalent","eval","fmt","from","get_g","init","into","k","mul","mul_assign","mul_assign","n","new","new","new","new","new_params","read","read_params","scalars","scale","to_owned","try_from","try_into","type_id","verifier_params","verify_proof","vzip","write","commitment","msm","multiopen","strategy","IPACommitmentScheme","ParamsIPA","ParamsVerifierIPA","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","commit","commit_lagrange","create_proof_with_engine","deref","deref","deref_mut","deref_mut","downsize","drop","drop","empty_msm","fmt","fmt","from","from","get_g","init","init","into","into","k","n","new","new_params","read","read_params","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","verifier_params","verify_proof","vzip","vzip","write","MSMIPA","add_constant_term","add_msm","add_msm","add_to_g_scalars","add_to_u_scalar","add_to_w_scalar","append_term","bases","borrow","borrow_mut","check","clone","clone_into","deref","deref_mut","drop","eval","fmt","from","init","into","new","scalars","scale","to_owned","try_from","try_into","type_id","vzip","ProverIPA","VerifierIPA","borrow","borrow","borrow_mut","borrow_mut","create_proof_with_engine","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","from","from","init","init","into","into","new","new","try_from","try_from","try_into","try_into","type_id","type_id","verify_proof","vzip","vzip","Accumulator","AccumulatorStrategy","GuardIPA","SingleStrategy","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","compute_g","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","finalize","finalize","fmt","fmt","fmt","fmt","from","from","from","from","g","init","init","init","init","into","into","into","into","new","new","process","process","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","u_packed","use_challenges","use_g","vzip","vzip","vzip","vzip","commitment","msm","multiopen","strategy","KZGCommitmentScheme","ParamsKZG","ParamsVerifierKZG","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","commit","commit_lagrange","deref","deref","deref_mut","deref_mut","downsize","drop","drop","empty_msm","fmt","fmt","from","from","from_parts","g2","get_g","init","init","into","into","k","n","new","new_params","read","read_custom","read_params","s_g2","setup","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","verifier_params","vzip","vzip","write","write_custom","DualMSM","MSMKZG","add_msm","add_msm","append_term","bases","borrow","borrow","borrow_mut","borrow_mut","check","check","clone","clone","clone_into","clone_into","combine_with_base","default","deref","deref","deref_mut","deref_mut","drop","drop","eval","fmt","fmt","from","from","from","init","init","into","into","new","new","scalars","scale","scale","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","ProverGWC","ProverSHPLONK","VerifierGWC","VerifierSHPLONK","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","create_proof_with_engine","create_proof_with_engine","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","fmt","fmt","fmt","fmt","from","from","from","from","init","init","init","init","into","into","into","into","new","new","new","new","new","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","verify_proof","verify_proof","vzip","vzip","vzip","vzip","AccumulatorStrategy","GuardKZG","SingleStrategy","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","finalize","finalize","fmt","fmt","fmt","from","from","from","init","init","init","into","into","into","new","new","new","new","process","process","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","with","Blake2bRead","Blake2bWrite","Challenge255","ChallengeScalar","EncodedChallenge","Input","Keccak256Read","Keccak256Write","Transcript","TranscriptRead","TranscriptReadBuffer","TranscriptWrite","TranscriptWriterBuffer","as_challenge_scalar","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","common_point","common_point","common_point","common_point","common_point","common_scalar","common_scalar","common_scalar","common_scalar","common_scalar","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","drop","finalize","finalize","finalize","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","get_scalar","get_scalar","init","init","init","init","init","init","init","init","init","init","init","init","into","into","into","into","into","into","new","new","read_n_points","read_n_scalars","read_point","read_point","read_point","read_scalar","read_scalar","read_scalar","squeeze_challenge","squeeze_challenge","squeeze_challenge","squeeze_challenge","squeeze_challenge","squeeze_challenge_scalar","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_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","write_point","write_point","write_point","write_scalar","write_scalar","write_scalar"],"q":[[0,"halo2_backend"],[6,"halo2_backend::arithmetic"],[43,"halo2_backend::helpers"],[72,"halo2_backend::multicore"],[216,"halo2_backend::plonk"],[309,"halo2_backend::plonk::Error"],[310,"halo2_backend::plonk::keygen"],[312,"halo2_backend::plonk::prover"],[349,"halo2_backend::plonk::verifier"],[369,"halo2_backend::poly"],[539,"halo2_backend::poly::commitment"],[608,"halo2_backend::poly::ipa"],[612,"halo2_backend::poly::ipa::commitment"],[659,"halo2_backend::poly::ipa::msm"],[689,"halo2_backend::poly::ipa::multiopen"],[721,"halo2_backend::poly::ipa::strategy"],[794,"halo2_backend::poly::kzg"],[798,"halo2_backend::poly::kzg::commitment"],[849,"halo2_backend::poly::kzg::msm"],[898,"halo2_backend::poly::kzg::multiopen"],[963,"halo2_backend::poly::kzg::strategy"],[1023,"halo2_backend::transcript"],[1178,"pasta_curves::arithmetic::curves"],[1179,"subtle"],[1180,"core::ops::function"],[1181,"alloc::alloc"],[1182,"alloc::boxed"],[1183,"subtle"],[1184,"core::marker"],[1185,"core::convert"],[1186,"rand_core"],[1187,"core::fmt"],[1188,"core::fmt"],[1189,"std::io"],[1190,"core::result"],[1191,"core::any"],[1192,"std::io"],[1193,"rayon::iter::blocks"],[1194,"rayon::iter::chunks"],[1195,"rayon::iter::cloned"],[1196,"core::cmp"],[1197,"rayon::iter"],[1198,"alloc::vec"],[1199,"alloc::collections::linked_list"],[1200,"rayon::iter::copied"],[1201,"rayon::iter::plumbing"],[1202,"rayon::iter::plumbing"],[1203,"rayon::iter::filter"],[1204,"rayon::iter::filter_map"],[1205,"core::option"],[1206,"rayon::iter::flat_map"],[1207,"rayon::iter::flat_map_iter"],[1208,"rayon::iter::flatten"],[1209,"rayon::iter::flatten_iter"],[1210,"core::fmt"],[1211,"rayon::iter::fold_chunks"],[1212,"rayon::iter::fold_chunks_with"],[1213,"rayon::iter::fold"],[1214,"rayon::iter::interleave"],[1215,"rayon::iter::interleave_shortest"],[1216,"rayon::iter::intersperse"],[1217,"core::ops::function"],[1218,"rayon::iter::map_with"],[1219,"rayon::iter::map_with"],[1220,"rayon::slice::chunk_by"],[1221,"rayon::slice::chunks"],[1222,"rayon::slice::chunks"],[1223,"rayon::slice::rchunks"],[1224,"rayon::slice"],[1225,"rayon::iter"],[1226,"core::iter::traits::accum"],[1227,"rayon::iter::rev"],[1228,"rayon::iter::skip"],[1229,"rayon::iter::skip_any"],[1230,"rayon::iter::skip_any_while"],[1231,"rayon::iter::step_by"],[1232,"core::iter::traits::accum"],[1233,"rayon::iter::take_any"],[1234,"rayon::iter::take_any_while"],[1235,"rayon::iter::try_fold"],[1236,"rayon::iter::private"],[1237,"rayon::iter::try_fold"],[1238,"rayon::iter::while_some"],[1239,"rayon::iter::len"],[1240,"rayon::iter::len"],[1241,"rayon::iter::zip_eq"],[1242,"core::fmt"],[1243,"alloc::string"],[1244,"halo2_middleware::circuit"],[1245,"std::collections::hash::map"],[1246,"halo2_middleware::zal::traits"],[1247,"halo2_middleware::zal::impls"],[1248,"halo2_middleware::zal::impls"],[1249,"core::ops::range"],[1250,"core::ops::range"],[1251,"core::iter::traits::collect"],[1252,"halo2_middleware::poly"],[1253,"core::marker"],[1254,"pairing"]],"d":["This module provides common utilities, traits and …","","","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.","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","This trait represents an element of a field.","The one element of the field, the multiplicative identity.","The scalar field of this elliptic curve.","The scalar field of this elliptic curve.","The zero element of the field, the additive identity.","Returns the curve constant a.","Returns the curve constant $a$.","Returns the curve constant b.","Returns the curve constant $b$.","Gets the coordinates of this point.","Cubes this element.","Doubles this element.","Apply the curve endomorphism by multiplying the …","Obtains a point given $(x, y)$, failing if it is not on the","Requests a hasher that accepts messages and returns …","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.","Obtains a point given Jacobian coordinates $X : Y : Z$, …","This utility function will parallelize an operation that …","Exponentiates self by exp, where exp is a little-endian …","Exponentiates self by exp, where exp is a little-endian …","Returns an element chosen uniformly at random using a …","Returns the square root of the field element, if it is …","Equivalent to Self::sqrt_ratio(self, one()).","Computes:","Squares this element.","","Curve elements are serialized in compressed form. Field …","Curve elements are serialized in uncompressed form. Field …","Serialization is the same as RawBytes, but no checks are …","","This enum specifies how various types are serialized and …","","","","Byte length of an affine curve element according to format.","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","Reads a compressed element from the buffer and attempts to …","Reads an element from the buffer and parses it according …","Reads a field element as bytes from the buffer according …","","","","","","Writes a curve element according to format:","Writes a field element as bytes to the buffer according to …","An iterator that supports “random access” to its data, …","IntoParallelIterator implements the conversion to a …","IntoParallelRefIterator implements the conversion to a …","IntoParallelRefMutIterator implements the conversion to a …","The type of item that the parallel iterator will produce.","The type of item that the parallel iterator will produce. …","The type of item that will be produced; this is typically …","The type of item that this parallel iterator produces. For …","The parallel iterator type that will be created.","The type of the parallel iterator that will be returned.","The type of iterator that will be created.","Parallel version of the standard iterator trait.","Parallel extensions for mutable slices.","Represents a fork-join scope which can be used to spawn …","","Tests that every item in the parallel iterator matches the …","Searches for some item in the parallel iterator that …","Returns a plain mutable slice, which is used to implement …","","","Divides an iterator into sequential blocks of …","Divides an iterator into sequential blocks of the given …","Takes two iterators and creates a new iterator over both.","Splits an iterator up into fixed-size chunks.","Creates an iterator which clones all of its elements. …","Lexicographically compares the elements of this …","Creates a fresh collection containing all the elements …","Collects the results of the iterator into the specified …","Collects this iterator into a linked list of vectors.","Creates an iterator which copies all of its elements. …","Counts the number of items in this parallel iterator.","Returns the number of threads in the current registry. If …","","","Internal method used to define the behavior of this …","Internal method used to define the behavior of this …","","Yields an index along with each item.","Determines if the elements of this ParallelIterator are …","Applies filter_op to each item of this iterator, producing …","Applies filter_op to each item of this iterator to get an …","Searches for some item in the parallel iterator that …","Searches for the sequentially first item in the parallel …","Searches for the sequentially last item in the parallel …","Applies the given predicate to the items in the parallel …","Applies the given predicate to the items in the parallel …","Applies the given predicate to the items in the parallel …","Applies map_op to each item of this iterator to get nested …","Applies map_op to each item of this iterator to get nested …","An adaptor that flattens parallel-iterable Items into one …","An adaptor that flattens serial-iterable Items into one …","","Parallel fold is similar to sequential fold except that the","Splits an iterator into fixed-size chunks, performing a …","Splits an iterator into fixed-size chunks, performing a …","Applies fold_op to the given init value with each item of …","Executes OP on each item produced by the iterator, in …","Executes OP on a value returned by init with each item …","Executes OP on the given init value with each item …","Returns the argument unchanged.","Determines if the elements of this ParallelIterator are …","Determines if the elements of this ParallelIterator are …","","Applies inspect_op to a reference to each item of this …","Interleaves elements of this iterator and the other given …","Interleaves elements of this iterator and the other given …","Intersperses clones of an element between items of this …","Calls U::from(self).","Converts self into a parallel iterator.","Takes two closures and potentially runs them in parallel. …","Determines if the elements of this ParallelIterator are …","Produces an exact count of how many items this iterator …","Determines if the elements of this ParallelIterator are …","Applies map_op to each item of this iterator, producing a …","Applies map_op to a value returned by init with each item …","Applies map_op to the given init value with each item of …","Computes the maximum of all the items in the iterator. If …","Computes the maximum of all the items in the iterator with …","Computes the item that yields the maximum value for the …","Computes the minimum of all the items in the iterator. If …","Computes the minimum of all the items in the iterator with …","Computes the item that yields the minimum value for the …","Determines if the elements of this ParallelIterator are …","Internal method used to define the behavior of this …","Wraps an iterator with a fuse in case of panics, to halt …","Returns a parallel iterator over the slice producing …","Returns a parallel iterator over chunk_size elements of …","Returns a parallel iterator over at most chunk_size …","Converts self into a parallel iterator.","Creates the parallel iterator from self.","Returns a parallel iterator over chunk_size elements of …","Returns a parallel iterator over at most chunk_size …","Sorts the slice in parallel.","Sorts the slice in parallel with a comparator function.","Sorts the slice in parallel with a key extraction function.","Sorts the slice in parallel with a key extraction function.","Sorts the slice in parallel, but might not preserve the …","Sorts the slice in parallel with a comparator function, …","Sorts the slice in parallel with a key extraction …","Returns a parallel iterator over mutable subslices …","Returns a parallel iterator over mutable subslices …","Lexicographically compares the elements of this …","Partitions the items of a parallel iterator into a pair of …","Partitions and maps the items of a parallel iterator into …","Searches for some item in the parallel iterator that …","Searches for the sequentially first item in the parallel …","Searches for the sequentially last item in the parallel …","Searches for items in the parallel iterator that match the …","Multiplies all the items in the iterator.","Reduces the items in the iterator into one item using op. …","Reduces the items in the iterator into one item using op. …","Produces a new iterator with the elements of this iterator …","Creates a “fork-join” scope s and invokes the closure …","Creates an iterator that skips the first n elements.","Creates an iterator that skips n elements from anywhere in …","Creates an iterator that skips elements from anywhere in …","Spawns a job into the fork-join scope self. This job will …","Spawns a job into every thread of the fork-join scope self…","Creates an iterator that steps by the given amount","Sums up the items in the iterator.","Creates an iterator that yields the first n elements.","Creates an iterator that yields n elements from anywhere …","Creates an iterator that takes elements from anywhere in …","Performs a fallible parallel fold.","Implements iter.try_fold().try_reduce() for …","Performs a fallible parallel fold with a cloneable init …","Executes a fallible OP on each item produced by the …","Executes a fallible OP on a value returned by init with …","Executes a fallible OP on the given init value with each …","","","Reduces the items in the iterator into one item using a …","Reduces the items in the iterator into one item using a …","","Unzips the items of a parallel iterator into a pair of …","Unzips the results of the iterator into the specified …","Mutates each item of this iterator before yielding it.","","Creates an iterator over the Some items of this iterator, …","Sets the maximum length of iterators desired to process in …","Sets the minimum length of iterators desired to process in …","Internal method used to define the behavior of this …","Iterates over tuples (A, B), where the items A are from …","The same as Zip, but requires that both iterators have the …","Out of bounds index passed to a backend","The instance sets up a copy constraint involving a column …","The constraint system is not satisfied.","This is an error that could occur during proving.","Instance provided exceeds number of available rows","The provided instances do not match the circuit parameters.","k is too small for the given circuit.","Opening error","Generic error not covered by previous cases","Minimal representation of a verification key that can be …","This is a proving key which allows for the creation of …","Transcript error","This is a verifying key which allows for the verification …","","","","","","","","","","","","","","","","","","","","","","","","","Returns commitments of fixed polynomials","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Reads a verification key from a slice of bytes using …","Reads a proving key from a slice of bytes using Self::read.","Get the underlying EvaluationDomain.","Get the underlying VerifyingKey.","Hashes a verification key into a transcript.","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","This module","Constructs an Error::NotEnoughRowsAvailable.","Obtains a pinned representation of this verification key …","Generate a proof","Reads a verification key from a buffer.","Reads a proving key from a buffer. Does so by reading …","","Writes a verifying key to a vector of bytes using …","Writes a proving key to a vector of bytes using Self::write…","","","","Returns representative of this VerifyingKey in transcripts","","","","","","","","","","","","","Verify a plonk proof","","","","","Writes a verifying key to a buffer.","Writes a proving key to a buffer.","The current value of k being used.","Generate a ProvingKey from a VerifyingKey and an instance …","Generate a VerifyingKey from an instance of CompiledCircuit…","The prover object used to create proofs interactively by …","The prover object used to create proofs interactively by …","","","","","Commit the witness at phase and return the challenges …","Commit the witness at phase and return the challenges …","Finalizes the proof creation.","Finalizes the proof creation. The following steps are …","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","Create a new prover object","Create a new prover object","Create a new prover object","Returns the phases of the circuit","","","","","","","","","A verifier that checks multiple proofs in a batch. This …","Adds a proof to the batch.","","","","","","","Finalizes the batch and checks its validity.","","Returns the argument unchanged.","","Calls U::from(self).","Constructs a new batch verifier.","","","","Returns a boolean indicating whether or not the proof is …","Returns a boolean indicating whether or not the proof is …","","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 …","Guards is unfinished verification result. Implement this …","","The polynomial is defined as coefficients of Lagrange …","Multi scalar engine which is not evaluated yet.","OpeningProof is not well-formed","The output type of this verification strategy after …","Represents the minimal parameters that determine an …","Represents a univariate polynomial defined over a field …","Caller needs to re-sample a point","Trait representing a strategy for verifying Halo 2 proofs.","","","","","","","","","","","","","","","","","","","","","","","","","","","Obtains a polynomial in coefficient form when given a …","This takes us from an n-length coefficient vector into a …","Generic commitment scheme structures","Returns a constant polynomial in the extended Lagrange …","Returns a constant polynomial in the Lagrange coefficient …","","","","","","","","","","","","","","","","","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","Get the size of the extended domain","This takes us from the extended evaluation domain and gets …","Finalizes the batch and checks its validity.","","","","","","","","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).","Inner product argument commitment scheme","Iterate over the values, which are either in coefficient …","Iterate over the values mutably, which are either in …","Get the size of the domain","KZG commitment scheme","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 …","","Creates new verification strategy instance","This constructs a new evaluation domain object based on …","","Obtains a polynomial in Lagrange form when given a vector …","Gets the size of this polynomial in terms of the number of …","Obtain a pinned version of this evaluation domain; a …","Obtains an MSM from the verifier strategy and yields back …","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 …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Wrapper type around a blinding factor.","Defines components of a commitment scheme.","Elliptic curve used to commit the application and witnesses","Unfinalized verification result. This is returned in …","Multiscalar multiplication engine","Multiscalar multiplication engine","Accumulator for compressed verification","Parameters for circuit synthesis and prover parameters.","Parameters for circuit synthesis and prover parameters.","Constant prover parameters","Verifier specific functionality with circuit constraints","Constant verifier parameters","Constant verifier parameters.","Common multi-open prover interface for various commitment …","Query instance or not","Query instance or not","Application field of this commitment scheme","Common multi-open verifier interface for various …","","","","Add another multiexp into this one","Add arbitrary term (the scalar and the point)","Return base points","","","Perform multiexp and check that it results in zero","","","This computes a commitment to a polynomial described by …","This commits to a polynomial using its evaluations over …","Create a multi-opening proof","Create a multi-opening proof","","","","Downsize Params with smaller k.","","Generates an empty multiscalar multiplication struct using …","","","Perform multiexp and return the result","","Returns the argument unchanged.","Getter for g generators","","Calls U::from(self).","Logarithmic size of the circuit","","","","Size of the circuit","Returns new instance of parameters","Creates new prover instance","Creates new verifier instance","Given rng creates new blinding scalar","Wrapper for parameter generator","Reads params from a buffer.","Wrapper for parameter reader","Scalars","Scale all scalars in the MSM by some scaling factor","","","","","Returns verification parameters.","Process the proof and return unfinished result named Guard","","Writes params to a buffer.","This module contains an implementation of the polynomial …","Multiscalar multiplication engines","IPA multi-open scheme This module contains an optimisation …","Strategies used with KZG scheme","Concrete IPA commitment scheme","Public parameters for IPA commitment scheme","Verifier parameters","","","","","","","This computes a commitment to a polynomial described by …","This commits to a polynomial using its evaluations over …","Create a polynomial commitment opening proof for the …","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","","","Initializes parameters for the curve, given a random …","","Reads params from a buffer.","","","","","","","","","","Checks to see if the proof represented within transcript …","","","Writes params to a buffer.","A multiscalar multiplication in the polynomial commitment …","Add a value to the first entry of g_scalars.","Add another multiexp into this one","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","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","Given verifier parameters Creates an empty multi scalar …","","","","","","","","IPA multi-open prover","IPA multi-open verifier","","","","","Create a multi-opening proof","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","An accumulator instance consisting of an evaluation claim …","A verifier that checks multiple proofs in a batch.","Wrapper for verification accumulator","A verifier that checks single proof","","","","","","","","","","","","","Computes G = ⟨s, params.g⟩","","","","","","","","","","","","","Finalizes the batch and checks its validity.","Finalizes the batch and checks its validity.","","","","","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 …","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","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","","","","","KZG commitment scheme","Multiscalar multiplication engines","KZG multi-open scheme","Strategies used with KZG scheme","Umbrella commitment scheme construction for all KZG …","These are the public parameters for the polynomial …","KZG multi-open verification parameters","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Initializes parameters for the curve through existing …","Returns gernerator on G2","","","","Calls U::from(self).","Calls U::from(self).","","","","","Reads params from a buffer.","Reads params from a buffer.","","Returns first power of secret on G2","Initializes parameters for the curve, draws toxic secret …","","","","","","","","","","","Writes params to a buffer.","Writes parameters to buffer","Two channel MSM accumulator","A multiscalar multiplication in the polynomial commitment …","","Add another multiexp into this one","","","","","","","","Performs final pairing check with given verifier params …","","","","","Prepares all scalars in the MSM to linear combination","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","Create an empty MSM instance","Create a new two channel MSM accumulator instance","","","Scale all scalars in the MSM by some scaling factor","","","","","","","","","","","Concrete KZG prover with GWC variant","Concrete KZG prover with SHPLONK variant","Concrete KZG verifier with GWC variant","Concrete KZG multiopen verifier with SHPLONK variant","","","","","","","","","Create a multi-opening proof","Create a multi-opening proof","","","","","","","","","","","","","","","","","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).","","","Given parameters creates new prover instance","","","","","","","","","","","","","","","","Verify a multi-opening proof","","","","","A verifier that checks multiple proofs in a batch","Wrapper for linear verification accumulator","A verifier that checks a single proof","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Constructs an empty batch verifier","","","Constructs an empty batch verifier","","","","","","","","","","","","","","","","","","Constructs and initialized new batch verifier","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 …","Keccak256 hash function reader for EVM compatibility","Keccak256 hash function writer for EVM compatibility","Generic transcript view (from either the prover or verifier…","Transcript view from the perspective of a verifier that …","Initializes transcript at verifier side.","Transcript view from the perspective of a prover that has …","Manages beginning and finishing of transcript pipeline.","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 …","","Conclude the interaction and return the output buffer …","","","","","","","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 a scalar field element from an encoded challenge.","","Initialize a transcript given an input buffer.","Initialize a transcript given an output buffer.","","Initialize a transcript given an input buffer.","","Initialize a transcript given an input buffer.","","Initialize a transcript given an output buffer.","","Initialize a transcript given an output buffer.","","","Calls U::from(self).","Calls U::from(self).","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,171,171,95,171,0,0,95,0,126,171,95,126,171,95,171,95,95,126,126,171,95,171,126,171,95,126,126,171,171,0,126,126,126,126,126,126,126,0,17,17,17,0,0,0,17,17,102,17,17,17,17,17,17,17,17,17,172,102,173,17,17,17,17,17,102,173,0,0,0,0,29,174,175,32,29,174,175,0,0,0,0,32,32,176,48,48,86,86,32,86,32,86,32,86,32,32,32,0,48,48,86,32,48,86,86,32,32,32,32,32,32,32,32,32,32,32,32,48,32,86,86,32,32,32,32,48,86,86,48,32,86,86,32,48,29,0,86,86,86,32,32,32,32,32,32,32,32,32,86,32,32,176,176,176,174,175,176,176,176,176,176,176,176,176,176,176,176,86,32,32,86,86,86,86,32,32,32,86,0,86,32,32,48,48,86,32,86,32,32,32,177,32,32,32,32,48,48,32,32,48,32,86,32,48,32,86,86,86,86,86,97,97,97,0,97,97,97,97,97,0,0,97,0,97,94,99,96,97,94,99,96,94,96,94,96,97,94,99,96,97,94,99,96,97,94,99,96,94,97,97,94,99,96,97,97,94,99,96,94,96,94,96,94,97,94,99,96,97,94,99,96,0,97,94,0,94,96,97,94,96,94,96,97,94,97,94,99,96,97,94,99,96,97,94,99,96,0,97,94,99,96,94,96,178,0,0,0,0,111,117,111,117,111,117,111,117,111,117,111,117,111,117,111,117,111,117,111,117,111,117,111,117,111,117,117,111,117,111,117,111,117,111,117,0,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,0,0,120,0,0,0,0,0,0,0,0,179,133,123,0,0,133,0,125,125,103,132,133,128,129,130,125,103,132,133,128,129,130,125,103,128,129,130,125,103,128,129,130,125,103,103,0,103,103,103,132,133,128,129,130,125,125,103,132,133,128,129,130,125,125,103,103,132,133,128,129,130,125,103,103,103,103,103,103,123,103,132,133,128,129,130,125,103,132,133,128,129,130,125,103,103,103,103,125,125,125,125,125,125,103,132,133,128,129,130,125,103,132,133,128,129,130,125,0,125,125,103,0,103,103,103,125,123,103,125,125,125,103,123,125,103,103,125,125,103,128,129,130,125,103,132,133,128,129,130,125,103,132,133,128,129,130,125,103,132,133,128,129,130,125,125,103,132,133,128,129,130,125,0,0,113,122,0,110,122,0,0,113,0,113,180,0,114,122,113,0,139,139,139,181,181,181,139,139,181,139,139,180,110,114,114,139,139,139,110,139,110,139,139,181,139,139,180,139,139,110,139,139,139,110,180,114,122,139,113,110,113,181,181,139,139,139,139,180,122,139,110,0,0,0,0,0,0,0,142,144,142,144,142,142,142,142,0,142,144,142,144,142,142,144,142,142,144,142,144,142,142,144,142,144,142,142,142,144,142,144,142,142,144,142,144,142,144,142,0,142,144,142,0,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,0,0,146,147,146,147,146,146,147,146,147,146,147,146,147,146,147,146,147,146,147,146,147,146,147,146,147,146,147,147,146,147,0,0,0,0,145,148,149,150,145,148,149,150,145,148,145,148,145,145,148,149,150,145,148,149,150,145,148,149,150,149,150,145,148,149,150,145,148,149,150,148,145,148,149,150,145,148,149,150,149,150,149,150,145,148,145,148,149,150,145,148,149,150,145,148,149,150,148,145,145,145,148,149,150,0,0,0,0,0,0,0,151,154,151,154,151,151,151,151,151,154,151,154,151,151,154,151,151,154,151,154,151,151,151,151,154,151,154,151,151,151,154,151,151,154,151,151,151,151,154,151,154,151,154,151,151,154,151,151,0,0,153,155,153,153,153,155,153,155,153,155,153,155,153,155,153,153,153,155,153,155,153,155,153,153,155,153,155,155,153,155,153,155,153,155,153,153,155,153,155,153,155,153,155,153,155,153,155,0,0,0,0,157,159,158,160,157,159,158,160,157,158,157,159,158,160,157,159,158,160,157,159,158,160,157,159,158,160,157,159,158,160,157,159,158,160,157,159,158,160,157,159,158,158,160,157,159,158,160,157,159,158,160,157,159,158,160,159,160,157,159,158,160,0,0,0,161,162,163,161,162,163,161,162,163,161,162,163,161,162,163,161,162,163,161,162,163,162,163,161,162,163,161,162,163,161,162,163,161,162,163,162,162,163,163,162,163,161,162,163,161,162,163,161,162,163,161,162,163,161,162,163,162,0,0,0,0,0,104,0,0,0,0,0,0,0,104,165,166,167,168,164,169,165,166,167,168,164,169,165,166,167,168,164,169,165,166,167,168,164,169,105,165,166,167,168,105,165,166,167,168,165,166,167,168,164,164,169,169,165,166,167,168,164,169,165,166,167,168,164,169,182,167,168,165,166,167,168,164,169,165,166,167,168,164,169,104,169,183,182,165,165,166,166,167,167,168,168,164,169,165,166,167,168,164,169,104,169,0,0,124,165,166,124,165,166,105,165,166,167,168,105,165,166,167,168,164,169,165,166,167,168,164,169,165,166,167,168,164,169,165,166,167,168,164,169,165,166,167,168,164,169,115,167,168,115,167,168],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[-1,[[2,[[1,[-1]]]]],[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],[[2,[-1]]],[]],[3,[[6,[4,5]]]],[-1,[[2,[-1]]],[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,8,[]],[-1,9,[]],[[],[[2,[-1]]],[]],[[[10,[-1]],-2],9,11,[4,11,12,13]],[[-1,-2],-1,[],[[15,[[10,[14]]]]]],[[-1,-2],-1,[],[[15,[[10,[14]]]]]],[-1,-2,16,[]],[-1,[[2,[-1]]],[]],[-1,[[9,[7,-1]]],[]],[[-1,-1],[[9,[7,-1]]],[]],[-1,-1,[]],0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[17,18],[17,17],[[-1,-2],9,[],[]],[18,-1,[]],[18,-1,[]],[18,9],[[17,19],20],[-1,-1,[]],[[],18],[-1,-2,[],[]],[-1,[[21,[-2]]],22,[]],[[-1,17],[[21,[-2]]],22,[]],[[-1,17],[[21,[-2]]],22,[]],[-1,-2,[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,24,[]],[-1,-2,[],[]],[[-1,-2,17],[[21,[9]]],[],25],[[-1,-2,17],[[21,[9]]],[],25],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[-1,-2],8,[],[4,12,11]],[[-1,-2],8,[],[4,12,11]],[-1,[[10,[-2]]],[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[26,[-1]]],[]],[[-1,18],[[27,[-1]]],[]],[[-1,-2],[[28,[-1]]],[],29],[[-1,18],[[30,[-1]]],[]],[-1,[[31,[-1]]],32],[[-1,-2],33,[],29],[-1,-2,[],34],[[-1,[35,[5]]],9,[]],[-1,[[36,[[35,[5]],5]]],[]],[-1,[[37,[-1]]],32],[-1,18,[]],[[],18],[18,-1,[]],[18,-1,[]],[[-1,-2],[],[],38],[[-1,-2],[],[],39],[18,9],[-1,[[40,[-1]]],[]],[[-1,-2],8,[],29],[[-1,-2],[[41,[-1,-2]]],[],[4,12,11]],[[-1,-2],[[42,[-1,-2]]],[],[4,12,11]],[[-1,-2],43,[],[4,12,11]],[[-1,-2],43,[],[4,12,11]],[[-1,-2],43,[],[4,12,11]],[[-1,-2],[[43,[-3]]],[],[4,12,11],11],[[-1,-2],[[43,[-3]]],[],[4,12,11],11],[[-1,-2],[[43,[-3]]],[],[4,12,11],11],[[-1,-2],[[44,[-1,-2]]],[],[4,12,11]],[[-1,-2],[[45,[-1,-2]]],[],[4,12,11]],[-1,[[46,[-1]]],[]],[-1,[[47,[-1]]],[]],[[48,19],[[23,[9,49]]]],[[-1,-2,-3],[[50,[-1,-2,-3]]],[],[4,12,11],[4,12,11]],[[-1,18,-2,-3],[[51,[-1,-2,-3]]],[],[4,11,12],[4,11,12]],[[-1,18,-2,-3],[[52,[-1,-2,-3]]],[],[11,13],[4,11,12]],[[-1,-2,-3],[[53,[-1,-2,-3]]],[],[11,13],[4,12,11]],[[-1,-2],9,[],[4,12,11]],[[-1,-2,-3],9,[],[4,12,11],[4,12,11]],[[-1,-2,-3],9,[],[11,13],[4,12,11]],[-1,-1,[]],[[-1,-2],8,[],29],[[-1,-2],8,[],29],[[],18],[[-1,-2],[[54,[-1,-2]]],[],[4,12,11]],[[-1,-2],[[55,[-1]]],[],29],[[-1,-2],[[56,[-1]]],[],29],[-1,[[57,[-1]]],[]],[-1,-2,[],[]],[-1,[],[]],[[-1,-2],[[9,[-3,-4]]],[58,11],[58,11],11,11],[[-1,-2],8,[],29],[-1,18,[]],[[-1,-2],8,[],29],[[-1,-2],[[59,[-1,-2]]],[],[4,12,11]],[[-1,-2,-3],[[60,[-1,-2,-3]]],[],[4,12,11],[4,12,11]],[[-1,-2,-3],[[61,[-1,-2,-3]]],[],[11,13],[4,12,11]],[-1,43,[]],[[-1,-2],43,[],[12,11,4]],[[-1,-2],43,[],[12,11,4]],[-1,43,[]],[[-1,-2],43,[],[12,11,4]],[[-1,-2],43,[],[12,11,4]],[[-1,-2],8,[],29],[-1,[[43,[18]]],[]],[-1,[[62,[-1]]],[]],[[-1,-2],[[63,[-3,-2]]],[],[4,11,12],[]],[[-1,18],[[64,[-2]]],[],[]],[[-1,18],[[65,[-2]]],[],[]],[-1,[],[]],[-1,[],[]],[[-1,18],[[66,[-2]]],[],[]],[[-1,18],[[67,[-2]]],[],[]],[-1,9,[]],[[-1,-2],9,[],[4,12]],[[-1,-2],9,[],[4,12]],[[-1,-2],9,[],[4,12]],[-1,9,[]],[[-1,-2],9,[],[4,12]],[[-1,-2],9,[],[4,12]],[[-1,-2],[[68,[-3,-2]]],[],[4,12,11],[]],[[-1,-2],[[69,[-3,-2]]],[],[4,12,11],[]],[[-1,-2],[[43,[33]]],[],29],[[-1,-2],[[9,[-3,-4]]],[],[4,12,11],[70,11,71],[70,11,71]],[[-1,-2],[[9,[-4,-6]]],[],[4,12,11],11,[70,11,[71,[-3]]],11,[70,11,[71,[-5]]]],[[-1,-2],[[43,[18]]],[],[4,12,11]],[[-1,-2],[[43,[18]]],[],[4,12,11]],[[-1,-2],[[43,[18]]],[],[4,12,11]],[[-1,-2],[[72,[-1,-2]]],[],[4,12,11]],[-1,-2,[],[11,73,73]],[[-1,-2,-3],[],[],[4,12,11],[4,12,11]],[[-1,-2],43,[],[4,12,11]],[-1,[[74,[-1]]],[]],[-1,-2,[58,11],11],[[-1,18],[[75,[-1]]],[]],[[-1,18],[[76,[-1]]],[]],[[-1,-2],[[77,[-1,-2]]],[],[4,12,11]],[[48,-1],9,[58,11]],[[48,-1],9,[4,11,12]],[[-1,18],[[78,[-1]]],[]],[-1,-2,[],[11,79,79]],[[-1,18],[[80,[-1]]],[]],[[-1,18],[[81,[-1]]],[]],[[-1,-2],[[82,[-1,-2]]],[],[4,12,11]],[[-1,-2,-3],[[83,[-1,-4,-2,-3]]],[],[4,12,11],[4,12,11],[84,11]],[[-1,-2,-3],[[23,[-4,-5]]],[],[4,11,12],[4,11,12],[],[]],[[-1,-2,-3],[[85,[-1,-4,-3]]],[],[13,11],[4,12,11],[84,11]],[[-1,-2],-3,[],[4,12,11],[84,11]],[[-1,-2,-3],-4,[],[4,12,11],[4,12,11],[84,11]],[[-1,-2,-3],-4,[],[11,13],[4,12,11],[84,11]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[[-1,-2,-3],[],[],[4,12,11],[4,12,11]],[[-1,-2],43,[],[4,12,11]],[-1,24,[]],[-1,[[9,[-3,-5]]],32,11,[70,11,[71,[-2]]],11,[70,11,[71,[-4]]]],[[-1,[35,[-2,5]],[35,[-3,5]]],9,86,11,11],[[-1,-2],[[87,[-1,-2]]],[],[4,12,11]],[-1,-2,[],[]],[-1,[[88,[-1]]],32],[[-1,18],[[89,[-1]]],[]],[[-1,18],[[90,[-1]]],[]],[[-1,-2],[],[],91],[[-1,-2],[[92,[-1]]],[],29],[[-1,-2],[[93,[-1]]],[],29],0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[94,[-1]]],[[94,[-1]]],[13,95]],[[[96,[-1]]],[[96,[-1]]],[13,95]],[[-1,-2],9,[],[]],[[-1,-2],9,[],[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,9],[18,9],[18,9],[18,9],[[[94,[-1]]],[[35,[-1]]],95],[[97,19],20],[[97,19],20],[[[94,[-1]],19],20,[98,95]],[[[99,[-1]],19],20,[98,95]],[[[96,[-1]],19],20,[98,95]],[100,97],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],0,0,[[[94,[-1]]],103,95],[[[96,[-1]]],[[94,[-1]]],95],[[[94,[-1]],-3],[[21,[9]]],95,[[104,[-1]]],[[105,[-1,-2]]]],[[],18],[[],18],[[],18],[[],18],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[106,97],[[[94,[-1]]],[[99,[-1]]],95],0,0,0,[97,[[43,[107]]]],[[[94,[-1]],17],[[35,[101]]],102],[[[96,[-1]],17],[[35,[101]]],102],[-1,-2,[],[]],[-1,-2,[],[]],[-1,108,[]],[[[94,[-1]]],[],95],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,24,[]],[-1,24,[]],[-1,24,[]],[-1,24,[]],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[94,[-1]],-2,17],[[21,[9]]],102,25],[[[96,[-1]],-2,17],[[21,[9]]],102,25],0,[[-2,[94,[-1]],109],[[23,[[96,[-1]],97]]],95,[[110,[-1]]]],[[-2,109],[[23,[[94,[-1]],97]]],95,[[110,[-1]]]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[111,[-1,-2,-3,-4,-5,-6]],101,[35,[[43,[35]]]]],[[23,[[112,[18]],97]]],113,[[114,[-1]]],104,16,[[115,[-3]]],116],[[[117,[-1,-2,-3,-4,-5,-6]],101,[35,[[35,[[43,[35]]]]]]],[[23,[[112,[18]],97]]],113,[[114,[-1]]],104,16,[[115,[-3]]],116],[[[111,[-1,-2,-3,-4,-5,-6]]],[[23,[9,97]]],113,[[114,[-1]]],104,16,[[115,[-3]]],116],[[[117,[-1,-2,-3,-4,-5,-6]]],[[23,[9,97]]],113,[[114,[-1]]],104,16,[[115,[-3]]],116],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,9],[18,9],[[[111,[-1,-2,-3,-4,-5,-6]],19],20,[98,113],[98,[114,[-1]]],[98,104],[98,16],[98,[115,[-3]]],[98,116]],[[[117,[-1,-2,-3,-4,-5,-6]],19],20,[98,113],[98,[114,[-1]]],[98,104],[98,16],[98,[115,[-3]]],[98,116]],[-1,-1,[]],[-1,-1,[]],[[],18],[[],18],[-1,-2,[],[]],[-1,-2,[],[]],[[96,[10,[10]],-1,-3],[[23,[[111,[-4,-5,-2,-1,-3,118]],97]]],16,104,[[115,[-2]]],113,[[114,[-4]]]],[[96,[10,[[10,[10]]]],-1,-3],[[23,[[117,[-4,-5,-2,-1,-3,118]],97]]],16,104,[[115,[-2]]],113,[[114,[-4]]]],[[[119,[-1]],96,[10,[10]],-2,-4],[[23,[[111,[-5,-6,-3,-2,-4,-1]],97]]],116,16,104,[[115,[-3]]],113,[[114,[-5]]]],[[[119,[-1]],96,[10,[[10,[10]]]],-2,-4],[[23,[[117,[-5,-6,-3,-2,-4,-1]],97]]],116,16,104,[[115,[-3]]],113,[[114,[-5]]]],[[[117,[-1,-2,-3,-4,-5,-6]]],[[10,[101]]],113,[[114,[-1]]],104,16,[[115,[-3]]],116],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,24,[]],[-1,24,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[[[120,[-1]],[35,[[35,[35]]]],[35,[101]]],9,95],[-1,-2,[],[]],[-1,-2,[],[]],[[],[[120,[-1]]],[70,95]],[18,-1,[]],[18,-1,[]],[18,9],[[[120,[-1]],[121,[-1]],[94,[-1]]],8,95],[[[120,[-1]],19],20,[98,95]],[-1,-1,[]],[[],18],[-1,-2,[],[]],[[],[[120,[-1]]],95],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,24,[]],[[94,-3,[10,[[10,[10]]]],-5],[[23,[97]]],113,[[122,[-1]]],[[123,[-1,-2]]],104,[[124,[-4]]]],[[94,-3,[10,[10]],-5],[[23,[97]]],113,[[122,[-1]]],[[123,[-1,-2]]],104,[[124,[-4]]]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[125,[-1,-2]],[125,[-1,-2]]],[[125,[-1,-2]]],126,127],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[103,[-1]]],[[103,[-1]]],[13,126]],[128,128],[129,129],[130,130],[[[125,[-1,-2]]],[[125,[-1,-2]]],13,13],[[-1,-2],9,[],[]],[[-1,-2],9,[],[]],[[-1,-2],9,[],[]],[[-1,-2],9,[],[]],[[-1,-2],9,[],[]],[[[103,[-1]],[35,[-1]]],[[125,[-1,128]]],131],[[[103,[-1]],[125,[-1,128]]],[[125,[-1,130]]],131],0,[[[103,[-1]],-1],[[125,[-1,130]]],131],[[[103,[-1]],-1],[[125,[-1,129]]],131],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[[[125,[-1,-2]]],[[10,[-1]]],[],[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[[[125,[-1,-2]]],[[10,[-1]]],[],[]],[[[103,[-1]],[125,[-1,130]]],[[125,[-1,130]]],131],[18,9],[18,9],[18,9],[18,9],[18,9],[18,9],[18,9],[[[103,[-1]]],[[125,[-1,128]]],131],[[[103,[-1]]],[[125,[-1,130]]],131],[[[103,[-1]]],[[125,[-1,129]]],131],[[[103,[-1]]],106,131],[[[103,[-1]]],18,131],[[[103,[-1]],[125,[-1,130]]],[[35,[-1]]],131],[-1,8,[]],[[[103,[-1]],19],20,[98,126]],[[[132,[-1]],19],20,[98,126]],[[133,19],20],[[128,19],20],[[129,19],20],[[130,19],20],[[[125,[-1,-2]],19],20,98,98],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[103,[-1]]],-1,131],[[[103,[-1]]],-1,131],[[[103,[-1]]],-1,131],[[[103,[-1]]],18,131],[[[125,[-1,-2]],134],[[10,[-1]]],[],[]],[[[125,[-1,-2]],18],-1,[],[]],[[[125,[-1,-2]],[135,[18]]],[[10,[-1]]],[],[]],[[[125,[-1,-2]],134],[[10,[-1]]],[],[]],[[[125,[-1,-2]],[135,[18]]],[[10,[-1]]],[],[]],[[[125,[-1,-2]],18],-1,[],[]],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[[[125,[-1,-2]]],[[0,[136]]],[],[]],[[[125,[-1,-2]]],[[0,[136]]],[],[]],[[[103,[-1]]],106,131],0,[[[103,[-1]],-1,-1,-2],[[35,[-1]]],131,[137,13]],[[[103,[-1]],[35,[-1]]],[[125,[-1,129]]],131],[[[103,[-1]],[125,[-1,129]]],[[125,[-1,128]]],131],[[[125,[-1,-2]],-1],[[125,[-1,-2]]],126,127],[[],-1,[]],[[106,106],[[103,[-1]]],131],[[18,-1],[[125,[-1,-2]]],13,[]],[[[35,[-1]]],[[125,[-1,129]]],13],[[[125,[-1,-2]]],18,[],[]],[[[103,[-1]]],[[132,[-1]]],131],[[-1,-2],[[23,[97]]],[],58],[[[125,[-1,129]],138],[[125,[-1,129]]],126],[[[103,[-1]],[125,[-1,130]],138],[[125,[-1,130]]],131],[[[103,[-1]],-1,138],-1,131],[[[125,[-1,-2]],[125,[-1,-2]]],[[125,[-1,-2]]],126,127],[[[125,[-1,-2]],-1],[[125,[-1,-2]]],126,127],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,24,[]],[-1,24,[]],[-1,24,[]],[-1,24,[]],[-1,24,[]],[-1,24,[]],[-1,24,[]],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[139,[-1]],[139,[-1]]],[[139,[-1]]],126],[[[139,[-1]],[139,[-1]]],9,126],[[[139,[-1]],-1],9,126],[[-1,-1],9,140],[-1,9,[]],[-1,35,[]],[-1,-2,[],[]],[-1,-2,[],[]],[[-1,-3],8,[],[],[[116,[-2]]]],[[[139,[-1]]],[[139,[-1]]],13],[[-1,-2],9,[],[]],[[-1,-3,[125,[128]],139],[],[],[],[[116,[-2]]]],[[-1,-3,[125,[129]],139],[],[],[],[[116,[-2]]]],[[-1,-2,-4,-5],[[21,[9]]],[],16,104,[[115,[-3]]],[137,13]],[[-1,-2,-3,-5,-6],[[21,[9]]],[],116,16,104,[[115,[-4]]],[137,13]],[[],[[139,[-1]]],126],[18,-1,[]],[18,-1,[]],[[-1,106],9,[]],[18,9],[-1,[],[]],[[[139,[-1]],[139,[-1]]],8,141],[[-1,-2],8,[],[]],[[-1,-3],[],[],[],[[116,[-2]]]],[[[139,[-1]],19],20,98],[-1,-1,[]],[-1,[[10,[-2]]],[],[]],[[],18],[-1,-2,[],[]],[-1,106,[]],[[[139,[-1]],[139,[-1]]],[[139,[-1]]],126],[[[139,[-1]],-1],9,126],[[[139,[-1]],[139,[-1]]],9,126],[-1,14,[]],[106,-1,[]],[[],-1,[]],[[],-1,[]],[-1,[[139,[-2]]],16,126],[106],[-1,[[21,[-2]]],22,[]],[-1,21,22],[-1,35,[]],[-1,9,[]],[-1,-2,[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,24,[]],[-1,[],[]],[[-1,-3,-4],[[23,[133]]],[],104,[[124,[-2]]],[137,13]],[-1,-2,[],[]],[[-1,-2],[[21,[9]]],[],25],0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[142,[-1]]],[[142,[-1]]],[13,95]],[[-1,-2],9,[],[]],[[[142,[-1]],-2,[125,[128]],139],[],95,[[116,[-1]]]],[[[142,[-1]],-2,[125,[129]],139],[],95,[[116,[-1]]]],[[-2,[142,[-1]],-3,-5,[125,[128]],139],[[21,[9]]],95,[[116,[-1]]],16,[[104,[-1]]],[[115,[-1,-4]]]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[[[142,[-1]],106],9,95],[18,9],[18,9],[[[142,[-1]]],[[143,[-1]]],95],[[[142,[-1]],19],20,[98,95]],[[[144,[-1]],19],20,[98,95]],[-1,-1,[]],[-1,-1,[]],[[[142,[-1]]],[[10,[-1]]],95],[[],18],[[],18],[-1,-2,[],[]],[-1,-2,[],[]],[[[142,[-1]]],106,95],[[[142,[-1]]],14,95],[106,[[142,[-1]]],95],[106],[-1,[[21,[[142,[-2]]]]],22,95],[-1,21,22],[-1,-2,[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,24,[]],[-1,24,[]],[[[142,[-1]]],[],95],[[[142,[-1]],[143,[-1]],-3],[[23,[[145,[-1]],133]]],95,[[104,[-1]]],[[124,[-1,-2]]]],[-1,-2,[],[]],[-1,-2,[],[]],[[[142,[-1]],-2],[[21,[9]]],95,25],0,[[[143,[-1]]],9,95],[[[143,[-1]],[143,[-1]]],9,95],[[[143,[-1]],[143,[-1]]],9,95],[[[143,[-1]],10],9,95],[[[143,[-1]]],9,95],[[[143,[-1]]],9,95],[[[143,[-1]]],9,95],[[[143,[-1]]],35,95],[-1,-2,[],[]],[-1,-2,[],[]],[[[143,[-1]],-2],8,95,[[116,[-1]]]],[[[143,[-1]]],[[143,[-1]]],[13,95]],[[-1,-2],9,[],[]],[18,-1,[]],[18,-1,[]],[18,9],[[[143,[-1]],-2],[],95,[[116,[-1]]]],[[[143,[-1]],19],20,[98,95]],[-1,-1,[]],[[],18],[-1,-2,[],[]],[[[121,[-1]]],[[143,[-1]]],95],[[[143,[-1]]],35,95],[[[143,[-1]]],9,95],[-1,-2,[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,24,[]],[-1,-2,[],[]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[146,[-1]],-2,-3,-5,-6],[[21,[9]]],95,[[116,[-1]]],16,[[104,[-1]]],[[115,[-1,-4]]],[137,13]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,9],[18,9],[[[146,[-1]],19],20,[98,95]],[[[147,[-1]],19],20,[98,95]],[-1,-1,[]],[-1,-1,[]],[[],18],[[],18],[-1,-2,[],[]],[-1,-2,[],[]],[[[142,[-1]]],[[146,[-1]]],95],[[[121,[-1]]],[[147,[-1]]],95],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,24,[]],[-1,24,[]],[[[147,[-1]],-3,-4,[143,[-1]]],[[23,[133]]],95,[[104,[-1]]],[[124,[-1,-2]]],[137,13]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[145,[-1]]],[[145,[-1]]],[13,95]],[[[148,[-1]]],[[148,[-1]]],[13,95]],[[-1,-2],9,[],[]],[[-1,-2],9,[],[]],[[[145,[-1]],-2],-1,95,[[116,[-1]]]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,9],[18,9],[18,9],[18,9],[[[149,[-1]]],8,95],[[[150,[-1]]],8,95],[[[145,[-1]],19],20,[98,95]],[[[148,[-1]],19],20,[98,95]],[[[149,[-1]],19],20,[98,95]],[[[150,[-1]],19],20,[98,95]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],0,[[],18],[[],18],[[],18],[[],18],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[142,[-1]]],[[149,[-1]]],95],[[[142,[-1]]],[[150,[-1]]],95],[[[149,[-1]],-2],[[23,[97]]],95,58],[[[150,[-1]],-2],[[23,[97]]],95,58],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,24,[]],[-1,24,[]],[-1,24,[]],[-1,24,[]],0,[[[145,[-1]]],[[143,[-1]]],95],[[[145,[-1]],-1],[[9,[[143,[-1]],[148,[-1]]]]],95],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[151,[-1]]],[[151,[-1]]],[13,152]],[[-1,-2],9,[],[]],[[[151,[-1]],-2,[125,[128]],139],[],[152,98],116],[[[151,[-1]],-2,[125,[129]],139],[],[152,98],116],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[[[151,[-1]],106],9,[152,98]],[18,9],[18,9],[[[151,[-1]]],[[153,[-1]]],[152,98]],[[[151,[-1]],19],20,[98,152]],[[[154,[-1]],19],20,[98,152]],[-1,-1,[]],[-1,-1,[]],[[[151,[-1]],106,35,[43,[35]]],[[151,[-1]]],[152,98]],[[[151,[-1]]],[],[152,98]],[[[151,[-1]]],10,[152,98]],[[],18],[[],18],[-1,-2,[],[]],[-1,-2,[],[]],[[[151,[-1]]],106,[152,98]],[[[151,[-1]]],14,[152,98]],[106,[[151,[-1]]],[152,98]],[106],[-1,[[21,[[151,[-2]]]]],22,[152,98]],[[-1,17],[[21,[[151,[-2]]]]],22,[152,98]],[-1,21,22],[[[151,[-1]]],[],[152,98]],[[106,-1],[[151,[-2]]],16,[152,98]],[-1,-2,[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,24,[]],[-1,24,[]],[[[151,[-1]]],[],[152,98]],[-1,-2,[],[]],[-1,-2,[],[]],[[[151,[-1]],-2],[[21,[9]]],[152,98],25],[[[151,[-1]],-2,17],[[21,[9]]],[152,98],25],0,0,[[[153,[-1]],[153,[-1]]],9,[152,98]],[[[155,[-1]],[155,[-1]]],9,[156,98]],[[[153,[-1]]],9,[152,98]],[[[153,[-1]]],35,[152,98]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[153,[-1]],-2],8,[152,98],116],[[[155,[-1]],-2],8,[156,98],116],[[[153,[-1]]],[[153,[-1]]],[13,152]],[[[155,[-1]]],[[155,[-1]]],[13,152]],[[-1,-2],9,[],[]],[[-1,-2],9,[],[]],[[[153,[-1]]],9,152],[[],[[153,[-1]]],[70,152]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,9],[18,9],[[[153,[-1]],-2],[],[152,98],116],[[[153,[-1]],19],20,[98,152]],[[[155,[-1]],19],20,[98,152]],[-1,-1,[]],[-1,-1,[]],[[[151,[-1]]],[[155,[-1]]],[156,98]],[[],18],[[],18],[-1,-2,[],[]],[-1,-2,[],[]],[[],[[153,[-1]]],152],[[[151,[-1]]],[[155,[-1]]],[156,98]],[[[153,[-1]]],35,[152,98]],[[[153,[-1]]],9,[152,98]],[[[155,[-1]]],9,[156,98]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,24,[]],[-1,24,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[157,[-1]],-2,-3,-5,-6],[[21,[9]]],[152,98],116,16,104,[[115,[-4]]],[137,13]],[[[158,[-1]],-2,-3,-5,-6],[[21,[9]]],[152,98],116,16,104,[[115,[-4]]],[137,13]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,9],[18,9],[18,9],[18,9],[[[157,[-1]],19],20,[98,152]],[[[159,[-1]],19],20,[98,152]],[[[158,[-1]],19],20,[98,152]],[[[160,[-1]],19],20,[98,152]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],18],[[],18],[[],18],[[],18],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[151,[-1]]],[[157,[-1]]],[152,98]],[[[151,[-1]]],[[159,[-1]]],[156,98]],[[[151,[-1]]],[[158,[-1]]],152],[[[151,[-1]]],[[158,[-1]]],[152,98]],[[[151,[-1]]],[[160,[-1]]],[156,98]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,24,[]],[-1,24,[]],[-1,24,[]],[-1,24,[]],[[[159,[-1]],-3,-4,[155,[-1]]],[[23,[133]]],[156,98],104,[[124,[-2]]],[137,13]],[[[160,[-1]],-3,-4,[155,[-1]]],[[23,[133]]],[156,98],104,[[124,[-2]]],[137,13]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[161,[-1]]],[[161,[-1]]],[13,156,98]],[[[162,[-1]]],[[162,[-1]]],[13,152]],[[[163,[-1]]],[[163,[-1]]],[13,152]],[[-1,-2],9,[],[]],[[-1,-2],9,[],[]],[[-1,-2],9,[],[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,9],[18,9],[18,9],[[[162,[-1]]],8,[156,98]],[[[163,[-1]]],8,[156,98]],[[[161,[-1]],19],20,[98,156,98]],[[[162,[-1]],19],20,[98,152]],[[[163,[-1]],19],20,[98,152]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],18],[[],18],[[],18],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[151,[-1]]],[[162,[-1]]],[156,98]],[[[151,[-1]]],[[162,[-1]]],[156,98]],[[[151,[-1]]],[[163,[-1]]],[156,98]],[[[151,[-1]]],[[163,[-1]]],[156,98]],[[[162,[-1]],-2],[[23,[97]]],[156,98],58],[[[163,[-1]],-2],[[23,[97]]],[156,98],58],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,24,[]],[-1,24,[]],[-1,24,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[155,[-1]]],[[162,[-1]]],[156,98]],0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,[[164,[-2,-3]]],[],[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[165,[-1,-2,-3]]],[[165,[-1,-2,-3]]],[13,22],[13,95],[13,[104,[-2]]]],[[[166,[-1,-2,-3]]],[[166,[-1,-2,-3]]],[13,22],[13,95],[13,[104,[-2]]]],[[[167,[-1,-2,-3]]],[[167,[-1,-2,-3]]],[13,25],[13,95],[13,[104,[-2]]]],[[[168,[-1,-2,-3]]],[[168,[-1,-2,-3]]],[13,25],[13,95],[13,[104,[-2]]]],[[[164,[-1,-2]]],[[164,[-1,-2]]],[13,95],13],[[[169,[-1]]],[[169,[-1]]],[13,95]],[[-1,-2],9,[],[]],[[-1,-2],9,[],[]],[[-1,-2],9,[],[]],[[-1,-2],9,[],[]],[[-1,-2],9,[],[]],[[-1,-2],9,[],[]],[[-1,-2],[[21,[9]]],[],[]],[[[165,[-1,-2,[169,[-2]]]],-2],[[21,[9]]],22,95],[[[166,[-1,-2,[169,[-2]]]],-2],[[21,[9]]],22,95],[[[167,[-1,-2,[169,[-2]]]],-2],[[21,[9]]],25,95],[[[168,[-1,-2,[169,[-2]]]],-2],[[21,[9]]],25,95],[-1,[[21,[9]]],[]],[[[165,[-1,-2,[169,[-2]]]]],[[21,[9]]],22,95],[[[166,[-1,-2,[169,[-2]]]]],[[21,[9]]],22,95],[[[167,[-1,-2,[169,[-2]]]]],[[21,[9]]],25,95],[[[168,[-1,-2,[169,[-2]]]]],[[21,[9]]],25,95],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[[[164,[-1,-2]]],[],95,[]],[18,-1,[]],[18,-1,[]],[[[169,[-1]]],[],95],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,9],[18,9],[18,9],[18,9],[18,9],[18,9],[-1,-2,[],[]],[[[167,[-1,-2,[169,[-2]]]]],-1,25,95],[[[168,[-1,-2,[169,[-2]]]]],-1,25,95],[[[165,[-1,-2,-3]],19],20,[98,22],[98,95],[98,[104,[-2]]]],[[[166,[-1,-2,-3]],19],20,[98,22],[98,95],[98,[104,[-2]]]],[[[167,[-1,-2,-3]],19],20,[98,25],[98,95],[98,[104,[-2]]]],[[[168,[-1,-2,-3]],19],20,[98,25],[98,95],[98,[104,[-2]]]],[[[164,[-1,-2]],19],20,[98,95],98],[[[169,[-1]],19],20,[98,95]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,[],[]],[[[169,[-1]]],[],95],[-1,-2,[],[]],[-1,-2,[],[]],[[],18],[-1,[[165,[-1,-2,[169,[-2]]]]],22,95],[[],18],[-1,[[166,[-1,-2,[169,[-2]]]]],22,95],[[],18],[-1,[[167,[-1,-2,[169,[-2]]]]],25,95],[[],18],[-1,[[168,[-1,-2,[169,[-2]]]]],25,95],[[],18],[[],18],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[],-1,[]],[[[170,[101]]],[[169,[-1]]],95],[[-3,18],[[21,[[35,[-1]]]]],95,[[104,[-1]]],[[124,[-1,-2]]]],[[-3,18],[[21,[35]]],95,[[104,[-1]]],[[124,[-1,-2]]]],[-1,[[21,[-2]]],[],[]],[[[165,[-1,-2,[169,[-2]]]]],[[21,[-2]]],22,95],[[[166,[-1,-2,[169,[-2]]]]],[[21,[-2]]],22,95],[-1,21,[]],[[[165,[-1,-2,[169,[-2]]]]],21,22,95],[[[166,[-1,-2,[169,[-2]]]]],21,22,95],[-1,-2,[],[]],[[[165,[-1,-2,[169,[-2]]]]],[[169,[-2]]],22,95],[[[166,[-1,-2,[169,[-2]]]]],[[169,[-2]]],22,95],[[[167,[-1,-2,[169,[-2]]]]],[[169,[-2]]],25,95],[[[168,[-1,-2,[169,[-2]]]]],[[169,[-2]]],25,95],[-1,[[164,[-2,-3]]],[],[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,24,[]],[-1,24,[]],[-1,24,[]],[-1,24,[]],[-1,24,[]],[-1,24,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[-1,-2],[[21,[9]]],[],[]],[[[167,[-1,-2,[169,[-2]]]],-2],[[21,[9]]],25,95],[[[168,[-1,-2,[169,[-2]]]],-2],[[21,[9]]],25,95],[-1,[[21,[9]]],[]],[[[167,[-1,-2,[169,[-2]]]]],[[21,[9]]],25,95],[[[168,[-1,-2,[169,[-2]]]]],[[21,[9]]],25,95]],"c":[],"p":[[3,"Coordinates",1178],[3,"CtOption",1179],[15,"str"],[8,"Fn",1180],[3,"Global",1181],[3,"Box",1182],[3,"Choice",1179],[15,"bool"],[15,"tuple"],[15,"slice"],[8,"Send",1183],[8,"Sync",1183],[8,"Clone",1184],[15,"u64"],[8,"AsRef",1185],[8,"RngCore",1186],[4,"SerdeFormat",43],[15,"usize"],[3,"Formatter",1187],[6,"Result",1187],[6,"Result",1188],[8,"Read",1189],[4,"Result",1190],[3,"TypeId",1191],[8,"Write",1189],[3,"ExponentialBlocks",1192],[3,"UniformBlocks",1192],[3,"Chain",1193],[8,"IntoParallelIterator",72],[3,"Chunks",1194],[3,"Cloned",1195],[8,"ParallelIterator",72],[4,"Ordering",1196],[8,"FromParallelIterator",1197],[3,"Vec",1198],[3,"LinkedList",1199],[3,"Copied",1200],[8,"Consumer",1201],[8,"UnindexedConsumer",1201],[3,"Enumerate",1202],[3,"Filter",1203],[3,"FilterMap",1204],[4,"Option",1205],[3,"FlatMap",1206],[3,"FlatMapIter",1207],[3,"Flatten",1208],[3,"FlattenIter",1209],[3,"Scope",72],[3,"Error",1187],[3,"Fold",1210],[3,"FoldChunks",1211],[3,"FoldChunksWith",1212],[3,"FoldWith",1210],[3,"Inspect",1213],[3,"Interleave",1214],[3,"InterleaveShortest",1215],[3,"Intersperse",1216],[8,"FnOnce",1180],[3,"Map",1217],[3,"MapInit",1218],[3,"MapWith",1218],[3,"PanicFuse",1219],[3,"ChunkByMut",1220],[3,"ChunksExactMut",1221],[3,"ChunksMut",1221],[3,"RChunksExactMut",1222],[3,"RChunksMut",1222],[3,"SplitInclusiveMut",1223],[3,"SplitMut",1223],[8,"Default",1224],[8,"ParallelExtend",1197],[3,"Positions",1225],[8,"Product",1226],[3,"Rev",1227],[3,"Skip",1228],[3,"SkipAny",1229],[3,"SkipAnyWhile",1230],[3,"StepBy",1231],[8,"Sum",1226],[3,"Take",1232],[3,"TakeAny",1233],[3,"TakeAnyWhile",1234],[3,"TryFold",1235],[8,"Try",1236],[3,"TryFoldWith",1235],[8,"IndexedParallelIterator",72],[3,"Update",1237],[3,"WhileSome",1238],[3,"MaxLen",1239],[3,"MinLen",1239],[8,"ProducerCallback",1201],[3,"Zip",1240],[3,"ZipEq",1241],[3,"VerifyingKey",216],[8,"CurveAffine",6],[3,"ProvingKey",216],[4,"Error",216],[8,"Debug",1187],[3,"PinnedVerificationKey",216],[3,"Error",1188],[15,"u8"],[8,"SerdeCurveAffine",43],[3,"EvaluationDomain",369],[8,"EncodedChallenge",1023],[8,"Transcript",1023],[15,"u32"],[8,"Error",1242],[3,"String",1243],[3,"CompiledCircuit",1244],[8,"Params",539],[3,"ProverSingle",312],[3,"HashMap",1245],[8,"CommitmentScheme",539],[8,"Prover",539],[8,"TranscriptWrite",1023],[8,"MsmAccel",1246],[3,"Prover",312],[3,"H2cEngine",1247],[3,"PlonkEngine",1247],[3,"BatchVerifier",349],[6,"ParamsVerifierIPA",612],[8,"Verifier",539],[8,"VerificationStrategy",369],[8,"TranscriptRead",1023],[3,"Polynomial",369],[8,"Field",6],[8,"Basis",369],[3,"Coeff",369],[3,"LagrangeCoeff",369],[3,"ExtendedLagrangeCoeff",369],[8,"WithSmallOrderMulGroup",1248],[3,"PinnedEvaluationDomain",369],[4,"Error",369],[3,"RangeFull",1249],[3,"RangeFrom",1249],[8,"Iterator",1250],[8,"IntoIterator",1251],[3,"Rotation",1252],[3,"Blind",539],[8,"Sized",1183],[8,"PartialEq",1196],[3,"ParamsIPA",612],[3,"MSMIPA",659],[3,"IPACommitmentScheme",612],[3,"GuardIPA",721],[3,"ProverIPA",689],[3,"VerifierIPA",689],[3,"Accumulator",721],[3,"AccumulatorStrategy",721],[3,"SingleStrategy",721],[3,"ParamsKZG",798],[8,"Engine",1253],[3,"MSMKZG",849],[3,"KZGCommitmentScheme",798],[3,"DualMSM",849],[8,"MultiMillerLoop",1253],[3,"ProverGWC",898],[3,"ProverSHPLONK",898],[3,"VerifierGWC",898],[3,"VerifierSHPLONK",898],[3,"GuardKZG",963],[3,"AccumulatorStrategy",963],[3,"SingleStrategy",963],[3,"ChallengeScalar",1023],[3,"Blake2bRead",1023],[3,"Keccak256Read",1023],[3,"Blake2bWrite",1023],[3,"Keccak256Write",1023],[3,"Challenge255",1023],[15,"array"],[8,"CurveExt",6],[8,"CurveRead",43],[8,"SerdePrimeField",43],[8,"IntoParallelRefIterator",72],[8,"IntoParallelRefMutIterator",72],[8,"ParallelSliceMut",72],[8,"TryFoldAndReduce",72],[13,"NotEnoughRowsAvailable",309],[8,"Guard",369],[8,"ParamsProver",539],[8,"MSM",539],[8,"TranscriptWriterBuffer",1023],[8,"TranscriptReadBuffer",1023]]},\ -"halo2_frontend":{"doc":"","t":"AAADDIQIQDDDDQCDDIDDLLLLLLLLLLLLLLLLLLKLLLKLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMFKLLKLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLALLLLLLLLLLLLLLLLLLLLLLLLLLKLKLLLLLLLLLLLLLLLLLLLLLLLLLAKLLLLLLLLLLLLLLLLKLKLMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLCCAADDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLALLLLLLLLLLLLLLLLLNEIDNIIKLKLKLKKLLLLLLLLLLLKLKLLLLLLLKLLLLLLLLLLLLKLLLKLLLLLLLLLLLLLLLNNNECDDNNENNENDNNNNNDNELLLLLLLLLLLLLLLLLLLLLLLFLLLLLLLLAALLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLALLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMDDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLEDNNNDDDDDMMLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLFFLMLLLLLLLMLLLLLLLLMMMMMMLMMMMLLMMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDDDDLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLAAAAAAAENNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDIIIQDIQDQKKKLLLLLLLLLLLLAKLAKLLLLLLLLLKKLLLLLLKAKLLLLLLKLLLLLLLLLLKKKLLLKKKLLLLLLLLLLLLLLLKDDDDDDLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNDDNDNEDNDNDNINNDDNNDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMALLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDILLLLLLLLLLLLLLLLLLKLLLLLNNNENNNNNENNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMDLLLLLLLLLLLLLLLLLLLLDLLLLLLLLLLLLLLLLLLDLLLLLLLLLLLLLLLLLLLL","n":["circuit","dev","plonk","AssignedCell","Cell","Chip","Config","Layouter","Loaded","NamespacedLayouter","Region","RegionIndex","RegionStart","Root","SimpleFloorPlanner","SimpleTableLayouter","Table","TableLayouter","Value","WitnessCalculator","add","add","add","add","add","add","add","add","add","add","and_then","as_mut","as_ref","assert_if_known","assign","assign_advice","assign_advice_from_constant","assign_advice_from_instance","assign_cell","assign_cell","assign_cell","assign_fixed","assign_region","assign_region","assign_table","assign_table","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","calc","cell","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cloned","cloned","column","compile_circuit","config","constrain_constant","constrain_equal","constrain_instance","constrain_instance","copied","copied","copy_advice","cube","default","default_and_assigned","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","double","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","enable_selector","eq","equivalent","error_if_known_and","evaluate","evaluate","floor_planner","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_iter","get_challenge","get_challenge","get_root","get_root","init","init","init","init","init","init","init","init","init","init","instance_value","into","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","name_column","namespace","neg","new","new","pop_namespace","pop_namespace","push_namespace","push_namespace","region_index","row_offset","square","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","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_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","unknown","unzip","value","value_field","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","zip","V1","V1Pass","single_pass","v1","SimpleFloorPlanner","SingleChipLayouter","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_challenge","get_root","init","init","into","into","new","pop_namespace","push_namespace","synthesize","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","AssignmentPass","MeasurementPass","V1","V1Pass","assign_region","assign_table","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","constrain_instance","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","fmt","fmt","fmt","fmt","from","from","from","from","get_challenge","get_root","init","init","init","init","into","into","into","into","pop_namespace","push_namespace","strategy","synthesize","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","Column","RegionColumn","RegionLayouter","RegionShape","Selector","SyncDeps","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","equivalent","fmt","fmt","from","from","from","from","hash","init","init","instance_value","instance_value","into","into","name_column","name_column","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","Assigned","Assigned","CellNotAssigned","CellValue","CircuitCost","CircuitGates","CircuitLayout","ConstraintNotSatisfied","ConstraintPoisoned","FailureLocation","InRegion","InstanceCellNotAssigned","InstanceValue","Lookup","MockProver","OutsideRegion","Padding","Permutation","Poison","Shuffle","TracingFloorPlanner","Unassigned","VerifyFailure","advice","advice_values","annotate_column","assert_satisfied","assert_satisfied_at_rows","assign_advice","assign_fixed","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","circuit_dot_graph","clone","clone","clone","clone_into","clone_into","clone_into","collect","copy","cost","cost_model","cs","default","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","drop","drop","drop","emit","enable_selector","enter_region","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","exit_region","fill_from_row","fixed","fixed_values","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","get_challenge","init","init","init","init","init","init","init","init","instance","into","into","into","into","into","into","into","into","mark_equality_cells","metadata","pop_namespace","push_namespace","queries_to_csv","query_instance","render","run","selectors","show_equality_constraints","show_labels","synthesize","to_owned","to_owned","to_owned","to_string","to_string","to_string","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","usable_rows","value","verify","verify_at_rows","view_height","view_width","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","offset","region","row","cell_values","column","column","column","constraint","constraint","gate","gate","gate_offset","gate_offset","location","location","location","location","lookup_index","name","name","offset","region","region","row","shuffle_index","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","CommitmentScheme","CostOptions","IPA","KZGGWC","KZGSHPLONK","Lookup","ModelCircuit","Permutation","Poly","Shuffle","advice","advice_columns","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","cmp","column_queries","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","drop","drop","drop","drop","drop","drop","drop","eq","eq","equivalent","equivalent","fixed","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from_circuit_to_cost_model_options","from_circuit_to_model_circuit","from_str","gate_degree","init","init","init","init","init","init","init","instance","into","into","into","into","into","into","into","into_model_circuit","k","k","lookup","lookups","max_deg","max_degree","partial_cmp","permutation","permutations","point_sets","rotations","serialize","serialize","shuffle","shuffles","size","to_owned","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","vzip","vzip","vzip","vzip","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","clone","clone_into","clone_into","clone_into","clone_into","cmp","cmp","column_type","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","equivalent","equivalent","equivalent","equivalent","equivalent","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","hash","index","init","init","init","init","init","into","into","into","into","into","new","partial_cmp","partial_cmp","to_owned","to_owned","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","assigned","circuit","error","keygen","lookup","permutation","shuffle","Assigned","Rational","Trivial","Zero","add","add","add","add","add","add","add_assign","add_assign","borrow","borrow_mut","clone","clone_into","cube","denominator","deref","deref_mut","double","drop","eq","equivalent","evaluate","fmt","from","from","from","from","from","init","into","invert","is_zero_vartime","mul","mul","mul","mul","mul_assign","mul_assign","neg","neg","numerator","square","sub","sub","sub","sub","sub","sub","sub_assign","sub_assign","to_owned","try_from","try_into","type_id","vzip","Advice","Assignment","Circuit","ColumnType","Config","Fixed","FloorPlanner","FloorPlanner","Instance","Params","annotate_column","assign_advice","assign_fixed","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","compress_selectors","configure","configure_with_params","constraint_system","copy","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","enable_selector","enter_region","eq","eq","eq","equivalent","equivalent","equivalent","exit_region","expression","fill_from_row","fmt","fmt","fmt","from","from","from","get_challenge","hash","hash","hash","init","init","init","into","into","into","params","pop_namespace","push_namespace","query_cell","query_cell","query_cell","query_cell","query_instance","synthesize","synthesize","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","without_witnesses","Constraint","ConstraintSystem","Constraints","Gate","VirtualCell","VirtualCells","advice_column","advice_column_in","advice_column_phase","advice_queries","annotate_lookup_any_column","annotate_lookup_column","blinding_factors","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","challenge_phase","challenge_usable_after","clone","clone","clone","clone_into","clone_into","clone_into","column","complex_selector","compress_selectors","constants","constraint_name","create_gate","default","degree","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","directly_convert_selectors_to_fixed","drop","drop","drop","drop","drop","drop","enable_constant","enable_equality","fixed_column","fixed_queries","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","gates","general_column_annotations","get_any_query_index","init","init","init","init","init","init","instance_column","instance_queries","into","into","into","into","into","into","into_iter","lookup","lookup_any","lookup_table_column","lookups","minimum_rows","name","num_advice_columns","num_challenges","num_fixed_columns","num_instance_columns","num_selectors","permutation","phases","polynomials","queried_cells","queried_selectors","query_advice","query_any","query_challenge","query_fixed","query_instance","query_selector","rotation","selector","set_minimum_degree","shuffle","shuffles","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","unblinded_advice_column","unblinded_advice_column_in","vzip","vzip","vzip","vzip","vzip","vzip","with_selector","Advice","AdviceQuery","Challenge","Challenge","Column","Constant","Expression","FirstPhase","Fixed","FixedQuery","Instance","InstanceQuery","Negated","Phase","Product","Scaled","SecondPhase","Selector","Selector","Sum","TableColumn","ThirdPhase","add","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","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","column_index","column_index","column_index","column_index","column_index","column_index","column_type","column_type","complexity","cur","degree","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","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","enable","eq","eq","eq","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","evaluate","evaluate_lazy","expr","expr","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","hash","hash","hash","hash","identifier","index","index","index","index","index","index","index","index","init","init","init","init","init","init","init","init","init","init","init","inner","into","into","into","into","into","into","into","into","into","into","into","is_simple","mul","mul","neg","new","next","partial_cmp","partial_cmp","phase","prev","product","query_cell","query_cells","rot","rotation","rotation","rotation","rotation","rotation","rotation","sealed","square","sub","sum","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_sealed","to_sealed","to_sealed","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","type_id","type_id","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","vzip","vzip","Phase","SealedPhase","borrow","borrow_mut","clone","clone_into","cmp","deref","deref_mut","drop","eq","equivalent","fmt","from","hash","init","into","partial_cmp","prev","to_owned","to_sealed","to_sealed","try_from","try_into","type_id","vzip","BoundsFailure","ColumnNotAssigned","ColumnNotInPermutation","Error","NotEnoughColumnsForConstants","NotEnoughRowsAvailable","Other","OverwriteDefault","Synthesis","TableError","TableError","UnevenColumnLengths","UsedColumn","borrow","borrow","borrow_mut","borrow_mut","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","fmt","fmt","from","from","init","init","into","into","not_enough_rows_available","to_string","to_string","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","current_k","Argument","borrow","borrow_mut","clone","clone_into","deref","deref_mut","drop","fmt","from","init","input_expressions","into","name","new","table_expressions","to_owned","try_from","try_into","type_id","vzip","Argument","borrow","borrow_mut","clone","clone_into","default","deref","deref_mut","drop","fmt","from","get_columns","init","into","to_owned","try_from","try_into","type_id","vzip","Argument","borrow","borrow_mut","clone","clone_into","deref","deref_mut","drop","fmt","from","init","input_expressions","into","name","new","shuffle_expressions","to_owned","try_from","try_into","type_id","vzip"],"q":[[0,"halo2_frontend"],[3,"halo2_frontend::circuit"],[276,"halo2_frontend::circuit::floor_planner"],[280,"halo2_frontend::circuit::floor_planner::single_pass"],[317,"halo2_frontend::circuit::floor_planner::v1"],[382,"halo2_frontend::circuit::layouter"],[451,"halo2_frontend::dev"],[642,"halo2_frontend::dev::FailureLocation"],[645,"halo2_frontend::dev::VerifyFailure"],[667,"halo2_frontend::dev::cost"],[712,"halo2_frontend::dev::cost_model"],[858,"halo2_frontend::dev::metadata"],[978,"halo2_frontend::plonk"],[985,"halo2_frontend::plonk::assigned"],[1043,"halo2_frontend::plonk::circuit"],[1135,"halo2_frontend::plonk::circuit::constraint_system"],[1289,"halo2_frontend::plonk::circuit::expression"],[1562,"halo2_frontend::plonk::circuit::expression::sealed"],[1588,"halo2_frontend::plonk::error"],[1632,"halo2_frontend::plonk::error::Error"],[1633,"halo2_frontend::plonk::lookup"],[1654,"halo2_frontend::plonk::permutation"],[1673,"halo2_frontend::plonk::shuffle"],[1694,"ff"],[1695,"core::ops::arith"],[1696,"core::ops::function"],[1697,"core::result"],[1698,"core::ops::function"],[1699,"alloc::vec"],[1700,"core::option"],[1701,"core::clone"],[1702,"halo2_middleware::circuit"],[1703,"core::convert"],[1704,"core::marker"],[1705,"core::borrow"],[1706,"core::fmt"],[1707,"core::fmt"],[1708,"core::iter::traits::collect"],[1709,"core::ops::arith"],[1710,"core::cmp"],[1711,"std::collections::hash::set"],[1712,"core::hash"],[1713,"ff"],[1714,"core::cmp"],[1715,"plotters::drawing::area"],[1716,"plotters::drawing::area"],[1717,"core::ops::range"],[1718,"group::prime"],[1719,"serde::de"],[1720,"serde::ser"],[1721,"core::convert"],[1722,"halo2_middleware::circuit"]],"d":["Traits and structs for implementing circuit components.","Tools for developing circuits.","","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 table layouter that can be used to assign values to a …","A lookup table in the circuit.","Helper trait for implementing a custom Layouter.","A value that might exist within a circuit.","Witness calculator. Frontend function","","","","","","","","","","","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.","Obtains the inner value for assigning into the circuit.","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.","","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.","","","","","","","","","","","","","","","","","","","","","","Calculate witness at phase","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 column of this cell.","Compile a circuit. Runs configure and synthesize on the …","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<&V> to a Value<V> by copying the contents of …","Maps a Value<&mut V> to a Value<V> by copying the contents …","Copies the value to a given advice cell and constrains …","Cubes this field element.","","maps from a fixed column to a pair (default value, vector …","","","","","","","","","","","","","","","","","","","","","","","Doubles this field element.","","","","","","","","","","","","Enables a selector at the given offset.","","","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.","Returns the argument unchanged.","Takes each element in the Iterator: if it is …","Queries the value of the given challenge.","","Gets the “root” of this assignment, bypassing the …","","","","","","","","","","","","Returns the value of the instance column’s cell at …","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 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 …","","","","","","","","","","","Allows the circuit implementor to name/annotate a Column …","Enters into a namespace.","","Returns a new SimpleTableLayouter","Create a new WitnessCalculator","Exits out of the existing namespace.","","Creates a new (sub)namespace and enters into it.","","Identifies the region in which this cell resides.","The relative offset of this cell within its region.","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.","","","","","A simple FloorPlanner that performs minimal optimizations.","A Layouter for a single-chip circuit.","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","Calls U::from(self).","Calls U::from(self).","Creates a new single-chip layouter.","","","","","","","","","","","","Assigns the circuit.","Measures the circuit.","The version 1 FloorPlanner provided by halo2.","A single pass of the V1 layouter.","","","","","","","","","","","","","","","","","","","","","","","","","","","","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).","","","","","","","","","","","","","","","","","","","","","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","Intermediate trait requirements for RegionLayouter when …","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.","Assigns 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.","","","","","","Returns the value of the instance column’s cell at …","","Calls U::from(self).","Calls U::from(self).","Allows the circuit implementor to name/annotate a Column …","","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 that has been assigned a value.","Assigned instance value","A cell used in an active gate was not assigned to.","The value of a particular cell within the circuit.","","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.","An instance cell used in an active gate was not assigned …","Instance Value","A lookup input did not exist in its corresponding table.","A test prover for debugging circuits.","A location outside of a region.","Padding","A permutation did not preserve the original value of a …","A unique poisoned cell.","A shuffle input did not exist in its corresponding map.","A helper type that augments a FloorPlanner with tracing …","An unassigned cell.","The reasons why a particular circuit is not satisfied.","Returns the list of Advice Columns used within a …","Return the content of an advice column as assigned by the …","","Panics if the circuit being checked by this MockProver is …","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.","The cost estimator takes high-level parameters for a …","Returns the constraint system","","","","","","","","","","","","","","","","","","","","","","","","","","Emits this failure in pretty-printed format to stderr.","","","","","","","","","","","","","Returns the list of Fixed Columns used within a MockProver …","Return the content of a fixed column as assigned by the …","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","Returns the list of Instance Columns used within a …","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).","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 …","Returns the list of Selector Columns used within a …","Draws red lines between equality-constrained cells.","Sets the visibility of region labels.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the usable rows","Field value on the instance cell","Returns Ok(()) if this MockProver is satisfied, or a list …","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 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 index of the active gate.","The offset (relative to the start of the region) at which …","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 lookup is not satisfied.","The location at which the permutation is not satisfied.","The index of the lookup that is not satisfied. These …","The name of the lookup that is not satisfied.","The name of the lookup that is not satisfied.","The offset (relative to the start of the region) at which …","The region in which this cell should be assigned.","The region in which this gate was activated.","The absolute row at which this cell should be assigned.","The index of the lookup that is not satisfied. These …","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 …","","","","","","","","","","","","","Supported commitment schemes","Options to build a circuit specification to measure the …","Inner Product Argument commitment scheme","KZG with GWC19 mutli-open strategy","KZG with BDFG20 mutli-open strategy","Structure holding the Lookup related data for circuit …","High-level specifications of an abstract circuit.","Number of permutation enabled columns","Structure holding polynomial related data for benchmarks","Structure holding the Shuffle related data for circuit …","An advice column with the given rotations. May be repeated.","Number of advice columns.","","","","","","","","","","","","","","","","","","","","","","","","Number of distinct column queries across all gates.","","","","","","","","","","","","","","","","","","","","","","","","","","","","A fixed column with the given rotations. May be repeated.","","","","","","","","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.","Given a Plonk circuit, this function returns CostOptions","Given a Plonk circuit, this function returns a ModelCircuit","","Maximum degree of the custom gates.","","","","","","","","An instance column with the given rotations. May be …","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).","Convert CostOptions to ModelCircuit. The proof sizè is …","2^K bound on the number of rows.","Power-of-2 bound on the number of rows in the circuit.","A lookup over N columns with max input degree I and max …","Number of lookup arguments.","Maximum degree of the circuit.","Maximum degree of the constraint system.","","A permutation over N columns. May be repeated.","Equality constraint enabled columns.","Number of distinct sets of points in the multiopening …","Rotations for the given polynomial","","","A shuffle over N columns with max input degree I and max …","Number of shuffle arguments","Size of the proof for the circuit","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A column with an index and type","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 …","","","","","","","","","","","","","","","","","","","","","The type of the column.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","The index of the column.","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Implementation of permutation argument.","","A value assigned to a cell within a circuit.","A value stored as a fraction to enable batch inversion.","A value that does not require inversion to evaluate.","The field element zero.","","","","","","","","","","","","","Cubes this element.","Returns the denominator, if non-trivial.","","","Doubles this element.","","","","Evaluates this assigned value directly, performing an …","","","","","","Returns the argument unchanged.","","Calls U::from(self).","Inverts this assigned value (taking the inverse of zero to …","Returns true iff this element is zero.","","","","","","","","","Returns the numerator.","Squares this element.","","","","","","","","","","","","","","An advice column","This trait allows a Circuit to direct some backend to …","This is a trait that circuits provide implementations for …","A column type","This is a configuration object that stores things like …","A fixed column","A floor planning strategy for a circuit.","The floor planner used for this circuit. This is an …","An instance column","Optional circuit configuration parameters. Requires the …","Allows the developer to include an annotation for an …","Assign an advice column value (witness)","Assign a fixed value","","","","","","","","","","","","","","The circuit is given an opportunity to describe the exact …","The circuit is given an opportunity to describe the exact …","","Assign two cells to have the same value","","","","","","","","","","Enables a selector at the given row.","Creates a new region and enters into it.","","","","","","","Exits the current region.","","Fills a fixed column starting from the given row with …","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Queries the value of the given challenge.","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Returns a reference to the parameters that should be used …","Exits out of the existing namespace.","Creates a new (sub)namespace and enters into it.","Return expression from cell","","","","Queries the cell of an instance column at a particular …","Given the provided cs, synthesize the given circuit.","Given the provided cs, synthesize the circuit. The …","","","","","","","","","","","","","","","","Returns a copy of this circuit with no witness values …","An individual polynomial constraint.","This is a description of the circuit environment, such as …","A set of polynomial constraints with a common selector.","Gate","A “virtual cell” is a PLONK cell that has been queried …","Exposes the “virtual cells” that can be queried while …","Allocate a new advice column at FirstPhase","Allocate a new advice column in given phase","Returns phase of advice columns","Returns advice queries","Annotate an Instance column.","Annotate a Lookup column.","Compute the number of blinding factors necessary to …","","","","","","","","","","","","","Returns phase of challenges","Requests a challenge that is usable after the given phase.","","","","","","","","Allocate a new complex selector that can appear anywhere …","This will compress selectors together depending on their …","Returns constants","Returns the name of the constraint at index …","Creates a new gate.","","Compute the degree of the constraint system (the maximum …","","","","","","","","","","","","","Does not combine selectors and directly replaces them …","","","","","","","Enables this fixed column to be used for global constant …","Enable the ability to enforce equality over cells in this …","Allocate a new fixed column","Returns fixed queries","","","","","","","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 gates","Returns general column annotations","","","","","","","","Allocate a new instance column","Returns instance queries","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","Add a lookup argument for some input expressions and table …","Add a lookup argument for some input expressions and table …","Allocates a new fixed column that can be used in a lookup …","Returns lookup arguments","Returns the minimum necessary rows that need to exist in …","Returns the gate name.","Returns number of advice columns","Returns number of challenges","Returns number of fixed columns","Returns number of instance columns","Returns number of selectors","Returns permutation argument","Returns the list of phases","Returns constraints of this gate","","","Query an advice column at a relative position","Query an Any column at a relative position","Query a challenge","Query a fixed column at a relative position","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 …","Add a shuffle argument for some input expressions and …","Returns shuffle arguments","","","","","","","","","","","","","","","","","","","","","","Allocate a new unblinded advice column at FirstPhase","Allocate a new unblinded advice column in given phase. …","","","","","","","Constructs a set of constraints that are controlled by the …","This is an advice (witness) column queried at a certain …","Query of advice column at a certain relative location","A challenge squeezed from transcript after advice columns …","This is a challenge","A column with an index and type","This is a constant polynomial","Low-degree expression representing an identity that must …","First phase","This is a fixed column queried at a certain relative …","Query of fixed column at a certain relative location","This is an instance (external) column queried at a certain …","Query of instance column at a certain relative location","This is a negated polynomial","Phase of advice column","This is the product of two polynomials","This is a scaled polynomial","Second phase","A selector, representing a fixed boolean value per row of …","This is a virtual selector","This is the sum of two polynomials","A fixed column of a lookup table.","Third phase","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Column index","Column index","Column index","Column index","Column index","Column index","Type of this column.","","Approximate the computational complexity of this …","Return expression from column at the current row","Compute the degree of this polynomial","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Enable this selector at the given offset within the given …","","","","","","","","","","","","","","","","","Evaluate the polynomial using the provided closures to …","Evaluate the polynomial lazily using the provided closures …","Return expression from selector","Return Expression","","","","","","","","","","","","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.","","","","","Identifier for this expression. Expressions with identical …","Index of this column.","Returns index of this selector","Index of this challenge.","","Query index","Query index","Query index","","","","","","","","","","","","","Returns inner 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).","Is this selector “simple”? Simple selectors can only …","","","","","Return expression from column at the next row","","","Phase of this challenge.","Return expression from column at the previous row","","Return expression from column at a relative position","Make side effects","Return expression from column at the specified rotation","Rotation of this query","Rotation of this query","Rotation of this query","Rotation of this query","Rotation of this query","Rotation of this query","","Square this expression.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Phase of advice column","Sealed trait to help keep Phase private.","","","","","","","","","","","","Returns the argument unchanged.","","","Calls U::from(self).","","","","","","","","","","Out of bounds index passed to a backend","A TableColumn has not been assigned.","The instance sets up a copy constraint involving a column …","This is an error that could occur during circuit synthesis.","Circuit synthesis requires global constants, but circuit …","k is too small for the given circuit.","Generic error not covered by previous cases","Attempt to overwrite a default value","This is an error that can occur during synthesis of the …","This is an error that could occur during table synthesis.","An error relating to a lookup table.","A Table has columns of uneven lengths.","Attempt to assign a used TableColumn","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","Constructs an Error::NotEnoughRowsAvailable.","","","","","","","","","","","The current value of k being used.","Expressions involved in a lookup argument, with a name as …","","","","","","","","","Returns the argument unchanged.","","Returns input of this argument","Calls U::from(self).","Returns name of this argument","Constructs a new lookup argument.","Returns table of this argument","","","","","","A permutation argument.","","","","","","","","","","Returns the argument unchanged.","Returns columns that participate on the permutation …","","Calls U::from(self).","","","","","","Expressions involved in a shuffle argument, with a name as …","","","","","","","","","Returns the argument unchanged.","","Returns input of this argument","Calls U::from(self).","Returns name of this argument","Constructs a new shuffle argument.","Returns table of this argument","","","","",""],"i":[0,0,0,0,0,0,132,0,132,0,0,0,0,23,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,9,9,9,46,18,20,9,23,22,23,22,18,1,24,32,33,30,13,9,20,22,18,1,24,32,33,30,13,9,20,22,24,13,1,32,33,30,13,1,32,33,30,13,1,1,30,0,132,9,9,23,22,1,1,13,1,1,18,18,1,24,32,32,33,33,30,13,9,20,22,18,1,24,32,33,30,13,9,20,22,1,18,1,24,32,33,30,13,9,20,22,22,9,33,33,1,1,13,0,18,1,24,32,33,30,13,9,20,22,18,1,1,24,32,32,33,33,30,13,9,9,20,20,22,1,23,22,23,22,18,1,24,32,33,30,13,9,20,22,9,18,1,24,32,33,30,13,9,20,22,1,1,1,0,132,1,1,1,1,1,1,1,1,1,1,1,9,23,1,18,24,23,22,23,22,30,30,1,1,1,1,1,1,1,1,1,1,1,1,1,32,33,30,13,1,1,18,1,24,32,33,30,13,9,20,22,18,1,24,32,33,30,13,9,20,22,18,1,24,32,33,30,13,9,20,22,1,1,13,13,18,1,24,32,33,30,13,9,20,22,1,0,0,0,0,0,0,58,58,58,60,58,60,58,58,60,58,60,58,60,58,60,58,60,58,58,58,60,58,60,58,58,58,60,58,60,58,60,58,60,58,60,0,0,0,0,61,61,62,61,63,64,62,61,63,64,61,62,61,63,64,62,61,63,64,62,61,63,64,62,61,63,64,62,61,63,64,61,61,62,61,63,64,62,61,63,64,61,61,0,62,62,61,63,64,62,61,63,64,62,61,63,64,62,61,63,64,66,0,0,0,66,0,0,45,65,45,65,45,65,46,45,65,65,66,65,66,65,66,65,66,66,65,45,65,45,65,65,66,65,66,65,66,45,65,66,66,65,66,65,66,66,66,66,65,66,45,65,65,66,45,65,65,66,65,65,65,66,65,66,65,66,65,66,65,66,71,76,79,0,0,0,0,79,79,0,75,79,0,79,0,75,76,79,71,79,0,71,0,70,70,70,70,70,70,70,75,79,77,82,78,71,70,76,75,79,77,82,78,71,70,76,0,75,71,76,75,71,76,77,70,0,0,70,78,75,79,77,82,78,71,70,76,75,79,77,82,78,71,70,76,75,79,77,82,78,71,70,76,79,70,70,75,79,71,76,75,79,71,76,70,70,70,70,75,75,79,79,77,77,82,78,71,70,76,75,79,77,82,78,71,70,76,70,75,79,77,82,78,71,70,76,70,75,79,77,82,78,71,70,76,78,0,70,70,77,70,78,70,70,78,78,82,75,71,76,75,79,77,75,79,77,82,78,71,70,76,75,79,77,82,78,71,70,76,75,79,77,82,78,71,70,76,70,76,70,70,78,78,75,79,77,82,78,71,70,76,133,133,134,135,136,137,138,135,139,136,137,136,137,135,140,141,138,140,140,141,136,136,137,137,141,0,0,0,89,91,92,89,91,92,89,91,92,89,91,92,89,91,92,89,91,92,89,91,92,89,91,92,89,91,92,89,89,89,89,91,92,89,91,92,89,91,92,89,91,92,0,0,99,99,99,0,0,0,0,0,100,98,99,100,93,94,95,96,98,99,100,93,94,95,96,98,93,94,95,96,93,94,95,96,93,98,99,100,93,94,95,96,98,99,100,93,94,95,96,98,95,98,99,100,93,94,95,96,98,99,93,99,93,100,99,100,93,94,95,96,98,99,100,93,94,95,96,98,0,0,93,100,99,100,93,94,95,96,98,100,99,100,93,94,95,96,98,100,100,98,100,98,98,100,93,100,98,98,93,95,98,100,98,98,93,94,95,96,99,100,93,94,95,96,98,99,100,93,94,95,96,98,99,100,93,94,95,96,98,99,100,93,94,95,96,98,0,0,0,0,0,103,107,104,105,106,103,107,104,105,106,103,104,105,106,103,104,105,106,103,107,103,103,107,104,105,106,103,107,104,105,106,103,107,104,105,106,103,107,104,105,106,103,107,104,105,106,103,103,107,107,104,104,105,105,106,106,103,103,107,107,107,107,104,104,105,105,106,106,106,106,106,103,103,103,107,104,105,106,103,107,104,105,106,103,103,107,103,104,105,106,103,107,104,105,106,103,107,104,105,106,103,107,104,105,106,103,107,104,105,106,103,107,104,105,106,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,29,0,0,29,0,29,19,19,19,10,21,16,10,21,16,10,21,16,10,21,16,0,29,29,0,19,10,21,16,10,21,16,10,21,16,19,19,10,21,16,10,21,16,19,0,19,10,21,16,10,21,16,19,10,21,16,10,21,16,10,21,16,29,19,19,121,10,21,16,19,83,29,10,21,16,10,21,16,10,21,16,10,21,16,10,21,16,29,0,0,0,0,0,0,37,37,37,37,37,37,37,110,115,116,114,37,117,110,115,116,114,37,117,37,37,110,114,37,110,114,37,110,37,37,37,114,37,37,37,110,115,116,114,37,117,110,115,116,114,37,117,37,110,115,116,114,37,117,37,37,37,37,110,115,116,114,37,117,110,110,115,115,115,116,114,37,117,37,37,37,110,115,116,114,37,117,37,37,110,115,116,114,37,117,116,37,37,37,37,37,114,37,37,37,37,37,37,37,114,114,114,117,117,117,117,117,117,110,37,37,37,37,110,114,37,110,115,116,114,37,117,110,115,116,114,37,117,110,115,116,114,37,117,37,37,110,115,116,114,37,117,116,112,0,0,112,0,112,0,0,112,0,112,0,112,0,112,112,0,0,112,112,0,0,112,11,125,126,127,41,122,123,124,17,49,112,11,125,126,127,41,122,123,124,17,49,112,11,41,122,123,124,17,49,112,11,41,122,123,124,17,49,112,11,17,122,123,124,122,123,124,11,11,112,11,112,11,125,126,127,41,122,123,124,17,49,112,11,125,126,127,41,122,123,124,17,49,112,11,125,126,127,41,122,123,124,17,49,112,41,11,41,122,123,124,17,49,112,11,41,122,123,124,17,49,112,112,112,41,49,11,125,126,127,41,122,123,124,17,49,112,11,11,11,11,11,125,126,127,41,122,123,124,17,49,49,112,11,41,17,49,112,11,41,49,11,122,123,124,49,11,125,126,127,41,122,123,124,17,49,112,17,11,125,126,127,41,122,123,124,17,49,112,41,112,112,112,11,11,11,17,49,11,112,11,112,11,122,123,124,122,123,124,0,112,112,112,11,41,122,123,124,17,49,112,125,126,127,11,11,11,11,125,126,127,41,122,123,124,17,49,112,11,125,126,127,41,122,123,124,17,49,112,11,125,126,127,41,122,123,124,17,49,112,11,125,126,127,41,122,123,124,17,49,112,0,0,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,142,130,130,130,130,130,7,131,7,0,7,7,7,131,7,0,7,131,131,7,131,7,131,7,131,7,131,7,131,7,7,131,131,7,131,7,131,7,131,7,7,131,7,131,7,131,7,131,7,131,143,0,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,0,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,0,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[1,[-1]],[1,[-1]]],[],[]],[[[1,[-1]],[1,[-1]]],[],[]],[[[1,[[2,[-1]]]],-1],[],3],[[[1,[-1]],[1,[-1]]],[],[]],[[[1,[-1]],[1,[-1]]],[],[]],[[[1,[[2,[-1]]]],-1],[],3],[[[1,[[2,[-1]]]],[1,[-1]]],[],3],[[[1,[-1]],[1,[-1]]],[],[]],[[[1,[[2,[-1]]]],[1,[-1]]],[],3],[[[1,[-1]],[1,[-1]]],[],4],[[[1,[-1]],-2],[[1,[-3]]],[],5,[]],[[[1,[-1]]],[[1,[-1]]],[]],[[[1,[-1]]],[[1,[-1]]],[]],[[[1,[-1]],-2],6,[],5],[[[1,[-1]]],[[8,[-1,7]]],[]],[[[9,[-1]],-2,[11,[10]],12,-3],[[8,[[13,[-4,-1]],7]]],3,14,15,[]],[[[9,[-1]],-2,[11,[10]],12,-3],[[8,[[13,[-3,-1]],7]]],3,14,[]],[[[9,[-1]],-2,[11,[16]],12,[11,[10]],12],[[8,[[13,[-1,-1]],7]]],3,14],[[-1,14,17,12,15],[[8,[6,7]]],[]],[[[18,[-1,-2]],14,17,12,15],[[8,[6,7]]],3,[[19,[-1]]]],[[[20,[-1]],-2,17,12,-3],[[8,[6,7]]],3,14,15],[[[9,[-1]],-2,[11,[21]],12,-3],[[8,[[13,[-4,-1]],7]]],3,14,15,[]],[[-1,-2,-3],[[8,[-4,7]]],[],14,15,[]],[[[22,[-1,-2]],-3,-4],[[8,[-5,7]]],3,[[23,[-1]]],14,15,[]],[[-1,-2,-3],[[8,[6,7]]],[],14,15],[[[22,[-1,-2]],-3,-4],[[8,[6,7]]],3,[[23,[-1]]],14,15],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[24,[-1,-2]],25,[26,[12,-1]]],[[8,[[27,[[28,[[27,[-1]]]]]],7]]],3,[[29,[-1]]]],[[[13,[-1,-2]]],30,[],3],[[[1,[-1]]],[[1,[-1]]],31],[32,32],[33,33],[30,30],[[[13,[-1,-2]]],[[13,[-1,-2]]],31,[31,3]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[[1,[-1]]],[[1,[-1]]],31],[[[1,[-1]]],[[1,[-1]]],31],0,[[34,-2,35],[[8,[[6,[[36,[-1]],[37,[-1]]]],7]]],3,[[29,[-1]]]],[-1,[],[]],[[[9,[-1]],30,-2],[[8,[6,7]]],3,[[38,[[2,[-1]]]]]],[[[9,[-1]],30,30],[[8,[6,7]]],3],[[-1,30,[11,[16]],12],[[8,[6,7]]],[]],[[[22,[-1,-2]],30,[11,[16]],12],[[8,[6,7]]],3,[[23,[-1]]]],[[[1,[-1]]],[[1,[-1]]],39],[[[1,[-1]]],[[1,[-1]]],39],[[[13,[-1,-2]],-3,[9,[-2]],[11,[10]],12],[[8,[[13,[-1,-2]],7]]],31,3,14],[[[1,[-2]]],[[1,[[2,[-1]]]]],3,[[40,[[2,[-1]]]]]],[[],[[1,[-1]]],[]],0,[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[32],[33],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[[[1,[-2]]],[[1,[[2,[-1]]]]],3,[[40,[[2,[-1]]]]]],[12,6],[12,6],[12,6],[12,6],[12,6],[12,6],[12,6],[12,6],[12,6],[[[22,[-1,-2]]],6,3,[[23,[-1]]]],[12,6],[[[9,[-1]],-2,41,12],[[8,[6,7]]],3,14],[[33,33],35],[[-1,-2],35,[],[]],[[[1,[-1]],-2],[[8,[6,7]]],[],5],[[[1,[[2,[-1]]]]],[[1,[-1]]],3],[[[13,[[2,[-1]],-1]]],[[13,[-1,-1]]],3],0,[[[18,[-1,-2]],42],43,3,[[19,[-1]]]],[[[1,[-1]],42],43,44],[[[24,[-1,-2]],42],43,[44,3],[44,[29,[-1]]]],[[32,42],43],[[33,42],43],[[30,42],43],[[[13,[-1,-2]],42],43,44,[44,3]],[[[9,[-1]],42],43,[44,3]],[[[20,[-1]],42],43,[44,3]],[[[22,[-1,-2]],42],43,[44,3],[44,[23,[-1]]]],[-1,-1,[]],[[[1,[-1]]],[[1,[[2,[-1]]]]],3],[-1,-1,[]],[-1,-1,[]],[12,32],[-1,-1,[]],[-1,-1,[]],[12,33],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[45,[[9,[-1]]],3],[46,[[20,[-1]]],3],[-1,-1,[]],[-1,-1,[]],[-1,[[1,[-3]]],47,[],[[48,[-2]]]],[[-1,49],[[1,[-2]]],[],[]],[[[22,[-1,-2]],49],[[1,[-1]]],3,[[23,[-1]]]],[-1,[],[]],[[[22,[-1,-2]]],[],3,[[23,[-1]]]],[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[[[9,[-1]],[11,[16]],12],[[8,[[1,[-1]],7]]],3],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[1,[-2]]],[[1,[[2,[-1]]]]],3,[[38,[[2,[-1]]]]]],[[[1,[-2]]],[[1,[[2,[-1]]]]],3,[[40,[[2,[-1]]]]]],[-1,[[1,[-1]]],[]],0,[-1,[],[]],[[[1,[-1]],-2],[[1,[-3]]],[],5,[]],[[[1,[-1]],[1,[-1]]],[],50],[[[1,[[2,[-1]]]],-1],[],3],[[[1,[[2,[-1]]]],-1],[],3],[[[1,[-1]],[1,[-1]]],[],[]],[[[1,[-1]],[1,[-1]]],[],[]],[[[1,[[2,[-1]]]],[1,[-1]]],[],3],[[[1,[-1]],[1,[-1]]],[],[]],[[[1,[-1]],[1,[-1]]],[],[]],[[[1,[-1]],[1,[-1]]],[],[]],[[[1,[[2,[-1]]]],[1,[-1]]],[],3],[[[9,[-1]],-2,-3],6,3,14,[[38,[[11,[51]]]]]],[[-1,-2],[[22,[-3]]],[],5,[]],[[[1,[-1]]],[],52],[[-2,[53,[17]]],[[18,[-1,-2]]],3,[[19,[-1]]]],[[34,-2,[37,[-1]],[53,[[53,[-1]]]]],[[24,[-1,-2]]],3,[[29,[-1]]]],[[-1,[28,[54]]],6,[]],[[[22,[-1,-2]],[28,[54]]],6,3,[[23,[-1]]]],[[-1,-2],6,[],5],[[[22,[-1,-2]],-3],6,3,[[23,[-1]]],5],0,0,[[[1,[-2]]],[[1,[[2,[-1]]]]],3,[[40,[[2,[-1]]]]]],[[[1,[-1]],[1,[-1]]],[],[]],[[[1,[-1]],[1,[-1]]],[],55],[[[1,[-1]],[1,[-1]]],[],[]],[[[1,[[2,[-1]]]],[1,[-1]]],[],3],[[[1,[[2,[-1]]]],-1],[],3],[[[1,[[2,[-1]]]],-1],[],3],[[[1,[-1]],[1,[-1]]],[],[]],[[[1,[-1]],[1,[-1]]],[],[]],[[[1,[-1]],[1,[-1]]],[],[]],[[[1,[[2,[-1]]]],[1,[-1]]],[],3],[[[1,[-1]]],[[1,[[2,[-2]]]]],[],3],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[1,[[56,[-1]]]]],[[56,[[1,[-1]]]]],39],[[[1,[-1]],12],[[27,[[1,[-2]]]]],47,[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[[],[[1,[-1]]],[]],[[[1,[[6,[-1,-2]]]]],[[6,[[1,[-1]],[1,[-2]]]]],[],[]],[[[13,[-1,-2]]],[[1,[-1]]],[],3],[[[13,[-1,-2]]],[[1,[[2,[-2]]]]],[],3],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[1,[-1]],[1,[-2]]],[[1,[[6,[-1,-2]]]]],[],[]],0,0,0,0,0,0,[[[58,[-1,-2]],-3,-4],[[8,[-5,7]]],3,[[19,[-1]],59],14,15,[]],[[[58,[-1,-2]],-3,-4],[[8,[6,7]]],3,[[19,[-1]],59],14,15],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[58,[-1,-2]],30,[11,[16]],12],[[8,[6,7]]],3,[[19,[-1]],59]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,6],[12,6],[[[58,[-1,-2]],42],43,3,[[19,[-1]]]],[[60,42],43],[-1,-1,[]],[-1,-1,[]],[[[58,[-1,-2]],49],[[1,[-1]]],3,[[19,[-1]],59]],[[[58,[-1,-2]]],[],3,[[19,[-1]],59]],[[],12],[[],12],[-1,-2,[],[]],[-1,-2,[],[]],[[-2,[27,[[11,[21]]]]],[[8,[[58,[-1,-2]],7]]],3,[[19,[-1]]]],[[[58,[-1,-2]],[28,[54]]],6,3,[[19,[-1]],59]],[[[58,[-1,-2]],-3],6,3,[[19,[-1]],59],5],[[-2,-3,[27,[[11,[21]]]]],[[8,[6,7]]],3,[[19,[-1]],59],[[29,[-1]]]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,57,[]],[-1,57,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,[[[61,[-1,-2]],-3,-4],[[8,[-5,7]]],3,[[19,[-1]],59],14,15,[]],[[[61,[-1,-2]],-3,-4],[[8,[6,7]]],3,[[19,[-1]],59],14,15],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[61,[-1,-2]],30,[11,[16]],12],[[8,[6,7]]],3,[[19,[-1]],59]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,6],[12,6],[12,6],[12,6],[[62,42],43],[[[61,[-1,-2]],42],43,[44,3],[44,[19,[-1]]]],[[63,42],43],[[[64,[-1,-2]],42],43,[44,3],[44,[19,[-1]]]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[61,[-1,-2]],49],[[1,[-1]]],3,[[19,[-1]],59]],[[[61,[-1,-2]]],[],3,[[19,[-1]],59]],[[],12],[[],12],[[],12],[[],12],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[61,[-1,-2]],[28,[54]]],6,3,[[19,[-1]],59]],[[[61,[-1,-2]],-3],6,3,[[19,[-1]],59],5],0,[[-2,-3,[27,[[11,[21]]]]],[[8,[6,7]]],3,[[19,[-1]],59],[[29,[-1]]]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,[[-1,14,[11,[10]],12,15],[[8,[30,7]]],[]],[[65,14,[11,[10]],12,15],[[8,[30,7]]]],[[-1,14,[11,[10]],12,[2,[-2]]],[[8,[30,7]]],[],[]],[[65,14,[11,[10]],12,[2,[-1]]],[[8,[30,7]]],3],[[-1,14,[11,[16]],12,[11,[10]],12],[[8,[[6,[30,[1,[-2]]]],7]]],[],[]],[[65,14,[11,[16]],12,[11,[10]],12],[[8,[[6,[30,[1,[-1]]]],7]]],3],[[-1,14,17,12,15],[[8,[6,7]]],[]],[[-1,14,[11,[21]],12,15],[[8,[30,7]]],[]],[[65,14,[11,[21]],12,15],[[8,[30,7]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[65,65],[66,66],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[66,66],67],[65,[[68,[66]]]],[[-1,30,[2,[-2]]],[[8,[6,7]]],[],[]],[[65,30,[2,[-1]]],[[8,[6,7]]],3],[[-1,30,30],[[8,[6,7]]],[]],[[65,30,30],[[8,[6,7]]]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,6],[12,6],[[-1,14,41,12],[[8,[6,7]]],[]],[[65,14,41,12],[[8,[6,7]]]],[[66,66],35],[[-1,-2],35,[],[]],[[65,42],43],[[66,42],43],[-1,-1,[]],[-1,-1,[]],[41,66],[[[11,[51]]],66],[[66,-1],6,69],[[],12],[[],12],[[-1,[11,[16]],12],[[8,[[1,[-2]],7]]],[],[]],[[65,[11,[16]],12],[[8,[[1,[-1]],7]]],3],[-1,-2,[],[]],[-1,-2,[],[]],[[-1,14,[11,[51]]],6,[]],[[65,14,[11,[51]]],6],[32,65],[[66,66],[[28,[67]]]],[65,32],[65,12],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,57,[]],[-1,57,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[70,[-1]]],[[27,[[27,[[71,[-1]]]]]]],[72,73]],[[[70,[-1]],[11,[10]]],[[53,[[71,[-1]]]]],[72,73]],[[[70,[-1]],-2,[11,[51]]],6,3,5],[[[70,[-1]]],6,[72,73]],[[[70,[-1]],-2,-2],6,[72,73],[31,74]],[[[70,[-1]],-2,[11,[10]],12,-3],[[8,[6,7]]],3,5,5],[[[70,[-1]],-2,[11,[21]],12,-3],[[8,[6,7]]],3,5,5],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-2,54,3,[[29,[-1]]]],[75,75],[[[71,[-1]]],[[71,[-1]]],[31,3]],[[[76,[-1]]],[[76,[-1]]],[31,3]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[],77],[[[70,[-1]],[11,[51]],12,[11,[51]],12],[[8,[6,7]]],3],0,0,[[[70,[-1]]],[[37,[-1]]],[72,73]],[[],78],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,6],[12,6],[12,6],[12,6],[12,6],[12,6],[12,6],[12,6],[[79,[70,[-1]]],6,3],[[[70,[-1]],-2,41,12],[[8,[6,7]]],3,5],[[[70,[-1]],-2],6,3,5],[[75,75],35],[[79,79],35],[[[71,[-1]],[71,[-1]]],35,[80,3]],[[[76,[-1]],[76,[-1]]],35,[80,3]],[[-1,-2],35,[],[]],[[-1,-2],35,[],[]],[[-1,-2],35,[],[]],[[-1,-2],35,[],[]],[[[70,[-1]]],6,3],[[[70,[-1]],[11,[21]],12,[1,[[2,[-1]]]]],[[8,[6,7]]],3],[[[70,[-1]]],[[27,[[27,[[71,[-1]]]]]]],[72,73]],[[[70,[-1]],[11,[21]]],[[53,[[71,[-1]]]]],[72,73]],[[75,42],43],[[75,42],43],[[79,42],43],[[79,42],43],[[77,42],[[8,[6,81]]]],[[77,42],43],[[[82,[-1]],42],43,[44,83]],[[78,42],43],[[[71,[-1]],42],43,[44,3]],[[[70,[-1]],42],43,[44,3]],[[[76,[-1]],42],43,[44,3]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[70,[-1]],49],[[1,[-1]]],3],[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[[[70,[-1]]],[[27,[[27,[[76,[-1]]]]]]],[72,73]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[78,35],78],0,[[[70,[-1]],[28,[54]]],6,3],[[[70,[-1]],-2],6,3,5],[77,54],[[[70,[-1]],[11,[16]],12],[[8,[[1,[-1]],7]]],3],[[78,34,-2,[85,[-3,84]]],[[8,[6,86]]],3,[[29,[-1]]],87],[[34,-2,[27,[[27,[-1]]]]],[[8,[[70,[-1]],7]]],[72,73],[[29,[-1]]]],[[[70,[-1]]],[[27,[[27,[35]]]]],[72,73]],[[78,35],78],[[78,35],78],[[-2,-3,[27,[[11,[21]]]]],[[8,[6,7]]],3,[[19,[-1]],59],[[29,[-1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[[[70,[-1]]],[[88,[12]]],[72,73]],[[[76,[-1]]],-1,3],[[[70,[-1]]],[[8,[6,[27,[79]]]]],[72,73]],[[[70,[-1]],-2,-2],[[8,[6,[27,[79]]]]],[72,73],[31,74]],[[78,[88,[12]]],78],[[78,[88,[12]]],78],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,6],[12,6],[12,6],[[[89,[-1,-2]],42],43,[44,90],[44,29]],[[[91,[-1]],42],43,[44,90]],[[[92,[-1]],42],43,[44,90]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],12],[[],12],[[],12],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[89,[-1,-2]]],[[91,[-1]]],90,29],[[34,-1],[[89,[-2,-1]]],29,90],[[[89,[-1,-2]],12],[[92,[-1]]],90,29],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[93,93],[94,94],[95,95],[96,96],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[93,93],67],0,[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[-1,[[8,[95]]],97],[-1,[[8,[98]]],97],[12,6],[12,6],[12,6],[12,6],[12,6],[12,6],[12,6],[[99,99],35],[[93,93],35],[[-1,-2],35,[],[]],[[-1,-2],35,[],[]],0,[[99,42],43],[[100,42],43],[[93,42],43],[[94,42],43],[[95,42],43],[[96,42],43],[[98,42],43],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[34,-2,[27,[[27,[-1]]]]],100,[73,3,72],[[29,[-1]]]],[[34,-2,[27,[[27,[-1]]]],99],98,[73,3,72],[[29,[-1]]]],[101,[[8,[93]]]],0,[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[100,99],98],0,0,0,0,0,0,[[93,93],[[28,[67]]]],0,0,0,0,[[95,-1],8,102],[[98,-1],8,102],0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[103,103],[104,104],[105,105],[106,106],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[103,103],67],[[107,107],67],0,[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,6],[12,6],[12,6],[12,6],[12,6],[[103,103],35],[[107,107],35],[[104,104],35],[[105,105],35],[[106,106],35],[[-1,-2],35,[],[]],[[-1,-2],35,[],[]],[[-1,-2],35,[],[]],[[-1,-2],35,[],[]],[[-1,-2],35,[],[]],[[103,42],[[8,[6,81]]]],[[103,42],[[8,[6,81]]]],[[107,42],43],[[107,42],43],[[104,42],43],[[104,42],43],[[105,42],43],[[105,42],43],[[106,42],43],[[106,42],43],[[[11,[51]]],103],[-1,-1,[]],[[[6,[-1,103,108]]],107,[[109,[101]]]],[[[6,[103,108]]],107],[110,107],[-1,-1,[]],[-1,-1,[]],[[[6,[12,-1]]],104,[[109,[101]]]],[[[6,[104,12,-1]]],105,[[109,[101]]]],[-1,-1,[]],[-1,-1,[]],[[[6,[12,54,[26,[103,54]]]]],106],[[[6,[12,54]]],106],[[[6,[12,101]]],106],[[[6,[12,101,[26,[103,54]]]]],106],[[103,-1],6,69],0,[[],12],[[],12],[[],12],[[],12],[[],12],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[51,12],103],[[103,103],[[28,[67]]]],[[107,107],[[28,[67]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,[[[2,[-1]],[2,[-1]]],[[2,[-1]]],3],[[[2,[-1]],[2,[-1]]],[[2,[-1]]],3],[[[2,[-1]],[2,[-1]]],[[2,[-1]]],3],[[[2,[-1]],[2,[-1]]],[[2,[-1]]],3],[[[2,[-1]],-1],[[2,[-1]]],3],[[[2,[-1]],-1],[[2,[-1]]],3],[[[2,[-1]],[2,[-1]]],6,3],[[[2,[-1]],[2,[-1]]],6,3],[-1,-2,[],[]],[-1,-2,[],[]],[[[2,[-1]]],[[2,[-1]]],31],[[-1,-2],6,[],[]],[[[2,[-1]]],[[2,[-1]]],3],[[[2,[-1]]],[[28,[-1]]],3],[12,-1,[]],[12,-1,[]],[[[2,[-1]]],[[2,[-1]]],3],[12,6],[[[2,[-1]],[2,[-1]]],35,3],[[-1,-2],35,[],[]],[[[2,[-1]]],-1,3],[[[2,[-1]],42],43,44],[[[2,[-1]]],[[2,[-1]]],3],[-1,[[2,[-1]]],3],[[[6,[-1,-1]]],[[2,[-1]]],3],[-1,[[2,[-1]]],3],[-1,-1,[]],[[],12],[-1,-2,[],[]],[[[2,[-1]]],[[2,[-1]]],3],[[[2,[-1]]],35,3],[[[2,[-1]],[2,[-1]]],[[2,[-1]]],3],[[[2,[-1]],[2,[-1]]],[[2,[-1]]],3],[[[2,[-1]],-1],[[2,[-1]]],3],[[[2,[-1]],-1],[[2,[-1]]],3],[[[2,[-1]],[2,[-1]]],6,3],[[[2,[-1]],[2,[-1]]],6,3],[[[2,[-1]]],[],3],[[[2,[-1]]],[],3],[[[2,[-1]]],-1,3],[[[2,[-1]]],[[2,[-1]]],3],[[[2,[-1]],-1],[[2,[-1]]],3],[[[2,[-1]],-1],[[2,[-1]]],3],[[[2,[-1]],[2,[-1]]],[[2,[-1]]],3],[[[2,[-1]],[2,[-1]]],[[2,[-1]]],3],[[[2,[-1]],[2,[-1]]],[[2,[-1]]],3],[[[2,[-1]],[2,[-1]]],[[2,[-1]]],3],[[[2,[-1]],[2,[-1]]],6,3],[[[2,[-1]],[2,[-1]]],6,3],[-1,-2,[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,57,[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,[[-1,-2,[11,[51]]],6,[],5],[[-1,-2,[11,[10]],12,-3],[[8,[6,7]]],[],5,5],[[-1,-2,[11,[21]],12,-3],[[8,[6,7]]],[],5,5],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[10,10],[21,21],[16,16],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],0,[[[37,[-1]]],[],[]],[[[37,[-1]]],[],[]],0,[[-1,[11,[51]],12,[11,[51]],12],[[8,[6,7]]],[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,6],[12,6],[12,6],[[-1,-2,41,12],[[8,[6,7]]],[],5],[[-1,-2],6,[],5],[[10,10],35],[[21,21],35],[[16,16],35],[[-1,-2],35,[],[]],[[-1,-2],35,[],[]],[[-1,-2],35,[],[]],[-1,6,[]],0,[[-1,[11,[21]],12,[1,[[2,[-2]]]]],[[8,[6,7]]],[],[]],[[10,42],43],[[21,42],43],[[16,42],43],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[-1,49],[[1,[-2]]],[],[]],[[10,-1],6,69],[[21,-1],6,69],[[16,-1],6,69],[[],12],[[],12],[[],12],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[],[]],[[-1,[28,[54]]],6,[]],[[-1,-2],6,[],5],[[-1,12,111],[[112,[-2]]],[],3],[[10,12,111],[[112,[-1]]],3],[[21,12,111],[[112,[-1]]],3],[[16,12,111],[[112,[-1]]],3],[[-1,[11,[16]],12],[[8,[[1,[-2]],7]]],[],[]],[[-2,-3,[27,[[11,[21]]]]],[[8,[6,7]]],3,[[19,[-1]],59],[[29,[-1]]]],[[-1,-3],[[8,[6,7]]],[],[],[[23,[-2]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-1,[]],0,0,0,0,0,0,[[[37,[-1]]],[[11,[10]]],3],[[[37,[-1]],-2],[[11,[10]]],3,113],[[[37,[-1]]],[[27,[25]]],3],[[[37,[-1]]],[[27,[[6,[[11,[10]],111]]]]],3],[[[37,[-1]],-2,-3],6,3,[[38,[[11,[51]]]]],14],[[[37,[-1]],17,-2],6,3,14],[[[37,[-1]]],12,3],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[37,[-1]]],[[27,[25]]],3],[[[37,[-1]],-2],49,3,113],[110,110],[[[114,[-1]]],[[114,[-1]]],[31,3]],[[[37,[-1]]],[[37,[-1]]],[31,3]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],0,[[[37,[-1]]],41,3],[[[37,[-1]],[27,[[27,[35]]]]],[[6,[[37,[-1]],[27,[[27,[-1]]]]]]],3],[[[37,[-1]]],[[27,[[11,[21]]]]],3],[[[114,[-1]],12],101,3],[[[37,[-1]],-2,-3],6,3,[[109,[101]]],5],[[],[[37,[-1]]],3],[[[37,[-1]]],12,3],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[[[37,[-1]],[27,[[27,[35]]]]],[[6,[[37,[-1]],[27,[[27,[-1]]]]]]],3],[12,6],[12,6],[12,6],[12,6],[12,6],[12,6],[[[37,[-1]],[11,[21]]],6,3],[[[37,[-1]],-2],6,3,[[38,[[11,[51]]]]]],[[[37,[-1]]],[[11,[21]]],3],[[[37,[-1]]],[[27,[[6,[[11,[21]],111]]]]],3],[[110,42],43],[[[115,[-1]],42],43,[44,3]],[[[116,[-1,-2,-3]],42],43,[44,3],[44,[38,[[115,[-1]]]]],[44,47]],[[[114,[-1]],42],43,[44,3]],[[[37,[-1]],42],43,[44,3]],[[[117,[-1]],42],43,[44,3]],[-1,-1,[]],[[[6,[-1,111]]],110,[[38,[[11,[51]]]]]],[[[6,[-1,[112,[-2]]]]],[[115,[-2]]],[[109,[101]]],3],[[[112,[-1]]],[[115,[-1]]],3],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[37,[-1]]],[[27,[[114,[-1]]]]],3],[[[37,[-1]]],[[26,[103,54]]],3],[[[37,[-1]],[11,[51]],111],12,3],[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[[[37,[-1]]],[[11,[16]]],3],[[[37,[-1]]],[[27,[[6,[[11,[16]],111]]]]],3],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[116,[-1,-2,-3]]],[],3,[[38,[[115,[-1]]]]],47],[[[37,[-1]],-2,-3],12,3,[[109,[101]]],5],[[[37,[-1]],-2,-3],12,3,[[109,[101]]],5],[[[37,[-1]]],17,3],[[[37,[-1]]],[[27,[[118,[-1]]]]],3],[[[37,[-1]]],12,3],[[[114,[-1]]],101,3],[[[37,[-1]]],12,3],[[[37,[-1]]],12,3],[[[37,[-1]]],12,3],[[[37,[-1]]],12,3],[[[37,[-1]]],12,3],[[[37,[-1]]],119,3],[[[37,[-1]]],[[0,[74]]],3],[[[114,[-1]]],[[53,[[112,[-1]]]]],3],[[[114,[-1]]],[[53,[110]]],3],[[[114,[-1]]],[[53,[41]]],3],[[[117,[-1]],[11,[10]],111],[[112,[-1]]],3],[[[117,[-1]],-2,111],[[112,[-1]]],3,[[38,[[11,[51]]]]]],[[[117,[-1]],49],[[112,[-1]]],3],[[[117,[-1]],[11,[21]],111],[[112,[-1]]],3],[[[117,[-1]],[11,[16]],111],[[112,[-1]]],3],[[[117,[-1]],41],[[112,[-1]]],3],0,[[[37,[-1]]],41,3],[[[37,[-1]],12],6,3],[[[37,[-1]],-2,-3],12,3,[[109,[101]]],5],[[[37,[-1]]],[[27,[[120,[-1]]]]],3],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[[[37,[-1]]],[[11,[10]]],3],[[[37,[-1]],-2],[[11,[10]]],3,113],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[112,[-1]],-2],[[116,[-1,-3,-2]]],3,47,[[38,[[115,[-1]]]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[112,[-1]],[112,[-1]]],[[112,[-1]]],3],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[11,[-1]]],[[11,[-1]]],[31,121]],[41,41],[122,122],[123,123],[124,124],[17,17],[49,49],[[[112,[-1]]],[[112,[-1]]],31],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[[11,[-1]],[11,[-1]]],67,121],[[17,17],67],[122,12],[123,12],[124,12],0,0,0,[[[11,[-1]]],-1,121],0,[[[112,[-1]]],12,3],[[[11,[-1]]],[[112,[-2]]],121,3],[[[112,[-1]]],12,3],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,6],[12,6],[12,6],[12,6],[12,6],[12,6],[12,6],[12,6],[12,6],[12,6],[12,6],[[41,[9,[-1]],12],[[8,[6,7]]],3],[[[11,[-1]],[11,[-1]]],35,[80,121]],[[41,41],35],[[122,122],35],[[123,123],35],[[124,124],35],[[17,17],35],[[49,49],35],[[[112,[-1]],[112,[-1]]],35,80],[[-1,-2],35,[],[]],[[-1,-2],35,[],[]],[[-1,-2],35,[],[]],[[-1,-2],35,[],[]],[[-1,-2],35,[],[]],[[-1,-2],35,[],[]],[[-1,-2],35,[],[]],[[-1,-2],35,[],[]],[[[112,[-1]],-2,-3,-4,-5,-6,-7,-8,-9,-10,-11],-12,3,14,14,14,14,14,14,14,14,14,14,[]],[[[112,[-1]],-2,-3,-4,-5,-6,-7,-8,-9,-10,-11,-12],-12,3,14,14,14,14,14,14,14,14,14,14,80],[41,[[112,[-1]]],3],[49,[[112,[-1]]],3],[[[11,[-1]],42],43,[44,121]],[[125,42],43],[[126,42],43],[[127,42],43],[[41,42],43],[[122,42],43],[[123,42],43],[[124,42],43],[[17,42],43],[[49,42],43],[[[112,[-1]],42],43,44],[-1,-1,[]],[103,[[11,[51]]]],[[[11,[21]]],[[11,[51]]]],[[[11,[16]]],[[11,[51]]]],[[[11,[10]]],[[11,[51]]]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[128,49],[-1,-1,[]],[[[11,[-1]],-2],6,[129,121],69],[[41,-1],6,69],[[17,-1],6,69],[[49,-1],6,69],[[[112,[-1]]],54,3],[[[11,[-1]]],12,121],[41,12],[49,12],0,0,0,0,0,[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[17,[[11,[21]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[41,35],[[[112,[-1]],[112,[-1]]],[[112,[-1]]],3],[[[112,[-1]],-1],[[112,[-1]]],3],[[[112,[-1]]],[],3],[[12,-1],[[11,[-1]]],121],[[[11,[-1]]],[[112,[-2]]],121,3],[[[11,[-1]],[11,[-1]]],[[28,[67]]],121],[[17,17],[[28,[67]]]],[49,25],[[[11,[-1]]],[[112,[-2]]],121,3],[-1,[[112,[-2]]],74,3],[[[11,[-1]],111],[[112,[-2]]],121,3],[[[112,[-1]],[117,[-1]]],6,3],[[[11,[-1]],108],[[112,[-2]]],121,3],[122,111],[123,111],[124,111],0,0,0,0,[[[112,[-1]]],[[112,[-1]]],3],[[[112,[-1]],[112,[-1]]],[[112,[-1]]],3],[-1,[[112,[-2]]],74,3],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[125,130],[126,130],[127,130],[[[11,[51]]],[[8,[[11,[10]]]]]],[[[11,[51]]],[[8,[[11,[16]]]]]],[-1,[[8,[-2]]],[],[]],[[[11,[51]]],[[8,[[11,[21]]]]]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[130,130],[[-1,-2],6,[],[]],[[130,130],67],[12,-1,[]],[12,-1,[]],[12,6],[[130,130],35],[[-1,-2],35,[],[]],[[130,42],43],[-1,-1,[]],[[130,-1],6,69],[[],12],[-1,-2,[],[]],[[130,130],[[28,[67]]]],[130,[[28,[130]]]],[-1,-2,[],[]],[-1,130,[]],[130,130],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,57,[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,6],[12,6],[[7,42],43],[[7,42],43],[[131,42],43],[[131,42],43],[-1,-1,[]],[-1,-1,[]],[[],12],[[],12],[-1,-2,[],[]],[-1,-2,[],[]],[34,7],[-1,54,[]],[-1,54,[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,57,[]],[-1,57,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[[[118,[-1]]],[[118,[-1]]],[31,3]],[[-1,-2],6,[],[]],[12,-1,[]],[12,-1,[]],[12,6],[[[118,[-1]],42],43,3],[-1,-1,[]],[[],12],[[[118,[-1]]],[[27,[[112,[-1]]]]],3],[-1,-2,[],[]],[[[118,[-1]]],101,3],[[-1,[27,[[6,[[112,[-2]],[112,[-2]]]]]]],[[118,[-2]]],[[109,[101]]],3],[[[118,[-1]]],[[27,[[112,[-1]]]]],3],[-1,-2,[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,57,[]],[-1,-2,[],[]],0,[-1,-2,[],[]],[-1,-2,[],[]],[119,119],[[-1,-2],6,[],[]],[[],119],[12,-1,[]],[12,-1,[]],[12,6],[[119,42],43],[-1,-1,[]],[119,[[27,[[11,[51]]]]]],[[],12],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,57,[]],[-1,-2,[],[]],0,[-1,-2,[],[]],[-1,-2,[],[]],[[[120,[-1]]],[[120,[-1]]],[31,3]],[[-1,-2],6,[],[]],[12,-1,[]],[12,-1,[]],[12,6],[[[120,[-1]],42],43,3],[-1,-1,[]],[[],12],[[[120,[-1]]],[[27,[[112,[-1]]]]],3],[-1,-2,[],[]],[[[120,[-1]]],101,3],[[-1,[27,[[6,[[112,[-2]],[112,[-2]]]]]]],[[120,[-2]]],[[109,[101]]],3],[[[120,[-1]]],[[27,[[112,[-1]]]]],3],[-1,-2,[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,57,[]],[-1,-2,[],[]]],"c":[],"p":[[3,"Value",3],[4,"Assigned",985],[8,"Field",1694],[8,"Add",1695],[8,"FnOnce",1696],[15,"tuple"],[4,"Error",1588],[4,"Result",1697],[3,"Region",3],[3,"Advice",1043],[3,"Column",1289],[15,"usize"],[3,"AssignedCell",3],[8,"Fn",1696],[8,"FnMut",1696],[3,"Instance",1043],[3,"TableColumn",1289],[3,"SimpleTableLayouter",3],[8,"Assignment",1043],[3,"Table",3],[3,"Fixed",1043],[3,"NamespacedLayouter",3],[8,"Layouter",3],[3,"WitnessCalculator",3],[15,"u8"],[3,"HashMap",1698],[3,"Vec",1699],[4,"Option",1700],[8,"Circuit",1043],[3,"Cell",3],[8,"Clone",1701],[3,"RegionIndex",3],[3,"RegionStart",3],[15,"u32"],[15,"bool"],[3,"CompiledCircuit",1702],[3,"ConstraintSystem",1135],[8,"Into",1703],[8,"Copy",1704],[8,"Borrow",1705],[3,"Selector",1289],[3,"Formatter",1706],[6,"Result",1706],[8,"Debug",1706],[8,"RegionLayouter",382],[8,"TableLayouter",382],[8,"IntoIterator",1707],[8,"FromIterator",1707],[3,"Challenge",1289],[8,"Mul",1695],[4,"Any",1702],[8,"Neg",1695],[15,"slice"],[3,"String",1708],[8,"Sub",1695],[15,"array"],[3,"TypeId",1709],[3,"SingleChipLayouter",280],[8,"SyncDeps",382],[3,"SimpleFloorPlanner",280],[3,"V1Pass",317],[3,"V1",317],[3,"MeasurementPass",317],[3,"AssignmentPass",317],[3,"RegionShape",382],[4,"RegionColumn",382],[4,"Ordering",1710],[3,"HashSet",1711],[8,"Hasher",1712],[3,"MockProver",451],[4,"CellValue",451],[8,"FromUniformBytes",1694],[8,"Ord",1710],[8,"Iterator",1713],[4,"FailureLocation",451],[4,"InstanceValue",451],[3,"CircuitGates",451],[3,"CircuitLayout",451],[4,"VerifyFailure",451],[8,"PartialEq",1710],[3,"Error",1706],[3,"TracingFloorPlanner",451],[8,"FloorPlanner",1043],[3,"Shift",1714],[3,"DrawingArea",1715],[4,"DrawingAreaErrorKind",1715],[8,"DrawingBackend",1716],[3,"Range",1717],[3,"CircuitCost",667],[8,"PrimeGroup",1718],[3,"MarginalProofSize",667],[3,"ProofSize",667],[3,"Poly",712],[3,"Lookup",712],[3,"Permutation",712],[3,"Shuffle",712],[8,"Deserializer",1719],[3,"ModelCircuit",712],[4,"CommitmentScheme",712],[3,"CostOptions",712],[15,"str"],[8,"Serializer",1720],[3,"Column",858],[3,"Gate",858],[3,"Constraint",858],[3,"Region",858],[3,"VirtualCell",858],[15,"i32"],[8,"AsRef",1703],[3,"VirtualCell",1135],[3,"Rotation",1721],[4,"Expression",1289],[8,"Phase",1289],[3,"Gate",1135],[3,"Constraint",1135],[3,"Constraints",1135],[3,"VirtualCells",1135],[3,"Argument",1633],[3,"Argument",1654],[3,"Argument",1673],[8,"ColumnType",1043],[3,"FixedQuery",1289],[3,"AdviceQuery",1289],[3,"InstanceQuery",1289],[3,"FirstPhase",1289],[3,"SecondPhase",1289],[3,"ThirdPhase",1289],[3,"ChallengeMid",1702],[8,"Hash",1712],[3,"Phase",1562],[4,"TableError",1588],[8,"Chip",3],[13,"InRegion",642],[13,"OutsideRegion",642],[13,"ConstraintNotSatisfied",645],[13,"CellNotAssigned",645],[13,"InstanceCellNotAssigned",645],[13,"Permutation",645],[13,"ConstraintPoisoned",645],[13,"Lookup",645],[13,"Shuffle",645],[8,"SealedPhase",1562],[13,"NotEnoughRowsAvailable",1632]]},\ -"halo2_middleware":{"doc":"","t":"AACAAAAAANEDNDDDNDGNDGNNDNNDNNEMLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLMMMMLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLMMLLLLMMLLLLLLLLLLLLLLLLLLLLMMLMMLMMMMLLLMMLMMMLMMMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLNENNNNILLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLKLDGLLLLLLLLLLMMLMMMMLLLLLIIIIQQQQQQQIIDILLKLLLLLLLLLLLLLFLLKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKFLKLLLLLLLLLLLLLLLLKKLLLLLLLLLLLLLLLLLLLLLLFLLLLLLLLLLLKLLLLLLLLLLLLLLLLKLLDDLLLLLLLLMMLLLLLLLLLLLLLLLLLLLLLLLLDLLLLLLLLLLLLLLLLLLLLLLLLDGLLLLLLLLLLMMLMMMMLLLLLAADDDDDDDDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLQQIKKKKKK","n":["circuit","expression","ff","lookup","multicore","permutation","poly","shuffle","zal","Advice","Any","Cell","Challenge","ChallengeMid","ColumnMid","CompiledCircuit","Constant","ConstraintSystemMid","ExpressionMid","Fixed","Gate","GateMid","Instance","Negated","Preprocessing","Product","Query","QueryMid","Sum","Var","VarMid","advice_column_phase","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","challenge_phase","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","cmp","cmp","cmp","column","column_index","column_type","column_type","complexity","cs","degree","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","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fixed","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","gates","general_column_annotations","hash","hash","hash","index","index","index","init","init","init","init","init","init","init","init","init","init","into","into","into","into","into","into","into","into","into","into","lookups","minimum_degree","name","name","name","new","num_advice_columns","num_challenges","num_fixed_columns","num_instance_columns","partial_cmp","partial_cmp","partial_cmp","permutation","permutation","phase","phase","poly","poly","polynomial","preprocessing","rotation","row","shuffles","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_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","unblinded_advice_columns","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","write_identifier","Constant","Expression","Negated","Product","Sum","Var","Variable","add","borrow","borrow_mut","clone","clone_into","complexity","complexity","degree","degree","deref","deref_mut","drop","eq","equivalent","evaluate","fmt","from","identifier","init","into","mul","mul","neg","product","sub","sum","to_owned","try_from","try_into","type_id","vzip","write_identifier","write_identifier","Argument","ArgumentMid","borrow","borrow_mut","clone","clone_into","deref","deref_mut","drop","fmt","from","init","input_expressions","input_expressions","into","name","name","table_expressions","table_expressions","to_owned","try_from","try_into","type_id","vzip","IndexedParallelIterator","IntoParallelIterator","IntoParallelRefIterator","IntoParallelRefMutIterator","Item","Item","Item","Item","Iter","Iter","Iter","ParallelIterator","ParallelSliceMut","Scope","TryFoldAndReduce","all","any","as_parallel_slice_mut","borrow","borrow_mut","by_exponential_blocks","by_uniform_blocks","chain","chunks","cloned","cmp","collect","collect_into_vec","collect_vec_list","copied","count","current_num_threads","deref","deref_mut","drive","drive_unindexed","drop","enumerate","eq","filter","filter_map","find_any","find_first","find_last","find_map_any","find_map_first","find_map_last","flat_map","flat_map_iter","flatten","flatten_iter","fmt","fold","fold_chunks","fold_chunks_with","fold_with","for_each","for_each_init","for_each_with","from","ge","gt","init","inspect","interleave","interleave_shortest","intersperse","into","into_par_iter","join","le","len","lt","map","map_init","map_with","max","max_by","max_by_key","min","min_by","min_by_key","ne","opt_len","panic_fuse","par_chunk_by_mut","par_chunks_exact_mut","par_chunks_mut","par_iter","par_iter_mut","par_rchunks_exact_mut","par_rchunks_mut","par_sort","par_sort_by","par_sort_by_cached_key","par_sort_by_key","par_sort_unstable","par_sort_unstable_by","par_sort_unstable_by_key","par_split_inclusive_mut","par_split_mut","partial_cmp","partition","partition_map","position_any","position_first","position_last","positions","product","reduce","reduce_with","rev","scope","skip","skip_any","skip_any_while","spawn","spawn_broadcast","step_by","sum","take","take_any","take_any_while","try_fold","try_fold_and_reduce","try_fold_with","try_for_each","try_for_each_init","try_for_each_with","try_from","try_into","try_reduce","try_reduce_with","type_id","unzip","unzip_into_vecs","update","vzip","while_some","with_max_len","with_min_len","with_producer","zip","zip_eq","ArgumentMid","AssemblyMid","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","columns","copies","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","from","from","init","init","into","into","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Rotation","borrow","borrow_mut","clone","clone_into","cmp","cur","deref","deref_mut","drop","eq","equivalent","fmt","from","hash","init","into","next","partial_cmp","prev","to_owned","try_from","try_into","type_id","vzip","Argument","ArgumentMid","borrow","borrow_mut","clone","clone_into","deref","deref_mut","drop","fmt","from","init","input_expressions","input_expressions","into","name","name","shuffle_expressions","shuffle_expressions","to_owned","try_from","try_into","type_id","vzip","impls","traits","H2cEngine","H2cMsmBaseDesc","H2cMsmCoeffsDesc","HasCurve","HasMsmEngine","NoCurve","NoMsmEngine","PlonkEngine","PlonkEngineConfig","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","build","build_default","default","default","default","default","default","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","drop","drop","drop","drop","fmt","from","from","from","from","from","from","from","from","from","get_base_descriptor","get_coeffs_descriptor","init","init","init","init","init","init","init","init","init","into","into","into","into","into","into","into","into","into","msm","msm_backend","msm_with_cached_base","msm_with_cached_inputs","msm_with_cached_scalars","new","new","set_curve","set_msm","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","BaseDescriptor","CoeffsDescriptor","MsmAccel","get_base_descriptor","get_coeffs_descriptor","msm","msm_with_cached_base","msm_with_cached_inputs","msm_with_cached_scalars"],"q":[[0,"halo2_middleware"],[9,"halo2_middleware::circuit"],[252,"halo2_middleware::expression"],[292,"halo2_middleware::lookup"],[316,"halo2_middleware::multicore"],[460,"halo2_middleware::permutation"],[496,"halo2_middleware::poly"],[521,"halo2_middleware::shuffle"],[545,"halo2_middleware::zal"],[547,"halo2_middleware::zal::impls"],[683,"halo2_middleware::zal::traits"],[692,"core::clone"],[693,"ff"],[694,"core::cmp"],[695,"core::fmt"],[696,"core::fmt"],[697,"core::option"],[698,"alloc::string"],[699,"core::result"],[700,"core::any"],[701,"std::io::error"],[702,"std::io"],[703,"core::cmp"],[704,"core::iter::traits::iterator"],[705,"core::marker"],[706,"core::marker"],[707,"rayon::iter::blocks"],[708,"rayon::iter::chunks"],[709,"rayon::iter::cloned"],[710,"rayon::iter"],[711,"alloc::alloc"],[712,"alloc::vec"],[713,"alloc::collections::linked_list"],[714,"rayon::iter::copied"],[715,"rayon::iter::plumbing"],[716,"rayon::iter::plumbing"],[717,"rayon::iter::filter"],[718,"rayon::iter::filter_map"],[719,"rayon::iter::flat_map"],[720,"rayon::iter::flat_map_iter"],[721,"rayon::iter::flatten"],[722,"rayon::iter::flatten_iter"],[723,"core::fmt"],[724,"rayon::iter::fold_chunks"],[725,"rayon::iter::fold_chunks_with"],[726,"rayon::iter::fold"],[727,"rayon::iter::interleave"],[728,"rayon::iter::interleave_shortest"],[729,"rayon::iter::intersperse"],[730,"core::ops::function"],[731,"rayon::iter::map_with"],[732,"rayon::iter::map_with"],[733,"rayon::slice::chunk_by"],[734,"rayon::slice::chunks"],[735,"rayon::slice::chunks"],[736,"rayon::slice::rchunks"],[737,"rayon::slice"],[738,"rayon::iter"],[739,"core::iter::traits::accum"],[740,"rayon::iter::rev"],[741,"rayon::iter::skip"],[742,"rayon::iter::skip_any"],[743,"rayon::iter::skip_any_while"],[744,"rayon::iter::step_by"],[745,"core::iter::traits::accum"],[746,"rayon::iter::take_any"],[747,"rayon::iter::take_any_while"],[748,"rayon::iter::try_fold"],[749,"rayon::iter::private"],[750,"rayon::iter::try_fold"],[751,"rayon::iter::while_some"],[752,"rayon::iter::len"],[753,"rayon::iter::len"],[754,"rayon::iter::zip_eq"],[755,"pasta_curves::arithmetic::curves"]],"d":["","","","","","","","","This module provides “ZK Acceleration Layer” traits to …","An Advice variant","An enum over the Advice, Fixed, Instance structs","A cell identifies a position in the plonkish matrix …","This is a challenge","A challenge squeezed from transcript after advice columns …","A column with an index and type","This is a description of a low level Plonkish compiled …","This is a constant polynomial","This is a description of the circuit environment, such as …","","A Fixed variant","A Gate contains a single polynomial identity with a name …","","An Instance variant","This is a negated polynomial","Data that needs to be preprocessed from a circuit","This is the product of two polynomials","This is a generic column query","","This is the sum of two polynomials","This is a variable","","Contains the phase for each advice column. Should have …","","","","","","","","","","","","","","","","","","","","","Contains the phase for each challenge. Should have same …","","","","","","","","","","","","","","","","","","","","","","","","","Column index","The type of the column.","The type of the 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.","","","","","","Index of this challenge.","","The index of the 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).","","","Returns the gate name.","","","","","","","","","","","","","Phase of this challenge.","","","","Returns the polynomial identity of this gate","","Rotation of this query","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Contains the index of each advice column that is left …","","","","","","","","","","","","This is a constant polynomial","Low-degree expression representing an identity that must …","This is a negated polynomial","This is the product of two polynomials","This is the sum of two polynomials","This is a variable","","","","","","","Approximate the computational complexity an expression …","Approximate the computational complexity of this …","Degree that an expression would have if it was only this …","Compute the degree of this polynomial","","","","","","Evaluate the polynomial using the provided closures to …","","Returns the argument unchanged.","Identifier for this expression. Expressions with identical …","","Calls U::from(self).","","","","","","","","","","","","Write an identifier of the variable. If two variables …","","Expressions involved in a lookup argument, with a name as …","","","","","","","","","","Returns the argument unchanged.","","","","Calls U::from(self).","","","","","","","","","","An iterator that supports “random access” to its data, …","IntoParallelIterator implements the conversion to a …","IntoParallelRefIterator implements the conversion to a …","IntoParallelRefMutIterator implements the conversion to a …","The type of item that the parallel iterator will produce.","The type of item that the parallel iterator will produce. …","The type of item that will be produced; this is typically …","The type of item that this parallel iterator produces. For …","The parallel iterator type that will be created.","The type of the parallel iterator that will be returned.","The type of iterator that will be created.","Parallel version of the standard iterator trait.","Parallel extensions for mutable slices.","Represents a fork-join scope which can be used to spawn …","","Tests that every item in the parallel iterator matches the …","Searches for some item in the parallel iterator that …","Returns a plain mutable slice, which is used to implement …","","","Divides an iterator into sequential blocks of …","Divides an iterator into sequential blocks of the given …","Takes two iterators and creates a new iterator over both.","Splits an iterator up into fixed-size chunks.","Creates an iterator which clones all of its elements. …","Lexicographically compares the elements of this …","Creates a fresh collection containing all the elements …","Collects the results of the iterator into the specified …","Collects this iterator into a linked list of vectors.","Creates an iterator which copies all of its elements. …","Counts the number of items in this parallel iterator.","Returns the number of threads in the current registry. If …","","","Internal method used to define the behavior of this …","Internal method used to define the behavior of this …","","Yields an index along with each item.","Determines if the elements of this ParallelIterator are …","Applies filter_op to each item of this iterator, producing …","Applies filter_op to each item of this iterator to get an …","Searches for some item in the parallel iterator that …","Searches for the sequentially first item in the parallel …","Searches for the sequentially last item in the parallel …","Applies the given predicate to the items in the parallel …","Applies the given predicate to the items in the parallel …","Applies the given predicate to the items in the parallel …","Applies map_op to each item of this iterator to get nested …","Applies map_op to each item of this iterator to get nested …","An adaptor that flattens parallel-iterable Items into one …","An adaptor that flattens serial-iterable Items into one …","","Parallel fold is similar to sequential fold except that the","Splits an iterator into fixed-size chunks, performing a …","Splits an iterator into fixed-size chunks, performing a …","Applies fold_op to the given init value with each item of …","Executes OP on each item produced by the iterator, in …","Executes OP on a value returned by init with each item …","Executes OP on the given init value with each item …","Returns the argument unchanged.","Determines if the elements of this ParallelIterator are …","Determines if the elements of this ParallelIterator are …","","Applies inspect_op to a reference to each item of this …","Interleaves elements of this iterator and the other given …","Interleaves elements of this iterator and the other given …","Intersperses clones of an element between items of this …","Calls U::from(self).","Converts self into a parallel iterator.","Takes two closures and potentially runs them in parallel. …","Determines if the elements of this ParallelIterator are …","Produces an exact count of how many items this iterator …","Determines if the elements of this ParallelIterator are …","Applies map_op to each item of this iterator, producing a …","Applies map_op to a value returned by init with each item …","Applies map_op to the given init value with each item of …","Computes the maximum of all the items in the iterator. If …","Computes the maximum of all the items in the iterator with …","Computes the item that yields the maximum value for the …","Computes the minimum of all the items in the iterator. If …","Computes the minimum of all the items in the iterator with …","Computes the item that yields the minimum value for the …","Determines if the elements of this ParallelIterator are …","Internal method used to define the behavior of this …","Wraps an iterator with a fuse in case of panics, to halt …","Returns a parallel iterator over the slice producing …","Returns a parallel iterator over chunk_size elements of …","Returns a parallel iterator over at most chunk_size …","Converts self into a parallel iterator.","Creates the parallel iterator from self.","Returns a parallel iterator over chunk_size elements of …","Returns a parallel iterator over at most chunk_size …","Sorts the slice in parallel.","Sorts the slice in parallel with a comparator function.","Sorts the slice in parallel with a key extraction function.","Sorts the slice in parallel with a key extraction function.","Sorts the slice in parallel, but might not preserve the …","Sorts the slice in parallel with a comparator function, …","Sorts the slice in parallel with a key extraction …","Returns a parallel iterator over mutable subslices …","Returns a parallel iterator over mutable subslices …","Lexicographically compares the elements of this …","Partitions the items of a parallel iterator into a pair of …","Partitions and maps the items of a parallel iterator into …","Searches for some item in the parallel iterator that …","Searches for the sequentially first item in the parallel …","Searches for the sequentially last item in the parallel …","Searches for items in the parallel iterator that match the …","Multiplies all the items in the iterator.","Reduces the items in the iterator into one item using op. …","Reduces the items in the iterator into one item using op. …","Produces a new iterator with the elements of this iterator …","Creates a “fork-join” scope s and invokes the closure …","Creates an iterator that skips the first n elements.","Creates an iterator that skips n elements from anywhere in …","Creates an iterator that skips elements from anywhere in …","Spawns a job into the fork-join scope self. This job will …","Spawns a job into every thread of the fork-join scope self…","Creates an iterator that steps by the given amount","Sums up the items in the iterator.","Creates an iterator that yields the first n elements.","Creates an iterator that yields n elements from anywhere …","Creates an iterator that takes elements from anywhere in …","Performs a fallible parallel fold.","Implements iter.try_fold().try_reduce() for …","Performs a fallible parallel fold with a cloneable init …","Executes a fallible OP on each item produced by the …","Executes a fallible OP on a value returned by init with …","Executes a fallible OP on the given init value with each …","","","Reduces the items in the iterator into one item using a …","Reduces the items in the iterator into one item using a …","","Unzips the items of a parallel iterator into a pair of …","Unzips the results of the iterator into the specified …","Mutates each item of this iterator before yielding it.","","Creates an iterator over the Some items of this iterator, …","Sets the maximum length of iterators desired to process in …","Sets the minimum length of iterators desired to process in …","Internal method used to define the behavior of this …","Iterates over tuples (A, B), where the items A are from …","The same as Zip, but requires that both iterators have the …","A permutation argument.","","","","","","","","","","A sequence of columns involved in the argument.","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","Describes the relative rotation of a vector. Negative …","","","","","","The current location in the evaluation domain","","","","","","","Returns the argument unchanged.","","","Calls U::from(self).","The next location in the evaluation domain","","The previous location in the evaluation domain","","","","","","Expressions involved in a shuffle argument, with a name as …","","","","","","","","","","Returns the argument unchanged.","","","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"i":[0,0,0,0,0,0,0,0,0,11,0,0,3,0,0,0,118,0,0,11,0,0,11,118,0,118,3,0,118,118,0,8,1,2,3,4,8,9,10,11,12,13,1,2,3,4,8,9,10,11,12,13,8,1,2,3,4,8,9,10,11,12,13,1,2,3,4,8,9,10,11,12,13,11,12,13,13,2,2,12,3,10,3,1,2,3,4,8,9,10,11,12,13,1,2,3,4,8,9,10,11,12,13,1,2,3,4,8,9,10,11,12,13,1,2,3,11,12,13,1,2,3,11,12,13,9,1,2,3,4,8,9,10,11,12,12,13,1,2,3,4,8,9,10,11,12,13,8,8,1,11,12,1,1,12,1,2,3,4,8,9,10,11,12,13,1,2,3,4,8,9,10,11,12,13,8,8,4,119,4,12,8,8,8,8,11,12,13,8,9,1,1,119,4,4,10,2,13,8,1,2,3,4,8,9,10,11,12,13,12,1,2,3,4,8,9,10,11,12,13,1,2,3,4,8,9,10,11,12,13,1,2,3,4,8,9,10,11,12,13,8,1,2,3,4,8,9,10,11,12,13,3,25,0,25,25,25,25,0,25,25,25,25,25,7,25,7,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,7,25,0,0,34,34,34,34,34,34,34,34,34,34,120,34,34,120,34,120,34,34,34,34,34,34,0,0,0,0,41,121,122,44,41,121,122,0,0,0,0,44,44,123,59,59,97,97,44,97,44,97,44,97,44,44,44,0,59,59,97,44,59,97,97,44,44,44,44,44,44,44,44,44,44,44,44,59,44,97,97,44,44,44,44,59,97,97,59,44,97,97,44,59,41,0,97,97,97,44,44,44,44,44,44,44,44,44,97,44,44,123,123,123,121,122,123,123,123,123,123,123,123,123,123,123,123,97,44,44,97,97,97,97,44,44,44,97,0,97,44,44,59,59,97,44,97,44,44,44,124,44,44,44,44,59,59,44,44,59,44,97,44,59,44,97,97,97,97,97,0,0,105,106,105,106,105,106,105,106,106,105,105,106,105,106,105,106,105,106,105,106,105,106,105,106,105,106,105,106,105,106,105,106,105,106,0,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,0,0,108,108,108,108,108,108,108,108,108,108,125,108,108,125,108,125,108,108,108,108,108,108,0,0,0,0,0,0,0,0,0,0,0,126,127,110,115,112,111,116,109,117,126,127,110,115,112,111,116,109,117,111,111,115,111,116,109,117,126,127,110,115,112,111,116,109,117,126,127,110,115,112,111,116,109,117,126,127,110,115,112,111,116,109,117,112,126,127,110,115,112,111,116,109,117,115,115,126,127,110,115,112,111,116,109,117,126,127,110,115,112,111,116,109,117,115,112,115,115,115,115,111,111,111,126,127,110,115,112,111,116,109,117,126,127,110,115,112,111,116,109,117,126,127,110,115,112,111,116,109,117,126,127,110,115,112,111,116,109,117,114,114,0,114,114,114,114,114,114],"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,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[1,1],[2,2],[3,3],[[[4,[-1,-2]]],[[4,[-1,-2]]],[5,6],[5,7]],[[[8,[-1]]],[[8,[-1]]],[5,6]],[[[9,[-1]]],[[9,[-1]]],[5,6]],[[[10,[-1]]],[[10,[-1]]],[5,6]],[11,11],[12,12],[13,13],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[11,11],15],[[12,12],15],[[13,13],15],0,0,0,0,[3,16],0,[3,16],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,14],[16,14],[16,14],[16,14],[16,14],[16,14],[16,14],[16,14],[16,14],[16,14],[[1,1],17],[[2,2],17],[[3,3],17],[[11,11],17],[[12,12],17],[[13,13],17],[[-1,-2],17,[],[]],[[-1,-2],17,[],[]],[[-1,-2],17,[],[]],[[-1,-2],17,[],[]],[[-1,-2],17,[],[]],[[-1,-2],17,[],[]],0,[[1,18],19],[[2,18],19],[[3,18],19],[[[4,[-1,-2]],18],19,[20,6],[20,7]],[[[8,[-1]],18],19,[20,6]],[[[9,[-1]],18],19,[20,6]],[[[10,[-1]],18],19,[20,6]],[[11,18],19],[[12,18],19],[[12,18],19],[[13,18],19],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],0,0,[[1,-1],14,21],[[11,-1],14,21],[[12,-1],14,21],[1,16],0,0,[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[[[4,[-1,-2]]],22,6,7],0,0,[[11,16],12],0,0,0,0,[[11,11],[[23,[15]]]],[[12,12],[[23,[15]]]],[[13,13],[[23,[15]]]],0,0,[1,24],0,0,0,[[[4,[-1,-2]]],[[25,[-1,-2]]],6,7],0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,26,[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,28,[]],[-1,28,[]],[-1,28,[]],[-1,28,[]],[-1,28,[]],[-1,28,[]],[-1,28,[]],[-1,28,[]],[-1,28,[]],[-1,28,[]],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[3,-1],[[29,[14]]],30],0,0,0,0,0,0,0,[[[25,[-1,-2]],[25,[-1,-2]]],[[25,[-1,-2]]],6,7],[-1,-2,[],[]],[-1,-2,[],[]],[[[25,[-1,-2]]],[[25,[-1,-2]]],5,[5,7]],[[-1,-2],14,[],[]],[-1,16,[]],[[[25,[-1,-2]]],16,6,7],[-1,16,[]],[[[25,[-1,-2]]],16,6,7],[16,-1,[]],[16,-1,[]],[16,14],[[[25,[-1,-2]],[25,[-1,-2]]],17,31,[31,7]],[[-1,-2],17,[],[]],[[[25,[-1,-2]],-3,-4,-5,-6,-7],-8,6,7,32,32,32,32,32,[]],[[[25,[-1,-2]],18],19,20,[20,7]],[-1,-1,[]],[[[25,[-1,-2]]],26,6,7],[[],16],[-1,-2,[],[]],[[[25,[-1,-2]],[25,[-1,-2]]],[[25,[-1,-2]]],6,7],[[[25,[-1,-2]],-1],[[25,[-1,-2]]],6,7],[[[25,[-1,-2]]],[],6,7],[-1,[[25,[-2,-3]]],33,6,7],[[[25,[-1,-2]],[25,[-1,-2]]],[[25,[-1,-2]]],6,7],[-1,[[25,[-2,-3]]],33,6,7],[-1,-2,[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,28,[]],[-1,-2,[],[]],[[-1,-2],[[29,[14]]],[],30],[[[25,[-1,-2]],-3],[[29,[14]]],6,7,30],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[[[34,[-1,-2]]],[[34,[-1,-2]]],[5,6],[5,7]],[[-1,-2],14,[],[]],[16,-1,[]],[16,-1,[]],[16,14],[[[34,[-1,-2]],18],19,[20,6],[20,7]],[-1,-1,[]],[[],16],0,0,[-1,-2,[],[]],0,0,0,0,[-1,-2,[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,28,[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[-1,-2],17,[],[32,35,36]],[[-1,-2],17,[],[32,35,36]],[-1,[[37,[-2]]],[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[38,[-1]]],[]],[[-1,16],[[39,[-1]]],[]],[[-1,-2],[[40,[-1]]],[],41],[[-1,16],[[42,[-1]]],[]],[-1,[[43,[-1]]],44],[[-1,-2],15,[],41],[-1,-2,[],45],[[-1,[47,[46]]],14,[]],[-1,[[48,[[47,[46]],46]]],[]],[-1,[[49,[-1]]],44],[-1,16,[]],[[],16],[16,-1,[]],[16,-1,[]],[[-1,-2],[],[],50],[[-1,-2],[],[],51],[16,14],[-1,[[52,[-1]]],[]],[[-1,-2],17,[],41],[[-1,-2],[[53,[-1,-2]]],[],[32,35,36]],[[-1,-2],[[54,[-1,-2]]],[],[32,35,36]],[[-1,-2],23,[],[32,35,36]],[[-1,-2],23,[],[32,35,36]],[[-1,-2],23,[],[32,35,36]],[[-1,-2],[[23,[-3]]],[],[32,35,36],36],[[-1,-2],[[23,[-3]]],[],[32,35,36],36],[[-1,-2],[[23,[-3]]],[],[32,35,36],36],[[-1,-2],[[55,[-1,-2]]],[],[32,35,36]],[[-1,-2],[[56,[-1,-2]]],[],[32,35,36]],[-1,[[57,[-1]]],[]],[-1,[[58,[-1]]],[]],[[59,18],[[27,[14,60]]]],[[-1,-2,-3],[[61,[-1,-2,-3]]],[],[32,35,36],[32,35,36]],[[-1,16,-2,-3],[[62,[-1,-2,-3]]],[],[32,36,35],[32,36,35]],[[-1,16,-2,-3],[[63,[-1,-2,-3]]],[],[36,5],[32,36,35]],[[-1,-2,-3],[[64,[-1,-2,-3]]],[],[36,5],[32,35,36]],[[-1,-2],14,[],[32,35,36]],[[-1,-2,-3],14,[],[32,35,36],[32,35,36]],[[-1,-2,-3],14,[],[36,5],[32,35,36]],[-1,-1,[]],[[-1,-2],17,[],41],[[-1,-2],17,[],41],[[],16],[[-1,-2],[[65,[-1,-2]]],[],[32,35,36]],[[-1,-2],[[66,[-1]]],[],41],[[-1,-2],[[67,[-1]]],[],41],[-1,[[68,[-1]]],[]],[-1,-2,[],[]],[-1,[],[]],[[-1,-2],[[14,[-3,-4]]],[69,36],[69,36],36,36],[[-1,-2],17,[],41],[-1,16,[]],[[-1,-2],17,[],41],[[-1,-2],[[70,[-1,-2]]],[],[32,35,36]],[[-1,-2,-3],[[71,[-1,-2,-3]]],[],[32,35,36],[32,35,36]],[[-1,-2,-3],[[72,[-1,-2,-3]]],[],[36,5],[32,35,36]],[-1,23,[]],[[-1,-2],23,[],[35,36,32]],[[-1,-2],23,[],[35,36,32]],[-1,23,[]],[[-1,-2],23,[],[35,36,32]],[[-1,-2],23,[],[35,36,32]],[[-1,-2],17,[],41],[-1,[[23,[16]]],[]],[-1,[[73,[-1]]],[]],[[-1,-2],[[74,[-3,-2]]],[],[32,36,35],[]],[[-1,16],[[75,[-2]]],[],[]],[[-1,16],[[76,[-2]]],[],[]],[-1,[],[]],[-1,[],[]],[[-1,16],[[77,[-2]]],[],[]],[[-1,16],[[78,[-2]]],[],[]],[-1,14,[]],[[-1,-2],14,[],[32,35]],[[-1,-2],14,[],[32,35]],[[-1,-2],14,[],[32,35]],[-1,14,[]],[[-1,-2],14,[],[32,35]],[[-1,-2],14,[],[32,35]],[[-1,-2],[[79,[-3,-2]]],[],[32,35,36],[]],[[-1,-2],[[80,[-3,-2]]],[],[32,35,36],[]],[[-1,-2],[[23,[15]]],[],41],[[-1,-2],[[14,[-3,-4]]],[],[32,35,36],[81,36,82],[81,36,82]],[[-1,-2],[[14,[-4,-6]]],[],[32,35,36],36,[81,36,[82,[-3]]],36,[81,36,[82,[-5]]]],[[-1,-2],[[23,[16]]],[],[32,35,36]],[[-1,-2],[[23,[16]]],[],[32,35,36]],[[-1,-2],[[23,[16]]],[],[32,35,36]],[[-1,-2],[[83,[-1,-2]]],[],[32,35,36]],[-1,-2,[],[36,84,84]],[[-1,-2,-3],[],[],[32,35,36],[32,35,36]],[[-1,-2],23,[],[32,35,36]],[-1,[[85,[-1]]],[]],[-1,-2,[69,36],36],[[-1,16],[[86,[-1]]],[]],[[-1,16],[[87,[-1]]],[]],[[-1,-2],[[88,[-1,-2]]],[],[32,35,36]],[[59,-1],14,[69,36]],[[59,-1],14,[32,36,35]],[[-1,16],[[89,[-1]]],[]],[-1,-2,[],[36,90,90]],[[-1,16],[[91,[-1]]],[]],[[-1,16],[[92,[-1]]],[]],[[-1,-2],[[93,[-1,-2]]],[],[32,35,36]],[[-1,-2,-3],[[94,[-1,-4,-2,-3]]],[],[32,35,36],[32,35,36],[95,36]],[[-1,-2,-3],[[27,[-4,-5]]],[],[32,36,35],[32,36,35],[],[]],[[-1,-2,-3],[[96,[-1,-4,-3]]],[],[5,36],[32,35,36],[95,36]],[[-1,-2],-3,[],[32,35,36],[95,36]],[[-1,-2,-3],-4,[],[32,35,36],[32,35,36],[95,36]],[[-1,-2,-3],-4,[],[36,5],[32,35,36],[95,36]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[[-1,-2,-3],[],[],[32,35,36],[32,35,36]],[[-1,-2],23,[],[32,35,36]],[-1,28,[]],[-1,[[14,[-3,-5]]],44,36,[81,36,[82,[-2]]],36,[81,36,[82,[-4]]]],[[-1,[47,[-2,46]],[47,[-3,46]]],14,97,36,36],[[-1,-2],[[98,[-1,-2]]],[],[32,35,36]],[-1,-2,[],[]],[-1,[[99,[-1]]],44],[[-1,16],[[100,[-1]]],[]],[[-1,16],[[101,[-1]]],[]],[[-1,-2],[],[],102],[[-1,-2],[[103,[-1]]],[],41],[[-1,-2],[[104,[-1]]],[],41],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[105,105],[106,106],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],0,0,[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,14],[16,14],[[105,18],19],[[106,18],19],[-1,-1,[]],[-1,-1,[]],[[],16],[[],16],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,28,[]],[-1,28,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[-1,-2,[],[]],[-1,-2,[],[]],[107,107],[[-1,-2],14,[],[]],[[107,107],15],[[],107],[16,-1,[]],[16,-1,[]],[16,14],[[107,107],17],[[-1,-2],17,[],[]],[[107,18],19],[-1,-1,[]],[[107,-1],14,21],[[],16],[-1,-2,[],[]],[[],107],[[107,107],[[23,[15]]]],[[],107],[-1,-2,[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,28,[]],[-1,-2,[],[]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[[[108,[-1,-2]]],[[108,[-1,-2]]],[5,6],[5,7]],[[-1,-2],14,[],[]],[16,-1,[]],[16,-1,[]],[16,14],[[[108,[-1,-2]],18],19,[20,6],[20,7]],[-1,-1,[]],[[],16],0,0,[-1,-2,[],[]],0,0,0,0,[-1,-2,[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,28,[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[111,[[109,[-1]],[110,[-1,-2]]]]],[[112,[-1,-2]]],113,[[114,[-1]]]],[[],[[112,[-1,115]]],113],[[],115],[[],[[111,[-1,-2]]],81,81],[[],116],[[],[[109,[-1]]],[81,113]],[[],117],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,14],[16,14],[16,14],[16,14],[16,14],[16,14],[16,14],[16,14],[16,14],[[[112,[-1,-2]],18],19,[20,113],[20,[114,[-1]]]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[115,[37,[-1]]],[],113],[[115,37]],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[115,37,[37,[-1]]],[],113],0,[[115,37]],[115],[[115,[37,[-1]]],[],113],[[],115],[[],[[111,[116,117]]]],[[[111,[116,117]]],[[111,[[109,[-1]],117]]],113],[[[111,[[109,[-1]],-2]],-3],[[111,[[109,[-1]],[110,[-1,-3]]]]],113,[],[[114,[-1]]]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,28,[]],[-1,28,[]],[-1,28,[]],[-1,28,[]],[-1,28,[]],[-1,28,[]],[-1,28,[]],[-1,28,[]],[-1,28,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,[[-1,[37,[-2]]],[],[],[]],[[-1,37],[],[]],[[-1,37,[37,[-2]]],[],[],[]],[[-1,37],[],[]],[-1,[],[]],[[-1,[37,[-2]]],[],[],[]]],"c":[],"p":[[3,"ChallengeMid",9],[3,"QueryMid",9],[4,"VarMid",9],[3,"Gate",9],[8,"Clone",692],[8,"Field",693],[8,"Variable",252],[3,"ConstraintSystemMid",9],[3,"Preprocessing",9],[3,"CompiledCircuit",9],[4,"Any",9],[3,"ColumnMid",9],[3,"Cell",9],[15,"tuple"],[4,"Ordering",694],[15,"usize"],[15,"bool"],[3,"Formatter",695],[6,"Result",695],[8,"Debug",695],[8,"Hasher",696],[15,"str"],[4,"Option",697],[15,"u8"],[4,"Expression",252],[3,"String",698],[4,"Result",699],[3,"TypeId",700],[6,"Result",701],[8,"Write",702],[8,"PartialEq",694],[8,"Fn",703],[8,"Iterator",704],[3,"Argument",292],[8,"Sync",705],[8,"Send",705],[15,"slice"],[3,"ExponentialBlocks",706],[3,"UniformBlocks",706],[3,"Chain",707],[8,"IntoParallelIterator",316],[3,"Chunks",708],[3,"Cloned",709],[8,"ParallelIterator",316],[8,"FromParallelIterator",710],[3,"Global",711],[3,"Vec",712],[3,"LinkedList",713],[3,"Copied",714],[8,"Consumer",715],[8,"UnindexedConsumer",715],[3,"Enumerate",716],[3,"Filter",717],[3,"FilterMap",718],[3,"FlatMap",719],[3,"FlatMapIter",720],[3,"Flatten",721],[3,"FlattenIter",722],[3,"Scope",316],[3,"Error",695],[3,"Fold",723],[3,"FoldChunks",724],[3,"FoldChunksWith",725],[3,"FoldWith",723],[3,"Inspect",726],[3,"Interleave",727],[3,"InterleaveShortest",728],[3,"Intersperse",729],[8,"FnOnce",703],[3,"Map",730],[3,"MapInit",731],[3,"MapWith",731],[3,"PanicFuse",732],[3,"ChunkByMut",733],[3,"ChunksExactMut",734],[3,"ChunksMut",734],[3,"RChunksExactMut",735],[3,"RChunksMut",735],[3,"SplitInclusiveMut",736],[3,"SplitMut",736],[8,"Default",737],[8,"ParallelExtend",710],[3,"Positions",738],[8,"Product",739],[3,"Rev",740],[3,"Skip",741],[3,"SkipAny",742],[3,"SkipAnyWhile",743],[3,"StepBy",744],[8,"Sum",739],[3,"Take",745],[3,"TakeAny",746],[3,"TakeAnyWhile",747],[3,"TryFold",748],[8,"Try",749],[3,"TryFoldWith",748],[8,"IndexedParallelIterator",316],[3,"Update",750],[3,"WhileSome",751],[3,"MaxLen",752],[3,"MinLen",752],[8,"ProducerCallback",715],[3,"Zip",753],[3,"ZipEq",754],[3,"AssemblyMid",460],[3,"ArgumentMid",460],[3,"Rotation",496],[3,"Argument",521],[3,"HasCurve",547],[3,"HasMsmEngine",547],[3,"PlonkEngineConfig",547],[3,"PlonkEngine",547],[8,"CurveAffine",755],[8,"MsmAccel",683],[3,"H2cEngine",547],[3,"NoCurve",547],[3,"NoMsmEngine",547],[6,"ExpressionMid",9],[6,"GateMid",9],[6,"ArgumentMid",292],[8,"IntoParallelRefIterator",316],[8,"IntoParallelRefMutIterator",316],[8,"ParallelSliceMut",316],[8,"TryFoldAndReduce",316],[6,"ArgumentMid",521],[3,"H2cMsmCoeffsDesc",547],[3,"H2cMsmBaseDesc",547]]},\ -"halo2_proofs":{"doc":"Legacy halo2 API that wraps the frontend-backend split …","t":"NNNEALLALLLLALLLCLLAALALLLLQQQSIIQISQQSKKKKKLKKKKKKKLLKKFLLKLLKKDDIQIQDDDQDDDLLLLLLLLLLLLLLLLLLLLKLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLMKLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLALLLLLLLLLLLLLLLLLLLLLKLKLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLKLKLMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDLLLLLLLLLLLLLLLLLLLLLLLLLALLLLLLLALLDDLLLLLLLLLLLLLLLLLLLLLDDDDLLLLLLLLLLLLLLLLLLALLLLLLLLNDNNENNNDNNNELLLLLLLLLLLLLLLFLLLALLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLALLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMEDNNNDDDDDMMLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLFFLMLLLLLLLMLLLLLLLLMMMMMMLMMMMLLMMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDDDDLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDNNEEINNNDNIDNNIQNDNDDEEEEDDNNDIQNDNNNNNNNNNNNQINDNNDDNNNDNDNNDDNLLLLLLLLLLLLMLKLLKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLMLLLKLLKLFFLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKKLLLLLLLLLLLLLLLLLLLLLLLLLKLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLMLKLLLLLLLLLLLLLLLMMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLFFFFLLLLMMLLLLLLLLLLLLLLLLLMLMLMLMLLLLLLLMLLLFKLLKLLKLLLLLLLLKLLLLLLMLLLLMLLLLLLLLLLLLLKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMFFLLLLLLLLLLLLLLLLLLLLLLLLKLLMMDQDILLLLLLLLLLLALLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLALALLLKLLLLLKLLLLLLLLLLLLDIQQIQQIIQIQQISSQILLLKKKLLKLLKKLKLLLKLKLLKLLKLLKLLLKKKKLKKKKKLLLLKKLKAAAADDGLLLLLLLLFLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLFLLLDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLAAAADDGLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDDIQIIIIILLLLLLLLLLLLLKLLKLLLLLLLLLLLLKLLLLLLLKLKKLLLLLLLLKLKLKLKLLLLLLLLLLLLLLLLLLKLKL","n":["Processed","RawBytes","RawBytesUnchecked","SerdeFormat","arithmetic","borrow","borrow_mut","circuit","clone","clone_into","deref","deref_mut","dev","drop","fmt","from","halo2curves","init","into","plonk","poly","to_owned","transcript","try_from","try_into","type_id","vzip","AffineExt","Base","Base","CURVE_ID","CurveAffine","CurveExt","CurveExt","Field","ONE","ScalarExt","ScalarExt","ZERO","a","a","b","b","coordinates","cube","double","endo","from_xy","hash_to_curve","invert","is_on_curve","is_on_curve","is_zero","is_zero_vartime","jacobian_coordinates","new_jacobian","parallelize","pow","pow_vartime","random","sqrt","sqrt_alt","sqrt_ratio","square","AssignedCell","Cell","Chip","Config","Layouter","Loaded","NamespacedLayouter","Region","RegionIndex","Root","SimpleFloorPlanner","Table","Value","add","add","add","add","add","add","add","add","add","add","and_then","as_mut","as_ref","assert_if_known","assign","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_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cell","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","cloned","cloned","column","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_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","enable_selector","error_if_known_and","evaluate","evaluate","floor_planner","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from_iter","get_challenge","get_challenge","get_root","get_root","init","init","init","init","init","init","init","init","instance_value","into","into","into","into","into","into","into","into","into_field","invert","known","loaded","map","mul","mul","mul","mul","mul","mul","mul","mul","mul","mul","name_column","namespace","neg","pop_namespace","pop_namespace","push_namespace","push_namespace","region_index","row_offset","square","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","synthesize","to_field","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_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","unknown","unzip","value","value_field","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_challenge","get_root","init","init","into","into","pop_namespace","push_namespace","single_pass","synthesize","try_from","try_from","try_into","try_into","type_id","type_id","v1","vzip","vzip","SimpleFloorPlanner","SingleChipLayouter","assign_region","assign_table","borrow","borrow_mut","constrain_instance","deref","deref_mut","drop","fmt","from","get_challenge","get_root","init","into","new","pop_namespace","push_namespace","try_from","try_into","type_id","vzip","AssignmentPass","MeasurementPass","V1","V1Pass","borrow","borrow","borrow_mut","borrow_mut","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","from","from","init","init","into","into","strategy","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","CellNotAssigned","CircuitLayout","ConstraintNotSatisfied","ConstraintPoisoned","FailureLocation","InRegion","InstanceCellNotAssigned","Lookup","MockProver","OutsideRegion","Permutation","Shuffle","VerifyFailure","advice","advice_values","annotate_column","assert_satisfied","assert_satisfied_at_rows","assign_advice","assign_fixed","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","circuit_dot_graph","clone","clone_into","copy","cost_model","cs","default","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","emit","enable_selector","enter_region","eq","eq","equivalent","equivalent","exit_region","fill_from_row","fixed","fixed_values","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","get_challenge","init","init","init","init","instance","into","into","into","into","mark_equality_cells","metadata","pop_namespace","push_namespace","query_instance","render","run","selectors","show_equality_constraints","show_labels","to_owned","to_string","to_string","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","usable_rows","verify","verify_at_rows","view_height","view_width","vzip","vzip","vzip","vzip","offset","region","row","cell_values","column","column","column","constraint","constraint","gate","gate","gate_offset","gate_offset","location","location","location","location","lookup_index","name","name","offset","region","region","row","shuffle_index","CommitmentScheme","CostOptions","IPA","KZGGWC","KZGSHPLONK","Lookup","ModelCircuit","Permutation","Poly","Shuffle","advice","advice_columns","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","cmp","column_queries","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","drop","drop","drop","drop","drop","drop","drop","eq","eq","equivalent","equivalent","fixed","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from_circuit_to_cost_model_options","from_circuit_to_model_circuit","from_str","gate_degree","init","init","init","init","init","init","init","instance","into","into","into","into","into","into","into","into_model_circuit","k","k","lookup","lookups","max_deg","max_degree","partial_cmp","permutation","permutations","point_sets","rotations","serialize","serialize","shuffle","shuffles","size","to_owned","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","vzip","vzip","vzip","vzip","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","clone","clone_into","clone_into","clone_into","clone_into","cmp","cmp","column_type","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","equivalent","equivalent","equivalent","equivalent","equivalent","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","hash","index","init","init","init","init","init","into","into","into","into","into","new","partial_cmp","partial_cmp","to_owned","to_owned","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","Any","Assigned","Assignment","Backend","BoundsFailure","BoundsFailure","Challenge","Challenge","Circuit","Column","ColumnNotInPermutation","ColumnNotInPermutation","ColumnType","Config","Constant","ConstraintSystem","ConstraintSystemFailure","ConstraintSystemMid","Constraints","Error","ErrorBack","ErrorFront","Expression","FirstPhase","Fixed","Fixed","Fixed","FixedQuery","FloorPlanner","FloorPlanner","Frontend","Instance","Instance","Instance","InstanceTooLarge","InvalidInstances","Negated","NotEnoughColumnsForConstants","NotEnoughRowsAvailable","NotEnoughRowsAvailable","Opening","Other","Other","Params","Phase","Product","ProvingKey","Rational","Scaled","SecondPhase","Selector","Selector","Sum","Synthesis","TableColumn","TableError","ThirdPhase","Transcript","Trivial","VerifyingKey","VirtualCells","Zero","add","add","add","add","add","add","add","add_assign","add_assign","advice_column","advice_column_in","advice_column_phase","advice_column_phase","advice_queries","annotate_column","annotate_lookup_any_column","annotate_lookup_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","challenge_phase","challenge_phase","challenge_usable_after","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","cmp","column_index","column_index","column_type","column_type","complex_selector","complexity","compress_selectors","configure","configure_with_params","constants","copy","create_gate","create_proof","create_proof_with_engine","cube","cur","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","directly_convert_selectors_to_fixed","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","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","evaluate","evaluate","evaluate_lazy","exit_region","expr","expr","fill_from_row","fixed_column","fixed_commitments","fixed_queries","fmt","fmt","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","from","from","from","from_bytes","from_bytes","gates","gates","general_column_annotations","general_column_annotations","get_any_query_index","get_challenge","get_domain","get_vk","hash","hash","hash","hash","hash","hash","hash","hash","hash_into","identifier","index","index","index","index","index","index","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","inner","instance_column","instance_queries","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_pk_custom","keygen_vk","keygen_vk_custom","lookup","lookup_any","lookup_table_column","lookups","lookups","minimum_degree","minimum_rows","mul","mul","mul","mul","mul","mul","mul_assign","mul_assign","neg","neg","neg","new","next","not_enough_rows_available","not_enough_rows_available","num_advice_columns","num_advice_columns","num_challenges","num_challenges","num_fixed_columns","num_fixed_columns","num_instance_columns","num_instance_columns","num_selectors","numerator","params","partial_cmp","partial_cmp","partial_cmp","permutation","permutation","phase","phases","pinned","pk_read","pop_namespace","prev","product","push_namespace","query_advice","query_any","query_cell","query_cell","query_cell","query_cell","query_cell","query_cell","query_cells","query_challenge","query_fixed","query_instance","query_instance","query_selector","read","read","rot","rotation","rotation","selector","set_minimum_degree","shuffle","shuffles","shuffles","source","square","square","sub","sub","sub","sub","sub","sub","sub","sub_assign","sub_assign","sum","synthesize","synthesize","to_bytes","to_bytes","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_sealed","to_sealed","to_sealed","to_string","to_string","to_string","transcript_repr","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","unblinded_advice_column","unblinded_advice_column_in","unblinded_advice_columns","verify_proof","vk_read","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","write","write","current_k","current_k","EvaluationDomain","Output","Rotation","VerificationStrategy","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","cmp","coeff_from_vec","coeff_to_extended","commitment","constant_extended","constant_lagrange","cur","deref","deref","deref_mut","deref_mut","divide_by_vanishing_poly","drop","drop","empty_coeff","empty_extended","empty_lagrange","eq","equivalent","extended_k","extended_len","extended_to_coeff","finalize","fmt","fmt","from","from","get_extended_omega","get_omega","get_omega_inv","get_quotient_poly_degree","hash","init","init","into","into","ipa","k","kzg","l_i_range","lagrange_from_vec","lagrange_to_coeff","new","new","next","partial_cmp","pinned","prev","process","rotate_extended","rotate_omega","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Blind","CommitmentScheme","Curve","Guard","MSM","MSM","MSMAccumulator","Params","ParamsProver","ParamsProver","ParamsVerifier","ParamsVerifier","ParamsVerifier","Prover","QUERY_INSTANCE","QUERY_INSTANCE","Scalar","Verifier","add","add_assign","add_assign","add_msm","append_term","bases","borrow","borrow_mut","check","clone","clone_into","commit","commit_lagrange","create_proof","create_proof_with_engine","default","deref","deref_mut","downsize","drop","empty_msm","eq","equivalent","eval","fmt","from","get_g","init","into","k","mul","mul_assign","mul_assign","n","new","new","new","new","new_params","read","read_params","scalars","scale","to_owned","try_from","try_into","type_id","verifier_params","verify_proof","vzip","write","commitment","msm","multiopen","strategy","IPACommitmentScheme","ParamsIPA","ParamsVerifierIPA","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","commit","commit_lagrange","create_proof_with_engine","deref","deref","deref_mut","deref_mut","downsize","drop","drop","empty_msm","fmt","fmt","from","from","get_g","init","init","into","into","k","n","new","new_params","read","read_params","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","verifier_params","verify_proof","vzip","vzip","write","MSMIPA","add_constant_term","add_msm","add_msm","add_to_g_scalars","add_to_u_scalar","add_to_w_scalar","append_term","bases","borrow","borrow_mut","check","clone","clone_into","deref","deref_mut","drop","eval","fmt","from","init","into","new","scalars","scale","to_owned","try_from","try_into","type_id","vzip","ProverIPA","VerifierIPA","borrow","borrow","borrow_mut","borrow_mut","create_proof_with_engine","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","from","from","init","init","into","into","new","new","try_from","try_from","try_into","try_into","type_id","type_id","verify_proof","vzip","vzip","Accumulator","AccumulatorStrategy","GuardIPA","SingleStrategy","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","compute_g","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","finalize","finalize","fmt","fmt","fmt","fmt","from","from","from","from","g","init","init","init","init","into","into","into","into","new","new","process","process","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","u_packed","use_challenges","use_g","vzip","vzip","vzip","vzip","commitment","msm","multiopen","strategy","KZGCommitmentScheme","ParamsKZG","ParamsVerifierKZG","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","commit","commit_lagrange","deref","deref","deref_mut","deref_mut","downsize","drop","drop","empty_msm","fmt","fmt","from","from","from_parts","g2","get_g","init","init","into","into","k","n","new","new_params","read","read_custom","read_params","s_g2","setup","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","verifier_params","vzip","vzip","write","write_custom","DualMSM","MSMKZG","add_msm","add_msm","append_term","bases","borrow","borrow","borrow_mut","borrow_mut","check","check","clone","clone","clone_into","clone_into","combine_with_base","default","deref","deref","deref_mut","deref_mut","drop","drop","eval","fmt","fmt","from","from","from","init","init","into","into","new","new","scalars","scale","scale","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","ProverGWC","ProverSHPLONK","VerifierGWC","VerifierSHPLONK","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","create_proof_with_engine","create_proof_with_engine","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","fmt","fmt","fmt","fmt","from","from","from","from","init","init","init","init","into","into","into","into","new","new","new","new","new","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","verify_proof","verify_proof","vzip","vzip","vzip","vzip","AccumulatorStrategy","GuardKZG","SingleStrategy","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","finalize","finalize","fmt","fmt","fmt","from","from","from","init","init","init","into","into","into","new","new","new","new","process","process","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","with","Blake2bRead","Blake2bWrite","Challenge255","EncodedChallenge","Input","Transcript","TranscriptRead","TranscriptReadBuffer","TranscriptWrite","TranscriptWriterBuffer","as_challenge_scalar","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","common_point","common_point","common_point","common_scalar","common_scalar","common_scalar","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","finalize","finalize","fmt","fmt","fmt","from","from","from","get_scalar","get_scalar","init","init","init","init","init","init","init","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","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","write_point","write_point","write_scalar","write_scalar"],"q":[[0,"halo2_proofs"],[27,"halo2_proofs::arithmetic"],[64,"halo2_proofs::circuit"],[293,"halo2_proofs::circuit::floor_planner"],[331,"halo2_proofs::circuit::floor_planner::single_pass"],[354,"halo2_proofs::circuit::floor_planner::v1"],[385,"halo2_proofs::dev"],[497,"halo2_proofs::dev::FailureLocation"],[500,"halo2_proofs::dev::VerifyFailure"],[522,"halo2_proofs::dev::cost_model"],[668,"halo2_proofs::dev::metadata"],[788,"halo2_proofs::plonk"],[1444,"halo2_proofs::plonk::ErrorBack"],[1445,"halo2_proofs::plonk::ErrorFront"],[1446,"halo2_proofs::poly"],[1519,"halo2_proofs::poly::commitment"],[1588,"halo2_proofs::poly::ipa"],[1592,"halo2_proofs::poly::ipa::commitment"],[1639,"halo2_proofs::poly::ipa::msm"],[1669,"halo2_proofs::poly::ipa::multiopen"],[1701,"halo2_proofs::poly::ipa::strategy"],[1774,"halo2_proofs::poly::kzg"],[1778,"halo2_proofs::poly::kzg::commitment"],[1829,"halo2_proofs::poly::kzg::msm"],[1878,"halo2_proofs::poly::kzg::multiopen"],[1943,"halo2_proofs::poly::kzg::strategy"],[2003,"halo2_proofs::transcript"],[2091,"core::fmt"],[2092,"core::fmt"],[2093,"core::any"],[2094,"pasta_curves::arithmetic::curves"],[2095,"subtle"],[2096,"core::ops::function"],[2097,"alloc::alloc"],[2098,"alloc::boxed"],[2099,"subtle"],[2100,"core::marker"],[2101,"core::convert"],[2102,"rand_core"],[2103,"core::ops::function"],[2104,"core::fmt"],[2105,"halo2_frontend::circuit::table_layouter"],[2106,"core::iter::traits::collect"],[2107,"core::iter::traits::collect"],[2108,"alloc::string"],[2109,"core::option"],[2110,"alloc::vec"],[2111,"halo2_frontend::circuit::layouter"],[2112,"ff"],[2113,"core::cmp"],[2114,"core::iter::traits::iterator"],[2115,"halo2_frontend::dev"],[2116,"plotters::drawing::area"],[2117,"plotters::drawing::area"],[2118,"core::ops::range"],[2119,"core::cmp"],[2120,"serde::ser"],[2121,"halo2_frontend::plonk::circuit::constraint_system"],[2122,"std::collections::hash::map"],[2123,"std::collections::hash::map"],[2124,"halo2_middleware::zal::impls"],[2125,"halo2_middleware::zal::traits"],[2126,"core::cmp"],[2127,"halo2_middleware::circuit"],[2128,"halo2_backend::plonk::circuit"],[2129,"halo2_backend::helpers"],[2130,"halo2_frontend::plonk::circuit::constraint_system"],[2131,"halo2_frontend::plonk::permutation"],[2132,"halo2_backend::plonk"],[2133,"std::io::error"],[2134,"halo2_frontend::plonk::shuffle"],[2135,"core::error"],[2136,"halo2_frontend::plonk::circuit::expression::sealed"],[2137,"std::io"],[2138,"halo2_backend::poly"],[2139,"core::marker"],[2140,"pairing"],[2141,"halo2_backend::transcript"]],"d":["Curve elements are serialized in compressed form. Field …","Curve elements are serialized in uncompressed form. Field …","Serialization is the same as RawBytes, but no checks are …","This enum specifies how various types are serialized and …","This module provides common utilities, traits and …","","","Traits and structs for implementing circuit components.","","","","","Tools for developing circuits.","","","Returns the argument unchanged.","","","Calls U::from(self).","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.","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","This trait represents an element of a field.","The one element of the field, the multiplicative identity.","The scalar field of this elliptic curve.","The scalar field of this elliptic curve.","The zero element of the field, the additive identity.","Returns the curve constant a.","Returns the curve constant $a$.","Returns the curve constant b.","Returns the curve constant $b$.","Gets the coordinates of this point.","Cubes this element.","Doubles this element.","Apply the curve endomorphism by multiplying the …","Obtains a point given $(x, y)$, failing if it is not on the","Requests a hasher that accepts messages and returns …","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.","Obtains a point given Jacobian coordinates $X : Y : Z$, …","This utility function will parallelize an operation that …","Exponentiates self by exp, where exp is a little-endian …","Exponentiates self by exp, where exp is a little-endian …","Returns an element chosen uniformly at random using a …","Returns the square root of the field element, if it is …","Equivalent to Self::sqrt_ratio(self, one()).","Computes:","Squares this element.","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","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.","Obtains the inner value for assigning into the circuit.","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 column of this cell.","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<&V> to a Value<V> by copying the contents of …","Maps a Value<&mut V> to a Value<V> by copying the contents …","Copies the value to a given advice cell and constrains …","Cubes this field element.","","","","","","","","","","","","","","","","","","","Doubles this field element.","","","","","","","","","","Enables a selector at the given offset.","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.","Takes each element in the Iterator: if it is …","Queries the value of the given challenge.","","Gets the “root” of this assignment, bypassing the …","","","","","","","","","","Returns the value of the instance column’s cell at …","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.","Provides access to general chip state loaded at the …","Maps a Value<V> to Value<W> by applying a function to the …","","","","","","","","","","","Allows the circuit implementor to name/annotate a Column …","Enters into a namespace.","","Exits out of the existing namespace.","","Creates a new (sub)namespace and enters into it.","","Identifies the region in which this cell resides.","The relative offset of this cell within its region.","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).","","","","","","","","","","","","","","A simple FloorPlanner that performs minimal optimizations.","A Layouter for a single-chip circuit.","","","","","","","","","","Returns the argument unchanged.","","","","Calls U::from(self).","Creates a new single-chip layouter.","","","","","","","Assigns the circuit.","Measures the circuit.","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).","","","","","","","","","","A cell used in an active gate was not assigned to.","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.","An instance cell used in an active gate was not assigned …","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 …","A shuffle input did not exist in its corresponding map.","The reasons why a particular circuit is not satisfied.","Returns the list of Advice Columns used within a …","Return the content of an advice column as assigned by the …","","Panics if the circuit being checked by this MockProver is …","Panics if the circuit being checked by this MockProver is …","","","","","","","","","","","Builds a dot graph string representing the given circuit.","","","","The cost estimator takes high-level parameters for a …","Returns the constraint system","","","","","","","","","","","","","","Emits this failure in pretty-printed format to stderr.","","","","","","","","","Returns the list of Fixed Columns used within a MockProver …","Return the content of a fixed column as assigned by the …","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","Returns the list of Instance Columns used within a …","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.","","","","Renders the given circuit on the given drawing area.","Runs a synthetic keygen-and-prove operation on the given …","Returns the list of Selector Columns used within a …","Draws red lines between equality-constrained cells.","Sets the visibility of region labels.","","","","","","","","","","","","","","","","Returns the usable rows","Returns Ok(()) if this MockProver is satisfied, or a list …","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 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 index of the active gate.","The offset (relative to the start of the region) at which …","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 lookup is not satisfied.","The location at which the permutation is not satisfied.","The index of the lookup that is not satisfied. These …","The name of the lookup that is not satisfied.","The name of the lookup that is not satisfied.","The offset (relative to the start of the region) at which …","The region in which this cell should be assigned.","The region in which this gate was activated.","The absolute row at which this cell should be assigned.","The index of the lookup that is not satisfied. These …","Supported commitment schemes","Options to build a circuit specification to measure the …","Inner Product Argument commitment scheme","KZG with GWC19 mutli-open strategy","KZG with BDFG20 mutli-open strategy","Structure holding the Lookup related data for circuit …","High-level specifications of an abstract circuit.","Number of permutation enabled columns","Structure holding polynomial related data for benchmarks","Structure holding the Shuffle related data for circuit …","An advice column with the given rotations. May be repeated.","Number of advice columns.","","","","","","","","","","","","","","","","","","","","","","","","Number of distinct column queries across all gates.","","","","","","","","","","","","","","","","","","","","","","","","","","","","A fixed column with the given rotations. May be repeated.","","","","","","","","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.","Given a Plonk circuit, this function returns CostOptions","Given a Plonk circuit, this function returns a ModelCircuit","","Maximum degree of the custom gates.","","","","","","","","An instance column with the given rotations. May be …","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).","Convert CostOptions to ModelCircuit. The proof sizè is …","2^K bound on the number of rows.","Power-of-2 bound on the number of rows in the circuit.","A lookup over N columns with max input degree I and max …","Number of lookup arguments.","Maximum degree of the circuit.","Maximum degree of the constraint system.","","A permutation over N columns. May be repeated.","Equality constraint enabled columns.","Number of distinct sets of points in the multiopening …","Rotations for the given polynomial","","","A shuffle over N columns with max input degree I and max …","Number of shuffle arguments","Size of the proof for the circuit","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A column with an index and type","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 …","","","","","","","","","","","","","","","","","","","","","The type of the column.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","","","","Returns the argument unchanged.","","","The index of the column.","","","","","","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 …","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 …","Backend error case","Out of bounds index passed to a backend","Out of bounds index passed to a backend","A challenge squeezed from transcript after advice columns …","This is a challenge","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 …","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","This is a description of the circuit environment, such as …","The constraint system is not satisfied.","This is a description of the circuit environment, such as …","A set of polynomial constraints with a common selector.","This is an error that could occur during proving or …","This is an error that could occur during proving.","This is an error that could occur during circuit synthesis.","Low-degree expression representing an identity that must …","First phase","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 …","Frontend error case","An instance column","An Instance variant","This is an instance (external) column queried at a certain …","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.","k is too small for the given circuit.","Opening error","Generic error not covered by previous cases","Generic error not covered by previous cases","Optional circuit configuration parameters. Requires the …","Phase of advice column","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","Second phase","A selector, representing a fixed boolean value per row of …","This is a virtual selector","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.","An error relating to a lookup table.","Third phase","Transcript error","A value that does not require inversion to evaluate.","This is a verifying key which allows for the verification …","Exposes the “virtual cells” that can be queried while …","The field element zero.","","","","","","","","","","Allocate a new advice column at FirstPhase","Allocate a new advice column in given phase","Returns phase of advice columns","Contains the phase for each advice column. Should have …","Returns advice queries","Allows the developer to include an annotation for an …","Annotate an Instance column.","Annotate a Lookup column.","Assign an advice column value (witness)","Assign a fixed value","Compute the number of blinding factors necessary to …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns phase of challenges","Contains the phase for each challenge. Should have same …","Requests a challenge that is usable after the given phase.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Column index","Column index","Type of this column.","","Allocate a new complex selector that can appear anywhere …","Approximate the computational complexity of this …","This will compress selectors together depending on their …","The circuit is given an opportunity to describe the exact …","The circuit is given an opportunity to describe the exact …","Returns constants","Assign two cells to have the same value","Creates a new gate.","This creates a proof for the provided circuit when given …","This creates a proof for the provided circuit when given …","Cubes this element.","Return expression from column at the current row","","Compute the degree of the constraint system (the maximum …","Compute the degree of this polynomial","Returns the denominator, if non-trivial.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Does not combine selectors and directly replaces them …","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 …","Evaluate the polynomial lazily using the provided closures …","Exits the current region.","Return expression from selector","Return Expression","Fills a fixed column starting from the given row with …","Allocate a new fixed column","Returns commitments of fixed polynomials","Returns fixed queries","","","","","","","","","","","","","","","","","","","","","","","","","","","","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.","Reads a verification key from a slice of bytes using …","Reads a proving key from a slice of bytes using Self::read.","Returns gates","","Returns general column annotations","","","Queries the value of the given challenge.","Get the underlying EvaluationDomain.","Get the underlying VerifyingKey.","","","","","","","","","Hashes a verification key into a transcript.","Identifier for this expression. Expressions with identical …","Index of this column.","Returns index of this selector","Index of this challenge.","","Query index","","","","","","","","","","","","","","","","","","","","","","","","","Returns inner column","Allocate a new instance column","Returns instance queries","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 ProvingKey from an instance of Circuit.","Generate a VerifyingKey from an instance of Circuit. By …","Generate a VerifyingKey from an instance of Circuit.","Add a lookup argument for some input expressions and table …","Add a lookup argument for some input expressions and table …","Allocates a new fixed column that can be used in a lookup …","Returns lookup arguments","","","Returns the minimum necessary rows that need to exist in …","","","","","","","","","","","","","Return expression from column at the next row","Constructs an Error::NotEnoughRowsAvailable.","Constructs an Error::NotEnoughRowsAvailable.","Returns number of advice columns","","Returns number of challenges","","Returns number of fixed columns","","Returns number of instance columns","","Returns number of selectors","Returns the numerator.","Returns a reference to the parameters that should be used …","","","","Returns permutation argument","","Phase of this challenge.","Returns the list of phases","Obtains a pinned representation of this verification key …","Reads a proving key from a buffer. Does so by reading …","Exits out of the existing namespace.","Return expression from column at the previous row","","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","Return expression from cell","","Return expression from column at a relative position","","","","Make side effects","Query a challenge","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.","Reads a verification key from a buffer.","Reads a proving key from a buffer. Does so by reading …","Return expression from column at the specified rotation","Rotation of this query","Rotation of this query","Allocate a new (simple) selector. Simple selectors cannot …","Sets the minimum degree required by the circuit, which can …","Add a shuffle argument for some input expressions and …","Returns shuffle arguments","","","Squares this element.","Square this expression.","","","","","","","","","","","Given the provided cs, synthesize the given circuit.","Given the provided cs, synthesize the circuit. The …","Writes a verifying key to a vector of bytes using …","Writes a proving key to a vector of bytes using Self::write…","","","","","","","","","","","","","","","","","","","","","","Returns representative of this VerifyingKey in transcripts","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Allocate a new unblinded advice column at FirstPhase","Allocate a new unblinded advice column in given phase. …","Contains the index of each advice column that is left …","Returns a boolean indicating whether or not the proof is …","Reads a verification key from a buffer.","","","","","","","","","","","","","","","","","","","","","","","","Constructs a set of constraints that are controlled by the …","Returns a copy of this circuit with no witness values …","Writes a verifying key to a buffer.","Writes a proving key to a buffer.","The current value of k being used.","The current value of k being used.","This structure contains precomputed constants and other …","The output type of this verification strategy after …","Describes the relative rotation of a vector. Negative …","Trait representing a strategy for verifying Halo 2 proofs.","","","","","","","","","","Obtains a polynomial in coefficient form when given a …","This takes us from an n-length coefficient vector into a …","Generic commitment scheme structures","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","Get the size of the extended domain","This takes us from the extended evaluation domain and gets …","Finalizes the batch and checks its validity.","","","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).","Inner product argument commitment scheme","Get the size of the domain","KZG commitment scheme","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 …","Creates new verification strategy instance","This constructs a new evaluation domain object based on …","The next location in the evaluation domain","","Obtain a pinned version of this evaluation domain; a …","The previous location in the evaluation domain","Obtains an MSM from the verifier strategy and yields back …","Rotate the extended domain polynomial over the original …","Multiplies a value by some power of $\\\\omega$, essentially …","","","","","","","","","","","Wrapper type around a blinding factor.","Defines components of a commitment scheme.","Elliptic curve used to commit the application and witnesses","Unfinalized verification result. This is returned in …","Multiscalar multiplication engine","Multiscalar multiplication engine","Accumulator for compressed verification","Parameters for circuit synthesis and prover parameters.","Parameters for circuit synthesis and prover parameters.","Constant prover parameters","Verifier specific functionality with circuit constraints","Constant verifier parameters","Constant verifier parameters.","Common multi-open prover interface for various commitment …","Query instance or not","Query instance or not","Application field of this commitment scheme","Common multi-open verifier interface for various …","","","","Add another multiexp into this one","Add arbitrary term (the scalar and the point)","Return base points","","","Perform multiexp and check that it results in zero","","","This computes a commitment to a polynomial described by …","This commits to a polynomial using its evaluations over …","Create a multi-opening proof","Create a multi-opening proof","","","","Downsize Params with smaller k.","","Generates an empty multiscalar multiplication struct using …","","","Perform multiexp and return the result","","Returns the argument unchanged.","Getter for g generators","","Calls U::from(self).","Logarithmic size of the circuit","","","","Size of the circuit","Returns new instance of parameters","Creates new prover instance","Creates new verifier instance","Given rng creates new blinding scalar","Wrapper for parameter generator","Reads params from a buffer.","Wrapper for parameter reader","Scalars","Scale all scalars in the MSM by some scaling factor","","","","","Returns verification parameters.","Process the proof and return unfinished result named Guard","","Writes params to a buffer.","This module contains an implementation of the polynomial …","Multiscalar multiplication engines","IPA multi-open scheme This module contains an optimisation …","Strategies used with KZG scheme","Concrete IPA commitment scheme","Public parameters for IPA commitment scheme","Verifier parameters","","","","","","","This computes a commitment to a polynomial described by …","This commits to a polynomial using its evaluations over …","Create a polynomial commitment opening proof for the …","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","","","Initializes parameters for the curve, given a random …","","Reads params from a buffer.","","","","","","","","","","Checks to see if the proof represented within transcript …","","","Writes params to a buffer.","A multiscalar multiplication in the polynomial commitment …","Add a value to the first entry of g_scalars.","Add another multiexp into this one","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","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","Given verifier parameters Creates an empty multi scalar …","","","","","","","","IPA multi-open prover","IPA multi-open verifier","","","","","Create a multi-opening proof","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","An accumulator instance consisting of an evaluation claim …","A verifier that checks multiple proofs in a batch.","Wrapper for verification accumulator","A verifier that checks single proof","","","","","","","","","","","","","Computes G = ⟨s, params.g⟩","","","","","","","","","","","","","Finalizes the batch and checks its validity.","Finalizes the batch and checks its validity.","","","","","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 …","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","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","","","","","KZG commitment scheme","Multiscalar multiplication engines","KZG multi-open scheme","Strategies used with KZG scheme","Umbrella commitment scheme construction for all KZG …","These are the public parameters for the polynomial …","KZG multi-open verification parameters","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Initializes parameters for the curve through existing …","Returns gernerator on G2","","","","Calls U::from(self).","Calls U::from(self).","","","","","Reads params from a buffer.","Reads params from a buffer.","","Returns first power of secret on G2","Initializes parameters for the curve, draws toxic secret …","","","","","","","","","","","Writes params to a buffer.","Writes parameters to buffer","Two channel MSM accumulator","A multiscalar multiplication in the polynomial commitment …","","Add another multiexp into this one","","","","","","","","Performs final pairing check with given verifier params …","","","","","Prepares all scalars in the MSM to linear combination","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","Create an empty MSM instance","Create a new two channel MSM accumulator instance","","","Scale all scalars in the MSM by some scaling factor","","","","","","","","","","","Concrete KZG prover with GWC variant","Concrete KZG prover with SHPLONK variant","Concrete KZG verifier with GWC variant","Concrete KZG multiopen verifier with SHPLONK variant","","","","","","","","","Create a multi-opening proof","Create a multi-opening proof","","","","","","","","","","","","","","","","","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).","","","Given parameters creates new prover instance","","","","","","","","","","","","","","","","Verify a multi-opening proof","","","","","A verifier that checks multiple proofs in a batch","Wrapper for linear verification accumulator","A verifier that checks a single proof","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Constructs an empty batch verifier","","Constructs an empty batch verifier","","","","","","","","","","","","","","","","","","","Constructs and initialized new batch verifier","We will replace BLAKE2b with an algebraic hash function in …","We will replace BLAKE2b with an algebraic hash function in …","A 255-bit 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 …","Initializes transcript at verifier side.","Transcript view from the perspective of a prover that has …","Manages beginning and finishing of transcript pipeline.","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.","Get a scalar field element from an encoded challenge.","","Initialize a transcript given an input buffer.","Initialize a transcript given an output buffer.","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).","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":[1,1,1,0,0,1,1,0,1,1,1,1,0,1,1,1,0,1,1,0,0,1,0,1,1,1,1,184,184,108,184,0,0,108,0,25,184,108,25,184,108,184,108,108,25,25,184,108,184,25,184,108,25,25,184,184,0,25,25,25,25,25,25,25,0,0,0,185,0,185,0,0,0,38,0,0,0,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,28,28,28,34,28,38,37,38,37,45,24,40,39,31,28,34,37,45,24,40,39,31,28,34,37,31,24,40,39,31,24,40,39,31,24,24,39,185,28,28,38,37,24,24,31,24,24,45,24,40,40,39,31,28,34,37,45,24,40,39,31,28,34,37,24,45,24,40,39,31,28,34,37,37,28,24,24,31,0,45,24,40,39,31,28,34,37,45,24,24,40,40,39,31,28,28,34,34,37,24,38,37,38,37,45,24,40,39,31,28,34,37,28,45,24,40,39,31,28,34,37,24,24,24,185,24,24,24,24,24,24,24,24,24,24,24,28,38,24,38,37,38,37,39,39,24,24,24,24,24,24,24,24,24,24,24,45,24,24,40,39,31,24,24,45,24,40,39,31,28,34,37,45,24,40,39,31,28,34,37,45,24,40,39,31,28,34,37,24,24,31,31,45,24,40,39,31,28,34,37,24,0,0,61,61,62,61,62,61,61,62,61,62,61,62,61,62,61,62,61,61,61,62,61,62,61,61,61,0,62,62,61,62,61,62,61,0,62,61,0,0,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,0,0,0,0,64,65,64,65,64,65,64,65,64,65,64,65,64,65,64,65,64,65,0,64,65,64,65,64,65,64,65,74,0,74,74,0,71,74,74,0,71,74,74,0,66,66,66,66,66,66,66,71,74,73,66,71,74,73,66,0,71,71,66,0,66,73,71,74,73,66,71,74,73,66,71,74,73,66,74,66,66,71,74,71,74,66,66,66,66,71,71,74,74,73,66,71,74,73,66,66,71,74,73,66,66,71,74,73,66,73,0,66,66,66,73,66,66,73,73,71,71,74,71,74,73,66,71,74,73,66,71,74,73,66,66,66,66,73,73,71,74,73,66,186,186,187,188,189,190,191,188,192,189,190,189,190,188,193,194,191,193,193,194,189,189,190,190,194,0,0,89,89,89,0,0,0,0,0,90,88,89,90,82,83,84,85,88,89,90,82,83,84,85,88,82,83,84,85,82,83,84,85,82,88,89,90,82,83,84,85,88,89,90,82,83,84,85,88,84,88,89,90,82,83,84,85,88,89,82,89,82,90,89,90,82,83,84,85,88,89,90,82,83,84,85,88,0,0,82,90,89,90,82,83,84,85,88,90,89,90,82,83,84,85,88,90,90,88,90,88,88,90,82,90,88,88,82,84,88,90,88,88,82,83,84,85,89,90,82,83,84,85,88,89,90,82,83,84,85,88,89,90,82,83,84,85,88,89,90,82,83,84,85,88,0,0,0,0,0,92,96,93,94,95,92,96,93,94,95,92,93,94,95,92,93,94,95,92,96,92,92,96,93,94,95,92,96,93,94,95,92,96,93,94,95,92,96,93,94,95,92,96,93,94,95,92,92,96,96,93,93,94,94,95,95,92,92,96,96,96,96,93,93,94,94,95,95,95,95,95,92,92,92,96,93,94,95,92,96,93,94,95,92,92,96,92,93,94,95,92,96,93,94,95,92,96,93,94,95,92,96,93,94,95,92,96,93,94,95,92,96,93,94,95,0,52,102,0,0,0,112,119,27,0,102,0,0,119,27,0,59,102,0,119,0,0,0,0,0,0,0,0,52,102,0,0,59,112,0,52,102,119,119,102,27,119,27,119,119,27,59,0,102,0,23,102,0,0,102,102,27,0,27,0,119,23,0,0,23,23,23,23,23,23,23,102,23,23,72,72,72,106,72,57,72,72,57,57,72,112,106,52,119,107,109,23,120,72,122,30,123,124,125,44,111,35,51,102,29,36,33,27,112,106,52,119,107,109,23,120,72,122,30,123,124,125,44,111,35,51,102,29,36,33,27,72,106,72,106,52,107,109,23,72,30,44,111,35,51,102,29,36,33,106,52,107,109,23,72,30,44,111,35,51,102,29,36,33,52,30,35,111,111,30,30,72,102,72,59,59,72,57,72,0,0,23,30,72,72,102,23,112,106,52,119,107,109,23,120,72,122,30,123,124,125,44,111,35,51,102,29,36,33,27,112,106,52,119,107,109,23,120,72,122,30,123,124,125,44,111,35,51,102,29,36,33,27,72,23,112,106,52,119,107,109,23,120,72,122,30,123,124,125,44,111,35,51,102,29,36,33,27,44,72,72,57,57,52,23,30,44,111,35,51,102,29,36,33,52,23,30,44,111,35,51,102,29,36,33,23,102,102,57,44,51,57,72,107,72,112,112,106,52,119,119,107,109,23,120,72,122,30,123,124,125,44,111,35,51,102,29,36,33,27,27,112,112,112,106,106,52,52,52,52,119,119,107,109,23,23,23,23,23,120,72,122,30,30,30,30,30,123,124,125,44,111,35,51,51,102,29,36,33,27,107,109,72,106,72,106,72,57,107,109,52,30,44,35,51,29,36,33,107,102,30,44,51,30,111,51,112,106,52,119,107,109,23,120,72,122,30,123,124,125,44,111,35,51,102,29,36,33,27,35,72,72,112,106,52,119,107,109,23,120,72,122,30,123,124,125,44,111,35,51,102,29,36,33,27,120,23,44,23,0,0,0,0,72,72,72,72,106,106,72,23,23,23,23,102,102,23,23,23,23,102,30,30,119,27,72,106,72,106,72,106,72,106,72,23,59,52,30,35,72,106,51,72,107,0,57,30,102,57,122,122,110,52,30,29,36,33,102,122,122,57,122,122,107,109,30,111,111,72,72,72,72,106,119,23,102,23,23,23,23,23,23,102,23,23,102,195,59,107,109,106,52,107,109,23,72,30,44,111,35,51,102,29,36,33,123,124,125,112,119,27,107,112,106,52,119,107,109,23,120,72,122,30,30,30,30,123,124,125,44,111,35,51,102,29,36,33,27,112,106,52,119,107,109,23,120,72,122,30,123,124,125,44,111,35,51,102,29,36,33,27,112,106,52,119,107,109,23,120,72,122,30,123,124,125,44,111,35,51,102,29,36,33,27,72,72,106,0,0,112,106,52,119,107,109,23,120,72,122,30,123,124,125,44,111,35,51,102,29,36,33,27,120,59,107,109,196,197,0,145,0,0,105,131,105,131,105,131,105,131,105,131,131,0,131,131,105,105,131,105,131,131,105,131,131,131,131,105,105,131,131,131,145,105,131,105,131,131,131,131,131,105,105,131,105,131,0,131,0,131,131,131,145,131,105,105,131,105,145,131,131,105,131,105,131,105,131,105,131,105,131,0,0,143,144,0,134,144,0,0,143,0,143,198,0,199,144,143,0,154,154,154,200,200,200,154,154,200,154,154,198,134,199,199,154,154,154,134,154,134,154,154,200,154,154,198,154,154,134,154,154,154,134,198,199,144,154,143,134,143,200,200,154,154,154,154,198,144,154,134,0,0,0,0,0,0,0,157,159,157,159,157,157,157,157,0,157,159,157,159,157,157,159,157,157,159,157,159,157,157,159,157,159,157,157,157,159,157,159,157,157,159,157,159,157,159,157,0,157,159,157,0,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,0,0,161,162,161,162,161,161,162,161,162,161,162,161,162,161,162,161,162,161,162,161,162,161,162,161,162,161,162,162,161,162,0,0,0,0,160,163,164,165,160,163,164,165,160,163,160,163,160,160,163,164,165,160,163,164,165,160,163,164,165,164,165,160,163,164,165,160,163,164,165,163,160,163,164,165,160,163,164,165,164,165,164,165,160,163,160,163,164,165,160,163,164,165,160,163,164,165,163,160,160,160,163,164,165,0,0,0,0,0,0,0,166,169,166,169,166,166,166,166,166,169,166,169,166,166,169,166,166,169,166,169,166,166,166,166,169,166,169,166,166,166,169,166,166,169,166,166,166,166,169,166,169,166,169,166,166,169,166,166,0,0,168,170,168,168,168,170,168,170,168,170,168,170,168,170,168,168,168,170,168,170,168,170,168,168,170,168,170,170,168,170,168,170,168,170,168,168,170,168,170,168,170,168,170,168,170,168,170,0,0,0,0,173,175,174,176,173,175,174,176,173,174,173,175,174,176,173,175,174,176,173,175,174,176,173,175,174,176,173,175,174,176,173,175,174,176,173,175,174,176,173,175,174,174,176,173,175,174,176,173,175,174,176,173,175,174,176,175,176,173,175,174,176,0,0,0,177,178,179,177,178,179,177,178,179,177,178,179,177,178,179,177,178,179,177,178,179,178,179,177,178,179,177,178,179,177,178,179,177,178,179,178,178,179,179,178,179,177,178,179,177,178,179,177,178,179,177,178,179,177,178,179,178,0,0,0,0,113,0,0,0,0,0,113,181,182,183,181,182,183,181,182,183,181,182,183,133,181,182,133,181,182,181,182,183,183,181,182,183,181,182,183,201,182,181,182,183,181,182,183,113,183,202,201,181,181,182,182,183,181,182,183,113,183,146,181,146,181,133,181,182,133,181,182,183,181,182,183,181,182,183,181,182,183,181,182,183,114,182,114,182],"f":[0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],0,[1,1],[[-1,-2],2,[],[]],[3,-1,[]],[3,-1,[]],0,[3,2],[[1,4],[[6,[2,5]]]],[-1,-1,[]],0,[[],3],[-1,-2,[],[]],0,0,[-1,-2,[],[]],0,[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[-1,[[9,[[8,[-1]]]]],[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],[[9,[-1]]],[]],[10,[[13,[11,12]]]],[-1,[[9,[-1]]],[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],[-1,15,[]],[-1,2,[]],[[],[[9,[-1]]],[]],[[[16,[-1]],-2],2,17,[11,17,18,19]],[[-1,-2],-1,[],[[21,[[16,[20]]]]]],[[-1,-2],-1,[],[[21,[[16,[20]]]]]],[-1,-2,22,[]],[-1,[[9,[-1]]],[]],[-1,[[2,[14,-1]]],[]],[[-1,-1],[[2,[14,-1]]],[]],[-1,-1,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,[[[24,[[23,[-1]]]],[24,[-1]]],[],25],[[[24,[-1]],[24,[-1]]],[],[]],[[[24,[-1]],[24,[-1]]],[],[]],[[[24,[-1]],[24,[-1]]],[],[]],[[[24,[[23,[-1]]]],-1],[],25],[[[24,[[23,[-1]]]],[24,[-1]]],[],25],[[[24,[-1]],[24,[-1]]],[],[]],[[[24,[-1]],[24,[-1]]],[],[]],[[[24,[[23,[-1]]]],-1],[],25],[[[24,[-1]],[24,[-1]]],[],[]],[[[24,[-1]],-2],[[24,[-3]]],[],26,[]],[[[24,[-1]]],[[24,[-1]]],[]],[[[24,[-1]]],[[24,[-1]]],[]],[[[24,[-1]],-2],2,[],26],[[[24,[-1]]],[[6,[-1,27]]],[]],[[[28,[-1]],-2,[30,[29]],3,-3],[[6,[[31,[-4,-1]],27]]],25,11,32,[]],[[[28,[-1]],-2,[30,[29]],3,-3],[[6,[[31,[-3,-1]],27]]],25,11,[]],[[[28,[-1]],-2,[30,[33]],3,[30,[29]],3],[[6,[[31,[-1,-1]],27]]],25,11],[[[34,[-1]],-2,35,3,-3],[[6,[2,27]]],25,11,32],[[[28,[-1]],-2,[30,[36]],3,-3],[[6,[[31,[-4,-1]],27]]],25,11,32,[]],[[-1,-2,-3],[[6,[-4,27]]],[],11,32,[]],[[[37,[-1,-2]],-3,-4],[[6,[-5,27]]],25,[[38,[-1]]],11,32,[]],[[-1,-2,-3],[[6,[2,27]]],[],11,32],[[[37,[-1,-2]],-3,-4],[[6,[2,27]]],25,[[38,[-1]]],11,32],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[31,[-1,-2]]],39,[],25],[[[24,[-1]]],[[24,[-1]]],19],[40,40],[39,39],[[[31,[-1,-2]]],[[31,[-1,-2]]],19,[19,25]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[[24,[-1]]],[[24,[-1]]],19],[[[24,[-1]]],[[24,[-1]]],19],0,[-1,[],[]],[[[28,[-1]],39,-2],[[6,[2,27]]],25,[[41,[[23,[-1]]]]]],[[[28,[-1]],39,39],[[6,[2,27]]],25],[[-1,39,[30,[33]],3],[[6,[2,27]]],[]],[[[37,[-1,-2]],39,[30,[33]],3],[[6,[2,27]]],25,[[38,[-1]]]],[[[24,[-1]]],[[24,[-1]]],42],[[[24,[-1]]],[[24,[-1]]],42],[[[31,[-1,-2]],-3,[28,[-2]],[30,[29]],3],[[6,[[31,[-1,-2]],27]]],19,25,11],[[[24,[-2]]],[[24,[[23,[-1]]]]],25,[[43,[[23,[-1]]]]]],[[],[[24,[-1]]],[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[40],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[[[24,[-2]]],[[24,[[23,[-1]]]]],25,[[43,[[23,[-1]]]]]],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[[[37,[-1,-2]]],2,25,[[38,[-1]]]],[[[28,[-1]],-2,44,3],[[6,[2,27]]],25,11],[[[24,[-1]],-2],[[6,[2,27]]],[],26],[[[24,[[23,[-1]]]]],[[24,[-1]]],25],[[[31,[[23,[-1]],-1]]],[[31,[-1,-1]]],25],0,[[45,4],[[6,[2,5]]]],[[[24,[-1]],4],[[6,[2,5]]],46],[[40,4],[[6,[2,5]]]],[[39,4],[[6,[2,5]]]],[[[31,[-1,-2]],4],[[6,[2,5]]],46,[46,25]],[[[28,[-1]],4],[[6,[2,5]]],[46,25]],[[[34,[-1]],4],[[6,[2,5]]],[46,25]],[[[37,[-1,-2]],4],[[6,[2,5]]],[46,25],[46,[38,[-1]]]],[-1,-1,[]],[[[24,[-1]]],[[24,[[23,[-1]]]]],25],[-1,-1,[]],[3,40],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[47,[[28,[-1]]],25],[-1,-1,[]],[-1,-1,[]],[48,[[34,[-1]]],25],[-1,-1,[]],[-1,[[24,[-3]]],49,[],[[50,[-2]]]],[[-1,51],[[24,[-2]]],[],[]],[[[37,[-1,-2]],51],[[24,[-1]]],25,[[38,[-1]]]],[-1,[],[]],[[[37,[-1,-2]]],[],25,[[38,[-1]]]],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[[28,[-1]],[30,[33]],3],[[6,[[24,[-1]],27]]],25],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[24,[-2]]],[[24,[[23,[-1]]]]],25,[[41,[[23,[-1]]]]]],[[[24,[-2]]],[[24,[[23,[-1]]]]],25,[[43,[[23,[-1]]]]]],[-1,[[24,[-1]]],[]],[-1,[],[]],[[[24,[-1]],-2],[[24,[-3]]],[],26,[]],[[[24,[-1]],[24,[-1]]],[],[]],[[[24,[[23,[-1]]]],-1],[],25],[[[24,[-1]],[24,[-1]]],[],[]],[[[24,[-1]],[24,[-1]]],[],[]],[[[24,[-1]],[24,[-1]]],[],[]],[[[24,[[23,[-1]]]],-1],[],25],[[[24,[[23,[-1]]]],[24,[-1]]],[],25],[[[24,[-1]],[24,[-1]]],[],[]],[[[24,[[23,[-1]]]],[24,[-1]]],[],25],[[[24,[-1]],[24,[-1]]],[],[]],[[[28,[-1]],-2,-3],2,25,11,[[41,[[30,[52]]]]]],[[-1,-2],[[37,[-3]]],[],26,[]],[[[24,[-1]]],[],53],[[-1,[55,[54]]],2,[]],[[[37,[-1,-2]],[55,[54]]],2,25,[[38,[-1]]]],[[-1,-2],2,[],26],[[[37,[-1,-2]],-3],2,25,[[38,[-1]]],26],0,0,[[[24,[-2]]],[[24,[[23,[-1]]]]],25,[[43,[[23,[-1]]]]]],[[[24,[-1]],[24,[-1]]],[],[]],[[[24,[[23,[-1]]]],[24,[-1]]],[],25],[[[24,[-1]],[24,[-1]]],[],[]],[[[24,[[23,[-1]]]],-1],[],25],[[[24,[-1]],[24,[-1]]],[],[]],[[[24,[[23,[-1]]]],[24,[-1]]],[],25],[[[24,[[23,[-1]]]],-1],[],25],[[[24,[-1]],[24,[-1]]],[],[]],[[[24,[-1]],[24,[-1]]],[],[]],[[[24,[-1]],[24,[-1]]],[],[]],[[-2,-3,[56,[[30,[36]],12]]],[[6,[2,27]]],25,[[57,[-1]],58],[[59,[-1]]]],[[[24,[-1]]],[[24,[[23,[-2]]]]],[],25],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[24,[[60,[-1]]]]],[[60,[[24,[-1]]]]],42],[[[24,[-1]],3],[[56,[[24,[-2]],12]]],49,[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[[],[[24,[-1]]],[]],[[[24,[[2,[-1,-2]]]]],[[2,[[24,[-1]],[24,[-2]]]]],[],[]],[[[31,[-1,-2]]],[[24,[-1]]],[],25],[[[31,[-1,-2]]],[[24,[[23,[-2]]]]],[],25],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[24,[-1]],[24,[-2]]],[[24,[[2,[-1,-2]]]]],[],[]],0,0,[[[61,[-1,-2]],-3,-4],[[6,[-5,27]]],25,[[57,[-1]],58],11,32,[]],[[[61,[-1,-2]],-3,-4],[[6,[2,27]]],25,[[57,[-1]],58],11,32],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[61,[-1,-2]],39,[30,[33]],3],[[6,[2,27]]],25,[[57,[-1]],58]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,2],[3,2],[[62,4],[[6,[2,5]]]],[[[61,[-1,-2]],4],[[6,[2,5]]],[46,25],[46,[57,[-1]]]],[-1,-1,[]],[-1,-1,[]],[[[61,[-1,-2]],51],[[24,[-1]]],25,[[57,[-1]],58]],[[[61,[-1,-2]]],[],25,[[57,[-1]],58]],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],[[[61,[-1,-2]],[55,[54]]],2,25,[[57,[-1]],58]],[[[61,[-1,-2]],-3],2,25,[[57,[-1]],58],26],0,[[-2,-3,[56,[[30,[36]],12]]],[[6,[2,27]]],25,[[57,[-1]],58],[[59,[-1]]]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],0,[-1,-2,[],[]],[-1,-2,[],[]],0,0,[[[63,[-1,-2]],-3,-4],[[6,[-5,27]]],25,[[57,[-1]],58],11,32,[]],[[[63,[-1,-2]],-3,-4],[[6,[2,27]]],25,[[57,[-1]],58],11,32],[-1,-2,[],[]],[-1,-2,[],[]],[[[63,[-1,-2]],39,[30,[33]],3],[[6,[2,27]]],25,[[57,[-1]],58]],[3,-1,[]],[3,-1,[]],[3,2],[[[63,[-1,-2]],4],[[6,[2,5]]],25,[[57,[-1]]]],[-1,-1,[]],[[[63,[-1,-2]],51],[[24,[-1]]],25,[[57,[-1]],58]],[[[63,[-1,-2]]],[],25,[[57,[-1]],58]],[[],3],[-1,-2,[],[]],[[-2,[56,[[30,[36]],12]]],[[6,[[63,[-1,-2]],27]]],25,[[57,[-1]]]],[[[63,[-1,-2]],[55,[54]]],2,25,[[57,[-1]],58]],[[[63,[-1,-2]],-3],2,25,[[57,[-1]],58],26],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,-2,[],[]],0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,2],[3,2],[[64,4],[[6,[2,5]]]],[[[65,[-1,-2]],4],[[6,[2,5]]],[46,25],[46,[57,[-1]]]],[-1,-1,[]],[-1,-1,[]],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],0,[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,[[[66,[-1]]],[[56,[[56,[[67,[-1]],12]],12]]],[68,69]],[[[66,[-1]],[30,[29]]],[[16,[[67,[-1]]]]],[68,69]],[[[66,[-1]],-2,[30,[52]]],2,25,26],[[[66,[-1]]],2,[68,69]],[[[66,[-1]],-2,-2],2,[68,69],[19,70]],[[[66,[-1]],-2,[30,[29]],3,-3],[[6,[2,27]]],25,26,26],[[[66,[-1]],-2,[30,[36]],3,-3],[[6,[2,27]]],25,26,26],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-2,54,25,[[59,[-1]]]],[71,71],[[-1,-2],2,[],[]],[[[66,[-1]],[30,[52]],3,[30,[52]],3],[[6,[2,27]]],25],0,[[[66,[-1]]],[[72,[-1]]],[68,69]],[[],73],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,2],[3,2],[3,2],[3,2],[[74,[66,[-1]]],2,25],[[[66,[-1]],-2,44,3],[[6,[2,27]]],25,26],[[[66,[-1]],-2],2,25,26],[[71,71],15],[[74,74],15],[[-1,-2],15,[],[]],[[-1,-2],15,[],[]],[[[66,[-1]]],2,25],[[[66,[-1]],[30,[36]],3,[24,[[23,[-1]]]]],[[6,[2,27]]],25],[[[66,[-1]]],[[56,[[56,[[67,[-1]],12]],12]]],[68,69]],[[[66,[-1]],[30,[36]]],[[16,[[67,[-1]]]]],[68,69]],[[71,4],[[6,[2,5]]]],[[71,4],[[6,[2,5]]]],[[74,4],[[6,[2,5]]]],[[74,4],[[6,[2,5]]]],[[73,4],[[6,[2,5]]]],[[[66,[-1]],4],[[6,[2,5]]],[46,25]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[66,[-1]],51],[[24,[-1]]],25],[[],3],[[],3],[[],3],[[],3],[[[66,[-1]]],[[56,[[56,[[75,[-1]],12]],12]]],[68,69]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[73,15],73],0,[[[66,[-1]],[55,[54]]],2,25],[[[66,[-1]],-2],2,25,26],[[[66,[-1]],[30,[33]],3],[[6,[[24,[-1]],27]]],25],[[73,76,-2,[78,[-3,77]]],[[6,[2,79]]],25,[[59,[-1]]],80],[[76,-2,[56,[[56,[-1,12]],12]]],[[6,[[66,[-1]],27]]],[68,69],[[59,[-1]]]],[[[66,[-1]]],[[56,[[56,[15,12]],12]]],[68,69]],[[73,15],73],[[73,15],73],[-1,-2,[],[]],[-1,54,[]],[-1,54,[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[[[66,[-1]]],[[81,[3]]],[68,69]],[[[66,[-1]]],[[6,[2,[56,[74,12]]]]],[68,69]],[[[66,[-1]],-2,-2],[[6,[2,[56,[74,12]]]]],[68,69],[19,70]],[[73,[81,[3]]],73],[[73,[81,[3]]],73],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[82,82],[83,83],[84,84],[85,85],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[82,82],86],0,[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[-1,[[6,[84]]],87],[-1,[[6,[88]]],87],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[[89,89],15],[[82,82],15],[[-1,-2],15,[],[]],[[-1,-2],15,[],[]],0,[[89,4],[[6,[2,5]]]],[[90,4],[[6,[2,5]]]],[[82,4],[[6,[2,5]]]],[[83,4],[[6,[2,5]]]],[[84,4],[[6,[2,5]]]],[[85,4],[[6,[2,5]]]],[[88,4],[[6,[2,5]]]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[76,-2,[56,[[56,[-1,12]],12]]],90,[69,25,68],[[59,[-1]]]],[[76,-2,[56,[[56,[-1,12]],12]],89],88,[69,25,68],[[59,[-1]]]],[10,[[6,[82]]]],0,[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[90,89],88],0,0,0,0,0,0,[[82,82],[[55,[86]]]],0,0,0,0,[[84,-1],6,91],[[88,-1],6,91],0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[92,92],[93,93],[94,94],[95,95],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[92,92],86],[[96,96],86],0,[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,2],[3,2],[3,2],[3,2],[3,2],[[92,92],15],[[96,96],15],[[93,93],15],[[94,94],15],[[95,95],15],[[-1,-2],15,[],[]],[[-1,-2],15,[],[]],[[-1,-2],15,[],[]],[[-1,-2],15,[],[]],[[-1,-2],15,[],[]],[[92,4],[[6,[2,5]]]],[[92,4],[[6,[2,5]]]],[[96,4],[[6,[2,5]]]],[[96,4],[[6,[2,5]]]],[[93,4],[[6,[2,5]]]],[[93,4],[[6,[2,5]]]],[[94,4],[[6,[2,5]]]],[[94,4],[[6,[2,5]]]],[[95,4],[[6,[2,5]]]],[[95,4],[[6,[2,5]]]],[[[30,[52]]],92],[-1,-1,[]],[[[2,[92,97]]],96],[[[2,[-1,92,97]]],96,[[21,[10]]]],[98,96],[-1,-1,[]],[-1,-1,[]],[[[2,[3,-1]]],93,[[21,[10]]]],[-1,-1,[]],[[[2,[93,3,-1]]],94,[[21,[10]]]],[[[2,[3,10]]],95],[[[2,[3,54]]],95],[[[2,[3,54,[100,[92,54,99]]]]],95],[-1,-1,[]],[[[2,[3,10,[100,[92,54,99]]]]],95],[[92,-1],2,101],0,[[],3],[[],3],[[],3],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[52,3],92],[[92,92],[[55,[86]]]],[[96,96],[[55,[86]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,[[[23,[-1]],[23,[-1]]],[[23,[-1]]],25],[[[23,[-1]],[23,[-1]]],[[23,[-1]]],25],[[[23,[-1]],-1],[[23,[-1]]],25],[[[23,[-1]],-1],[[23,[-1]]],25],[[[23,[-1]],[23,[-1]]],[[23,[-1]]],25],[[[23,[-1]],[23,[-1]]],[[23,[-1]]],25],[[[102,[-1]],[102,[-1]]],[[102,[-1]]],25],[[[23,[-1]],[23,[-1]]],2,25],[[[23,[-1]],[23,[-1]]],2,25],[[[72,[-1]]],[[30,[29]]],25],[[[72,[-1]],-2],[[30,[29]]],25,103],[[[72,[-1]]],[[56,[104,12]]],25],0,[[[72,[-1]]],[[56,[[2,[[30,[29]],105]],12]]],25],[[-1,-2,[30,[52]]],2,[],26],[[[72,[-1]],-2,-3],2,25,[[41,[[30,[52]]]]],11],[[[72,[-1]],35,-2],2,25,11],[[-1,-2,[30,[29]],3,-3],[[6,[2,27]]],[],26,26],[[-1,-2,[30,[36]],3,-3],[[6,[2,27]]],[],26,26],[[[72,[-1]]],3,25],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[72,[-1]]],[[56,[104,12]]],25],0,[[[72,[-1]],-2],51,25,103],[[[106,[-1]]],[[106,[-1]]],[19,25]],[52,52],[[[107,[-1]]],[[107,[-1]]],[19,108]],[[[109,[-1]]],[[109,[-1]]],[19,108]],[[[23,[-1]]],[[23,[-1]]],19],[[[72,[-1]]],[[72,[-1]]],[19,25]],[[[30,[-1]]],[[30,[-1]]],[19,110]],[44,44],[111,111],[35,35],[51,51],[[[102,[-1]]],[[102,[-1]]],19],[29,29],[36,36],[33,33],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[52,52],86],[[[30,[-1]],[30,[-1]]],86,110],[[35,35],86],[111,3],0,[[[30,[-1]]],-1,110],0,[[[72,[-1]]],44,25],[[[102,[-1]]],3,25],[[[72,[-1]],[56,[[56,[15,12]],12]]],[[2,[[72,[-1]],[56,[[56,[-1,12]],12]]]]],25],[[[72,[-1]]],[],[]],[[[72,[-1]]],[],[]],[[[72,[-1]]],[[56,[[30,[36]],12]]],25],[[-1,[30,[52]],3,[30,[52]],3],[[6,[2,27]]],[]],[[[72,[-1]],-2,-3],2,25,[[21,[10]]],26],[[109,[16,[-1]],[16,[[16,[16]]]],-2,-4],[[6,[2,112]]],59,22,113,[[114,[-3]]]],[[[115,[-1]],109,[16,[-2]],[16,[[16,[16]]]],-3,-5],[[6,[2,112]]],116,59,22,113,[[114,[-4]]]],[[[23,[-1]]],[[23,[-1]]],25],[[[30,[-1]]],[[102,[-2]]],110,25],[[],[[72,[-1]]],25],[[[72,[-1]]],3,25],[[[102,[-1]]],3,25],[[[23,[-1]]],[[55,[-1]]],25],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[[[72,[-1]],[56,[[56,[15,12]],12]]],[[2,[[72,[-1]],[56,[[56,[-1,12]],12]]]]],25],[[[23,[-1]]],[[23,[-1]]],25],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[[44,[28,[-1]],3],[[6,[2,27]]],25],[[[72,[-1]],[30,[36]]],2,25],[[[72,[-1]],-2],2,25,[[41,[[30,[52]]]]]],[[-1,-2,44,3],[[6,[2,27]]],[],26],[[-1,-2],2,[],26],[[52,52],15],[[[23,[-1]],[23,[-1]]],15,25],[[[30,[-1]],[30,[-1]]],15,[]],[[44,44],15],[[111,111],15],[[35,35],15],[[51,51],15],[[[102,[-1]],[102,[-1]]],15,[]],[[29,29],15],[[36,36],15],[[33,33],15],[[-1,-2],15,[],[]],[[-1,-2],15,[],[]],[[-1,-2],15,[],[]],[[-1,-2],15,[],[]],[[-1,-2],15,[],[]],[[-1,-2],15,[],[]],[[-1,-2],15,[],[]],[[-1,-2],15,[],[]],[[-1,-2],15,[],[]],[[-1,-2],15,[],[]],[[-1,-2],15,[],[]],[[[23,[-1]]],-1,25],[[[102,[-1]],-2,-3,-4,-5,-6,-7,-8,-9,-10,-11],-12,25,11,11,11,11,11,11,11,11,11,11,[]],[[[102,[-1]],-2,-3,-4,-5,-6,-7,-8,-9,-10,-11,-12],-12,25,11,11,11,11,11,11,11,11,11,11,117],[-1,2,[]],[44,[[102,[-1]]],25],[51,[[102,[-1]]],25],[[-1,[30,[36]],3,[24,[[23,[-2]]]]],[[6,[2,27]]],[],[]],[[[72,[-1]]],[[30,[36]]],25],[[[107,[-1]]],[[56,[-1,12]]],108],[[[72,[-1]]],[[56,[[2,[[30,[36]],105]],12]]],25],[[112,4],118],[[112,4],118],[[[106,[-1]],4],[[6,[2,5]]],[46,25]],[[52,4],[[6,[2,5]]]],[[119,4],[[6,[2,5]]]],[[119,4],[[6,[2,5]]]],[[[107,[-1]],4],[[6,[2,5]]],[46,108]],[[[109,[-1]],4],[[6,[2,5]]],[46,108]],[[[23,[-1]],4],[[6,[2,5]]],46],[[[120,[-1,-2,-3]],4],[[6,[2,5]]],[46,25],[46,[41,[[121,[-1]]]]],[46,49]],[[[72,[-1]],4],[[6,[2,5]]],[46,25]],[[[122,[-1]],4],[[6,[2,5]]],[46,25]],[[[30,[-1]],4],[[6,[2,5]]],[46,110]],[[123,4],[[6,[2,5]]]],[[124,4],[[6,[2,5]]]],[[125,4],[[6,[2,5]]]],[[44,4],[[6,[2,5]]]],[[111,4],[[6,[2,5]]]],[[35,4],[[6,[2,5]]]],[[51,4],[[6,[2,5]]]],[[[102,[-1]],4],[[6,[2,5]]],46],[[29,4],[[6,[2,5]]]],[[36,4],[[6,[2,5]]]],[[33,4],[[6,[2,5]]]],[[27,4],[[6,[2,5]]]],[[27,4],[[6,[2,5]]]],[119,112],[-1,-1,[]],[27,112],[[[72,[-1]]],[[106,[-1]]],25],[-1,-1,[]],[36,52],[33,52],[29,52],[-1,-1,[]],[-1,-1,[]],[126,119],[-1,-1,[]],[-1,-1,[]],[-1,[[23,[-1]]],25],[-1,-1,[]],[[[23,[-1]]],[[23,[-1]]],25],[-1,[[23,[-1]]],25],[[[2,[-1,-1]]],[[23,[-1]]],25],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[30,[36]]],[[30,[52]]]],[[[30,[33]]],[[30,[52]]]],[[[30,[29]]],[[30,[52]]]],[92,[[30,[52]]]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[127,51],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[16,[104]],1,128],[[6,[[107,[-1]],126]]],129],[[[16,[104]],1,128],[[6,[[109,[-1]],126]]],129],[[[72,[-1]]],[[56,[[130,[-1]],12]]],25],0,[[[72,[-1]]],[[100,[92,54,99]]],25],0,[[[72,[-1]],[30,[52]],105],3,25],[[-1,51],[[24,[-2]]],[],[]],[[[107,[-1]]],131,108],[[[109,[-1]]],[[107,[-1]]],108],[[52,-1],2,101],[[[30,[-1]],-2],2,[132,110],101],[[44,-1],2,101],[[35,-1],2,101],[[51,-1],2,101],[[29,-1],2,101],[[36,-1],2,101],[[33,-1],2,101],[[[107,[-1]],-3],[[6,[2,126]]],108,[[113,[-1]]],[[133,[-1,-2]]]],[[[102,[-1]]],54,25],[[[30,[-1]]],3,110],[44,3],[51,3],0,0,0,[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[35,[[30,[36]]]],[[[72,[-1]]],[[30,[33]]],25],[[[72,[-1]]],[[56,[[2,[[30,[33]],105]],12]]],25],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[120,[-1,-2,-3]]],[],25,[[41,[[121,[-1]]]]],49],[[[23,[-1]]],[[23,[-1]]],25],[44,15],[[[23,[-1]]],15,25],[[-2,[107,[-1]],-3],[[6,[[109,[-1]],112]]],108,[[134,[-1]]],59],[[-2,[107,[-1]],-3,15],[[6,[[109,[-1]],112]]],108,[[134,[-1]]],59],[[-2,-3],[[6,[[107,[-1]],112]]],108,[[134,[-1]]],59],[[-2,-3,15],[[6,[[107,[-1]],112]]],108,[[134,[-1]]],59],[[[72,[-1]],-2,-3],3,25,[[21,[10]]],26],[[[72,[-1]],-2,-3],3,25,[[21,[10]]],26],[[[72,[-1]]],35,25],[[[72,[-1]]],[[56,[[135,[-1]],12]]],25],0,0,[[[72,[-1]]],3,25],[[[23,[-1]],[23,[-1]]],[[23,[-1]]],25],[[[23,[-1]],[23,[-1]]],[[23,[-1]]],25],[[[23,[-1]],-1],[[23,[-1]]],25],[[[23,[-1]],-1],[[23,[-1]]],25],[[[102,[-1]],-1],[[102,[-1]]],25],[[[102,[-1]],[102,[-1]]],[[102,[-1]]],25],[[[23,[-1]],[23,[-1]]],2,25],[[[23,[-1]],[23,[-1]]],2,25],[[[23,[-1]]],[],25],[[[23,[-1]]],[],25],[[[102,[-1]]],[],25],[[3,-1],[[30,[-1]]],110],[[[30,[-1]]],[[102,[-2]]],110,25],[76,119],[76,27],[[[72,[-1]]],3,25],0,[[[72,[-1]]],3,25],0,[[[72,[-1]]],3,25],0,[[[72,[-1]]],3,25],0,[[[72,[-1]]],3,25],[[[23,[-1]]],-1,25],[-1,[],[]],[[52,52],[[55,[86]]]],[[[30,[-1]],[30,[-1]]],[[55,[86]]],110],[[35,35],[[55,[86]]]],[[[72,[-1]]],136,25],0,[51,104],[[[72,[-1]]],[[0,[70]]],25],[[[107,[-1]]],[[137,[-1]]],108],[[-1,1,76,-2,15],[[138,[[109,[-3]]]]],139,59,129],[[-1,[55,[54]]],2,[]],[[[30,[-1]]],[[102,[-2]]],110,25],[-1,[[102,[-2]]],70,25],[[-1,-2],2,[],26],[[[122,[-1]],[30,[29]],105],[[102,[-1]]],25],[[[122,[-1]],-2,105],[[102,[-1]]],25,[[41,[[30,[52]]]]]],[[-1,3,105],[[102,[-2]]],[],25],[[52,3,105],[[102,[-1]]],25],[[[30,[-1]],105],[[102,[-2]]],110,25],[[29,3,105],[[102,[-1]]],25],[[36,3,105],[[102,[-1]]],25],[[33,3,105],[[102,[-1]]],25],[[[102,[-1]],[122,[-1]]],2,25],[[[122,[-1]],51],[[102,[-1]]],25],[[[122,[-1]],[30,[36]],105],[[102,[-1]]],25],[[-1,[30,[33]],3],[[6,[[24,[-2]],27]]],[],[]],[[[122,[-1]],[30,[33]],105],[[102,[-1]]],25],[[[122,[-1]],44],[[102,[-1]]],25],[[-1,1,128],[[6,[[107,[-2]],126]]],139,129],[[-1,1,128],[[6,[[109,[-2]],126]]],139,129],[[[30,[-1]],97],[[102,[-2]]],110,25],[111,105],0,[[[72,[-1]]],44,25],[[[72,[-1]],3],2,25],[[[72,[-1]],-2,-3],3,25,[[21,[10]]],26],[[[72,[-1]]],[[56,[[140,[-1]],12]]],25],0,[119,[[55,[141]]]],[[[23,[-1]]],[[23,[-1]]],25],[[[102,[-1]]],[[102,[-1]]],25],[[[23,[-1]],[23,[-1]]],[[23,[-1]]],25],[[[23,[-1]],-1],[[23,[-1]]],25],[[[23,[-1]],[23,[-1]]],[[23,[-1]]],25],[[[23,[-1]],[23,[-1]]],[[23,[-1]]],25],[[[23,[-1]],-1],[[23,[-1]]],25],[[[23,[-1]],[23,[-1]]],[[23,[-1]]],25],[[[102,[-1]],[102,[-1]]],[[102,[-1]]],25],[[[23,[-1]],[23,[-1]]],2,25],[[[23,[-1]],[23,[-1]]],2,25],[-1,[[102,[-2]]],70,25],[[-2,-3,[56,[[30,[36]],12]]],[[6,[2,27]]],25,[[57,[-1]],58],[[59,[-1]]]],[[-1,-3],[[6,[2,27]]],[],[],[[38,[-2]]]],[[[107,[-1]],1],[[56,[104,12]]],129],[[[109,[-1]],1],[[56,[104,12]]],129],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[123,142],[124,142],[125,142],[-1,54,[]],[-1,54,[]],[-1,54,[]],[[[107,[-1]]],[],108],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[[[30,[52]]],[[6,[[30,[29]]]]]],[[[30,[52]]],[[6,[[30,[33]]]]]],[[[30,[52]]],[[6,[[30,[36]]]]]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[[[72,[-1]]],[[30,[29]]],25],[[[72,[-1]],-2],[[30,[29]]],25,103],0,[[107,-3,[16,[[16,[16]]]],-5],[[6,[119]]],143,[[144,[-1]]],[[145,[-1,-2]]],113,[[146,[-4]]]],[[-1,1,76,-2,15],[[138,[[107,[-3]]]]],139,59,129],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[102,[-1]],-2],[[120,[-1,-3,-2]]],25,49,[[41,[[121,[-1]]]]]],[-1,-1,[]],[[[107,[-1]],-2,1],[[6,[2,126]]],129,147],[[[109,[-1]],-2,1],[[6,[2,126]]],129,147],0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[105,105],[[[131,[-1]]],[[131,[-1]]],[19,25]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[105,105],86],[[[131,[-1]],[56,[-1,12]]],[[149,[-1,148]]],150],[[[131,[-1]],[149,[-1,148]]],[[149,[-1,151]]],150],0,[[[131,[-1]],-1],[[149,[-1,151]]],150],[[[131,[-1]],-1],[[149,[-1,152]]],150],[[],105],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[[[131,[-1]],[149,[-1,151]]],[[149,[-1,151]]],150],[3,2],[3,2],[[[131,[-1]]],[[149,[-1,148]]],150],[[[131,[-1]]],[[149,[-1,151]]],150],[[[131,[-1]]],[[149,[-1,152]]],150],[[105,105],15],[[-1,-2],15,[],[]],[[[131,[-1]]],76,150],[[[131,[-1]]],3,150],[[[131,[-1]],[149,[-1,151]]],[[56,[-1,12]]],150],[-1,15,[]],[[105,4],[[6,[2,5]]]],[[[131,[-1]],4],[[6,[2,5]]],[46,25]],[-1,-1,[]],[-1,-1,[]],[[[131,[-1]]],-1,150],[[[131,[-1]]],-1,150],[[[131,[-1]]],-1,150],[[[131,[-1]]],3,150],[[105,-1],2,101],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],0,[[[131,[-1]]],76,150],0,[[[131,[-1]],-1,-1,-2],[[56,[-1,12]]],150,[49,19]],[[[131,[-1]],[56,[-1,12]]],[[149,[-1,152]]],150],[[[131,[-1]],[149,[-1,152]]],[[149,[-1,148]]],150],[[],-1,[]],[[76,76],[[131,[-1]]],150],[[],105],[[105,105],[[55,[86]]]],[[[131,[-1]]],[[153,[-1]]],150],[[],105],[[-1,-2],[[6,[119]]],[],26],[[[131,[-1]],[149,[-1,151]],105],[[149,[-1,151]]],150],[[[131,[-1]],-1,105],-1,150],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[154,[-1]],[154,[-1]]],[[154,[-1]]],25],[[[154,[-1]],[154,[-1]]],2,25],[[[154,[-1]],-1],2,25],[[-1,-1],2,155],[-1,2,[]],[-1,[[56,[12]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[-1,-3],15,[],[],[[116,[-2]]]],[[[154,[-1]]],[[154,[-1]]],19],[[-1,-2],2,[],[]],[[-1,-3,[149,[148]],154],[],[],[],[[116,[-2]]]],[[-1,-3,[149,[152]],154],[],[],[],[[116,[-2]]]],[[-1,-2,-4,-5],[[6,[2,126]]],[],22,113,[[114,[-3]]],[49,19]],[[-1,-2,-3,-5,-6],[[6,[2,126]]],[],116,22,113,[[114,[-4]]],[49,19]],[[],[[154,[-1]]],25],[3,-1,[]],[3,-1,[]],[[-1,76],2,[]],[3,2],[-1,[],[]],[[[154,[-1]],[154,[-1]]],15,[]],[[-1,-2],15,[],[]],[[-1,-3],[],[],[],[[116,[-2]]]],[[[154,[-1]],4],[[6,[2,5]]],46],[-1,-1,[]],[-1,[[16,[-2]]],[],[]],[[],3],[-1,-2,[],[]],[-1,76,[]],[[[154,[-1]],[154,[-1]]],[[154,[-1]]],25],[[[154,[-1]],-1],2,25],[[[154,[-1]],[154,[-1]]],2,25],[-1,20,[]],[76,-1,[]],[[],-1,[]],[[],-1,[]],[-1,[[154,[-2]]],22,25],[76],[-1,[[6,[-2,126]]],139,[]],[-1,[[6,[126]]],139],[-1,[[56,[12]]],[]],[-1,2,[]],[-1,-2,[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,[],[]],[[-1,-3,-4],[[6,[156]]],[],113,[[146,[-2]]],[49,19]],[-1,-2,[],[]],[[-1,-2],[[6,[2,126]]],[],147],0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[157,[-1]]],[[157,[-1]]],[19,108]],[[-1,-2],2,[],[]],[[[157,[-1]],-2,[149,[148]],154],[],108,[[116,[-1]]]],[[[157,[-1]],-2,[149,[152]],154],[],108,[[116,[-1]]]],[[-2,[157,[-1]],-3,-5,[149,[148]],154],[[6,[2,126]]],108,[[116,[-1]]],22,[[113,[-1]]],[[114,[-1,-4]]]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[[[157,[-1]],76],2,108],[3,2],[3,2],[[[157,[-1]]],[[158,[-1]]],108],[[[157,[-1]],4],[[6,[2,5]]],[46,108]],[[[159,[-1]],4],[[6,[2,5]]],[46,108]],[-1,-1,[]],[-1,-1,[]],[[[157,[-1]]],[[16,[-1]]],108],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],[[[157,[-1]]],76,108],[[[157,[-1]]],20,108],[76,[[157,[-1]]],108],[76],[-1,[[6,[[157,[-2]],126]]],139,108],[-1,[[6,[126]]],139],[-1,-2,[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[[[157,[-1]]],[],108],[[[157,[-1]],[158,[-1]],-3],[[6,[[160,[-1]],156]]],108,[[113,[-1]]],[[146,[-1,-2]]]],[-1,-2,[],[]],[-1,-2,[],[]],[[[157,[-1]],-2],[[6,[2,126]]],108,147],0,[[[158,[-1]]],2,108],[[[158,[-1]],[158,[-1]]],2,108],[[[158,[-1]],[158,[-1]]],2,108],[[[158,[-1]],16],2,108],[[[158,[-1]]],2,108],[[[158,[-1]]],2,108],[[[158,[-1]]],2,108],[[[158,[-1]]],[[56,[12]]],108],[-1,-2,[],[]],[-1,-2,[],[]],[[[158,[-1]],-2],15,108,[[116,[-1]]]],[[[158,[-1]]],[[158,[-1]]],[19,108]],[[-1,-2],2,[],[]],[3,-1,[]],[3,-1,[]],[3,2],[[[158,[-1]],-2],[],108,[[116,[-1]]]],[[[158,[-1]],4],[[6,[2,5]]],[46,108]],[-1,-1,[]],[[],3],[-1,-2,[],[]],[[[157,[-1]]],[[158,[-1]]],108],[[[158,[-1]]],[[56,[12]]],108],[[[158,[-1]]],2,108],[-1,-2,[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,-2,[],[]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[161,[-1]],-2,-3,-5,-6],[[6,[2,126]]],108,[[116,[-1]]],22,[[113,[-1]]],[[114,[-1,-4]]],[49,19]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,2],[3,2],[[[161,[-1]],4],[[6,[2,5]]],[46,108]],[[[162,[-1]],4],[[6,[2,5]]],[46,108]],[-1,-1,[]],[-1,-1,[]],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],[[[157,[-1]]],[[161,[-1]]],108],[[[157,[-1]]],[[162,[-1]]],108],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[[[162,[-1]],-3,-4,[158,[-1]]],[[6,[156]]],108,[[113,[-1]]],[[146,[-1,-2]]],[49,19]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[160,[-1]]],[[160,[-1]]],[19,108]],[[[163,[-1]]],[[163,[-1]]],[19,108]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[[160,[-1]],-2],-1,108,[[116,[-1]]]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,2],[3,2],[3,2],[3,2],[[[164,[-1]]],15,108],[[[165,[-1]]],15,108],[[[160,[-1]],4],[[6,[2,5]]],[46,108]],[[[163,[-1]],4],[[6,[2,5]]],[46,108]],[[[164,[-1]],4],[[6,[2,5]]],[46,108]],[[[165,[-1]],4],[[6,[2,5]]],[46,108]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],0,[[],3],[[],3],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[157,[-1]]],[[164,[-1]]],108],[[[157,[-1]]],[[165,[-1]]],108],[[[164,[-1]],-2],[[6,[119]]],108,26],[[[165,[-1]],-2],[[6,[119]]],108,26],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],0,[[[160,[-1]]],[[158,[-1]]],108],[[[160,[-1]],-1],[[2,[[158,[-1]],[163,[-1]]]]],108],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[166,[-1]]],[[166,[-1]]],[19,167]],[[-1,-2],2,[],[]],[[[166,[-1]],-2,[149,[148]],154],[],[167,46],116],[[[166,[-1]],-2,[149,[152]],154],[],[167,46],116],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[[[166,[-1]],76],2,[167,46]],[3,2],[3,2],[[[166,[-1]]],[[168,[-1]]],[167,46]],[[[166,[-1]],4],[[6,[2,5]]],[46,167]],[[[169,[-1]],4],[[6,[2,5]]],[46,167]],[-1,-1,[]],[-1,-1,[]],[[[166,[-1]],76,[56,[12]],[55,[[56,[12]]]]],[[166,[-1]]],[167,46]],[[[166,[-1]]],[],[167,46]],[[[166,[-1]]],16,[167,46]],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],[[[166,[-1]]],76,[167,46]],[[[166,[-1]]],20,[167,46]],[76,[[166,[-1]]],[167,46]],[76],[-1,[[6,[[166,[-2]],126]]],139,[167,46]],[[-1,1],[[6,[[166,[-2]],126]]],139,[167,46]],[-1,[[6,[126]]],139],[[[166,[-1]]],[],[167,46]],[[76,-1],[[166,[-2]]],22,[167,46]],[-1,-2,[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[[[166,[-1]]],[],[167,46]],[-1,-2,[],[]],[-1,-2,[],[]],[[[166,[-1]],-2],[[6,[2,126]]],[167,46],147],[[[166,[-1]],-2,1],[[6,[2,126]]],[167,46],147],0,0,[[[168,[-1]],[168,[-1]]],2,[167,46]],[[[170,[-1]],[170,[-1]]],2,[171,46]],[[[168,[-1]]],2,[167,46]],[[[168,[-1]]],[[56,[12]]],[167,46]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[168,[-1]],-2],15,[167,46],116],[[[170,[-1]],-2],15,[171,46],116],[[[168,[-1]]],[[168,[-1]]],[19,167]],[[[170,[-1]]],[[170,[-1]]],[19,167]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[[168,[-1]]],2,167],[[],[[168,[-1]]],[172,167]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,2],[3,2],[[[168,[-1]],-2],[],[167,46],116],[[[168,[-1]],4],[[6,[2,5]]],[46,167]],[[[170,[-1]],4],[[6,[2,5]]],[46,167]],[-1,-1,[]],[-1,-1,[]],[[[166,[-1]]],[[170,[-1]]],[171,46]],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],[[],[[168,[-1]]],167],[[[166,[-1]]],[[170,[-1]]],[171,46]],[[[168,[-1]]],[[56,[12]]],[167,46]],[[[168,[-1]]],2,[167,46]],[[[170,[-1]]],2,[171,46]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[173,[-1]],-2,-3,-5,-6],[[6,[2,126]]],[167,46],116,22,113,[[114,[-4]]],[49,19]],[[[174,[-1]],-2,-3,-5,-6],[[6,[2,126]]],[167,46],116,22,113,[[114,[-4]]],[49,19]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,2],[3,2],[3,2],[3,2],[[[173,[-1]],4],[[6,[2,5]]],[46,167]],[[[175,[-1]],4],[[6,[2,5]]],[46,167]],[[[174,[-1]],4],[[6,[2,5]]],[46,167]],[[[176,[-1]],4],[[6,[2,5]]],[46,167]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],3],[[],3],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[166,[-1]]],[[173,[-1]]],[167,46]],[[[166,[-1]]],[[175,[-1]]],[171,46]],[[[166,[-1]]],[[174,[-1]]],167],[[[166,[-1]]],[[174,[-1]]],[167,46]],[[[166,[-1]]],[[176,[-1]]],[171,46]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[[[175,[-1]],-3,-4,[170,[-1]]],[[6,[156]]],[171,46],113,[[146,[-2]]],[49,19]],[[[176,[-1]],-3,-4,[170,[-1]]],[[6,[156]]],[171,46],113,[[146,[-2]]],[49,19]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[177,[-1]]],[[177,[-1]]],[46,19,171]],[[[178,[-1]]],[[178,[-1]]],[19,167]],[[[179,[-1]]],[[179,[-1]]],[19,167]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,2],[3,2],[3,2],[[[178,[-1]]],15,[171,46]],[[[179,[-1]]],15,[171,46]],[[[177,[-1]],4],[[6,[2,5]]],[46,46,171]],[[[178,[-1]],4],[[6,[2,5]]],[46,167]],[[[179,[-1]],4],[[6,[2,5]]],[46,167]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],3],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[166,[-1]]],[[178,[-1]]],[171,46]],[[[166,[-1]]],[[178,[-1]]],[171,46]],[[[166,[-1]]],[[179,[-1]]],[171,46]],[[[166,[-1]]],[[179,[-1]]],[171,46]],[[[178,[-1]],-2],[[6,[119]]],[171,46],26],[[[179,[-1]],-2],[[6,[119]]],[171,46],26],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[170,[-1]]],[[178,[-1]]],[171,46]],0,0,0,0,0,0,0,0,0,0,[-1,[[180,[-2,-3]]],[],[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[181,[-1,-2,-3]]],[[181,[-1,-2,-3]]],[19,139],[19,108],[19,[113,[-2]]]],[[[182,[-1,-2,-3]]],[[182,[-1,-2,-3]]],[19,147],[19,108],[19,[113,[-2]]]],[[[183,[-1]]],[[183,[-1]]],[19,108]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],[[6,[2,126]]],[],[]],[[[181,[-1,-2,[183,[-2]]]],-2],[[6,[2,126]]],139,108],[[[182,[-1,-2,[183,[-2]]]],-2],[[6,[2,126]]],147,108],[-1,[[6,[2,126]]],[]],[[[181,[-1,-2,[183,[-2]]]]],[[6,[2,126]]],139,108],[[[182,[-1,-2,[183,[-2]]]]],[[6,[2,126]]],147,108],[3,-1,[]],[3,-1,[]],[[[183,[-1]]],[],108],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,2],[3,2],[3,2],[-1,-2,[],[]],[[[182,[-1,-2,[183,[-2]]]]],-1,147,108],[[[181,[-1,-2,-3]],4],[[6,[2,5]]],[46,139],[46,108],[46,[113,[-2]]]],[[[182,[-1,-2,-3]],4],[[6,[2,5]]],[46,147],[46,108],[46,[113,[-2]]]],[[[183,[-1]],4],[[6,[2,5]]],[46,108]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,[],[]],[[[183,[-1]]],[],108],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[181,[-1,-2,[183,[-2]]]]],139,108],[[],3],[-1,[[182,[-1,-2,[183,[-2]]]]],147,108],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[],-1,[]],[[[60,[104]]],[[183,[-1]]],108],[-1,[[6,[-2,126]]],[],[]],[[[181,[-1,-2,[183,[-2]]]]],[[6,[-2,126]]],139,108],[-1,[[6,[126]]],[]],[[[181,[-1,-2,[183,[-2]]]]],[[6,[126]]],139,108],[-1,-2,[],[]],[[[181,[-1,-2,[183,[-2]]]]],[[183,[-2]]],139,108],[[[182,[-1,-2,[183,[-2]]]]],[[183,[-2]]],147,108],[-1,[[180,[-2,-3]]],[],[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[-1,-2],[[6,[2,126]]],[],[]],[[[182,[-1,-2,[183,[-2]]]],-2],[[6,[2,126]]],147,108],[-1,[[6,[2,126]]],[]],[[[182,[-1,-2,[183,[-2]]]]],[[6,[2,126]]],147,108]],"c":[],"p":[[4,"SerdeFormat",0],[15,"tuple"],[15,"usize"],[3,"Formatter",2091],[3,"Error",2091],[4,"Result",2092],[3,"TypeId",2093],[3,"Coordinates",2094],[3,"CtOption",2095],[15,"str"],[8,"Fn",2096],[3,"Global",2097],[3,"Box",2098],[3,"Choice",2095],[15,"bool"],[15,"slice"],[8,"Send",2099],[8,"Sync",2099],[8,"Clone",2100],[15,"u64"],[8,"AsRef",2101],[8,"RngCore",2102],[4,"Assigned",788],[3,"Value",64],[8,"Field",27],[8,"FnOnce",2096],[4,"ErrorFront",788],[3,"Region",64],[3,"Advice",788],[3,"Column",788],[3,"AssignedCell",64],[8,"FnMut",2096],[3,"Instance",788],[3,"Table",64],[3,"TableColumn",788],[3,"Fixed",788],[3,"NamespacedLayouter",64],[8,"Layouter",64],[3,"Cell",64],[3,"RegionIndex",64],[8,"Into",2101],[8,"Copy",2099],[8,"Borrow",2103],[3,"Selector",788],[3,"SimpleFloorPlanner",64],[8,"Debug",2091],[8,"RegionLayouter",2104],[8,"TableLayouter",2105],[8,"IntoIterator",2106],[8,"FromIterator",2106],[3,"Challenge",788],[4,"Any",788],[8,"Neg",2107],[3,"String",2108],[4,"Option",2109],[3,"Vec",2110],[8,"Assignment",788],[8,"SyncDeps",2104],[8,"Circuit",788],[15,"array"],[3,"V1Pass",293],[3,"V1",293],[3,"SingleChipLayouter",331],[3,"MeasurementPass",354],[3,"AssignmentPass",354],[3,"MockProver",385],[4,"CellValue",2111],[8,"FromUniformBytes",2112],[8,"Ord",2113],[8,"Iterator",2114],[4,"FailureLocation",385],[3,"ConstraintSystem",788],[3,"CircuitLayout",385],[4,"VerifyFailure",385],[4,"InstanceValue",2111],[15,"u32"],[3,"Shift",2115],[3,"DrawingArea",2116],[4,"DrawingAreaErrorKind",2116],[8,"DrawingBackend",2117],[3,"Range",2118],[3,"Poly",522],[3,"Lookup",522],[3,"Permutation",522],[3,"Shuffle",522],[4,"Ordering",2113],[8,"Deserializer",2119],[3,"ModelCircuit",522],[4,"CommitmentScheme",522],[3,"CostOptions",522],[8,"Serializer",2120],[3,"Column",668],[3,"Gate",668],[3,"Constraint",668],[3,"Region",668],[3,"VirtualCell",668],[15,"i32"],[3,"VirtualCell",2121],[3,"RandomState",2122],[3,"HashMap",2122],[8,"Hasher",2123],[4,"Expression",788],[8,"Phase",788],[15,"u8"],[3,"Rotation",1446],[3,"ConstraintSystemMid",788],[3,"VerifyingKey",788],[8,"CurveAffine",27],[3,"ProvingKey",788],[8,"ColumnType",788],[3,"FixedQuery",788],[4,"Error",788],[8,"EncodedChallenge",2003],[8,"TranscriptWrite",2003],[3,"PlonkEngine",2124],[8,"MsmAccel",2125],[8,"PartialEq",2113],[6,"Result",2091],[4,"ErrorBack",788],[3,"Constraints",788],[3,"Constraint",2121],[3,"VirtualCells",788],[3,"FirstPhase",788],[3,"SecondPhase",788],[3,"ThirdPhase",788],[3,"Error",2126],[3,"ChallengeMid",2127],[3,"ConstraintSystemBack",2128],[8,"SerdeCurveAffine",2129],[3,"Gate",2121],[3,"EvaluationDomain",1446],[8,"Hash",2123],[8,"Transcript",2003],[8,"Params",1519],[3,"Argument",2130],[3,"Argument",2131],[3,"PinnedVerificationKey",2132],[6,"Result",2126],[8,"Read",2133],[3,"Argument",2134],[8,"Error",2135],[3,"Phase",2136],[8,"CommitmentScheme",1519],[8,"Verifier",1519],[8,"VerificationStrategy",1446],[8,"TranscriptRead",2003],[8,"Write",2133],[3,"Coeff",2137],[3,"Polynomial",2137],[8,"WithSmallOrderMulGroup",2112],[3,"ExtendedLagrangeCoeff",2137],[3,"LagrangeCoeff",2137],[3,"PinnedEvaluationDomain",2138],[3,"Blind",1519],[8,"Sized",2099],[4,"Error",2137],[3,"ParamsIPA",1592],[3,"MSMIPA",1639],[3,"IPACommitmentScheme",1592],[3,"GuardIPA",1701],[3,"ProverIPA",1669],[3,"VerifierIPA",1669],[3,"Accumulator",1701],[3,"AccumulatorStrategy",1701],[3,"SingleStrategy",1701],[3,"ParamsKZG",1778],[8,"Engine",2139],[3,"MSMKZG",1829],[3,"KZGCommitmentScheme",1778],[3,"DualMSM",1829],[8,"MultiMillerLoop",2139],[8,"Default",2140],[3,"ProverGWC",1878],[3,"ProverSHPLONK",1878],[3,"VerifierGWC",1878],[3,"VerifierSHPLONK",1878],[3,"GuardKZG",1943],[3,"AccumulatorStrategy",1943],[3,"SingleStrategy",1943],[3,"ChallengeScalar",2141],[3,"Blake2bRead",2003],[3,"Blake2bWrite",2003],[3,"Challenge255",2003],[8,"CurveExt",27],[8,"Chip",64],[13,"InRegion",497],[13,"OutsideRegion",497],[13,"ConstraintNotSatisfied",500],[13,"CellNotAssigned",500],[13,"InstanceCellNotAssigned",500],[13,"Permutation",500],[13,"ConstraintPoisoned",500],[13,"Lookup",500],[13,"Shuffle",500],[8,"FloorPlanner",788],[13,"NotEnoughRowsAvailable",1444],[13,"NotEnoughRowsAvailable",1445],[8,"ParamsProver",1519],[8,"Prover",1519],[8,"MSM",1519],[8,"TranscriptWriterBuffer",2003],[8,"TranscriptReadBuffer",2003]]}\ +"halo2_backend":{"doc":"","t":"AAAAAAQQQSIIQISQQSKKKKKLKKKKKKKLLKKFLLKLLKKINNNIEILLLLLLLLLLLLLLLLLLLLLLIIIIQQQQQQQIIDILLKLLLLLLLLLLLLLFLLKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKFLKLLLLLLLLLLLLLLLLKKLLLLLLLLLLLLLLLLLLLLLLFLLLLLLLLLLLKLLLLLLLLLLLLLLLLKLLNNNENNNNNDDNDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLALLALLLLLLLLLLLLLLLLLLLLLALLLLLLMFFDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDLLLLLLLLLLLLLLLLFFLIDEDDIIDQNQDDNIMLLLLLLLLLLLLLLLLLLLLLLLLLLLALLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLALLLALLLLKLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLDIQQIQQIIQIQQISSQILLLKKKLLKLLKKLKLLLKLKLLKLLKLLKLLLKKKKLKKKKKLLLLKKLKAAAADDGLLLLLLLLFLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLFLLLDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLAAAADDGLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDDDIQDDIIIIILLLLLLLLLLLLLLLLLLLLLLLLLKLLLLKLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLKLKKLLLLLLLLLLLLLLLLKLFFKLLKLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLKLL","n":["arithmetic","helpers","multicore","plonk","poly","transcript","AffineExt","Base","Base","CURVE_ID","CurveAffine","CurveExt","CurveExt","Field","ONE","ScalarExt","ScalarExt","ZERO","a","a","b","b","coordinates","cube","double","endo","from_xy","hash_to_curve","invert","is_on_curve","is_on_curve","is_zero","is_zero_vartime","jacobian_coordinates","new_jacobian","parallelize","pow","pow_vartime","random","sqrt","sqrt_alt","sqrt_ratio","square","CurveRead","Processed","RawBytes","RawBytesUnchecked","SerdeCurveAffine","SerdeFormat","SerdePrimeField","borrow","borrow_mut","byte_length","clone","clone_into","deref","deref_mut","drop","fmt","from","init","into","read","read","read","to_owned","try_from","try_into","type_id","vzip","write","write","IndexedParallelIterator","IntoParallelIterator","IntoParallelRefIterator","IntoParallelRefMutIterator","Item","Item","Item","Item","Iter","Iter","Iter","ParallelIterator","ParallelSliceMut","Scope","TryFoldAndReduce","all","any","as_parallel_slice_mut","borrow","borrow_mut","by_exponential_blocks","by_uniform_blocks","chain","chunks","cloned","cmp","collect","collect_into_vec","collect_vec_list","copied","count","current_num_threads","deref","deref_mut","drive","drive_unindexed","drop","enumerate","eq","filter","filter_map","find_any","find_first","find_last","find_map_any","find_map_first","find_map_last","flat_map","flat_map_iter","flatten","flatten_iter","fmt","fold","fold_chunks","fold_chunks_with","fold_with","for_each","for_each_init","for_each_with","from","ge","gt","init","inspect","interleave","interleave_shortest","intersperse","into","into_par_iter","join","le","len","lt","map","map_init","map_with","max","max_by","max_by_key","min","min_by","min_by_key","ne","opt_len","panic_fuse","par_chunk_by_mut","par_chunks_exact_mut","par_chunks_mut","par_iter","par_iter_mut","par_rchunks_exact_mut","par_rchunks_mut","par_sort","par_sort_by","par_sort_by_cached_key","par_sort_by_key","par_sort_unstable","par_sort_unstable_by","par_sort_unstable_by_key","par_split_inclusive_mut","par_split_mut","partial_cmp","partition","partition_map","position_any","position_first","position_last","positions","product","reduce","reduce_with","rev","scope","skip","skip_any","skip_any_while","spawn","spawn_broadcast","step_by","sum","take","take_any","take_any_while","try_fold","try_fold_and_reduce","try_fold_with","try_for_each","try_for_each_init","try_for_each_with","try_from","try_into","try_reduce","try_reduce_with","type_id","unzip","unzip_into_vecs","update","vzip","while_some","with_max_len","with_min_len","with_producer","zip","zip_eq","BoundsFailure","ColumnNotInPermutation","ConstraintSystemFailure","Error","InstanceTooLarge","InvalidInstances","NotEnoughRowsAvailable","Opening","Other","PinnedVerificationKey","ProvingKey","Transcript","VerifyingKey","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","fixed_commitments","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from_bytes","from_bytes","get_domain","get_vk","hash_into","init","init","init","init","into","into","into","into","keygen","not_enough_rows_available","pinned","prover","read","read","source","to_bytes","to_bytes","to_owned","to_owned","to_string","transcript_repr","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","verifier","vzip","vzip","vzip","vzip","write","write","current_k","keygen_pk","keygen_vk","Prover","ProverSingle","borrow","borrow","borrow_mut","borrow_mut","commit_phase","commit_phase","create_proof","create_proof","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","from","from","init","init","into","into","new","new","new_with_engine","new_with_engine","phases","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","BatchVerifier","add_proof","borrow","borrow_mut","default","deref","deref_mut","drop","finalize","fmt","from","init","into","new","try_from","try_into","type_id","verify_proof","verify_proof_single","vzip","Basis","Coeff","Error","EvaluationDomain","ExtendedLagrangeCoeff","Guard","LagrangeBasis","LagrangeCoeff","MSMAccumulator","OpeningError","Output","PinnedEvaluationDomain","Polynomial","SamplingError","VerificationStrategy","_marker","add","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","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","coeff_from_vec","coeff_to_extended","commitment","constant_extended","constant_lagrange","deref","deref","deref","deref","deref","deref","deref","deref","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","empty_coeff","empty_extended","empty_lagrange","extended_k","extended_len","extended_to_coeff","finalize","fmt","fmt","fmt","fmt","fmt","fmt","fmt","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","into","into","into","into","into","into","into","ipa","iter","iter_mut","k","kzg","l_i_range","lagrange_from_vec","lagrange_to_coeff","mul","new","new","new_empty","new_lagrange_from_vec","num_coeffs","pinned","process","rotate","rotate_extended","rotate_omega","sub","sub","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_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","values","vzip","vzip","vzip","vzip","vzip","vzip","vzip","Blind","CommitmentScheme","Curve","Guard","MSM","MSM","MSMAccumulator","Params","ParamsProver","ParamsProver","ParamsVerifier","ParamsVerifier","ParamsVerifier","Prover","QUERY_INSTANCE","QUERY_INSTANCE","Scalar","Verifier","add","add_assign","add_assign","add_msm","append_term","bases","borrow","borrow_mut","check","clone","clone_into","commit","commit_lagrange","create_proof","create_proof_with_engine","default","deref","deref_mut","downsize","drop","empty_msm","eq","equivalent","eval","fmt","from","get_g","init","into","k","mul","mul_assign","mul_assign","n","new","new","new","new","new_params","read","read_params","scalars","scale","to_owned","try_from","try_into","type_id","verifier_params","verify_proof","vzip","write","commitment","msm","multiopen","strategy","IPACommitmentScheme","ParamsIPA","ParamsVerifierIPA","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","commit","commit_lagrange","create_proof_with_engine","deref","deref","deref_mut","deref_mut","downsize","drop","drop","empty_msm","fmt","fmt","from","from","get_g","init","init","into","into","k","n","new","new_params","read","read_params","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","verifier_params","verify_proof","vzip","vzip","write","MSMIPA","add_constant_term","add_msm","add_msm","add_to_g_scalars","add_to_u_scalar","add_to_w_scalar","append_term","bases","borrow","borrow_mut","check","clone","clone_into","deref","deref_mut","drop","eval","fmt","from","init","into","new","scalars","scale","to_owned","try_from","try_into","type_id","vzip","ProverIPA","VerifierIPA","borrow","borrow","borrow_mut","borrow_mut","create_proof_with_engine","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","from","from","init","init","into","into","new","new","try_from","try_from","try_into","try_into","type_id","type_id","verify_proof","vzip","vzip","Accumulator","AccumulatorStrategy","GuardIPA","SingleStrategy","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","compute_g","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","finalize","finalize","fmt","fmt","fmt","fmt","from","from","from","from","g","init","init","init","init","into","into","into","into","new","new","process","process","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","u_packed","use_challenges","use_g","vzip","vzip","vzip","vzip","commitment","msm","multiopen","strategy","KZGCommitmentScheme","ParamsKZG","ParamsVerifierKZG","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","commit","commit_lagrange","deref","deref","deref_mut","deref_mut","downsize","drop","drop","empty_msm","fmt","fmt","from","from","from_parts","g2","get_g","init","init","into","into","k","n","new","new_params","read","read_custom","read_params","s_g2","setup","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","verifier_params","vzip","vzip","write","write_custom","DualMSM","MSMKZG","add_msm","add_msm","append_term","bases","borrow","borrow","borrow_mut","borrow_mut","check","check","clone","clone","clone_into","clone_into","combine_with_base","default","deref","deref","deref_mut","deref_mut","drop","drop","eval","fmt","fmt","from","from","from","init","init","into","into","new","new","scalars","scale","scale","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","ProverGWC","ProverSHPLONK","VerifierGWC","VerifierSHPLONK","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","create_proof_with_engine","create_proof_with_engine","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","fmt","fmt","fmt","fmt","from","from","from","from","init","init","init","init","into","into","into","into","new","new","new","new","new","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","verify_proof","verify_proof","vzip","vzip","vzip","vzip","AccumulatorStrategy","GuardKZG","SingleStrategy","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","finalize","finalize","fmt","fmt","fmt","from","from","from","init","init","init","into","into","into","new","new","new","new","process","process","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","with","Blake2bRead","Blake2bWrite","Challenge255","ChallengeScalar","EncodedChallenge","Input","Keccak256Read","Keccak256Write","Transcript","TranscriptRead","TranscriptReadBuffer","TranscriptWrite","TranscriptWriterBuffer","as_challenge_scalar","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","common_point","common_point","common_point","common_point","common_point","common_scalar","common_scalar","common_scalar","common_scalar","common_scalar","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","drop","finalize","finalize","finalize","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","get_scalar","get_scalar","init","init","init","init","init","init","init","init","init","init","init","init","into","into","into","into","into","into","new","new","read_n_points","read_n_scalars","read_point","read_point","read_point","read_scalar","read_scalar","read_scalar","squeeze_challenge","squeeze_challenge","squeeze_challenge","squeeze_challenge","squeeze_challenge","squeeze_challenge_scalar","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_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","write_point","write_point","write_point","write_scalar","write_scalar","write_scalar"],"q":[[0,"halo2_backend"],[6,"halo2_backend::arithmetic"],[43,"halo2_backend::helpers"],[72,"halo2_backend::multicore"],[216,"halo2_backend::plonk"],[309,"halo2_backend::plonk::Error"],[310,"halo2_backend::plonk::keygen"],[312,"halo2_backend::plonk::prover"],[349,"halo2_backend::plonk::verifier"],[369,"halo2_backend::poly"],[539,"halo2_backend::poly::commitment"],[608,"halo2_backend::poly::ipa"],[612,"halo2_backend::poly::ipa::commitment"],[659,"halo2_backend::poly::ipa::msm"],[689,"halo2_backend::poly::ipa::multiopen"],[721,"halo2_backend::poly::ipa::strategy"],[794,"halo2_backend::poly::kzg"],[798,"halo2_backend::poly::kzg::commitment"],[849,"halo2_backend::poly::kzg::msm"],[898,"halo2_backend::poly::kzg::multiopen"],[963,"halo2_backend::poly::kzg::strategy"],[1023,"halo2_backend::transcript"],[1178,"pasta_curves::arithmetic::curves"],[1179,"subtle"],[1180,"core::ops::function"],[1181,"alloc::alloc"],[1182,"alloc::boxed"],[1183,"subtle"],[1184,"core::marker"],[1185,"core::convert"],[1186,"rand_core"],[1187,"core::fmt"],[1188,"core::fmt"],[1189,"std::io"],[1190,"core::result"],[1191,"core::any"],[1192,"std::io"],[1193,"rayon::iter::blocks"],[1194,"rayon::iter::chunks"],[1195,"rayon::iter::cloned"],[1196,"core::cmp"],[1197,"rayon::iter"],[1198,"alloc::vec"],[1199,"alloc::collections::linked_list"],[1200,"rayon::iter::copied"],[1201,"rayon::iter::plumbing"],[1202,"rayon::iter::plumbing"],[1203,"rayon::iter::filter"],[1204,"rayon::iter::filter_map"],[1205,"core::option"],[1206,"rayon::iter::flat_map"],[1207,"rayon::iter::flat_map_iter"],[1208,"rayon::iter::flatten"],[1209,"rayon::iter::flatten_iter"],[1210,"core::fmt"],[1211,"rayon::iter::fold_chunks"],[1212,"rayon::iter::fold_chunks_with"],[1213,"rayon::iter::fold"],[1214,"rayon::iter::interleave"],[1215,"rayon::iter::interleave_shortest"],[1216,"rayon::iter::intersperse"],[1217,"core::ops::function"],[1218,"rayon::iter::map_with"],[1219,"rayon::iter::map_with"],[1220,"rayon::slice::chunk_by"],[1221,"rayon::slice::chunks"],[1222,"rayon::slice::chunks"],[1223,"rayon::slice::rchunks"],[1224,"rayon::slice"],[1225,"rayon::iter"],[1226,"core::iter::traits::accum"],[1227,"rayon::iter::rev"],[1228,"rayon::iter::skip"],[1229,"rayon::iter::skip_any"],[1230,"rayon::iter::skip_any_while"],[1231,"rayon::iter::step_by"],[1232,"core::iter::traits::accum"],[1233,"rayon::iter::take_any"],[1234,"rayon::iter::take_any_while"],[1235,"rayon::iter::try_fold"],[1236,"rayon::iter::private"],[1237,"rayon::iter::try_fold"],[1238,"rayon::iter::while_some"],[1239,"rayon::iter::len"],[1240,"rayon::iter::len"],[1241,"rayon::iter::zip_eq"],[1242,"core::fmt"],[1243,"alloc::string"],[1244,"halo2_middleware::circuit"],[1245,"std::collections::hash::map"],[1246,"halo2_middleware::zal::traits"],[1247,"halo2_middleware::zal::impls"],[1248,"halo2_middleware::zal::impls"],[1249,"core::ops::range"],[1250,"core::ops::range"],[1251,"core::iter::traits::collect"],[1252,"halo2_middleware::poly"],[1253,"core::marker"],[1254,"pairing"]],"d":["This module provides common utilities, traits and …","","","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.","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","This trait represents an element of a field.","The one element of the field, the multiplicative identity.","The scalar field of this elliptic curve.","The scalar field of this elliptic curve.","The zero element of the field, the additive identity.","Returns the curve constant a.","Returns the curve constant $a$.","Returns the curve constant b.","Returns the curve constant $b$.","Gets the coordinates of this point.","Cubes this element.","Doubles this element.","Apply the curve endomorphism by multiplying the …","Obtains a point given $(x, y)$, failing if it is not on the","Requests a hasher that accepts messages and returns …","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.","Obtains a point given Jacobian coordinates $X : Y : Z$, …","This utility function will parallelize an operation that …","Exponentiates self by exp, where exp is a little-endian …","Exponentiates self by exp, where exp is a little-endian …","Returns an element chosen uniformly at random using a …","Returns the square root of the field element, if it is …","Equivalent to Self::sqrt_ratio(self, one()).","Computes:","Squares this element.","","Curve elements are serialized in compressed form. Field …","Curve elements are serialized in uncompressed form. Field …","Serialization is the same as RawBytes, but no checks are …","","This enum specifies how various types are serialized and …","","","","Byte length of an affine curve element according to format.","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","Reads a compressed element from the buffer and attempts to …","Reads an element from the buffer and parses it according …","Reads a field element as bytes from the buffer according …","","","","","","Writes a curve element according to format:","Writes a field element as bytes to the buffer according to …","An iterator that supports “random access” to its data, …","IntoParallelIterator implements the conversion to a …","IntoParallelRefIterator implements the conversion to a …","IntoParallelRefMutIterator implements the conversion to a …","The type of item that the parallel iterator will produce.","The type of item that the parallel iterator will produce. …","The type of item that will be produced; this is typically …","The type of item that this parallel iterator produces. For …","The parallel iterator type that will be created.","The type of the parallel iterator that will be returned.","The type of iterator that will be created.","Parallel version of the standard iterator trait.","Parallel extensions for mutable slices.","Represents a fork-join scope which can be used to spawn …","","Tests that every item in the parallel iterator matches the …","Searches for some item in the parallel iterator that …","Returns a plain mutable slice, which is used to implement …","","","Divides an iterator into sequential blocks of …","Divides an iterator into sequential blocks of the given …","Takes two iterators and creates a new iterator over both.","Splits an iterator up into fixed-size chunks.","Creates an iterator which clones all of its elements. …","Lexicographically compares the elements of this …","Creates a fresh collection containing all the elements …","Collects the results of the iterator into the specified …","Collects this iterator into a linked list of vectors.","Creates an iterator which copies all of its elements. …","Counts the number of items in this parallel iterator.","Returns the number of threads in the current registry. If …","","","Internal method used to define the behavior of this …","Internal method used to define the behavior of this …","","Yields an index along with each item.","Determines if the elements of this ParallelIterator are …","Applies filter_op to each item of this iterator, producing …","Applies filter_op to each item of this iterator to get an …","Searches for some item in the parallel iterator that …","Searches for the sequentially first item in the parallel …","Searches for the sequentially last item in the parallel …","Applies the given predicate to the items in the parallel …","Applies the given predicate to the items in the parallel …","Applies the given predicate to the items in the parallel …","Applies map_op to each item of this iterator to get nested …","Applies map_op to each item of this iterator to get nested …","An adaptor that flattens parallel-iterable Items into one …","An adaptor that flattens serial-iterable Items into one …","","Parallel fold is similar to sequential fold except that the","Splits an iterator into fixed-size chunks, performing a …","Splits an iterator into fixed-size chunks, performing a …","Applies fold_op to the given init value with each item of …","Executes OP on each item produced by the iterator, in …","Executes OP on a value returned by init with each item …","Executes OP on the given init value with each item …","Returns the argument unchanged.","Determines if the elements of this ParallelIterator are …","Determines if the elements of this ParallelIterator are …","","Applies inspect_op to a reference to each item of this …","Interleaves elements of this iterator and the other given …","Interleaves elements of this iterator and the other given …","Intersperses clones of an element between items of this …","Calls U::from(self).","Converts self into a parallel iterator.","Takes two closures and potentially runs them in parallel. …","Determines if the elements of this ParallelIterator are …","Produces an exact count of how many items this iterator …","Determines if the elements of this ParallelIterator are …","Applies map_op to each item of this iterator, producing a …","Applies map_op to a value returned by init with each item …","Applies map_op to the given init value with each item of …","Computes the maximum of all the items in the iterator. If …","Computes the maximum of all the items in the iterator with …","Computes the item that yields the maximum value for the …","Computes the minimum of all the items in the iterator. If …","Computes the minimum of all the items in the iterator with …","Computes the item that yields the minimum value for the …","Determines if the elements of this ParallelIterator are …","Internal method used to define the behavior of this …","Wraps an iterator with a fuse in case of panics, to halt …","Returns a parallel iterator over the slice producing …","Returns a parallel iterator over chunk_size elements of …","Returns a parallel iterator over at most chunk_size …","Converts self into a parallel iterator.","Creates the parallel iterator from self.","Returns a parallel iterator over chunk_size elements of …","Returns a parallel iterator over at most chunk_size …","Sorts the slice in parallel.","Sorts the slice in parallel with a comparator function.","Sorts the slice in parallel with a key extraction function.","Sorts the slice in parallel with a key extraction function.","Sorts the slice in parallel, but might not preserve the …","Sorts the slice in parallel with a comparator function, …","Sorts the slice in parallel with a key extraction …","Returns a parallel iterator over mutable subslices …","Returns a parallel iterator over mutable subslices …","Lexicographically compares the elements of this …","Partitions the items of a parallel iterator into a pair of …","Partitions and maps the items of a parallel iterator into …","Searches for some item in the parallel iterator that …","Searches for the sequentially first item in the parallel …","Searches for the sequentially last item in the parallel …","Searches for items in the parallel iterator that match the …","Multiplies all the items in the iterator.","Reduces the items in the iterator into one item using op. …","Reduces the items in the iterator into one item using op. …","Produces a new iterator with the elements of this iterator …","Creates a “fork-join” scope s and invokes the closure …","Creates an iterator that skips the first n elements.","Creates an iterator that skips n elements from anywhere in …","Creates an iterator that skips elements from anywhere in …","Spawns a job into the fork-join scope self. This job will …","Spawns a job into every thread of the fork-join scope self…","Creates an iterator that steps by the given amount","Sums up the items in the iterator.","Creates an iterator that yields the first n elements.","Creates an iterator that yields n elements from anywhere …","Creates an iterator that takes elements from anywhere in …","Performs a fallible parallel fold.","Implements iter.try_fold().try_reduce() for …","Performs a fallible parallel fold with a cloneable init …","Executes a fallible OP on each item produced by the …","Executes a fallible OP on a value returned by init with …","Executes a fallible OP on the given init value with each …","","","Reduces the items in the iterator into one item using a …","Reduces the items in the iterator into one item using a …","","Unzips the items of a parallel iterator into a pair of …","Unzips the results of the iterator into the specified …","Mutates each item of this iterator before yielding it.","","Creates an iterator over the Some items of this iterator, …","Sets the maximum length of iterators desired to process in …","Sets the minimum length of iterators desired to process in …","Internal method used to define the behavior of this …","Iterates over tuples (A, B), where the items A are from …","The same as Zip, but requires that both iterators have the …","Out of bounds index passed to a backend","The instance sets up a copy constraint involving a column …","The constraint system is not satisfied.","This is an error that could occur during proving.","Instance provided exceeds number of available rows","The provided instances do not match the circuit parameters.","k is too small for the given circuit.","Opening error","Generic error not covered by previous cases","Minimal representation of a verification key that can be …","This is a proving key which allows for the creation of …","Transcript error","This is a verifying key which allows for the verification …","","","","","","","","","","","","","","","","","","","","","","","","","Returns commitments of fixed polynomials","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Reads a verification key from a slice of bytes using …","Reads a proving key from a slice of bytes using Self::read.","Get the underlying EvaluationDomain.","Get the underlying VerifyingKey.","Hashes a verification key into a transcript.","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","This module","Constructs an Error::NotEnoughRowsAvailable.","Obtains a pinned representation of this verification key …","Generate a proof","Reads a verification key from a buffer.","Reads a proving key from a buffer. Does so by reading …","","Writes a verifying key to a vector of bytes using …","Writes a proving key to a vector of bytes using Self::write…","","","","Returns representative of this VerifyingKey in transcripts","","","","","","","","","","","","","Verify a plonk proof","","","","","Writes a verifying key to a buffer.","Writes a proving key to a buffer.","The current value of k being used.","Generate a ProvingKey from a VerifyingKey and an instance …","Generate a VerifyingKey from an instance of CompiledCircuit…","The prover object used to create proofs interactively by …","The prover object used to create proofs interactively by …","","","","","Commit the witness at phase and return the challenges …","Commit the witness at phase and return the challenges …","Finalizes the proof creation.","Finalizes the proof creation. The following steps are …","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","Create a new prover object","Create a new prover object","Create a new prover object","Returns the phases of the circuit","","","","","","","","","A verifier that checks multiple proofs in a batch. This …","Adds a proof to the batch.","","","","","","","Finalizes the batch and checks its validity.","","Returns the argument unchanged.","","Calls U::from(self).","Constructs a new batch verifier.","","","","Returns a boolean indicating whether or not the proof is …","Returns a boolean indicating whether or not the proof is …","","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 …","Guards is unfinished verification result. Implement this …","","The polynomial is defined as coefficients of Lagrange …","Multi scalar engine which is not evaluated yet.","OpeningProof is not well-formed","The output type of this verification strategy after …","Represents the minimal parameters that determine an …","Represents a univariate polynomial defined over a field …","Caller needs to re-sample a point","Trait representing a strategy for verifying Halo 2 proofs.","","","","","","","","","","","","","","","","","","","","","","","","","","","Obtains a polynomial in coefficient form when given a …","This takes us from an n-length coefficient vector into a …","Generic commitment scheme structures","Returns a constant polynomial in the extended Lagrange …","Returns a constant polynomial in the Lagrange coefficient …","","","","","","","","","","","","","","","","","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","Get the size of the extended domain","This takes us from the extended evaluation domain and gets …","Finalizes the batch and checks its validity.","","","","","","","","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).","Inner product argument commitment scheme","Iterate over the values, which are either in coefficient …","Iterate over the values mutably, which are either in …","Get the size of the domain","KZG commitment scheme","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 …","","Creates new verification strategy instance","This constructs a new evaluation domain object based on …","","Obtains a polynomial in Lagrange form when given a vector …","Gets the size of this polynomial in terms of the number of …","Obtain a pinned version of this evaluation domain; a …","Obtains an MSM from the verifier strategy and yields back …","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 …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Wrapper type around a blinding factor.","Defines components of a commitment scheme.","Elliptic curve used to commit the application and witnesses","Unfinalized verification result. This is returned in …","Multiscalar multiplication engine","Multiscalar multiplication engine","Accumulator for compressed verification","Parameters for circuit synthesis and prover parameters.","Parameters for circuit synthesis and prover parameters.","Constant prover parameters","Verifier specific functionality with circuit constraints","Constant verifier parameters","Constant verifier parameters.","Common multi-open prover interface for various commitment …","Query instance or not","Query instance or not","Application field of this commitment scheme","Common multi-open verifier interface for various …","","","","Add another multiexp into this one","Add arbitrary term (the scalar and the point)","Return base points","","","Perform multiexp and check that it results in zero","","","This computes a commitment to a polynomial described by …","This commits to a polynomial using its evaluations over …","Create a multi-opening proof","Create a multi-opening proof","","","","Downsize Params with smaller k.","","Generates an empty multiscalar multiplication struct using …","","","Perform multiexp and return the result","","Returns the argument unchanged.","Getter for g generators","","Calls U::from(self).","Logarithmic size of the circuit","","","","Size of the circuit","Returns new instance of parameters","Creates new prover instance","Creates new verifier instance","Given rng creates new blinding scalar","Wrapper for parameter generator","Reads params from a buffer.","Wrapper for parameter reader","Scalars","Scale all scalars in the MSM by some scaling factor","","","","","Returns verification parameters.","Process the proof and return unfinished result named Guard","","Writes params to a buffer.","This module contains an implementation of the polynomial …","Multiscalar multiplication engines","IPA multi-open scheme This module contains an optimisation …","Strategies used with KZG scheme","Concrete IPA commitment scheme","Public parameters for IPA commitment scheme","Verifier parameters","","","","","","","This computes a commitment to a polynomial described by …","This commits to a polynomial using its evaluations over …","Create a polynomial commitment opening proof for the …","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","","","Initializes parameters for the curve, given a random …","","Reads params from a buffer.","","","","","","","","","","Checks to see if the proof represented within transcript …","","","Writes params to a buffer.","A multiscalar multiplication in the polynomial commitment …","Add a value to the first entry of g_scalars.","Add another multiexp into this one","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","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","Given verifier parameters Creates an empty multi scalar …","","","","","","","","IPA multi-open prover","IPA multi-open verifier","","","","","Create a multi-opening proof","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","An accumulator instance consisting of an evaluation claim …","A verifier that checks multiple proofs in a batch.","Wrapper for verification accumulator","A verifier that checks single proof","","","","","","","","","","","","","Computes G = ⟨s, params.g⟩","","","","","","","","","","","","","Finalizes the batch and checks its validity.","Finalizes the batch and checks its validity.","","","","","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 …","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","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","","","","","KZG commitment scheme","Multiscalar multiplication engines","KZG multi-open scheme","Strategies used with KZG scheme","Umbrella commitment scheme construction for all KZG …","These are the public parameters for the polynomial …","KZG multi-open verification parameters","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Initializes parameters for the curve through existing …","Returns gernerator on G2","","","","Calls U::from(self).","Calls U::from(self).","","","","","Reads params from a buffer.","Reads params from a buffer.","","Returns first power of secret on G2","Initializes parameters for the curve, draws toxic secret …","","","","","","","","","","","Writes params to a buffer.","Writes parameters to buffer","Two channel MSM accumulator","A multiscalar multiplication in the polynomial commitment …","","Add another multiexp into this one","","","","","","","","Performs final pairing check with given verifier params …","","","","","Prepares all scalars in the MSM to linear combination","","","","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","Create an empty MSM instance","Create a new two channel MSM accumulator instance","","","Scale all scalars in the MSM by some scaling factor","","","","","","","","","","","Concrete KZG prover with GWC variant","Concrete KZG prover with SHPLONK variant","Concrete KZG verifier with GWC variant","Concrete KZG multiopen verifier with SHPLONK variant","","","","","","","","","Create a multi-opening proof","Create a multi-opening proof","","","","","","","","","","","","","","","","","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).","","","","Given parameters creates new prover instance","","","","","","","","","","","","","","","Verify a multi-opening proof","","","","","A verifier that checks multiple proofs in a batch","Wrapper for linear verification accumulator","A verifier that checks a single proof","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Constructs an empty batch verifier","","","Constructs an empty batch verifier","","","","","","","","","","","","","","","","","","Constructs and initialized new batch verifier","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 …","Keccak256 hash function reader for EVM compatibility","Keccak256 hash function writer for EVM compatibility","Generic transcript view (from either the prover or verifier…","Transcript view from the perspective of a verifier that …","Initializes transcript at verifier side.","Transcript view from the perspective of a prover that has …","Manages beginning and finishing of transcript pipeline.","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 …","","Conclude the interaction and return the output buffer …","","","","","","","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 a scalar field element from an encoded challenge.","","Initialize a transcript given an input buffer.","Initialize a transcript given an output buffer.","Initialize a transcript given an input buffer.","","Initialize a transcript given an input buffer.","","Initialize a transcript given an output buffer.","","Initialize a transcript given an output buffer.","","","","Calls U::from(self).","Calls U::from(self).","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,171,171,95,171,0,0,95,0,126,171,95,126,171,95,171,95,95,126,126,171,95,171,126,171,95,126,126,171,171,0,126,126,126,126,126,126,126,0,17,17,17,0,0,0,17,17,102,17,17,17,17,17,17,17,17,17,172,102,173,17,17,17,17,17,102,173,0,0,0,0,29,174,175,32,29,174,175,0,0,0,0,32,32,176,48,48,86,86,32,86,32,86,32,86,32,32,32,0,48,48,86,32,48,86,86,32,32,32,32,32,32,32,32,32,32,32,32,48,32,86,86,32,32,32,32,48,86,86,48,32,86,86,32,48,29,0,86,86,86,32,32,32,32,32,32,32,32,32,86,32,32,176,176,176,174,175,176,176,176,176,176,176,176,176,176,176,176,86,32,32,86,86,86,86,32,32,32,86,0,86,32,32,48,48,86,32,86,32,32,32,177,32,32,32,32,48,48,32,32,48,32,86,32,48,32,86,86,86,86,86,97,97,97,0,97,97,97,97,97,0,0,97,0,97,94,99,96,97,94,99,96,94,96,94,96,97,94,99,96,97,94,99,96,97,94,99,96,94,97,97,94,99,96,97,97,94,99,96,94,96,94,96,94,97,94,99,96,97,94,99,96,0,97,94,0,94,96,97,94,96,94,96,97,94,97,94,99,96,97,94,99,96,97,94,99,96,0,97,94,99,96,94,96,178,0,0,0,0,111,117,111,117,111,117,111,117,111,117,111,117,111,117,111,117,111,117,111,117,111,117,111,117,111,117,117,111,117,111,117,111,117,111,117,0,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,0,0,120,0,0,0,0,0,0,0,0,179,133,123,0,0,133,0,125,125,103,132,133,128,129,130,125,103,132,133,128,129,130,125,103,128,129,130,125,103,128,129,130,125,103,103,0,103,103,103,132,133,128,129,130,125,125,103,132,133,128,129,130,125,125,103,103,132,133,128,129,130,125,103,103,103,103,103,103,123,103,132,133,128,129,130,125,103,132,133,128,129,130,125,103,103,103,103,125,125,125,125,125,125,103,132,133,128,129,130,125,103,132,133,128,129,130,125,0,125,125,103,0,103,103,103,125,123,103,125,125,125,103,123,125,103,103,125,125,103,128,129,130,125,103,132,133,128,129,130,125,103,132,133,128,129,130,125,103,132,133,128,129,130,125,125,103,132,133,128,129,130,125,0,0,113,122,0,110,122,0,0,113,0,113,180,0,114,122,113,0,139,139,139,181,181,181,139,139,181,139,139,180,110,114,114,139,139,139,110,139,110,139,139,181,139,139,180,139,139,110,139,139,139,110,180,114,122,139,113,110,113,181,181,139,139,139,139,180,122,139,110,0,0,0,0,0,0,0,142,144,142,144,142,142,142,142,0,142,144,142,144,142,142,144,142,142,144,142,144,142,142,144,142,144,142,142,142,144,142,144,142,142,144,142,144,142,144,142,0,142,144,142,0,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,0,0,146,147,146,147,146,146,147,146,147,146,147,146,147,146,147,146,147,146,147,146,147,146,147,146,147,146,147,147,146,147,0,0,0,0,145,148,149,150,145,148,149,150,145,148,145,148,145,145,148,149,150,145,148,149,150,145,148,149,150,149,150,145,148,149,150,145,148,149,150,148,145,148,149,150,145,148,149,150,149,150,149,150,145,148,145,148,149,150,145,148,149,150,145,148,149,150,148,145,145,145,148,149,150,0,0,0,0,0,0,0,151,154,151,154,151,151,151,151,151,154,151,154,151,151,154,151,151,154,151,154,151,151,151,151,154,151,154,151,151,151,154,151,151,154,151,151,151,151,154,151,154,151,154,151,151,154,151,151,0,0,153,155,153,153,153,155,153,155,153,155,153,155,153,155,153,153,153,155,153,155,153,155,153,153,155,153,155,155,153,155,153,155,153,155,153,153,155,153,155,153,155,153,155,153,155,153,155,0,0,0,0,157,159,158,160,157,159,158,160,157,158,157,159,158,160,157,159,158,160,157,159,158,160,157,159,158,160,157,159,158,160,157,159,158,160,157,159,158,160,157,159,158,158,160,157,159,158,160,157,159,158,160,157,159,158,160,159,160,157,159,158,160,0,0,0,161,162,163,161,162,163,161,162,163,161,162,163,161,162,163,161,162,163,161,162,163,162,163,161,162,163,161,162,163,161,162,163,161,162,163,162,162,163,163,162,163,161,162,163,161,162,163,161,162,163,161,162,163,161,162,163,162,0,0,0,0,0,104,0,0,0,0,0,0,0,104,165,166,167,168,164,169,165,166,167,168,164,169,165,166,167,168,164,169,165,166,167,168,164,169,105,165,166,167,168,105,165,166,167,168,165,166,167,168,164,164,169,169,165,166,167,168,164,169,165,166,167,168,164,169,182,167,168,165,166,167,168,164,169,165,166,167,168,164,169,104,169,183,182,165,165,166,166,167,167,168,168,164,169,165,166,167,168,164,169,104,169,0,0,124,165,166,124,165,166,105,165,166,167,168,105,165,166,167,168,164,169,165,166,167,168,164,169,165,166,167,168,164,169,165,166,167,168,164,169,165,166,167,168,164,169,115,167,168,115,167,168],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[-1,[[2,[[1,[-1]]]]],[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],[[2,[-1]]],[]],[3,[[6,[4,5]]]],[-1,[[2,[-1]]],[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,8,[]],[-1,9,[]],[[],[[2,[-1]]],[]],[[[10,[-1]],-2],9,11,[4,11,12,13]],[[-1,-2],-1,[],[[15,[[10,[14]]]]]],[[-1,-2],-1,[],[[15,[[10,[14]]]]]],[-1,-2,16,[]],[-1,[[2,[-1]]],[]],[-1,[[9,[7,-1]]],[]],[[-1,-1],[[9,[7,-1]]],[]],[-1,-1,[]],0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[17,18],[17,17],[[-1,-2],9,[],[]],[18,-1,[]],[18,-1,[]],[18,9],[[17,19],20],[-1,-1,[]],[[],18],[-1,-2,[],[]],[-1,[[21,[-2]]],22,[]],[[-1,17],[[21,[-2]]],22,[]],[[-1,17],[[21,[-2]]],22,[]],[-1,-2,[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,24,[]],[-1,-2,[],[]],[[-1,-2,17],[[21,[9]]],[],25],[[-1,-2,17],[[21,[9]]],[],25],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[-1,-2],8,[],[4,12,11]],[[-1,-2],8,[],[4,12,11]],[-1,[[10,[-2]]],[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[26,[-1]]],[]],[[-1,18],[[27,[-1]]],[]],[[-1,-2],[[28,[-1]]],[],29],[[-1,18],[[30,[-1]]],[]],[-1,[[31,[-1]]],32],[[-1,-2],33,[],29],[-1,-2,[],34],[[-1,[35,[5]]],9,[]],[-1,[[36,[[35,[5]],5]]],[]],[-1,[[37,[-1]]],32],[-1,18,[]],[[],18],[18,-1,[]],[18,-1,[]],[[-1,-2],[],[],38],[[-1,-2],[],[],39],[18,9],[-1,[[40,[-1]]],[]],[[-1,-2],8,[],29],[[-1,-2],[[41,[-1,-2]]],[],[4,12,11]],[[-1,-2],[[42,[-1,-2]]],[],[4,12,11]],[[-1,-2],43,[],[4,12,11]],[[-1,-2],43,[],[4,12,11]],[[-1,-2],43,[],[4,12,11]],[[-1,-2],[[43,[-3]]],[],[4,12,11],11],[[-1,-2],[[43,[-3]]],[],[4,12,11],11],[[-1,-2],[[43,[-3]]],[],[4,12,11],11],[[-1,-2],[[44,[-1,-2]]],[],[4,12,11]],[[-1,-2],[[45,[-1,-2]]],[],[4,12,11]],[-1,[[46,[-1]]],[]],[-1,[[47,[-1]]],[]],[[48,19],[[23,[9,49]]]],[[-1,-2,-3],[[50,[-1,-2,-3]]],[],[4,12,11],[4,12,11]],[[-1,18,-2,-3],[[51,[-1,-2,-3]]],[],[4,11,12],[4,11,12]],[[-1,18,-2,-3],[[52,[-1,-2,-3]]],[],[11,13],[4,11,12]],[[-1,-2,-3],[[53,[-1,-2,-3]]],[],[11,13],[4,12,11]],[[-1,-2],9,[],[4,12,11]],[[-1,-2,-3],9,[],[4,12,11],[4,12,11]],[[-1,-2,-3],9,[],[11,13],[4,12,11]],[-1,-1,[]],[[-1,-2],8,[],29],[[-1,-2],8,[],29],[[],18],[[-1,-2],[[54,[-1,-2]]],[],[4,12,11]],[[-1,-2],[[55,[-1]]],[],29],[[-1,-2],[[56,[-1]]],[],29],[-1,[[57,[-1]]],[]],[-1,-2,[],[]],[-1,[],[]],[[-1,-2],[[9,[-3,-4]]],[58,11],[58,11],11,11],[[-1,-2],8,[],29],[-1,18,[]],[[-1,-2],8,[],29],[[-1,-2],[[59,[-1,-2]]],[],[4,12,11]],[[-1,-2,-3],[[60,[-1,-2,-3]]],[],[4,12,11],[4,12,11]],[[-1,-2,-3],[[61,[-1,-2,-3]]],[],[11,13],[4,12,11]],[-1,43,[]],[[-1,-2],43,[],[12,11,4]],[[-1,-2],43,[],[12,11,4]],[-1,43,[]],[[-1,-2],43,[],[12,11,4]],[[-1,-2],43,[],[12,11,4]],[[-1,-2],8,[],29],[-1,[[43,[18]]],[]],[-1,[[62,[-1]]],[]],[[-1,-2],[[63,[-3,-2]]],[],[4,11,12],[]],[[-1,18],[[64,[-2]]],[],[]],[[-1,18],[[65,[-2]]],[],[]],[-1,[],[]],[-1,[],[]],[[-1,18],[[66,[-2]]],[],[]],[[-1,18],[[67,[-2]]],[],[]],[-1,9,[]],[[-1,-2],9,[],[4,12]],[[-1,-2],9,[],[4,12]],[[-1,-2],9,[],[4,12]],[-1,9,[]],[[-1,-2],9,[],[4,12]],[[-1,-2],9,[],[4,12]],[[-1,-2],[[68,[-3,-2]]],[],[4,12,11],[]],[[-1,-2],[[69,[-3,-2]]],[],[4,12,11],[]],[[-1,-2],[[43,[33]]],[],29],[[-1,-2],[[9,[-3,-4]]],[],[4,12,11],[70,11,71],[70,11,71]],[[-1,-2],[[9,[-4,-6]]],[],[4,12,11],11,[70,11,[71,[-3]]],11,[70,11,[71,[-5]]]],[[-1,-2],[[43,[18]]],[],[4,12,11]],[[-1,-2],[[43,[18]]],[],[4,12,11]],[[-1,-2],[[43,[18]]],[],[4,12,11]],[[-1,-2],[[72,[-1,-2]]],[],[4,12,11]],[-1,-2,[],[11,73,73]],[[-1,-2,-3],[],[],[4,12,11],[4,12,11]],[[-1,-2],43,[],[4,12,11]],[-1,[[74,[-1]]],[]],[-1,-2,[58,11],11],[[-1,18],[[75,[-1]]],[]],[[-1,18],[[76,[-1]]],[]],[[-1,-2],[[77,[-1,-2]]],[],[4,12,11]],[[48,-1],9,[58,11]],[[48,-1],9,[4,11,12]],[[-1,18],[[78,[-1]]],[]],[-1,-2,[],[11,79,79]],[[-1,18],[[80,[-1]]],[]],[[-1,18],[[81,[-1]]],[]],[[-1,-2],[[82,[-1,-2]]],[],[4,12,11]],[[-1,-2,-3],[[83,[-1,-4,-2,-3]]],[],[4,12,11],[4,12,11],[84,11]],[[-1,-2,-3],[[23,[-4,-5]]],[],[4,11,12],[4,11,12],[],[]],[[-1,-2,-3],[[85,[-1,-4,-3]]],[],[13,11],[4,12,11],[84,11]],[[-1,-2],-3,[],[4,12,11],[84,11]],[[-1,-2,-3],-4,[],[4,12,11],[4,12,11],[84,11]],[[-1,-2,-3],-4,[],[11,13],[4,12,11],[84,11]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[[-1,-2,-3],[],[],[4,12,11],[4,12,11]],[[-1,-2],43,[],[4,12,11]],[-1,24,[]],[-1,[[9,[-3,-5]]],32,11,[70,11,[71,[-2]]],11,[70,11,[71,[-4]]]],[[-1,[35,[-2,5]],[35,[-3,5]]],9,86,11,11],[[-1,-2],[[87,[-1,-2]]],[],[4,12,11]],[-1,-2,[],[]],[-1,[[88,[-1]]],32],[[-1,18],[[89,[-1]]],[]],[[-1,18],[[90,[-1]]],[]],[[-1,-2],[],[],91],[[-1,-2],[[92,[-1]]],[],29],[[-1,-2],[[93,[-1]]],[],29],0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[94,[-1]]],[[94,[-1]]],[13,95]],[[[96,[-1]]],[[96,[-1]]],[13,95]],[[-1,-2],9,[],[]],[[-1,-2],9,[],[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,9],[18,9],[18,9],[18,9],[[[94,[-1]]],[[35,[-1]]],95],[[97,19],20],[[97,19],20],[[[94,[-1]],19],20,[98,95]],[[[99,[-1]],19],20,[98,95]],[[[96,[-1]],19],20,[98,95]],[100,97],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],0,0,[[[94,[-1]]],103,95],[[[96,[-1]]],[[94,[-1]]],95],[[[94,[-1]],-3],[[21,[9]]],95,[[104,[-1]]],[[105,[-1,-2]]]],[[],18],[[],18],[[],18],[[],18],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[106,97],[[[94,[-1]]],[[99,[-1]]],95],0,0,0,[97,[[43,[107]]]],[[[94,[-1]],17],[[35,[101]]],102],[[[96,[-1]],17],[[35,[101]]],102],[-1,-2,[],[]],[-1,-2,[],[]],[-1,108,[]],[[[94,[-1]]],[],95],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,24,[]],[-1,24,[]],[-1,24,[]],[-1,24,[]],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[94,[-1]],-2,17],[[21,[9]]],102,25],[[[96,[-1]],-2,17],[[21,[9]]],102,25],0,[[-2,[94,[-1]],109],[[23,[[96,[-1]],97]]],95,[[110,[-1]]]],[[-2,109],[[23,[[94,[-1]],97]]],95,[[110,[-1]]]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[111,[-1,-2,-3,-4,-5,-6]],101,[35,[[43,[35]]]]],[[23,[[112,[18]],97]]],113,[[114,[-1]]],104,16,[[115,[-3]]],116],[[[117,[-1,-2,-3,-4,-5,-6]],101,[35,[[35,[[43,[35]]]]]]],[[23,[[112,[18]],97]]],113,[[114,[-1]]],104,16,[[115,[-3]]],116],[[[111,[-1,-2,-3,-4,-5,-6]]],[[23,[9,97]]],113,[[114,[-1]]],104,16,[[115,[-3]]],116],[[[117,[-1,-2,-3,-4,-5,-6]]],[[23,[9,97]]],113,[[114,[-1]]],104,16,[[115,[-3]]],116],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,9],[18,9],[[[111,[-1,-2,-3,-4,-5,-6]],19],20,[98,113],[98,[114,[-1]]],[98,104],[98,16],[98,[115,[-3]]],[98,116]],[[[117,[-1,-2,-3,-4,-5,-6]],19],20,[98,113],[98,[114,[-1]]],[98,104],[98,16],[98,[115,[-3]]],[98,116]],[-1,-1,[]],[-1,-1,[]],[[],18],[[],18],[-1,-2,[],[]],[-1,-2,[],[]],[[96,[10,[10]],-1,-3],[[23,[[111,[-4,-5,-2,-1,-3,118]],97]]],16,104,[[115,[-2]]],113,[[114,[-4]]]],[[96,[10,[[10,[10]]]],-1,-3],[[23,[[117,[-4,-5,-2,-1,-3,118]],97]]],16,104,[[115,[-2]]],113,[[114,[-4]]]],[[[119,[-1]],96,[10,[10]],-2,-4],[[23,[[111,[-5,-6,-3,-2,-4,-1]],97]]],116,16,104,[[115,[-3]]],113,[[114,[-5]]]],[[[119,[-1]],96,[10,[[10,[10]]]],-2,-4],[[23,[[117,[-5,-6,-3,-2,-4,-1]],97]]],116,16,104,[[115,[-3]]],113,[[114,[-5]]]],[[[117,[-1,-2,-3,-4,-5,-6]]],[[10,[101]]],113,[[114,[-1]]],104,16,[[115,[-3]]],116],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,24,[]],[-1,24,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[[[120,[-1]],[35,[[35,[35]]]],[35,[101]]],9,95],[-1,-2,[],[]],[-1,-2,[],[]],[[],[[120,[-1]]],[70,95]],[18,-1,[]],[18,-1,[]],[18,9],[[[120,[-1]],[121,[-1]],[94,[-1]]],8,95],[[[120,[-1]],19],20,[98,95]],[-1,-1,[]],[[],18],[-1,-2,[],[]],[[],[[120,[-1]]],95],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,24,[]],[[94,-3,[10,[[10,[10]]]],-5],[[23,[97]]],113,[[122,[-1]]],[[123,[-1,-2]]],104,[[124,[-4]]]],[[94,-3,[10,[10]],-5],[[23,[97]]],113,[[122,[-1]]],[[123,[-1,-2]]],104,[[124,[-4]]]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[125,[-1,-2]],[125,[-1,-2]]],[[125,[-1,-2]]],126,127],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[103,[-1]]],[[103,[-1]]],[13,126]],[128,128],[129,129],[130,130],[[[125,[-1,-2]]],[[125,[-1,-2]]],13,13],[[-1,-2],9,[],[]],[[-1,-2],9,[],[]],[[-1,-2],9,[],[]],[[-1,-2],9,[],[]],[[-1,-2],9,[],[]],[[[103,[-1]],[35,[-1]]],[[125,[-1,128]]],131],[[[103,[-1]],[125,[-1,128]]],[[125,[-1,130]]],131],0,[[[103,[-1]],-1],[[125,[-1,130]]],131],[[[103,[-1]],-1],[[125,[-1,129]]],131],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[[[125,[-1,-2]]],[[10,[-1]]],[],[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[[[125,[-1,-2]]],[[10,[-1]]],[],[]],[18,-1,[]],[[[103,[-1]],[125,[-1,130]]],[[125,[-1,130]]],131],[18,9],[18,9],[18,9],[18,9],[18,9],[18,9],[18,9],[[[103,[-1]]],[[125,[-1,128]]],131],[[[103,[-1]]],[[125,[-1,130]]],131],[[[103,[-1]]],[[125,[-1,129]]],131],[[[103,[-1]]],106,131],[[[103,[-1]]],18,131],[[[103,[-1]],[125,[-1,130]]],[[35,[-1]]],131],[-1,8,[]],[[[103,[-1]],19],20,[98,126]],[[[132,[-1]],19],20,[98,126]],[[133,19],20],[[128,19],20],[[129,19],20],[[130,19],20],[[[125,[-1,-2]],19],20,98,98],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[103,[-1]]],-1,131],[[[103,[-1]]],-1,131],[[[103,[-1]]],-1,131],[[[103,[-1]]],18,131],[[[125,[-1,-2]],134],[[10,[-1]]],[],[]],[[[125,[-1,-2]],18],-1,[],[]],[[[125,[-1,-2]],[135,[18]]],[[10,[-1]]],[],[]],[[[125,[-1,-2]],[135,[18]]],[[10,[-1]]],[],[]],[[[125,[-1,-2]],134],[[10,[-1]]],[],[]],[[[125,[-1,-2]],18],-1,[],[]],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[[[125,[-1,-2]]],[[0,[136]]],[],[]],[[[125,[-1,-2]]],[[0,[136]]],[],[]],[[[103,[-1]]],106,131],0,[[[103,[-1]],-1,-1,-2],[[35,[-1]]],131,[137,13]],[[[103,[-1]],[35,[-1]]],[[125,[-1,129]]],131],[[[103,[-1]],[125,[-1,129]]],[[125,[-1,128]]],131],[[[125,[-1,-2]],-1],[[125,[-1,-2]]],126,127],[[],-1,[]],[[106,106],[[103,[-1]]],131],[[18,-1],[[125,[-1,-2]]],13,[]],[[[35,[-1]]],[[125,[-1,129]]],13],[[[125,[-1,-2]]],18,[],[]],[[[103,[-1]]],[[132,[-1]]],131],[[-1,-2],[[23,[97]]],[],58],[[[125,[-1,129]],138],[[125,[-1,129]]],126],[[[103,[-1]],[125,[-1,130]],138],[[125,[-1,130]]],131],[[[103,[-1]],-1,138],-1,131],[[[125,[-1,-2]],[125,[-1,-2]]],[[125,[-1,-2]]],126,127],[[[125,[-1,-2]],-1],[[125,[-1,-2]]],126,127],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,24,[]],[-1,24,[]],[-1,24,[]],[-1,24,[]],[-1,24,[]],[-1,24,[]],[-1,24,[]],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[139,[-1]],[139,[-1]]],[[139,[-1]]],126],[[[139,[-1]],[139,[-1]]],9,126],[[[139,[-1]],-1],9,126],[[-1,-1],9,140],[-1,9,[]],[-1,35,[]],[-1,-2,[],[]],[-1,-2,[],[]],[[-1,-3],8,[],[],[[116,[-2]]]],[[[139,[-1]]],[[139,[-1]]],13],[[-1,-2],9,[],[]],[[-1,-3,[125,[128]],139],[],[],[],[[116,[-2]]]],[[-1,-3,[125,[129]],139],[],[],[],[[116,[-2]]]],[[-1,-2,-4,-5],[[21,[9]]],[],16,104,[[115,[-3]]],[137,13]],[[-1,-2,-3,-5,-6],[[21,[9]]],[],116,16,104,[[115,[-4]]],[137,13]],[[],[[139,[-1]]],126],[18,-1,[]],[18,-1,[]],[[-1,106],9,[]],[18,9],[-1,[],[]],[[[139,[-1]],[139,[-1]]],8,141],[[-1,-2],8,[],[]],[[-1,-3],[],[],[],[[116,[-2]]]],[[[139,[-1]],19],20,98],[-1,-1,[]],[-1,[[10,[-2]]],[],[]],[[],18],[-1,-2,[],[]],[-1,106,[]],[[[139,[-1]],[139,[-1]]],[[139,[-1]]],126],[[[139,[-1]],-1],9,126],[[[139,[-1]],[139,[-1]]],9,126],[-1,14,[]],[106,-1,[]],[[],-1,[]],[[],-1,[]],[-1,[[139,[-2]]],16,126],[106],[-1,[[21,[-2]]],22,[]],[-1,21,22],[-1,35,[]],[-1,9,[]],[-1,-2,[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,24,[]],[-1,[],[]],[[-1,-3,-4],[[23,[133]]],[],104,[[124,[-2]]],[137,13]],[-1,-2,[],[]],[[-1,-2],[[21,[9]]],[],25],0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[142,[-1]]],[[142,[-1]]],[13,95]],[[-1,-2],9,[],[]],[[[142,[-1]],-2,[125,[128]],139],[],95,[[116,[-1]]]],[[[142,[-1]],-2,[125,[129]],139],[],95,[[116,[-1]]]],[[-2,[142,[-1]],-3,-5,[125,[128]],139],[[21,[9]]],95,[[116,[-1]]],16,[[104,[-1]]],[[115,[-1,-4]]]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[[[142,[-1]],106],9,95],[18,9],[18,9],[[[142,[-1]]],[[143,[-1]]],95],[[[142,[-1]],19],20,[98,95]],[[[144,[-1]],19],20,[98,95]],[-1,-1,[]],[-1,-1,[]],[[[142,[-1]]],[[10,[-1]]],95],[[],18],[[],18],[-1,-2,[],[]],[-1,-2,[],[]],[[[142,[-1]]],106,95],[[[142,[-1]]],14,95],[106,[[142,[-1]]],95],[106],[-1,[[21,[[142,[-2]]]]],22,95],[-1,21,22],[-1,-2,[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,24,[]],[-1,24,[]],[[[142,[-1]]],[],95],[[[142,[-1]],[143,[-1]],-3],[[23,[[145,[-1]],133]]],95,[[104,[-1]]],[[124,[-1,-2]]]],[-1,-2,[],[]],[-1,-2,[],[]],[[[142,[-1]],-2],[[21,[9]]],95,25],0,[[[143,[-1]]],9,95],[[[143,[-1]],[143,[-1]]],9,95],[[[143,[-1]],[143,[-1]]],9,95],[[[143,[-1]],10],9,95],[[[143,[-1]]],9,95],[[[143,[-1]]],9,95],[[[143,[-1]]],9,95],[[[143,[-1]]],35,95],[-1,-2,[],[]],[-1,-2,[],[]],[[[143,[-1]],-2],8,95,[[116,[-1]]]],[[[143,[-1]]],[[143,[-1]]],[13,95]],[[-1,-2],9,[],[]],[18,-1,[]],[18,-1,[]],[18,9],[[[143,[-1]],-2],[],95,[[116,[-1]]]],[[[143,[-1]],19],20,[98,95]],[-1,-1,[]],[[],18],[-1,-2,[],[]],[[[121,[-1]]],[[143,[-1]]],95],[[[143,[-1]]],35,95],[[[143,[-1]]],9,95],[-1,-2,[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,24,[]],[-1,-2,[],[]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[146,[-1]],-2,-3,-5,-6],[[21,[9]]],95,[[116,[-1]]],16,[[104,[-1]]],[[115,[-1,-4]]],[137,13]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,9],[18,9],[[[146,[-1]],19],20,[98,95]],[[[147,[-1]],19],20,[98,95]],[-1,-1,[]],[-1,-1,[]],[[],18],[[],18],[-1,-2,[],[]],[-1,-2,[],[]],[[[142,[-1]]],[[146,[-1]]],95],[[[121,[-1]]],[[147,[-1]]],95],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,24,[]],[-1,24,[]],[[[147,[-1]],-3,-4,[143,[-1]]],[[23,[133]]],95,[[104,[-1]]],[[124,[-1,-2]]],[137,13]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[145,[-1]]],[[145,[-1]]],[13,95]],[[[148,[-1]]],[[148,[-1]]],[13,95]],[[-1,-2],9,[],[]],[[-1,-2],9,[],[]],[[[145,[-1]],-2],-1,95,[[116,[-1]]]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,9],[18,9],[18,9],[18,9],[[[149,[-1]]],8,95],[[[150,[-1]]],8,95],[[[145,[-1]],19],20,[98,95]],[[[148,[-1]],19],20,[98,95]],[[[149,[-1]],19],20,[98,95]],[[[150,[-1]],19],20,[98,95]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],0,[[],18],[[],18],[[],18],[[],18],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[142,[-1]]],[[149,[-1]]],95],[[[142,[-1]]],[[150,[-1]]],95],[[[149,[-1]],-2],[[23,[97]]],95,58],[[[150,[-1]],-2],[[23,[97]]],95,58],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,24,[]],[-1,24,[]],[-1,24,[]],[-1,24,[]],0,[[[145,[-1]]],[[143,[-1]]],95],[[[145,[-1]],-1],[[9,[[143,[-1]],[148,[-1]]]]],95],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[151,[-1]]],[[151,[-1]]],[13,152]],[[-1,-2],9,[],[]],[[[151,[-1]],-2,[125,[128]],139],[],[152,98],116],[[[151,[-1]],-2,[125,[129]],139],[],[152,98],116],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[[[151,[-1]],106],9,[152,98]],[18,9],[18,9],[[[151,[-1]]],[[153,[-1]]],[152,98]],[[[151,[-1]],19],20,[98,152]],[[[154,[-1]],19],20,[98,152]],[-1,-1,[]],[-1,-1,[]],[[[151,[-1]],106,35,[43,[35]]],[[151,[-1]]],[152,98]],[[[151,[-1]]],[],[152,98]],[[[151,[-1]]],10,[152,98]],[[],18],[[],18],[-1,-2,[],[]],[-1,-2,[],[]],[[[151,[-1]]],106,[152,98]],[[[151,[-1]]],14,[152,98]],[106,[[151,[-1]]],[152,98]],[106],[-1,[[21,[[151,[-2]]]]],22,[152,98]],[[-1,17],[[21,[[151,[-2]]]]],22,[152,98]],[-1,21,22],[[[151,[-1]]],[],[152,98]],[[106,-1],[[151,[-2]]],16,[152,98]],[-1,-2,[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,24,[]],[-1,24,[]],[[[151,[-1]]],[],[152,98]],[-1,-2,[],[]],[-1,-2,[],[]],[[[151,[-1]],-2],[[21,[9]]],[152,98],25],[[[151,[-1]],-2,17],[[21,[9]]],[152,98],25],0,0,[[[153,[-1]],[153,[-1]]],9,[152,98]],[[[155,[-1]],[155,[-1]]],9,[156,98]],[[[153,[-1]]],9,[152,98]],[[[153,[-1]]],35,[152,98]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[153,[-1]],-2],8,[152,98],116],[[[155,[-1]],-2],8,[156,98],116],[[[153,[-1]]],[[153,[-1]]],[13,152]],[[[155,[-1]]],[[155,[-1]]],[13,152]],[[-1,-2],9,[],[]],[[-1,-2],9,[],[]],[[[153,[-1]]],9,152],[[],[[153,[-1]]],[70,152]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,9],[18,9],[[[153,[-1]],-2],[],[152,98],116],[[[153,[-1]],19],20,[98,152]],[[[155,[-1]],19],20,[98,152]],[-1,-1,[]],[[[151,[-1]]],[[155,[-1]]],[156,98]],[-1,-1,[]],[[],18],[[],18],[-1,-2,[],[]],[-1,-2,[],[]],[[],[[153,[-1]]],152],[[[151,[-1]]],[[155,[-1]]],[156,98]],[[[153,[-1]]],35,[152,98]],[[[153,[-1]]],9,[152,98]],[[[155,[-1]]],9,[156,98]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,24,[]],[-1,24,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[157,[-1]],-2,-3,-5,-6],[[21,[9]]],[152,98],116,16,104,[[115,[-4]]],[137,13]],[[[158,[-1]],-2,-3,-5,-6],[[21,[9]]],[152,98],116,16,104,[[115,[-4]]],[137,13]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,9],[18,9],[18,9],[18,9],[[[157,[-1]],19],20,[98,152]],[[[159,[-1]],19],20,[98,152]],[[[158,[-1]],19],20,[98,152]],[[[160,[-1]],19],20,[98,152]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],18],[[],18],[[],18],[[],18],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[151,[-1]]],[[157,[-1]]],[152,98]],[[[151,[-1]]],[[159,[-1]]],[156,98]],[[[151,[-1]]],[[158,[-1]]],[152,98]],[[[151,[-1]]],[[158,[-1]]],152],[[[151,[-1]]],[[160,[-1]]],[156,98]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,24,[]],[-1,24,[]],[-1,24,[]],[-1,24,[]],[[[159,[-1]],-3,-4,[155,[-1]]],[[23,[133]]],[156,98],104,[[124,[-2]]],[137,13]],[[[160,[-1]],-3,-4,[155,[-1]]],[[23,[133]]],[156,98],104,[[124,[-2]]],[137,13]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[161,[-1]]],[[161,[-1]]],[13,156,98]],[[[162,[-1]]],[[162,[-1]]],[13,152]],[[[163,[-1]]],[[163,[-1]]],[13,152]],[[-1,-2],9,[],[]],[[-1,-2],9,[],[]],[[-1,-2],9,[],[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,9],[18,9],[18,9],[[[162,[-1]]],8,[156,98]],[[[163,[-1]]],8,[156,98]],[[[161,[-1]],19],20,[98,156,98]],[[[162,[-1]],19],20,[98,152]],[[[163,[-1]],19],20,[98,152]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],18],[[],18],[[],18],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[151,[-1]]],[[162,[-1]]],[156,98]],[[[151,[-1]]],[[162,[-1]]],[156,98]],[[[151,[-1]]],[[163,[-1]]],[156,98]],[[[151,[-1]]],[[163,[-1]]],[156,98]],[[[162,[-1]],-2],[[23,[97]]],[156,98],58],[[[163,[-1]],-2],[[23,[97]]],[156,98],58],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,24,[]],[-1,24,[]],[-1,24,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[155,[-1]]],[[162,[-1]]],[156,98]],0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,[[164,[-2,-3]]],[],[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[165,[-1,-2,-3]]],[[165,[-1,-2,-3]]],[13,22],[13,95],[13,[104,[-2]]]],[[[166,[-1,-2,-3]]],[[166,[-1,-2,-3]]],[13,22],[13,95],[13,[104,[-2]]]],[[[167,[-1,-2,-3]]],[[167,[-1,-2,-3]]],[13,25],[13,95],[13,[104,[-2]]]],[[[168,[-1,-2,-3]]],[[168,[-1,-2,-3]]],[13,25],[13,95],[13,[104,[-2]]]],[[[164,[-1,-2]]],[[164,[-1,-2]]],[13,95],13],[[[169,[-1]]],[[169,[-1]]],[13,95]],[[-1,-2],9,[],[]],[[-1,-2],9,[],[]],[[-1,-2],9,[],[]],[[-1,-2],9,[],[]],[[-1,-2],9,[],[]],[[-1,-2],9,[],[]],[[-1,-2],[[21,[9]]],[],[]],[[[165,[-1,-2,[169,[-2]]]],-2],[[21,[9]]],22,95],[[[166,[-1,-2,[169,[-2]]]],-2],[[21,[9]]],22,95],[[[167,[-1,-2,[169,[-2]]]],-2],[[21,[9]]],25,95],[[[168,[-1,-2,[169,[-2]]]],-2],[[21,[9]]],25,95],[-1,[[21,[9]]],[]],[[[165,[-1,-2,[169,[-2]]]]],[[21,[9]]],22,95],[[[166,[-1,-2,[169,[-2]]]]],[[21,[9]]],22,95],[[[167,[-1,-2,[169,[-2]]]]],[[21,[9]]],25,95],[[[168,[-1,-2,[169,[-2]]]]],[[21,[9]]],25,95],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[[[164,[-1,-2]]],[],95,[]],[18,-1,[]],[[[169,[-1]]],[],95],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,-1,[]],[18,9],[18,9],[18,9],[18,9],[18,9],[18,9],[-1,-2,[],[]],[[[167,[-1,-2,[169,[-2]]]]],-1,25,95],[[[168,[-1,-2,[169,[-2]]]]],-1,25,95],[[[165,[-1,-2,-3]],19],20,[98,22],[98,95],[98,[104,[-2]]]],[[[166,[-1,-2,-3]],19],20,[98,22],[98,95],[98,[104,[-2]]]],[[[167,[-1,-2,-3]],19],20,[98,25],[98,95],[98,[104,[-2]]]],[[[168,[-1,-2,-3]],19],20,[98,25],[98,95],[98,[104,[-2]]]],[[[164,[-1,-2]],19],20,[98,95],98],[[[169,[-1]],19],20,[98,95]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,[],[]],[[[169,[-1]]],[],95],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[165,[-1,-2,[169,[-2]]]]],22,95],[[],18],[-1,[[166,[-1,-2,[169,[-2]]]]],22,95],[[],18],[-1,[[167,[-1,-2,[169,[-2]]]]],25,95],[[],18],[-1,[[168,[-1,-2,[169,[-2]]]]],25,95],[[],18],[[],18],[[],18],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[],-1,[]],[[[170,[101]]],[[169,[-1]]],95],[[-3,18],[[21,[[35,[-1]]]]],95,[[104,[-1]]],[[124,[-1,-2]]]],[[-3,18],[[21,[35]]],95,[[104,[-1]]],[[124,[-1,-2]]]],[-1,[[21,[-2]]],[],[]],[[[165,[-1,-2,[169,[-2]]]]],[[21,[-2]]],22,95],[[[166,[-1,-2,[169,[-2]]]]],[[21,[-2]]],22,95],[-1,21,[]],[[[165,[-1,-2,[169,[-2]]]]],21,22,95],[[[166,[-1,-2,[169,[-2]]]]],21,22,95],[-1,-2,[],[]],[[[165,[-1,-2,[169,[-2]]]]],[[169,[-2]]],22,95],[[[166,[-1,-2,[169,[-2]]]]],[[169,[-2]]],22,95],[[[167,[-1,-2,[169,[-2]]]]],[[169,[-2]]],25,95],[[[168,[-1,-2,[169,[-2]]]]],[[169,[-2]]],25,95],[-1,[[164,[-2,-3]]],[],[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,[[23,[-2]]],[],[]],[-1,24,[]],[-1,24,[]],[-1,24,[]],[-1,24,[]],[-1,24,[]],[-1,24,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[-1,-2],[[21,[9]]],[],[]],[[[167,[-1,-2,[169,[-2]]]],-2],[[21,[9]]],25,95],[[[168,[-1,-2,[169,[-2]]]],-2],[[21,[9]]],25,95],[-1,[[21,[9]]],[]],[[[167,[-1,-2,[169,[-2]]]]],[[21,[9]]],25,95],[[[168,[-1,-2,[169,[-2]]]]],[[21,[9]]],25,95]],"c":[],"p":[[3,"Coordinates",1178],[3,"CtOption",1179],[15,"str"],[8,"Fn",1180],[3,"Global",1181],[3,"Box",1182],[3,"Choice",1179],[15,"bool"],[15,"tuple"],[15,"slice"],[8,"Send",1183],[8,"Sync",1183],[8,"Clone",1184],[15,"u64"],[8,"AsRef",1185],[8,"RngCore",1186],[4,"SerdeFormat",43],[15,"usize"],[3,"Formatter",1187],[6,"Result",1187],[6,"Result",1188],[8,"Read",1189],[4,"Result",1190],[3,"TypeId",1191],[8,"Write",1189],[3,"ExponentialBlocks",1192],[3,"UniformBlocks",1192],[3,"Chain",1193],[8,"IntoParallelIterator",72],[3,"Chunks",1194],[3,"Cloned",1195],[8,"ParallelIterator",72],[4,"Ordering",1196],[8,"FromParallelIterator",1197],[3,"Vec",1198],[3,"LinkedList",1199],[3,"Copied",1200],[8,"Consumer",1201],[8,"UnindexedConsumer",1201],[3,"Enumerate",1202],[3,"Filter",1203],[3,"FilterMap",1204],[4,"Option",1205],[3,"FlatMap",1206],[3,"FlatMapIter",1207],[3,"Flatten",1208],[3,"FlattenIter",1209],[3,"Scope",72],[3,"Error",1187],[3,"Fold",1210],[3,"FoldChunks",1211],[3,"FoldChunksWith",1212],[3,"FoldWith",1210],[3,"Inspect",1213],[3,"Interleave",1214],[3,"InterleaveShortest",1215],[3,"Intersperse",1216],[8,"FnOnce",1180],[3,"Map",1217],[3,"MapInit",1218],[3,"MapWith",1218],[3,"PanicFuse",1219],[3,"ChunkByMut",1220],[3,"ChunksExactMut",1221],[3,"ChunksMut",1221],[3,"RChunksExactMut",1222],[3,"RChunksMut",1222],[3,"SplitInclusiveMut",1223],[3,"SplitMut",1223],[8,"Default",1224],[8,"ParallelExtend",1197],[3,"Positions",1225],[8,"Product",1226],[3,"Rev",1227],[3,"Skip",1228],[3,"SkipAny",1229],[3,"SkipAnyWhile",1230],[3,"StepBy",1231],[8,"Sum",1226],[3,"Take",1232],[3,"TakeAny",1233],[3,"TakeAnyWhile",1234],[3,"TryFold",1235],[8,"Try",1236],[3,"TryFoldWith",1235],[8,"IndexedParallelIterator",72],[3,"Update",1237],[3,"WhileSome",1238],[3,"MaxLen",1239],[3,"MinLen",1239],[8,"ProducerCallback",1201],[3,"Zip",1240],[3,"ZipEq",1241],[3,"VerifyingKey",216],[8,"CurveAffine",6],[3,"ProvingKey",216],[4,"Error",216],[8,"Debug",1187],[3,"PinnedVerificationKey",216],[3,"Error",1188],[15,"u8"],[8,"SerdeCurveAffine",43],[3,"EvaluationDomain",369],[8,"EncodedChallenge",1023],[8,"Transcript",1023],[15,"u32"],[8,"Error",1242],[3,"String",1243],[3,"CompiledCircuit",1244],[8,"Params",539],[3,"ProverSingle",312],[3,"HashMap",1245],[8,"CommitmentScheme",539],[8,"Prover",539],[8,"TranscriptWrite",1023],[8,"MsmAccel",1246],[3,"Prover",312],[3,"H2cEngine",1247],[3,"PlonkEngine",1247],[3,"BatchVerifier",349],[6,"ParamsVerifierIPA",612],[8,"Verifier",539],[8,"VerificationStrategy",369],[8,"TranscriptRead",1023],[3,"Polynomial",369],[8,"Field",6],[8,"Basis",369],[3,"Coeff",369],[3,"LagrangeCoeff",369],[3,"ExtendedLagrangeCoeff",369],[8,"WithSmallOrderMulGroup",1248],[3,"PinnedEvaluationDomain",369],[4,"Error",369],[3,"RangeFull",1249],[3,"RangeFrom",1249],[8,"Iterator",1250],[8,"IntoIterator",1251],[3,"Rotation",1252],[3,"Blind",539],[8,"Sized",1183],[8,"PartialEq",1196],[3,"ParamsIPA",612],[3,"MSMIPA",659],[3,"IPACommitmentScheme",612],[3,"GuardIPA",721],[3,"ProverIPA",689],[3,"VerifierIPA",689],[3,"Accumulator",721],[3,"AccumulatorStrategy",721],[3,"SingleStrategy",721],[3,"ParamsKZG",798],[8,"Engine",1253],[3,"MSMKZG",849],[3,"KZGCommitmentScheme",798],[3,"DualMSM",849],[8,"MultiMillerLoop",1253],[3,"ProverGWC",898],[3,"ProverSHPLONK",898],[3,"VerifierGWC",898],[3,"VerifierSHPLONK",898],[3,"GuardKZG",963],[3,"AccumulatorStrategy",963],[3,"SingleStrategy",963],[3,"ChallengeScalar",1023],[3,"Blake2bRead",1023],[3,"Keccak256Read",1023],[3,"Blake2bWrite",1023],[3,"Keccak256Write",1023],[3,"Challenge255",1023],[15,"array"],[8,"CurveExt",6],[8,"CurveRead",43],[8,"SerdePrimeField",43],[8,"IntoParallelRefIterator",72],[8,"IntoParallelRefMutIterator",72],[8,"ParallelSliceMut",72],[8,"TryFoldAndReduce",72],[13,"NotEnoughRowsAvailable",309],[8,"Guard",369],[8,"ParamsProver",539],[8,"MSM",539],[8,"TranscriptWriterBuffer",1023],[8,"TranscriptReadBuffer",1023]]},\ +"halo2_frontend":{"doc":"","t":"AAADDIQIQDDDDQCDDIDDLLLLLLLLLLLLLLLLLLKLLLKLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMFKLLKLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLALLLLLLLLLLLLLLLLLLLLLLLLLLKLKLLLLLLLLLLLLLLLLLLLLLLLLLAKLLLLLLLLLLLLLLLLKLKLMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLCCAADDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLALLLLLLLLLLLLLLLLLNEIDNIIKLKLKLKKLLLLLLLLLLLKLKLLLLLLLKLLLLLLLLLLLLKLLLKLLLLLLLLLLLLLLLNNNECDDNNENNENDNNNNNDNELLLLLLLLLLLLLLLLLLLLLLLFLLLLLLLLAALLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLALLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMDDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLEDNNNDDDDDMMLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLFFLMLLLLLLLMLLLLLLLLMMMMMMLMMMMLLMMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDDDDLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLAAAAAAAENNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDIIIQDIQDQKKKLLLLLLLLLLLLAKLAKLLLLLLLLLKKLLLLLLKAKLLLLLLKLLLLLLLLLLKKKLLLKKKLLLLLLLLLLLLLLLKDDDDDDLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNDDNDNEDNDNDNINNDDNNDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMALLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDILLLLLLLLLLLLLLLLLLKLLLLLNNNENNNNNENNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMDLLLLLLLLLLLLLLLLLLLLDLLLLLLLLLLLLLLLLLLDLLLLLLLLLLLLLLLLLLLL","n":["circuit","dev","plonk","AssignedCell","Cell","Chip","Config","Layouter","Loaded","NamespacedLayouter","Region","RegionIndex","RegionStart","Root","SimpleFloorPlanner","SimpleTableLayouter","Table","TableLayouter","Value","WitnessCalculator","add","add","add","add","add","add","add","add","add","add","and_then","as_mut","as_ref","assert_if_known","assign","assign_advice","assign_advice_from_constant","assign_advice_from_instance","assign_cell","assign_cell","assign_cell","assign_fixed","assign_region","assign_region","assign_table","assign_table","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","calc","cell","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cloned","cloned","column","compile_circuit","config","constrain_constant","constrain_equal","constrain_instance","constrain_instance","copied","copied","copy_advice","cube","default","default_and_assigned","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","double","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","enable_selector","eq","equivalent","error_if_known_and","evaluate","evaluate","floor_planner","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_iter","get_challenge","get_challenge","get_root","get_root","init","init","init","init","init","init","init","init","init","init","instance_value","into","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","name_column","namespace","neg","new","new","pop_namespace","pop_namespace","push_namespace","push_namespace","region_index","row_offset","square","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","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_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","unknown","unzip","value","value_field","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","zip","V1","V1Pass","single_pass","v1","SimpleFloorPlanner","SingleChipLayouter","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_challenge","get_root","init","init","into","into","new","pop_namespace","push_namespace","synthesize","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","AssignmentPass","MeasurementPass","V1","V1Pass","assign_region","assign_table","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","constrain_instance","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","fmt","fmt","fmt","fmt","from","from","from","from","get_challenge","get_root","init","init","init","init","into","into","into","into","pop_namespace","push_namespace","strategy","synthesize","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","Column","RegionColumn","RegionLayouter","RegionShape","Selector","SyncDeps","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","equivalent","fmt","fmt","from","from","from","from","hash","init","init","instance_value","instance_value","into","into","name_column","name_column","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","Assigned","Assigned","CellNotAssigned","CellValue","CircuitCost","CircuitGates","CircuitLayout","ConstraintNotSatisfied","ConstraintPoisoned","FailureLocation","InRegion","InstanceCellNotAssigned","InstanceValue","Lookup","MockProver","OutsideRegion","Padding","Permutation","Poison","Shuffle","TracingFloorPlanner","Unassigned","VerifyFailure","advice","advice_values","annotate_column","assert_satisfied","assert_satisfied_at_rows","assign_advice","assign_fixed","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","circuit_dot_graph","clone","clone","clone","clone_into","clone_into","clone_into","collect","copy","cost","cost_model","cs","default","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","drop","drop","drop","emit","enable_selector","enter_region","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","exit_region","fill_from_row","fixed","fixed_values","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","get_challenge","init","init","init","init","init","init","init","init","instance","into","into","into","into","into","into","into","into","mark_equality_cells","metadata","pop_namespace","push_namespace","queries_to_csv","query_instance","render","run","selectors","show_equality_constraints","show_labels","synthesize","to_owned","to_owned","to_owned","to_string","to_string","to_string","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","usable_rows","value","verify","verify_at_rows","view_height","view_width","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","offset","region","row","cell_values","column","column","column","constraint","constraint","gate","gate","gate_offset","gate_offset","location","location","location","location","lookup_index","name","name","offset","region","region","row","shuffle_index","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","CommitmentScheme","CostOptions","IPA","KZGGWC","KZGSHPLONK","Lookup","ModelCircuit","Permutation","Poly","Shuffle","advice","advice_columns","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","cmp","column_queries","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","drop","drop","drop","drop","drop","drop","drop","eq","eq","equivalent","equivalent","fixed","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from_circuit_to_cost_model_options","from_circuit_to_model_circuit","from_str","gate_degree","init","init","init","init","init","init","init","instance","into","into","into","into","into","into","into","into_model_circuit","k","k","lookup","lookups","max_deg","max_degree","partial_cmp","permutation","permutations","point_sets","rotations","serialize","serialize","shuffle","shuffles","size","to_owned","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","vzip","vzip","vzip","vzip","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","clone","clone_into","clone_into","clone_into","clone_into","cmp","cmp","column_type","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","equivalent","equivalent","equivalent","equivalent","equivalent","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","hash","index","init","init","init","init","init","into","into","into","into","into","new","partial_cmp","partial_cmp","to_owned","to_owned","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","assigned","circuit","error","keygen","lookup","permutation","shuffle","Assigned","Rational","Trivial","Zero","add","add","add","add","add","add","add_assign","add_assign","borrow","borrow_mut","clone","clone_into","cube","denominator","deref","deref_mut","double","drop","eq","equivalent","evaluate","fmt","from","from","from","from","from","init","into","invert","is_zero_vartime","mul","mul","mul","mul","mul_assign","mul_assign","neg","neg","numerator","square","sub","sub","sub","sub","sub","sub","sub_assign","sub_assign","to_owned","try_from","try_into","type_id","vzip","Advice","Assignment","Circuit","ColumnType","Config","Fixed","FloorPlanner","FloorPlanner","Instance","Params","annotate_column","assign_advice","assign_fixed","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","compress_selectors","configure","configure_with_params","constraint_system","copy","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","enable_selector","enter_region","eq","eq","eq","equivalent","equivalent","equivalent","exit_region","expression","fill_from_row","fmt","fmt","fmt","from","from","from","get_challenge","hash","hash","hash","init","init","init","into","into","into","params","pop_namespace","push_namespace","query_cell","query_cell","query_cell","query_cell","query_instance","synthesize","synthesize","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","without_witnesses","Constraint","ConstraintSystem","Constraints","Gate","VirtualCell","VirtualCells","advice_column","advice_column_in","advice_column_phase","advice_queries","annotate_lookup_any_column","annotate_lookup_column","blinding_factors","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","challenge_phase","challenge_usable_after","clone","clone","clone","clone_into","clone_into","clone_into","column","complex_selector","compress_selectors","constants","constraint_name","create_gate","default","degree","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","directly_convert_selectors_to_fixed","drop","drop","drop","drop","drop","drop","enable_constant","enable_equality","fixed_column","fixed_queries","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","gates","general_column_annotations","get_any_query_index","init","init","init","init","init","init","instance_column","instance_queries","into","into","into","into","into","into","into_iter","lookup","lookup_any","lookup_table_column","lookups","minimum_rows","name","num_advice_columns","num_challenges","num_fixed_columns","num_instance_columns","num_selectors","permutation","phases","polynomials","queried_cells","queried_selectors","query_advice","query_any","query_challenge","query_fixed","query_instance","query_selector","rotation","selector","set_minimum_degree","shuffle","shuffles","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","unblinded_advice_column","unblinded_advice_column_in","vzip","vzip","vzip","vzip","vzip","vzip","with_selector","Advice","AdviceQuery","Challenge","Challenge","Column","Constant","Expression","FirstPhase","Fixed","FixedQuery","Instance","InstanceQuery","Negated","Phase","Product","Scaled","SecondPhase","Selector","Selector","Sum","TableColumn","ThirdPhase","add","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","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","column_index","column_index","column_index","column_index","column_index","column_index","column_type","column_type","complexity","cur","degree","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","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","enable","eq","eq","eq","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","evaluate","evaluate_lazy","expr","expr","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","hash","hash","hash","hash","identifier","index","index","index","index","index","index","index","index","init","init","init","init","init","init","init","init","init","init","init","inner","into","into","into","into","into","into","into","into","into","into","into","is_simple","mul","mul","neg","new","next","partial_cmp","partial_cmp","phase","prev","product","query_cell","query_cells","rot","rotation","rotation","rotation","rotation","rotation","rotation","sealed","square","sub","sum","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_sealed","to_sealed","to_sealed","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","type_id","type_id","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","vzip","vzip","Phase","SealedPhase","borrow","borrow_mut","clone","clone_into","cmp","deref","deref_mut","drop","eq","equivalent","fmt","from","hash","init","into","partial_cmp","prev","to_owned","to_sealed","to_sealed","try_from","try_into","type_id","vzip","BoundsFailure","ColumnNotAssigned","ColumnNotInPermutation","Error","NotEnoughColumnsForConstants","NotEnoughRowsAvailable","Other","OverwriteDefault","Synthesis","TableError","TableError","UnevenColumnLengths","UsedColumn","borrow","borrow","borrow_mut","borrow_mut","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","fmt","fmt","from","from","init","init","into","into","not_enough_rows_available","to_string","to_string","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","current_k","Argument","borrow","borrow_mut","clone","clone_into","deref","deref_mut","drop","fmt","from","init","input_expressions","into","name","new","table_expressions","to_owned","try_from","try_into","type_id","vzip","Argument","borrow","borrow_mut","clone","clone_into","default","deref","deref_mut","drop","fmt","from","get_columns","init","into","to_owned","try_from","try_into","type_id","vzip","Argument","borrow","borrow_mut","clone","clone_into","deref","deref_mut","drop","fmt","from","init","input_expressions","into","name","new","shuffle_expressions","to_owned","try_from","try_into","type_id","vzip"],"q":[[0,"halo2_frontend"],[3,"halo2_frontend::circuit"],[276,"halo2_frontend::circuit::floor_planner"],[280,"halo2_frontend::circuit::floor_planner::single_pass"],[317,"halo2_frontend::circuit::floor_planner::v1"],[382,"halo2_frontend::circuit::layouter"],[451,"halo2_frontend::dev"],[642,"halo2_frontend::dev::FailureLocation"],[645,"halo2_frontend::dev::VerifyFailure"],[667,"halo2_frontend::dev::cost"],[712,"halo2_frontend::dev::cost_model"],[858,"halo2_frontend::dev::metadata"],[978,"halo2_frontend::plonk"],[985,"halo2_frontend::plonk::assigned"],[1043,"halo2_frontend::plonk::circuit"],[1135,"halo2_frontend::plonk::circuit::constraint_system"],[1289,"halo2_frontend::plonk::circuit::expression"],[1562,"halo2_frontend::plonk::circuit::expression::sealed"],[1588,"halo2_frontend::plonk::error"],[1632,"halo2_frontend::plonk::error::Error"],[1633,"halo2_frontend::plonk::lookup"],[1654,"halo2_frontend::plonk::permutation"],[1673,"halo2_frontend::plonk::shuffle"],[1694,"ff"],[1695,"core::ops::arith"],[1696,"core::ops::function"],[1697,"core::result"],[1698,"core::ops::function"],[1699,"alloc::vec"],[1700,"core::option"],[1701,"core::clone"],[1702,"halo2_middleware::circuit"],[1703,"core::convert"],[1704,"core::marker"],[1705,"core::borrow"],[1706,"core::fmt"],[1707,"core::fmt"],[1708,"core::iter::traits::collect"],[1709,"core::ops::arith"],[1710,"core::cmp"],[1711,"std::collections::hash::set"],[1712,"core::hash"],[1713,"ff"],[1714,"core::cmp"],[1715,"plotters::drawing::area"],[1716,"plotters::drawing::area"],[1717,"core::ops::range"],[1718,"group::prime"],[1719,"serde::de"],[1720,"serde::ser"],[1721,"core::convert"],[1722,"halo2_middleware::circuit"]],"d":["Traits and structs for implementing circuit components.","Tools for developing circuits.","","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 table layouter that can be used to assign values to a …","A lookup table in the circuit.","Helper trait for implementing a custom Layouter.","A value that might exist within a circuit.","Witness calculator. Frontend function","","","","","","","","","","","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.","Obtains the inner value for assigning into the circuit.","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.","","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.","","","","","","","","","","","","","","","","","","","","","","Calculate witness at phase","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 column of this cell.","Compile a circuit. Runs configure and synthesize on the …","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<&V> to a Value<V> by copying the contents of …","Maps a Value<&mut V> to a Value<V> by copying the contents …","Copies the value to a given advice cell and constrains …","Cubes this field element.","","maps from a fixed column to a pair (default value, vector …","","","","","","","","","","","","","","","","","","","","","","","Doubles this field element.","","","","","","","","","","","","Enables a selector at the given offset.","","","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.","","Returns the argument unchanged.","Takes each element in the Iterator: if it is …","Queries the value of the given challenge.","","Gets the “root” of this assignment, bypassing the …","","","","","","","","","","","","Returns the value of the instance column’s cell at …","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 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 …","","","","","","","","","","","Allows the circuit implementor to name/annotate a Column …","Enters into a namespace.","","Returns a new SimpleTableLayouter","Create a new WitnessCalculator","Exits out of the existing namespace.","","Creates a new (sub)namespace and enters into it.","","Identifies the region in which this cell resides.","The relative offset of this cell within its region.","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.","","","","","A simple FloorPlanner that performs minimal optimizations.","A Layouter for a single-chip circuit.","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","Calls U::from(self).","Calls U::from(self).","Creates a new single-chip layouter.","","","","","","","","","","","","Assigns the circuit.","Measures the circuit.","The version 1 FloorPlanner provided by halo2.","A single pass of the V1 layouter.","","","","","","","","","","","","","","","","","","","","","","","","","","","","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).","","","","","","","","","","","","","","","","","","","","","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","Intermediate trait requirements for RegionLayouter when …","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.","Assigns 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.","","","","Returns the value of the instance column’s cell at …","","Calls U::from(self).","Calls U::from(self).","Allows the circuit implementor to name/annotate a Column …","","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 that has been assigned a value.","Assigned instance value","A cell used in an active gate was not assigned to.","The value of a particular cell within the circuit.","","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.","An instance cell used in an active gate was not assigned …","Instance Value","A lookup input did not exist in its corresponding table.","A test prover for debugging circuits.","A location outside of a region.","Padding","A permutation did not preserve the original value of a …","A unique poisoned cell.","A shuffle input did not exist in its corresponding map.","A helper type that augments a FloorPlanner with tracing …","An unassigned cell.","The reasons why a particular circuit is not satisfied.","Returns the list of Advice Columns used within a …","Return the content of an advice column as assigned by the …","","Panics if the circuit being checked by this MockProver is …","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.","The cost estimator takes high-level parameters for a …","Returns the constraint system","","","","","","","","","","","","","","","","","","","","","","","","","","Emits this failure in pretty-printed format to stderr.","","","","","","","","","","","","","Returns the list of Fixed Columns used within a MockProver …","Return the content of a fixed column as assigned by the …","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","Returns the list of Instance Columns used within a …","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).","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 …","Returns the list of Selector Columns used within a …","Draws red lines between equality-constrained cells.","Sets the visibility of region labels.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the usable rows","Field value on the instance cell","Returns Ok(()) if this MockProver is satisfied, or a list …","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 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 index of the active gate.","The offset (relative to the start of the region) at which …","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 lookup is not satisfied.","The location at which the permutation is not satisfied.","The index of the lookup that is not satisfied. These …","The name of the lookup that is not satisfied.","The name of the lookup that is not satisfied.","The offset (relative to the start of the region) at which …","The region in which this cell should be assigned.","The region in which this gate was activated.","The absolute row at which this cell should be assigned.","The index of the lookup that is not satisfied. These …","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 …","","","","","","","","","","","","","Supported commitment schemes","Options to build a circuit specification to measure the …","Inner Product Argument commitment scheme","KZG with GWC19 mutli-open strategy","KZG with BDFG20 mutli-open strategy","Structure holding the Lookup related data for circuit …","High-level specifications of an abstract circuit.","Number of permutation enabled columns","Structure holding polynomial related data for benchmarks","Structure holding the Shuffle related data for circuit …","An advice column with the given rotations. May be repeated.","Number of advice columns.","","","","","","","","","","","","","","","","","","","","","","","","Number of distinct column queries across all gates.","","","","","","","","","","","","","","","","","","","","","","","","","","","","A fixed column with the given rotations. May be repeated.","","","","","","","","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.","Given a Plonk circuit, this function returns CostOptions","Given a Plonk circuit, this function returns a ModelCircuit","","Maximum degree of the custom gates.","","","","","","","","An instance column with the given rotations. May be …","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).","Convert CostOptions to ModelCircuit. The proof sizè is …","2^K bound on the number of rows.","Power-of-2 bound on the number of rows in the circuit.","A lookup over N columns with max input degree I and max …","Number of lookup arguments.","Maximum degree of the circuit.","Maximum degree of the constraint system.","","A permutation over N columns. May be repeated.","Equality constraint enabled columns.","Number of distinct sets of points in the multiopening …","Rotations for the given polynomial","","","A shuffle over N columns with max input degree I and max …","Number of shuffle arguments","Size of the proof for the circuit","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A column with an index and type","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 …","","","","","","","","","","","","","","","","","","","","","The type of the column.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","Returns the argument unchanged.","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","Returns the argument unchanged.","","","The index of the column.","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Implementation of permutation argument.","","A value assigned to a cell within a circuit.","A value stored as a fraction to enable batch inversion.","A value that does not require inversion to evaluate.","The field element zero.","","","","","","","","","","","","","Cubes this element.","Returns the denominator, if non-trivial.","","","Doubles this element.","","","","Evaluates this assigned value directly, performing an …","","","","","","Returns the argument unchanged.","","Calls U::from(self).","Inverts this assigned value (taking the inverse of zero to …","Returns true iff this element is zero.","","","","","","","","","Returns the numerator.","Squares this element.","","","","","","","","","","","","","","An advice column","This trait allows a Circuit to direct some backend to …","This is a trait that circuits provide implementations for …","A column type","This is a configuration object that stores things like …","A fixed column","A floor planning strategy for a circuit.","The floor planner used for this circuit. This is an …","An instance column","Optional circuit configuration parameters. Requires the …","Allows the developer to include an annotation for an …","Assign an advice column value (witness)","Assign a fixed value","","","","","","","","","","","","","","The circuit is given an opportunity to describe the exact …","The circuit is given an opportunity to describe the exact …","","Assign two cells to have the same value","","","","","","","","","","Enables a selector at the given row.","Creates a new region and enters into it.","","","","","","","Exits the current region.","","Fills a fixed column starting from the given row with …","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Queries the value of the given challenge.","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Returns a reference to the parameters that should be used …","Exits out of the existing namespace.","Creates a new (sub)namespace and enters into it.","Return expression from cell","","","","Queries the cell of an instance column at a particular …","Given the provided cs, synthesize the given circuit.","Given the provided cs, synthesize the circuit. The …","","","","","","","","","","","","","","","","Returns a copy of this circuit with no witness values …","An individual polynomial constraint.","This is a description of the circuit environment, such as …","A set of polynomial constraints with a common selector.","Gate","A “virtual cell” is a PLONK cell that has been queried …","Exposes the “virtual cells” that can be queried while …","Allocate a new advice column at FirstPhase","Allocate a new advice column in given phase","Returns phase of advice columns","Returns advice queries","Annotate an Instance column.","Annotate a Lookup column.","Compute the number of blinding factors necessary to …","","","","","","","","","","","","","Returns phase of challenges","Requests a challenge that is usable after the given phase.","","","","","","","","Allocate a new complex selector that can appear anywhere …","This will compress selectors together depending on their …","Returns constants","Returns the name of the constraint at index …","Creates a new gate.","","Compute the degree of the constraint system (the maximum …","","","","","","","","","","","","","Does not combine selectors and directly replaces them …","","","","","","","Enables this fixed column to be used for global constant …","Enable the ability to enforce equality over cells in this …","Allocate a new fixed column","Returns fixed queries","","","","","","","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 gates","Returns general column annotations","","","","","","","","Allocate a new instance column","Returns instance queries","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","Add a lookup argument for some input expressions and table …","Add a lookup argument for some input expressions and table …","Allocates a new fixed column that can be used in a lookup …","Returns lookup arguments","Returns the minimum necessary rows that need to exist in …","Returns the gate name.","Returns number of advice columns","Returns number of challenges","Returns number of fixed columns","Returns number of instance columns","Returns number of selectors","Returns permutation argument","Returns the list of phases","Returns constraints of this gate","","","Query an advice column at a relative position","Query an Any column at a relative position","Query a challenge","Query a fixed column at a relative position","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 …","Add a shuffle argument for some input expressions and …","Returns shuffle arguments","","","","","","","","","","","","","","","","","","","","","","Allocate a new unblinded advice column at FirstPhase","Allocate a new unblinded advice column in given phase. …","","","","","","","Constructs a set of constraints that are controlled by the …","This is an advice (witness) column queried at a certain …","Query of advice column at a certain relative location","A challenge squeezed from transcript after advice columns …","This is a challenge","A column with an index and type","This is a constant polynomial","Low-degree expression representing an identity that must …","First phase","This is a fixed column queried at a certain relative …","Query of fixed column at a certain relative location","This is an instance (external) column queried at a certain …","Query of instance column at a certain relative location","This is a negated polynomial","Phase of advice column","This is the product of two polynomials","This is a scaled polynomial","Second phase","A selector, representing a fixed boolean value per row of …","This is a virtual selector","This is the sum of two polynomials","A fixed column of a lookup table.","Third phase","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Column index","Column index","Column index","Column index","Column index","Column index","Type of this column.","","Approximate the computational complexity of this …","Return expression from column at the current row","Compute the degree of this polynomial","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Enable this selector at the given offset within the given …","","","","","","","","","","","","","","","","","Evaluate the polynomial using the provided closures to …","Evaluate the polynomial lazily using the provided closures …","Return expression from selector","Return Expression","","","","","","","","","","","","","","","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.","","","","","Identifier for this expression. Expressions with identical …","Index of this column.","Returns index of this selector","Index of this challenge.","","Query index","Query index","Query index","","","","","","","","","","","","","Returns inner 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).","Is this selector “simple”? Simple selectors can only …","","","","","Return expression from column at the next row","","","Phase of this challenge.","Return expression from column at the previous row","","Return expression from column at a relative position","Make side effects","Return expression from column at the specified rotation","Rotation of this query","Rotation of this query","Rotation of this query","Rotation of this query","Rotation of this query","Rotation of this query","","Square this expression.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Phase of advice column","Sealed trait to help keep Phase private.","","","","","","","","","","","","Returns the argument unchanged.","","","Calls U::from(self).","","","","","","","","","","Out of bounds index passed to a backend","A TableColumn has not been assigned.","The instance sets up a copy constraint involving a column …","This is an error that could occur during circuit synthesis.","Circuit synthesis requires global constants, but circuit …","k is too small for the given circuit.","Generic error not covered by previous cases","Attempt to overwrite a default value","This is an error that can occur during synthesis of the …","This is an error that could occur during table synthesis.","An error relating to a lookup table.","A Table has columns of uneven lengths.","Attempt to assign a used TableColumn","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","Constructs an Error::NotEnoughRowsAvailable.","","","","","","","","","","","The current value of k being used.","Expressions involved in a lookup argument, with a name as …","","","","","","","","","Returns the argument unchanged.","","Returns input of this argument","Calls U::from(self).","Returns name of this argument","Constructs a new lookup argument.","Returns table of this argument","","","","","","A permutation argument.","","","","","","","","","","Returns the argument unchanged.","Returns columns that participate on the permutation …","","Calls U::from(self).","","","","","","Expressions involved in a shuffle argument, with a name as …","","","","","","","","","Returns the argument unchanged.","","Returns input of this argument","Calls U::from(self).","Returns name of this argument","Constructs a new shuffle argument.","Returns table of this argument","","","","",""],"i":[0,0,0,0,0,0,132,0,132,0,0,0,0,23,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,9,9,9,46,18,20,9,23,22,23,22,18,2,24,32,33,30,13,9,20,22,18,2,24,32,33,30,13,9,20,22,24,13,2,32,33,30,13,2,32,33,30,13,2,2,30,0,132,9,9,23,22,2,2,13,2,2,18,18,2,24,32,32,33,33,30,13,9,20,22,18,2,24,32,33,30,13,9,20,22,2,18,2,24,32,33,30,13,9,20,22,22,9,33,33,2,2,13,0,18,2,24,32,33,30,13,9,20,22,18,2,2,24,32,32,33,33,30,13,9,9,20,20,22,2,23,22,23,22,18,2,24,32,33,30,13,9,20,22,9,18,2,24,32,33,30,13,9,20,22,2,2,2,0,132,2,2,2,2,2,2,2,2,2,2,2,9,23,2,18,24,23,22,23,22,30,30,2,2,2,2,2,2,2,2,2,2,2,2,2,32,33,30,13,2,2,18,2,24,32,33,30,13,9,20,22,18,2,24,32,33,30,13,9,20,22,18,2,24,32,33,30,13,9,20,22,2,2,13,13,18,2,24,32,33,30,13,9,20,22,2,0,0,0,0,0,0,58,58,58,60,58,60,58,58,60,58,60,58,60,58,60,58,60,58,58,58,60,58,60,58,58,58,60,58,60,58,60,58,60,58,60,0,0,0,0,61,61,62,61,63,64,62,61,63,64,61,62,61,63,64,62,61,63,64,62,61,63,64,62,61,63,64,62,61,63,64,61,61,62,61,63,64,62,61,63,64,61,61,0,62,62,61,63,64,62,61,63,64,62,61,63,64,62,61,63,64,66,0,0,0,66,0,0,45,65,45,65,45,65,46,45,65,65,66,65,66,65,66,65,66,66,65,45,65,45,65,65,66,65,66,65,66,45,65,66,66,65,66,65,66,66,66,66,65,66,45,65,65,66,45,65,65,66,65,65,65,66,65,66,65,66,65,66,65,66,71,76,79,0,0,0,0,79,79,0,75,79,0,79,0,75,76,79,71,79,0,71,0,70,70,70,70,70,70,70,75,79,77,82,78,71,70,76,75,79,77,82,78,71,70,76,0,75,71,76,75,71,76,77,70,0,0,70,78,75,79,77,82,78,71,70,76,75,79,77,82,78,71,70,76,75,79,77,82,78,71,70,76,79,70,70,75,79,71,76,75,79,71,76,70,70,70,70,75,75,79,79,77,77,82,78,71,70,76,75,79,77,82,78,71,70,76,70,75,79,77,82,78,71,70,76,70,75,79,77,82,78,71,70,76,78,0,70,70,77,70,78,70,70,78,78,82,75,71,76,75,79,77,75,79,77,82,78,71,70,76,75,79,77,82,78,71,70,76,75,79,77,82,78,71,70,76,70,76,70,70,78,78,75,79,77,82,78,71,70,76,133,133,134,135,136,137,138,135,139,136,137,136,137,135,140,141,138,140,140,141,136,136,137,137,141,0,0,0,89,91,92,89,91,92,89,91,92,89,91,92,89,91,92,89,91,92,89,91,92,89,91,92,89,91,92,89,89,89,89,91,92,89,91,92,89,91,92,89,91,92,0,0,99,99,99,0,0,0,0,0,100,98,99,100,93,94,95,96,98,99,100,93,94,95,96,98,93,94,95,96,93,94,95,96,93,98,99,100,93,94,95,96,98,99,100,93,94,95,96,98,95,98,99,100,93,94,95,96,98,99,93,99,93,100,99,100,93,94,95,96,98,99,100,93,94,95,96,98,0,0,93,100,99,100,93,94,95,96,98,100,99,100,93,94,95,96,98,100,100,98,100,98,98,100,93,100,98,98,93,95,98,100,98,98,93,94,95,96,99,100,93,94,95,96,98,99,100,93,94,95,96,98,99,100,93,94,95,96,98,99,100,93,94,95,96,98,0,0,0,0,0,103,107,104,105,106,103,107,104,105,106,103,104,105,106,103,104,105,106,103,107,103,103,107,104,105,106,103,107,104,105,106,103,107,104,105,106,103,107,104,105,106,103,107,104,105,106,103,103,107,107,104,104,105,105,106,106,103,103,107,107,107,107,104,104,105,105,106,106,106,106,106,103,103,103,107,104,105,106,103,107,104,105,106,103,103,107,103,104,105,106,103,107,104,105,106,103,107,104,105,106,103,107,104,105,106,103,107,104,105,106,103,107,104,105,106,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,29,0,0,29,0,29,19,19,19,10,21,16,10,21,16,10,21,16,10,21,16,0,29,29,0,19,10,21,16,10,21,16,10,21,16,19,19,10,21,16,10,21,16,19,0,19,10,21,16,10,21,16,19,10,21,16,10,21,16,10,21,16,29,19,19,121,10,21,16,19,83,29,10,21,16,10,21,16,10,21,16,10,21,16,10,21,16,29,0,0,0,0,0,0,37,37,37,37,37,37,37,108,115,116,114,37,117,108,115,116,114,37,117,37,37,108,114,37,108,114,37,108,37,37,37,114,37,37,37,108,115,116,114,37,117,108,115,116,114,37,117,37,108,115,116,114,37,117,37,37,37,37,108,115,116,114,37,117,108,108,115,115,115,116,114,37,117,37,37,37,108,115,116,114,37,117,37,37,108,115,116,114,37,117,116,37,37,37,37,37,114,37,37,37,37,37,37,37,114,114,114,117,117,117,117,117,117,108,37,37,37,37,108,114,37,108,115,116,114,37,117,108,115,116,114,37,117,108,115,116,114,37,117,37,37,108,115,116,114,37,117,116,112,0,0,112,0,112,0,0,112,0,112,0,112,0,112,112,0,0,112,112,0,0,112,11,125,126,127,41,122,123,124,17,49,112,11,125,126,127,41,122,123,124,17,49,112,11,41,122,123,124,17,49,112,11,41,122,123,124,17,49,112,11,17,122,123,124,122,123,124,11,11,112,11,112,11,125,126,127,41,122,123,124,17,49,112,11,125,126,127,41,122,123,124,17,49,112,11,125,126,127,41,122,123,124,17,49,112,41,11,41,122,123,124,17,49,112,11,41,122,123,124,17,49,112,112,112,41,49,11,125,126,127,41,122,123,124,17,49,112,11,11,11,11,11,125,126,127,41,122,123,124,17,49,49,112,11,41,17,49,112,11,41,49,11,122,123,124,49,11,125,126,127,41,122,123,124,17,49,112,17,11,125,126,127,41,122,123,124,17,49,112,41,112,112,112,11,11,11,17,49,11,112,11,112,11,122,123,124,122,123,124,0,112,112,112,11,41,122,123,124,17,49,112,125,126,127,11,11,11,11,125,126,127,41,122,123,124,17,49,112,11,125,126,127,41,122,123,124,17,49,112,11,125,126,127,41,122,123,124,17,49,112,11,125,126,127,41,122,123,124,17,49,112,0,0,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,142,130,130,130,130,130,7,131,7,0,7,7,7,131,7,0,7,131,131,7,131,7,131,7,131,7,131,7,131,7,7,131,131,7,131,7,131,7,131,7,7,131,7,131,7,131,7,131,7,131,143,0,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,118,0,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,0,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,120],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[2,[[1,[-1]]]],-1],[],3],[[[2,[-1]],[2,[-1]]],[],[]],[[[2,[[1,[-1]]]],[2,[-1]]],[],3],[[[2,[-1]],[2,[-1]]],[],[]],[[[2,[[1,[-1]]]],[2,[-1]]],[],3],[[[2,[-1]],[2,[-1]]],[],[]],[[[2,[-1]],[2,[-1]]],[],4],[[[2,[-1]],[2,[-1]]],[],[]],[[[2,[[1,[-1]]]],-1],[],3],[[[2,[-1]],[2,[-1]]],[],[]],[[[2,[-1]],-2],[[2,[-3]]],[],5,[]],[[[2,[-1]]],[[2,[-1]]],[]],[[[2,[-1]]],[[2,[-1]]],[]],[[[2,[-1]],-2],6,[],5],[[[2,[-1]]],[[8,[-1,7]]],[]],[[[9,[-1]],-2,[11,[10]],12,-3],[[8,[[13,[-4,-1]],7]]],3,14,15,[]],[[[9,[-1]],-2,[11,[10]],12,-3],[[8,[[13,[-3,-1]],7]]],3,14,[]],[[[9,[-1]],-2,[11,[16]],12,[11,[10]],12],[[8,[[13,[-1,-1]],7]]],3,14],[[-1,14,17,12,15],[[8,[6,7]]],[]],[[[18,[-1,-2]],14,17,12,15],[[8,[6,7]]],3,[[19,[-1]]]],[[[20,[-1]],-2,17,12,-3],[[8,[6,7]]],3,14,15],[[[9,[-1]],-2,[11,[21]],12,-3],[[8,[[13,[-4,-1]],7]]],3,14,15,[]],[[-1,-2,-3],[[8,[-4,7]]],[],14,15,[]],[[[22,[-1,-2]],-3,-4],[[8,[-5,7]]],3,[[23,[-1]]],14,15,[]],[[-1,-2,-3],[[8,[6,7]]],[],14,15],[[[22,[-1,-2]],-3,-4],[[8,[6,7]]],3,[[23,[-1]]],14,15],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[24,[-1,-2]],25,[26,[12,-1]]],[[8,[[27,[[28,[[27,[-1]]]]]],7]]],3,[[29,[-1]]]],[[[13,[-1,-2]]],30,[],3],[[[2,[-1]]],[[2,[-1]]],31],[32,32],[33,33],[30,30],[[[13,[-1,-2]]],[[13,[-1,-2]]],31,[31,3]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[[2,[-1]]],[[2,[-1]]],31],[[[2,[-1]]],[[2,[-1]]],31],0,[[34,-2,35],[[8,[[6,[[36,[-1]],[37,[-1]]]],7]]],3,[[29,[-1]]]],[-1,[],[]],[[[9,[-1]],30,-2],[[8,[6,7]]],3,[[38,[[1,[-1]]]]]],[[[9,[-1]],30,30],[[8,[6,7]]],3],[[-1,30,[11,[16]],12],[[8,[6,7]]],[]],[[[22,[-1,-2]],30,[11,[16]],12],[[8,[6,7]]],3,[[23,[-1]]]],[[[2,[-1]]],[[2,[-1]]],39],[[[2,[-1]]],[[2,[-1]]],39],[[[13,[-1,-2]],-3,[9,[-2]],[11,[10]],12],[[8,[[13,[-1,-2]],7]]],31,3,14],[[[2,[-2]]],[[2,[[1,[-1]]]]],3,[[40,[[1,[-1]]]]]],[[],[[2,[-1]]],[]],0,[12,-1,[]],[12,-1,[]],[12,-1,[]],[32],[12,-1,[]],[33],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[[[2,[-2]]],[[2,[[1,[-1]]]]],3,[[40,[[1,[-1]]]]]],[12,6],[12,6],[12,6],[12,6],[12,6],[12,6],[12,6],[12,6],[12,6],[12,6],[[[22,[-1,-2]]],6,3,[[23,[-1]]]],[[[9,[-1]],-2,41,12],[[8,[6,7]]],3,14],[[33,33],35],[[-1,-2],35,[],[]],[[[2,[-1]],-2],[[8,[6,7]]],[],5],[[[2,[[1,[-1]]]]],[[2,[-1]]],3],[[[13,[[1,[-1]],-1]]],[[13,[-1,-1]]],3],0,[[[18,[-1,-2]],42],43,3,[[19,[-1]]]],[[[2,[-1]],42],43,44],[[[24,[-1,-2]],42],43,[44,3],[44,[29,[-1]]]],[[32,42],43],[[33,42],43],[[30,42],43],[[[13,[-1,-2]],42],43,44,[44,3]],[[[9,[-1]],42],43,[44,3]],[[[20,[-1]],42],43,[44,3]],[[[22,[-1,-2]],42],43,[44,3],[44,[23,[-1]]]],[-1,-1,[]],[-1,-1,[]],[[[2,[-1]]],[[2,[[1,[-1]]]]],3],[-1,-1,[]],[-1,-1,[]],[12,32],[-1,-1,[]],[12,33],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[45,[[9,[-1]]],3],[-1,-1,[]],[46,[[20,[-1]]],3],[-1,-1,[]],[-1,[[2,[-3]]],47,[],[[48,[-2]]]],[[-1,49],[[2,[-2]]],[],[]],[[[22,[-1,-2]],49],[[2,[-1]]],3,[[23,[-1]]]],[-1,[],[]],[[[22,[-1,-2]]],[],3,[[23,[-1]]]],[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[[[9,[-1]],[11,[16]],12],[[8,[[2,[-1]],7]]],3],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[2,[-2]]],[[2,[[1,[-1]]]]],3,[[38,[[1,[-1]]]]]],[[[2,[-2]]],[[2,[[1,[-1]]]]],3,[[40,[[1,[-1]]]]]],[-1,[[2,[-1]]],[]],0,[-1,[],[]],[[[2,[-1]],-2],[[2,[-3]]],[],5,[]],[[[2,[-1]],[2,[-1]]],[],[]],[[[2,[[1,[-1]]]],-1],[],3],[[[2,[-1]],[2,[-1]]],[],[]],[[[2,[[1,[-1]]]],-1],[],3],[[[2,[-1]],[2,[-1]]],[],[]],[[[2,[-1]],[2,[-1]]],[],[]],[[[2,[[1,[-1]]]],[2,[-1]]],[],3],[[[2,[-1]],[2,[-1]]],[],[]],[[[2,[-1]],[2,[-1]]],[],50],[[[2,[[1,[-1]]]],[2,[-1]]],[],3],[[[9,[-1]],-2,-3],6,3,14,[[38,[[11,[51]]]]]],[[-1,-2],[[22,[-3]]],[],5,[]],[[[2,[-1]]],[],52],[[-2,[53,[17]]],[[18,[-1,-2]]],3,[[19,[-1]]]],[[34,-2,[37,[-1]],[53,[[53,[-1]]]]],[[24,[-1,-2]]],3,[[29,[-1]]]],[[-1,[28,[54]]],6,[]],[[[22,[-1,-2]],[28,[54]]],6,3,[[23,[-1]]]],[[-1,-2],6,[],5],[[[22,[-1,-2]],-3],6,3,[[23,[-1]]],5],0,0,[[[2,[-2]]],[[2,[[1,[-1]]]]],3,[[40,[[1,[-1]]]]]],[[[2,[-1]],[2,[-1]]],[],[]],[[[2,[-1]],[2,[-1]]],[],[]],[[[2,[-1]],[2,[-1]]],[],[]],[[[2,[[1,[-1]]]],-1],[],3],[[[2,[[1,[-1]]]],-1],[],3],[[[2,[-1]],[2,[-1]]],[],[]],[[[2,[[1,[-1]]]],[2,[-1]]],[],3],[[[2,[-1]],[2,[-1]]],[],[]],[[[2,[[1,[-1]]]],[2,[-1]]],[],3],[[[2,[-1]],[2,[-1]]],[],55],[[[2,[-1]]],[[2,[[1,[-2]]]]],[],3],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[2,[[56,[-1]]]]],[[56,[[2,[-1]]]]],39],[[[2,[-1]],12],[[27,[[2,[-2]]]]],47,[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[[],[[2,[-1]]],[]],[[[2,[[6,[-1,-2]]]]],[[6,[[2,[-1]],[2,[-2]]]]],[],[]],[[[13,[-1,-2]]],[[2,[-1]]],[],3],[[[13,[-1,-2]]],[[2,[[1,[-2]]]]],[],3],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[2,[-1]],[2,[-2]]],[[2,[[6,[-1,-2]]]]],[],[]],0,0,0,0,0,0,[[[58,[-1,-2]],-3,-4],[[8,[-5,7]]],3,[[19,[-1]],59],14,15,[]],[[[58,[-1,-2]],-3,-4],[[8,[6,7]]],3,[[19,[-1]],59],14,15],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[58,[-1,-2]],30,[11,[16]],12],[[8,[6,7]]],3,[[19,[-1]],59]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,6],[12,6],[[[58,[-1,-2]],42],43,3,[[19,[-1]]]],[[60,42],43],[-1,-1,[]],[-1,-1,[]],[[[58,[-1,-2]],49],[[2,[-1]]],3,[[19,[-1]],59]],[[[58,[-1,-2]]],[],3,[[19,[-1]],59]],[[],12],[[],12],[-1,-2,[],[]],[-1,-2,[],[]],[[-2,[27,[[11,[21]]]]],[[8,[[58,[-1,-2]],7]]],3,[[19,[-1]]]],[[[58,[-1,-2]],[28,[54]]],6,3,[[19,[-1]],59]],[[[58,[-1,-2]],-3],6,3,[[19,[-1]],59],5],[[-2,-3,[27,[[11,[21]]]]],[[8,[6,7]]],3,[[19,[-1]],59],[[29,[-1]]]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,57,[]],[-1,57,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,[[[61,[-1,-2]],-3,-4],[[8,[-5,7]]],3,[[19,[-1]],59],14,15,[]],[[[61,[-1,-2]],-3,-4],[[8,[6,7]]],3,[[19,[-1]],59],14,15],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[61,[-1,-2]],30,[11,[16]],12],[[8,[6,7]]],3,[[19,[-1]],59]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,6],[12,6],[12,6],[12,6],[[62,42],43],[[[61,[-1,-2]],42],43,[44,3],[44,[19,[-1]]]],[[63,42],43],[[[64,[-1,-2]],42],43,[44,3],[44,[19,[-1]]]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[61,[-1,-2]],49],[[2,[-1]]],3,[[19,[-1]],59]],[[[61,[-1,-2]]],[],3,[[19,[-1]],59]],[[],12],[[],12],[[],12],[[],12],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[61,[-1,-2]],[28,[54]]],6,3,[[19,[-1]],59]],[[[61,[-1,-2]],-3],6,3,[[19,[-1]],59],5],0,[[-2,-3,[27,[[11,[21]]]]],[[8,[6,7]]],3,[[19,[-1]],59],[[29,[-1]]]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,[[-1,14,[11,[10]],12,15],[[8,[30,7]]],[]],[[65,14,[11,[10]],12,15],[[8,[30,7]]]],[[-1,14,[11,[10]],12,[1,[-2]]],[[8,[30,7]]],[],[]],[[65,14,[11,[10]],12,[1,[-1]]],[[8,[30,7]]],3],[[-1,14,[11,[16]],12,[11,[10]],12],[[8,[[6,[30,[2,[-2]]]],7]]],[],[]],[[65,14,[11,[16]],12,[11,[10]],12],[[8,[[6,[30,[2,[-1]]]],7]]],3],[[-1,14,17,12,15],[[8,[6,7]]],[]],[[-1,14,[11,[21]],12,15],[[8,[30,7]]],[]],[[65,14,[11,[21]],12,15],[[8,[30,7]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[65,65],[66,66],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[66,66],67],[65,[[68,[66]]]],[[-1,30,[1,[-2]]],[[8,[6,7]]],[],[]],[[65,30,[1,[-1]]],[[8,[6,7]]],3],[[-1,30,30],[[8,[6,7]]],[]],[[65,30,30],[[8,[6,7]]]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,6],[12,6],[[-1,14,41,12],[[8,[6,7]]],[]],[[65,14,41,12],[[8,[6,7]]]],[[66,66],35],[[-1,-2],35,[],[]],[[65,42],43],[[66,42],43],[-1,-1,[]],[41,66],[[[11,[51]]],66],[-1,-1,[]],[[66,-1],6,69],[[],12],[[],12],[[-1,[11,[16]],12],[[8,[[2,[-2]],7]]],[],[]],[[65,[11,[16]],12],[[8,[[2,[-1]],7]]],3],[-1,-2,[],[]],[-1,-2,[],[]],[[-1,14,[11,[51]]],6,[]],[[65,14,[11,[51]]],6],[32,65],[[66,66],[[28,[67]]]],[65,32],[65,12],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,57,[]],[-1,57,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[70,[-1]]],[[27,[[27,[[71,[-1]]]]]]],[72,73]],[[[70,[-1]],[11,[10]]],[[53,[[71,[-1]]]]],[72,73]],[[[70,[-1]],-2,[11,[51]]],6,3,5],[[[70,[-1]]],6,[72,73]],[[[70,[-1]],-2,-2],6,[72,73],[31,74]],[[[70,[-1]],-2,[11,[10]],12,-3],[[8,[6,7]]],3,5,5],[[[70,[-1]],-2,[11,[21]],12,-3],[[8,[6,7]]],3,5,5],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-2,54,3,[[29,[-1]]]],[75,75],[[[71,[-1]]],[[71,[-1]]],[31,3]],[[[76,[-1]]],[[76,[-1]]],[31,3]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[],77],[[[70,[-1]],[11,[51]],12,[11,[51]],12],[[8,[6,7]]],3],0,0,[[[70,[-1]]],[[37,[-1]]],[72,73]],[[],78],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,6],[12,6],[12,6],[12,6],[12,6],[12,6],[12,6],[12,6],[[79,[70,[-1]]],6,3],[[[70,[-1]],-2,41,12],[[8,[6,7]]],3,5],[[[70,[-1]],-2],6,3,5],[[75,75],35],[[79,79],35],[[[71,[-1]],[71,[-1]]],35,[80,3]],[[[76,[-1]],[76,[-1]]],35,[80,3]],[[-1,-2],35,[],[]],[[-1,-2],35,[],[]],[[-1,-2],35,[],[]],[[-1,-2],35,[],[]],[[[70,[-1]]],6,3],[[[70,[-1]],[11,[21]],12,[2,[[1,[-1]]]]],[[8,[6,7]]],3],[[[70,[-1]]],[[27,[[27,[[71,[-1]]]]]]],[72,73]],[[[70,[-1]],[11,[21]]],[[53,[[71,[-1]]]]],[72,73]],[[75,42],43],[[75,42],43],[[79,42],43],[[79,42],43],[[77,42],43],[[77,42],[[8,[6,81]]]],[[[82,[-1]],42],43,[44,83]],[[78,42],43],[[[71,[-1]],42],43,[44,3]],[[[70,[-1]],42],43,[44,3]],[[[76,[-1]],42],43,[44,3]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[70,[-1]],49],[[2,[-1]]],3],[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[[[70,[-1]]],[[27,[[27,[[76,[-1]]]]]]],[72,73]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[78,35],78],0,[[[70,[-1]],[28,[54]]],6,3],[[[70,[-1]],-2],6,3,5],[77,54],[[[70,[-1]],[11,[16]],12],[[8,[[2,[-1]],7]]],3],[[78,34,-2,[85,[-3,84]]],[[8,[6,86]]],3,[[29,[-1]]],87],[[34,-2,[27,[[27,[-1]]]]],[[8,[[70,[-1]],7]]],[72,73],[[29,[-1]]]],[[[70,[-1]]],[[27,[[27,[35]]]]],[72,73]],[[78,35],78],[[78,35],78],[[-2,-3,[27,[[11,[21]]]]],[[8,[6,7]]],3,[[19,[-1]],59],[[29,[-1]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[[[70,[-1]]],[[88,[12]]],[72,73]],[[[76,[-1]]],-1,3],[[[70,[-1]]],[[8,[6,[27,[79]]]]],[72,73]],[[[70,[-1]],-2,-2],[[8,[6,[27,[79]]]]],[72,73],[31,74]],[[78,[88,[12]]],78],[[78,[88,[12]]],78],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,6],[12,6],[12,6],[[[89,[-1,-2]],42],43,[44,90],[44,29]],[[[91,[-1]],42],43,[44,90]],[[[92,[-1]],42],43,[44,90]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],12],[[],12],[[],12],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[89,[-1,-2]]],[[91,[-1]]],90,29],[[34,-1],[[89,[-2,-1]]],29,90],[[[89,[-1,-2]],12],[[92,[-1]]],90,29],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[93,93],[94,94],[95,95],[96,96],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[93,93],67],0,[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[-1,[[8,[95]]],97],[-1,[[8,[98]]],97],[12,6],[12,6],[12,6],[12,6],[12,6],[12,6],[12,6],[[99,99],35],[[93,93],35],[[-1,-2],35,[],[]],[[-1,-2],35,[],[]],0,[[99,42],43],[[100,42],43],[[93,42],43],[[94,42],43],[[95,42],43],[[96,42],43],[[98,42],43],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[34,-2,[27,[[27,[-1]]]]],100,[73,3,72],[[29,[-1]]]],[[34,-2,[27,[[27,[-1]]]],99],98,[73,3,72],[[29,[-1]]]],[101,[[8,[93]]]],0,[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[100,99],98],0,0,0,0,0,0,[[93,93],[[28,[67]]]],0,0,0,0,[[95,-1],8,102],[[98,-1],8,102],0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[103,103],[104,104],[105,105],[106,106],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[103,103],67],[[107,107],67],0,[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,6],[12,6],[12,6],[12,6],[12,6],[[103,103],35],[[107,107],35],[[104,104],35],[[105,105],35],[[106,106],35],[[-1,-2],35,[],[]],[[-1,-2],35,[],[]],[[-1,-2],35,[],[]],[[-1,-2],35,[],[]],[[-1,-2],35,[],[]],[[103,42],[[8,[6,81]]]],[[103,42],[[8,[6,81]]]],[[107,42],43],[[107,42],43],[[104,42],43],[[104,42],43],[[105,42],43],[[105,42],43],[[106,42],43],[[106,42],43],[-1,-1,[]],[[[11,[51]]],103],[108,107],[-1,-1,[]],[[[6,[-1,103,109]]],107,[[110,[101]]]],[[[6,[103,109]]],107],[[[6,[12,-1]]],104,[[110,[101]]]],[-1,-1,[]],[-1,-1,[]],[[[6,[104,12,-1]]],105,[[110,[101]]]],[[[6,[12,54,[26,[103,54]]]]],106],[[[6,[12,101,[26,[103,54]]]]],106],[[[6,[12,101]]],106],[-1,-1,[]],[[[6,[12,54]]],106],[[103,-1],6,69],0,[[],12],[[],12],[[],12],[[],12],[[],12],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[51,12],103],[[103,103],[[28,[67]]]],[[107,107],[[28,[67]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,[[[1,[-1]],-1],[[1,[-1]]],3],[[[1,[-1]],[1,[-1]]],[[1,[-1]]],3],[[[1,[-1]],-1],[[1,[-1]]],3],[[[1,[-1]],[1,[-1]]],[[1,[-1]]],3],[[[1,[-1]],[1,[-1]]],[[1,[-1]]],3],[[[1,[-1]],[1,[-1]]],[[1,[-1]]],3],[[[1,[-1]],[1,[-1]]],6,3],[[[1,[-1]],[1,[-1]]],6,3],[-1,-2,[],[]],[-1,-2,[],[]],[[[1,[-1]]],[[1,[-1]]],31],[[-1,-2],6,[],[]],[[[1,[-1]]],[[1,[-1]]],3],[[[1,[-1]]],[[28,[-1]]],3],[12,-1,[]],[12,-1,[]],[[[1,[-1]]],[[1,[-1]]],3],[12,6],[[[1,[-1]],[1,[-1]]],35,3],[[-1,-2],35,[],[]],[[[1,[-1]]],-1,3],[[[1,[-1]],42],43,44],[-1,[[1,[-1]]],3],[[[6,[-1,-1]]],[[1,[-1]]],3],[[[1,[-1]]],[[1,[-1]]],3],[-1,[[1,[-1]]],3],[-1,-1,[]],[[],12],[-1,-2,[],[]],[[[1,[-1]]],[[1,[-1]]],3],[[[1,[-1]]],35,3],[[[1,[-1]],-1],[[1,[-1]]],3],[[[1,[-1]],-1],[[1,[-1]]],3],[[[1,[-1]],[1,[-1]]],[[1,[-1]]],3],[[[1,[-1]],[1,[-1]]],[[1,[-1]]],3],[[[1,[-1]],[1,[-1]]],6,3],[[[1,[-1]],[1,[-1]]],6,3],[[[1,[-1]]],[],3],[[[1,[-1]]],[],3],[[[1,[-1]]],-1,3],[[[1,[-1]]],[[1,[-1]]],3],[[[1,[-1]],-1],[[1,[-1]]],3],[[[1,[-1]],[1,[-1]]],[[1,[-1]]],3],[[[1,[-1]],[1,[-1]]],[[1,[-1]]],3],[[[1,[-1]],[1,[-1]]],[[1,[-1]]],3],[[[1,[-1]],-1],[[1,[-1]]],3],[[[1,[-1]],[1,[-1]]],[[1,[-1]]],3],[[[1,[-1]],[1,[-1]]],6,3],[[[1,[-1]],[1,[-1]]],6,3],[-1,-2,[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,57,[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,[[-1,-2,[11,[51]]],6,[],5],[[-1,-2,[11,[10]],12,-3],[[8,[6,7]]],[],5,5],[[-1,-2,[11,[21]],12,-3],[[8,[6,7]]],[],5,5],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[10,10],[21,21],[16,16],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],0,[[[37,[-1]]],[],[]],[[[37,[-1]]],[],[]],0,[[-1,[11,[51]],12,[11,[51]],12],[[8,[6,7]]],[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,6],[12,6],[12,6],[[-1,-2,41,12],[[8,[6,7]]],[],5],[[-1,-2],6,[],5],[[10,10],35],[[21,21],35],[[16,16],35],[[-1,-2],35,[],[]],[[-1,-2],35,[],[]],[[-1,-2],35,[],[]],[-1,6,[]],0,[[-1,[11,[21]],12,[2,[[1,[-2]]]]],[[8,[6,7]]],[],[]],[[10,42],43],[[21,42],43],[[16,42],43],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[-1,49],[[2,[-2]]],[],[]],[[10,-1],6,69],[[21,-1],6,69],[[16,-1],6,69],[[],12],[[],12],[[],12],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[],[]],[[-1,[28,[54]]],6,[]],[[-1,-2],6,[],5],[[-1,12,111],[[112,[-2]]],[],3],[[10,12,111],[[112,[-1]]],3],[[21,12,111],[[112,[-1]]],3],[[16,12,111],[[112,[-1]]],3],[[-1,[11,[16]],12],[[8,[[2,[-2]],7]]],[],[]],[[-2,-3,[27,[[11,[21]]]]],[[8,[6,7]]],3,[[19,[-1]],59],[[29,[-1]]]],[[-1,-3],[[8,[6,7]]],[],[],[[23,[-2]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-1,[]],0,0,0,0,0,0,[[[37,[-1]]],[[11,[10]]],3],[[[37,[-1]],-2],[[11,[10]]],3,113],[[[37,[-1]]],[[27,[25]]],3],[[[37,[-1]]],[[27,[[6,[[11,[10]],111]]]]],3],[[[37,[-1]],-2,-3],6,3,[[38,[[11,[51]]]]],14],[[[37,[-1]],17,-2],6,3,14],[[[37,[-1]]],12,3],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[37,[-1]]],[[27,[25]]],3],[[[37,[-1]],-2],49,3,113],[108,108],[[[114,[-1]]],[[114,[-1]]],[31,3]],[[[37,[-1]]],[[37,[-1]]],[31,3]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],0,[[[37,[-1]]],41,3],[[[37,[-1]],[27,[[27,[35]]]]],[[6,[[37,[-1]],[27,[[27,[-1]]]]]]],3],[[[37,[-1]]],[[27,[[11,[21]]]]],3],[[[114,[-1]],12],101,3],[[[37,[-1]],-2,-3],6,3,[[110,[101]]],5],[[],[[37,[-1]]],3],[[[37,[-1]]],12,3],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[[[37,[-1]],[27,[[27,[35]]]]],[[6,[[37,[-1]],[27,[[27,[-1]]]]]]],3],[12,6],[12,6],[12,6],[12,6],[12,6],[12,6],[[[37,[-1]],[11,[21]]],6,3],[[[37,[-1]],-2],6,3,[[38,[[11,[51]]]]]],[[[37,[-1]]],[[11,[21]]],3],[[[37,[-1]]],[[27,[[6,[[11,[21]],111]]]]],3],[[108,42],43],[[[115,[-1]],42],43,[44,3]],[[[116,[-1,-2,-3]],42],43,[44,3],[44,[38,[[115,[-1]]]]],[44,47]],[[[114,[-1]],42],43,[44,3]],[[[37,[-1]],42],43,[44,3]],[[[117,[-1]],42],43,[44,3]],[-1,-1,[]],[[[6,[-1,111]]],108,[[38,[[11,[51]]]]]],[-1,-1,[]],[[[112,[-1]]],[[115,[-1]]],3],[[[6,[-1,[112,[-2]]]]],[[115,[-2]]],[[110,[101]]],3],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[37,[-1]]],[[27,[[114,[-1]]]]],3],[[[37,[-1]]],[[26,[103,54]]],3],[[[37,[-1]],[11,[51]],111],12,3],[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[[[37,[-1]]],[[11,[16]]],3],[[[37,[-1]]],[[27,[[6,[[11,[16]],111]]]]],3],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[116,[-1,-2,-3]]],[],3,[[38,[[115,[-1]]]]],47],[[[37,[-1]],-2,-3],12,3,[[110,[101]]],5],[[[37,[-1]],-2,-3],12,3,[[110,[101]]],5],[[[37,[-1]]],17,3],[[[37,[-1]]],[[27,[[118,[-1]]]]],3],[[[37,[-1]]],12,3],[[[114,[-1]]],101,3],[[[37,[-1]]],12,3],[[[37,[-1]]],12,3],[[[37,[-1]]],12,3],[[[37,[-1]]],12,3],[[[37,[-1]]],12,3],[[[37,[-1]]],119,3],[[[37,[-1]]],[[0,[74]]],3],[[[114,[-1]]],[[53,[[112,[-1]]]]],3],[[[114,[-1]]],[[53,[108]]],3],[[[114,[-1]]],[[53,[41]]],3],[[[117,[-1]],[11,[10]],111],[[112,[-1]]],3],[[[117,[-1]],-2,111],[[112,[-1]]],3,[[38,[[11,[51]]]]]],[[[117,[-1]],49],[[112,[-1]]],3],[[[117,[-1]],[11,[21]],111],[[112,[-1]]],3],[[[117,[-1]],[11,[16]],111],[[112,[-1]]],3],[[[117,[-1]],41],[[112,[-1]]],3],0,[[[37,[-1]]],41,3],[[[37,[-1]],12],6,3],[[[37,[-1]],-2,-3],12,3,[[110,[101]]],5],[[[37,[-1]]],[[27,[[120,[-1]]]]],3],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[[[37,[-1]]],[[11,[10]]],3],[[[37,[-1]],-2],[[11,[10]]],3,113],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[112,[-1]],-2],[[116,[-1,-3,-2]]],3,47,[[38,[[115,[-1]]]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[112,[-1]],[112,[-1]]],[[112,[-1]]],3],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[11,[-1]]],[[11,[-1]]],[31,121]],[41,41],[122,122],[123,123],[124,124],[17,17],[49,49],[[[112,[-1]]],[[112,[-1]]],31],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[-1,-2],6,[],[]],[[[11,[-1]],[11,[-1]]],67,121],[[17,17],67],[122,12],[123,12],[124,12],0,0,0,[[[11,[-1]]],-1,121],0,[[[112,[-1]]],12,3],[[[11,[-1]]],[[112,[-2]]],121,3],[[[112,[-1]]],12,3],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,6],[12,6],[12,6],[12,6],[12,6],[12,6],[12,6],[12,6],[12,6],[12,6],[12,6],[[41,[9,[-1]],12],[[8,[6,7]]],3],[[[11,[-1]],[11,[-1]]],35,[80,121]],[[41,41],35],[[122,122],35],[[123,123],35],[[124,124],35],[[17,17],35],[[49,49],35],[[[112,[-1]],[112,[-1]]],35,80],[[-1,-2],35,[],[]],[[-1,-2],35,[],[]],[[-1,-2],35,[],[]],[[-1,-2],35,[],[]],[[-1,-2],35,[],[]],[[-1,-2],35,[],[]],[[-1,-2],35,[],[]],[[-1,-2],35,[],[]],[[[112,[-1]],-2,-3,-4,-5,-6,-7,-8,-9,-10,-11],-12,3,14,14,14,14,14,14,14,14,14,14,[]],[[[112,[-1]],-2,-3,-4,-5,-6,-7,-8,-9,-10,-11,-12],-12,3,14,14,14,14,14,14,14,14,14,14,80],[41,[[112,[-1]]],3],[49,[[112,[-1]]],3],[[[11,[-1]],42],43,[44,121]],[[125,42],43],[[126,42],43],[[127,42],43],[[41,42],43],[[122,42],43],[[123,42],43],[[124,42],43],[[17,42],43],[[49,42],43],[[[112,[-1]],42],43,44],[[[11,[16]]],[[11,[51]]]],[103,[[11,[51]]]],[[[11,[21]]],[[11,[51]]]],[-1,-1,[]],[[[11,[10]]],[[11,[51]]]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[128,49],[-1,-1,[]],[[[11,[-1]],-2],6,[129,121],69],[[41,-1],6,69],[[17,-1],6,69],[[49,-1],6,69],[[[112,[-1]]],54,3],[[[11,[-1]]],12,121],[41,12],[49,12],0,0,0,0,0,[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[[],12],[17,[[11,[21]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[41,35],[[[112,[-1]],[112,[-1]]],[[112,[-1]]],3],[[[112,[-1]],-1],[[112,[-1]]],3],[[[112,[-1]]],[],3],[[12,-1],[[11,[-1]]],121],[[[11,[-1]]],[[112,[-2]]],121,3],[[[11,[-1]],[11,[-1]]],[[28,[67]]],121],[[17,17],[[28,[67]]]],[49,25],[[[11,[-1]]],[[112,[-2]]],121,3],[-1,[[112,[-2]]],74,3],[[[11,[-1]],111],[[112,[-2]]],121,3],[[[112,[-1]],[117,[-1]]],6,3],[[[11,[-1]],109],[[112,[-2]]],121,3],[122,111],[123,111],[124,111],0,0,0,0,[[[112,[-1]]],[[112,[-1]]],3],[[[112,[-1]],[112,[-1]]],[[112,[-1]]],3],[-1,[[112,[-2]]],74,3],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[125,130],[126,130],[127,130],[-1,[[8,[-2]]],[],[]],[[[11,[51]]],[[8,[[11,[21]]]]]],[[[11,[51]]],[[8,[[11,[16]]]]]],[[[11,[51]]],[[8,[[11,[10]]]]]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,57,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[130,130],[[-1,-2],6,[],[]],[[130,130],67],[12,-1,[]],[12,-1,[]],[12,6],[[130,130],35],[[-1,-2],35,[],[]],[[130,42],43],[-1,-1,[]],[[130,-1],6,69],[[],12],[-1,-2,[],[]],[[130,130],[[28,[67]]]],[130,[[28,[130]]]],[-1,-2,[],[]],[-1,130,[]],[130,130],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,57,[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,-1,[]],[12,6],[12,6],[[7,42],43],[[7,42],43],[[131,42],43],[[131,42],43],[-1,-1,[]],[-1,-1,[]],[[],12],[[],12],[-1,-2,[],[]],[-1,-2,[],[]],[34,7],[-1,54,[]],[-1,54,[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,57,[]],[-1,57,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[[[118,[-1]]],[[118,[-1]]],[31,3]],[[-1,-2],6,[],[]],[12,-1,[]],[12,-1,[]],[12,6],[[[118,[-1]],42],43,3],[-1,-1,[]],[[],12],[[[118,[-1]]],[[27,[[112,[-1]]]]],3],[-1,-2,[],[]],[[[118,[-1]]],101,3],[[-1,[27,[[6,[[112,[-2]],[112,[-2]]]]]]],[[118,[-2]]],[[110,[101]]],3],[[[118,[-1]]],[[27,[[112,[-1]]]]],3],[-1,-2,[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,57,[]],[-1,-2,[],[]],0,[-1,-2,[],[]],[-1,-2,[],[]],[119,119],[[-1,-2],6,[],[]],[[],119],[12,-1,[]],[12,-1,[]],[12,6],[[119,42],43],[-1,-1,[]],[119,[[27,[[11,[51]]]]]],[[],12],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,57,[]],[-1,-2,[],[]],0,[-1,-2,[],[]],[-1,-2,[],[]],[[[120,[-1]]],[[120,[-1]]],[31,3]],[[-1,-2],6,[],[]],[12,-1,[]],[12,-1,[]],[12,6],[[[120,[-1]],42],43,3],[-1,-1,[]],[[],12],[[[120,[-1]]],[[27,[[112,[-1]]]]],3],[-1,-2,[],[]],[[[120,[-1]]],101,3],[[-1,[27,[[6,[[112,[-2]],[112,[-2]]]]]]],[[120,[-2]]],[[110,[101]]],3],[[[120,[-1]]],[[27,[[112,[-1]]]]],3],[-1,-2,[],[]],[-1,[[8,[-2]]],[],[]],[-1,[[8,[-2]]],[],[]],[-1,57,[]],[-1,-2,[],[]]],"c":[],"p":[[4,"Assigned",985],[3,"Value",3],[8,"Field",1694],[8,"Add",1695],[8,"FnOnce",1696],[15,"tuple"],[4,"Error",1588],[4,"Result",1697],[3,"Region",3],[3,"Advice",1043],[3,"Column",1289],[15,"usize"],[3,"AssignedCell",3],[8,"Fn",1696],[8,"FnMut",1696],[3,"Instance",1043],[3,"TableColumn",1289],[3,"SimpleTableLayouter",3],[8,"Assignment",1043],[3,"Table",3],[3,"Fixed",1043],[3,"NamespacedLayouter",3],[8,"Layouter",3],[3,"WitnessCalculator",3],[15,"u8"],[3,"HashMap",1698],[3,"Vec",1699],[4,"Option",1700],[8,"Circuit",1043],[3,"Cell",3],[8,"Clone",1701],[3,"RegionIndex",3],[3,"RegionStart",3],[15,"u32"],[15,"bool"],[3,"CompiledCircuit",1702],[3,"ConstraintSystem",1135],[8,"Into",1703],[8,"Copy",1704],[8,"Borrow",1705],[3,"Selector",1289],[3,"Formatter",1706],[6,"Result",1706],[8,"Debug",1706],[8,"RegionLayouter",382],[8,"TableLayouter",382],[8,"IntoIterator",1707],[8,"FromIterator",1707],[3,"Challenge",1289],[8,"Mul",1695],[4,"Any",1702],[8,"Neg",1695],[15,"slice"],[3,"String",1708],[8,"Sub",1695],[15,"array"],[3,"TypeId",1709],[3,"SingleChipLayouter",280],[8,"SyncDeps",382],[3,"SimpleFloorPlanner",280],[3,"V1Pass",317],[3,"V1",317],[3,"MeasurementPass",317],[3,"AssignmentPass",317],[3,"RegionShape",382],[4,"RegionColumn",382],[4,"Ordering",1710],[3,"HashSet",1711],[8,"Hasher",1712],[3,"MockProver",451],[4,"CellValue",451],[8,"FromUniformBytes",1694],[8,"Ord",1710],[8,"Iterator",1713],[4,"FailureLocation",451],[4,"InstanceValue",451],[3,"CircuitGates",451],[3,"CircuitLayout",451],[4,"VerifyFailure",451],[8,"PartialEq",1710],[3,"Error",1706],[3,"TracingFloorPlanner",451],[8,"FloorPlanner",1043],[3,"Shift",1714],[3,"DrawingArea",1715],[4,"DrawingAreaErrorKind",1715],[8,"DrawingBackend",1716],[3,"Range",1717],[3,"CircuitCost",667],[8,"PrimeGroup",1718],[3,"MarginalProofSize",667],[3,"ProofSize",667],[3,"Poly",712],[3,"Lookup",712],[3,"Permutation",712],[3,"Shuffle",712],[8,"Deserializer",1719],[3,"ModelCircuit",712],[4,"CommitmentScheme",712],[3,"CostOptions",712],[15,"str"],[8,"Serializer",1720],[3,"Column",858],[3,"Gate",858],[3,"Constraint",858],[3,"Region",858],[3,"VirtualCell",858],[3,"VirtualCell",1135],[15,"i32"],[8,"AsRef",1703],[3,"Rotation",1721],[4,"Expression",1289],[8,"Phase",1289],[3,"Gate",1135],[3,"Constraint",1135],[3,"Constraints",1135],[3,"VirtualCells",1135],[3,"Argument",1633],[3,"Argument",1654],[3,"Argument",1673],[8,"ColumnType",1043],[3,"FixedQuery",1289],[3,"AdviceQuery",1289],[3,"InstanceQuery",1289],[3,"FirstPhase",1289],[3,"SecondPhase",1289],[3,"ThirdPhase",1289],[3,"ChallengeMid",1702],[8,"Hash",1712],[3,"Phase",1562],[4,"TableError",1588],[8,"Chip",3],[13,"InRegion",642],[13,"OutsideRegion",642],[13,"ConstraintNotSatisfied",645],[13,"CellNotAssigned",645],[13,"InstanceCellNotAssigned",645],[13,"Permutation",645],[13,"ConstraintPoisoned",645],[13,"Lookup",645],[13,"Shuffle",645],[8,"SealedPhase",1562],[13,"NotEnoughRowsAvailable",1632]]},\ +"halo2_middleware":{"doc":"","t":"AACCAAAAAANEDNDDDNDGNDGNNDNNDNNEMLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLMMMMLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLMMLLLLMMLLLLLLLLLLLLLLLLLLLLMMLMMLMMMMLLLMMLMMMLMMMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLNENNNNILLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLKLDGLLLLLLLLLLMMLMMMMLLLLLIIIIQQQQQQQIIDILLKLLLLLLLLLLLLLFLLKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKFLKLLLLLLLLLLLLLLLLKKLLLLLLLLLLLLLLLLLLLLLLFLLLLLLLLLLLKLLLLLLLLLLLLLLLLKLLDDLLLLLLLLMMLLLLLLLLLLLLLLLLLLLLLLLLDLLLLLLLLLLLLLLLLLLLLLLLLDGLLLLLLLLLLMMLMMMMLLLLLAADDDDDDDDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLQQIKKKKKK","n":["circuit","expression","ff","halo2curves","lookup","multicore","permutation","poly","shuffle","zal","Advice","Any","Cell","Challenge","ChallengeMid","ColumnMid","CompiledCircuit","Constant","ConstraintSystemMid","ExpressionMid","Fixed","Gate","GateMid","Instance","Negated","Preprocessing","Product","Query","QueryMid","Sum","Var","VarMid","advice_column_phase","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","challenge_phase","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","cmp","cmp","cmp","column","column_index","column_type","column_type","complexity","cs","degree","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","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fixed","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","gates","general_column_annotations","hash","hash","hash","index","index","index","init","init","init","init","init","init","init","init","init","init","into","into","into","into","into","into","into","into","into","into","lookups","minimum_degree","name","name","name","new","num_advice_columns","num_challenges","num_fixed_columns","num_instance_columns","partial_cmp","partial_cmp","partial_cmp","permutation","permutation","phase","phase","poly","poly","polynomial","preprocessing","rotation","row","shuffles","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_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","unblinded_advice_columns","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","write_identifier","Constant","Expression","Negated","Product","Sum","Var","Variable","add","borrow","borrow_mut","clone","clone_into","complexity","complexity","degree","degree","deref","deref_mut","drop","eq","equivalent","evaluate","fmt","from","identifier","init","into","mul","mul","neg","product","sub","sum","to_owned","try_from","try_into","type_id","vzip","write_identifier","write_identifier","Argument","ArgumentMid","borrow","borrow_mut","clone","clone_into","deref","deref_mut","drop","fmt","from","init","input_expressions","input_expressions","into","name","name","table_expressions","table_expressions","to_owned","try_from","try_into","type_id","vzip","IndexedParallelIterator","IntoParallelIterator","IntoParallelRefIterator","IntoParallelRefMutIterator","Item","Item","Item","Item","Iter","Iter","Iter","ParallelIterator","ParallelSliceMut","Scope","TryFoldAndReduce","all","any","as_parallel_slice_mut","borrow","borrow_mut","by_exponential_blocks","by_uniform_blocks","chain","chunks","cloned","cmp","collect","collect_into_vec","collect_vec_list","copied","count","current_num_threads","deref","deref_mut","drive","drive_unindexed","drop","enumerate","eq","filter","filter_map","find_any","find_first","find_last","find_map_any","find_map_first","find_map_last","flat_map","flat_map_iter","flatten","flatten_iter","fmt","fold","fold_chunks","fold_chunks_with","fold_with","for_each","for_each_init","for_each_with","from","ge","gt","init","inspect","interleave","interleave_shortest","intersperse","into","into_par_iter","join","le","len","lt","map","map_init","map_with","max","max_by","max_by_key","min","min_by","min_by_key","ne","opt_len","panic_fuse","par_chunk_by_mut","par_chunks_exact_mut","par_chunks_mut","par_iter","par_iter_mut","par_rchunks_exact_mut","par_rchunks_mut","par_sort","par_sort_by","par_sort_by_cached_key","par_sort_by_key","par_sort_unstable","par_sort_unstable_by","par_sort_unstable_by_key","par_split_inclusive_mut","par_split_mut","partial_cmp","partition","partition_map","position_any","position_first","position_last","positions","product","reduce","reduce_with","rev","scope","skip","skip_any","skip_any_while","spawn","spawn_broadcast","step_by","sum","take","take_any","take_any_while","try_fold","try_fold_and_reduce","try_fold_with","try_for_each","try_for_each_init","try_for_each_with","try_from","try_into","try_reduce","try_reduce_with","type_id","unzip","unzip_into_vecs","update","vzip","while_some","with_max_len","with_min_len","with_producer","zip","zip_eq","ArgumentMid","AssemblyMid","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","columns","copies","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","from","from","init","init","into","into","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Rotation","borrow","borrow_mut","clone","clone_into","cmp","cur","deref","deref_mut","drop","eq","equivalent","fmt","from","hash","init","into","next","partial_cmp","prev","to_owned","try_from","try_into","type_id","vzip","Argument","ArgumentMid","borrow","borrow_mut","clone","clone_into","deref","deref_mut","drop","fmt","from","init","input_expressions","input_expressions","into","name","name","shuffle_expressions","shuffle_expressions","to_owned","try_from","try_into","type_id","vzip","impls","traits","H2cEngine","H2cMsmBaseDesc","H2cMsmCoeffsDesc","HasCurve","HasMsmEngine","NoCurve","NoMsmEngine","PlonkEngine","PlonkEngineConfig","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","build","build_default","default","default","default","default","default","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","drop","drop","drop","drop","fmt","from","from","from","from","from","from","from","from","from","get_base_descriptor","get_coeffs_descriptor","init","init","init","init","init","init","init","init","init","into","into","into","into","into","into","into","into","into","msm","msm_backend","msm_with_cached_base","msm_with_cached_inputs","msm_with_cached_scalars","new","new","set_curve","set_msm","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","BaseDescriptor","CoeffsDescriptor","MsmAccel","get_base_descriptor","get_coeffs_descriptor","msm","msm_with_cached_base","msm_with_cached_inputs","msm_with_cached_scalars"],"q":[[0,"halo2_middleware"],[10,"halo2_middleware::circuit"],[253,"halo2_middleware::expression"],[293,"halo2_middleware::lookup"],[317,"halo2_middleware::multicore"],[461,"halo2_middleware::permutation"],[497,"halo2_middleware::poly"],[522,"halo2_middleware::shuffle"],[546,"halo2_middleware::zal"],[548,"halo2_middleware::zal::impls"],[684,"halo2_middleware::zal::traits"],[693,"core::clone"],[694,"ff"],[695,"core::cmp"],[696,"core::fmt"],[697,"core::fmt"],[698,"core::option"],[699,"alloc::string"],[700,"core::result"],[701,"core::any"],[702,"std::io::error"],[703,"std::io"],[704,"core::cmp"],[705,"core::iter::traits::iterator"],[706,"core::marker"],[707,"core::marker"],[708,"rayon::iter::blocks"],[709,"rayon::iter::chunks"],[710,"rayon::iter::cloned"],[711,"rayon::iter"],[712,"alloc::alloc"],[713,"alloc::vec"],[714,"alloc::collections::linked_list"],[715,"rayon::iter::copied"],[716,"rayon::iter::plumbing"],[717,"rayon::iter::plumbing"],[718,"rayon::iter::filter"],[719,"rayon::iter::filter_map"],[720,"rayon::iter::flat_map"],[721,"rayon::iter::flat_map_iter"],[722,"rayon::iter::flatten"],[723,"rayon::iter::flatten_iter"],[724,"core::fmt"],[725,"rayon::iter::fold_chunks"],[726,"rayon::iter::fold_chunks_with"],[727,"rayon::iter::fold"],[728,"rayon::iter::interleave"],[729,"rayon::iter::interleave_shortest"],[730,"rayon::iter::intersperse"],[731,"core::ops::function"],[732,"rayon::iter::map_with"],[733,"rayon::iter::map_with"],[734,"rayon::slice::chunk_by"],[735,"rayon::slice::chunks"],[736,"rayon::slice::chunks"],[737,"rayon::slice::rchunks"],[738,"rayon::slice"],[739,"rayon::iter"],[740,"core::iter::traits::accum"],[741,"rayon::iter::rev"],[742,"rayon::iter::skip"],[743,"rayon::iter::skip_any"],[744,"rayon::iter::skip_any_while"],[745,"rayon::iter::step_by"],[746,"core::iter::traits::accum"],[747,"rayon::iter::take_any"],[748,"rayon::iter::take_any_while"],[749,"rayon::iter::try_fold"],[750,"rayon::iter::private"],[751,"rayon::iter::try_fold"],[752,"rayon::iter::while_some"],[753,"rayon::iter::len"],[754,"rayon::iter::len"],[755,"rayon::iter::zip_eq"],[756,"pasta_curves::arithmetic::curves"]],"d":["","","","","","","","","","This module provides “ZK Acceleration Layer” traits to …","An Advice variant","An enum over the Advice, Fixed, Instance structs","A cell identifies a position in the plonkish matrix …","This is a challenge","A challenge squeezed from transcript after advice columns …","A column with an index and type","This is a description of a low level Plonkish compiled …","This is a constant polynomial","This is a description of the circuit environment, such as …","","A Fixed variant","A Gate contains a single polynomial identity with a name …","","An Instance variant","This is a negated polynomial","Data that needs to be preprocessed from a circuit","This is the product of two polynomials","This is a generic column query","","This is the sum of two polynomials","This is a variable","","Contains the phase for each advice column. Should have …","","","","","","","","","","","","","","","","","","","","","Contains the phase for each challenge. Should have same …","","","","","","","","","","","","","","","","","","","","","","","","","Column index","The type of the column.","The type of the 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.","","","","","","Index of this challenge.","","The index of the 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).","","","Returns the gate name.","","","","","","","","","","","","","Phase of this challenge.","","","","Returns the polynomial identity of this gate","","Rotation of this query","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Contains the index of each advice column that is left …","","","","","","","","","","","","This is a constant polynomial","Low-degree expression representing an identity that must …","This is a negated polynomial","This is the product of two polynomials","This is the sum of two polynomials","This is a variable","","","","","","","Approximate the computational complexity an expression …","Approximate the computational complexity of this …","Degree that an expression would have if it was only this …","Compute the degree of this polynomial","","","","","","Evaluate the polynomial using the provided closures to …","","Returns the argument unchanged.","Identifier for this expression. Expressions with identical …","","Calls U::from(self).","","","","","","","","","","","","Write an identifier of the variable. If two variables …","","Expressions involved in a lookup argument, with a name as …","","","","","","","","","","Returns the argument unchanged.","","","","Calls U::from(self).","","","","","","","","","","An iterator that supports “random access” to its data, …","IntoParallelIterator implements the conversion to a …","IntoParallelRefIterator implements the conversion to a …","IntoParallelRefMutIterator implements the conversion to a …","The type of item that the parallel iterator will produce.","The type of item that the parallel iterator will produce. …","The type of item that will be produced; this is typically …","The type of item that this parallel iterator produces. For …","The parallel iterator type that will be created.","The type of the parallel iterator that will be returned.","The type of iterator that will be created.","Parallel version of the standard iterator trait.","Parallel extensions for mutable slices.","Represents a fork-join scope which can be used to spawn …","","Tests that every item in the parallel iterator matches the …","Searches for some item in the parallel iterator that …","Returns a plain mutable slice, which is used to implement …","","","Divides an iterator into sequential blocks of …","Divides an iterator into sequential blocks of the given …","Takes two iterators and creates a new iterator over both.","Splits an iterator up into fixed-size chunks.","Creates an iterator which clones all of its elements. …","Lexicographically compares the elements of this …","Creates a fresh collection containing all the elements …","Collects the results of the iterator into the specified …","Collects this iterator into a linked list of vectors.","Creates an iterator which copies all of its elements. …","Counts the number of items in this parallel iterator.","Returns the number of threads in the current registry. If …","","","Internal method used to define the behavior of this …","Internal method used to define the behavior of this …","","Yields an index along with each item.","Determines if the elements of this ParallelIterator are …","Applies filter_op to each item of this iterator, producing …","Applies filter_op to each item of this iterator to get an …","Searches for some item in the parallel iterator that …","Searches for the sequentially first item in the parallel …","Searches for the sequentially last item in the parallel …","Applies the given predicate to the items in the parallel …","Applies the given predicate to the items in the parallel …","Applies the given predicate to the items in the parallel …","Applies map_op to each item of this iterator to get nested …","Applies map_op to each item of this iterator to get nested …","An adaptor that flattens parallel-iterable Items into one …","An adaptor that flattens serial-iterable Items into one …","","Parallel fold is similar to sequential fold except that the","Splits an iterator into fixed-size chunks, performing a …","Splits an iterator into fixed-size chunks, performing a …","Applies fold_op to the given init value with each item of …","Executes OP on each item produced by the iterator, in …","Executes OP on a value returned by init with each item …","Executes OP on the given init value with each item …","Returns the argument unchanged.","Determines if the elements of this ParallelIterator are …","Determines if the elements of this ParallelIterator are …","","Applies inspect_op to a reference to each item of this …","Interleaves elements of this iterator and the other given …","Interleaves elements of this iterator and the other given …","Intersperses clones of an element between items of this …","Calls U::from(self).","Converts self into a parallel iterator.","Takes two closures and potentially runs them in parallel. …","Determines if the elements of this ParallelIterator are …","Produces an exact count of how many items this iterator …","Determines if the elements of this ParallelIterator are …","Applies map_op to each item of this iterator, producing a …","Applies map_op to a value returned by init with each item …","Applies map_op to the given init value with each item of …","Computes the maximum of all the items in the iterator. If …","Computes the maximum of all the items in the iterator with …","Computes the item that yields the maximum value for the …","Computes the minimum of all the items in the iterator. If …","Computes the minimum of all the items in the iterator with …","Computes the item that yields the minimum value for the …","Determines if the elements of this ParallelIterator are …","Internal method used to define the behavior of this …","Wraps an iterator with a fuse in case of panics, to halt …","Returns a parallel iterator over the slice producing …","Returns a parallel iterator over chunk_size elements of …","Returns a parallel iterator over at most chunk_size …","Converts self into a parallel iterator.","Creates the parallel iterator from self.","Returns a parallel iterator over chunk_size elements of …","Returns a parallel iterator over at most chunk_size …","Sorts the slice in parallel.","Sorts the slice in parallel with a comparator function.","Sorts the slice in parallel with a key extraction function.","Sorts the slice in parallel with a key extraction function.","Sorts the slice in parallel, but might not preserve the …","Sorts the slice in parallel with a comparator function, …","Sorts the slice in parallel with a key extraction …","Returns a parallel iterator over mutable subslices …","Returns a parallel iterator over mutable subslices …","Lexicographically compares the elements of this …","Partitions the items of a parallel iterator into a pair of …","Partitions and maps the items of a parallel iterator into …","Searches for some item in the parallel iterator that …","Searches for the sequentially first item in the parallel …","Searches for the sequentially last item in the parallel …","Searches for items in the parallel iterator that match the …","Multiplies all the items in the iterator.","Reduces the items in the iterator into one item using op. …","Reduces the items in the iterator into one item using op. …","Produces a new iterator with the elements of this iterator …","Creates a “fork-join” scope s and invokes the closure …","Creates an iterator that skips the first n elements.","Creates an iterator that skips n elements from anywhere in …","Creates an iterator that skips elements from anywhere in …","Spawns a job into the fork-join scope self. This job will …","Spawns a job into every thread of the fork-join scope self…","Creates an iterator that steps by the given amount","Sums up the items in the iterator.","Creates an iterator that yields the first n elements.","Creates an iterator that yields n elements from anywhere …","Creates an iterator that takes elements from anywhere in …","Performs a fallible parallel fold.","Implements iter.try_fold().try_reduce() for …","Performs a fallible parallel fold with a cloneable init …","Executes a fallible OP on each item produced by the …","Executes a fallible OP on a value returned by init with …","Executes a fallible OP on the given init value with each …","","","Reduces the items in the iterator into one item using a …","Reduces the items in the iterator into one item using a …","","Unzips the items of a parallel iterator into a pair of …","Unzips the results of the iterator into the specified …","Mutates each item of this iterator before yielding it.","","Creates an iterator over the Some items of this iterator, …","Sets the maximum length of iterators desired to process in …","Sets the minimum length of iterators desired to process in …","Internal method used to define the behavior of this …","Iterates over tuples (A, B), where the items A are from …","The same as Zip, but requires that both iterators have the …","A permutation argument.","","","","","","","","","","A sequence of columns involved in the argument.","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","Describes the relative rotation of a vector. Negative …","","","","","","The current location in the evaluation domain","","","","","","","Returns the argument unchanged.","","","Calls U::from(self).","The next location in the evaluation domain","","The previous location in the evaluation domain","","","","","","Expressions involved in a shuffle argument, with a name as …","","","","","","","","","","Returns the argument unchanged.","","","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"i":[0,0,0,0,0,0,0,0,0,0,11,0,0,3,0,0,0,118,0,0,11,0,0,11,118,0,118,3,0,118,118,0,8,1,2,3,4,8,9,10,11,12,13,1,2,3,4,8,9,10,11,12,13,8,1,2,3,4,8,9,10,11,12,13,1,2,3,4,8,9,10,11,12,13,11,12,13,13,2,2,12,3,10,3,1,2,3,4,8,9,10,11,12,13,1,2,3,4,8,9,10,11,12,13,1,2,3,4,8,9,10,11,12,13,1,2,3,11,12,13,1,2,3,11,12,13,9,1,2,3,4,8,9,10,11,12,12,13,1,2,3,4,8,9,10,11,12,13,8,8,1,11,12,1,1,12,1,2,3,4,8,9,10,11,12,13,1,2,3,4,8,9,10,11,12,13,8,8,4,119,4,12,8,8,8,8,11,12,13,8,9,1,1,119,4,4,10,2,13,8,1,2,3,4,8,9,10,11,12,13,12,1,2,3,4,8,9,10,11,12,13,1,2,3,4,8,9,10,11,12,13,1,2,3,4,8,9,10,11,12,13,8,1,2,3,4,8,9,10,11,12,13,3,25,0,25,25,25,25,0,25,25,25,25,25,7,25,7,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,7,25,0,0,34,34,34,34,34,34,34,34,34,34,120,34,34,120,34,120,34,34,34,34,34,34,0,0,0,0,41,121,122,44,41,121,122,0,0,0,0,44,44,123,59,59,97,97,44,97,44,97,44,97,44,44,44,0,59,59,97,44,59,97,97,44,44,44,44,44,44,44,44,44,44,44,44,59,44,97,97,44,44,44,44,59,97,97,59,44,97,97,44,59,41,0,97,97,97,44,44,44,44,44,44,44,44,44,97,44,44,123,123,123,121,122,123,123,123,123,123,123,123,123,123,123,123,97,44,44,97,97,97,97,44,44,44,97,0,97,44,44,59,59,97,44,97,44,44,44,124,44,44,44,44,59,59,44,44,59,44,97,44,59,44,97,97,97,97,97,0,0,105,106,105,106,105,106,105,106,106,105,105,106,105,106,105,106,105,106,105,106,105,106,105,106,105,106,105,106,105,106,105,106,105,106,0,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,0,0,108,108,108,108,108,108,108,108,108,108,125,108,108,125,108,125,108,108,108,108,108,108,0,0,0,0,0,0,0,0,0,0,0,126,127,110,115,112,111,116,109,117,126,127,110,115,112,111,116,109,117,111,111,115,111,116,109,117,126,127,110,115,112,111,116,109,117,126,127,110,115,112,111,116,109,117,126,127,110,115,112,111,116,109,117,112,126,127,110,115,112,111,116,109,117,115,115,126,127,110,115,112,111,116,109,117,126,127,110,115,112,111,116,109,117,115,112,115,115,115,115,111,111,111,126,127,110,115,112,111,116,109,117,126,127,110,115,112,111,116,109,117,126,127,110,115,112,111,116,109,117,126,127,110,115,112,111,116,109,117,114,114,0,114,114,114,114,114,114],"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,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[1,1],[2,2],[3,3],[[[4,[-1,-2]]],[[4,[-1,-2]]],[5,6],[5,7]],[[[8,[-1]]],[[8,[-1]]],[5,6]],[[[9,[-1]]],[[9,[-1]]],[5,6]],[[[10,[-1]]],[[10,[-1]]],[5,6]],[11,11],[12,12],[13,13],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],[[11,11],15],[[12,12],15],[[13,13],15],0,0,0,0,[3,16],0,[3,16],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,14],[16,14],[16,14],[16,14],[16,14],[16,14],[16,14],[16,14],[16,14],[16,14],[[1,1],17],[[2,2],17],[[3,3],17],[[11,11],17],[[12,12],17],[[13,13],17],[[-1,-2],17,[],[]],[[-1,-2],17,[],[]],[[-1,-2],17,[],[]],[[-1,-2],17,[],[]],[[-1,-2],17,[],[]],[[-1,-2],17,[],[]],0,[[1,18],19],[[2,18],19],[[3,18],19],[[[4,[-1,-2]],18],19,[20,6],[20,7]],[[[8,[-1]],18],19,[20,6]],[[[9,[-1]],18],19,[20,6]],[[[10,[-1]],18],19,[20,6]],[[11,18],19],[[12,18],19],[[12,18],19],[[13,18],19],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],0,0,[[1,-1],14,21],[[11,-1],14,21],[[12,-1],14,21],[1,16],0,0,[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[[[4,[-1,-2]]],22,6,7],0,0,[[11,16],12],0,0,0,0,[[11,11],[[23,[15]]]],[[12,12],[[23,[15]]]],[[13,13],[[23,[15]]]],0,0,[1,24],0,0,0,[[[4,[-1,-2]]],[[25,[-1,-2]]],6,7],0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,26,[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,28,[]],[-1,28,[]],[-1,28,[]],[-1,28,[]],[-1,28,[]],[-1,28,[]],[-1,28,[]],[-1,28,[]],[-1,28,[]],[-1,28,[]],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[3,-1],[[29,[14]]],30],0,0,0,0,0,0,0,[[[25,[-1,-2]],[25,[-1,-2]]],[[25,[-1,-2]]],6,7],[-1,-2,[],[]],[-1,-2,[],[]],[[[25,[-1,-2]]],[[25,[-1,-2]]],5,[5,7]],[[-1,-2],14,[],[]],[-1,16,[]],[[[25,[-1,-2]]],16,6,7],[-1,16,[]],[[[25,[-1,-2]]],16,6,7],[16,-1,[]],[16,-1,[]],[16,14],[[[25,[-1,-2]],[25,[-1,-2]]],17,31,[31,7]],[[-1,-2],17,[],[]],[[[25,[-1,-2]],-3,-4,-5,-6,-7],-8,6,7,32,32,32,32,32,[]],[[[25,[-1,-2]],18],19,20,[20,7]],[-1,-1,[]],[[[25,[-1,-2]]],26,6,7],[[],16],[-1,-2,[],[]],[[[25,[-1,-2]],[25,[-1,-2]]],[[25,[-1,-2]]],6,7],[[[25,[-1,-2]],-1],[[25,[-1,-2]]],6,7],[[[25,[-1,-2]]],[],6,7],[-1,[[25,[-2,-3]]],33,6,7],[[[25,[-1,-2]],[25,[-1,-2]]],[[25,[-1,-2]]],6,7],[-1,[[25,[-2,-3]]],33,6,7],[-1,-2,[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,28,[]],[-1,-2,[],[]],[[-1,-2],[[29,[14]]],[],30],[[[25,[-1,-2]],-3],[[29,[14]]],6,7,30],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[[[34,[-1,-2]]],[[34,[-1,-2]]],[5,6],[5,7]],[[-1,-2],14,[],[]],[16,-1,[]],[16,-1,[]],[16,14],[[[34,[-1,-2]],18],19,[20,6],[20,7]],[-1,-1,[]],[[],16],0,0,[-1,-2,[],[]],0,0,0,0,[-1,-2,[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,28,[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[-1,-2],17,[],[32,35,36]],[[-1,-2],17,[],[32,35,36]],[-1,[[37,[-2]]],[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[38,[-1]]],[]],[[-1,16],[[39,[-1]]],[]],[[-1,-2],[[40,[-1]]],[],41],[[-1,16],[[42,[-1]]],[]],[-1,[[43,[-1]]],44],[[-1,-2],15,[],41],[-1,-2,[],45],[[-1,[47,[46]]],14,[]],[-1,[[48,[[47,[46]],46]]],[]],[-1,[[49,[-1]]],44],[-1,16,[]],[[],16],[16,-1,[]],[16,-1,[]],[[-1,-2],[],[],50],[[-1,-2],[],[],51],[16,14],[-1,[[52,[-1]]],[]],[[-1,-2],17,[],41],[[-1,-2],[[53,[-1,-2]]],[],[32,35,36]],[[-1,-2],[[54,[-1,-2]]],[],[32,35,36]],[[-1,-2],23,[],[32,35,36]],[[-1,-2],23,[],[32,35,36]],[[-1,-2],23,[],[32,35,36]],[[-1,-2],[[23,[-3]]],[],[32,35,36],36],[[-1,-2],[[23,[-3]]],[],[32,35,36],36],[[-1,-2],[[23,[-3]]],[],[32,35,36],36],[[-1,-2],[[55,[-1,-2]]],[],[32,35,36]],[[-1,-2],[[56,[-1,-2]]],[],[32,35,36]],[-1,[[57,[-1]]],[]],[-1,[[58,[-1]]],[]],[[59,18],[[27,[14,60]]]],[[-1,-2,-3],[[61,[-1,-2,-3]]],[],[32,35,36],[32,35,36]],[[-1,16,-2,-3],[[62,[-1,-2,-3]]],[],[32,36,35],[32,36,35]],[[-1,16,-2,-3],[[63,[-1,-2,-3]]],[],[36,5],[32,36,35]],[[-1,-2,-3],[[64,[-1,-2,-3]]],[],[36,5],[32,35,36]],[[-1,-2],14,[],[32,35,36]],[[-1,-2,-3],14,[],[32,35,36],[32,35,36]],[[-1,-2,-3],14,[],[36,5],[32,35,36]],[-1,-1,[]],[[-1,-2],17,[],41],[[-1,-2],17,[],41],[[],16],[[-1,-2],[[65,[-1,-2]]],[],[32,35,36]],[[-1,-2],[[66,[-1]]],[],41],[[-1,-2],[[67,[-1]]],[],41],[-1,[[68,[-1]]],[]],[-1,-2,[],[]],[-1,[],[]],[[-1,-2],[[14,[-3,-4]]],[69,36],[69,36],36,36],[[-1,-2],17,[],41],[-1,16,[]],[[-1,-2],17,[],41],[[-1,-2],[[70,[-1,-2]]],[],[32,35,36]],[[-1,-2,-3],[[71,[-1,-2,-3]]],[],[32,35,36],[32,35,36]],[[-1,-2,-3],[[72,[-1,-2,-3]]],[],[36,5],[32,35,36]],[-1,23,[]],[[-1,-2],23,[],[35,36,32]],[[-1,-2],23,[],[35,36,32]],[-1,23,[]],[[-1,-2],23,[],[35,36,32]],[[-1,-2],23,[],[35,36,32]],[[-1,-2],17,[],41],[-1,[[23,[16]]],[]],[-1,[[73,[-1]]],[]],[[-1,-2],[[74,[-3,-2]]],[],[32,36,35],[]],[[-1,16],[[75,[-2]]],[],[]],[[-1,16],[[76,[-2]]],[],[]],[-1,[],[]],[-1,[],[]],[[-1,16],[[77,[-2]]],[],[]],[[-1,16],[[78,[-2]]],[],[]],[-1,14,[]],[[-1,-2],14,[],[32,35]],[[-1,-2],14,[],[32,35]],[[-1,-2],14,[],[32,35]],[-1,14,[]],[[-1,-2],14,[],[32,35]],[[-1,-2],14,[],[32,35]],[[-1,-2],[[79,[-3,-2]]],[],[32,35,36],[]],[[-1,-2],[[80,[-3,-2]]],[],[32,35,36],[]],[[-1,-2],[[23,[15]]],[],41],[[-1,-2],[[14,[-3,-4]]],[],[32,35,36],[81,36,82],[81,36,82]],[[-1,-2],[[14,[-4,-6]]],[],[32,35,36],36,[81,36,[82,[-3]]],36,[81,36,[82,[-5]]]],[[-1,-2],[[23,[16]]],[],[32,35,36]],[[-1,-2],[[23,[16]]],[],[32,35,36]],[[-1,-2],[[23,[16]]],[],[32,35,36]],[[-1,-2],[[83,[-1,-2]]],[],[32,35,36]],[-1,-2,[],[36,84,84]],[[-1,-2,-3],[],[],[32,35,36],[32,35,36]],[[-1,-2],23,[],[32,35,36]],[-1,[[85,[-1]]],[]],[-1,-2,[69,36],36],[[-1,16],[[86,[-1]]],[]],[[-1,16],[[87,[-1]]],[]],[[-1,-2],[[88,[-1,-2]]],[],[32,35,36]],[[59,-1],14,[69,36]],[[59,-1],14,[32,36,35]],[[-1,16],[[89,[-1]]],[]],[-1,-2,[],[36,90,90]],[[-1,16],[[91,[-1]]],[]],[[-1,16],[[92,[-1]]],[]],[[-1,-2],[[93,[-1,-2]]],[],[32,35,36]],[[-1,-2,-3],[[94,[-1,-4,-2,-3]]],[],[32,35,36],[32,35,36],[95,36]],[[-1,-2,-3],[[27,[-4,-5]]],[],[32,36,35],[32,36,35],[],[]],[[-1,-2,-3],[[96,[-1,-4,-3]]],[],[5,36],[32,35,36],[95,36]],[[-1,-2],-3,[],[32,35,36],[95,36]],[[-1,-2,-3],-4,[],[32,35,36],[32,35,36],[95,36]],[[-1,-2,-3],-4,[],[36,5],[32,35,36],[95,36]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[[-1,-2,-3],[],[],[32,35,36],[32,35,36]],[[-1,-2],23,[],[32,35,36]],[-1,28,[]],[-1,[[14,[-3,-5]]],44,36,[81,36,[82,[-2]]],36,[81,36,[82,[-4]]]],[[-1,[47,[-2,46]],[47,[-3,46]]],14,97,36,36],[[-1,-2],[[98,[-1,-2]]],[],[32,35,36]],[-1,-2,[],[]],[-1,[[99,[-1]]],44],[[-1,16],[[100,[-1]]],[]],[[-1,16],[[101,[-1]]],[]],[[-1,-2],[],[],102],[[-1,-2],[[103,[-1]]],[],41],[[-1,-2],[[104,[-1]]],[],41],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[105,105],[106,106],[[-1,-2],14,[],[]],[[-1,-2],14,[],[]],0,0,[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,14],[16,14],[[105,18],19],[[106,18],19],[-1,-1,[]],[-1,-1,[]],[[],16],[[],16],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,28,[]],[-1,28,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[-1,-2,[],[]],[-1,-2,[],[]],[107,107],[[-1,-2],14,[],[]],[[107,107],15],[[],107],[16,-1,[]],[16,-1,[]],[16,14],[[107,107],17],[[-1,-2],17,[],[]],[[107,18],19],[-1,-1,[]],[[107,-1],14,21],[[],16],[-1,-2,[],[]],[[],107],[[107,107],[[23,[15]]]],[[],107],[-1,-2,[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,28,[]],[-1,-2,[],[]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[[[108,[-1,-2]]],[[108,[-1,-2]]],[5,6],[5,7]],[[-1,-2],14,[],[]],[16,-1,[]],[16,-1,[]],[16,14],[[[108,[-1,-2]],18],19,[20,6],[20,7]],[-1,-1,[]],[[],16],0,0,[-1,-2,[],[]],0,0,0,0,[-1,-2,[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,28,[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[111,[[109,[-1]],[110,[-1,-2]]]]],[[112,[-1,-2]]],113,[[114,[-1]]]],[[],[[112,[-1,115]]],113],[[],115],[[],[[111,[-1,-2]]],81,81],[[],116],[[],[[109,[-1]]],[81,113]],[[],117],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,-1,[]],[16,14],[16,14],[16,14],[16,14],[16,14],[16,14],[16,14],[16,14],[16,14],[[[112,[-1,-2]],18],19,[20,113],[20,[114,[-1]]]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[115,[37,[-1]]],[],113],[[115,37]],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[115,37,[37,[-1]]],[],113],0,[[115,37]],[115],[[115,[37,[-1]]],[],113],[[],115],[[],[[111,[116,117]]]],[[[111,[116,117]]],[[111,[[109,[-1]],117]]],113],[[[111,[[109,[-1]],-2]],-3],[[111,[[109,[-1]],[110,[-1,-3]]]]],113,[],[[114,[-1]]]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,[[27,[-2]]],[],[]],[-1,28,[]],[-1,28,[]],[-1,28,[]],[-1,28,[]],[-1,28,[]],[-1,28,[]],[-1,28,[]],[-1,28,[]],[-1,28,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,[[-1,[37,[-2]]],[],[],[]],[[-1,37],[],[]],[[-1,37,[37,[-2]]],[],[],[]],[[-1,37],[],[]],[-1,[],[]],[[-1,[37,[-2]]],[],[],[]]],"c":[],"p":[[3,"ChallengeMid",10],[3,"QueryMid",10],[4,"VarMid",10],[3,"Gate",10],[8,"Clone",693],[8,"Field",694],[8,"Variable",253],[3,"ConstraintSystemMid",10],[3,"Preprocessing",10],[3,"CompiledCircuit",10],[4,"Any",10],[3,"ColumnMid",10],[3,"Cell",10],[15,"tuple"],[4,"Ordering",695],[15,"usize"],[15,"bool"],[3,"Formatter",696],[6,"Result",696],[8,"Debug",696],[8,"Hasher",697],[15,"str"],[4,"Option",698],[15,"u8"],[4,"Expression",253],[3,"String",699],[4,"Result",700],[3,"TypeId",701],[6,"Result",702],[8,"Write",703],[8,"PartialEq",695],[8,"Fn",704],[8,"Iterator",705],[3,"Argument",293],[8,"Sync",706],[8,"Send",706],[15,"slice"],[3,"ExponentialBlocks",707],[3,"UniformBlocks",707],[3,"Chain",708],[8,"IntoParallelIterator",317],[3,"Chunks",709],[3,"Cloned",710],[8,"ParallelIterator",317],[8,"FromParallelIterator",711],[3,"Global",712],[3,"Vec",713],[3,"LinkedList",714],[3,"Copied",715],[8,"Consumer",716],[8,"UnindexedConsumer",716],[3,"Enumerate",717],[3,"Filter",718],[3,"FilterMap",719],[3,"FlatMap",720],[3,"FlatMapIter",721],[3,"Flatten",722],[3,"FlattenIter",723],[3,"Scope",317],[3,"Error",696],[3,"Fold",724],[3,"FoldChunks",725],[3,"FoldChunksWith",726],[3,"FoldWith",724],[3,"Inspect",727],[3,"Interleave",728],[3,"InterleaveShortest",729],[3,"Intersperse",730],[8,"FnOnce",704],[3,"Map",731],[3,"MapInit",732],[3,"MapWith",732],[3,"PanicFuse",733],[3,"ChunkByMut",734],[3,"ChunksExactMut",735],[3,"ChunksMut",735],[3,"RChunksExactMut",736],[3,"RChunksMut",736],[3,"SplitInclusiveMut",737],[3,"SplitMut",737],[8,"Default",738],[8,"ParallelExtend",711],[3,"Positions",739],[8,"Product",740],[3,"Rev",741],[3,"Skip",742],[3,"SkipAny",743],[3,"SkipAnyWhile",744],[3,"StepBy",745],[8,"Sum",740],[3,"Take",746],[3,"TakeAny",747],[3,"TakeAnyWhile",748],[3,"TryFold",749],[8,"Try",750],[3,"TryFoldWith",749],[8,"IndexedParallelIterator",317],[3,"Update",751],[3,"WhileSome",752],[3,"MaxLen",753],[3,"MinLen",753],[8,"ProducerCallback",716],[3,"Zip",754],[3,"ZipEq",755],[3,"AssemblyMid",461],[3,"ArgumentMid",461],[3,"Rotation",497],[3,"Argument",522],[3,"HasCurve",548],[3,"HasMsmEngine",548],[3,"PlonkEngineConfig",548],[3,"PlonkEngine",548],[8,"CurveAffine",756],[8,"MsmAccel",684],[3,"H2cEngine",548],[3,"NoCurve",548],[3,"NoMsmEngine",548],[6,"ExpressionMid",10],[6,"GateMid",10],[6,"ArgumentMid",293],[8,"IntoParallelRefIterator",317],[8,"IntoParallelRefMutIterator",317],[8,"ParallelSliceMut",317],[8,"TryFoldAndReduce",317],[6,"ArgumentMid",522],[3,"H2cMsmCoeffsDesc",548],[3,"H2cMsmBaseDesc",548]]},\ +"halo2_proofs":{"doc":"Legacy halo2 API that wraps the frontend-backend split …","t":"NNNEALLALLLLALLLCLLAALALLLLQQQSIIQISQQSKKKKKLKKKKKKKLLKKFLLKLLKKDDIQIQDDDQDDDLLLLLLLLLLLLLLLLLLLLKLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLMKLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLALLLLLLLLLLLLLLLLLLLLLKLKLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLKLKLMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDLLLLLLLLLLLLLLLLLLLLLLLLLALLLLLLLALLDDLLLLLLLLLLLLLLLLLLLLLDDDDLLLLLLLLLLLLLLLLLLALLLLLLLLNDNNENNNDNNNELLLLLLLLLLLLLLLFLLLALLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLALLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMEDNNNDDDDDMMLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLFFLMLLLLLLLMLLLLLLLLMMMMMMLMMMMLLMMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDDDDLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDNNEEINNNDNIDNNIQNDNDDEEEEDDNNDIQNDNNNNNNNNNNNQINDNNDDNNNDNDNNDDNLLLLLLLLLLLLMLKLLKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLMLLLKLLKLFFLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKKLLLLLLLLLLLLLLLLLLLLLLLLLKLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLMLKLLLLLLLLLLLLLLLMMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLFFFFLLLLMMLLLLLLLLLLLLLLLLLMLMLMLMLLLLLLLMLLLFKLLKLLKLLLLLLLLKLLLLLLMLLLLMLLLLLLLLLLLLLKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMFFLLLLLLLLLLLLLLLLLLLLLLLLKLLMMDQDILLLLLLLLLLLALLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLALALLLKLLLLLKLLLLLLLLLLLLDIQQIQQIIQIQQISSQILLLKKKLLKLLKKLKLLLKLKLLKLLKLLKLLLKKKKLKKKKKLLLLKKLKAAAADDGLLLLLLLLFLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLFLLLDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLAAAADDGLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDDIQIIIIILLLLLLLLLLLLLKLLKLLLLLLLLLLLLKLLLLLLLKLKKLLLLLLLLKLKLKLKLLLLLLLLLLLLLLLLLLKLKL","n":["Processed","RawBytes","RawBytesUnchecked","SerdeFormat","arithmetic","borrow","borrow_mut","circuit","clone","clone_into","deref","deref_mut","dev","drop","fmt","from","halo2curves","init","into","plonk","poly","to_owned","transcript","try_from","try_into","type_id","vzip","AffineExt","Base","Base","CURVE_ID","CurveAffine","CurveExt","CurveExt","Field","ONE","ScalarExt","ScalarExt","ZERO","a","a","b","b","coordinates","cube","double","endo","from_xy","hash_to_curve","invert","is_on_curve","is_on_curve","is_zero","is_zero_vartime","jacobian_coordinates","new_jacobian","parallelize","pow","pow_vartime","random","sqrt","sqrt_alt","sqrt_ratio","square","AssignedCell","Cell","Chip","Config","Layouter","Loaded","NamespacedLayouter","Region","RegionIndex","Root","SimpleFloorPlanner","Table","Value","add","add","add","add","add","add","add","add","add","add","and_then","as_mut","as_ref","assert_if_known","assign","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_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cell","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","cloned","cloned","column","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_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","enable_selector","error_if_known_and","evaluate","evaluate","floor_planner","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from_iter","get_challenge","get_challenge","get_root","get_root","init","init","init","init","init","init","init","init","instance_value","into","into","into","into","into","into","into","into","into_field","invert","known","loaded","map","mul","mul","mul","mul","mul","mul","mul","mul","mul","mul","name_column","namespace","neg","pop_namespace","pop_namespace","push_namespace","push_namespace","region_index","row_offset","square","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","synthesize","to_field","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_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","unknown","unzip","value","value_field","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_challenge","get_root","init","init","into","into","pop_namespace","push_namespace","single_pass","synthesize","try_from","try_from","try_into","try_into","type_id","type_id","v1","vzip","vzip","SimpleFloorPlanner","SingleChipLayouter","assign_region","assign_table","borrow","borrow_mut","constrain_instance","deref","deref_mut","drop","fmt","from","get_challenge","get_root","init","into","new","pop_namespace","push_namespace","try_from","try_into","type_id","vzip","AssignmentPass","MeasurementPass","V1","V1Pass","borrow","borrow","borrow_mut","borrow_mut","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","from","from","init","init","into","into","strategy","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","CellNotAssigned","CircuitLayout","ConstraintNotSatisfied","ConstraintPoisoned","FailureLocation","InRegion","InstanceCellNotAssigned","Lookup","MockProver","OutsideRegion","Permutation","Shuffle","VerifyFailure","advice","advice_values","annotate_column","assert_satisfied","assert_satisfied_at_rows","assign_advice","assign_fixed","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","circuit_dot_graph","clone","clone_into","copy","cost_model","cs","default","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","emit","enable_selector","enter_region","eq","eq","equivalent","equivalent","exit_region","fill_from_row","fixed","fixed_values","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","get_challenge","init","init","init","init","instance","into","into","into","into","mark_equality_cells","metadata","pop_namespace","push_namespace","query_instance","render","run","selectors","show_equality_constraints","show_labels","to_owned","to_string","to_string","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","usable_rows","verify","verify_at_rows","view_height","view_width","vzip","vzip","vzip","vzip","offset","region","row","cell_values","column","column","column","constraint","constraint","gate","gate","gate_offset","gate_offset","location","location","location","location","lookup_index","name","name","offset","region","region","row","shuffle_index","CommitmentScheme","CostOptions","IPA","KZGGWC","KZGSHPLONK","Lookup","ModelCircuit","Permutation","Poly","Shuffle","advice","advice_columns","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","cmp","column_queries","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","drop","drop","drop","drop","drop","drop","drop","eq","eq","equivalent","equivalent","fixed","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from_circuit_to_cost_model_options","from_circuit_to_model_circuit","from_str","gate_degree","init","init","init","init","init","init","init","instance","into","into","into","into","into","into","into","into_model_circuit","k","k","lookup","lookups","max_deg","max_degree","partial_cmp","permutation","permutations","point_sets","rotations","serialize","serialize","shuffle","shuffles","size","to_owned","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","vzip","vzip","vzip","vzip","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","clone","clone_into","clone_into","clone_into","clone_into","cmp","cmp","column_type","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","equivalent","equivalent","equivalent","equivalent","equivalent","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","hash","index","init","init","init","init","init","into","into","into","into","into","new","partial_cmp","partial_cmp","to_owned","to_owned","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","Any","Assigned","Assignment","Backend","BoundsFailure","BoundsFailure","Challenge","Challenge","Circuit","Column","ColumnNotInPermutation","ColumnNotInPermutation","ColumnType","Config","Constant","ConstraintSystem","ConstraintSystemFailure","ConstraintSystemMid","Constraints","Error","ErrorBack","ErrorFront","Expression","FirstPhase","Fixed","Fixed","Fixed","FixedQuery","FloorPlanner","FloorPlanner","Frontend","Instance","Instance","Instance","InstanceTooLarge","InvalidInstances","Negated","NotEnoughColumnsForConstants","NotEnoughRowsAvailable","NotEnoughRowsAvailable","Opening","Other","Other","Params","Phase","Product","ProvingKey","Rational","Scaled","SecondPhase","Selector","Selector","Sum","Synthesis","TableColumn","TableError","ThirdPhase","Transcript","Trivial","VerifyingKey","VirtualCells","Zero","add","add","add","add","add","add","add","add_assign","add_assign","advice_column","advice_column_in","advice_column_phase","advice_column_phase","advice_queries","annotate_column","annotate_lookup_any_column","annotate_lookup_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","challenge_phase","challenge_phase","challenge_usable_after","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","cmp","column_index","column_index","column_type","column_type","complex_selector","complexity","compress_selectors","configure","configure_with_params","constants","copy","create_gate","create_proof","create_proof_with_engine","cube","cur","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","directly_convert_selectors_to_fixed","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","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","evaluate","evaluate","evaluate_lazy","exit_region","expr","expr","fill_from_row","fixed_column","fixed_commitments","fixed_queries","fmt","fmt","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","from","from","from","from_bytes","from_bytes","gates","gates","general_column_annotations","general_column_annotations","get_any_query_index","get_challenge","get_domain","get_vk","hash","hash","hash","hash","hash","hash","hash","hash","hash_into","identifier","index","index","index","index","index","index","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","inner","instance_column","instance_queries","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_pk_custom","keygen_vk","keygen_vk_custom","lookup","lookup_any","lookup_table_column","lookups","lookups","minimum_degree","minimum_rows","mul","mul","mul","mul","mul","mul","mul_assign","mul_assign","neg","neg","neg","new","next","not_enough_rows_available","not_enough_rows_available","num_advice_columns","num_advice_columns","num_challenges","num_challenges","num_fixed_columns","num_fixed_columns","num_instance_columns","num_instance_columns","num_selectors","numerator","params","partial_cmp","partial_cmp","partial_cmp","permutation","permutation","phase","phases","pinned","pk_read","pop_namespace","prev","product","push_namespace","query_advice","query_any","query_cell","query_cell","query_cell","query_cell","query_cell","query_cell","query_cells","query_challenge","query_fixed","query_instance","query_instance","query_selector","read","read","rot","rotation","rotation","selector","set_minimum_degree","shuffle","shuffles","shuffles","source","square","square","sub","sub","sub","sub","sub","sub","sub","sub_assign","sub_assign","sum","synthesize","synthesize","to_bytes","to_bytes","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_sealed","to_sealed","to_sealed","to_string","to_string","to_string","transcript_repr","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","unblinded_advice_column","unblinded_advice_column_in","unblinded_advice_columns","verify_proof","vk_read","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","write","write","current_k","current_k","EvaluationDomain","Output","Rotation","VerificationStrategy","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","cmp","coeff_from_vec","coeff_to_extended","commitment","constant_extended","constant_lagrange","cur","deref","deref","deref_mut","deref_mut","divide_by_vanishing_poly","drop","drop","empty_coeff","empty_extended","empty_lagrange","eq","equivalent","extended_k","extended_len","extended_to_coeff","finalize","fmt","fmt","from","from","get_extended_omega","get_omega","get_omega_inv","get_quotient_poly_degree","hash","init","init","into","into","ipa","k","kzg","l_i_range","lagrange_from_vec","lagrange_to_coeff","new","new","next","partial_cmp","pinned","prev","process","rotate_extended","rotate_omega","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Blind","CommitmentScheme","Curve","Guard","MSM","MSM","MSMAccumulator","Params","ParamsProver","ParamsProver","ParamsVerifier","ParamsVerifier","ParamsVerifier","Prover","QUERY_INSTANCE","QUERY_INSTANCE","Scalar","Verifier","add","add_assign","add_assign","add_msm","append_term","bases","borrow","borrow_mut","check","clone","clone_into","commit","commit_lagrange","create_proof","create_proof_with_engine","default","deref","deref_mut","downsize","drop","empty_msm","eq","equivalent","eval","fmt","from","get_g","init","into","k","mul","mul_assign","mul_assign","n","new","new","new","new","new_params","read","read_params","scalars","scale","to_owned","try_from","try_into","type_id","verifier_params","verify_proof","vzip","write","commitment","msm","multiopen","strategy","IPACommitmentScheme","ParamsIPA","ParamsVerifierIPA","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","commit","commit_lagrange","create_proof_with_engine","deref","deref","deref_mut","deref_mut","downsize","drop","drop","empty_msm","fmt","fmt","from","from","get_g","init","init","into","into","k","n","new","new_params","read","read_params","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","verifier_params","verify_proof","vzip","vzip","write","MSMIPA","add_constant_term","add_msm","add_msm","add_to_g_scalars","add_to_u_scalar","add_to_w_scalar","append_term","bases","borrow","borrow_mut","check","clone","clone_into","deref","deref_mut","drop","eval","fmt","from","init","into","new","scalars","scale","to_owned","try_from","try_into","type_id","vzip","ProverIPA","VerifierIPA","borrow","borrow","borrow_mut","borrow_mut","create_proof_with_engine","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","from","from","init","init","into","into","new","new","try_from","try_from","try_into","try_into","type_id","type_id","verify_proof","vzip","vzip","Accumulator","AccumulatorStrategy","GuardIPA","SingleStrategy","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","compute_g","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","finalize","finalize","fmt","fmt","fmt","fmt","from","from","from","from","g","init","init","init","init","into","into","into","into","new","new","process","process","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","u_packed","use_challenges","use_g","vzip","vzip","vzip","vzip","commitment","msm","multiopen","strategy","KZGCommitmentScheme","ParamsKZG","ParamsVerifierKZG","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","commit","commit_lagrange","deref","deref","deref_mut","deref_mut","downsize","drop","drop","empty_msm","fmt","fmt","from","from","from_parts","g2","get_g","init","init","into","into","k","n","new","new_params","read","read_custom","read_params","s_g2","setup","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","verifier_params","vzip","vzip","write","write_custom","DualMSM","MSMKZG","add_msm","add_msm","append_term","bases","borrow","borrow","borrow_mut","borrow_mut","check","check","clone","clone","clone_into","clone_into","combine_with_base","default","deref","deref","deref_mut","deref_mut","drop","drop","eval","fmt","fmt","from","from","from","init","init","into","into","new","new","scalars","scale","scale","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","ProverGWC","ProverSHPLONK","VerifierGWC","VerifierSHPLONK","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","create_proof_with_engine","create_proof_with_engine","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","fmt","fmt","fmt","fmt","from","from","from","from","init","init","init","init","into","into","into","into","new","new","new","new","new","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","verify_proof","verify_proof","vzip","vzip","vzip","vzip","AccumulatorStrategy","GuardKZG","SingleStrategy","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","finalize","finalize","fmt","fmt","fmt","from","from","from","init","init","init","into","into","into","new","new","new","new","process","process","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","with","Blake2bRead","Blake2bWrite","Challenge255","EncodedChallenge","Input","Transcript","TranscriptRead","TranscriptReadBuffer","TranscriptWrite","TranscriptWriterBuffer","as_challenge_scalar","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","common_point","common_point","common_point","common_scalar","common_scalar","common_scalar","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","finalize","finalize","fmt","fmt","fmt","from","from","from","get_scalar","get_scalar","init","init","init","init","init","init","init","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","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","write_point","write_point","write_scalar","write_scalar"],"q":[[0,"halo2_proofs"],[27,"halo2_proofs::arithmetic"],[64,"halo2_proofs::circuit"],[293,"halo2_proofs::circuit::floor_planner"],[331,"halo2_proofs::circuit::floor_planner::single_pass"],[354,"halo2_proofs::circuit::floor_planner::v1"],[385,"halo2_proofs::dev"],[497,"halo2_proofs::dev::FailureLocation"],[500,"halo2_proofs::dev::VerifyFailure"],[522,"halo2_proofs::dev::cost_model"],[668,"halo2_proofs::dev::metadata"],[788,"halo2_proofs::plonk"],[1444,"halo2_proofs::plonk::ErrorBack"],[1445,"halo2_proofs::plonk::ErrorFront"],[1446,"halo2_proofs::poly"],[1519,"halo2_proofs::poly::commitment"],[1588,"halo2_proofs::poly::ipa"],[1592,"halo2_proofs::poly::ipa::commitment"],[1639,"halo2_proofs::poly::ipa::msm"],[1669,"halo2_proofs::poly::ipa::multiopen"],[1701,"halo2_proofs::poly::ipa::strategy"],[1774,"halo2_proofs::poly::kzg"],[1778,"halo2_proofs::poly::kzg::commitment"],[1829,"halo2_proofs::poly::kzg::msm"],[1878,"halo2_proofs::poly::kzg::multiopen"],[1943,"halo2_proofs::poly::kzg::strategy"],[2003,"halo2_proofs::transcript"],[2091,"core::fmt"],[2092,"core::fmt"],[2093,"core::any"],[2094,"pasta_curves::arithmetic::curves"],[2095,"subtle"],[2096,"core::ops::function"],[2097,"alloc::alloc"],[2098,"alloc::boxed"],[2099,"subtle"],[2100,"core::marker"],[2101,"core::convert"],[2102,"rand_core"],[2103,"core::ops::function"],[2104,"core::fmt"],[2105,"halo2_frontend::circuit::table_layouter"],[2106,"core::iter::traits::collect"],[2107,"core::iter::traits::collect"],[2108,"alloc::string"],[2109,"core::option"],[2110,"alloc::vec"],[2111,"halo2_frontend::circuit::layouter"],[2112,"ff"],[2113,"core::cmp"],[2114,"core::iter::traits::iterator"],[2115,"halo2_frontend::dev"],[2116,"plotters::drawing::area"],[2117,"plotters::drawing::area"],[2118,"core::ops::range"],[2119,"core::cmp"],[2120,"serde::ser"],[2121,"halo2_frontend::plonk::circuit::constraint_system"],[2122,"std::collections::hash::map"],[2123,"std::collections::hash::map"],[2124,"halo2_middleware::zal::impls"],[2125,"halo2_middleware::zal::traits"],[2126,"core::cmp"],[2127,"halo2_middleware::circuit"],[2128,"halo2_backend::plonk::circuit"],[2129,"halo2_backend::helpers"],[2130,"halo2_frontend::plonk::circuit::constraint_system"],[2131,"halo2_frontend::plonk::permutation"],[2132,"halo2_backend::plonk"],[2133,"std::io::error"],[2134,"halo2_frontend::plonk::shuffle"],[2135,"core::error"],[2136,"halo2_frontend::plonk::circuit::expression::sealed"],[2137,"std::io"],[2138,"halo2_backend::poly"],[2139,"core::marker"],[2140,"pairing"],[2141,"halo2_backend::transcript"]],"d":["Curve elements are serialized in compressed form. Field …","Curve elements are serialized in uncompressed form. Field …","Serialization is the same as RawBytes, but no checks are …","This enum specifies how various types are serialized and …","This module provides common utilities, traits and …","","","Traits and structs for implementing circuit components.","","","","","Tools for developing circuits.","","","Returns the argument unchanged.","","","Calls U::from(self).","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.","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","This trait represents an element of a field.","The one element of the field, the multiplicative identity.","The scalar field of this elliptic curve.","The scalar field of this elliptic curve.","The zero element of the field, the additive identity.","Returns the curve constant a.","Returns the curve constant $a$.","Returns the curve constant b.","Returns the curve constant $b$.","Gets the coordinates of this point.","Cubes this element.","Doubles this element.","Apply the curve endomorphism by multiplying the …","Obtains a point given $(x, y)$, failing if it is not on the","Requests a hasher that accepts messages and returns …","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.","Obtains a point given Jacobian coordinates $X : Y : Z$, …","This utility function will parallelize an operation that …","Exponentiates self by exp, where exp is a little-endian …","Exponentiates self by exp, where exp is a little-endian …","Returns an element chosen uniformly at random using a …","Returns the square root of the field element, if it is …","Equivalent to Self::sqrt_ratio(self, one()).","Computes:","Squares this element.","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","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.","Obtains the inner value for assigning into the circuit.","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<&V> to a Value<V> by cloning the contents of …","Maps a Value<&mut V> to a Value<V> by cloning the contents …","The column of this cell.","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.","","","","","","","","","","Enables a selector at the given offset.","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.","Takes each element in the Iterator: if it is …","Queries the value of the given challenge.","","Gets the “root” of this assignment, bypassing the …","","","","","","","","","","Returns the value of the instance column’s cell at …","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.","Provides access to general chip state loaded at the …","Maps a Value<V> to Value<W> by applying a function to the …","","","","","","","","","","","Allows the circuit implementor to name/annotate a Column …","Enters into a namespace.","","Exits out of the existing namespace.","","Creates a new (sub)namespace and enters into it.","","Identifies the region in which this cell resides.","The relative offset of this cell within its region.","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).","","","","","","","","","","","","","","A simple FloorPlanner that performs minimal optimizations.","A Layouter for a single-chip circuit.","","","","","","","","","","Returns the argument unchanged.","","","","Calls U::from(self).","Creates a new single-chip layouter.","","","","","","","Assigns the circuit.","Measures the circuit.","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).","","","","","","","","","","A cell used in an active gate was not assigned to.","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.","An instance cell used in an active gate was not assigned …","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 …","A shuffle input did not exist in its corresponding map.","The reasons why a particular circuit is not satisfied.","Returns the list of Advice Columns used within a …","Return the content of an advice column as assigned by the …","","Panics if the circuit being checked by this MockProver is …","Panics if the circuit being checked by this MockProver is …","","","","","","","","","","","Builds a dot graph string representing the given circuit.","","","","The cost estimator takes high-level parameters for a …","Returns the constraint system","","","","","","","","","","","","","","Emits this failure in pretty-printed format to stderr.","","","","","","","","","Returns the list of Fixed Columns used within a MockProver …","Return the content of a fixed column as assigned by the …","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","Returns the list of Instance Columns used within a …","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.","","","","Renders the given circuit on the given drawing area.","Runs a synthetic keygen-and-prove operation on the given …","Returns the list of Selector Columns used within a …","Draws red lines between equality-constrained cells.","Sets the visibility of region labels.","","","","","","","","","","","","","","","","Returns the usable rows","Returns Ok(()) if this MockProver is satisfied, or a list …","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 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 index of the active gate.","The offset (relative to the start of the region) at which …","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 lookup is not satisfied.","The location at which the permutation is not satisfied.","The index of the lookup that is not satisfied. These …","The name of the lookup that is not satisfied.","The name of the lookup that is not satisfied.","The offset (relative to the start of the region) at which …","The region in which this cell should be assigned.","The region in which this gate was activated.","The absolute row at which this cell should be assigned.","The index of the lookup that is not satisfied. These …","Supported commitment schemes","Options to build a circuit specification to measure the …","Inner Product Argument commitment scheme","KZG with GWC19 mutli-open strategy","KZG with BDFG20 mutli-open strategy","Structure holding the Lookup related data for circuit …","High-level specifications of an abstract circuit.","Number of permutation enabled columns","Structure holding polynomial related data for benchmarks","Structure holding the Shuffle related data for circuit …","An advice column with the given rotations. May be repeated.","Number of advice columns.","","","","","","","","","","","","","","","","","","","","","","","","Number of distinct column queries across all gates.","","","","","","","","","","","","","","","","","","","","","","","","","","","","A fixed column with the given rotations. May be repeated.","","","","","","","","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.","Given a Plonk circuit, this function returns CostOptions","Given a Plonk circuit, this function returns a ModelCircuit","","Maximum degree of the custom gates.","","","","","","","","An instance column with the given rotations. May be …","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).","Convert CostOptions to ModelCircuit. The proof sizè is …","2^K bound on the number of rows.","Power-of-2 bound on the number of rows in the circuit.","A lookup over N columns with max input degree I and max …","Number of lookup arguments.","Maximum degree of the circuit.","Maximum degree of the constraint system.","","A permutation over N columns. May be repeated.","Equality constraint enabled columns.","Number of distinct sets of points in the multiopening …","Rotations for the given polynomial","","","A shuffle over N columns with max input degree I and max …","Number of shuffle arguments","Size of the proof for the circuit","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A column with an index and type","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 …","","","","","","","","","","","","","","","","","","","","","The type of the column.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","","","","","The index of the column.","","","","","","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 …","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 …","Backend error case","Out of bounds index passed to a backend","Out of bounds index passed to a backend","A challenge squeezed from transcript after advice columns …","This is a challenge","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 …","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","This is a description of the circuit environment, such as …","The constraint system is not satisfied.","This is a description of the circuit environment, such as …","A set of polynomial constraints with a common selector.","This is an error that could occur during proving or …","This is an error that could occur during proving.","This is an error that could occur during circuit synthesis.","Low-degree expression representing an identity that must …","First phase","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 …","Frontend error case","An instance column","An Instance variant","This is an instance (external) column queried at a certain …","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.","k is too small for the given circuit.","Opening error","Generic error not covered by previous cases","Generic error not covered by previous cases","Optional circuit configuration parameters. Requires the …","Phase of advice column","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","Second phase","A selector, representing a fixed boolean value per row of …","This is a virtual selector","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.","An error relating to a lookup table.","Third phase","Transcript error","A value that does not require inversion to evaluate.","This is a verifying key which allows for the verification …","Exposes the “virtual cells” that can be queried while …","The field element zero.","","","","","","","","","","Allocate a new advice column at FirstPhase","Allocate a new advice column in given phase","Returns phase of advice columns","Contains the phase for each advice column. Should have …","Returns advice queries","Allows the developer to include an annotation for an …","Annotate an Instance column.","Annotate a Lookup column.","Assign an advice column value (witness)","Assign a fixed value","Compute the number of blinding factors necessary to …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns phase of challenges","Contains the phase for each challenge. Should have same …","Requests a challenge that is usable after the given phase.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Column index","Column index","Type of this column.","","Allocate a new complex selector that can appear anywhere …","Approximate the computational complexity of this …","This will compress selectors together depending on their …","The circuit is given an opportunity to describe the exact …","The circuit is given an opportunity to describe the exact …","Returns constants","Assign two cells to have the same value","Creates a new gate.","This creates a proof for the provided circuit when given …","This creates a proof for the provided circuit when given …","Cubes this element.","Return expression from column at the current row","","Compute the degree of the constraint system (the maximum …","Compute the degree of this polynomial","Returns the denominator, if non-trivial.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Does not combine selectors and directly replaces them …","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 …","Evaluate the polynomial lazily using the provided closures …","Exits the current region.","Return expression from selector","Return Expression","Fills a fixed column starting from the given row with …","Allocate a new fixed column","Returns commitments of fixed polynomials","Returns fixed queries","","","","","","","","","","","","","","","","","","","","","","","","","","","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.","Reads a verification key from a slice of bytes using …","Reads a proving key from a slice of bytes using Self::read.","Returns gates","","Returns general column annotations","","","Queries the value of the given challenge.","Get the underlying EvaluationDomain.","Get the underlying VerifyingKey.","","","","","","","","","Hashes a verification key into a transcript.","Identifier for this expression. Expressions with identical …","Index of this column.","Returns index of this selector","Index of this challenge.","","Query index","","","","","","","","","","","","","","","","","","","","","","","","","Returns inner column","Allocate a new instance column","Returns instance queries","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 ProvingKey from an instance of Circuit.","Generate a VerifyingKey from an instance of Circuit. By …","Generate a VerifyingKey from an instance of Circuit.","Add a lookup argument for some input expressions and table …","Add a lookup argument for some input expressions and table …","Allocates a new fixed column that can be used in a lookup …","Returns lookup arguments","","","Returns the minimum necessary rows that need to exist in …","","","","","","","","","","","","","Return expression from column at the next row","Constructs an Error::NotEnoughRowsAvailable.","Constructs an Error::NotEnoughRowsAvailable.","Returns number of advice columns","","Returns number of challenges","","Returns number of fixed columns","","Returns number of instance columns","","Returns number of selectors","Returns the numerator.","Returns a reference to the parameters that should be used …","","","","Returns permutation argument","","Phase of this challenge.","Returns the list of phases","Obtains a pinned representation of this verification key …","Reads a proving key from a buffer. Does so by reading …","Exits out of the existing namespace.","Return expression from column at the previous row","","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","Return expression from cell","","Return expression from column at a relative position","","","","Make side effects","Query a challenge","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.","Reads a verification key from a buffer.","Reads a proving key from a buffer. Does so by reading …","Return expression from column at the specified rotation","Rotation of this query","Rotation of this query","Allocate a new (simple) selector. Simple selectors cannot …","Sets the minimum degree required by the circuit, which can …","Add a shuffle argument for some input expressions and …","Returns shuffle arguments","","","Squares this element.","Square this expression.","","","","","","","","","","","Given the provided cs, synthesize the given circuit.","Given the provided cs, synthesize the circuit. The …","Writes a verifying key to a vector of bytes using …","Writes a proving key to a vector of bytes using Self::write…","","","","","","","","","","","","","","","","","","","","","","Returns representative of this VerifyingKey in transcripts","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Allocate a new unblinded advice column at FirstPhase","Allocate a new unblinded advice column in given phase. …","Contains the index of each advice column that is left …","Returns a boolean indicating whether or not the proof is …","Reads a verification key from a buffer.","","","","","","","","","","","","","","","","","","","","","","","","Constructs a set of constraints that are controlled by the …","Returns a copy of this circuit with no witness values …","Writes a verifying key to a buffer.","Writes a proving key to a buffer.","The current value of k being used.","The current value of k being used.","This structure contains precomputed constants and other …","The output type of this verification strategy after …","Describes the relative rotation of a vector. Negative …","Trait representing a strategy for verifying Halo 2 proofs.","","","","","","","","","","Obtains a polynomial in coefficient form when given a …","This takes us from an n-length coefficient vector into a …","Generic commitment scheme structures","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","Get the size of the extended domain","This takes us from the extended evaluation domain and gets …","Finalizes the batch and checks its validity.","","","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).","Inner product argument commitment scheme","Get the size of the domain","KZG commitment scheme","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 …","Creates new verification strategy instance","This constructs a new evaluation domain object based on …","The next location in the evaluation domain","","Obtain a pinned version of this evaluation domain; a …","The previous location in the evaluation domain","Obtains an MSM from the verifier strategy and yields back …","Rotate the extended domain polynomial over the original …","Multiplies a value by some power of $\\\\omega$, essentially …","","","","","","","","","","","Wrapper type around a blinding factor.","Defines components of a commitment scheme.","Elliptic curve used to commit the application and witnesses","Unfinalized verification result. This is returned in …","Multiscalar multiplication engine","Multiscalar multiplication engine","Accumulator for compressed verification","Parameters for circuit synthesis and prover parameters.","Parameters for circuit synthesis and prover parameters.","Constant prover parameters","Verifier specific functionality with circuit constraints","Constant verifier parameters","Constant verifier parameters.","Common multi-open prover interface for various commitment …","Query instance or not","Query instance or not","Application field of this commitment scheme","Common multi-open verifier interface for various …","","","","Add another multiexp into this one","Add arbitrary term (the scalar and the point)","Return base points","","","Perform multiexp and check that it results in zero","","","This computes a commitment to a polynomial described by …","This commits to a polynomial using its evaluations over …","Create a multi-opening proof","Create a multi-opening proof","","","","Downsize Params with smaller k.","","Generates an empty multiscalar multiplication struct using …","","","Perform multiexp and return the result","","Returns the argument unchanged.","Getter for g generators","","Calls U::from(self).","Logarithmic size of the circuit","","","","Size of the circuit","Returns new instance of parameters","Creates new prover instance","Creates new verifier instance","Given rng creates new blinding scalar","Wrapper for parameter generator","Reads params from a buffer.","Wrapper for parameter reader","Scalars","Scale all scalars in the MSM by some scaling factor","","","","","Returns verification parameters.","Process the proof and return unfinished result named Guard","","Writes params to a buffer.","This module contains an implementation of the polynomial …","Multiscalar multiplication engines","IPA multi-open scheme This module contains an optimisation …","Strategies used with KZG scheme","Concrete IPA commitment scheme","Public parameters for IPA commitment scheme","Verifier parameters","","","","","","","This computes a commitment to a polynomial described by …","This commits to a polynomial using its evaluations over …","Create a polynomial commitment opening proof for the …","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","","","Initializes parameters for the curve, given a random …","","Reads params from a buffer.","","","","","","","","","","Checks to see if the proof represented within transcript …","","","Writes params to a buffer.","A multiscalar multiplication in the polynomial commitment …","Add a value to the first entry of g_scalars.","Add another multiexp into this one","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","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","Given verifier parameters Creates an empty multi scalar …","","","","","","","","IPA multi-open prover","IPA multi-open verifier","","","","","Create a multi-opening proof","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","An accumulator instance consisting of an evaluation claim …","A verifier that checks multiple proofs in a batch.","Wrapper for verification accumulator","A verifier that checks single proof","","","","","","","","","","","","","Computes G = ⟨s, params.g⟩","","","","","","","","","","","","","Finalizes the batch and checks its validity.","Finalizes the batch and checks its validity.","","","","","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 …","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","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","","","","","KZG commitment scheme","Multiscalar multiplication engines","KZG multi-open scheme","Strategies used with KZG scheme","Umbrella commitment scheme construction for all KZG …","These are the public parameters for the polynomial …","KZG multi-open verification parameters","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Initializes parameters for the curve through existing …","Returns gernerator on G2","","","","Calls U::from(self).","Calls U::from(self).","","","","","Reads params from a buffer.","Reads params from a buffer.","","Returns first power of secret on G2","Initializes parameters for the curve, draws toxic secret …","","","","","","","","","","","Writes params to a buffer.","Writes parameters to buffer","Two channel MSM accumulator","A multiscalar multiplication in the polynomial commitment …","","Add another multiexp into this one","","","","","","","","Performs final pairing check with given verifier params …","","","","","Prepares all scalars in the MSM to linear combination","","","","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","Create an empty MSM instance","Create a new two channel MSM accumulator instance","","","Scale all scalars in the MSM by some scaling factor","","","","","","","","","","","Concrete KZG prover with GWC variant","Concrete KZG prover with SHPLONK variant","Concrete KZG verifier with GWC variant","Concrete KZG multiopen verifier with SHPLONK variant","","","","","","","","","Create a multi-opening proof","Create a multi-opening proof","","","","","","","","","","","","","","","","","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).","","","","Given parameters creates new prover instance","","","","","","","","","","","","","","","Verify a multi-opening proof","","","","","A verifier that checks multiple proofs in a batch","Wrapper for linear verification accumulator","A verifier that checks a single proof","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Constructs an empty batch verifier","","","Constructs an empty batch verifier","","","","","","","","","","","","","","","","","","Constructs and initialized new batch verifier","We will replace BLAKE2b with an algebraic hash function in …","We will replace BLAKE2b with an algebraic hash function in …","A 255-bit 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 …","Initializes transcript at verifier side.","Transcript view from the perspective of a prover that has …","Manages beginning and finishing of transcript pipeline.","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.","Get a scalar field element from an encoded challenge.","","Initialize a transcript given an input buffer.","Initialize a transcript given an output buffer.","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).","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":[1,1,1,0,0,1,1,0,1,1,1,1,0,1,1,1,0,1,1,0,0,1,0,1,1,1,1,184,184,108,184,0,0,108,0,25,184,108,25,184,108,184,108,108,25,25,184,108,184,25,184,108,25,25,184,184,0,25,25,25,25,25,25,25,0,0,0,185,0,185,0,0,0,38,0,0,0,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,28,28,28,34,28,38,37,38,37,45,23,40,39,31,28,34,37,45,23,40,39,31,28,34,37,31,23,40,39,31,23,40,39,31,23,23,39,185,28,28,38,37,23,23,31,23,23,45,23,40,40,39,31,28,34,37,45,23,40,39,31,28,34,37,23,45,23,40,39,31,28,34,37,37,28,23,23,31,0,45,23,40,39,31,28,34,37,45,23,23,40,40,39,31,28,28,34,34,37,23,38,37,38,37,45,23,40,39,31,28,34,37,28,45,23,40,39,31,28,34,37,23,23,23,185,23,23,23,23,23,23,23,23,23,23,23,28,38,23,38,37,38,37,39,39,23,23,23,23,23,23,23,23,23,23,23,45,23,23,40,39,31,23,23,45,23,40,39,31,28,34,37,45,23,40,39,31,28,34,37,45,23,40,39,31,28,34,37,23,23,31,31,45,23,40,39,31,28,34,37,23,0,0,61,61,62,61,62,61,61,62,61,62,61,62,61,62,61,62,61,61,61,62,61,62,61,61,61,0,62,62,61,62,61,62,61,0,62,61,0,0,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,0,0,0,0,64,65,64,65,64,65,64,65,64,65,64,65,64,65,64,65,64,65,0,64,65,64,65,64,65,64,65,74,0,74,74,0,71,74,74,0,71,74,74,0,66,66,66,66,66,66,66,71,74,73,66,71,74,73,66,0,71,71,66,0,66,73,71,74,73,66,71,74,73,66,71,74,73,66,74,66,66,71,74,71,74,66,66,66,66,71,71,74,74,73,66,71,74,73,66,66,71,74,73,66,66,71,74,73,66,73,0,66,66,66,73,66,66,73,73,71,71,74,71,74,73,66,71,74,73,66,71,74,73,66,66,66,66,73,73,71,74,73,66,186,186,187,188,189,190,191,188,192,189,190,189,190,188,193,194,191,193,193,194,189,189,190,190,194,0,0,89,89,89,0,0,0,0,0,90,88,89,90,82,83,84,85,88,89,90,82,83,84,85,88,82,83,84,85,82,83,84,85,82,88,89,90,82,83,84,85,88,89,90,82,83,84,85,88,84,88,89,90,82,83,84,85,88,89,82,89,82,90,89,90,82,83,84,85,88,89,90,82,83,84,85,88,0,0,82,90,89,90,82,83,84,85,88,90,89,90,82,83,84,85,88,90,90,88,90,88,88,90,82,90,88,88,82,84,88,90,88,88,82,83,84,85,89,90,82,83,84,85,88,89,90,82,83,84,85,88,89,90,82,83,84,85,88,89,90,82,83,84,85,88,0,0,0,0,0,92,96,93,94,95,92,96,93,94,95,92,93,94,95,92,93,94,95,92,96,92,92,96,93,94,95,92,96,93,94,95,92,96,93,94,95,92,96,93,94,95,92,96,93,94,95,92,92,96,96,93,93,94,94,95,95,92,92,96,96,96,96,93,93,94,94,95,95,95,95,95,92,92,92,96,93,94,95,92,96,93,94,95,92,92,96,92,93,94,95,92,96,93,94,95,92,96,93,94,95,92,96,93,94,95,92,96,93,94,95,92,96,93,94,95,0,52,102,0,0,0,112,119,27,0,102,0,0,119,27,0,59,102,0,119,0,0,0,0,0,0,0,0,52,102,0,0,59,112,0,52,102,119,119,102,27,119,27,119,119,27,59,0,102,0,24,102,0,0,102,102,27,0,27,0,119,24,0,0,24,24,24,24,24,24,24,102,24,24,72,72,72,106,72,57,72,72,57,57,72,112,106,52,119,107,109,24,120,72,122,30,123,124,125,44,111,35,51,102,29,36,33,27,112,106,52,119,107,109,24,120,72,122,30,123,124,125,44,111,35,51,102,29,36,33,27,72,106,72,106,52,107,109,24,72,30,44,111,35,51,102,29,36,33,106,52,107,109,24,72,30,44,111,35,51,102,29,36,33,52,30,35,111,111,30,30,72,102,72,59,59,72,57,72,0,0,24,30,72,72,102,24,112,106,52,119,107,109,24,120,72,122,30,123,124,125,44,111,35,51,102,29,36,33,27,112,106,52,119,107,109,24,120,72,122,30,123,124,125,44,111,35,51,102,29,36,33,27,72,24,112,106,52,119,107,109,24,120,72,122,30,123,124,125,44,111,35,51,102,29,36,33,27,44,72,72,57,57,52,24,30,44,111,35,51,102,29,36,33,52,24,30,44,111,35,51,102,29,36,33,24,102,102,57,44,51,57,72,107,72,112,112,106,52,119,119,107,109,24,120,72,122,30,123,124,125,44,111,35,51,102,29,36,33,27,27,112,112,112,106,106,52,52,52,52,119,119,107,109,24,24,24,24,24,120,72,122,30,30,30,30,30,123,124,125,44,111,35,51,51,102,29,36,33,27,107,109,72,106,72,106,72,57,107,109,52,30,44,35,51,29,36,33,107,102,30,44,51,30,111,51,112,106,52,119,107,109,24,120,72,122,30,123,124,125,44,111,35,51,102,29,36,33,27,35,72,72,112,106,52,119,107,109,24,120,72,122,30,123,124,125,44,111,35,51,102,29,36,33,27,120,24,44,24,0,0,0,0,72,72,72,72,106,106,72,24,24,24,24,102,102,24,24,24,24,102,30,30,119,27,72,106,72,106,72,106,72,106,72,24,59,52,30,35,72,106,51,72,107,0,57,30,102,57,122,122,110,52,30,29,36,33,102,122,122,57,122,122,107,109,30,111,111,72,72,72,72,106,119,24,102,24,24,24,24,24,24,102,24,24,102,195,59,107,109,106,52,107,109,24,72,30,44,111,35,51,102,29,36,33,123,124,125,112,119,27,107,112,106,52,119,107,109,24,120,72,122,30,30,30,30,123,124,125,44,111,35,51,102,29,36,33,27,112,106,52,119,107,109,24,120,72,122,30,123,124,125,44,111,35,51,102,29,36,33,27,112,106,52,119,107,109,24,120,72,122,30,123,124,125,44,111,35,51,102,29,36,33,27,72,72,106,0,0,112,106,52,119,107,109,24,120,72,122,30,123,124,125,44,111,35,51,102,29,36,33,27,120,59,107,109,196,197,0,145,0,0,105,131,105,131,105,131,105,131,105,131,131,0,131,131,105,105,131,105,131,131,105,131,131,131,131,105,105,131,131,131,145,105,131,105,131,131,131,131,131,105,105,131,105,131,0,131,0,131,131,131,145,131,105,105,131,105,145,131,131,105,131,105,131,105,131,105,131,105,131,0,0,143,144,0,134,144,0,0,143,0,143,198,0,199,144,143,0,154,154,154,200,200,200,154,154,200,154,154,198,134,199,199,154,154,154,134,154,134,154,154,200,154,154,198,154,154,134,154,154,154,134,198,199,144,154,143,134,143,200,200,154,154,154,154,198,144,154,134,0,0,0,0,0,0,0,157,159,157,159,157,157,157,157,0,157,159,157,159,157,157,159,157,157,159,157,159,157,157,159,157,159,157,157,157,159,157,159,157,157,159,157,159,157,159,157,0,157,159,157,0,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,0,0,161,162,161,162,161,161,162,161,162,161,162,161,162,161,162,161,162,161,162,161,162,161,162,161,162,161,162,162,161,162,0,0,0,0,160,163,164,165,160,163,164,165,160,163,160,163,160,160,163,164,165,160,163,164,165,160,163,164,165,164,165,160,163,164,165,160,163,164,165,163,160,163,164,165,160,163,164,165,164,165,164,165,160,163,160,163,164,165,160,163,164,165,160,163,164,165,163,160,160,160,163,164,165,0,0,0,0,0,0,0,166,169,166,169,166,166,166,166,166,169,166,169,166,166,169,166,166,169,166,169,166,166,166,166,169,166,169,166,166,166,169,166,166,169,166,166,166,166,169,166,169,166,169,166,166,169,166,166,0,0,168,170,168,168,168,170,168,170,168,170,168,170,168,170,168,168,168,170,168,170,168,170,168,168,170,168,170,170,168,170,168,170,168,170,168,168,170,168,170,168,170,168,170,168,170,168,170,0,0,0,0,173,175,174,176,173,175,174,176,173,174,173,175,174,176,173,175,174,176,173,175,174,176,173,175,174,176,173,175,174,176,173,175,174,176,173,175,174,176,173,175,174,174,176,173,175,174,176,173,175,174,176,173,175,174,176,175,176,173,175,174,176,0,0,0,177,178,179,177,178,179,177,178,179,177,178,179,177,178,179,177,178,179,177,178,179,178,179,177,178,179,177,178,179,177,178,179,177,178,179,178,178,179,179,178,179,177,178,179,177,178,179,177,178,179,177,178,179,177,178,179,178,0,0,0,0,113,0,0,0,0,0,113,181,182,183,181,182,183,181,182,183,181,182,183,133,181,182,133,181,182,181,182,183,183,181,182,183,181,182,183,201,182,181,182,183,181,182,183,113,183,202,201,181,181,182,182,183,181,182,183,113,183,146,181,146,181,133,181,182,133,181,182,183,181,182,183,181,182,183,181,182,183,181,182,183,114,182,114,182],"f":[0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],0,[1,1],[[-1,-2],2,[],[]],[3,-1,[]],[3,-1,[]],0,[3,2],[[1,4],[[6,[2,5]]]],[-1,-1,[]],0,[[],3],[-1,-2,[],[]],0,0,[-1,-2,[],[]],0,[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[-1,[[9,[[8,[-1]]]]],[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],[[9,[-1]]],[]],[10,[[13,[11,12]]]],[-1,[[9,[-1]]],[]],[-1,14,[]],[-1,14,[]],[-1,14,[]],[-1,15,[]],[-1,2,[]],[[],[[9,[-1]]],[]],[[[16,[-1]],-2],2,17,[11,17,18,19]],[[-1,-2],-1,[],[[21,[[16,[20]]]]]],[[-1,-2],-1,[],[[21,[[16,[20]]]]]],[-1,-2,22,[]],[-1,[[9,[-1]]],[]],[-1,[[2,[14,-1]]],[]],[[-1,-1],[[2,[14,-1]]],[]],[-1,-1,[]],0,0,0,0,0,0,0,0,0,0,0,0,0,[[[23,[-1]],[23,[-1]]],[],[]],[[[23,[-1]],[23,[-1]]],[],[]],[[[23,[-1]],[23,[-1]]],[],[]],[[[23,[[24,[-1]]]],[23,[-1]]],[],25],[[[23,[-1]],[23,[-1]]],[],[]],[[[23,[[24,[-1]]]],[23,[-1]]],[],25],[[[23,[[24,[-1]]]],-1],[],25],[[[23,[-1]],[23,[-1]]],[],[]],[[[23,[[24,[-1]]]],-1],[],25],[[[23,[-1]],[23,[-1]]],[],[]],[[[23,[-1]],-2],[[23,[-3]]],[],26,[]],[[[23,[-1]]],[[23,[-1]]],[]],[[[23,[-1]]],[[23,[-1]]],[]],[[[23,[-1]],-2],2,[],26],[[[23,[-1]]],[[6,[-1,27]]],[]],[[[28,[-1]],-2,[30,[29]],3,-3],[[6,[[31,[-4,-1]],27]]],25,11,32,[]],[[[28,[-1]],-2,[30,[29]],3,-3],[[6,[[31,[-3,-1]],27]]],25,11,[]],[[[28,[-1]],-2,[30,[33]],3,[30,[29]],3],[[6,[[31,[-1,-1]],27]]],25,11],[[[34,[-1]],-2,35,3,-3],[[6,[2,27]]],25,11,32],[[[28,[-1]],-2,[30,[36]],3,-3],[[6,[[31,[-4,-1]],27]]],25,11,32,[]],[[-1,-2,-3],[[6,[-4,27]]],[],11,32,[]],[[[37,[-1,-2]],-3,-4],[[6,[-5,27]]],25,[[38,[-1]]],11,32,[]],[[-1,-2,-3],[[6,[2,27]]],[],11,32],[[[37,[-1,-2]],-3,-4],[[6,[2,27]]],25,[[38,[-1]]],11,32],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[31,[-1,-2]]],39,[],25],[[[23,[-1]]],[[23,[-1]]],19],[40,40],[39,39],[[[31,[-1,-2]]],[[31,[-1,-2]]],19,[19,25]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[[23,[-1]]],[[23,[-1]]],19],[[[23,[-1]]],[[23,[-1]]],19],0,[-1,[],[]],[[[28,[-1]],39,-2],[[6,[2,27]]],25,[[41,[[24,[-1]]]]]],[[[28,[-1]],39,39],[[6,[2,27]]],25],[[-1,39,[30,[33]],3],[[6,[2,27]]],[]],[[[37,[-1,-2]],39,[30,[33]],3],[[6,[2,27]]],25,[[38,[-1]]]],[[[23,[-1]]],[[23,[-1]]],42],[[[23,[-1]]],[[23,[-1]]],42],[[[31,[-1,-2]],-3,[28,[-2]],[30,[29]],3],[[6,[[31,[-1,-2]],27]]],19,25,11],[[[23,[-2]]],[[23,[[24,[-1]]]]],25,[[43,[[24,[-1]]]]]],[[],[[23,[-1]]],[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[40],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[[[23,[-2]]],[[23,[[24,[-1]]]]],25,[[43,[[24,[-1]]]]]],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[[[37,[-1,-2]]],2,25,[[38,[-1]]]],[[[28,[-1]],-2,44,3],[[6,[2,27]]],25,11],[[[23,[-1]],-2],[[6,[2,27]]],[],26],[[[23,[[24,[-1]]]]],[[23,[-1]]],25],[[[31,[[24,[-1]],-1]]],[[31,[-1,-1]]],25],0,[[45,4],[[6,[2,5]]]],[[[23,[-1]],4],[[6,[2,5]]],46],[[40,4],[[6,[2,5]]]],[[39,4],[[6,[2,5]]]],[[[31,[-1,-2]],4],[[6,[2,5]]],46,[46,25]],[[[28,[-1]],4],[[6,[2,5]]],[46,25]],[[[34,[-1]],4],[[6,[2,5]]],[46,25]],[[[37,[-1,-2]],4],[[6,[2,5]]],[46,25],[46,[38,[-1]]]],[-1,-1,[]],[-1,-1,[]],[[[23,[-1]]],[[23,[[24,[-1]]]]],25],[-1,-1,[]],[3,40],[-1,-1,[]],[-1,-1,[]],[47,[[28,[-1]]],25],[-1,-1,[]],[-1,-1,[]],[48,[[34,[-1]]],25],[-1,-1,[]],[-1,[[23,[-3]]],49,[],[[50,[-2]]]],[[-1,51],[[23,[-2]]],[],[]],[[[37,[-1,-2]],51],[[23,[-1]]],25,[[38,[-1]]]],[-1,[],[]],[[[37,[-1,-2]]],[],25,[[38,[-1]]]],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[[28,[-1]],[30,[33]],3],[[6,[[23,[-1]],27]]],25],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[23,[-2]]],[[23,[[24,[-1]]]]],25,[[41,[[24,[-1]]]]]],[[[23,[-2]]],[[23,[[24,[-1]]]]],25,[[43,[[24,[-1]]]]]],[-1,[[23,[-1]]],[]],[-1,[],[]],[[[23,[-1]],-2],[[23,[-3]]],[],26,[]],[[[23,[[24,[-1]]]],-1],[],25],[[[23,[-1]],[23,[-1]]],[],[]],[[[23,[[24,[-1]]]],[23,[-1]]],[],25],[[[23,[-1]],[23,[-1]]],[],[]],[[[23,[-1]],[23,[-1]]],[],[]],[[[23,[[24,[-1]]]],[23,[-1]]],[],25],[[[23,[[24,[-1]]]],-1],[],25],[[[23,[-1]],[23,[-1]]],[],[]],[[[23,[-1]],[23,[-1]]],[],[]],[[[23,[-1]],[23,[-1]]],[],[]],[[[28,[-1]],-2,-3],2,25,11,[[41,[[30,[52]]]]]],[[-1,-2],[[37,[-3]]],[],26,[]],[[[23,[-1]]],[],53],[[-1,[55,[54]]],2,[]],[[[37,[-1,-2]],[55,[54]]],2,25,[[38,[-1]]]],[[-1,-2],2,[],26],[[[37,[-1,-2]],-3],2,25,[[38,[-1]]],26],0,0,[[[23,[-2]]],[[23,[[24,[-1]]]]],25,[[43,[[24,[-1]]]]]],[[[23,[[24,[-1]]]],[23,[-1]]],[],25],[[[23,[-1]],[23,[-1]]],[],[]],[[[23,[-1]],[23,[-1]]],[],[]],[[[23,[[24,[-1]]]],-1],[],25],[[[23,[[24,[-1]]]],-1],[],25],[[[23,[[24,[-1]]]],[23,[-1]]],[],25],[[[23,[-1]],[23,[-1]]],[],[]],[[[23,[-1]],[23,[-1]]],[],[]],[[[23,[-1]],[23,[-1]]],[],[]],[[[23,[-1]],[23,[-1]]],[],[]],[[-2,-3,[56,[[30,[36]],12]]],[[6,[2,27]]],25,[[57,[-1]],58],[[59,[-1]]]],[[[23,[-1]]],[[23,[[24,[-2]]]]],[],25],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[23,[[60,[-1]]]]],[[60,[[23,[-1]]]]],42],[[[23,[-1]],3],[[56,[[23,[-2]],12]]],49,[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[[],[[23,[-1]]],[]],[[[23,[[2,[-1,-2]]]]],[[2,[[23,[-1]],[23,[-2]]]]],[],[]],[[[31,[-1,-2]]],[[23,[-1]]],[],25],[[[31,[-1,-2]]],[[23,[[24,[-2]]]]],[],25],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[23,[-1]],[23,[-2]]],[[23,[[2,[-1,-2]]]]],[],[]],0,0,[[[61,[-1,-2]],-3,-4],[[6,[-5,27]]],25,[[57,[-1]],58],11,32,[]],[[[61,[-1,-2]],-3,-4],[[6,[2,27]]],25,[[57,[-1]],58],11,32],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[61,[-1,-2]],39,[30,[33]],3],[[6,[2,27]]],25,[[57,[-1]],58]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,2],[3,2],[[62,4],[[6,[2,5]]]],[[[61,[-1,-2]],4],[[6,[2,5]]],[46,25],[46,[57,[-1]]]],[-1,-1,[]],[-1,-1,[]],[[[61,[-1,-2]],51],[[23,[-1]]],25,[[57,[-1]],58]],[[[61,[-1,-2]]],[],25,[[57,[-1]],58]],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],[[[61,[-1,-2]],[55,[54]]],2,25,[[57,[-1]],58]],[[[61,[-1,-2]],-3],2,25,[[57,[-1]],58],26],0,[[-2,-3,[56,[[30,[36]],12]]],[[6,[2,27]]],25,[[57,[-1]],58],[[59,[-1]]]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],0,[-1,-2,[],[]],[-1,-2,[],[]],0,0,[[[63,[-1,-2]],-3,-4],[[6,[-5,27]]],25,[[57,[-1]],58],11,32,[]],[[[63,[-1,-2]],-3,-4],[[6,[2,27]]],25,[[57,[-1]],58],11,32],[-1,-2,[],[]],[-1,-2,[],[]],[[[63,[-1,-2]],39,[30,[33]],3],[[6,[2,27]]],25,[[57,[-1]],58]],[3,-1,[]],[3,-1,[]],[3,2],[[[63,[-1,-2]],4],[[6,[2,5]]],25,[[57,[-1]]]],[-1,-1,[]],[[[63,[-1,-2]],51],[[23,[-1]]],25,[[57,[-1]],58]],[[[63,[-1,-2]]],[],25,[[57,[-1]],58]],[[],3],[-1,-2,[],[]],[[-2,[56,[[30,[36]],12]]],[[6,[[63,[-1,-2]],27]]],25,[[57,[-1]]]],[[[63,[-1,-2]],[55,[54]]],2,25,[[57,[-1]],58]],[[[63,[-1,-2]],-3],2,25,[[57,[-1]],58],26],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,-2,[],[]],0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,2],[3,2],[[64,4],[[6,[2,5]]]],[[[65,[-1,-2]],4],[[6,[2,5]]],[46,25],[46,[57,[-1]]]],[-1,-1,[]],[-1,-1,[]],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],0,[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,[[[66,[-1]]],[[56,[[56,[[67,[-1]],12]],12]]],[68,69]],[[[66,[-1]],[30,[29]]],[[16,[[67,[-1]]]]],[68,69]],[[[66,[-1]],-2,[30,[52]]],2,25,26],[[[66,[-1]]],2,[68,69]],[[[66,[-1]],-2,-2],2,[68,69],[19,70]],[[[66,[-1]],-2,[30,[29]],3,-3],[[6,[2,27]]],25,26,26],[[[66,[-1]],-2,[30,[36]],3,-3],[[6,[2,27]]],25,26,26],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-2,54,25,[[59,[-1]]]],[71,71],[[-1,-2],2,[],[]],[[[66,[-1]],[30,[52]],3,[30,[52]],3],[[6,[2,27]]],25],0,[[[66,[-1]]],[[72,[-1]]],[68,69]],[[],73],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,2],[3,2],[3,2],[3,2],[[74,[66,[-1]]],2,25],[[[66,[-1]],-2,44,3],[[6,[2,27]]],25,26],[[[66,[-1]],-2],2,25,26],[[71,71],15],[[74,74],15],[[-1,-2],15,[],[]],[[-1,-2],15,[],[]],[[[66,[-1]]],2,25],[[[66,[-1]],[30,[36]],3,[23,[[24,[-1]]]]],[[6,[2,27]]],25],[[[66,[-1]]],[[56,[[56,[[67,[-1]],12]],12]]],[68,69]],[[[66,[-1]],[30,[36]]],[[16,[[67,[-1]]]]],[68,69]],[[71,4],[[6,[2,5]]]],[[71,4],[[6,[2,5]]]],[[74,4],[[6,[2,5]]]],[[74,4],[[6,[2,5]]]],[[73,4],[[6,[2,5]]]],[[[66,[-1]],4],[[6,[2,5]]],[46,25]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[66,[-1]],51],[[23,[-1]]],25],[[],3],[[],3],[[],3],[[],3],[[[66,[-1]]],[[56,[[56,[[75,[-1]],12]],12]]],[68,69]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[73,15],73],0,[[[66,[-1]],[55,[54]]],2,25],[[[66,[-1]],-2],2,25,26],[[[66,[-1]],[30,[33]],3],[[6,[[23,[-1]],27]]],25],[[73,76,-2,[78,[-3,77]]],[[6,[2,79]]],25,[[59,[-1]]],80],[[76,-2,[56,[[56,[-1,12]],12]]],[[6,[[66,[-1]],27]]],[68,69],[[59,[-1]]]],[[[66,[-1]]],[[56,[[56,[15,12]],12]]],[68,69]],[[73,15],73],[[73,15],73],[-1,-2,[],[]],[-1,54,[]],[-1,54,[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[[[66,[-1]]],[[81,[3]]],[68,69]],[[[66,[-1]]],[[6,[2,[56,[74,12]]]]],[68,69]],[[[66,[-1]],-2,-2],[[6,[2,[56,[74,12]]]]],[68,69],[19,70]],[[73,[81,[3]]],73],[[73,[81,[3]]],73],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[82,82],[83,83],[84,84],[85,85],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[82,82],86],0,[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[-1,[[6,[84]]],87],[-1,[[6,[88]]],87],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[[89,89],15],[[82,82],15],[[-1,-2],15,[],[]],[[-1,-2],15,[],[]],0,[[89,4],[[6,[2,5]]]],[[90,4],[[6,[2,5]]]],[[82,4],[[6,[2,5]]]],[[83,4],[[6,[2,5]]]],[[84,4],[[6,[2,5]]]],[[85,4],[[6,[2,5]]]],[[88,4],[[6,[2,5]]]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[76,-2,[56,[[56,[-1,12]],12]]],90,[69,25,68],[[59,[-1]]]],[[76,-2,[56,[[56,[-1,12]],12]],89],88,[69,25,68],[[59,[-1]]]],[10,[[6,[82]]]],0,[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[90,89],88],0,0,0,0,0,0,[[82,82],[[55,[86]]]],0,0,0,0,[[84,-1],6,91],[[88,-1],6,91],0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[92,92],[93,93],[94,94],[95,95],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[92,92],86],[[96,96],86],0,[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,2],[3,2],[3,2],[3,2],[3,2],[[92,92],15],[[96,96],15],[[93,93],15],[[94,94],15],[[95,95],15],[[-1,-2],15,[],[]],[[-1,-2],15,[],[]],[[-1,-2],15,[],[]],[[-1,-2],15,[],[]],[[-1,-2],15,[],[]],[[92,4],[[6,[2,5]]]],[[92,4],[[6,[2,5]]]],[[96,4],[[6,[2,5]]]],[[96,4],[[6,[2,5]]]],[[93,4],[[6,[2,5]]]],[[93,4],[[6,[2,5]]]],[[94,4],[[6,[2,5]]]],[[94,4],[[6,[2,5]]]],[[95,4],[[6,[2,5]]]],[[95,4],[[6,[2,5]]]],[[[30,[52]]],92],[-1,-1,[]],[97,96],[[[2,[-1,92,98]]],96,[[21,[10]]]],[-1,-1,[]],[[[2,[92,98]]],96],[[[2,[3,-1]]],93,[[21,[10]]]],[-1,-1,[]],[-1,-1,[]],[[[2,[93,3,-1]]],94,[[21,[10]]]],[[[2,[3,54]]],95],[-1,-1,[]],[[[2,[3,10,[100,[92,54,99]]]]],95],[[[2,[3,10]]],95],[[[2,[3,54,[100,[92,54,99]]]]],95],[[92,-1],2,101],0,[[],3],[[],3],[[],3],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[52,3],92],[[92,92],[[55,[86]]]],[[96,96],[[55,[86]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,54,[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,[[[24,[-1]],[24,[-1]]],[[24,[-1]]],25],[[[24,[-1]],[24,[-1]]],[[24,[-1]]],25],[[[24,[-1]],-1],[[24,[-1]]],25],[[[24,[-1]],[24,[-1]]],[[24,[-1]]],25],[[[24,[-1]],[24,[-1]]],[[24,[-1]]],25],[[[24,[-1]],-1],[[24,[-1]]],25],[[[102,[-1]],[102,[-1]]],[[102,[-1]]],25],[[[24,[-1]],[24,[-1]]],2,25],[[[24,[-1]],[24,[-1]]],2,25],[[[72,[-1]]],[[30,[29]]],25],[[[72,[-1]],-2],[[30,[29]]],25,103],[[[72,[-1]]],[[56,[104,12]]],25],0,[[[72,[-1]]],[[56,[[2,[[30,[29]],105]],12]]],25],[[-1,-2,[30,[52]]],2,[],26],[[[72,[-1]],-2,-3],2,25,[[41,[[30,[52]]]]],11],[[[72,[-1]],35,-2],2,25,11],[[-1,-2,[30,[29]],3,-3],[[6,[2,27]]],[],26,26],[[-1,-2,[30,[36]],3,-3],[[6,[2,27]]],[],26,26],[[[72,[-1]]],3,25],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[72,[-1]]],[[56,[104,12]]],25],0,[[[72,[-1]],-2],51,25,103],[[[106,[-1]]],[[106,[-1]]],[19,25]],[52,52],[[[107,[-1]]],[[107,[-1]]],[19,108]],[[[109,[-1]]],[[109,[-1]]],[19,108]],[[[24,[-1]]],[[24,[-1]]],19],[[[72,[-1]]],[[72,[-1]]],[19,25]],[[[30,[-1]]],[[30,[-1]]],[19,110]],[44,44],[111,111],[35,35],[51,51],[[[102,[-1]]],[[102,[-1]]],19],[29,29],[36,36],[33,33],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[52,52],86],[[[30,[-1]],[30,[-1]]],86,110],[[35,35],86],[111,3],0,[[[30,[-1]]],-1,110],0,[[[72,[-1]]],44,25],[[[102,[-1]]],3,25],[[[72,[-1]],[56,[[56,[15,12]],12]]],[[2,[[72,[-1]],[56,[[56,[-1,12]],12]]]]],25],[[[72,[-1]]],[],[]],[[[72,[-1]]],[],[]],[[[72,[-1]]],[[56,[[30,[36]],12]]],25],[[-1,[30,[52]],3,[30,[52]],3],[[6,[2,27]]],[]],[[[72,[-1]],-2,-3],2,25,[[21,[10]]],26],[[109,[16,[-1]],[16,[[16,[16]]]],-2,-4],[[6,[2,112]]],59,22,113,[[114,[-3]]]],[[[115,[-1]],109,[16,[-2]],[16,[[16,[16]]]],-3,-5],[[6,[2,112]]],116,59,22,113,[[114,[-4]]]],[[[24,[-1]]],[[24,[-1]]],25],[[[30,[-1]]],[[102,[-2]]],110,25],[[],[[72,[-1]]],25],[[[72,[-1]]],3,25],[[[102,[-1]]],3,25],[[[24,[-1]]],[[55,[-1]]],25],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[[[72,[-1]],[56,[[56,[15,12]],12]]],[[2,[[72,[-1]],[56,[[56,[-1,12]],12]]]]],25],[[[24,[-1]]],[[24,[-1]]],25],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[3,2],[[44,[28,[-1]],3],[[6,[2,27]]],25],[[[72,[-1]],[30,[36]]],2,25],[[[72,[-1]],-2],2,25,[[41,[[30,[52]]]]]],[[-1,-2,44,3],[[6,[2,27]]],[],26],[[-1,-2],2,[],26],[[52,52],15],[[[24,[-1]],[24,[-1]]],15,25],[[[30,[-1]],[30,[-1]]],15,[]],[[44,44],15],[[111,111],15],[[35,35],15],[[51,51],15],[[[102,[-1]],[102,[-1]]],15,[]],[[29,29],15],[[36,36],15],[[33,33],15],[[-1,-2],15,[],[]],[[-1,-2],15,[],[]],[[-1,-2],15,[],[]],[[-1,-2],15,[],[]],[[-1,-2],15,[],[]],[[-1,-2],15,[],[]],[[-1,-2],15,[],[]],[[-1,-2],15,[],[]],[[-1,-2],15,[],[]],[[-1,-2],15,[],[]],[[-1,-2],15,[],[]],[[[24,[-1]]],-1,25],[[[102,[-1]],-2,-3,-4,-5,-6,-7,-8,-9,-10,-11],-12,25,11,11,11,11,11,11,11,11,11,11,[]],[[[102,[-1]],-2,-3,-4,-5,-6,-7,-8,-9,-10,-11,-12],-12,25,11,11,11,11,11,11,11,11,11,11,117],[-1,2,[]],[44,[[102,[-1]]],25],[51,[[102,[-1]]],25],[[-1,[30,[36]],3,[23,[[24,[-2]]]]],[[6,[2,27]]],[],[]],[[[72,[-1]]],[[30,[36]]],25],[[[107,[-1]]],[[56,[-1,12]]],108],[[[72,[-1]]],[[56,[[2,[[30,[36]],105]],12]]],25],[[112,4],118],[[112,4],118],[[[106,[-1]],4],[[6,[2,5]]],[46,25]],[[52,4],[[6,[2,5]]]],[[119,4],[[6,[2,5]]]],[[119,4],[[6,[2,5]]]],[[[107,[-1]],4],[[6,[2,5]]],[46,108]],[[[109,[-1]],4],[[6,[2,5]]],[46,108]],[[[24,[-1]],4],[[6,[2,5]]],46],[[[120,[-1,-2,-3]],4],[[6,[2,5]]],[46,25],[46,[41,[[121,[-1]]]]],[46,49]],[[[72,[-1]],4],[[6,[2,5]]],[46,25]],[[[122,[-1]],4],[[6,[2,5]]],[46,25]],[[[30,[-1]],4],[[6,[2,5]]],[46,110]],[[123,4],[[6,[2,5]]]],[[124,4],[[6,[2,5]]]],[[125,4],[[6,[2,5]]]],[[44,4],[[6,[2,5]]]],[[111,4],[[6,[2,5]]]],[[35,4],[[6,[2,5]]]],[[51,4],[[6,[2,5]]]],[[[102,[-1]],4],[[6,[2,5]]],46],[[29,4],[[6,[2,5]]]],[[36,4],[[6,[2,5]]]],[[33,4],[[6,[2,5]]]],[[27,4],[[6,[2,5]]]],[[27,4],[[6,[2,5]]]],[-1,-1,[]],[27,112],[119,112],[-1,-1,[]],[[[72,[-1]]],[[106,[-1]]],25],[29,52],[36,52],[-1,-1,[]],[33,52],[-1,-1,[]],[126,119],[-1,-1,[]],[-1,-1,[]],[-1,[[24,[-1]]],25],[[[2,[-1,-1]]],[[24,[-1]]],25],[[[24,[-1]]],[[24,[-1]]],25],[-1,-1,[]],[-1,[[24,[-1]]],25],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[30,[33]]],[[30,[52]]]],[92,[[30,[52]]]],[[[30,[36]]],[[30,[52]]]],[-1,-1,[]],[[[30,[29]]],[[30,[52]]]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[127,51],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[[16,[104]],1,128],[[6,[[107,[-1]],126]]],129],[[[16,[104]],1,128],[[6,[[109,[-1]],126]]],129],[[[72,[-1]]],[[56,[[130,[-1]],12]]],25],0,[[[72,[-1]]],[[100,[92,54,99]]],25],0,[[[72,[-1]],[30,[52]],105],3,25],[[-1,51],[[23,[-2]]],[],[]],[[[107,[-1]]],131,108],[[[109,[-1]]],[[107,[-1]]],108],[[52,-1],2,101],[[[30,[-1]],-2],2,[132,110],101],[[44,-1],2,101],[[35,-1],2,101],[[51,-1],2,101],[[29,-1],2,101],[[36,-1],2,101],[[33,-1],2,101],[[[107,[-1]],-3],[[6,[2,126]]],108,[[113,[-1]]],[[133,[-1,-2]]]],[[[102,[-1]]],54,25],[[[30,[-1]]],3,110],[44,3],[51,3],0,0,0,[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[35,[[30,[36]]]],[[[72,[-1]]],[[30,[33]]],25],[[[72,[-1]]],[[56,[[2,[[30,[33]],105]],12]]],25],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[120,[-1,-2,-3]]],[],25,[[41,[[121,[-1]]]]],49],[[[24,[-1]]],[[24,[-1]]],25],[44,15],[[[24,[-1]]],15,25],[[-2,[107,[-1]],-3],[[6,[[109,[-1]],112]]],108,[[134,[-1]]],59],[[-2,[107,[-1]],-3,15],[[6,[[109,[-1]],112]]],108,[[134,[-1]]],59],[[-2,-3],[[6,[[107,[-1]],112]]],108,[[134,[-1]]],59],[[-2,-3,15],[[6,[[107,[-1]],112]]],108,[[134,[-1]]],59],[[[72,[-1]],-2,-3],3,25,[[21,[10]]],26],[[[72,[-1]],-2,-3],3,25,[[21,[10]]],26],[[[72,[-1]]],35,25],[[[72,[-1]]],[[56,[[135,[-1]],12]]],25],0,0,[[[72,[-1]]],3,25],[[[24,[-1]],-1],[[24,[-1]]],25],[[[24,[-1]],[24,[-1]]],[[24,[-1]]],25],[[[24,[-1]],[24,[-1]]],[[24,[-1]]],25],[[[24,[-1]],-1],[[24,[-1]]],25],[[[102,[-1]],[102,[-1]]],[[102,[-1]]],25],[[[102,[-1]],-1],[[102,[-1]]],25],[[[24,[-1]],[24,[-1]]],2,25],[[[24,[-1]],[24,[-1]]],2,25],[[[24,[-1]]],[],25],[[[24,[-1]]],[],25],[[[102,[-1]]],[],25],[[3,-1],[[30,[-1]]],110],[[[30,[-1]]],[[102,[-2]]],110,25],[76,119],[76,27],[[[72,[-1]]],3,25],0,[[[72,[-1]]],3,25],0,[[[72,[-1]]],3,25],0,[[[72,[-1]]],3,25],0,[[[72,[-1]]],3,25],[[[24,[-1]]],-1,25],[-1,[],[]],[[52,52],[[55,[86]]]],[[[30,[-1]],[30,[-1]]],[[55,[86]]],110],[[35,35],[[55,[86]]]],[[[72,[-1]]],136,25],0,[51,104],[[[72,[-1]]],[[0,[70]]],25],[[[107,[-1]]],[[137,[-1]]],108],[[-1,1,76,-2,15],[[138,[[109,[-3]]]]],139,59,129],[[-1,[55,[54]]],2,[]],[[[30,[-1]]],[[102,[-2]]],110,25],[-1,[[102,[-2]]],70,25],[[-1,-2],2,[],26],[[[122,[-1]],[30,[29]],105],[[102,[-1]]],25],[[[122,[-1]],-2,105],[[102,[-1]]],25,[[41,[[30,[52]]]]]],[[-1,3,105],[[102,[-2]]],[],25],[[52,3,105],[[102,[-1]]],25],[[[30,[-1]],105],[[102,[-2]]],110,25],[[29,3,105],[[102,[-1]]],25],[[36,3,105],[[102,[-1]]],25],[[33,3,105],[[102,[-1]]],25],[[[102,[-1]],[122,[-1]]],2,25],[[[122,[-1]],51],[[102,[-1]]],25],[[[122,[-1]],[30,[36]],105],[[102,[-1]]],25],[[-1,[30,[33]],3],[[6,[[23,[-2]],27]]],[],[]],[[[122,[-1]],[30,[33]],105],[[102,[-1]]],25],[[[122,[-1]],44],[[102,[-1]]],25],[[-1,1,128],[[6,[[107,[-2]],126]]],139,129],[[-1,1,128],[[6,[[109,[-2]],126]]],139,129],[[[30,[-1]],98],[[102,[-2]]],110,25],[111,105],0,[[[72,[-1]]],44,25],[[[72,[-1]],3],2,25],[[[72,[-1]],-2,-3],3,25,[[21,[10]]],26],[[[72,[-1]]],[[56,[[140,[-1]],12]]],25],0,[119,[[55,[141]]]],[[[24,[-1]]],[[24,[-1]]],25],[[[102,[-1]]],[[102,[-1]]],25],[[[24,[-1]],[24,[-1]]],[[24,[-1]]],25],[[[24,[-1]],[24,[-1]]],[[24,[-1]]],25],[[[24,[-1]],-1],[[24,[-1]]],25],[[[24,[-1]],[24,[-1]]],[[24,[-1]]],25],[[[24,[-1]],[24,[-1]]],[[24,[-1]]],25],[[[24,[-1]],-1],[[24,[-1]]],25],[[[102,[-1]],[102,[-1]]],[[102,[-1]]],25],[[[24,[-1]],[24,[-1]]],2,25],[[[24,[-1]],[24,[-1]]],2,25],[-1,[[102,[-2]]],70,25],[[-2,-3,[56,[[30,[36]],12]]],[[6,[2,27]]],25,[[57,[-1]],58],[[59,[-1]]]],[[-1,-3],[[6,[2,27]]],[],[],[[38,[-2]]]],[[[107,[-1]],1],[[56,[104,12]]],129],[[[109,[-1]],1],[[56,[104,12]]],129],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[123,142],[124,142],[125,142],[-1,54,[]],[-1,54,[]],[-1,54,[]],[[[107,[-1]]],[],108],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[[[30,[52]]],[[6,[[30,[36]]]]]],[[[30,[52]]],[[6,[[30,[29]]]]]],[[[30,[52]]],[[6,[[30,[33]]]]]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[[[72,[-1]]],[[30,[29]]],25],[[[72,[-1]],-2],[[30,[29]]],25,103],0,[[107,-3,[16,[[16,[16]]]],-5],[[6,[119]]],143,[[144,[-1]]],[[145,[-1,-2]]],113,[[146,[-4]]]],[[-1,1,76,-2,15],[[138,[[107,[-3]]]]],139,59,129],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[102,[-1]],-2],[[120,[-1,-3,-2]]],25,49,[[41,[[121,[-1]]]]]],[-1,-1,[]],[[[107,[-1]],-2,1],[[6,[2,126]]],129,147],[[[109,[-1]],-2,1],[[6,[2,126]]],129,147],0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[105,105],[[[131,[-1]]],[[131,[-1]]],[19,25]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[105,105],86],[[[131,[-1]],[56,[-1,12]]],[[149,[-1,148]]],150],[[[131,[-1]],[149,[-1,148]]],[[149,[-1,151]]],150],0,[[[131,[-1]],-1],[[149,[-1,151]]],150],[[[131,[-1]],-1],[[149,[-1,152]]],150],[[],105],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[[[131,[-1]],[149,[-1,151]]],[[149,[-1,151]]],150],[3,2],[3,2],[[[131,[-1]]],[[149,[-1,148]]],150],[[[131,[-1]]],[[149,[-1,151]]],150],[[[131,[-1]]],[[149,[-1,152]]],150],[[105,105],15],[[-1,-2],15,[],[]],[[[131,[-1]]],76,150],[[[131,[-1]]],3,150],[[[131,[-1]],[149,[-1,151]]],[[56,[-1,12]]],150],[-1,15,[]],[[105,4],[[6,[2,5]]]],[[[131,[-1]],4],[[6,[2,5]]],[46,25]],[-1,-1,[]],[-1,-1,[]],[[[131,[-1]]],-1,150],[[[131,[-1]]],-1,150],[[[131,[-1]]],-1,150],[[[131,[-1]]],3,150],[[105,-1],2,101],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],0,[[[131,[-1]]],76,150],0,[[[131,[-1]],-1,-1,-2],[[56,[-1,12]]],150,[49,19]],[[[131,[-1]],[56,[-1,12]]],[[149,[-1,152]]],150],[[[131,[-1]],[149,[-1,152]]],[[149,[-1,148]]],150],[[],-1,[]],[[76,76],[[131,[-1]]],150],[[],105],[[105,105],[[55,[86]]]],[[[131,[-1]]],[[153,[-1]]],150],[[],105],[[-1,-2],[[6,[119]]],[],26],[[[131,[-1]],[149,[-1,151]],105],[[149,[-1,151]]],150],[[[131,[-1]],-1,105],-1,150],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[154,[-1]],[154,[-1]]],[[154,[-1]]],25],[[[154,[-1]],-1],2,25],[[[154,[-1]],[154,[-1]]],2,25],[[-1,-1],2,155],[-1,2,[]],[-1,[[56,[12]]],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[-1,-3],15,[],[],[[116,[-2]]]],[[[154,[-1]]],[[154,[-1]]],19],[[-1,-2],2,[],[]],[[-1,-3,[149,[148]],154],[],[],[],[[116,[-2]]]],[[-1,-3,[149,[152]],154],[],[],[],[[116,[-2]]]],[[-1,-2,-4,-5],[[6,[2,126]]],[],22,113,[[114,[-3]]],[49,19]],[[-1,-2,-3,-5,-6],[[6,[2,126]]],[],116,22,113,[[114,[-4]]],[49,19]],[[],[[154,[-1]]],25],[3,-1,[]],[3,-1,[]],[[-1,76],2,[]],[3,2],[-1,[],[]],[[[154,[-1]],[154,[-1]]],15,[]],[[-1,-2],15,[],[]],[[-1,-3],[],[],[],[[116,[-2]]]],[[[154,[-1]],4],[[6,[2,5]]],46],[-1,-1,[]],[-1,[[16,[-2]]],[],[]],[[],3],[-1,-2,[],[]],[-1,76,[]],[[[154,[-1]],[154,[-1]]],[[154,[-1]]],25],[[[154,[-1]],[154,[-1]]],2,25],[[[154,[-1]],-1],2,25],[-1,20,[]],[76,-1,[]],[[],-1,[]],[[],-1,[]],[-1,[[154,[-2]]],22,25],[76],[-1,[[6,[-2,126]]],139,[]],[-1,[[6,[126]]],139],[-1,[[56,[12]]],[]],[-1,2,[]],[-1,-2,[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,[],[]],[[-1,-3,-4],[[6,[156]]],[],113,[[146,[-2]]],[49,19]],[-1,-2,[],[]],[[-1,-2],[[6,[2,126]]],[],147],0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[157,[-1]]],[[157,[-1]]],[19,108]],[[-1,-2],2,[],[]],[[[157,[-1]],-2,[149,[148]],154],[],108,[[116,[-1]]]],[[[157,[-1]],-2,[149,[152]],154],[],108,[[116,[-1]]]],[[-2,[157,[-1]],-3,-5,[149,[148]],154],[[6,[2,126]]],108,[[116,[-1]]],22,[[113,[-1]]],[[114,[-1,-4]]]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[[[157,[-1]],76],2,108],[3,2],[3,2],[[[157,[-1]]],[[158,[-1]]],108],[[[157,[-1]],4],[[6,[2,5]]],[46,108]],[[[159,[-1]],4],[[6,[2,5]]],[46,108]],[-1,-1,[]],[-1,-1,[]],[[[157,[-1]]],[[16,[-1]]],108],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],[[[157,[-1]]],76,108],[[[157,[-1]]],20,108],[76,[[157,[-1]]],108],[76],[-1,[[6,[[157,[-2]],126]]],139,108],[-1,[[6,[126]]],139],[-1,-2,[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[[[157,[-1]]],[],108],[[[157,[-1]],[158,[-1]],-3],[[6,[[160,[-1]],156]]],108,[[113,[-1]]],[[146,[-1,-2]]]],[-1,-2,[],[]],[-1,-2,[],[]],[[[157,[-1]],-2],[[6,[2,126]]],108,147],0,[[[158,[-1]]],2,108],[[[158,[-1]],[158,[-1]]],2,108],[[[158,[-1]],[158,[-1]]],2,108],[[[158,[-1]],16],2,108],[[[158,[-1]]],2,108],[[[158,[-1]]],2,108],[[[158,[-1]]],2,108],[[[158,[-1]]],[[56,[12]]],108],[-1,-2,[],[]],[-1,-2,[],[]],[[[158,[-1]],-2],15,108,[[116,[-1]]]],[[[158,[-1]]],[[158,[-1]]],[19,108]],[[-1,-2],2,[],[]],[3,-1,[]],[3,-1,[]],[3,2],[[[158,[-1]],-2],[],108,[[116,[-1]]]],[[[158,[-1]],4],[[6,[2,5]]],[46,108]],[-1,-1,[]],[[],3],[-1,-2,[],[]],[[[157,[-1]]],[[158,[-1]]],108],[[[158,[-1]]],[[56,[12]]],108],[[[158,[-1]]],2,108],[-1,-2,[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,-2,[],[]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[161,[-1]],-2,-3,-5,-6],[[6,[2,126]]],108,[[116,[-1]]],22,[[113,[-1]]],[[114,[-1,-4]]],[49,19]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,2],[3,2],[[[161,[-1]],4],[[6,[2,5]]],[46,108]],[[[162,[-1]],4],[[6,[2,5]]],[46,108]],[-1,-1,[]],[-1,-1,[]],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],[[[157,[-1]]],[[161,[-1]]],108],[[[157,[-1]]],[[162,[-1]]],108],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[[[162,[-1]],-3,-4,[158,[-1]]],[[6,[156]]],108,[[113,[-1]]],[[146,[-1,-2]]],[49,19]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[160,[-1]]],[[160,[-1]]],[19,108]],[[[163,[-1]]],[[163,[-1]]],[19,108]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[[160,[-1]],-2],-1,108,[[116,[-1]]]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,2],[3,2],[3,2],[3,2],[[[164,[-1]]],15,108],[[[165,[-1]]],15,108],[[[160,[-1]],4],[[6,[2,5]]],[46,108]],[[[163,[-1]],4],[[6,[2,5]]],[46,108]],[[[164,[-1]],4],[[6,[2,5]]],[46,108]],[[[165,[-1]],4],[[6,[2,5]]],[46,108]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],0,[[],3],[[],3],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[157,[-1]]],[[164,[-1]]],108],[[[157,[-1]]],[[165,[-1]]],108],[[[164,[-1]],-2],[[6,[119]]],108,26],[[[165,[-1]],-2],[[6,[119]]],108,26],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],0,[[[160,[-1]]],[[158,[-1]]],108],[[[160,[-1]],-1],[[2,[[158,[-1]],[163,[-1]]]]],108],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[166,[-1]]],[[166,[-1]]],[19,167]],[[-1,-2],2,[],[]],[[[166,[-1]],-2,[149,[148]],154],[],[167,46],116],[[[166,[-1]],-2,[149,[152]],154],[],[167,46],116],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[[[166,[-1]],76],2,[167,46]],[3,2],[3,2],[[[166,[-1]]],[[168,[-1]]],[167,46]],[[[166,[-1]],4],[[6,[2,5]]],[46,167]],[[[169,[-1]],4],[[6,[2,5]]],[46,167]],[-1,-1,[]],[-1,-1,[]],[[[166,[-1]],76,[56,[12]],[55,[[56,[12]]]]],[[166,[-1]]],[167,46]],[[[166,[-1]]],[],[167,46]],[[[166,[-1]]],16,[167,46]],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],[[[166,[-1]]],76,[167,46]],[[[166,[-1]]],20,[167,46]],[76,[[166,[-1]]],[167,46]],[76],[-1,[[6,[[166,[-2]],126]]],139,[167,46]],[[-1,1],[[6,[[166,[-2]],126]]],139,[167,46]],[-1,[[6,[126]]],139],[[[166,[-1]]],[],[167,46]],[[76,-1],[[166,[-2]]],22,[167,46]],[-1,-2,[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[[[166,[-1]]],[],[167,46]],[-1,-2,[],[]],[-1,-2,[],[]],[[[166,[-1]],-2],[[6,[2,126]]],[167,46],147],[[[166,[-1]],-2,1],[[6,[2,126]]],[167,46],147],0,0,[[[168,[-1]],[168,[-1]]],2,[167,46]],[[[170,[-1]],[170,[-1]]],2,[171,46]],[[[168,[-1]]],2,[167,46]],[[[168,[-1]]],[[56,[12]]],[167,46]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[168,[-1]],-2],15,[167,46],116],[[[170,[-1]],-2],15,[171,46],116],[[[168,[-1]]],[[168,[-1]]],[19,167]],[[[170,[-1]]],[[170,[-1]]],[19,167]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[[168,[-1]]],2,167],[[],[[168,[-1]]],[172,167]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,2],[3,2],[[[168,[-1]],-2],[],[167,46],116],[[[168,[-1]],4],[[6,[2,5]]],[46,167]],[[[170,[-1]],4],[[6,[2,5]]],[46,167]],[-1,-1,[]],[[[166,[-1]]],[[170,[-1]]],[171,46]],[-1,-1,[]],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],[[],[[168,[-1]]],167],[[[166,[-1]]],[[170,[-1]]],[171,46]],[[[168,[-1]]],[[56,[12]]],[167,46]],[[[168,[-1]]],2,[167,46]],[[[170,[-1]]],2,[171,46]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[173,[-1]],-2,-3,-5,-6],[[6,[2,126]]],[167,46],116,22,113,[[114,[-4]]],[49,19]],[[[174,[-1]],-2,-3,-5,-6],[[6,[2,126]]],[167,46],116,22,113,[[114,[-4]]],[49,19]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,2],[3,2],[3,2],[3,2],[[[173,[-1]],4],[[6,[2,5]]],[46,167]],[[[175,[-1]],4],[[6,[2,5]]],[46,167]],[[[174,[-1]],4],[[6,[2,5]]],[46,167]],[[[176,[-1]],4],[[6,[2,5]]],[46,167]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],3],[[],3],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[166,[-1]]],[[173,[-1]]],[167,46]],[[[166,[-1]]],[[175,[-1]]],[171,46]],[[[166,[-1]]],[[174,[-1]]],[167,46]],[[[166,[-1]]],[[174,[-1]]],167],[[[166,[-1]]],[[176,[-1]]],[171,46]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[[[175,[-1]],-3,-4,[170,[-1]]],[[6,[156]]],[171,46],113,[[146,[-2]]],[49,19]],[[[176,[-1]],-3,-4,[170,[-1]]],[[6,[156]]],[171,46],113,[[146,[-2]]],[49,19]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[177,[-1]]],[[177,[-1]]],[46,19,171]],[[[178,[-1]]],[[178,[-1]]],[19,167]],[[[179,[-1]]],[[179,[-1]]],[19,167]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,2],[3,2],[3,2],[[[178,[-1]]],15,[171,46]],[[[179,[-1]]],15,[171,46]],[[[177,[-1]],4],[[6,[2,5]]],[46,46,171]],[[[178,[-1]],4],[[6,[2,5]]],[46,167]],[[[179,[-1]],4],[[6,[2,5]]],[46,167]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[[],3],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[166,[-1]]],[[178,[-1]]],[171,46]],[[[166,[-1]]],[[178,[-1]]],[171,46]],[[[166,[-1]]],[[179,[-1]]],[171,46]],[[[166,[-1]]],[[179,[-1]]],[171,46]],[[[178,[-1]],-2],[[6,[119]]],[171,46],26],[[[179,[-1]],-2],[[6,[119]]],[171,46],26],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[170,[-1]]],[[178,[-1]]],[171,46]],0,0,0,0,0,0,0,0,0,0,[-1,[[180,[-2,-3]]],[],[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[[181,[-1,-2,-3]]],[[181,[-1,-2,-3]]],[19,139],[19,108],[19,[113,[-2]]]],[[[182,[-1,-2,-3]]],[[182,[-1,-2,-3]]],[19,147],[19,108],[19,[113,[-2]]]],[[[183,[-1]]],[[183,[-1]]],[19,108]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],2,[],[]],[[-1,-2],[[6,[2,126]]],[],[]],[[[181,[-1,-2,[183,[-2]]]],-2],[[6,[2,126]]],139,108],[[[182,[-1,-2,[183,[-2]]]],-2],[[6,[2,126]]],147,108],[-1,[[6,[2,126]]],[]],[[[181,[-1,-2,[183,[-2]]]]],[[6,[2,126]]],139,108],[[[182,[-1,-2,[183,[-2]]]]],[[6,[2,126]]],147,108],[3,-1,[]],[3,-1,[]],[3,-1,[]],[[[183,[-1]]],[],108],[3,-1,[]],[3,-1,[]],[3,-1,[]],[3,2],[3,2],[3,2],[-1,-2,[],[]],[[[182,[-1,-2,[183,[-2]]]]],-1,147,108],[[[181,[-1,-2,-3]],4],[[6,[2,5]]],[46,139],[46,108],[46,[113,[-2]]]],[[[182,[-1,-2,-3]],4],[[6,[2,5]]],[46,147],[46,108],[46,[113,[-2]]]],[[[183,[-1]],4],[[6,[2,5]]],[46,108]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,[],[]],[[[183,[-1]]],[],108],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[181,[-1,-2,[183,[-2]]]]],139,108],[[],3],[-1,[[182,[-1,-2,[183,[-2]]]]],147,108],[[],3],[[],3],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[],-1,[]],[[[60,[104]]],[[183,[-1]]],108],[-1,[[6,[-2,126]]],[],[]],[[[181,[-1,-2,[183,[-2]]]]],[[6,[-2,126]]],139,108],[-1,[[6,[126]]],[]],[[[181,[-1,-2,[183,[-2]]]]],[[6,[126]]],139,108],[-1,-2,[],[]],[[[181,[-1,-2,[183,[-2]]]]],[[183,[-2]]],139,108],[[[182,[-1,-2,[183,[-2]]]]],[[183,[-2]]],147,108],[-1,[[180,[-2,-3]]],[],[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,[[6,[-2]]],[],[]],[-1,7,[]],[-1,7,[]],[-1,7,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[[-1,-2],[[6,[2,126]]],[],[]],[[[182,[-1,-2,[183,[-2]]]],-2],[[6,[2,126]]],147,108],[-1,[[6,[2,126]]],[]],[[[182,[-1,-2,[183,[-2]]]]],[[6,[2,126]]],147,108]],"c":[],"p":[[4,"SerdeFormat",0],[15,"tuple"],[15,"usize"],[3,"Formatter",2091],[3,"Error",2091],[4,"Result",2092],[3,"TypeId",2093],[3,"Coordinates",2094],[3,"CtOption",2095],[15,"str"],[8,"Fn",2096],[3,"Global",2097],[3,"Box",2098],[3,"Choice",2095],[15,"bool"],[15,"slice"],[8,"Send",2099],[8,"Sync",2099],[8,"Clone",2100],[15,"u64"],[8,"AsRef",2101],[8,"RngCore",2102],[3,"Value",64],[4,"Assigned",788],[8,"Field",27],[8,"FnOnce",2096],[4,"ErrorFront",788],[3,"Region",64],[3,"Advice",788],[3,"Column",788],[3,"AssignedCell",64],[8,"FnMut",2096],[3,"Instance",788],[3,"Table",64],[3,"TableColumn",788],[3,"Fixed",788],[3,"NamespacedLayouter",64],[8,"Layouter",64],[3,"Cell",64],[3,"RegionIndex",64],[8,"Into",2101],[8,"Copy",2099],[8,"Borrow",2103],[3,"Selector",788],[3,"SimpleFloorPlanner",64],[8,"Debug",2091],[8,"RegionLayouter",2104],[8,"TableLayouter",2105],[8,"IntoIterator",2106],[8,"FromIterator",2106],[3,"Challenge",788],[4,"Any",788],[8,"Neg",2107],[3,"String",2108],[4,"Option",2109],[3,"Vec",2110],[8,"Assignment",788],[8,"SyncDeps",2104],[8,"Circuit",788],[15,"array"],[3,"V1Pass",293],[3,"V1",293],[3,"SingleChipLayouter",331],[3,"MeasurementPass",354],[3,"AssignmentPass",354],[3,"MockProver",385],[4,"CellValue",2111],[8,"FromUniformBytes",2112],[8,"Ord",2113],[8,"Iterator",2114],[4,"FailureLocation",385],[3,"ConstraintSystem",788],[3,"CircuitLayout",385],[4,"VerifyFailure",385],[4,"InstanceValue",2111],[15,"u32"],[3,"Shift",2115],[3,"DrawingArea",2116],[4,"DrawingAreaErrorKind",2116],[8,"DrawingBackend",2117],[3,"Range",2118],[3,"Poly",522],[3,"Lookup",522],[3,"Permutation",522],[3,"Shuffle",522],[4,"Ordering",2113],[8,"Deserializer",2119],[3,"ModelCircuit",522],[4,"CommitmentScheme",522],[3,"CostOptions",522],[8,"Serializer",2120],[3,"Column",668],[3,"Gate",668],[3,"Constraint",668],[3,"Region",668],[3,"VirtualCell",668],[3,"VirtualCell",2121],[15,"i32"],[3,"RandomState",2122],[3,"HashMap",2122],[8,"Hasher",2123],[4,"Expression",788],[8,"Phase",788],[15,"u8"],[3,"Rotation",1446],[3,"ConstraintSystemMid",788],[3,"VerifyingKey",788],[8,"CurveAffine",27],[3,"ProvingKey",788],[8,"ColumnType",788],[3,"FixedQuery",788],[4,"Error",788],[8,"EncodedChallenge",2003],[8,"TranscriptWrite",2003],[3,"PlonkEngine",2124],[8,"MsmAccel",2125],[8,"PartialEq",2113],[6,"Result",2091],[4,"ErrorBack",788],[3,"Constraints",788],[3,"Constraint",2121],[3,"VirtualCells",788],[3,"FirstPhase",788],[3,"SecondPhase",788],[3,"ThirdPhase",788],[3,"Error",2126],[3,"ChallengeMid",2127],[3,"ConstraintSystemBack",2128],[8,"SerdeCurveAffine",2129],[3,"Gate",2121],[3,"EvaluationDomain",1446],[8,"Hash",2123],[8,"Transcript",2003],[8,"Params",1519],[3,"Argument",2130],[3,"Argument",2131],[3,"PinnedVerificationKey",2132],[6,"Result",2126],[8,"Read",2133],[3,"Argument",2134],[8,"Error",2135],[3,"Phase",2136],[8,"CommitmentScheme",1519],[8,"Verifier",1519],[8,"VerificationStrategy",1446],[8,"TranscriptRead",2003],[8,"Write",2133],[3,"Coeff",2137],[3,"Polynomial",2137],[8,"WithSmallOrderMulGroup",2112],[3,"ExtendedLagrangeCoeff",2137],[3,"LagrangeCoeff",2137],[3,"PinnedEvaluationDomain",2138],[3,"Blind",1519],[8,"Sized",2099],[4,"Error",2137],[3,"ParamsIPA",1592],[3,"MSMIPA",1639],[3,"IPACommitmentScheme",1592],[3,"GuardIPA",1701],[3,"ProverIPA",1669],[3,"VerifierIPA",1669],[3,"Accumulator",1701],[3,"AccumulatorStrategy",1701],[3,"SingleStrategy",1701],[3,"ParamsKZG",1778],[8,"Engine",2139],[3,"MSMKZG",1829],[3,"KZGCommitmentScheme",1778],[3,"DualMSM",1829],[8,"MultiMillerLoop",2139],[8,"Default",2140],[3,"ProverGWC",1878],[3,"ProverSHPLONK",1878],[3,"VerifierGWC",1878],[3,"VerifierSHPLONK",1878],[3,"GuardKZG",1943],[3,"AccumulatorStrategy",1943],[3,"SingleStrategy",1943],[3,"ChallengeScalar",2141],[3,"Blake2bRead",2003],[3,"Blake2bWrite",2003],[3,"Challenge255",2003],[8,"CurveExt",27],[8,"Chip",64],[13,"InRegion",497],[13,"OutsideRegion",497],[13,"ConstraintNotSatisfied",500],[13,"CellNotAssigned",500],[13,"InstanceCellNotAssigned",500],[13,"Permutation",500],[13,"ConstraintPoisoned",500],[13,"Lookup",500],[13,"Shuffle",500],[8,"FloorPlanner",788],[13,"NotEnoughRowsAvailable",1444],[13,"NotEnoughRowsAvailable",1445],[8,"ParamsProver",1519],[8,"Prover",1519],[8,"MSM",1519],[8,"TranscriptWriterBuffer",2003],[8,"TranscriptReadBuffer",2003]]}\ }'); if (typeof window !== 'undefined' && window.initSearch) {window.initSearch(searchIndex)}; if (typeof exports !== 'undefined') {exports.searchIndex = searchIndex}; diff --git a/src/halo2_middleware/lib.rs.html b/src/halo2_middleware/lib.rs.html index 0d077b023f..def1a62ea4 100644 --- a/src/halo2_middleware/lib.rs.html +++ b/src/halo2_middleware/lib.rs.html @@ -24,6 +24,7 @@ 8 9 10 +11
pub mod circuit;
 pub mod expression;
 pub mod lookup;
@@ -34,4 +35,5 @@
 pub mod zal;
 
 pub use ff;
+pub use halo2curves;
 
\ No newline at end of file