diff --git a/src/circuit.rs b/src/circuit.rs index 2315bead..ad868c4b 100644 --- a/src/circuit.rs +++ b/src/circuit.rs @@ -38,7 +38,7 @@ use crate::{ use gadget::{ ecc::{ chip::{EccChip, EccConfig}, - FixedPoint, FixedPointBaseField, FixedPointShort, Point, + FixedPoint, FixedPointBaseField, FixedPointShort, NonIdentityPoint, Point, }, poseidon::{ Hash as PoseidonHash, Pow5T3Chip as PoseidonChip, Pow5T3Config as PoseidonConfig, @@ -356,7 +356,7 @@ impl plonk::Circuit for Circuit { )?; // Witness g_d_old - let g_d_old = Point::new( + let g_d_old = NonIdentityPoint::new( ecc_chip.clone(), layouter.namespace(|| "gd_old"), self.g_d_old.as_ref().map(|gd| gd.to_affine()), @@ -364,7 +364,7 @@ impl plonk::Circuit for Circuit { // Witness ak. let ak: Option = self.ak.as_ref().map(|ak| ak.into()); - let ak = Point::new( + let ak = NonIdentityPoint::new( ecc_chip.clone(), layouter.namespace(|| "ak"), ak.map(|ak| ak.to_affine()), @@ -621,7 +621,7 @@ impl plonk::Circuit for Circuit { g_d_old.mul(layouter.namespace(|| "[ivk] g_d_old"), ivk.inner())?; // Constrain derived pk_d_old to equal witnessed pk_d_old - let pk_d_old = Point::new( + let pk_d_old = NonIdentityPoint::new( ecc_chip.clone(), layouter.namespace(|| "witness pk_d_old"), self.pk_d_old.map(|pk_d_old| pk_d_old.inner().to_affine()), @@ -666,7 +666,7 @@ impl plonk::Circuit for Circuit { let g_d_new = self .g_d_new_star .map(|bytes| pallas::Affine::from_bytes(&bytes).unwrap()); - Point::new( + NonIdentityPoint::new( ecc_chip.clone(), layouter.namespace(|| "witness g_d_new_star"), g_d_new, @@ -678,7 +678,7 @@ impl plonk::Circuit for Circuit { let pk_d_new = self .pk_d_new_star .map(|bytes| pallas::Affine::from_bytes(&bytes).unwrap()); - Point::new( + NonIdentityPoint::new( ecc_chip, layouter.namespace(|| "witness pk_d_new"), pk_d_new, diff --git a/src/circuit/gadget/ecc.rs b/src/circuit/gadget/ecc.rs index 93a85974..1764e500 100644 --- a/src/circuit/gadget/ecc.rs +++ b/src/circuit/gadget/ecc.rs @@ -35,7 +35,9 @@ pub trait EccInstructions: Chip + UtilitiesInstructions /// A `ScalarFixedShort` must be in the range [-(2^64 - 1), 2^64 - 1]. type ScalarFixedShort: Clone + Debug; /// Variable representing an elliptic curve point. - type Point: Clone + Debug; + type Point: From + Clone + Debug; + /// Variable representing a non-identity elliptic curve point. + type NonIdentityPoint: Clone + Debug; /// Variable representing the affine short Weierstrass x-coordinate of an /// elliptic curve point. type X: Clone + Debug; @@ -55,15 +57,24 @@ pub trait EccInstructions: Chip + UtilitiesInstructions ) -> Result<(), Error>; /// Witnesses the given point as a private input to the circuit. - /// This maps the identity to (0, 0) in affine coordinates. + /// This allows the point to be the identity, mapped to (0, 0) in + /// affine coordinates. fn witness_point( &self, layouter: &mut impl Layouter, value: Option, ) -> Result; + /// Witnesses the given point as a private input to the circuit. + /// This returns an error if the point is the identity. + fn witness_point_non_id( + &self, + layouter: &mut impl Layouter, + value: Option, + ) -> Result; + /// Extracts the x-coordinate of a point. - fn extract_p(point: &Self::Point) -> &Self::X; + fn extract_p + Clone>(point: &Point) -> Self::X; /// Performs incomplete point addition, returning `a + b`. /// @@ -71,25 +82,24 @@ pub trait EccInstructions: Chip + UtilitiesInstructions fn add_incomplete( &self, layouter: &mut impl Layouter, - a: &Self::Point, - b: &Self::Point, - ) -> Result; + a: &Self::NonIdentityPoint, + b: &Self::NonIdentityPoint, + ) -> Result; /// Performs complete point addition, returning `a + b`. - fn add( + fn add + Clone, B: Into + Clone>( &self, layouter: &mut impl Layouter, - a: &Self::Point, - b: &Self::Point, + a: &A, + b: &B, ) -> Result; /// Performs variable-base scalar multiplication, returning `[scalar] base`. - /// Multiplication of the identity `[scalar] π’ͺ ` returns an error. fn mul( &self, layouter: &mut impl Layouter, scalar: &Self::Var, - base: &Self::Point, + base: &Self::NonIdentityPoint, ) -> Result<(Self::Point, Self::ScalarVar), Error>; /// Performs fixed-base scalar multiplication using a full-width scalar, returning `[scalar] base`. @@ -157,6 +167,125 @@ where inner: EccChip::ScalarFixedShort, } +/// A non-identity elliptic curve point over the given curve. +#[derive(Copy, Clone, Debug)] +pub struct NonIdentityPoint + Clone + Debug + Eq> { + chip: EccChip, + inner: EccChip::NonIdentityPoint, +} + +impl + Clone + Debug + Eq> + NonIdentityPoint +{ + /// Constructs a new point with the given value. + pub fn new( + chip: EccChip, + mut layouter: impl Layouter, + value: Option, + ) -> Result { + let point = chip.witness_point_non_id(&mut layouter, value); + point.map(|inner| NonIdentityPoint { chip, inner }) + } + + /// Constrains this point to be equal in value to another point. + pub fn constrain_equal> + Clone>( + &self, + mut layouter: impl Layouter, + other: &Other, + ) -> Result<(), Error> { + let other: Point = (other.clone()).into(); + self.chip.constrain_equal( + &mut layouter, + &Point::::from(self.clone()).inner, + &other.inner, + ) + } + + /// Returns the inner point. + pub fn inner(&self) -> &EccChip::NonIdentityPoint { + &self.inner + } + + /// Extracts the x-coordinate of a point. + pub fn extract_p(&self) -> X { + X::from_inner(self.chip.clone(), EccChip::extract_p(&self.inner)) + } + + /// Wraps the given point (obtained directly from an instruction) in a gadget. + pub fn from_inner(chip: EccChip, inner: EccChip::NonIdentityPoint) -> Self { + NonIdentityPoint { chip, inner } + } + + /// Returns `self + other` using complete addition. + pub fn add> + Clone>( + &self, + mut layouter: impl Layouter, + other: &Other, + ) -> Result, Error> { + let other: Point = (other.clone()).into(); + + assert_eq!(self.chip, other.chip); + self.chip + .add(&mut layouter, &self.inner, &other.inner) + .map(|inner| Point { + chip: self.chip.clone(), + inner, + }) + } + + /// Returns `self + other` using incomplete addition. + /// The arguments are type-constrained not to be the identity point, + /// and since exceptional cases return an Error, the result also cannot + /// be the identity point. + pub fn add_incomplete( + &self, + mut layouter: impl Layouter, + other: &Self, + ) -> Result { + assert_eq!(self.chip, other.chip); + self.chip + .add_incomplete(&mut layouter, &self.inner, &other.inner) + .map(|inner| NonIdentityPoint { + chip: self.chip.clone(), + inner, + }) + } + + /// Returns `[by] self`. + #[allow(clippy::type_complexity)] + pub fn mul( + &self, + mut layouter: impl Layouter, + by: &EccChip::Var, + ) -> Result<(Point, ScalarVar), Error> { + self.chip + .mul(&mut layouter, by, &self.inner.clone()) + .map(|(point, scalar)| { + ( + Point { + chip: self.chip.clone(), + inner: point, + }, + ScalarVar { + chip: self.chip.clone(), + inner: scalar, + }, + ) + }) + } +} + +impl + Clone + Debug + Eq> + From> for Point +{ + fn from(non_id_point: NonIdentityPoint) -> Self { + Self { + chip: non_id_point.chip, + inner: non_id_point.inner.into(), + } + } +} + /// An elliptic curve point over the given curve. #[derive(Copy, Clone, Debug)] pub struct Point + Clone + Debug + Eq> { @@ -176,11 +305,12 @@ impl + Clone + Debug + Eq> Point> + Clone>( &self, mut layouter: impl Layouter, - other: &Self, + other: &Other, ) -> Result<(), Error> { + let other: Point = (other.clone()).into(); self.chip .constrain_equal(&mut layouter, &self.inner, &other.inner) } @@ -192,7 +322,7 @@ impl + Clone + Debug + Eq> Point X { - X::from_inner(self.chip.clone(), EccChip::extract_p(&self.inner).clone()) + X::from_inner(self.chip.clone(), EccChip::extract_p(&self.inner)) } /// Wraps the given point (obtained directly from an instruction) in a gadget. @@ -201,7 +331,13 @@ impl + Clone + Debug + Eq> Point, other: &Self) -> Result { + pub fn add> + Clone>( + &self, + mut layouter: impl Layouter, + other: &Other, + ) -> Result, Error> { + let other: Point = (other.clone()).into(); + assert_eq!(self.chip, other.chip); self.chip .add(&mut layouter, &self.inner, &other.inner) @@ -210,43 +346,6 @@ impl + Clone + Debug + Eq> Point, - other: &Self, - ) -> Result { - assert_eq!(self.chip, other.chip); - self.chip - .add_incomplete(&mut layouter, &self.inner, &other.inner) - .map(|inner| Point { - chip: self.chip.clone(), - inner, - }) - } - - /// Returns `[by] self`. - pub fn mul( - &self, - mut layouter: impl Layouter, - by: &EccChip::Var, - ) -> Result<(Self, ScalarVar), Error> { - self.chip - .mul(&mut layouter, by, &self.inner) - .map(|(point, scalar)| { - ( - Point { - chip: self.chip.clone(), - inner: point, - }, - ScalarVar { - chip: self.chip.clone(), - inner: scalar, - }, - ) - }) - } } /// The affine short Weierstrass x-coordinate of an elliptic curve point over the @@ -463,34 +562,60 @@ mod tests { // provided by the Sinsemilla chip. config.lookup_config.load(&mut layouter)?; - // Generate a random point P + // Generate a random non-identity point P let p_val = pallas::Point::random(rand::rngs::OsRng).to_affine(); // P - let p = super::Point::new(chip.clone(), layouter.namespace(|| "P"), Some(p_val))?; + let p = super::NonIdentityPoint::new( + chip.clone(), + layouter.namespace(|| "P"), + Some(p_val), + )?; let p_neg = -p_val; - let p_neg = super::Point::new(chip.clone(), layouter.namespace(|| "-P"), Some(p_neg))?; + let p_neg = super::NonIdentityPoint::new( + chip.clone(), + layouter.namespace(|| "-P"), + Some(p_neg), + )?; - // Generate a random point Q + // Generate a random non-identity point Q let q_val = pallas::Point::random(rand::rngs::OsRng).to_affine(); // Q - let q = super::Point::new(chip.clone(), layouter.namespace(|| "Q"), Some(q_val))?; + let q = super::NonIdentityPoint::new( + chip.clone(), + layouter.namespace(|| "Q"), + Some(q_val), + )?; // Make sure P and Q are not the same point. assert_ne!(p_val, q_val); - // Generate a (0,0) point to be used in other tests. - let zero = { - super::Point::new( + // Test that we can witness the identity as a point, but not as a non-identity point. + { + let _ = super::Point::new( chip.clone(), layouter.namespace(|| "identity"), Some(pallas::Affine::identity()), - )? - }; + )?; + + super::NonIdentityPoint::new( + chip.clone(), + layouter.namespace(|| "identity"), + Some(pallas::Affine::identity()), + ) + .expect_err("Trying to witness the identity should return an error"); + } + + // Test witness non-identity point + { + super::chip::witness_point::tests::test_witness_non_id( + chip.clone(), + layouter.namespace(|| "witness non-identity point"), + ) + } // Test complete addition { super::chip::add::tests::test_add( chip.clone(), layouter.namespace(|| "complete addition"), - &zero, p_val, &p, q_val, @@ -504,7 +629,6 @@ mod tests { super::chip::add_incomplete::tests::test_add_incomplete( chip.clone(), layouter.namespace(|| "incomplete addition"), - &zero, p_val, &p, q_val, @@ -518,7 +642,6 @@ mod tests { super::chip::mul::tests::test_mul( chip.clone(), layouter.namespace(|| "variable-base scalar mul"), - &zero, &p, p_val, )?; diff --git a/src/circuit/gadget/ecc/chip.rs b/src/circuit/gadget/ecc/chip.rs index d4ddcc81..f9e18265 100644 --- a/src/circuit/gadget/ecc/chip.rs +++ b/src/circuit/gadget/ecc/chip.rs @@ -22,9 +22,10 @@ pub(super) mod mul; pub(super) mod mul_fixed; pub(super) mod witness_point; -/// A curve point represented in affine (x, y) coordinates. Each coordinate is -/// assigned to a cell. -#[derive(Clone, Debug)] +/// A curve point represented in affine (x, y) coordinates, or the +/// identity represented as (0, 0). +/// Each coordinate is assigned to a cell. +#[derive(Copy, Clone, Debug)] pub struct EccPoint { /// x-coordinate x: CellValue, @@ -67,6 +68,62 @@ impl EccPoint { pub fn y(&self) -> CellValue { self.y } + + #[cfg(test)] + fn is_identity(&self) -> Option { + self.x.value().map(|x| x == pallas::Base::zero()) + } +} + +/// A non-identity point represented in affine (x, y) coordinates. +/// Each coordinate is assigned to a cell. +#[derive(Copy, Clone, Debug)] +pub struct NonIdentityEccPoint { + /// x-coordinate + x: CellValue, + /// y-coordinate + y: CellValue, +} + +impl NonIdentityEccPoint { + /// Constructs a point from its coordinates, without checking they are on the curve. + /// + /// This is an internal API that we only use where we know we have a valid non-identity + /// curve point (specifically inside Sinsemilla). + pub(in crate::circuit::gadget) fn from_coordinates_unchecked( + x: CellValue, + y: CellValue, + ) -> Self { + NonIdentityEccPoint { x, y } + } + + /// Returns the value of this curve point, if known. + pub fn point(&self) -> Option { + match (self.x.value(), self.y.value()) { + (Some(x), Some(y)) => { + assert!(x != pallas::Base::zero() && y != pallas::Base::zero()); + Some(pallas::Affine::from_xy(x, y).unwrap()) + } + _ => None, + } + } + /// The cell containing the affine short-Weierstrass x-coordinate. + pub fn x(&self) -> CellValue { + self.x + } + /// The cell containing the affine short-Weierstrass y-coordinate. + pub fn y(&self) -> CellValue { + self.y + } +} + +impl From for EccPoint { + fn from(non_id_point: NonIdentityEccPoint) -> Self { + Self { + x: non_id_point.x, + y: non_id_point.y, + } + } } /// Configuration for the ECC chip @@ -108,8 +165,10 @@ pub struct EccConfig { /// when the scalar is a signed short exponent or a base-field element. pub q_mul_fixed_running_sum: Selector, - /// Witness point + /// Witness point (can be identity) pub q_point: Selector, + /// Witness non-identity point + pub q_point_non_id: Selector, /// Lookup range check using 10-bit lookup table pub lookup_config: LookupRangeCheckConfig, @@ -206,6 +265,7 @@ impl EccChip { q_mul_fixed_base_field: meta.selector(), q_mul_fixed_running_sum, q_point: meta.selector(), + q_point_non_id: meta.selector(), lookup_config: range_check, running_sum_config, }; @@ -320,6 +380,7 @@ impl EccInstructions for EccChip { type ScalarFixedShort = EccScalarFixedShort; type ScalarVar = CellValue; type Point = EccPoint; + type NonIdentityPoint = NonIdentityEccPoint; type X = CellValue; type FixedPoints = OrchardFixedBasesFull; type FixedPointsBaseField = NullifierK; @@ -350,20 +411,33 @@ impl EccInstructions for EccChip { let config: witness_point::Config = self.config().into(); layouter.assign_region( || "witness point", - |mut region| config.assign_region(value, 0, &mut region), + |mut region| config.point(value, 0, &mut region), ) } - fn extract_p(point: &Self::Point) -> &Self::X { - &point.x + fn witness_point_non_id( + &self, + layouter: &mut impl Layouter, + value: Option, + ) -> Result { + let config: witness_point::Config = self.config().into(); + layouter.assign_region( + || "witness non-identity point", + |mut region| config.point_non_id(value, 0, &mut region), + ) + } + + fn extract_p + Clone>(point: &Point) -> Self::X { + let point: EccPoint = (point.clone()).into(); + point.x() } fn add_incomplete( &self, layouter: &mut impl Layouter, - a: &Self::Point, - b: &Self::Point, - ) -> Result { + a: &Self::NonIdentityPoint, + b: &Self::NonIdentityPoint, + ) -> Result { let config: add_incomplete::Config = self.config().into(); layouter.assign_region( || "incomplete point addition", @@ -371,16 +445,18 @@ impl EccInstructions for EccChip { ) } - fn add( + fn add + Clone, B: Into + Clone>( &self, layouter: &mut impl Layouter, - a: &Self::Point, - b: &Self::Point, + a: &A, + b: &B, ) -> Result { let config: add::Config = self.config().into(); layouter.assign_region( || "complete point addition", - |mut region| config.assign_region(a, b, 0, &mut region), + |mut region| { + config.assign_region(&(a.clone()).into(), &(b.clone()).into(), 0, &mut region) + }, ) } @@ -388,7 +464,7 @@ impl EccInstructions for EccChip { &self, layouter: &mut impl Layouter, scalar: &Self::Var, - base: &Self::Point, + base: &Self::NonIdentityPoint, ) -> Result<(Self::Point, Self::ScalarVar), Error> { let config: mul::Config = self.config().into(); config.assign( diff --git a/src/circuit/gadget/ecc/chip/add.rs b/src/circuit/gadget/ecc/chip/add.rs index f1d76245..34520ed8 100644 --- a/src/circuit/gadget/ecc/chip/add.rs +++ b/src/circuit/gadget/ecc/chip/add.rs @@ -391,38 +391,40 @@ pub mod tests { use halo2::{circuit::Layouter, plonk::Error}; use pasta_curves::{arithmetic::CurveExt, pallas}; - use crate::circuit::gadget::ecc::{EccInstructions, Point}; + use crate::circuit::gadget::ecc::{chip::EccPoint, EccInstructions, NonIdentityPoint}; #[allow(clippy::too_many_arguments)] - pub fn test_add + Clone + Eq + std::fmt::Debug>( + pub fn test_add< + EccChip: EccInstructions + Clone + Eq + std::fmt::Debug, + >( chip: EccChip, mut layouter: impl Layouter, - zero: &Point, p_val: pallas::Affine, - p: &Point, + p: &NonIdentityPoint, q_val: pallas::Affine, - q: &Point, - p_neg: &Point, + q: &NonIdentityPoint, + p_neg: &NonIdentityPoint, ) -> Result<(), Error> { // Make sure P and Q are not the same point. assert_ne!(p_val, q_val); // Check complete addition P + (-P) - { + let zero = { let result = p.add(layouter.namespace(|| "P + (-P)"), p_neg)?; - result.constrain_equal(layouter.namespace(|| "P + (-P) = π’ͺ"), zero)?; - } + assert!(result.inner().is_identity().unwrap()); + result + }; // Check complete addition π’ͺ + π’ͺ { - let result = zero.add(layouter.namespace(|| "π’ͺ + π’ͺ"), zero)?; - result.constrain_equal(layouter.namespace(|| "π’ͺ + π’ͺ = π’ͺ"), zero)?; + let result = zero.add(layouter.namespace(|| "π’ͺ + π’ͺ"), &zero)?; + result.constrain_equal(layouter.namespace(|| "π’ͺ + π’ͺ = π’ͺ"), &zero)?; } // Check P + Q { let result = p.add(layouter.namespace(|| "P + Q"), q)?; - let witnessed_result = Point::new( + let witnessed_result = NonIdentityPoint::new( chip.clone(), layouter.namespace(|| "witnessed P + Q"), Some((p_val + q_val).to_affine()), @@ -433,7 +435,7 @@ pub mod tests { // P + P { let result = p.add(layouter.namespace(|| "P + P"), p)?; - let witnessed_result = Point::new( + let witnessed_result = NonIdentityPoint::new( chip.clone(), layouter.namespace(|| "witnessed P + P"), Some((p_val + p_val).to_affine()), @@ -443,7 +445,7 @@ pub mod tests { // P + π’ͺ { - let result = p.add(layouter.namespace(|| "P + π’ͺ"), zero)?; + let result = p.add(layouter.namespace(|| "P + π’ͺ"), &zero)?; result.constrain_equal(layouter.namespace(|| "P + π’ͺ = P"), p)?; } @@ -455,7 +457,7 @@ pub mod tests { // (x, y) + (ΞΆx, y) should behave like normal P + Q. let endo_p = p_val.to_curve().endo(); - let endo_p = Point::new( + let endo_p = NonIdentityPoint::new( chip.clone(), layouter.namespace(|| "endo(P)"), Some(endo_p.to_affine()), @@ -464,7 +466,7 @@ pub mod tests { // (x, y) + (ΞΆx, -y) should also behave like normal P + Q. let endo_p_neg = (-p_val).to_curve().endo(); - let endo_p_neg = Point::new( + let endo_p_neg = NonIdentityPoint::new( chip.clone(), layouter.namespace(|| "endo(-P)"), Some(endo_p_neg.to_affine()), @@ -473,7 +475,7 @@ pub mod tests { // (x, y) + ((ΞΆ^2)x, y) let endo_2_p = p_val.to_curve().endo().endo(); - let endo_2_p = Point::new( + let endo_2_p = NonIdentityPoint::new( chip.clone(), layouter.namespace(|| "endo^2(P)"), Some(endo_2_p.to_affine()), @@ -482,7 +484,7 @@ pub mod tests { // (x, y) + ((ΞΆ^2)x, -y) let endo_2_p_neg = (-p_val).to_curve().endo().endo(); - let endo_2_p_neg = Point::new( + let endo_2_p_neg = NonIdentityPoint::new( chip, layouter.namespace(|| "endo^2(-P)"), Some(endo_2_p_neg.to_affine()), diff --git a/src/circuit/gadget/ecc/chip/add_incomplete.rs b/src/circuit/gadget/ecc/chip/add_incomplete.rs index 5016230c..55495e1e 100644 --- a/src/circuit/gadget/ecc/chip/add_incomplete.rs +++ b/src/circuit/gadget/ecc/chip/add_incomplete.rs @@ -1,6 +1,6 @@ use std::{array, collections::HashSet}; -use super::{copy, CellValue, EccConfig, EccPoint, Var}; +use super::{copy, CellValue, EccConfig, NonIdentityEccPoint, Var}; use group::Curve; use halo2::{ circuit::Region, @@ -67,11 +67,11 @@ impl Config { pub(super) fn assign_region( &self, - p: &EccPoint, - q: &EccPoint, + p: &NonIdentityEccPoint, + q: &NonIdentityEccPoint, offset: usize, region: &mut Region<'_, pallas::Base>, - ) -> Result { + ) -> Result { // Enable `q_add_incomplete` selector self.q_add_incomplete.enable(region, offset)?; @@ -134,7 +134,7 @@ impl Config { || y_r.ok_or(Error::SynthesisError), )?; - let result = EccPoint { + let result = NonIdentityEccPoint { x: CellValue::::new(x_r_var, x_r), y: CellValue::::new(y_r_var, y_r), }; @@ -149,7 +149,7 @@ pub mod tests { use halo2::{circuit::Layouter, plonk::Error}; use pasta_curves::pallas; - use crate::circuit::gadget::ecc::{EccInstructions, Point}; + use crate::circuit::gadget::ecc::{EccInstructions, NonIdentityPoint}; #[allow(clippy::too_many_arguments)] pub fn test_add_incomplete< @@ -157,17 +157,16 @@ pub mod tests { >( chip: EccChip, mut layouter: impl Layouter, - zero: &Point, p_val: pallas::Affine, - p: &Point, + p: &NonIdentityPoint, q_val: pallas::Affine, - q: &Point, - p_neg: &Point, + q: &NonIdentityPoint, + p_neg: &NonIdentityPoint, ) -> Result<(), Error> { // P + Q { let result = p.add_incomplete(layouter.namespace(|| "P + Q"), q)?; - let witnessed_result = Point::new( + let witnessed_result = NonIdentityPoint::new( chip, layouter.namespace(|| "witnessed P + Q"), Some((p_val + q_val).to_affine()), @@ -183,18 +182,6 @@ pub mod tests { p.add_incomplete(layouter.namespace(|| "P + (-P)"), p_neg) .expect_err("P + (-P) should return an error"); - // P + π’ͺ should return an error - p.add_incomplete(layouter.namespace(|| "P + π’ͺ"), zero) - .expect_err("P + 0 should return an error"); - - // π’ͺ + P should return an error - zero.add_incomplete(layouter.namespace(|| "π’ͺ + P"), p) - .expect_err("0 + P should return an error"); - - // π’ͺ + π’ͺ should return an error - zero.add_incomplete(layouter.namespace(|| "π’ͺ + π’ͺ"), zero) - .expect_err("π’ͺ + π’ͺ should return an error"); - Ok(()) } } diff --git a/src/circuit/gadget/ecc/chip/mul.rs b/src/circuit/gadget/ecc/chip/mul.rs index 05c03bd3..e3db3bde 100644 --- a/src/circuit/gadget/ecc/chip/mul.rs +++ b/src/circuit/gadget/ecc/chip/mul.rs @@ -1,4 +1,4 @@ -use super::{add, CellValue, EccConfig, EccPoint, Var}; +use super::{add, CellValue, EccConfig, EccPoint, NonIdentityEccPoint, Var}; use crate::{circuit::gadget::utilities::copy, constants::T_Q}; use std::ops::{Deref, Range}; @@ -136,12 +136,16 @@ impl Config { &self, mut layouter: impl Layouter, alpha: CellValue, - base: &EccPoint, + base: &NonIdentityEccPoint, ) -> Result<(EccPoint, CellValue), Error> { let (result, zs): (EccPoint, Vec>) = layouter.assign_region( || "variable-base scalar mul", |mut region| { let offset = 0; + + // Case `base` into an `EccPoint` for later use. + let base_point: EccPoint = (*base).into(); + // Decompose `k = alpha + t_q` bitwise (big-endian bit order). let bits = decompose_for_scalar_mul(alpha.value()); @@ -151,9 +155,9 @@ impl Config { let lsb = bits[pallas::Scalar::NUM_BITS as usize - 1]; // Initialize the accumulator `acc = [2]base` - let acc = self - .add_config - .assign_region(base, base, offset, &mut region)?; + let acc = + self.add_config + .assign_region(&base_point, &base_point, offset, &mut region)?; // Increase the offset by 1 after complete addition. let offset = offset + 1; @@ -207,7 +211,7 @@ impl Config { &mut region, offset, bits_complete, - base, + &base_point, x_a, y_a, *z, @@ -282,7 +286,7 @@ impl Config { &self, region: &mut Region<'_, pallas::Base>, offset: usize, - base: &EccPoint, + base: &NonIdentityEccPoint, acc: EccPoint, z_1: Z, lsb: Option, @@ -449,21 +453,23 @@ pub mod tests { use pasta_curves::{arithmetic::FieldExt, pallas}; use crate::circuit::gadget::{ - ecc::{chip::EccChip, EccInstructions, Point}, + ecc::{ + chip::{EccChip, EccPoint}, + EccInstructions, NonIdentityPoint, Point, + }, utilities::UtilitiesInstructions, }; pub fn test_mul( chip: EccChip, mut layouter: impl Layouter, - zero: &Point, - p: &Point, + p: &NonIdentityPoint, p_val: pallas::Affine, ) -> Result<(), Error> { let column = chip.config().advices[0]; - fn constrain_equal< - EccChip: EccInstructions + Clone + Eq + std::fmt::Debug, + fn constrain_equal_non_id< + EccChip: EccInstructions + Clone + Eq + std::fmt::Debug, >( chip: EccChip, mut layouter: impl Layouter, @@ -474,7 +480,7 @@ pub mod tests { // Move scalar from base field into scalar field (which always fits // for Pallas). let scalar = pallas::Scalar::from_bytes(&scalar_val.to_bytes()).unwrap(); - let expected = Point::new( + let expected = NonIdentityPoint::new( chip, layouter.namespace(|| "expected point"), Some((base_val * scalar).to_affine()), @@ -493,7 +499,7 @@ pub mod tests { )?; p.mul(layouter.namespace(|| "random [a]B"), &scalar)? }; - constrain_equal( + constrain_equal_non_id( chip.clone(), layouter.namespace(|| "random [a]B"), p_val, @@ -502,19 +508,6 @@ pub mod tests { )?; } - // [a]π’ͺ should return an error since variable-base scalar multiplication - // uses incomplete addition at the beginning of its double-and-add. - { - let scalar_val = pallas::Base::rand(); - let scalar = chip.load_private( - layouter.namespace(|| "random scalar"), - column, - Some(scalar_val), - )?; - zero.mul(layouter.namespace(|| "[a]π’ͺ"), &scalar) - .expect_err("[a]π’ͺ should return an error"); - } - // [0]B should return (0,0) since variable-base scalar multiplication // uses complete addition for the final bits of the scalar. { @@ -524,13 +517,7 @@ pub mod tests { chip.load_private(layouter.namespace(|| "zero"), column, Some(scalar_val))?; p.mul(layouter.namespace(|| "[0]B"), &scalar)? }; - constrain_equal( - chip.clone(), - layouter.namespace(|| "[0]B"), - p_val, - scalar_val, - result, - )?; + assert!(result.inner().is_identity().unwrap()); } // [-1]B (the largest possible base field element) @@ -541,7 +528,7 @@ pub mod tests { chip.load_private(layouter.namespace(|| "-1"), column, Some(scalar_val))?; p.mul(layouter.namespace(|| "[-1]B"), &scalar)? }; - constrain_equal( + constrain_equal_non_id( chip, layouter.namespace(|| "[-1]B"), p_val, diff --git a/src/circuit/gadget/ecc/chip/mul/incomplete.rs b/src/circuit/gadget/ecc/chip/mul/incomplete.rs index 29452d94..b6f7d2be 100644 --- a/src/circuit/gadget/ecc/chip/mul/incomplete.rs +++ b/src/circuit/gadget/ecc/chip/mul/incomplete.rs @@ -1,6 +1,6 @@ use std::ops::Deref; -use super::super::{copy, CellValue, EccConfig, EccPoint, Var}; +use super::super::{copy, CellValue, EccConfig, NonIdentityEccPoint, Var}; use super::{INCOMPLETE_HI_RANGE, INCOMPLETE_LO_RANGE, X, Y, Z}; use ff::Field; use halo2::{ @@ -198,18 +198,19 @@ impl Config { }); } - // We perform incomplete addition on all but the last three bits of the - // decomposed scalar. - // We split the bits in the incomplete addition range into "hi" and "lo" - // halves and process them side by side, using the same rows but with - // non-overlapping columns. - // Returns (x, y, z). + /// We perform incomplete addition on all but the last three bits of the + /// decomposed scalar. + /// We split the bits in the incomplete addition range into "hi" and "lo" + /// halves and process them side by side, using the same rows but with + /// non-overlapping columns. The base is never the identity point even at + /// the boundary between halves. + /// Returns (x, y, z). #[allow(clippy::type_complexity)] pub(super) fn double_and_add( &self, region: &mut Region<'_, pallas::Base>, offset: usize, - base: &EccPoint, + base: &NonIdentityEccPoint, bits: &[Option], acc: (X, Y, Z), ) -> Result<(X, Y, Vec>), Error> { diff --git a/src/circuit/gadget/ecc/chip/mul_fixed.rs b/src/circuit/gadget/ecc/chip/mul_fixed.rs index 90c31aae..2f470111 100644 --- a/src/circuit/gadget/ecc/chip/mul_fixed.rs +++ b/src/circuit/gadget/ecc/chip/mul_fixed.rs @@ -1,6 +1,6 @@ use super::{ - add, add_incomplete, CellValue, EccBaseFieldElemFixed, EccConfig, EccPoint, EccScalarFixed, - EccScalarFixedShort, Var, + add, add_incomplete, CellValue, EccBaseFieldElemFixed, EccConfig, EccScalarFixed, + EccScalarFixedShort, NonIdentityEccPoint, Var, }; use crate::constants::{ self, @@ -220,7 +220,7 @@ impl Config { scalar: &ScalarFixed, base: OrchardFixedBases, coords_check_toggle: Selector, - ) -> Result<(EccPoint, EccPoint), Error> { + ) -> Result<(NonIdentityEccPoint, NonIdentityEccPoint), Error> { // Assign fixed columns for given fixed base self.assign_fixed_constants(region, offset, base, coords_check_toggle)?; @@ -320,7 +320,7 @@ impl Config { k: Option, k_usize: Option, base: OrchardFixedBases, - ) -> Result { + ) -> Result { let base_value = base.generator(); let base_u = base.u(); @@ -330,7 +330,11 @@ impl Config { k.map(|k| base_value * (k + *TWO_SCALAR) * H_SCALAR.pow(&[w as u64, 0, 0, 0])); let mul_b = mul_b.map(|mul_b| mul_b.to_affine().coordinates().unwrap()); - let x = mul_b.map(|mul_b| *mul_b.x()); + let x = mul_b.map(|mul_b| { + let x = *mul_b.x(); + assert!(x != pallas::Base::zero()); + x + }); let x_cell = region.assign_advice( || format!("mul_b_x, window {}", w), self.x_p, @@ -339,7 +343,11 @@ impl Config { )?; let x = CellValue::new(x_cell, x); - let y = mul_b.map(|mul_b| *mul_b.y()); + let y = mul_b.map(|mul_b| { + let y = *mul_b.y(); + assert!(y != pallas::Base::zero()); + y + }); let y_cell = region.assign_advice( || format!("mul_b_y, window {}", w), self.y_p, @@ -348,7 +356,7 @@ impl Config { )?; let y = CellValue::new(y_cell, y); - EccPoint { x, y } + NonIdentityEccPoint { x, y } }; // Assign u = (y_p + z_w).sqrt() @@ -369,7 +377,7 @@ impl Config { offset: usize, base: OrchardFixedBases, scalar: &ScalarFixed, - ) -> Result { + ) -> Result { // Recall that the message at each window `w` is represented as // `m_w = [(k_w + 2) β‹… 8^w]B`. // When `w = 0`, we have `m_0 = [(k_0 + 2)]B`. @@ -383,10 +391,10 @@ impl Config { &self, region: &mut Region<'_, pallas::Base>, offset: usize, - mut acc: EccPoint, + mut acc: NonIdentityEccPoint, base: OrchardFixedBases, scalar: &ScalarFixed, - ) -> Result { + ) -> Result { let scalar_windows_field = scalar.windows_field(); let scalar_windows_usize = scalar.windows_usize(); @@ -414,7 +422,7 @@ impl Config { offset: usize, base: OrchardFixedBases, scalar: &ScalarFixed, - ) -> Result { + ) -> Result { // Assign u = (y_p + z_w).sqrt() for the most significant window { let u_val = @@ -445,16 +453,25 @@ impl Config { let mul_b = scalar.map(|scalar| base.generator() * scalar); let mul_b = mul_b.map(|mul_b| mul_b.to_affine().coordinates().unwrap()); - let x = mul_b.map(|mul_b| *mul_b.x()); + let x = mul_b.map(|mul_b| { + let x = *mul_b.x(); + assert!(x != pallas::Base::zero()); + x + }); let x_cell = region.assign_advice( || format!("mul_b_x, window {}", NUM_WINDOWS - 1), self.x_p, offset + NUM_WINDOWS - 1, || x.ok_or(Error::SynthesisError), )?; + let x = CellValue::new(x_cell, x); - let y = mul_b.map(|mul_b| *mul_b.y()); + let y = mul_b.map(|mul_b| { + let y = *mul_b.y(); + assert!(y != pallas::Base::zero()); + y + }); let y_cell = region.assign_advice( || format!("mul_b_y, window {}", NUM_WINDOWS - 1), self.y_p, @@ -463,7 +480,7 @@ impl Config { )?; let y = CellValue::new(y_cell, y); - EccPoint { x, y } + NonIdentityEccPoint { x, y } }; Ok(mul_b) diff --git a/src/circuit/gadget/ecc/chip/mul_fixed/base_field_elem.rs b/src/circuit/gadget/ecc/chip/mul_fixed/base_field_elem.rs index 201624da..ff05a331 100644 --- a/src/circuit/gadget/ecc/chip/mul_fixed/base_field_elem.rs +++ b/src/circuit/gadget/ecc/chip/mul_fixed/base_field_elem.rs @@ -196,9 +196,12 @@ impl Config { let result = layouter.assign_region( || "Base-field elem fixed-base mul (complete addition)", |mut region| { - self.super_config - .add_config - .assign_region(&mul_b, &acc, 0, &mut region) + self.super_config.add_config.assign_region( + &mul_b.into(), + &acc.into(), + 0, + &mut region, + ) }, )?; @@ -386,7 +389,7 @@ pub mod tests { use crate::circuit::gadget::{ ecc::{ chip::{EccChip, NullifierK}, - FixedPointBaseField, Point, + FixedPointBaseField, NonIdentityPoint, Point, }, utilities::UtilitiesInstructions, }; @@ -415,7 +418,7 @@ pub mod tests { ) -> Result<(), Error> { let column = chip.config().advices[0]; - fn constrain_equal( + fn constrain_equal_non_id( chip: EccChip, mut layouter: impl Layouter, base_val: pallas::Affine, @@ -424,7 +427,7 @@ pub mod tests { ) -> Result<(), Error> { // Move scalar from base field into scalar field (which always fits for Pallas). let scalar = pallas::Scalar::from_bytes(&scalar_val.to_bytes()).unwrap(); - let expected = Point::new( + let expected = NonIdentityPoint::new( chip, layouter.namespace(|| "expected point"), Some((base_val * scalar).to_affine()), @@ -443,7 +446,7 @@ pub mod tests { )?; base.mul(layouter.namespace(|| "random [a]B"), scalar_fixed)? }; - constrain_equal( + constrain_equal_non_id( chip.clone(), layouter.namespace(|| "random [a]B"), base_val, @@ -471,7 +474,7 @@ pub mod tests { )?; base.mul(layouter.namespace(|| "mul with double"), scalar_fixed)? }; - constrain_equal( + constrain_equal_non_id( chip.clone(), layouter.namespace(|| "mul with double"), base_val, @@ -489,13 +492,7 @@ pub mod tests { chip.load_private(layouter.namespace(|| "zero"), column, Some(scalar_fixed))?; base.mul(layouter.namespace(|| "mul by zero"), scalar_fixed)? }; - constrain_equal( - chip.clone(), - layouter.namespace(|| "mul by zero"), - base_val, - scalar_fixed, - result, - )?; + assert!(result.inner().is_identity().unwrap()); } // [-1]B is the largest base field element @@ -506,7 +503,7 @@ pub mod tests { chip.load_private(layouter.namespace(|| "-1"), column, Some(scalar_fixed))?; base.mul(layouter.namespace(|| "mul by -1"), scalar_fixed)? }; - constrain_equal( + constrain_equal_non_id( chip, layouter.namespace(|| "mul by -1"), base_val, diff --git a/src/circuit/gadget/ecc/chip/mul_fixed/full_width.rs b/src/circuit/gadget/ecc/chip/mul_fixed/full_width.rs index 028b4e53..7212a049 100644 --- a/src/circuit/gadget/ecc/chip/mul_fixed/full_width.rs +++ b/src/circuit/gadget/ecc/chip/mul_fixed/full_width.rs @@ -140,9 +140,12 @@ impl Config { let result = layouter.assign_region( || "Full-width fixed-base mul (last window, complete addition)", |mut region| { - self.super_config - .add_config - .assign_region(&mul_b, &acc, 0, &mut region) + self.super_config.add_config.assign_region( + &mul_b.into(), + &acc.into(), + 0, + &mut region, + ) }, )?; @@ -172,7 +175,7 @@ pub mod tests { use crate::circuit::gadget::ecc::{ chip::{EccChip, OrchardFixedBasesFull}, - FixedPoint, Point, + FixedPoint, NonIdentityPoint, Point, }; use crate::constants; @@ -226,14 +229,14 @@ pub mod tests { base: FixedPoint, base_val: pallas::Affine, ) -> Result<(), Error> { - fn constrain_equal( + fn constrain_equal_non_id( chip: EccChip, mut layouter: impl Layouter, base_val: pallas::Affine, scalar_val: pallas::Scalar, result: Point, ) -> Result<(), Error> { - let expected = Point::new( + let expected = NonIdentityPoint::new( chip, layouter.namespace(|| "expected point"), Some((base_val * scalar_val).to_affine()), @@ -246,7 +249,7 @@ pub mod tests { let scalar_fixed = pallas::Scalar::rand(); let (result, _) = base.mul(layouter.namespace(|| "random [a]B"), Some(scalar_fixed))?; - constrain_equal( + constrain_equal_non_id( chip.clone(), layouter.namespace(|| "random [a]B"), base_val, @@ -269,7 +272,7 @@ pub mod tests { let (result, _) = base.mul(layouter.namespace(|| "mul with double"), Some(scalar_fixed))?; - constrain_equal( + constrain_equal_non_id( chip.clone(), layouter.namespace(|| "mul with double"), base_val, @@ -283,20 +286,14 @@ pub mod tests { { let scalar_fixed = pallas::Scalar::zero(); let (result, _) = base.mul(layouter.namespace(|| "mul by zero"), Some(scalar_fixed))?; - constrain_equal( - chip.clone(), - layouter.namespace(|| "mul by zero"), - base_val, - scalar_fixed, - result, - )?; + assert!(result.inner().is_identity().unwrap()); } // [-1]B is the largest scalar field element. { let scalar_fixed = -pallas::Scalar::one(); let (result, _) = base.mul(layouter.namespace(|| "mul by -1"), Some(scalar_fixed))?; - constrain_equal( + constrain_equal_non_id( chip, layouter.namespace(|| "mul by -1"), base_val, diff --git a/src/circuit/gadget/ecc/chip/mul_fixed/short.rs b/src/circuit/gadget/ecc/chip/mul_fixed/short.rs index 0c3223d7..ac22756b 100644 --- a/src/circuit/gadget/ecc/chip/mul_fixed/short.rs +++ b/src/circuit/gadget/ecc/chip/mul_fixed/short.rs @@ -127,8 +127,8 @@ impl Config { let offset = 0; // Add to the cumulative sum to get `[magnitude]B`. let magnitude_mul = self.super_config.add_config.assign_region( - &mul_b, - &acc, + &mul_b.into(), + &acc.into(), offset, &mut region, )?; @@ -244,7 +244,7 @@ pub mod tests { use pasta_curves::{arithmetic::FieldExt, pallas}; use crate::circuit::gadget::{ - ecc::{chip::EccChip, FixedPointShort, Point}, + ecc::{chip::EccChip, FixedPointShort, NonIdentityPoint, Point}, utilities::{lookup_range_check::LookupRangeCheckConfig, CellValue, UtilitiesInstructions}, }; use crate::constants::load::ValueCommitV; @@ -273,14 +273,14 @@ pub mod tests { Ok((magnitude, sign)) } - fn constrain_equal( + fn constrain_equal_non_id( chip: EccChip, mut layouter: impl Layouter, base_val: pallas::Affine, scalar_val: pallas::Scalar, result: Point, ) -> Result<(), Error> { - let expected = Point::new( + let expected = NonIdentityPoint::new( chip, layouter.namespace(|| "expected point"), Some((base_val * scalar_val).to_affine()), @@ -289,8 +289,6 @@ pub mod tests { } let magnitude_signs = [ - ("mul by +zero", pallas::Base::zero(), pallas::Base::one()), - ("mul by -zero", pallas::Base::zero(), -pallas::Base::one()), ( "random [a]B", pallas::Base::from_u64(rand::random::()), @@ -347,7 +345,7 @@ pub mod tests { }; magnitude * sign }; - constrain_equal( + constrain_equal_non_id( chip.clone(), layouter.namespace(|| *name), base_val, @@ -356,6 +354,24 @@ pub mod tests { )?; } + let zero_magnitude_signs = [ + ("mul by +zero", pallas::Base::zero(), pallas::Base::one()), + ("mul by -zero", pallas::Base::zero(), -pallas::Base::one()), + ]; + + for (name, magnitude, sign) in zero_magnitude_signs.iter() { + let (result, _) = { + let magnitude_sign = load_magnitude_sign( + chip.clone(), + layouter.namespace(|| *name), + *magnitude, + *sign, + )?; + value_commit_v.mul(layouter.namespace(|| *name), magnitude_sign)? + }; + assert!(result.inner().is_identity().unwrap()); + } + Ok(()) } @@ -489,7 +505,7 @@ pub mod tests { Err(vec![ VerifyFailure::ConstraintNotSatisfied { constraint: ( - (16, "Short fixed-base mul gate").into(), + (17, "Short fixed-base mul gate").into(), 0, "last_window_check" ) @@ -521,13 +537,13 @@ pub mod tests { prover.verify(), Err(vec![ VerifyFailure::ConstraintNotSatisfied { - constraint: ((16, "Short fixed-base mul gate").into(), 1, "sign_check") + constraint: ((17, "Short fixed-base mul gate").into(), 1, "sign_check") .into(), row: 26 }, VerifyFailure::ConstraintNotSatisfied { constraint: ( - (16, "Short fixed-base mul gate").into(), + (17, "Short fixed-base mul gate").into(), 3, "negation_check" ) diff --git a/src/circuit/gadget/ecc/chip/witness_point.rs b/src/circuit/gadget/ecc/chip/witness_point.rs index d3edad49..c0a5caef 100644 --- a/src/circuit/gadget/ecc/chip/witness_point.rs +++ b/src/circuit/gadget/ecc/chip/witness_point.rs @@ -1,10 +1,10 @@ -use super::{CellValue, EccConfig, EccPoint, Var}; +use super::{CellValue, EccConfig, EccPoint, NonIdentityEccPoint, Var}; use group::prime::PrimeCurveAffine; use halo2::{ circuit::Region, - plonk::{Advice, Column, ConstraintSystem, Error, Expression, Selector}, + plonk::{Advice, Column, ConstraintSystem, Error, Expression, Selector, VirtualCells}, poly::Rotation, }; use pasta_curves::{arithmetic::CurveAffine, pallas}; @@ -12,6 +12,7 @@ use pasta_curves::{arithmetic::CurveAffine, pallas}; #[derive(Clone, Debug)] pub struct Config { q_point: Selector, + q_point_non_id: Selector, // x-coordinate pub x: Column, // y-coordinate @@ -22,6 +23,7 @@ impl From<&EccConfig> for Config { fn from(ecc_config: &EccConfig) -> Self { Self { q_point: ecc_config.q_point, + q_point_non_id: ecc_config.q_point_non_id, x: ecc_config.advices[0], y: ecc_config.advices[1], } @@ -30,8 +32,16 @@ impl From<&EccConfig> for Config { impl Config { pub(super) fn create_gate(&self, meta: &mut ConstraintSystem) { + let curve_eqn = |meta: &mut VirtualCells| { + let x = meta.query_advice(self.x, Rotation::cur()); + let y = meta.query_advice(self.y, Rotation::cur()); + + // y^2 = x^3 + b + y.square() - (x.clone().square() * x) - Expression::Constant(pallas::Affine::b()) + }; + meta.create_gate("witness point", |meta| { - // Check that either the point being witness is either: + // Check that the point being witnessed is either: // - the identity, which is mapped to (0, 0) in affine coordinates; or // - a valid curve point y^2 = x^3 + b, where b = 5 in the Pallas equation @@ -39,37 +49,28 @@ impl Config { let x = meta.query_advice(self.x, Rotation::cur()); let y = meta.query_advice(self.y, Rotation::cur()); - // y^2 = x^3 + b - let curve_eqn = y.clone().square() - - (x.clone().square() * x.clone()) - - Expression::Constant(pallas::Affine::b()); - vec![ - ("x == 0 ∨ on_curve", q_point.clone() * x * curve_eqn.clone()), - ("y == 0 ∨ on_curve", q_point * y * curve_eqn), + ("x == 0 v on_curve", q_point.clone() * x * curve_eqn(meta)), + ("y == 0 v on_curve", q_point * y * curve_eqn(meta)), ] }); + + meta.create_gate("witness non-identity point", |meta| { + // Check that the point being witnessed is a valid curve point y^2 = x^3 + b, + // where b = 5 in the Pallas equation + + let q_point_non_id = meta.query_selector(self.q_point_non_id); + + vec![("on_curve", q_point_non_id * curve_eqn(meta))] + }); } - pub(super) fn assign_region( + fn assign_xy( &self, - value: Option, + value: Option<(pallas::Base, pallas::Base)>, offset: usize, region: &mut Region<'_, pallas::Base>, - ) -> Result { - // Enable `q_point` selector - self.q_point.enable(region, offset)?; - - let value = value.map(|value| { - // Map the identity to (0, 0). - if value == pallas::Affine::identity() { - (pallas::Base::zero(), pallas::Base::zero()) - } else { - let value = value.coordinates().unwrap(); - (*value.x(), *value.y()) - } - }); - + ) -> Result<(CellValue, CellValue), Error> { // Assign `x` value let x_val = value.map(|value| value.0); let x_var = region.assign_advice( @@ -88,9 +89,83 @@ impl Config { || y_val.ok_or(Error::SynthesisError), )?; - Ok(EccPoint { - x: CellValue::::new(x_var, x_val), - y: CellValue::::new(y_var, y_val), - }) + Ok(( + CellValue::::new(x_var, x_val), + CellValue::::new(y_var, y_val), + )) + } + + /// Assigns a point that can be the identity. + pub(super) fn point( + &self, + value: Option, + offset: usize, + region: &mut Region<'_, pallas::Base>, + ) -> Result { + // Enable `q_point` selector + self.q_point.enable(region, offset)?; + + let value = value.map(|value| { + // Map the identity to (0, 0). + if value == pallas::Affine::identity() { + (pallas::Base::zero(), pallas::Base::zero()) + } else { + let value = value.coordinates().unwrap(); + (*value.x(), *value.y()) + } + }); + + self.assign_xy(value, offset, region) + .map(|(x, y)| EccPoint { x, y }) + } + + /// Assigns a non-identity point. + pub(super) fn point_non_id( + &self, + value: Option, + offset: usize, + region: &mut Region<'_, pallas::Base>, + ) -> Result { + // Enable `q_point_non_id` selector + self.q_point_non_id.enable(region, offset)?; + + if let Some(value) = value { + // Return an error if the point is the identity. + if value == pallas::Affine::identity() { + return Err(Error::SynthesisError); + } + }; + + let value = value.map(|value| { + let value = value.coordinates().unwrap(); + (*value.x(), *value.y()) + }); + + self.assign_xy(value, offset, region) + .map(|(x, y)| NonIdentityEccPoint { x, y }) + } +} + +#[cfg(test)] +pub mod tests { + use halo2::circuit::Layouter; + use pasta_curves::pallas; + + use super::*; + use crate::circuit::gadget::ecc::{EccInstructions, NonIdentityPoint}; + + pub fn test_witness_non_id< + EccChip: EccInstructions + Clone + Eq + std::fmt::Debug, + >( + chip: EccChip, + mut layouter: impl Layouter, + ) { + // Witnessing the identity should return an error. + NonIdentityPoint::new( + chip, + layouter.namespace(|| "witness identity"), + Some(pallas::Affine::identity()), + ) + .expect_err("witnessing π’ͺ should return an error"); } } diff --git a/src/circuit/gadget/sinsemilla.rs b/src/circuit/gadget/sinsemilla.rs index 9a8bc5bd..de562d8d 100644 --- a/src/circuit/gadget/sinsemilla.rs +++ b/src/circuit/gadget/sinsemilla.rs @@ -47,7 +47,7 @@ pub trait SinsemillaInstructions, Q: C, message: Self::Message, - ) -> Result<(Self::Point, Vec), Error>; + ) -> Result<(Self::NonIdentityPoint, Vec), Error>; /// Extracts the x-coordinate of the output of a Sinsemilla hash. - fn extract(point: &Self::Point) -> Self::X; + fn extract(point: &Self::NonIdentityPoint) -> Self::X; } /// A message to be hashed. @@ -238,7 +238,7 @@ pub struct HashDomain< SinsemillaChip: SinsemillaInstructions + Clone + Debug + Eq, EccChip: EccInstructions< C, - Point = >::Point, + NonIdentityPoint = >::NonIdentityPoint, FixedPoints = >::FixedPoints, > + Clone + Debug @@ -255,7 +255,7 @@ where SinsemillaChip: SinsemillaInstructions + Clone + Debug + Eq, EccChip: EccInstructions< C, - Point = >::Point, + NonIdentityPoint = >::NonIdentityPoint, FixedPoints = >::FixedPoints, > + Clone + Debug @@ -283,11 +283,11 @@ where &self, layouter: impl Layouter, message: Message, - ) -> Result<(ecc::Point, Vec), Error> { + ) -> Result<(ecc::NonIdentityPoint, Vec), Error> { assert_eq!(self.sinsemilla_chip, message.chip); self.sinsemilla_chip .hash_to_point(layouter, self.Q, message.inner) - .map(|(point, zs)| (ecc::Point::from_inner(self.ecc_chip.clone(), point), zs)) + .map(|(point, zs)| (ecc::NonIdentityPoint::from_inner(self.ecc_chip.clone(), point), zs)) } /// $\mathsf{SinsemillaHash}$ from [Β§ 5.4.1.9][concretesinsemillahash]. @@ -334,7 +334,7 @@ pub struct CommitDomain< SinsemillaChip: SinsemillaInstructions + Clone + Debug + Eq, EccChip: EccInstructions< C, - Point = >::Point, + NonIdentityPoint = >::NonIdentityPoint, FixedPoints = >::FixedPoints, > + Clone + Debug @@ -350,7 +350,7 @@ where SinsemillaChip: SinsemillaInstructions + Clone + Debug + Eq, EccChip: EccInstructions< C, - Point = >::Point, + NonIdentityPoint = >::NonIdentityPoint, FixedPoints = >::FixedPoints, > + Clone + Debug @@ -377,11 +377,17 @@ where mut layouter: impl Layouter, message: Message, r: Option, - ) -> Result<(ecc::Point, Vec), Error> { + ) -> Result< + ( + ecc::Point, + Vec, + ), + Error, + > { assert_eq!(self.M.sinsemilla_chip, message.chip); let (blind, _) = self.R.mul(layouter.namespace(|| "[r] R"), r)?; let (p, zs) = self.M.hash_to_point(layouter.namespace(|| "M"), message)?; - let commitment = p.add_incomplete(layouter.namespace(|| "M βΈ­ [r] R"), &blind)?; + let commitment = p.add(layouter.namespace(|| "M + [r] R"), &blind)?; Ok((commitment, zs)) } @@ -418,7 +424,7 @@ mod tests { circuit::gadget::{ ecc::{ chip::{EccChip, EccConfig}, - Point, + NonIdentityPoint, }, utilities::lookup_range_check::LookupRangeCheckConfig, }, @@ -572,7 +578,7 @@ mod tests { None }; - Point::new( + NonIdentityPoint::new( ecc_chip.clone(), layouter.namespace(|| "Witness expected parent"), expected_parent, @@ -623,7 +629,7 @@ mod tests { None }; - Point::new( + NonIdentityPoint::new( ecc_chip, layouter.namespace(|| "Witness expected result"), expected_result, diff --git a/src/circuit/gadget/sinsemilla/chip.rs b/src/circuit/gadget/sinsemilla/chip.rs index 9264fdcc..8cac3fea 100644 --- a/src/circuit/gadget/sinsemilla/chip.rs +++ b/src/circuit/gadget/sinsemilla/chip.rs @@ -4,7 +4,7 @@ use super::{ }; use crate::{ circuit::gadget::{ - ecc::chip::EccPoint, + ecc::chip::NonIdentityEccPoint, utilities::{lookup_range_check::LookupRangeCheckConfig, CellValue, Var}, }, constants::OrchardFixedBasesFull, @@ -247,7 +247,7 @@ impl SinsemillaInstructions; type X = CellValue; - type Point = EccPoint; + type NonIdentityPoint = NonIdentityEccPoint; type FixedPoints = OrchardFixedBasesFull; type HashDomains = SinsemillaHashDomains; @@ -282,14 +282,14 @@ impl SinsemillaInstructions, Q: pallas::Affine, message: Self::Message, - ) -> Result<(Self::Point, Vec), Error> { + ) -> Result<(Self::NonIdentityPoint, Vec), Error> { layouter.assign_region( || "hash_to_point", |mut region| self.hash_message(&mut region, Q, &message), ) } - fn extract(point: &Self::Point) -> Self::X { + fn extract(point: &Self::NonIdentityPoint) -> Self::X { point.x() } } diff --git a/src/circuit/gadget/sinsemilla/chip/hash_to_point.rs b/src/circuit/gadget/sinsemilla/chip/hash_to_point.rs index d32d883f..0ec00e29 100644 --- a/src/circuit/gadget/sinsemilla/chip/hash_to_point.rs +++ b/src/circuit/gadget/sinsemilla/chip/hash_to_point.rs @@ -1,5 +1,5 @@ use super::super::SinsemillaInstructions; -use super::{CellValue, EccPoint, SinsemillaChip, Var}; +use super::{CellValue, NonIdentityEccPoint, SinsemillaChip, Var}; use crate::primitives::sinsemilla::{self, lebs2ip_k, INV_TWO_POW_K, SINSEMILLA_S}; use halo2::{ circuit::{Chip, Region}, @@ -26,7 +26,7 @@ impl SinsemillaChip { { sinsemilla::K }, { sinsemilla::C }, >>::Message, - ) -> Result<(EccPoint, Vec>>), Error> { + ) -> Result<(NonIdentityEccPoint, Vec>>), Error> { let config = self.config().clone(); let mut offset = 0; @@ -147,7 +147,17 @@ impl SinsemillaChip { } } - Ok((EccPoint::from_coordinates_unchecked(x_a.0, y_a), zs_sum)) + if let Some(x_a) = x_a.value() { + if let Some(y_a) = y_a.value() { + if x_a == pallas::Base::zero() || y_a == pallas::Base::zero() { + return Err(Error::SynthesisError); + } + } + } + Ok(( + NonIdentityEccPoint::from_coordinates_unchecked(x_a.0, y_a), + zs_sum, + )) } #[allow(clippy::type_complexity)] diff --git a/src/circuit/gadget/sinsemilla/merkle/chip.rs b/src/circuit/gadget/sinsemilla/merkle/chip.rs index 612936e2..ce25531e 100644 --- a/src/circuit/gadget/sinsemilla/merkle/chip.rs +++ b/src/circuit/gadget/sinsemilla/merkle/chip.rs @@ -417,11 +417,11 @@ impl SinsemillaInstructions>::X; - type Point = >::Point; + >>::NonIdentityPoint; type FixedPoints = , Q: pallas::Affine, message: Self::Message, - ) -> Result<(Self::Point, Vec>), Error> { + ) -> Result<(Self::NonIdentityPoint, Vec>), Error> { let config = self.config().sinsemilla_config.clone(); let chip = SinsemillaChip::construct(config); chip.hash_to_point(layouter, Q, message) } - fn extract(point: &Self::Point) -> Self::X { + fn extract(point: &Self::NonIdentityPoint) -> Self::X { SinsemillaChip::extract(point) } } diff --git a/src/circuit/gadget/sinsemilla/note_commit.rs b/src/circuit/gadget/sinsemilla/note_commit.rs index d1786d96..89174f4d 100644 --- a/src/circuit/gadget/sinsemilla/note_commit.rs +++ b/src/circuit/gadget/sinsemilla/note_commit.rs @@ -8,7 +8,7 @@ use pasta_curves::{arithmetic::FieldExt, pallas}; use crate::{ circuit::gadget::{ ecc::{ - chip::{EccChip, EccPoint}, + chip::{EccChip, NonIdentityEccPoint}, Point, }, utilities::{bitrange_subset, bool_check, copy, CellValue, Var}, @@ -523,8 +523,8 @@ impl NoteCommitConfig { mut layouter: impl Layouter, chip: SinsemillaChip, ecc_chip: EccChip, - g_d: &EccPoint, - pk_d: &EccPoint, + g_d: &NonIdentityEccPoint, + pk_d: &NonIdentityEccPoint, value: CellValue, rho: CellValue, psi: CellValue, @@ -1432,7 +1432,7 @@ mod tests { circuit::gadget::{ ecc::{ chip::{EccChip, EccConfig}, - Point, + NonIdentityPoint, }, sinsemilla::chip::SinsemillaChip, utilities::{ @@ -1566,7 +1566,11 @@ mod tests { pallas::Affine::from_xy(x, y).unwrap() }); - Point::new(ecc_chip.clone(), layouter.namespace(|| "witness g_d"), g_d)? + NonIdentityPoint::new( + ecc_chip.clone(), + layouter.namespace(|| "witness g_d"), + g_d, + )? }; // Witness pk_d @@ -1580,7 +1584,7 @@ mod tests { pallas::Affine::from_xy(x, y).unwrap() }); - Point::new( + NonIdentityPoint::new( ecc_chip.clone(), layouter.namespace(|| "witness pk_d"), pk_d, @@ -1674,7 +1678,11 @@ mod tests { ) .unwrap() .to_affine(); - Point::new(ecc_chip, layouter.namespace(|| "witness g_d"), Some(point))? + NonIdentityPoint::new( + ecc_chip, + layouter.namespace(|| "witness cm"), + Some(point), + )? }; cm.constrain_equal(layouter.namespace(|| "cm == expected cm"), &expected_cm) } diff --git a/src/circuit_description b/src/circuit_description index b5c920ab..509f45df 100644 --- a/src/circuit_description +++ b/src/circuit_description @@ -10,7 +10,7 @@ PinnedVerificationKey { num_fixed_columns: 29, num_advice_columns: 10, num_instance_columns: 1, - num_selectors: 55, + num_selectors: 56, selector_map: [ Column { index: 18, @@ -108,6 +108,10 @@ PinnedVerificationKey { index: 24, column_type: Fixed, }, + Column { + index: 24, + column_type: Fixed, + }, Column { index: 16, column_type: Fixed, @@ -121,7 +125,7 @@ PinnedVerificationKey { column_type: Fixed, }, Column { - index: 24, + index: 25, column_type: Fixed, }, Column { @@ -133,21 +137,17 @@ PinnedVerificationKey { column_type: Fixed, }, Column { - index: 25, + index: 26, + column_type: Fixed, + }, + Column { + index: 26, column_type: Fixed, }, Column { index: 25, column_type: Fixed, }, - Column { - index: 24, - column_type: Fixed, - }, - Column { - index: 24, - column_type: Fixed, - }, Column { index: 25, column_type: Fixed, @@ -180,14 +180,6 @@ PinnedVerificationKey { index: 26, column_type: Fixed, }, - Column { - index: 26, - column_type: Fixed, - }, - Column { - index: 26, - column_type: Fixed, - }, Column { index: 27, column_type: Fixed, @@ -232,6 +224,18 @@ PinnedVerificationKey { index: 28, column_type: Fixed, }, + Column { + index: 28, + column_type: Fixed, + }, + Column { + index: 28, + column_type: Fixed, + }, + Column { + index: 28, + column_type: Fixed, + }, ], gates: [ Product( @@ -1412,6 +1416,115 @@ PinnedVerificationKey { ), ), ), + Product( + Product( + Product( + Product( + Fixed { + query_index: 23, + column_index: 23, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 23, + column_index: 23, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 23, + column_index: 23, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 23, + column_index: 23, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Product( + Advice { + query_index: 1, + column_index: 1, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 1, + column_index: 1, + rotation: Rotation( + 0, + ), + }, + ), + Negated( + Product( + Product( + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + ), + Advice { + query_index: 0, + column_index: 0, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Negated( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + ), + ), + ), Product( Product( Product( @@ -10702,7 +10815,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000003, ), Negated( Fixed { @@ -11047,7 +11160,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000003, ), Negated( Fixed { @@ -11392,7 +11505,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000003, ), Negated( Fixed { @@ -11699,20 +11812,20 @@ PinnedVerificationKey { Product( Product( Fixed { - query_index: 23, - column_index: 23, + query_index: 24, + column_index: 24, rotation: Rotation( 0, ), }, Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000002, ), Negated( Fixed { - query_index: 23, - column_index: 23, + query_index: 24, + column_index: 24, rotation: Rotation( 0, ), @@ -11722,12 +11835,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000003, ), Negated( Fixed { - query_index: 23, - column_index: 23, + query_index: 24, + column_index: 24, rotation: Rotation( 0, ), @@ -11737,12 +11850,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { - query_index: 23, - column_index: 23, + query_index: 24, + column_index: 24, rotation: Rotation( 0, ), @@ -11855,20 +11968,20 @@ PinnedVerificationKey { Product( Product( Fixed { - query_index: 23, - column_index: 23, + query_index: 24, + column_index: 24, rotation: Rotation( 0, ), }, Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000002, ), Negated( Fixed { - query_index: 23, - column_index: 23, + query_index: 24, + column_index: 24, rotation: Rotation( 0, ), @@ -11878,12 +11991,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000003, ), Negated( Fixed { - query_index: 23, - column_index: 23, + query_index: 24, + column_index: 24, rotation: Rotation( 0, ), @@ -11893,12 +12006,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { - query_index: 23, - column_index: 23, + query_index: 24, + column_index: 24, rotation: Rotation( 0, ), @@ -12263,20 +12376,20 @@ PinnedVerificationKey { Product( Product( Fixed { - query_index: 23, - column_index: 23, + query_index: 24, + column_index: 24, rotation: Rotation( 0, ), }, Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000002, ), Negated( Fixed { - query_index: 23, - column_index: 23, + query_index: 24, + column_index: 24, rotation: Rotation( 0, ), @@ -12286,12 +12399,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000003, ), Negated( Fixed { - query_index: 23, - column_index: 23, + query_index: 24, + column_index: 24, rotation: Rotation( 0, ), @@ -12301,12 +12414,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { - query_index: 23, - column_index: 23, + query_index: 24, + column_index: 24, rotation: Rotation( 0, ), @@ -12419,20 +12532,20 @@ PinnedVerificationKey { Product( Product( Fixed { - query_index: 23, - column_index: 23, + query_index: 24, + column_index: 24, rotation: Rotation( 0, ), }, Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000002, ), Negated( Fixed { - query_index: 23, - column_index: 23, + query_index: 24, + column_index: 24, rotation: Rotation( 0, ), @@ -12442,12 +12555,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000003, ), Negated( Fixed { - query_index: 23, - column_index: 23, + query_index: 24, + column_index: 24, rotation: Rotation( 0, ), @@ -12457,12 +12570,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { - query_index: 23, - column_index: 23, + query_index: 24, + column_index: 24, rotation: Rotation( 0, ), @@ -12574,48 +12687,16 @@ PinnedVerificationKey { Product( Product( Product( - Product( - Product( - Fixed { - query_index: 24, - column_index: 24, - rotation: Rotation( - 0, - ), - }, - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, - ), - Negated( - Fixed { - query_index: 24, - column_index: 24, - rotation: Rotation( - 0, - ), - }, - ), - ), + Fixed { + query_index: 24, + column_index: 24, + rotation: Rotation( + 0, ), - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, - ), - Negated( - Fixed { - query_index: 24, - column_index: 24, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), + }, Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000001, ), Negated( Fixed { @@ -12630,7 +12711,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, + 0x0000000000000000000000000000000000000000000000000000000000000003, ), Negated( Fixed { @@ -12645,7 +12726,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000006, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { @@ -12690,48 +12771,16 @@ PinnedVerificationKey { Product( Product( Product( - Product( - Product( - Fixed { - query_index: 24, - column_index: 24, - rotation: Rotation( - 0, - ), - }, - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, - ), - Negated( - Fixed { - query_index: 24, - column_index: 24, - rotation: Rotation( - 0, - ), - }, - ), - ), + Fixed { + query_index: 24, + column_index: 24, + rotation: Rotation( + 0, ), - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, - ), - Negated( - Fixed { - query_index: 24, - column_index: 24, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), + }, Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000001, ), Negated( Fixed { @@ -12746,7 +12795,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, + 0x0000000000000000000000000000000000000000000000000000000000000003, ), Negated( Fixed { @@ -12761,7 +12810,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000006, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { @@ -12806,48 +12855,16 @@ PinnedVerificationKey { Product( Product( Product( - Product( - Product( - Fixed { - query_index: 24, - column_index: 24, - rotation: Rotation( - 0, - ), - }, - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, - ), - Negated( - Fixed { - query_index: 24, - column_index: 24, - rotation: Rotation( - 0, - ), - }, - ), - ), + Fixed { + query_index: 24, + column_index: 24, + rotation: Rotation( + 0, ), - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, - ), - Negated( - Fixed { - query_index: 24, - column_index: 24, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), + }, Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000001, ), Negated( Fixed { @@ -12862,7 +12879,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, + 0x0000000000000000000000000000000000000000000000000000000000000003, ), Negated( Fixed { @@ -12877,7 +12894,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000006, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { @@ -12913,48 +12930,16 @@ PinnedVerificationKey { Product( Product( Product( - Product( - Product( - Fixed { - query_index: 24, - column_index: 24, - rotation: Rotation( - 0, - ), - }, - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000001, - ), - Negated( - Fixed { - query_index: 24, - column_index: 24, - rotation: Rotation( - 0, - ), - }, - ), - ), + Fixed { + query_index: 24, + column_index: 24, + rotation: Rotation( + 0, ), - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, - ), - Negated( - Fixed { - query_index: 24, - column_index: 24, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), + }, Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000001, ), Negated( Fixed { @@ -12969,7 +12954,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, + 0x0000000000000000000000000000000000000000000000000000000000000002, ), Negated( Fixed { @@ -12984,7 +12969,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000006, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { @@ -13419,48 +13404,16 @@ PinnedVerificationKey { Product( Product( Product( - Product( - Product( - Fixed { - query_index: 24, - column_index: 24, - rotation: Rotation( - 0, - ), - }, - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000001, - ), - Negated( - Fixed { - query_index: 24, - column_index: 24, - rotation: Rotation( - 0, - ), - }, - ), - ), + Fixed { + query_index: 24, + column_index: 24, + rotation: Rotation( + 0, ), - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, - ), - Negated( - Fixed { - query_index: 24, - column_index: 24, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), + }, Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000001, ), Negated( Fixed { @@ -13475,7 +13428,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, + 0x0000000000000000000000000000000000000000000000000000000000000002, ), Negated( Fixed { @@ -13490,7 +13443,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000006, + 0x0000000000000000000000000000000000000000000000000000000000000003, ), Negated( Fixed { @@ -13562,48 +13515,16 @@ PinnedVerificationKey { Product( Product( Product( - Product( - Product( - Fixed { - query_index: 24, - column_index: 24, - rotation: Rotation( - 0, - ), - }, - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000001, - ), - Negated( - Fixed { - query_index: 24, - column_index: 24, - rotation: Rotation( - 0, - ), - }, - ), - ), + Fixed { + query_index: 24, + column_index: 24, + rotation: Rotation( + 0, ), - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, - ), - Negated( - Fixed { - query_index: 24, - column_index: 24, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), + }, Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000001, ), Negated( Fixed { @@ -13618,7 +13539,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, + 0x0000000000000000000000000000000000000000000000000000000000000002, ), Negated( Fixed { @@ -13633,7 +13554,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000006, + 0x0000000000000000000000000000000000000000000000000000000000000003, ), Negated( Fixed { @@ -13705,48 +13626,16 @@ PinnedVerificationKey { Product( Product( Product( - Product( - Product( - Fixed { - query_index: 24, - column_index: 24, - rotation: Rotation( - 0, - ), - }, - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000001, - ), - Negated( - Fixed { - query_index: 24, - column_index: 24, - rotation: Rotation( - 0, - ), - }, - ), - ), + Fixed { + query_index: 24, + column_index: 24, + rotation: Rotation( + 0, ), - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, - ), - Negated( - Fixed { - query_index: 24, - column_index: 24, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), + }, Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000001, ), Negated( Fixed { @@ -13761,7 +13650,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, + 0x0000000000000000000000000000000000000000000000000000000000000002, ), Negated( Fixed { @@ -13776,7 +13665,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000006, + 0x0000000000000000000000000000000000000000000000000000000000000003, ), Negated( Fixed { @@ -13820,20 +13709,20 @@ PinnedVerificationKey { Product( Product( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), }, Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000002, ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -13843,12 +13732,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000003, ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -13858,12 +13747,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -13877,8 +13766,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -13892,8 +13781,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -13941,20 +13830,20 @@ PinnedVerificationKey { Product( Product( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), }, Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000002, ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -13964,12 +13853,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000003, ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -13979,12 +13868,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -13998,8 +13887,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -14013,8 +13902,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -14086,20 +13975,20 @@ PinnedVerificationKey { Product( Product( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), }, Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000002, ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -14109,12 +13998,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000003, ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -14124,12 +14013,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -14143,8 +14032,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -14158,8 +14047,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -14205,20 +14094,20 @@ PinnedVerificationKey { Product( Product( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), }, Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000002, ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -14228,12 +14117,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000003, ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -14243,12 +14132,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -14262,8 +14151,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -14277,8 +14166,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -14332,7 +14221,7 @@ PinnedVerificationKey { }, Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000001, ), Negated( Fixed { @@ -14829,21 +14718,37 @@ PinnedVerificationKey { Product( Product( Product( - Fixed { - query_index: 25, - column_index: 25, - rotation: Rotation( - 0, + Product( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), ), - }, + ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000003, ), Negated( Fixed { - query_index: 25, - column_index: 25, + query_index: 26, + column_index: 26, rotation: Rotation( 0, ), @@ -14853,12 +14758,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { - query_index: 25, - column_index: 25, + query_index: 26, + column_index: 26, rotation: Rotation( 0, ), @@ -14868,12 +14773,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { - query_index: 25, - column_index: 25, + query_index: 26, + column_index: 26, rotation: Rotation( 0, ), @@ -14883,12 +14788,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, + 0x0000000000000000000000000000000000000000000000000000000000000006, ), Negated( Fixed { - query_index: 25, - column_index: 25, + query_index: 26, + column_index: 26, rotation: Rotation( 0, ), @@ -14898,12 +14803,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000006, + 0x0000000000000000000000000000000000000000000000000000000000000007, ), Negated( Fixed { - query_index: 25, - column_index: 25, + query_index: 26, + column_index: 26, rotation: Rotation( 0, ), @@ -14972,21 +14877,37 @@ PinnedVerificationKey { Product( Product( Product( - Fixed { - query_index: 25, - column_index: 25, - rotation: Rotation( - 0, + Product( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), ), - }, + ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000003, ), Negated( Fixed { - query_index: 25, - column_index: 25, + query_index: 26, + column_index: 26, rotation: Rotation( 0, ), @@ -14996,12 +14917,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { - query_index: 25, - column_index: 25, + query_index: 26, + column_index: 26, rotation: Rotation( 0, ), @@ -15011,12 +14932,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { - query_index: 25, - column_index: 25, + query_index: 26, + column_index: 26, rotation: Rotation( 0, ), @@ -15026,12 +14947,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, + 0x0000000000000000000000000000000000000000000000000000000000000006, ), Negated( Fixed { - query_index: 25, - column_index: 25, + query_index: 26, + column_index: 26, rotation: Rotation( 0, ), @@ -15041,12 +14962,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000006, + 0x0000000000000000000000000000000000000000000000000000000000000007, ), Negated( Fixed { - query_index: 25, - column_index: 25, + query_index: 26, + column_index: 26, rotation: Rotation( 0, ), @@ -15115,21 +15036,37 @@ PinnedVerificationKey { Product( Product( Product( - Fixed { - query_index: 25, - column_index: 25, - rotation: Rotation( - 0, + Product( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), ), - }, + ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000003, ), Negated( Fixed { - query_index: 25, - column_index: 25, + query_index: 26, + column_index: 26, rotation: Rotation( 0, ), @@ -15139,12 +15076,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { - query_index: 25, - column_index: 25, + query_index: 26, + column_index: 26, rotation: Rotation( 0, ), @@ -15154,12 +15091,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { - query_index: 25, - column_index: 25, + query_index: 26, + column_index: 26, rotation: Rotation( 0, ), @@ -15169,12 +15106,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, + 0x0000000000000000000000000000000000000000000000000000000000000006, ), Negated( Fixed { - query_index: 25, - column_index: 25, + query_index: 26, + column_index: 26, rotation: Rotation( 0, ), @@ -15184,12 +15121,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000006, + 0x0000000000000000000000000000000000000000000000000000000000000007, ), Negated( Fixed { - query_index: 25, - column_index: 25, + query_index: 26, + column_index: 26, rotation: Rotation( 0, ), @@ -15227,21 +15164,37 @@ PinnedVerificationKey { Product( Product( Product( - Fixed { - query_index: 25, - column_index: 25, - rotation: Rotation( - 0, + Product( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), ), - }, + ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000003, ), Negated( Fixed { - query_index: 25, - column_index: 25, + query_index: 26, + column_index: 26, rotation: Rotation( 0, ), @@ -15251,12 +15204,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { - query_index: 25, - column_index: 25, + query_index: 26, + column_index: 26, rotation: Rotation( 0, ), @@ -15266,12 +15219,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { - query_index: 25, - column_index: 25, + query_index: 26, + column_index: 26, rotation: Rotation( 0, ), @@ -15281,12 +15234,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, + 0x0000000000000000000000000000000000000000000000000000000000000006, ), Negated( Fixed { - query_index: 25, - column_index: 25, + query_index: 26, + column_index: 26, rotation: Rotation( 0, ), @@ -15296,12 +15249,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000006, + 0x0000000000000000000000000000000000000000000000000000000000000007, ), Negated( Fixed { - query_index: 25, - column_index: 25, + query_index: 26, + column_index: 26, rotation: Rotation( 0, ), @@ -15348,21 +15301,37 @@ PinnedVerificationKey { Product( Product( Product( - Fixed { - query_index: 25, - column_index: 25, - rotation: Rotation( - 0, + Product( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), ), - }, + ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000003, ), Negated( Fixed { - query_index: 25, - column_index: 25, + query_index: 26, + column_index: 26, rotation: Rotation( 0, ), @@ -15372,12 +15341,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { - query_index: 25, - column_index: 25, + query_index: 26, + column_index: 26, rotation: Rotation( 0, ), @@ -15387,12 +15356,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { - query_index: 25, - column_index: 25, + query_index: 26, + column_index: 26, rotation: Rotation( 0, ), @@ -15402,12 +15371,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, + 0x0000000000000000000000000000000000000000000000000000000000000006, ), Negated( Fixed { - query_index: 25, - column_index: 25, + query_index: 26, + column_index: 26, rotation: Rotation( 0, ), @@ -15417,12 +15386,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000006, + 0x0000000000000000000000000000000000000000000000000000000000000007, ), Negated( Fixed { - query_index: 25, - column_index: 25, + query_index: 26, + column_index: 26, rotation: Rotation( 0, ), @@ -15493,21 +15462,37 @@ PinnedVerificationKey { Product( Product( Product( - Fixed { - query_index: 25, - column_index: 25, - rotation: Rotation( - 0, + Product( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), ), - }, + ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000003, ), Negated( Fixed { - query_index: 25, - column_index: 25, + query_index: 26, + column_index: 26, rotation: Rotation( 0, ), @@ -15517,12 +15502,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { - query_index: 25, - column_index: 25, + query_index: 26, + column_index: 26, rotation: Rotation( 0, ), @@ -15532,12 +15517,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { - query_index: 25, - column_index: 25, + query_index: 26, + column_index: 26, rotation: Rotation( 0, ), @@ -15547,12 +15532,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, + 0x0000000000000000000000000000000000000000000000000000000000000006, ), Negated( Fixed { - query_index: 25, - column_index: 25, + query_index: 26, + column_index: 26, rotation: Rotation( 0, ), @@ -15562,12 +15547,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000006, + 0x0000000000000000000000000000000000000000000000000000000000000007, ), Negated( Fixed { - query_index: 25, - column_index: 25, + query_index: 26, + column_index: 26, rotation: Rotation( 0, ), @@ -15612,21 +15597,37 @@ PinnedVerificationKey { Product( Product( Product( - Fixed { - query_index: 25, - column_index: 25, - rotation: Rotation( - 0, + Product( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), ), - }, + ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000003, ), Negated( Fixed { - query_index: 25, - column_index: 25, + query_index: 26, + column_index: 26, rotation: Rotation( 0, ), @@ -15636,12 +15637,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { - query_index: 25, - column_index: 25, + query_index: 26, + column_index: 26, rotation: Rotation( 0, ), @@ -15651,12 +15652,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { - query_index: 25, - column_index: 25, + query_index: 26, + column_index: 26, rotation: Rotation( 0, ), @@ -15666,12 +15667,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, + 0x0000000000000000000000000000000000000000000000000000000000000006, ), Negated( Fixed { - query_index: 25, - column_index: 25, + query_index: 26, + column_index: 26, rotation: Rotation( 0, ), @@ -15681,12 +15682,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000006, + 0x0000000000000000000000000000000000000000000000000000000000000007, ), Negated( Fixed { - query_index: 25, - column_index: 25, + query_index: 26, + column_index: 26, rotation: Rotation( 0, ), @@ -15732,8 +15733,8 @@ PinnedVerificationKey { Product( Product( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -15744,8 +15745,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -15759,8 +15760,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -15770,12 +15771,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -15785,12 +15786,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -15804,8 +15805,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -15844,8 +15845,8 @@ PinnedVerificationKey { Product( Product( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -15856,8 +15857,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -15871,8 +15872,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -15882,12 +15883,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -15897,12 +15898,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -15916,8 +15917,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -15956,8 +15957,8 @@ PinnedVerificationKey { Product( Product( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -15968,8 +15969,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -15983,8 +15984,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -15994,12 +15995,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -16009,12 +16010,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -16028,8 +16029,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -16087,8 +16088,8 @@ PinnedVerificationKey { Product( Product( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -16099,8 +16100,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -16114,8 +16115,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -16125,12 +16126,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -16140,12 +16141,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -16159,8 +16160,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -16206,8 +16207,8 @@ PinnedVerificationKey { Product( Product( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -16218,8 +16219,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -16233,8 +16234,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -16244,12 +16245,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -16259,12 +16260,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -16278,8 +16279,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -16337,8 +16338,8 @@ PinnedVerificationKey { Product( Product( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -16349,8 +16350,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -16364,8 +16365,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -16375,12 +16376,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -16390,12 +16391,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -16409,8 +16410,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -16480,8 +16481,8 @@ PinnedVerificationKey { Product( Product( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -16492,8 +16493,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -16507,8 +16508,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -16518,12 +16519,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -16533,12 +16534,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -16552,8 +16553,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -16585,8 +16586,8 @@ PinnedVerificationKey { Product( Product( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -16597,8 +16598,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -16612,8 +16613,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -16623,12 +16624,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -16638,12 +16639,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -16657,8 +16658,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -16690,8 +16691,8 @@ PinnedVerificationKey { Product( Product( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -16702,8 +16703,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -16717,8 +16718,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -16728,12 +16729,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -16743,12 +16744,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -16762,8 +16763,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -16809,8 +16810,8 @@ PinnedVerificationKey { Product( Product( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -16821,8 +16822,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -16836,8 +16837,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -16847,12 +16848,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -16862,12 +16863,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -16881,8 +16882,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -16914,8 +16915,8 @@ PinnedVerificationKey { Product( Product( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -16926,8 +16927,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -16941,8 +16942,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -16952,12 +16953,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -16967,12 +16968,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -16986,8 +16987,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -17019,8 +17020,8 @@ PinnedVerificationKey { Product( Product( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -17031,8 +17032,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -17046,8 +17047,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -17057,12 +17058,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -17072,12 +17073,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -17091,8 +17092,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -17124,8 +17125,8 @@ PinnedVerificationKey { Product( Product( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -17136,8 +17137,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -17151,8 +17152,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -17162,12 +17163,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -17177,12 +17178,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -17196,8 +17197,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -17255,8 +17256,8 @@ PinnedVerificationKey { Product( Product( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -17267,8 +17268,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -17282,8 +17283,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -17293,12 +17294,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -17308,12 +17309,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -17327,8 +17328,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -17360,8 +17361,8 @@ PinnedVerificationKey { Product( Product( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -17372,8 +17373,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -17387,8 +17388,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -17402,8 +17403,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -17413,12 +17414,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -17428,12 +17429,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, + 0x0000000000000000000000000000000000000000000000000000000000000006, ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -17472,8 +17473,8 @@ PinnedVerificationKey { Product( Product( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -17484,8 +17485,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -17499,8 +17500,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -17514,8 +17515,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -17525,12 +17526,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -17540,12 +17541,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, + 0x0000000000000000000000000000000000000000000000000000000000000006, ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -17584,8 +17585,8 @@ PinnedVerificationKey { Product( Product( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -17596,8 +17597,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -17611,8 +17612,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -17626,8 +17627,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -17637,12 +17638,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -17652,12 +17653,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, + 0x0000000000000000000000000000000000000000000000000000000000000006, ), Negated( Fixed { - query_index: 24, - column_index: 24, + query_index: 25, + column_index: 25, rotation: Rotation( 0, ), @@ -17780,7 +17781,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { @@ -17892,7 +17893,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { @@ -18004,7 +18005,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { @@ -18162,7 +18163,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000006, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { @@ -18212,21 +18213,37 @@ PinnedVerificationKey { Product( Product( Product( - Fixed { - query_index: 25, - column_index: 25, - rotation: Rotation( - 0, + Product( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), ), - }, + ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000002, ), Negated( Fixed { - query_index: 25, - column_index: 25, + query_index: 26, + column_index: 26, rotation: Rotation( 0, ), @@ -18236,12 +18253,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { - query_index: 25, - column_index: 25, + query_index: 26, + column_index: 26, rotation: Rotation( 0, ), @@ -18251,12 +18268,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { - query_index: 25, - column_index: 25, + query_index: 26, + column_index: 26, rotation: Rotation( 0, ), @@ -18266,12 +18283,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000006, ), Negated( Fixed { - query_index: 25, - column_index: 25, + query_index: 26, + column_index: 26, rotation: Rotation( 0, ), @@ -18281,12 +18298,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, + 0x0000000000000000000000000000000000000000000000000000000000000007, ), Negated( Fixed { - query_index: 25, - column_index: 25, + query_index: 26, + column_index: 26, rotation: Rotation( 0, ), @@ -18324,21 +18341,37 @@ PinnedVerificationKey { Product( Product( Product( - Fixed { - query_index: 25, - column_index: 25, - rotation: Rotation( - 0, + Product( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), ), - }, + ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000002, ), Negated( Fixed { - query_index: 25, - column_index: 25, + query_index: 26, + column_index: 26, rotation: Rotation( 0, ), @@ -18348,12 +18381,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { - query_index: 25, - column_index: 25, + query_index: 26, + column_index: 26, rotation: Rotation( 0, ), @@ -18363,12 +18396,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { - query_index: 25, - column_index: 25, + query_index: 26, + column_index: 26, rotation: Rotation( 0, ), @@ -18378,12 +18411,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000006, ), Negated( Fixed { - query_index: 25, - column_index: 25, + query_index: 26, + column_index: 26, rotation: Rotation( 0, ), @@ -18393,12 +18426,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, + 0x0000000000000000000000000000000000000000000000000000000000000007, ), Negated( Fixed { - query_index: 25, - column_index: 25, + query_index: 26, + column_index: 26, rotation: Rotation( 0, ), @@ -18465,7 +18498,7 @@ PinnedVerificationKey { }, Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000001, ), Negated( Fixed { @@ -18480,7 +18513,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000002, ), Negated( Fixed { @@ -18495,7 +18528,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000003, ), Negated( Fixed { @@ -18593,7 +18626,7 @@ PinnedVerificationKey { }, Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000001, ), Negated( Fixed { @@ -18608,7 +18641,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000002, ), Negated( Fixed { @@ -18623,7 +18656,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000003, ), Negated( Fixed { @@ -18743,7 +18776,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000002, ), Negated( Fixed { @@ -18758,7 +18791,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000003, ), Negated( Fixed { @@ -18773,7 +18806,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { @@ -18890,7 +18923,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000002, ), Negated( Fixed { @@ -18905,7 +18938,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000003, ), Negated( Fixed { @@ -18920,7 +18953,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { @@ -19025,7 +19058,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000002, ), Negated( Fixed { @@ -19040,7 +19073,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000003, ), Negated( Fixed { @@ -19055,7 +19088,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { @@ -19115,1225 +19148,6 @@ PinnedVerificationKey { }, ), ), - Product( - Product( - Product( - Product( - Product( - Product( - Product( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000001, - ), - Negated( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, - ), - Negated( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, - ), - Negated( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, - ), - Negated( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000006, - ), - Negated( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000007, - ), - Negated( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Product( - Advice { - query_index: 18, - column_index: 7, - rotation: Rotation( - 1, - ), - }, - Advice { - query_index: 9, - column_index: 9, - rotation: Rotation( - 0, - ), - }, - ), - ), - Product( - Product( - Product( - Product( - Product( - Product( - Product( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000001, - ), - Negated( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, - ), - Negated( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, - ), - Negated( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, - ), - Negated( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000006, - ), - Negated( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000007, - ), - Negated( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Product( - Advice { - query_index: 18, - column_index: 7, - rotation: Rotation( - 1, - ), - }, - Advice { - query_index: 10, - column_index: 9, - rotation: Rotation( - 1, - ), - }, - ), - ), - Product( - Product( - Product( - Product( - Product( - Product( - Product( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000001, - ), - Negated( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, - ), - Negated( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, - ), - Negated( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, - ), - Negated( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000006, - ), - Negated( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000007, - ), - Negated( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Sum( - Sum( - Sum( - Advice { - query_index: 7, - column_index: 7, - rotation: Rotation( - 0, - ), - }, - Scaled( - Advice { - query_index: 8, - column_index: 8, - rotation: Rotation( - 0, - ), - }, - 0x0000000000000000000000000000000000000000000000000000000000000010, - ), - ), - Scaled( - Advice { - query_index: 18, - column_index: 7, - rotation: Rotation( - 1, - ), - }, - 0x4000000000000000000000000000000000000000000000000000000000000000, - ), - ), - Negated( - Advice { - query_index: 6, - column_index: 6, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Product( - Product( - Product( - Product( - Product( - Product( - Product( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000001, - ), - Negated( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, - ), - Negated( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, - ), - Negated( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, - ), - Negated( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000006, - ), - Negated( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000007, - ), - Negated( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Sum( - Sum( - Sum( - Sum( - Advice { - query_index: 7, - column_index: 7, - rotation: Rotation( - 0, - ), - }, - Scaled( - Advice { - query_index: 8, - column_index: 8, - rotation: Rotation( - 0, - ), - }, - 0x0000000000000000000000000000000000000000000000000000000000000010, - ), - ), - Constant( - 0x0000000000000000000000000000100000000000000000000000000000000000, - ), - ), - Negated( - Constant( - 0x00000000000000000000000000000000224698fc094cf91b992d30ed00000001, - ), - ), - ), - Negated( - Advice { - query_index: 19, - column_index: 8, - rotation: Rotation( - 1, - ), - }, - ), - ), - ), - Product( - Product( - Product( - Product( - Product( - Product( - Product( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000001, - ), - Negated( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, - ), - Negated( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, - ), - Negated( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, - ), - Negated( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000006, - ), - Negated( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000007, - ), - Negated( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Product( - Advice { - query_index: 18, - column_index: 7, - rotation: Rotation( - 1, - ), - }, - Advice { - query_index: 9, - column_index: 9, - rotation: Rotation( - 0, - ), - }, - ), - ), - Product( - Product( - Product( - Product( - Product( - Product( - Product( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000001, - ), - Negated( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, - ), - Negated( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, - ), - Negated( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, - ), - Negated( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000006, - ), - Negated( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000007, - ), - Negated( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Product( - Advice { - query_index: 18, - column_index: 7, - rotation: Rotation( - 1, - ), - }, - Advice { - query_index: 10, - column_index: 9, - rotation: Rotation( - 1, - ), - }, - ), - ), - Product( - Product( - Product( - Product( - Product( - Product( - Product( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000001, - ), - Negated( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, - ), - Negated( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, - ), - Negated( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, - ), - Negated( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000006, - ), - Negated( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000007, - ), - Negated( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Sum( - Sum( - Sum( - Advice { - query_index: 7, - column_index: 7, - rotation: Rotation( - 0, - ), - }, - Scaled( - Advice { - query_index: 8, - column_index: 8, - rotation: Rotation( - 0, - ), - }, - 0x0000000000000000000000000000000000000000000000000000000000000100, - ), - ), - Scaled( - Advice { - query_index: 9, - column_index: 9, - rotation: Rotation( - 0, - ), - }, - 0x0000000000000000000000000000000000000000000000000400000000000000, - ), - ), - Negated( - Advice { - query_index: 6, - column_index: 6, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Product( - Product( - Product( - Product( - Product( - Product( - Product( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000001, - ), - Negated( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, - ), - Negated( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, - ), - Negated( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, - ), - Negated( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000006, - ), - Negated( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000007, - ), - Negated( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Sum( - Sum( - Sum( - Advice { - query_index: 7, - column_index: 7, - rotation: Rotation( - 0, - ), - }, - Scaled( - Advice { - query_index: 8, - column_index: 8, - rotation: Rotation( - 0, - ), - }, - 0x0000000000000000000000000000000000000000000000000000000000000010, - ), - ), - Scaled( - Advice { - query_index: 18, - column_index: 7, - rotation: Rotation( - 1, - ), - }, - 0x4000000000000000000000000000000000000000000000000000000000000000, - ), - ), - Negated( - Advice { - query_index: 6, - column_index: 6, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Product( - Product( - Product( - Product( - Product( - Product( - Product( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000001, - ), - Negated( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, - ), - Negated( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, - ), - Negated( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, - ), - Negated( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000006, - ), - Negated( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Sum( - Constant( - 0x0000000000000000000000000000000000000000000000000000000000000007, - ), - Negated( - Fixed { - query_index: 26, - column_index: 26, - rotation: Rotation( - 0, - ), - }, - ), - ), - ), - Sum( - Sum( - Sum( - Sum( - Advice { - query_index: 7, - column_index: 7, - rotation: Rotation( - 0, - ), - }, - Scaled( - Advice { - query_index: 8, - column_index: 8, - rotation: Rotation( - 0, - ), - }, - 0x0000000000000000000000000000000000000000000000000000000000000010, - ), - ), - Constant( - 0x0000000000000000000000000000100000000000000000000000000000000000, - ), - ), - Negated( - Constant( - 0x00000000000000000000000000000000224698fc094cf91b992d30ed00000001, - ), - ), - ), - Negated( - Advice { - query_index: 19, - column_index: 8, - rotation: Rotation( - 1, - ), - }, - ), - ), - ), Product( Product( Product( @@ -20680,6 +19494,1225 @@ PinnedVerificationKey { ), ), ), + Sum( + Sum( + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Scaled( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000010, + ), + ), + Scaled( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + 0x4000000000000000000000000000000000000000000000000000000000000000, + ), + ), + Negated( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Sum( + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Scaled( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000010, + ), + ), + Constant( + 0x0000000000000000000000000000100000000000000000000000000000000000, + ), + ), + Negated( + Constant( + 0x00000000000000000000000000000000224698fc094cf91b992d30ed00000001, + ), + ), + ), + Negated( + Advice { + query_index: 19, + column_index: 8, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + Advice { + query_index: 10, + column_index: 9, + rotation: Rotation( + 1, + ), + }, + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 26, + column_index: 26, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Scaled( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000100, + ), + ), + Scaled( + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + 0x0000000000000000000000000000000000000000000000000400000000000000, + ), + ), + Negated( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Scaled( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000010, + ), + ), + Scaled( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + 0x4000000000000000000000000000000000000000000000000000000000000000, + ), + ), + Negated( + Advice { + query_index: 6, + column_index: 6, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Sum( + Sum( + Sum( + Advice { + query_index: 7, + column_index: 7, + rotation: Rotation( + 0, + ), + }, + Scaled( + Advice { + query_index: 8, + column_index: 8, + rotation: Rotation( + 0, + ), + }, + 0x0000000000000000000000000000000000000000000000000000000000000010, + ), + ), + Constant( + 0x0000000000000000000000000000100000000000000000000000000000000000, + ), + ), + Negated( + Constant( + 0x00000000000000000000000000000000224698fc094cf91b992d30ed00000001, + ), + ), + ), + Negated( + Advice { + query_index: 19, + column_index: 8, + rotation: Rotation( + 1, + ), + }, + ), + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + Advice { + query_index: 9, + column_index: 9, + rotation: Rotation( + 0, + ), + }, + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Product( + Advice { + query_index: 18, + column_index: 7, + rotation: Rotation( + 1, + ), + }, + Advice { + query_index: 10, + column_index: 9, + rotation: Rotation( + 1, + ), + }, + ), + ), + Product( + Product( + Product( + Product( + Product( + Product( + Product( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000004, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000005, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000006, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000007, + ), + Negated( + Fixed { + query_index: 27, + column_index: 27, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), Sum( Sum( Sum( @@ -20743,8 +20776,8 @@ PinnedVerificationKey { Product( Product( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -20755,8 +20788,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -20766,12 +20799,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000003, ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -20781,12 +20814,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -20796,12 +20829,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -20811,12 +20844,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, + 0x0000000000000000000000000000000000000000000000000000000000000006, ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -20830,8 +20863,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -20890,8 +20923,8 @@ PinnedVerificationKey { Product( Product( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -20902,8 +20935,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -20913,12 +20946,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000003, ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -20928,12 +20961,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -20943,12 +20976,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -20958,12 +20991,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, + 0x0000000000000000000000000000000000000000000000000000000000000006, ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -20977,8 +21010,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21011,8 +21044,8 @@ PinnedVerificationKey { Product( Product( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21023,8 +21056,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21034,12 +21067,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000003, ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21049,12 +21082,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21064,12 +21097,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21079,12 +21112,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, + 0x0000000000000000000000000000000000000000000000000000000000000006, ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21098,8 +21131,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21132,8 +21165,8 @@ PinnedVerificationKey { Product( Product( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21144,8 +21177,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21155,12 +21188,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000003, ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21170,12 +21203,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21185,12 +21218,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21200,12 +21233,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, + 0x0000000000000000000000000000000000000000000000000000000000000006, ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21219,8 +21252,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21253,8 +21286,8 @@ PinnedVerificationKey { Product( Product( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21265,8 +21298,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21280,8 +21313,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21291,12 +21324,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21306,12 +21339,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21321,12 +21354,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, + 0x0000000000000000000000000000000000000000000000000000000000000006, ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21336,12 +21369,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000006, + 0x0000000000000000000000000000000000000000000000000000000000000007, ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21381,8 +21414,8 @@ PinnedVerificationKey { Product( Product( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21393,8 +21426,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21408,8 +21441,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21419,12 +21452,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21434,12 +21467,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21449,12 +21482,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, + 0x0000000000000000000000000000000000000000000000000000000000000006, ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21464,12 +21497,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000006, + 0x0000000000000000000000000000000000000000000000000000000000000007, ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21528,8 +21561,8 @@ PinnedVerificationKey { Product( Product( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21540,8 +21573,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21555,8 +21588,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21566,12 +21599,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21581,12 +21614,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21596,12 +21629,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, + 0x0000000000000000000000000000000000000000000000000000000000000006, ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21611,12 +21644,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000006, + 0x0000000000000000000000000000000000000000000000000000000000000007, ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21675,8 +21708,8 @@ PinnedVerificationKey { Product( Product( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21687,8 +21720,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21702,8 +21735,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21713,12 +21746,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21728,12 +21761,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21743,12 +21776,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, + 0x0000000000000000000000000000000000000000000000000000000000000006, ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21758,12 +21791,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000006, + 0x0000000000000000000000000000000000000000000000000000000000000007, ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21810,8 +21843,8 @@ PinnedVerificationKey { Product( Product( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21822,8 +21855,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21837,8 +21870,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21848,12 +21881,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21863,12 +21896,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21878,12 +21911,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, + 0x0000000000000000000000000000000000000000000000000000000000000006, ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21893,12 +21926,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000006, + 0x0000000000000000000000000000000000000000000000000000000000000007, ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21931,8 +21964,8 @@ PinnedVerificationKey { Product( Product( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21943,8 +21976,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21958,8 +21991,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21969,12 +22002,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21984,12 +22017,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -21999,12 +22032,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, + 0x0000000000000000000000000000000000000000000000000000000000000006, ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -22014,12 +22047,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000006, + 0x0000000000000000000000000000000000000000000000000000000000000007, ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -22052,8 +22085,8 @@ PinnedVerificationKey { Product( Product( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -22064,8 +22097,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -22079,8 +22112,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -22090,12 +22123,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -22105,12 +22138,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -22120,12 +22153,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, + 0x0000000000000000000000000000000000000000000000000000000000000006, ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -22135,12 +22168,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000006, + 0x0000000000000000000000000000000000000000000000000000000000000007, ), Negated( Fixed { - query_index: 26, - column_index: 26, + query_index: 27, + column_index: 27, rotation: Rotation( 0, ), @@ -22181,7 +22214,7 @@ PinnedVerificationKey { }, Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000001, ), Negated( Fixed { @@ -22196,7 +22229,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000002, ), Negated( Fixed { @@ -22211,7 +22244,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000003, ), Negated( Fixed { @@ -22309,7 +22342,7 @@ PinnedVerificationKey { }, Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000001, ), Negated( Fixed { @@ -22324,7 +22357,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000002, ), Negated( Fixed { @@ -22339,7 +22372,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000003, ), Negated( Fixed { @@ -22437,7 +22470,7 @@ PinnedVerificationKey { }, Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000001, ), Negated( Fixed { @@ -22452,7 +22485,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000002, ), Negated( Fixed { @@ -22467,7 +22500,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000003, ), Negated( Fixed { @@ -22611,7 +22644,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000002, ), Negated( Fixed { @@ -22626,7 +22659,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000003, ), Negated( Fixed { @@ -22641,7 +22674,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { @@ -22739,7 +22772,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000002, ), Negated( Fixed { @@ -22754,7 +22787,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000003, ), Negated( Fixed { @@ -22769,7 +22802,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { @@ -22867,7 +22900,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000002, ), Negated( Fixed { @@ -22882,7 +22915,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000003, ), Negated( Fixed { @@ -22897,7 +22930,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { @@ -23041,7 +23074,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000003, ), Negated( Fixed { @@ -23056,7 +23089,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { @@ -23071,7 +23104,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000006, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { @@ -23191,7 +23224,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { @@ -23206,7 +23239,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000006, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { @@ -23221,7 +23254,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000007, + 0x0000000000000000000000000000000000000000000000000000000000000006, ), Negated( Fixed { @@ -23319,7 +23352,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { @@ -23334,7 +23367,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000006, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { @@ -23349,7 +23382,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000007, + 0x0000000000000000000000000000000000000000000000000000000000000006, ), Negated( Fixed { @@ -23413,20 +23446,20 @@ PinnedVerificationKey { Product( Product( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), }, Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000002, ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -23436,12 +23469,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000003, ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -23451,12 +23484,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -23466,12 +23499,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -23485,8 +23518,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -23500,8 +23533,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -23541,20 +23574,20 @@ PinnedVerificationKey { Product( Product( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), }, Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000002, ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -23564,12 +23597,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000003, ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -23579,12 +23612,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -23594,12 +23627,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -23613,8 +23646,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -23628,8 +23661,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -23676,8 +23709,8 @@ PinnedVerificationKey { Product( Product( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -23688,8 +23721,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -23699,12 +23732,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000003, ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -23714,12 +23747,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -23729,12 +23762,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -23744,12 +23777,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, + 0x0000000000000000000000000000000000000000000000000000000000000006, ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -23763,8 +23796,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -23823,8 +23856,8 @@ PinnedVerificationKey { Product( Product( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -23835,8 +23868,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -23846,12 +23879,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000003, ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -23861,12 +23894,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -23876,12 +23909,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -23891,12 +23924,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, + 0x0000000000000000000000000000000000000000000000000000000000000006, ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -23910,8 +23943,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -23958,8 +23991,8 @@ PinnedVerificationKey { Product( Product( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -23970,8 +24003,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -23981,12 +24014,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000003, ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -23996,12 +24029,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -24011,12 +24044,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -24026,12 +24059,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, + 0x0000000000000000000000000000000000000000000000000000000000000006, ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -24045,8 +24078,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -24079,8 +24112,8 @@ PinnedVerificationKey { Product( Product( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -24091,8 +24124,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -24102,12 +24135,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000003, ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -24117,12 +24150,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -24132,12 +24165,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -24147,12 +24180,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, + 0x0000000000000000000000000000000000000000000000000000000000000006, ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -24166,8 +24199,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -24200,8 +24233,8 @@ PinnedVerificationKey { Product( Product( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -24212,8 +24245,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -24223,12 +24256,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000003, ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -24238,12 +24271,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -24253,12 +24286,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -24268,12 +24301,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, + 0x0000000000000000000000000000000000000000000000000000000000000006, ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -24287,8 +24320,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -24321,8 +24354,8 @@ PinnedVerificationKey { Product( Product( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -24333,8 +24366,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -24348,8 +24381,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -24359,12 +24392,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -24374,12 +24407,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -24389,12 +24422,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, + 0x0000000000000000000000000000000000000000000000000000000000000006, ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -24404,12 +24437,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000006, + 0x0000000000000000000000000000000000000000000000000000000000000007, ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -24468,8 +24501,8 @@ PinnedVerificationKey { Product( Product( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -24480,8 +24513,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -24495,8 +24528,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -24506,12 +24539,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -24521,12 +24554,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -24536,12 +24569,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, + 0x0000000000000000000000000000000000000000000000000000000000000006, ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -24551,12 +24584,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000006, + 0x0000000000000000000000000000000000000000000000000000000000000007, ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -24615,8 +24648,8 @@ PinnedVerificationKey { Product( Product( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -24627,8 +24660,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -24642,8 +24675,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -24653,12 +24686,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -24668,12 +24701,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -24683,12 +24716,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, + 0x0000000000000000000000000000000000000000000000000000000000000006, ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -24698,12 +24731,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000006, + 0x0000000000000000000000000000000000000000000000000000000000000007, ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -24736,8 +24769,8 @@ PinnedVerificationKey { Product( Product( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -24748,8 +24781,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -24763,8 +24796,8 @@ PinnedVerificationKey { ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -24774,12 +24807,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -24789,12 +24822,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -24804,12 +24837,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000005, + 0x0000000000000000000000000000000000000000000000000000000000000006, ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -24819,12 +24852,12 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000006, + 0x0000000000000000000000000000000000000000000000000000000000000007, ), Negated( Fixed { - query_index: 27, - column_index: 27, + query_index: 28, + column_index: 28, rotation: Rotation( 0, ), @@ -24853,16 +24886,64 @@ PinnedVerificationKey { Product( Product( Product( - Fixed { - query_index: 28, - column_index: 28, - rotation: Rotation( - 0, + Product( + Product( + Product( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), ), - }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { @@ -24877,7 +24958,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000006, ), Negated( Fixed { @@ -24892,7 +24973,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000007, ), Negated( Fixed { @@ -24952,16 +25033,64 @@ PinnedVerificationKey { Product( Product( Product( - Fixed { - query_index: 28, - column_index: 28, - rotation: Rotation( - 0, + Product( + Product( + Product( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), ), - }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { @@ -24976,7 +25105,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000006, ), Negated( Fixed { @@ -24991,7 +25120,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000007, ), Negated( Fixed { @@ -25051,16 +25180,64 @@ PinnedVerificationKey { Product( Product( Product( - Fixed { - query_index: 28, - column_index: 28, - rotation: Rotation( - 0, + Product( + Product( + Product( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), ), - }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { @@ -25075,7 +25252,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000006, ), Negated( Fixed { @@ -25090,7 +25267,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000007, ), Negated( Fixed { @@ -25150,16 +25327,64 @@ PinnedVerificationKey { Product( Product( Product( - Fixed { - query_index: 28, - column_index: 28, - rotation: Rotation( - 0, + Product( + Product( + Product( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), ), - }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { @@ -25174,7 +25399,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000006, ), Negated( Fixed { @@ -25189,7 +25414,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000007, ), Negated( Fixed { @@ -25223,16 +25448,64 @@ PinnedVerificationKey { Product( Product( Product( - Fixed { - query_index: 28, - column_index: 28, - rotation: Rotation( - 0, + Product( + Product( + Product( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), ), - }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { @@ -25247,7 +25520,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000006, ), Negated( Fixed { @@ -25262,7 +25535,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000007, ), Negated( Fixed { @@ -25296,16 +25569,64 @@ PinnedVerificationKey { Product( Product( Product( - Fixed { - query_index: 28, - column_index: 28, - rotation: Rotation( - 0, + Product( + Product( + Product( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), ), - }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { @@ -25320,7 +25641,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { @@ -25335,7 +25656,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000007, ), Negated( Fixed { @@ -25407,16 +25728,64 @@ PinnedVerificationKey { Product( Product( Product( - Fixed { - query_index: 28, - column_index: 28, - rotation: Rotation( - 0, + Product( + Product( + Product( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), ), - }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { @@ -25431,7 +25800,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { @@ -25446,7 +25815,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000007, ), Negated( Fixed { @@ -25506,16 +25875,64 @@ PinnedVerificationKey { Product( Product( Product( - Fixed { - query_index: 28, - column_index: 28, - rotation: Rotation( - 0, + Product( + Product( + Product( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), ), - }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { @@ -25530,7 +25947,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { @@ -25545,7 +25962,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000007, ), Negated( Fixed { @@ -25579,16 +25996,64 @@ PinnedVerificationKey { Product( Product( Product( - Fixed { - query_index: 28, - column_index: 28, - rotation: Rotation( - 0, + Product( + Product( + Product( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), ), - }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { @@ -25603,7 +26068,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { @@ -25618,7 +26083,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000007, ), Negated( Fixed { @@ -25652,16 +26117,64 @@ PinnedVerificationKey { Product( Product( Product( - Fixed { - query_index: 28, - column_index: 28, - rotation: Rotation( - 0, + Product( + Product( + Product( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), ), - }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { @@ -25676,7 +26189,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { @@ -25691,7 +26204,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000004, + 0x0000000000000000000000000000000000000000000000000000000000000007, ), Negated( Fixed { @@ -25725,16 +26238,64 @@ PinnedVerificationKey { Product( Product( Product( - Fixed { - query_index: 28, - column_index: 28, - rotation: Rotation( - 0, + Product( + Product( + Product( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), ), - }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { @@ -25749,7 +26310,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { @@ -25764,7 +26325,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000006, ), Negated( Fixed { @@ -25805,16 +26366,64 @@ PinnedVerificationKey { Product( Product( Product( - Fixed { - query_index: 28, - column_index: 28, - rotation: Rotation( - 0, + Product( + Product( + Product( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), ), - }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { @@ -25829,7 +26438,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { @@ -25844,7 +26453,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000006, ), Negated( Fixed { @@ -25904,16 +26513,64 @@ PinnedVerificationKey { Product( Product( Product( - Fixed { - query_index: 28, - column_index: 28, - rotation: Rotation( - 0, + Product( + Product( + Product( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), ), - }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { @@ -25928,7 +26585,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { @@ -25943,7 +26600,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000006, ), Negated( Fixed { @@ -26003,16 +26660,64 @@ PinnedVerificationKey { Product( Product( Product( - Fixed { - query_index: 28, - column_index: 28, - rotation: Rotation( - 0, + Product( + Product( + Product( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), ), - }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { @@ -26027,7 +26732,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { @@ -26042,7 +26747,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000006, ), Negated( Fixed { @@ -26090,16 +26795,64 @@ PinnedVerificationKey { Product( Product( Product( - Fixed { - query_index: 28, - column_index: 28, - rotation: Rotation( - 0, + Product( + Product( + Product( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), ), - }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { @@ -26114,7 +26867,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { @@ -26129,7 +26882,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000006, ), Negated( Fixed { @@ -26163,16 +26916,64 @@ PinnedVerificationKey { Product( Product( Product( - Fixed { - query_index: 28, - column_index: 28, - rotation: Rotation( - 0, + Product( + Product( + Product( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), ), - }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { @@ -26187,7 +26988,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { @@ -26202,7 +27003,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000006, ), Negated( Fixed { @@ -26236,16 +27037,64 @@ PinnedVerificationKey { Product( Product( Product( - Fixed { - query_index: 28, - column_index: 28, - rotation: Rotation( - 0, + Product( + Product( + Product( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000001, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000002, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), ), - }, + Sum( + Constant( + 0x0000000000000000000000000000000000000000000000000000000000000003, + ), + Negated( + Fixed { + query_index: 28, + column_index: 28, + rotation: Rotation( + 0, + ), + }, + ), + ), + ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000001, + 0x0000000000000000000000000000000000000000000000000000000000000004, ), Negated( Fixed { @@ -26260,7 +27109,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000002, + 0x0000000000000000000000000000000000000000000000000000000000000005, ), Negated( Fixed { @@ -26275,7 +27124,7 @@ PinnedVerificationKey { ), Sum( Constant( - 0x0000000000000000000000000000000000000000000000000000000000000003, + 0x0000000000000000000000000000000000000000000000000000000000000006, ), Negated( Fixed { @@ -27476,47 +28325,47 @@ PinnedVerificationKey { (0x05f5862cad2888855bc3c1843a9eff57b11b592d9eb0e13354256661387f5231, 0x32236b14df85bf5f532a930232cb23a5c56ef7d67aaeed8bcb8fc10ea132cbd6), (0x3e727e8554679f98120355d39d958dbd8755d5a7f8b42ea87f258064c4b3eb57, 0x0c0d5c23f3ee62ac1b2d986dd3033bbcab260d590e1393de3a14a4b31ae091bb), (0x3748680dd6a91c5dec668b30fb6bf9a450aeb884b81cbc344914f265760e7131, 0x18530eaa5c58b61bd3fc38220ea484c0922524a815a8f752be955c229f9c4164), - (0x39b569e547495fcf1d1abbead241d103ff8a7b8731e30bd548c616bda00cd984, 0x34742cb237d70b51a859f402c9e330a51b8d1954a7a5dc76d1046cbaf697795d), - (0x07cb8b05e89de3343448152d7c54508d9c92ee80995e8597416c0cbf14cfcfaa, 0x2e8de6a89f25da88afe38efde1d533661bea8afaa9c4da4497281292c022c29d), - (0x12c9fdd5dbbbcaf59e2efd9b2c857ef95e201420c97dd189c96647459e01f440, 0x392e15c6e97e57f7698adfdf909f3846dc5f0b9368955a486a0706bf4fd1589b), - (0x05e7137799d8b97ad7cf3201cde6b3344935c4aa0ca9907f221dcf2c6c88a149, 0x392cc8210e610ff5606be6460271adbe18e0bde4041e072b97476f45c1af7546), - (0x27ac115e370dbb00beaa486d2668a711652c6fbfdb0418a6089e60b9303586aa, 0x2a71039849f1e51251060e52bf09a92aa1bb66cf4e38d7fe38dfa29465a43322), - (0x337b9cdd44ea2ab005469dc64ed691f58e69281690913c7213acf65c60ace1d8, 0x08e913a8cce81e7a184fb830486ba0858bf6fca7bc5c0d5a90491cbdcc56e395), - (0x08c8d2433d69ff943b6629690e1733dcbfaa3794ab7e3f85dfc204c6c9fe5db9, 0x396d69b40810a7f4b03b114e1650e0290faeec77070091cd55a3b3ac3a52e67f), - (0x36b761fe7c9ed34760ff0c82c11fcecca998a5376a1b6d4861b964e4984a38c8, 0x358e81fdcbaa131f165c0fa17f1de44ff084a61e6444b553192b61fa01ee767f), - (0x09e2bea8afecab505fc137f918ba0a60c09ecbcc81aa7ae95a05d610496ec435, 0x0f1816d0027bae1676bef991ff8c4dd96f2392ee2d19e1f66cb565fa1854569b), + (0x0ba01714529dc85dd2460cdbf014b71e7638d18a35eacf06868020c27c28232d, 0x2dcbb2c3191f582b6882cc9c5e6cac1a0361d0534f8f4c814e33a272b8e8da8d), + (0x0f8fb02c096c0957230639133087e8ae516d04d1678ace6ab0495a8e8576c0db, 0x2842b28258744140b09e0d27559d84e1d8f1d55350b0af37237879d14f8eb2a1), + (0x36f2f0410d5ab00d5296bf101cbd91008551d4afe2b5ac45fc437aa157c731aa, 0x19e8c688f0c92a3db3e74b66075d2e0771d5c744e77090c487ffca245a7f7f96), + (0x09ce7fd65bf8af2b554230465003160d3d0b7bfc495f6d33f5f0704cb57d6320, 0x38d3478df8841a4f7a74a3c1fe7788e6e1cbb1076d5f7358be729fa2572c9530), + (0x2abaec8c54bde721f7f2aea685764c80b0b935447c00173ff34209ac8d96b633, 0x36957cf784345bfbdb97f0fad0b74d3e5d683fcc80ee407d6a6bedfe097c0011), + (0x3f1845e758196892c66d920980dc29cc2e1844fa03575668bf84349071094207, 0x1873355bc49aeed1faee56e6d21907a5277fcd0283a3f51fface877e1c59f046), + (0x04e5834f610cf806911a2e9c14519132a49ac55f40095c3156e3b20d09a2f250, 0x2ea666b99d148e1090b42fd2f67fd34c7e94ca505447c1431485eca09ed1fe0b), + (0x35de09079a5b05d25f756479ea044c654c97043bc4a79b34f860faa9b049337a, 0x06c4cc500093cfdc9bd284f3c44a2a8856cfc8ce70786dd65787397292e4fe53), + (0x235b63a940346f07c5a669831067ba59acb3b9936db7d66c4a4cf6746af5f97e, 0x0d838f859fb1386034263d43ace744961a310f548f7274586f133aa4ddc779a9), (0x02adb7cbc9ebbbd87d7d6a41fc40cb4cf57585c6243aa204f757c9026ef20fd3, 0x327fc06fee179c6a57ed95336f9fb7854420d80dd191251a40935664ff6c8067), (0x2d00d4ec8aa5e4b3d035131f559e4a97f896e8dbc39badb92b58a8d46b5e91df, 0x37046fb32ed8eb4ba0b4da8e1c9b56cd3832fa2ed4788f7faf4fee1f76a94c32), - (0x16e11b806dac6acd9c9a28203098f5ecbe28abfbcc127b39b13b58afdb1105e7, 0x035b32046161b8b47540c71447381a2dde56097b2cfc9a06f55e4c7d6e20704c), + (0x212f5afd70e787e2fd951e0ddc5430d1fa78f988c30740384d18cf9ff276b43b, 0x20c5a150e200caddf9a35a993668fc4742be5d924d1086f05c74ef6a78b5feb2), (0x02c283cbde85f2ad26daddeabe01b1574ce7de68f0e329ec95a4154dd4713f29, 0x208cf96aa5255b543933ee3e9bdd054d4f15265a7c8921aaee89c192af2fd284), (0x1f777f0e4263ec4a19f30813739c640335ffa951cc3cc586b6c4095e737f95be, 0x061c07fb12cb19582eefd858a08e689acd970c8cb9ed8f7b928d88e691a2f586), (0x13d0bd76da4ace22c0e90b098d6073551322b8c734bf37eeca67fbf19687f550, 0x3d996cc9da5a31cefb453390b906eabbcc75797bc6a6b9c9e3af2fe7b6b8beed), - (0x0deba4a8320f48b9b229fc8aeaac0f1c233582498eb6b769c088ac0206a3eb19, 0x1f2ea2cfff42655bb363a4f226fe963408ec485b4207d1cbbb1359c6912075ea), + (0x04cad7405b492a30db0a710c842cecc97d02059acf4c02aa79626dce68ac4837, 0x3d6d7b6698b258e61ebe0b25d9cbcd4a016cb0a2ae8d92752532d98cfb27720d), (0x0974ad1a3c0eb4c8d2c59cd820a82b7f28ea2f7a245008d403815131ff30879e, 0x00bb593cdf920cef4965f788d65eba3c3aa07d9718dfb62e3e385849a0d692a8), - (0x14385aac77ed683f73ac873eb1bb8b4a4511a363fffd8695db5a42b8f7bd1549, 0x14e3ddb76f8aed1afbb72dfdbb660358172c9cb5f0258147a7bb2086bd0a8ca9), - (0x386f325d750decf9441e0a216a659f010f408a17c98aef65ead7f657db07cf47, 0x09a354ec838a959dc4af25dbef28305f07f89a1eeb74d2e7ea44c11c4b062002), + (0x3806a39c587dc730cc767713a1ed65cb3171b2b731553d39b84d0896ed46bad9, 0x2b187668497f037b5a72aeeca3b642efc01f536ec6c368c5eef2fe9d54c6cfbb), + (0x171ba8f97a0e12f975056bfb652b5667bc6e2759c4d4fb4de17064ecb60beeaf, 0x055bd6ea2501053cb07723245da65bd46a5bccd52d12073d76ce92e46ab29686), (0x1e355d783cffccafc120f462461fb312773442762383ac444009653f3d8d4be6, 0x3c60e17b18492aa2c41798b409d2bcc1857ca57ee9d2fb0001584cedc8e141d6), - (0x3fe118aa365b85457f28c3b4af5795c0dc9910b025ac87075c148b5e1340157f, 0x051b39b5bdbb0bd0566258feb39cb5df705098a37d0bf76e2a3d19a8e589d157), - (0x20c804b708105a8b02edb61b0b273992935d2ff939fc8e120dd158d656d80483, 0x0b5ebd37cc8f62c46a195fa3bcff66bf6ade77a425d69b0590def61d5e59cece), - (0x3514ea28fa45a4eee4e8765d4fb09d310f82177229dd67294c6cfcc49b86aedc, 0x022e7bb737ba4a31acf9e02bf2528966e1710f3d4488408abb46f5b06cad918f), - (0x317513671dd3a05503b0b1ce5064e7966629e09b61da97a704964fca8ffd0a3a, 0x3267b7c569bb6504d7ebe7fef32a2b4484d82a9ad1d4842f52f9881e5567d776), - (0x3500c080e8ed96f9dae7a9849eb24858dc573e44d027e0f168faaa243cf976ad, 0x07ae6e84b712d9ed45c2efa120be41b8a6852b0d7a03d2f6c73809c2fc1e93ec), - (0x04a91216c58d5425d26452c92bd67f57bd3877953b03cd4a03785ad5fd98c5cb, 0x20e468ec6728bf34d3da6d5c9c584ddd464d67b39967b843c63733afb9c703a5), + (0x32059fe4e96eb002f24f6e6090014f7b3baf23946cc31a11341543a5a184903c, 0x3793fd512a65c7aa7c17a42e855eb8be26aa644165a9bc963c368baf0e5cce9d), + (0x0a6fe1cc1ce659681079768ca8ff94d82c7d51ef39cd99b738b144de3a3027f6, 0x30cfc2f4e0ec95f623199970d8b762647ad2d7c3591a20781ee8187702babe5f), + (0x29085e497c6097147a72a256459a7237a9bc8cb8e66b56a60f4839468f50ab7b, 0x3a8f21bdd0be7b7d0f641745f5008eedf16f02f04df65691045ef7b21d91443c), + (0x1fcae59b79411349d85836f3dfcba5ab523c2aa1426f62ddf80b7f85e41dfce5, 0x3d0eeb91ef1e68f59a6aead5c4e536f7d6a78721666002d0a92b0b923def40c7), + (0x161c09589b8e0e1d1712b98a4b5cea260d48365ab3f2bba6faec85a2b1966fe6, 0x29e201d0935308e8b1b04ef13c0b9b6891948f69da260bc5c8b12b62aa21155d), + (0x0e6d6b798948be5e9577257fcac9226c659ba7d6040b3b5d0c2df7bf541f18b7, 0x169ba3030178091cce287c13af9b83b376988cc95bc0aa51ea387be0e74964dd), ], permutation: VerifyingKey { commitments: [ - (0x1af95a6deb2ca176396f1c05e44c66fdf8a0369f7acd92a15598d301926117ec, 0x21763b348b3800bed91f9db48dfb25ba8ef8987426b1ba54bbd812ca63233794), - (0x345c8fb809878c9d98ff8a3983cefd6be400c1f5a9bf9667956ba40358063b61, 0x0cc8165775a8422b44abddab03200844141c249f1b34afd3fa087dc81cd45744), - (0x02268b1663d92e78e2f6e52d22f16cad34c04b4a34948fac774a9c35de7d9283, 0x0f60ddce9b7235e3eb26b80f77792fe32505cdab1bc078c9e1dd06d78213c0f9), - (0x1a140d9f3e676bf67b1566df5c589301e9907329543d2a5b07fadeffdb033851, 0x31f612d4b35b4e994de022357761a2761e6cece22a8f4ad6fbe32afa0a6f7b6b), - (0x3c37910fa1a3bf98710542b590ed6ce9f1d8a54311f9c52a716ed7176a6d904c, 0x1e13eaffe9a3ce38da2731f8dfa5dc667efc93f3355814479609f7ad348212f5), - (0x29a955f22570e84712a894efb32be136ca8a986d032d81916c133da7bfa0a280, 0x05b8f6cd55b58f1c90b55e1e0a1cf8142e55a8bd1e96cdcf6ade3ad851c75aa9), - (0x1038a82bc80c47f909ea9596412c4b371ccda03a231e5f44589425cd3fd2375e, 0x2f055c713657f922f9f8e8e4e182c240736dfd8018972ddef8deacf8364699b1), - (0x018b36e3c808f4b1b16a5cf01607c91404871efe2e2be88981788bbcaf9460c3, 0x0210f7f3acda5d03c6fac4f769de04058a62354006fe52ba3ec39e75a100701d), - (0x16bfb187e2d595ad42d73c9a5d5470a6957139a27ee89e9ded4005fedfd8c5f5, 0x3fee7220921f2fcd88aef3c4b23f39db047beca57257eb3a47755d683ba77f55), - (0x3297a81d3d6a787b4134aad3a891efa30ed4bec6bd55ee5758760d722b803f87, 0x2eaea6df4dabdd337ec4258acfddefb99e4faf22a2ce3c007bb3e004394eb510), - (0x09d8d5229fda3c06d82ad42d9f37cb9a6f2a3bcd420cfc822f7733e917c2d07a, 0x1bf4552fb02031765752a46f31689207e6014d0b2904343294bca2dd04b8b9a0), - (0x25949b072ee537406e98e1009fcfae5c19cd583083b5a63f1064566c76c7c511, 0x16a1391bbdb6c949db9e43e9bbe0ae717aa78cd7f15cb9e95f55109b52cafe77), + (0x0fbd38d3edc5a2548fee21b4aaab8548eb717b2866c3e7905def92ab41123bd3, 0x1f6d299f0181a6cae84d84c093e68e459271fabef938368eb71c928f351e275d), + (0x29f078d82ad78281cabc78f49c808c4f86b22bd4029b3c03c14e2d5d105eeff0, 0x28f20d695afaed04cda27e52460e71c7ddac016f56fba5730c780bb79304b26e), + (0x3b499a325a876c16aaa0a7621b772c600fd310ef3b690a247fbd4cb270a9a127, 0x1c080b1d2561f1283dab49893a96084b421c501f3b52f28a4afb86a90dcad65e), + (0x255ee788dfb0159fd0b0f5f09d1c69e4ec67337a48a75636f52e8bf6efe8994c, 0x09093cdab6ef83ac64bde2b2252a91944801c8d3e0877c526e592f3d6aca168d), + (0x1f86b1c66c980456a5f80fad06bb3ba739590e53951e2ca40aef5157cb637639, 0x20b35b7cd45a239671f7ccf917411f4f703630b4dc9d41192b44f0d84eac59c0), + (0x046fee5aff0ed40810369bbc1d76f9832fc38ae5ea6d5804e5908e162cbb44ae, 0x07ece7ed5973a1c46b3302ea4cca43b9a7f55f2f5d75cab755860ad65928de17), + (0x02f0c3fbef4a3d9ca3a5a8367285040bc7e2e3837adf0decc601f5ca52986667, 0x1b287e8f1d2812e2051d31e0b8f5b44ad8a42c28b3f23b39f9dab54040197c10), + (0x0a25c502dd5fbc50d0b9bc0c4b73ebdb68212cb3d8919d304366a95cca9273cf, 0x10d56a7902ae750304bb5b397a442e7bb20de731ef393bd5a4bde4b821676f43), + (0x2ce5cc97761c46326b70b86b5c7f5a2b6835ecfc5b19735bc6d69be9d53236c4, 0x182442dbc817aa8926dc78761be286048ac57fd15d5c9e72210013dd77d68a79), + (0x0babcc3c20e0909cfd33f33b2afd5ef7928e935655614a7783a41d54783b8641, 0x1203a94185e9c222b2965adf896f2c7093f151f73f141cb0b6275a9428d56046), + (0x24836d91a72ea59da98dbecda06b12fdfe73bf870cba478b5da6e5a0214c6d42, 0x1d3848af33d96a5fce26243cf19c147260ab903a275bf9a03ff3db91f6a22971), + (0x319f25dcc4b43eaf7767eb2330cb1f31d8790418bd073cb0c03d6c0dcfbdf3c8, 0x1de3e74aee1b1d661c73d0a86c5bf718a76d55ab446973fd2a8038bced640a3e), (0x21d210b41675a1eae44cbd0f3fd27d69e30716c71873f6089cee61acacd403ab, 0x2275e97c7e84f68bfaa528a9d8be4e059f7abefd80d03fbfca774e8414a9b7c1), (0x0f9e7de28e0f650d99d99d95c0fcd39c9dac9db5aa1973319f66922d6eb9f7d5, 0x1ba644ecc18ad711ddd33af7f695f6834e9f35c93d47a6a5273dabbe800fc7e6), (0x0aab3ab73afac76277cd94a891de15e42ceb09f3a9865dab5c814bebfbb4453f, 0x27119fec3736d99abeeef1ad7b857db7e754e0c158780ed3dd0cdd4dc2453e10), diff --git a/src/primitives/sinsemilla.rs b/src/primitives/sinsemilla.rs index f4409ab5..aedc49b3 100644 --- a/src/primitives/sinsemilla.rs +++ b/src/primitives/sinsemilla.rs @@ -174,7 +174,9 @@ impl CommitDomain { msg: impl Iterator, r: &pallas::Scalar, ) -> CtOption { - (self.M.hash_to_point_inner(msg) + Wnaf::new().scalar(r).base(self.R)).into() + // We use complete addition for the blinding factor. + CtOption::::from(self.M.hash_to_point_inner(msg)) + .map(|p| p + Wnaf::new().scalar(r).base(self.R)) } /// $\mathsf{SinsemillaShortCommit}$ from [Β§ 5.4.8.4][concretesinsemillacommit]. diff --git a/src/primitives/sinsemilla/addition.rs b/src/primitives/sinsemilla/addition.rs index 3342f3f8..3949adda 100644 --- a/src/primitives/sinsemilla/addition.rs +++ b/src/primitives/sinsemilla/addition.rs @@ -46,14 +46,6 @@ impl Add for IncompletePoint { } } -impl Add for IncompletePoint { - type Output = IncompletePoint; - - fn add(self, rhs: pallas::Point) -> Self::Output { - self + IncompletePoint(CtOption::new(rhs, 1.into())) - } -} - impl Add for IncompletePoint { type Output = IncompletePoint;