From 528895b28ebcc218c7c595825a438be978eaac4c Mon Sep 17 00:00:00 2001 From: jonas-lj Date: Thu, 5 Sep 2024 06:55:38 +0000 Subject: [PATCH] deploy: 25bd5d85f52fef102c0b35756fb5783221e7dafc --- docs/fastcrypto/groups/index.html | 2 +- .../multiplier/trait.ToLittleEndianBytes.html | 4 +- .../ristretto255/struct.RistrettoPoint.html | 2 +- .../secp256r1/struct.ProjectivePoint.html | 2 +- docs/fastcrypto/groups/trait.Doubling.html | 10 +- .../groups/trait.FiatShamirChallenge.html | 4 +- .../groups/trait.FromTrustedByteArray.html | 4 +- .../groups/trait.HashToGroupElement.html | 4 +- .../groups/trait.MultiScalarMul.html | 4 +- docs/fastcrypto/groups/trait.Pairing.html | 4 +- docs/fastcrypto_vdf/all.html | 2 +- docs/fastcrypto_vdf/class_group/index.html | 2 +- .../class_group/struct.QuadraticForm.html | 6 +- .../math/parameterized_group/index.html | 2 +- .../trait.ParameterizedGroupElement.html | 10 +- docs/fastcrypto_vdf/vdf/index.html | 4 +- ...stant.DEFAULT_CHALLENGE_SIZE_IN_BYTES.html | 5 + docs/fastcrypto_vdf/vdf/pietrzak/index.html | 1 + .../vdf/pietrzak/sidebar-items.js | 1 + .../vdf/pietrzak/struct.PietrzaksVDF.html | 106 ++++++ docs/fastcrypto_vdf/vdf/sidebar-items.js | 2 +- docs/fastcrypto_vdf/vdf/trait.VDF.html | 15 +- docs/fastcrypto_vdf/vdf/wesolowski/index.html | 2 +- .../vdf/wesolowski/struct.WesolowskisVDF.html | 6 +- .../vdf/wesolowski/type.DefaultVDF.html | 2 +- docs/search-index.js | 4 +- .../fastcrypto/fastcrypto-desc-0-.js | 2 +- .../fastcrypto_vdf/fastcrypto_vdf-desc-0-.js | 2 +- docs/src-files.js | 2 +- docs/src/fastcrypto/groups/mod.rs.html | 14 +- .../groups/multiplier/integer_utils.rs.html | 10 +- .../fastcrypto/groups/ristretto255.rs.html | 4 +- docs/src/fastcrypto/groups/secp256r1.rs.html | 2 +- .../fastcrypto_vdf/class_group/mod.rs.html | 26 +- .../math/parameterized_group.rs.html | 106 +++++- docs/src/fastcrypto_vdf/vdf/mod.rs.html | 2 + .../fastcrypto_vdf/vdf/pietrzak/mod.rs.html | 359 ++++++++++++++++++ .../vdf/wesolowski/fiat_shamir.rs.html | 48 +-- .../fastcrypto_vdf/vdf/wesolowski/mod.rs.html | 40 +- docs/trait.impl/core/marker/trait.Freeze.js | 2 +- docs/trait.impl/core/marker/trait.Send.js | 2 +- docs/trait.impl/core/marker/trait.Sync.js | 2 +- docs/trait.impl/core/marker/trait.Unpin.js | 2 +- .../panic/unwind_safe/trait.RefUnwindSafe.js | 2 +- .../panic/unwind_safe/trait.UnwindSafe.js | 2 +- .../vdf/wesolowski/struct.WesolowskisVDF.js | 2 +- 46 files changed, 687 insertions(+), 154 deletions(-) create mode 100644 docs/fastcrypto_vdf/vdf/pietrzak/constant.DEFAULT_CHALLENGE_SIZE_IN_BYTES.html create mode 100644 docs/fastcrypto_vdf/vdf/pietrzak/index.html create mode 100644 docs/fastcrypto_vdf/vdf/pietrzak/sidebar-items.js create mode 100644 docs/fastcrypto_vdf/vdf/pietrzak/struct.PietrzaksVDF.html create mode 100644 docs/src/fastcrypto_vdf/vdf/pietrzak/mod.rs.html diff --git a/docs/fastcrypto/groups/index.html b/docs/fastcrypto/groups/index.html index a700bdffea..5744f4a718 100644 --- a/docs/fastcrypto/groups/index.html +++ b/docs/fastcrypto/groups/index.html @@ -1,4 +1,4 @@ -fastcrypto::groups - Rust

Module fastcrypto::groups

source ·

Modules§

  • This module contains implementations of optimised scalar multiplication algorithms where the +fastcrypto::groups - Rust

    Module fastcrypto::groups

    source ·

    Modules§

    • This module contains implementations of optimised scalar multiplication algorithms where the group element is fixed and certain multiples of this may be pre-computed.
    • Implementations of the ristretto255 group which is a group of prime order 2^{252} + 27742317777372353535851937790883648493 built over Curve25519.
    • Implementation of the Secp256r1 (aka P-256) curve. This is a 256-bit Weirstrass curve of prime order. See “SEC 2: Recommended Elliptic Curve Domain Parameters” for details.“

    Traits§

    \ No newline at end of file diff --git a/docs/fastcrypto/groups/ristretto255/struct.RistrettoPoint.html b/docs/fastcrypto/groups/ristretto255/struct.RistrettoPoint.html index 0fbf3b55c1..f308afcfc8 100644 --- a/docs/fastcrypto/groups/ristretto255/struct.RistrettoPoint.html +++ b/docs/fastcrypto/groups/ristretto255/struct.RistrettoPoint.html @@ -5,7 +5,7 @@
    source

    pub fn map_to_point<H: HashFunction<64>>(bytes: &[u8]) -> Self

    Construct a RistrettoPoint from the given data using a given hash function.

    source

    pub fn compress(&self) -> [u8; 32]

    Return this point in compressed form.

    source

    pub fn decompress(bytes: &[u8; 32]) -> Result<Self, FastCryptoError>

    Return this point in compressed form.

    -

Trait Implementations§

source§

impl Add<&RistrettoPoint> for &RistrettoPoint

§

type Output = RistrettoPoint

The resulting type after applying the + operator.
source§

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

Performs the + operation. Read more
source§

impl Add<&RistrettoPoint> for RistrettoPoint

§

type Output = RistrettoPoint

The resulting type after applying the + operator.
source§

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

Performs the + operation. Read more
source§

impl Add<RistrettoPoint> for &RistrettoPoint

§

type Output = RistrettoPoint

The resulting type after applying the + operator.
source§

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

Performs the + operation. Read more
source§

impl Add for RistrettoPoint

§

type Output = RistrettoPoint

The resulting type after applying the + operator.
source§

fn add(self, rhs: RistrettoPoint) -> RistrettoPoint

Performs the + operation. Read more
source§

impl AddAssign<&RistrettoPoint> for RistrettoPoint

source§

fn add_assign(&mut self, rhs: &RistrettoPoint)

Performs the += operation. Read more
source§

impl AddAssign for RistrettoPoint

source§

fn add_assign(&mut self, rhs: RistrettoPoint)

Performs the += operation. Read more
source§

impl Clone for RistrettoPoint

source§

fn clone(&self) -> RistrettoPoint

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

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

Performs copy-assignment from source. Read more
source§

impl Debug for RistrettoPoint

source§

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

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

impl Default for RistrettoPoint

source§

fn default() -> RistrettoPoint

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

impl<'de> Deserialize<'de> for RistrettoPoint

source§

fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error>

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

impl Div<RistrettoScalar> for RistrettoPoint

§

type Output = Result<RistrettoPoint, FastCryptoError>

The resulting type after applying the / operator.
source§

fn div(self, rhs: RistrettoScalar) -> Self::Output

Performs the / operation. Read more
source§

impl Doubling for RistrettoPoint

source§

fn double(&self) -> Self

Compute 2 * Self = Self + Self.
source§

impl From<RistrettoPoint> for RistrettoPoint

source§

fn from(original: ExternalRistrettoPoint) -> RistrettoPoint

Converts to this type from the input type.
source§

impl GroupElement for RistrettoPoint

§

type ScalarType = RistrettoScalar

Type of scalars used in the [Self::mul] multiplication method.
source§

fn zero() -> RistrettoPoint

Return an instance of the identity element in this group.
source§

fn generator() -> Self

Return an instance of the generator for this group.
source§

impl HashToGroupElement for RistrettoPoint

source§

fn hash_to_group_element(msg: &[u8]) -> Self

Hashes the given message and maps the result to a group element.
source§

impl Mul<&<RistrettoPoint as GroupElement>::ScalarType> for &RistrettoPoint

§

type Output = RistrettoPoint

The resulting type after applying the * operator.
source§

fn mul(self, rhs: &<RistrettoPoint as GroupElement>::ScalarType) -> Self::Output

Performs the * operation. Read more
source§

impl Mul<&<RistrettoPoint as GroupElement>::ScalarType> for RistrettoPoint

§

type Output = RistrettoPoint

The resulting type after applying the * operator.
source§

fn mul(self, rhs: &<RistrettoPoint as GroupElement>::ScalarType) -> Self::Output

Performs the * operation. Read more
source§

impl Mul<<RistrettoPoint as GroupElement>::ScalarType> for &RistrettoPoint

§

type Output = RistrettoPoint

The resulting type after applying the * operator.
source§

fn mul(self, rhs: <RistrettoPoint as GroupElement>::ScalarType) -> Self::Output

Performs the * operation. Read more
source§

impl Mul<RistrettoScalar> for RistrettoPoint

§

type Output = RistrettoPoint

The resulting type after applying the * operator.
source§

fn mul(self, rhs: RistrettoScalar) -> RistrettoPoint

Performs the * operation. Read more
source§

impl MulAssign<&<RistrettoPoint as GroupElement>::ScalarType> for RistrettoPoint

source§

fn mul_assign(&mut self, rhs: &<RistrettoPoint as GroupElement>::ScalarType)

Performs the *= operation. Read more
source§

impl MulAssign<<RistrettoPoint as GroupElement>::ScalarType> for RistrettoPoint

source§

fn mul_assign(&mut self, rhs: <RistrettoPoint as GroupElement>::ScalarType)

Performs the *= operation. Read more
source§

impl MultiScalarMul for RistrettoPoint

Trait Implementations§

source§

impl Add<&RistrettoPoint> for &RistrettoPoint

§

type Output = RistrettoPoint

The resulting type after applying the + operator.
source§

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

Performs the + operation. Read more
source§

impl Add<&RistrettoPoint> for RistrettoPoint

§

type Output = RistrettoPoint

The resulting type after applying the + operator.
source§

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

Performs the + operation. Read more
source§

impl Add<RistrettoPoint> for &RistrettoPoint

§

type Output = RistrettoPoint

The resulting type after applying the + operator.
source§

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

Performs the + operation. Read more
source§

impl Add for RistrettoPoint

§

type Output = RistrettoPoint

The resulting type after applying the + operator.
source§

fn add(self, rhs: RistrettoPoint) -> RistrettoPoint

Performs the + operation. Read more
source§

impl AddAssign<&RistrettoPoint> for RistrettoPoint

source§

fn add_assign(&mut self, rhs: &RistrettoPoint)

Performs the += operation. Read more
source§

impl AddAssign for RistrettoPoint

source§

fn add_assign(&mut self, rhs: RistrettoPoint)

Performs the += operation. Read more
source§

impl Clone for RistrettoPoint

source§

fn clone(&self) -> RistrettoPoint

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

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

Performs copy-assignment from source. Read more
source§

impl Debug for RistrettoPoint

source§

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

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

impl Default for RistrettoPoint

source§

fn default() -> RistrettoPoint

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

impl<'de> Deserialize<'de> for RistrettoPoint

source§

fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error>

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

impl Div<RistrettoScalar> for RistrettoPoint

§

type Output = Result<RistrettoPoint, FastCryptoError>

The resulting type after applying the / operator.
source§

fn div(self, rhs: RistrettoScalar) -> Self::Output

Performs the / operation. Read more
source§

impl Doubling for RistrettoPoint

source§

fn double(self) -> Self

Compute 2 * Self = Self + Self.
source§

fn repeated_doubling(self, repetitions: u64) -> Self

Compute input * 2^repetitions by repeated doubling.
source§

impl From<RistrettoPoint> for RistrettoPoint

source§

fn from(original: ExternalRistrettoPoint) -> RistrettoPoint

Converts to this type from the input type.
source§

impl GroupElement for RistrettoPoint

§

type ScalarType = RistrettoScalar

Type of scalars used in the [Self::mul] multiplication method.
source§

fn zero() -> RistrettoPoint

Return an instance of the identity element in this group.
source§

fn generator() -> Self

Return an instance of the generator for this group.
source§

impl HashToGroupElement for RistrettoPoint

source§

fn hash_to_group_element(msg: &[u8]) -> Self

Hashes the given message and maps the result to a group element.
source§

impl Mul<&<RistrettoPoint as GroupElement>::ScalarType> for &RistrettoPoint

§

type Output = RistrettoPoint

The resulting type after applying the * operator.
source§

fn mul(self, rhs: &<RistrettoPoint as GroupElement>::ScalarType) -> Self::Output

Performs the * operation. Read more
source§

impl Mul<&<RistrettoPoint as GroupElement>::ScalarType> for RistrettoPoint

§

type Output = RistrettoPoint

The resulting type after applying the * operator.
source§

fn mul(self, rhs: &<RistrettoPoint as GroupElement>::ScalarType) -> Self::Output

Performs the * operation. Read more
source§

impl Mul<<RistrettoPoint as GroupElement>::ScalarType> for &RistrettoPoint

§

type Output = RistrettoPoint

The resulting type after applying the * operator.
source§

fn mul(self, rhs: <RistrettoPoint as GroupElement>::ScalarType) -> Self::Output

Performs the * operation. Read more
source§

impl Mul<RistrettoScalar> for RistrettoPoint

§

type Output = RistrettoPoint

The resulting type after applying the * operator.
source§

fn mul(self, rhs: RistrettoScalar) -> RistrettoPoint

Performs the * operation. Read more
source§

impl MulAssign<&<RistrettoPoint as GroupElement>::ScalarType> for RistrettoPoint

source§

fn mul_assign(&mut self, rhs: &<RistrettoPoint as GroupElement>::ScalarType)

Performs the *= operation. Read more
source§

impl MulAssign<<RistrettoPoint as GroupElement>::ScalarType> for RistrettoPoint

source§

fn mul_assign(&mut self, rhs: <RistrettoPoint as GroupElement>::ScalarType)

Performs the *= operation. Read more
source§

impl MultiScalarMul for RistrettoPoint

source§

fn multi_scalar_mul( scalars: &[Self::ScalarType], points: &[Self], ) -> FastCryptoResult<Self>

source§

impl Neg for &RistrettoPoint

§

type Output = RistrettoPoint

The resulting type after applying the - operator.
source§

fn neg(self) -> Self::Output

Performs the unary - operation. Read more
source§

impl Neg for RistrettoPoint

§

type Output = RistrettoPoint

The resulting type after applying the - operator.
source§

fn neg(self) -> RistrettoPoint

Performs the unary - operation. Read more
source§

impl PartialEq for RistrettoPoint

source§

fn eq(&self, other: &RistrettoPoint) -> bool

This method tests for self and other values to be equal, and is used diff --git a/docs/fastcrypto/groups/secp256r1/struct.ProjectivePoint.html b/docs/fastcrypto/groups/secp256r1/struct.ProjectivePoint.html index 67817bd40e..10e5c908cb 100644 --- a/docs/fastcrypto/groups/secp256r1/struct.ProjectivePoint.html +++ b/docs/fastcrypto/groups/secp256r1/struct.ProjectivePoint.html @@ -1,5 +1,5 @@ ProjectivePoint in fastcrypto::groups::secp256r1 - Rust

Struct fastcrypto::groups::secp256r1::ProjectivePoint

source ·
pub struct ProjectivePoint(/* private fields */);
Expand description

A point on the Secp256r1 curve in projective coordinates.

-

Trait Implementations§

source§

impl Add<&ProjectivePoint> for &ProjectivePoint

§

type Output = ProjectivePoint

The resulting type after applying the + operator.
source§

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

Performs the + operation. Read more
source§

impl Add<&ProjectivePoint> for ProjectivePoint

§

type Output = ProjectivePoint

The resulting type after applying the + operator.
source§

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

Performs the + operation. Read more
source§

impl Add<ProjectivePoint> for &ProjectivePoint

§

type Output = ProjectivePoint

The resulting type after applying the + operator.
source§

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

Performs the + operation. Read more
source§

impl Add for ProjectivePoint

§

type Output = ProjectivePoint

The resulting type after applying the + operator.
source§

fn add(self, rhs: ProjectivePoint) -> ProjectivePoint

Performs the + operation. Read more
source§

impl AddAssign<&ProjectivePoint> for ProjectivePoint

source§

fn add_assign(&mut self, rhs: &ProjectivePoint)

Performs the += operation. Read more
source§

impl AddAssign for ProjectivePoint

source§

fn add_assign(&mut self, rhs: ProjectivePoint)

Performs the += operation. Read more
source§

impl Clone for ProjectivePoint

source§

fn clone(&self) -> ProjectivePoint

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

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

Performs copy-assignment from source. Read more
source§

impl Debug for ProjectivePoint

source§

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

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

impl Default for ProjectivePoint

source§

fn default() -> ProjectivePoint

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

impl Div<Scalar> for ProjectivePoint

§

type Output = Result<ProjectivePoint, FastCryptoError>

The resulting type after applying the / operator.
source§

fn div(self, rhs: Scalar) -> Result<ProjectivePoint, FastCryptoError>

Performs the / operation. Read more
source§

impl Doubling for ProjectivePoint

source§

fn double(&self) -> Self

Compute 2 * Self = Self + Self.
source§

impl From<Projective<Config>> for ProjectivePoint

source§

fn from(original: Projective) -> ProjectivePoint

Converts to this type from the input type.
source§

impl GroupElement for ProjectivePoint

§

type ScalarType = Scalar

Type of scalars used in the [Self::mul] multiplication method.
source§

fn zero() -> Self

Return an instance of the identity element in this group.
source§

fn generator() -> Self

Return an instance of the generator for this group.
source§

impl Mul<&<ProjectivePoint as GroupElement>::ScalarType> for &ProjectivePoint

§

type Output = ProjectivePoint

The resulting type after applying the * operator.
source§

fn mul( +

Trait Implementations§

source§

impl Add<&ProjectivePoint> for &ProjectivePoint

§

type Output = ProjectivePoint

The resulting type after applying the + operator.
source§

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

Performs the + operation. Read more
source§

impl Add<&ProjectivePoint> for ProjectivePoint

§

type Output = ProjectivePoint

The resulting type after applying the + operator.
source§

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

Performs the + operation. Read more
source§

impl Add<ProjectivePoint> for &ProjectivePoint

§

type Output = ProjectivePoint

The resulting type after applying the + operator.
source§

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

Performs the + operation. Read more
source§

impl Add for ProjectivePoint

§

type Output = ProjectivePoint

The resulting type after applying the + operator.
source§

fn add(self, rhs: ProjectivePoint) -> ProjectivePoint

Performs the + operation. Read more
source§

impl AddAssign<&ProjectivePoint> for ProjectivePoint

source§

fn add_assign(&mut self, rhs: &ProjectivePoint)

Performs the += operation. Read more
source§

impl AddAssign for ProjectivePoint

source§

fn add_assign(&mut self, rhs: ProjectivePoint)

Performs the += operation. Read more
source§

impl Clone for ProjectivePoint

source§

fn clone(&self) -> ProjectivePoint

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

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

Performs copy-assignment from source. Read more
source§

impl Debug for ProjectivePoint

source§

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

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

impl Default for ProjectivePoint

source§

fn default() -> ProjectivePoint

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

impl Div<Scalar> for ProjectivePoint

§

type Output = Result<ProjectivePoint, FastCryptoError>

The resulting type after applying the / operator.
source§

fn div(self, rhs: Scalar) -> Result<ProjectivePoint, FastCryptoError>

Performs the / operation. Read more
source§

impl Doubling for ProjectivePoint

source§

fn double(self) -> Self

Compute 2 * Self = Self + Self.
source§

fn repeated_doubling(self, repetitions: u64) -> Self

Compute input * 2^repetitions by repeated doubling.
source§

impl From<Projective<Config>> for ProjectivePoint

source§

fn from(original: Projective) -> ProjectivePoint

Converts to this type from the input type.
source§

impl GroupElement for ProjectivePoint

§

type ScalarType = Scalar

Type of scalars used in the [Self::mul] multiplication method.
source§

fn zero() -> Self

Return an instance of the identity element in this group.
source§

fn generator() -> Self

Return an instance of the generator for this group.
source§

impl Mul<&<ProjectivePoint as GroupElement>::ScalarType> for &ProjectivePoint

§

type Output = ProjectivePoint

The resulting type after applying the * operator.
source§

fn mul( self, rhs: &<ProjectivePoint as GroupElement>::ScalarType, ) -> Self::Output

Performs the * operation. Read more
source§

impl Mul<&<ProjectivePoint as GroupElement>::ScalarType> for ProjectivePoint

§

type Output = ProjectivePoint

The resulting type after applying the * operator.
source§

fn mul( diff --git a/docs/fastcrypto/groups/trait.Doubling.html b/docs/fastcrypto/groups/trait.Doubling.html index c4bded36be..f4d3d86975 100644 --- a/docs/fastcrypto/groups/trait.Doubling.html +++ b/docs/fastcrypto/groups/trait.Doubling.html @@ -1,6 +1,10 @@ -Doubling in fastcrypto::groups - Rust

Trait fastcrypto::groups::Doubling

source ·
pub trait Doubling {
+Doubling in fastcrypto::groups - Rust

Trait fastcrypto::groups::Doubling

source ·
pub trait Doubling: Clone {
     // Required method
-    fn double(&self) -> Self;
+    fn double(self) -> Self;
+
+    // Provided method
+    fn repeated_doubling(self, repetitions: u64) -> Self { ... }
 }
Expand description

Trait for group elements that has a fast doubling operation.

-

Required Methods§

source

fn double(&self) -> Self

Compute 2 * Self = Self + Self.

+

Required Methods§

source

fn double(self) -> Self

Compute 2 * Self = Self + Self.

+

Provided Methods§

source

fn repeated_doubling(self, repetitions: u64) -> Self

Compute input * 2^repetitions by repeated doubling.

Object Safety§

This trait is not object safe.

Implementors§

\ No newline at end of file diff --git a/docs/fastcrypto/groups/trait.FiatShamirChallenge.html b/docs/fastcrypto/groups/trait.FiatShamirChallenge.html index 0264f5c27d..6674028d65 100644 --- a/docs/fastcrypto/groups/trait.FiatShamirChallenge.html +++ b/docs/fastcrypto/groups/trait.FiatShamirChallenge.html @@ -1,7 +1,7 @@ -FiatShamirChallenge in fastcrypto::groups - Rust

Trait fastcrypto::groups::FiatShamirChallenge

source ·
pub trait FiatShamirChallenge {
+FiatShamirChallenge in fastcrypto::groups - Rust

Trait fastcrypto::groups::FiatShamirChallenge

source ·
pub trait FiatShamirChallenge {
     // Required method
     fn fiat_shamir_reduction_to_group_element(uniform_buffer: &[u8]) -> Self;
 }
Expand description

Trait for groups that have a reduction from a random buffer to a group element that is secure when used for Fiat-Shamir. Note that the resulting group element is not guaranteed to be uniformly distributed, but only to have enough entropy to be used for Fiat-Shamir heuristic.

-

Required Methods§

source

fn fiat_shamir_reduction_to_group_element(uniform_buffer: &[u8]) -> Self

Object Safety§

This trait is not object safe.

Implementors§

\ No newline at end of file +

Required Methods§

source

fn fiat_shamir_reduction_to_group_element(uniform_buffer: &[u8]) -> Self

Object Safety§

This trait is not object safe.

Implementors§

\ No newline at end of file diff --git a/docs/fastcrypto/groups/trait.FromTrustedByteArray.html b/docs/fastcrypto/groups/trait.FromTrustedByteArray.html index d82a7d212d..2c66f868bc 100644 --- a/docs/fastcrypto/groups/trait.FromTrustedByteArray.html +++ b/docs/fastcrypto/groups/trait.FromTrustedByteArray.html @@ -1,5 +1,5 @@ -FromTrustedByteArray in fastcrypto::groups - Rust

Trait fastcrypto::groups::FromTrustedByteArray

source ·
pub trait FromTrustedByteArray<const LENGTH: usize>: Sized {
+FromTrustedByteArray in fastcrypto::groups - Rust

Trait fastcrypto::groups::FromTrustedByteArray

source ·
pub trait FromTrustedByteArray<const LENGTH: usize>: Sized {
     // Required method
     fn from_trusted_byte_array(bytes: &[u8; LENGTH]) -> FastCryptoResult<Self>;
 }
Expand description

Faster deserialization in case the input is trusted (otherwise it can be insecure).

-

Required Methods§

Object Safety§

This trait is not object safe.

Implementors§

source§

impl FromTrustedByteArray<G1_ELEMENT_BYTE_LENGTH> for G1Element

source§

impl FromTrustedByteArray<G2_ELEMENT_BYTE_LENGTH> for G2Element

source§

impl FromTrustedByteArray<GT_ELEMENT_BYTE_LENGTH> for GTElement

source§

impl FromTrustedByteArray<SCALAR_LENGTH> for Scalar

\ No newline at end of file +

Required Methods§

Object Safety§

This trait is not object safe.

Implementors§

source§

impl FromTrustedByteArray<G1_ELEMENT_BYTE_LENGTH> for G1Element

source§

impl FromTrustedByteArray<G2_ELEMENT_BYTE_LENGTH> for G2Element

source§

impl FromTrustedByteArray<GT_ELEMENT_BYTE_LENGTH> for GTElement

source§

impl FromTrustedByteArray<SCALAR_LENGTH> for Scalar

\ No newline at end of file diff --git a/docs/fastcrypto/groups/trait.HashToGroupElement.html b/docs/fastcrypto/groups/trait.HashToGroupElement.html index 145aba737b..6996a0a87b 100644 --- a/docs/fastcrypto/groups/trait.HashToGroupElement.html +++ b/docs/fastcrypto/groups/trait.HashToGroupElement.html @@ -1,7 +1,7 @@ -HashToGroupElement in fastcrypto::groups - Rust

Trait fastcrypto::groups::HashToGroupElement

source ·
pub trait HashToGroupElement {
+HashToGroupElement in fastcrypto::groups - Rust

Trait fastcrypto::groups::HashToGroupElement

source ·
pub trait HashToGroupElement {
     // Required method
     fn hash_to_group_element(msg: &[u8]) -> Self;
 }
Expand description

Trait for groups that have a standardized “hash_to_point”/“hash_to_curve” function (see [https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-hash-to-curve#section-3].

-

Required Methods§

source

fn hash_to_group_element(msg: &[u8]) -> Self

Hashes the given message and maps the result to a group element.

+

Required Methods§

source

fn hash_to_group_element(msg: &[u8]) -> Self

Hashes the given message and maps the result to a group element.

Object Safety§

This trait is not object safe.

Implementors§

\ No newline at end of file diff --git a/docs/fastcrypto/groups/trait.MultiScalarMul.html b/docs/fastcrypto/groups/trait.MultiScalarMul.html index f30262ad63..6b35860c2c 100644 --- a/docs/fastcrypto/groups/trait.MultiScalarMul.html +++ b/docs/fastcrypto/groups/trait.MultiScalarMul.html @@ -1,11 +1,11 @@ -MultiScalarMul in fastcrypto::groups - Rust

Trait fastcrypto::groups::MultiScalarMul

source ·
pub trait MultiScalarMul: GroupElement {
+MultiScalarMul in fastcrypto::groups - Rust

Trait fastcrypto::groups::MultiScalarMul

source ·
pub trait MultiScalarMul: GroupElement {
     // Required method
     fn multi_scalar_mul(
         scalars: &[Self::ScalarType],
         points: &[Self],
     ) -> FastCryptoResult<Self>;
 }
Expand description

Trait for groups that support multi-scalar multiplication.

-

Required Methods§

Required Methods§

source

fn multi_scalar_mul( scalars: &[Self::ScalarType], points: &[Self], ) -> FastCryptoResult<Self>

Object Safety§

This trait is not object safe.

Implementors§

\ No newline at end of file diff --git a/docs/fastcrypto/groups/trait.Pairing.html b/docs/fastcrypto/groups/trait.Pairing.html index 124ffe1842..1252033b72 100644 --- a/docs/fastcrypto/groups/trait.Pairing.html +++ b/docs/fastcrypto/groups/trait.Pairing.html @@ -1,4 +1,4 @@ -Pairing in fastcrypto::groups - Rust

Trait fastcrypto::groups::Pairing

source ·
pub trait Pairing: GroupElement {
+Pairing in fastcrypto::groups - Rust

Trait fastcrypto::groups::Pairing

source ·
pub trait Pairing: GroupElement {
     type Other: GroupElement;
     type Output;
 
@@ -11,7 +11,7 @@
         points_g2: &[Self::Other],
     ) -> FastCryptoResult<<Self as Pairing>::Output>
        where <Self as Pairing>::Output: GroupElement { ... }
-}

Required Associated Types§

Required Methods§

source

fn pairing(&self, other: &Self::Other) -> <Self as Pairing>::Output

Provided Methods§

Required Associated Types§

Required Methods§

source

fn pairing(&self, other: &Self::Other) -> <Self as Pairing>::Output

Provided Methods§

source

fn multi_pairing( points_g1: &[Self], points_g2: &[Self::Other], ) -> FastCryptoResult<<Self as Pairing>::Output>
where diff --git a/docs/fastcrypto_vdf/all.html b/docs/fastcrypto_vdf/all.html index 86f7c15d65..4177cb720b 100644 --- a/docs/fastcrypto_vdf/all.html +++ b/docs/fastcrypto_vdf/all.html @@ -1 +1 @@ -List of all items in this crate
\ No newline at end of file +List of all items in this crate
\ No newline at end of file diff --git a/docs/fastcrypto_vdf/class_group/index.html b/docs/fastcrypto_vdf/class_group/index.html index b8fb4e5b97..427b3e5afd 100644 --- a/docs/fastcrypto_vdf/class_group/index.html +++ b/docs/fastcrypto_vdf/class_group/index.html @@ -1,4 +1,4 @@ -fastcrypto_vdf::class_group - Rust

Module fastcrypto_vdf::class_group

source ·
Expand description

This module contains implementation of imaginary class groups. Elements are represented by +fastcrypto_vdf::class_group - Rust

Module fastcrypto_vdf::class_group

source ·
Expand description

This module contains implementation of imaginary class groups. Elements are represented by binary quadratic forms which forms a group under composition. Here we use additive notation for the composition.

Modules§

  • Discriminants of quadratic forms are negative primes which is 1 mod 8. This module contains a type to represent diff --git a/docs/fastcrypto_vdf/class_group/struct.QuadraticForm.html b/docs/fastcrypto_vdf/class_group/struct.QuadraticForm.html index 3e1b2d9726..e612e871f4 100644 --- a/docs/fastcrypto_vdf/class_group/struct.QuadraticForm.html +++ b/docs/fastcrypto_vdf/class_group/struct.QuadraticForm.html @@ -32,9 +32,9 @@
source

pub fn generator(discriminant: &Discriminant) -> Self

Return a generator (or, more precisely, an element with a presumed large order) in a class group with a given discriminant which is 1 mod 8. We use the element (2, 1, c) where c is determined from the discriminant.

source

pub fn compose(&self, rhs: &QuadraticForm) -> QuadraticForm

Compute the composition of this quadratic form with another quadratic form.

-

Trait Implementations§

source§

impl Add<&QuadraticForm> for &QuadraticForm

§

type Output = QuadraticForm

The resulting type after applying the + operator.
source§

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

Performs the + operation. Read more
source§

impl Add<&QuadraticForm> for QuadraticForm

§

type Output = QuadraticForm

The resulting type after applying the + operator.
source§

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

Performs the + operation. Read more
source§

impl Add for QuadraticForm

§

type Output = QuadraticForm

The resulting type after applying the + operator.
source§

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

Performs the + operation. Read more
source§

impl Clone for QuadraticForm

source§

fn clone(&self) -> QuadraticForm

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

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

Performs copy-assignment from source. Read more
source§

impl Debug for QuadraticForm

source§

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

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

impl<'de> Deserialize<'de> for QuadraticForm

source§

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

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

impl Doubling for QuadraticForm

source§

fn double(&self) -> Self

Compute 2 * Self = Self + Self.
source§

impl Neg for QuadraticForm

§

type Output = QuadraticForm

The resulting type after applying the - operator.
source§

fn neg(self) -> Self::Output

Performs the unary - operation. Read more
source§

impl ParameterizedGroupElement for QuadraticForm

§

type ParameterType = Discriminant

The discriminant of a quadratic form defines the class group.

-
§

type ScalarType = BigInt

Integer type used for multiplication.
source§

fn zero(discriminant: &Self::ParameterType) -> Self

Return an instance of the identity element in this group.
source§

fn is_in_group(&self, discriminant: &Discriminant) -> bool

Returns true if this is an element of the group defined by parameter.
source§

impl PartialEq for QuadraticForm

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Add<&QuadraticForm> for &QuadraticForm

§

type Output = QuadraticForm

The resulting type after applying the + operator.
source§

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

Performs the + operation. Read more
source§

impl Add<&QuadraticForm> for QuadraticForm

§

type Output = QuadraticForm

The resulting type after applying the + operator.
source§

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

Performs the + operation. Read more
source§

impl Add for QuadraticForm

§

type Output = QuadraticForm

The resulting type after applying the + operator.
source§

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

Performs the + operation. Read more
source§

impl Clone for QuadraticForm

source§

fn clone(&self) -> QuadraticForm

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

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

Performs copy-assignment from source. Read more
source§

impl Debug for QuadraticForm

source§

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

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

impl<'de> Deserialize<'de> for QuadraticForm

source§

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

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

impl Doubling for QuadraticForm

source§

fn double(self) -> Self

Compute 2 * Self = Self + Self.
§

fn repeated_doubling(self, repetitions: u64) -> Self

Compute input * 2^repetitions by repeated doubling.
source§

impl Neg for QuadraticForm

§

type Output = QuadraticForm

The resulting type after applying the - operator.
source§

fn neg(self) -> Self::Output

Performs the unary - operation. Read more
source§

impl ParameterizedGroupElement for QuadraticForm

§

type ParameterType = Discriminant

The discriminant of a quadratic form defines the class group.

+
source§

fn zero(discriminant: &Self::ParameterType) -> Self

Return an instance of the identity element in this group.
source§

fn is_in_group(&self, discriminant: &Discriminant) -> bool

Returns true if this is an element of the group defined by parameter.
source§

impl PartialEq for QuadraticForm

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Serialize for QuadraticForm

source§

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

Serialize this value into the given Serde serializer. Read more
source§

impl Eq for QuadraticForm

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where diff --git a/docs/fastcrypto_vdf/math/parameterized_group/index.html b/docs/fastcrypto_vdf/math/parameterized_group/index.html index 3a72eff429..44fb422417 100644 --- a/docs/fastcrypto_vdf/math/parameterized_group/index.html +++ b/docs/fastcrypto_vdf/math/parameterized_group/index.html @@ -1,3 +1,3 @@ -fastcrypto_vdf::math::parameterized_group - Rust

Module fastcrypto_vdf::math::parameterized_group

source ·

Traits§

Required Methods§

source

fn zero(parameter: &Self::ParameterType) -> Self

Return an instance of the identity element in this group.

+
source

fn is_in_group(&self, parameter: &Self::ParameterType) -> bool

Returns true if this is an element of the group defined by parameter.

+

Object Safety§

This trait is not object safe.

Implementors§

\ No newline at end of file diff --git a/docs/fastcrypto_vdf/vdf/index.html b/docs/fastcrypto_vdf/vdf/index.html index cc33bbda03..4a037f9dde 100644 --- a/docs/fastcrypto_vdf/vdf/index.html +++ b/docs/fastcrypto_vdf/vdf/index.html @@ -1,3 +1,3 @@ -fastcrypto_vdf::vdf - Rust

Module fastcrypto_vdf::vdf

source ·
Expand description

This module contains a implementation of a verifiable delay function (VDF), using Wesolowski’s +fastcrypto_vdf::vdf - Rust

Module fastcrypto_vdf::vdf

source ·
Expand description

This module contains a implementation of a verifiable delay function (VDF), using Wesolowski’s construction with ideal class groups.

-

Modules§

Traits§

  • This represents a Verifiable Delay Function (VDF) construction.
\ No newline at end of file +

Modules§

Traits§

  • This represents a Verifiable Delay Function (VDF) construction.
\ No newline at end of file diff --git a/docs/fastcrypto_vdf/vdf/pietrzak/constant.DEFAULT_CHALLENGE_SIZE_IN_BYTES.html b/docs/fastcrypto_vdf/vdf/pietrzak/constant.DEFAULT_CHALLENGE_SIZE_IN_BYTES.html new file mode 100644 index 0000000000..51f4636880 --- /dev/null +++ b/docs/fastcrypto_vdf/vdf/pietrzak/constant.DEFAULT_CHALLENGE_SIZE_IN_BYTES.html @@ -0,0 +1,5 @@ +DEFAULT_CHALLENGE_SIZE_IN_BYTES in fastcrypto_vdf::vdf::pietrzak - Rust
pub const DEFAULT_CHALLENGE_SIZE_IN_BYTES: usize = 16;
Expand description

Default size in bytes of the Fiat-Shamir challenge used in proving and verification.

+

This is based on Pietrzak (2018), “Simple Verifiable Delay Functions” (https://eprint.iacr.org/2018/627.pdf) +which states that the challenge should be 2^l bits (see section 6), where l is the security +parameter. Soundness is proven in section 6.3 in this paper.

+
\ No newline at end of file diff --git a/docs/fastcrypto_vdf/vdf/pietrzak/index.html b/docs/fastcrypto_vdf/vdf/pietrzak/index.html new file mode 100644 index 0000000000..084e079925 --- /dev/null +++ b/docs/fastcrypto_vdf/vdf/pietrzak/index.html @@ -0,0 +1 @@ +fastcrypto_vdf::vdf::pietrzak - Rust

Module fastcrypto_vdf::vdf::pietrzak

source ·

Structs§

  • This implements Pietrzak’s VDF construction from https://eprint.iacr.org/2018/627.pdf.

Constants§

\ No newline at end of file diff --git a/docs/fastcrypto_vdf/vdf/pietrzak/sidebar-items.js b/docs/fastcrypto_vdf/vdf/pietrzak/sidebar-items.js new file mode 100644 index 0000000000..41e2d07cd1 --- /dev/null +++ b/docs/fastcrypto_vdf/vdf/pietrzak/sidebar-items.js @@ -0,0 +1 @@ +window.SIDEBAR_ITEMS = {"constant":["DEFAULT_CHALLENGE_SIZE_IN_BYTES"],"struct":["PietrzaksVDF"]}; \ No newline at end of file diff --git a/docs/fastcrypto_vdf/vdf/pietrzak/struct.PietrzaksVDF.html b/docs/fastcrypto_vdf/vdf/pietrzak/struct.PietrzaksVDF.html new file mode 100644 index 0000000000..9c0f082d38 --- /dev/null +++ b/docs/fastcrypto_vdf/vdf/pietrzak/struct.PietrzaksVDF.html @@ -0,0 +1,106 @@ +PietrzaksVDF in fastcrypto_vdf::vdf::pietrzak - Rust

Struct fastcrypto_vdf::vdf::pietrzak::PietrzaksVDF

source ·
pub struct PietrzaksVDF<G: ParameterizedGroupElement> { /* private fields */ }
Expand description

This implements Pietrzak’s VDF construction from https://eprint.iacr.org/2018/627.pdf.

+

The VDF is, as in crate::vdf::wesolowski::WesolowskisVDF, based on the repeated squaring of an +element in a group of unknown order. However, in this construction, proofs are larger and +verification is slower than in Wesolowski’s construction, but the output of a VDF is unique, +assuming that the used group have no small subgroups, and proving is faster for the same number +of iterations.

+

Implementations§

source§

impl<G: ParameterizedGroupElement> PietrzaksVDF<G>

source

pub fn new(group_parameter: G::ParameterType, iterations: u64) -> Self

Create a new VDF using the group defined by the given group parameter. Evaluating this VDF +will require computing 2^iterations * input which requires iterations group operations.

+

Trait Implementations§

source§

impl<G: ParameterizedGroupElement + Serialize> VDF for PietrzaksVDF<G>

§

type InputType = G

The type of the input to the VDF.
§

type OutputType = G

The type of the output from the VDF.
§

type ProofType = Vec<G>

The type of the proof of correctness for this VDF.
source§

fn evaluate(&self, input: &G) -> FastCryptoResult<(G, Vec<G>)>

Evaluate this VDF and return the output and a proof of correctness.
source§

fn verify(&self, input: &G, output: &G, proof: &Vec<G>) -> FastCryptoResult<()>

Verify the output and proof from a VDF.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where + Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> FmtForward for T

§

fn fmt_binary(self) -> FmtBinary<Self>
where + Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
§

fn fmt_display(self) -> FmtDisplay<Self>
where + Self: Display,

Causes self to use its Display implementation when +Debug-formatted.
§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where + Self: LowerExp,

Causes self to use its LowerExp implementation when +Debug-formatted.
§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where + Self: LowerHex,

Causes self to use its LowerHex implementation when +Debug-formatted.
§

fn fmt_octal(self) -> FmtOctal<Self>
where + Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
§

fn fmt_pointer(self) -> FmtPointer<Self>
where + Self: Pointer,

Causes self to use its Pointer implementation when +Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where + Self: UpperExp,

Causes self to use its UpperExp implementation when +Debug-formatted.
§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where + Self: UpperHex,

Causes self to use its UpperHex implementation when +Debug-formatted.
§

fn fmt_list(self) -> FmtList<Self>
where + &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

That is, this conversion is whatever the implementation of +From<T> for U chooses to do.

+
§

impl<T> Pipe for T
where + T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where + Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where + R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where + R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where + Self: Borrow<B>, + B: 'a + ?Sized, + R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

fn pipe_borrow_mut<'a, B, R>( + &'a mut self, + func: impl FnOnce(&'a mut B) -> R, +) -> R
where + Self: BorrowMut<B>, + B: 'a + ?Sized, + R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe +function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where + Self: AsRef<U>, + U: 'a + ?Sized, + R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
§

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
where + Self: AsMut<U>, + U: 'a + ?Sized, + R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe +function.
§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where + Self: Deref<Target = T>, + T: 'a + ?Sized, + R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( + &'a mut self, + func: impl FnOnce(&'a mut T) -> R, +) -> R
where + Self: DerefMut<Target = T> + Deref, + T: 'a + ?Sized, + R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe +function.
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where + Self: Borrow<B>, + B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where + Self: BorrowMut<B>, + B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where + Self: AsRef<R>, + R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where + Self: AsMut<R>, + R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where + Self: Deref<Target = T>, + T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release +builds.
§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where + Self: Borrow<B>, + B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release +builds.
§

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
where + Self: BorrowMut<B>, + B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release +builds.
§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where + Self: AsRef<R>, + R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release +builds.
§

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
where + Self: AsMut<R>, + R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release +builds.
§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where + Self: Deref<Target = T>, + T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release +builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where + Self: DerefMut<Target = T> + Deref, + T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release +builds.
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where + Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/docs/fastcrypto_vdf/vdf/sidebar-items.js b/docs/fastcrypto_vdf/vdf/sidebar-items.js index e342b0ac08..8650a29dee 100644 --- a/docs/fastcrypto_vdf/vdf/sidebar-items.js +++ b/docs/fastcrypto_vdf/vdf/sidebar-items.js @@ -1 +1 @@ -window.SIDEBAR_ITEMS = {"mod":["wesolowski"],"trait":["VDF"]}; \ No newline at end of file +window.SIDEBAR_ITEMS = {"mod":["pietrzak","wesolowski"],"trait":["VDF"]}; \ No newline at end of file diff --git a/docs/fastcrypto_vdf/vdf/trait.VDF.html b/docs/fastcrypto_vdf/vdf/trait.VDF.html index b00e8c3707..53c13ea186 100644 --- a/docs/fastcrypto_vdf/vdf/trait.VDF.html +++ b/docs/fastcrypto_vdf/vdf/trait.VDF.html @@ -1,4 +1,4 @@ -VDF in fastcrypto_vdf::vdf - Rust

Trait fastcrypto_vdf::vdf::VDF

source ·
pub trait VDF {
+VDF in fastcrypto_vdf::vdf - Rust

Trait fastcrypto_vdf::vdf::VDF

source ·
pub trait VDF {
     type InputType;
     type OutputType;
     type ProofType;
@@ -15,17 +15,18 @@
         proof: &Self::ProofType,
     ) -> FastCryptoResult<()>;
 }
Expand description

This represents a Verifiable Delay Function (VDF) construction.

-

Required Associated Types§

source

type InputType

The type of the input to the VDF.

-
source

type OutputType

The type of the output from the VDF.

-
source

type ProofType

The type of the proof of correctness for this VDF.

-

Required Methods§

Required Associated Types§

source

type InputType

The type of the input to the VDF.

+
source

type OutputType

The type of the output from the VDF.

+
source

type ProofType

The type of the proof of correctness for this VDF.

+

Required Methods§

source

fn evaluate( &self, input: &Self::InputType, ) -> FastCryptoResult<(Self::OutputType, Self::ProofType)>

Evaluate this VDF and return the output and a proof of correctness.

-
source

fn verify( +

source

fn verify( &self, input: &Self::InputType, output: &Self::OutputType, proof: &Self::ProofType, ) -> FastCryptoResult<()>

Verify the output and proof from a VDF.

-

Implementors§

source§

impl<G: ParameterizedGroupElement<ScalarType = BigInt>, F: FiatShamir<G>, M: ScalarMultiplier<G, BigInt>> VDF for WesolowskisVDF<G, F, M>

§

type InputType = G

§

type OutputType = G

§

type ProofType = G

\ No newline at end of file +

Implementors§

source§

impl<G: ParameterizedGroupElement + Serialize> VDF for PietrzaksVDF<G>

§

type InputType = G

§

type OutputType = G

§

type ProofType = Vec<G>

source§

impl<G: ParameterizedGroupElement, F: FiatShamir<G>, M: ScalarMultiplier<G, BigUint>> VDF for WesolowskisVDF<G, F, M>

§

type InputType = G

§

type OutputType = G

§

type ProofType = G

\ No newline at end of file diff --git a/docs/fastcrypto_vdf/vdf/wesolowski/index.html b/docs/fastcrypto_vdf/vdf/wesolowski/index.html index cb69cb20f5..d8650b29e6 100644 --- a/docs/fastcrypto_vdf/vdf/wesolowski/index.html +++ b/docs/fastcrypto_vdf/vdf/wesolowski/index.html @@ -1,3 +1,3 @@ -fastcrypto_vdf::vdf::wesolowski - Rust

Module fastcrypto_vdf::vdf::wesolowski

source ·

Structs§

  • An implementation of Wesolowski’s VDF construction (https://eprint.iacr.org/2018/623) over a +fastcrypto_vdf::vdf::wesolowski - Rust

    Module fastcrypto_vdf::vdf::wesolowski

    source ·

    Structs§

    • An implementation of Wesolowski’s VDF construction (https://eprint.iacr.org/2018/623) over a group of unknown order.

    Type Aliases§

    • Implementation of Wesolowski’s VDF construction over an imaginary class group using a strong Fiat-Shamir implementation.
    \ No newline at end of file diff --git a/docs/fastcrypto_vdf/vdf/wesolowski/struct.WesolowskisVDF.html b/docs/fastcrypto_vdf/vdf/wesolowski/struct.WesolowskisVDF.html index c77fa1f801..bf2448073f 100644 --- a/docs/fastcrypto_vdf/vdf/wesolowski/struct.WesolowskisVDF.html +++ b/docs/fastcrypto_vdf/vdf/wesolowski/struct.WesolowskisVDF.html @@ -1,8 +1,8 @@ -WesolowskisVDF in fastcrypto_vdf::vdf::wesolowski - Rust

    Struct fastcrypto_vdf::vdf::wesolowski::WesolowskisVDF

    source ·
    pub struct WesolowskisVDF<G: ParameterizedGroupElement, F: FiatShamir<G>, M: ScalarMultiplier<G, G::ScalarType>> { /* private fields */ }
    Expand description

    An implementation of Wesolowski’s VDF construction (https://eprint.iacr.org/2018/623) over a +WesolowskisVDF in fastcrypto_vdf::vdf::wesolowski - Rust

    Struct fastcrypto_vdf::vdf::wesolowski::WesolowskisVDF

    source ·
    pub struct WesolowskisVDF<G: ParameterizedGroupElement, F: FiatShamir<G>, M: ScalarMultiplier<G, BigUint>> { /* private fields */ }
    Expand description

    An implementation of Wesolowski’s VDF construction (https://eprint.iacr.org/2018/623) over a group of unknown order.

    -

    Implementations§

    source§

    impl<G: ParameterizedGroupElement, F: FiatShamir<G>, M: ScalarMultiplier<G, G::ScalarType>> WesolowskisVDF<G, F, M>

    source

    pub fn new(group_parameter: G::ParameterType, iterations: u64) -> Self

    Create a new VDF using the group defined by the given group parameter. Evaluating this VDF +

    Implementations§

    source§

    impl<G: ParameterizedGroupElement, F: FiatShamir<G>, M: ScalarMultiplier<G, BigUint>> WesolowskisVDF<G, F, M>

    source

    pub fn new(group_parameter: G::ParameterType, iterations: u64) -> Self

    Create a new VDF using the group defined by the given group parameter. Evaluating this VDF will require computing 2^iterations * input which requires iterations group operations.

    -

    Trait Implementations§

    source§

    impl<G: ParameterizedGroupElement<ScalarType = BigInt>, F: FiatShamir<G>, M: ScalarMultiplier<G, BigInt>> VDF for WesolowskisVDF<G, F, M>

    §

    type InputType = G

    The type of the input to the VDF.
    §

    type OutputType = G

    The type of the output from the VDF.
    §

    type ProofType = G

    The type of the proof of correctness for this VDF.
    source§

    fn evaluate(&self, input: &G) -> FastCryptoResult<(G, G)>

    Evaluate this VDF and return the output and a proof of correctness.
    source§

    fn verify(&self, input: &G, output: &G, proof: &G) -> FastCryptoResult<()>

    Verify the output and proof from a VDF.

    Auto Trait Implementations§

    §

    impl<G, F, M> Freeze for WesolowskisVDF<G, F, M>
    where +

    Trait Implementations§

    source§

    impl<G: ParameterizedGroupElement, F: FiatShamir<G>, M: ScalarMultiplier<G, BigUint>> VDF for WesolowskisVDF<G, F, M>

    §

    type InputType = G

    The type of the input to the VDF.
    §

    type OutputType = G

    The type of the output from the VDF.
    §

    type ProofType = G

    The type of the proof of correctness for this VDF.
    source§

    fn evaluate(&self, input: &G) -> FastCryptoResult<(G, G)>

    Evaluate this VDF and return the output and a proof of correctness.
    source§

    fn verify(&self, input: &G, output: &G, proof: &G) -> FastCryptoResult<()>

    Verify the output and proof from a VDF.

    Auto Trait Implementations§

    §

    impl<G, F, M> Freeze for WesolowskisVDF<G, F, M>

    §

    impl<G, F, M> RefUnwindSafe for WesolowskisVDF<G, F, M>
    where <G as ParameterizedGroupElement>::ParameterType: RefUnwindSafe, F: RefUnwindSafe, diff --git a/docs/fastcrypto_vdf/vdf/wesolowski/type.DefaultVDF.html b/docs/fastcrypto_vdf/vdf/wesolowski/type.DefaultVDF.html index 6b2b65dccf..2a3e361fba 100644 --- a/docs/fastcrypto_vdf/vdf/wesolowski/type.DefaultVDF.html +++ b/docs/fastcrypto_vdf/vdf/wesolowski/type.DefaultVDF.html @@ -1,3 +1,3 @@ -DefaultVDF in fastcrypto_vdf::vdf::wesolowski - Rust

    Type Alias fastcrypto_vdf::vdf::wesolowski::DefaultVDF

    source ·
    pub type DefaultVDF = WesolowskisVDF<QuadraticForm, StrongFiatShamir, WindowedScalarMultiplier<QuadraticForm, BigInt, 256, 5>>;
    Expand description

    Implementation of Wesolowski’s VDF construction over an imaginary class group using a strong +DefaultVDF in fastcrypto_vdf::vdf::wesolowski - Rust

    Type Alias fastcrypto_vdf::vdf::wesolowski::DefaultVDF

    source ·
    pub type DefaultVDF = WesolowskisVDF<QuadraticForm, StrongFiatShamir, WindowedScalarMultiplier<QuadraticForm, BigUint, 256, 5>>;
    Expand description

    Implementation of Wesolowski’s VDF construction over an imaginary class group using a strong Fiat-Shamir implementation.

    Aliased Type§

    struct DefaultVDF { /* private fields */ }
    \ No newline at end of file diff --git a/docs/search-index.js b/docs/search-index.js index ebc58d062f..a8968412c5 100644 --- a/docs/search-index.js +++ b/docs/search-index.js @@ -1,11 +1,11 @@ var searchIndex = new Map(JSON.parse('[\ ["ecvrf_cli",{"t":"GPPFPFNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNOONNNHOOOONNNNNNNNNNNNNNNNNNNN","n":["Command","Keygen","Prove","ProveArguments","Verify","VerifyArguments","__clone_box","__clone_box","augment_args","augment_args","augment_args_for_update","augment_args_for_update","augment_subcommands","augment_subcommands_for_update","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","command","command","command","command_for_update","command_for_update","command_for_update","execute","from","from","from","from_arg_matches","from_arg_matches","from_arg_matches","from_arg_matches_mut","from_arg_matches_mut","from_arg_matches_mut","group_id","group_id","has_subcommand","input","input","into","into","into","main","output","proof","public_key","secret_key","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches_mut","update_from_arg_matches_mut","update_from_arg_matches_mut","vzip","vzip","vzip"],"q":[[0,"ecvrf_cli"],[73,"dyn_clone::sealed"],[74,"clap::builder::command"],[75,"alloc::string"],[76,"std::io::error"],[77,"core::result"],[78,"clap::parser::matches::arg_matches"],[79,"clap"],[80,"clap::util::id"],[81,"core::option"],[82,"core::any"]],"i":[0,8,8,0,8,0,6,7,6,7,6,7,8,8,8,6,7,8,6,7,6,7,6,7,8,6,7,8,6,7,0,8,6,7,8,6,7,8,6,7,6,7,8,6,7,8,6,7,0,7,7,7,6,6,7,8,6,7,8,6,7,8,6,7,8,6,7,8,6,7,8,6,7],"f":"``````{{{b{c}}d}f{}}0{hh}00000{{{b{c}}}{{b{e}}}{}{}}00{{{b{jc}}}{{b{je}}}{}{}}00{{{b{l}}}l}{{{b{n}}}n}{{{b{c}}{b{je}}}f{}{}}0{{}h}00000{A`{{Af{AbAd}}}}{cc{}}00{{{b{Ah}}}{{Af{A`Aj}}}}{{{b{Ah}}}{{Af{lAj}}}}{{{b{Ah}}}{{Af{nAj}}}}{{{b{jAh}}}{{Af{A`Aj}}}}{{{b{jAh}}}{{Af{lAj}}}}{{{b{jAh}}}{{Af{nAj}}}}{{}{{An{Al}}}}0{{{b{B`}}}Bb}``{ce{}{}}00{{}f}````{{{b{c}}}e{}{}}0{c{{Af{e}}}{}{}}00000{{{b{c}}}Bd{}}00{{{b{jA`}}{b{Ah}}}{{Af{fAj}}}}{{{b{jl}}{b{Ah}}}{{Af{fAj}}}}{{{b{jn}}{b{Ah}}}{{Af{fAj}}}}{{{b{jA`}}{b{jAh}}}{{Af{fAj}}}}{{{b{jl}}{b{jAh}}}{{Af{fAj}}}}{{{b{jn}}{b{jAh}}}{{Af{fAj}}}}:::","D":"An","p":[[1,"reference"],[5,"Private",73],[1,"unit"],[5,"Command",74],[0,"mut"],[5,"ProveArguments",0],[5,"VerifyArguments",0],[6,"Command",0],[5,"String",75],[5,"Error",76],[6,"Result",77],[5,"ArgMatches",78],[8,"Error",79],[5,"Id",80],[6,"Option",81],[1,"str"],[1,"bool"],[5,"TypeId",82]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAADoABgAAAAEABAAAAAYAGQAjAAgAMQAAADYAEwA="}],\ ["encode_cli",{"t":"FPGPNNNNNNNNNNNNNNNHNNNNNNNNNNHNNNNNNNNNNNONN","n":["Arg","Base64ToHex","Command","HexToBase64","__clone_box","augment_args","augment_args_for_update","augment_subcommands","augment_subcommands_for_update","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","command","command","command_for_update","command_for_update","execute","from","from","from_arg_matches","from_arg_matches","from_arg_matches_mut","from_arg_matches_mut","group_id","has_subcommand","into","into","main","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches_mut","update_from_arg_matches_mut","value","vzip","vzip"],"q":[[0,"encode_cli"],[45,"dyn_clone::sealed"],[46,"clap::builder::command"],[47,"std::io::error"],[48,"core::result"],[49,"clap::parser::matches::arg_matches"],[50,"clap"],[51,"clap::util::id"],[52,"core::option"],[53,"core::any"]],"i":[0,7,0,7,6,6,6,7,7,7,6,7,6,6,6,7,6,7,6,0,7,6,7,6,7,6,6,7,7,6,0,6,7,6,7,6,7,6,7,6,7,6,6,7,6],"f":"````{{{b{c}}d}f{}}{hh}000{{{b{c}}}{{b{e}}}{}{}}0{{{b{jc}}}{{b{je}}}{}{}}0{{{b{l}}}l}{{{b{c}}{b{je}}}f{}{}}{{}h}000{n{{Ab{fA`}}}}{cc{}}0{{{b{Ad}}}{{Ab{nAf}}}}{{{b{Ad}}}{{Ab{lAf}}}}{{{b{jAd}}}{{Ab{nAf}}}}{{{b{jAd}}}{{Ab{lAf}}}}{{}{{Aj{Ah}}}}{{{b{Al}}}An}{ce{}{}}0{{}f}{{{b{c}}}e{}{}}{c{{Ab{e}}}{}{}}000{{{b{c}}}B`{}}0{{{b{jn}}{b{Ad}}}{{Ab{fAf}}}}{{{b{jl}}{b{Ad}}}{{Ab{fAf}}}}{{{b{jn}}{b{jAd}}}{{Ab{fAf}}}}{{{b{jl}}{b{jAd}}}{{Ab{fAf}}}}`88","D":"l","p":[[1,"reference"],[5,"Private",45],[1,"unit"],[5,"Command",46],[0,"mut"],[5,"Arg",0],[6,"Command",0],[5,"Error",47],[6,"Result",48],[5,"ArgMatches",49],[8,"Error",50],[5,"Id",51],[6,"Option",52],[1,"str"],[1,"bool"],[5,"TypeId",53]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAACcABQAAAAEAAwAAAAUADwAXAAUAHwAOAA=="}],\ -["fastcrypto",{"t":"CCCCCQCCCQCCCCCCQQCCCCIIIIIIIIIIIFFFIKKKFRRIKNNNNNNNNNNNNNNNNNMNNNMNNNNNNMNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNSSSSCCFIFFFIFSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFIFFFIFSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNSSSSFFFFIFIFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFKFNNNNNNNNNNNNNNNNNMNNNNHNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPGIPPPPPPPPPPPPNNNNNNNNNNNNNNNNNNNKKKKKKRRKKRCMMMMMMNMCMMCCMSFISFISFSSFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKKMMMMCFNNNNNHNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFSFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNIFFKKFIKTKIIIIRRNNNNNNNNNNNNNNNNNNNNNMMNNONNNNNNNNNMNNNNNNNNNMNMNNNNNNNMNMNNNNNNNNNNNNNNNNNNMNMNNNNNNNNIIHHFNNNNNNNNNNNNNNNONHNNNNNONNFNNNNNNNNNNNNNNNNNNNNNNNNNNFKFFNNNNNNNNNNNNNNNMNMNMNMNMNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNIJSSSSFFFIFINNNNNNNNNNNNNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONOCONNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNJSFFNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNISSSSSSFFFIFINNNNNNNNNNNNNNNNNNNNNNOOONNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONOCONNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNSFNNNNNNONNNNNNNNNNNNNNNNNNONONNNNNNNNNTFFKNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNMNNNNNHNNNNHMNNNNNNNNNNFNNNNNNNNNNNNNNKKKRKKKKKTTTRRRRRRRRRRKKRRRRRRKRKKKKMMMNMMMMMMMNMMMNMMNMMMMNNHRRRRRRKKKKCMNMMMNFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNONNNNNNNNNNNNNNNNNN","n":["aes","bls12381","ed25519","encoding","error","generate_bytes_representation","groups","hash","hmac","impl_base64_display_fmt","jwt_utils","private_seed","rsa","secp256k1","secp256r1","serde_helpers","serialize_deserialize_with_to_from_byte_array","serialize_deserialize_with_to_from_bytes","signature_service","traits","utils","vrf","Aes128CbcAnsiX923","Aes128CbcIso10126","Aes128CbcPkcs7","Aes128Ctr","Aes128Gcm","Aes192Ctr","Aes256CbcAnsiX923","Aes256CbcIso10126","Aes256CbcPkcs7","Aes256Ctr","Aes256Gcm","AesCbc","AesCtr","AesGcm","AesKey","AuthenticatedCipher","Cipher","EncryptionKey","GenericByteArray","IVType","IVType","InitializationVector","Nonce","__clone_box","as_bits","as_bytes","as_ref","base32_len","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","check_base32","clone","clone_into","decode_base64","decrypt","decrypt","decrypt","decrypt","decrypt_authenticated","decrypt_authenticated","deserialize","drop","encode_base64","encode_hex","encode_hex_upper","encrypt","encrypt","encrypt","encrypt","encrypt_authenticated","encrypt_authenticated","fmt","fmt","from","from","from","from","from_bytes","generate","into","into","into","into","new","new","new","serialize","to_owned","to_string","try_as_bits","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","write_base32","zeroize","BLS_G1_LENGTH","BLS_G2_LENGTH","BLS_KEYPAIR_LENGTH","BLS_PRIVATE_KEY_LENGTH","min_pk","min_sig","BLS12381AggregateSignature","BLS12381AggregateSignatureAsBytes","BLS12381KeyPair","BLS12381PrivateKey","BLS12381PublicKey","BLS12381PublicKeyAsBytes","BLS12381Signature","DST_G2","__clone_box","__clone_box","__clone_box","add_aggregate","add_signature","aggregate","as_bits","as_bits","as_bits","as_bits","as_bits","as_ref","as_ref","as_ref","as_ref","as_ref","base32_len","base32_len","base32_len","base32_len","base32_len","batch_verify","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","bytes","bytes","bytes","bytes","check_base32","check_base32","check_base32","check_base32","check_base32","clone","clone","clone","clone_into","clone_into","clone_into","cmp","copy","decode_base64","decode_base64","decode_base64","decode_base64","decode_base64","default","default","deserialize","deserialize","deserialize","deserialize","deserialize","encode_base64","encode_base64","encode_base64","encode_base64","encode_base64","encode_hex","encode_hex","encode_hex","encode_hex","encode_hex","encode_hex_upper","encode_hex_upper","encode_hex_upper","encode_hex_upper","encode_hex_upper","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from_bytes","from_bytes","from_bytes","from_bytes","from_bytes","from_str","generate","hash","hash","insecure_default","into","into","into","into","into","partial_cmp","private","privkey","pubkey","public","serialize","serialize","serialize","serialize","serialize","sig","sig","sign","sign","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","try_as_bits","try_as_bits","try_as_bits","try_as_bits","try_as_bits","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","validate","verify","verify","verify_different_msg","vzip","vzip","vzip","vzip","vzip","write_base32","write_base32","write_base32","write_base32","write_base32","BLS12381AggregateSignature","BLS12381AggregateSignatureAsBytes","BLS12381KeyPair","BLS12381PrivateKey","BLS12381PublicKey","BLS12381PublicKeyAsBytes","BLS12381Signature","DST_G1","__clone_box","__clone_box","__clone_box","add_aggregate","add_signature","aggregate","as_bits","as_bits","as_bits","as_bits","as_bits","as_ref","as_ref","as_ref","as_ref","as_ref","base32_len","base32_len","base32_len","base32_len","base32_len","batch_verify","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","bytes","bytes","bytes","bytes","check_base32","check_base32","check_base32","check_base32","check_base32","clone","clone","clone","clone_into","clone_into","clone_into","cmp","copy","decode_base64","decode_base64","decode_base64","decode_base64","decode_base64","default","default","default","deserialize","deserialize","deserialize","deserialize","deserialize","encode_base64","encode_base64","encode_base64","encode_base64","encode_base64","encode_hex","encode_hex","encode_hex","encode_hex","encode_hex","encode_hex_upper","encode_hex_upper","encode_hex_upper","encode_hex_upper","encode_hex_upper","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from_bytes","from_bytes","from_bytes","from_bytes","from_bytes","from_str","generate","hash","hash","insecure_default","into","into","into","into","into","partial_cmp","private","privkey","pubkey","public","serialize","serialize","serialize","serialize","serialize","sig","sig","sign","sign","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","try_as_bits","try_as_bits","try_as_bits","try_as_bits","try_as_bits","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","validate","verify","verify","verify_different_msg","vzip","vzip","vzip","vzip","vzip","write_base32","write_base32","write_base32","write_base32","write_base32","ED25519_KEYPAIR_LENGTH","ED25519_PRIVATE_KEY_LENGTH","ED25519_PUBLIC_KEY_LENGTH","ED25519_SIGNATURE_LENGTH","Ed25519AggregateSignature","Ed25519KeyPair","Ed25519PrivateKey","Ed25519PublicKey","Ed25519PublicKeyAsBytes","Ed25519Signature","Ed25519SignatureAsBytes","SingleSignature","__clone_box","__clone_box","__clone_box","as_bits","as_bits","as_bits","as_bits","as_bits","as_ref","as_ref","as_ref","as_ref","as_ref","base32_len","base32_len","base32_len","base32_len","base32_len","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","bytes","bytes","check_base32","check_base32","check_base32","check_base32","check_base32","clone","clone","clone","clone_into","clone_into","clone_into","cmp","copy","decode_base64","decode_base64","decode_base64","decode_base64","decode_base64","default","default","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize_as","drop","encode_base64","encode_base64","encode_base64","encode_base64","encode_base64","encode_hex","encode_hex","encode_hex","encode_hex","encode_hex","encode_hex_upper","encode_hex_upper","encode_hex_upper","encode_hex_upper","encode_hex_upper","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from_bytes","from_bytes","from_bytes","from_bytes","from_bytes","from_str","generate","hash","insecure_default","into","into","into","into","into","into","partial_cmp","private","public","serialize","serialize","serialize","serialize","serialize","serialize_as","sig","sign","sigs","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","try_as_bits","try_as_bits","try_as_bits","try_as_bits","try_as_bits","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","verify","vzip","vzip","vzip","vzip","vzip","vzip","write_base32","write_base32","write_base32","write_base32","write_base32","Base58","Base64","Bech32","Encoding","Hex","__clone_box","__clone_box","__clone_box","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","decode","decode","decode","decode","decode","decode_bytes_hex","deserialize","deserialize","deserialize","deserialize_as","deserialize_as","deserialize_as","deserialize_as","deserialize_as","deserialize_as","encode","encode","encode","encode","encode","encode_with_format","encoded","encoded_with_format","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","from","from","from","from","from_bytes","from_bytes","into","into","into","into","json_schema","json_schema","json_schema","schema_name","schema_name","schema_name","serialize","serialize","serialize","serialize_as","serialize_as","serialize_as","to_owned","to_owned","to_owned","to_vec","to_vec","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","Err","FastCryptoError","FastCryptoResult","GeneralError","GeneralOpaqueError","IgnoredMessage","InputLengthWrong","InputTooLong","InputTooShort","InvalidInput","InvalidMessage","InvalidProof","InvalidSignature","NotEnoughInputs","Ok","__clone_box","borrow","borrow_mut","clone","clone_into","eq","equivalent","equivalent","fmt","fmt","from","from","into","to_owned","to_string","try_from","try_into","type_id","vzip","Doubling","FiatShamirChallenge","FromTrustedByteArray","GroupElement","HashToGroupElement","MultiScalarMul","Other","Output","Pairing","Scalar","ScalarType","bls12381","double","fiat_shamir_reduction_to_group_element","from_trusted_byte_array","generator","hash_to_group_element","inverse","multi_pairing","multi_scalar_mul","multiplier","pairing","rand","ristretto255","secp256r1","zero","FP_BYTE_LENGTH","G1Element","G1ElementAsBytes","G1_ELEMENT_BYTE_LENGTH","G2Element","G2ElementAsBytes","G2_ELEMENT_BYTE_LENGTH","GTElement","GT_ELEMENT_BYTE_LENGTH","SCALAR_LENGTH","Scalar","__clone_box","__clone_box","__clone_box","__clone_box","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add_assign","add_assign","add_assign","add_assign","add_assign","add_assign","add_assign","add_assign","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","buffer_to_scalar_mod_r","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","deserialize","deserialize","deserialize","deserialize","div","div","div","div","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fiat_shamir_reduction_to_group_element","fmt","fmt","fmt","fmt","from","from","from","from","from","from_byte_array","from_byte_array","from_byte_array","from_byte_array","from_trusted_byte_array","from_trusted_byte_array","from_trusted_byte_array","from_trusted_byte_array","generator","generator","generator","generator","hash_to_group_element","hash_to_group_element","into","into","into","into","inverse","mul","mul","mul","mul","mul","mul","mul","mul","mul","mul","mul","mul","mul","mul","mul","mul","mul_assign","mul_assign","mul_assign","mul_assign","mul_assign","mul_assign","mul_assign","mul_assign","multi_pairing","multi_scalar_mul","multi_scalar_mul","neg","neg","neg","neg","neg","neg","neg","neg","pairing","rand","serialize","serialize","serialize","serialize","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","to_byte_array","to_byte_array","to_byte_array","to_byte_array","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","zero","zero","zero","zero","zeroize","ScalarMultiplier","ToLittleEndianBytes","mul","new","to_le_bytes","two_scalar_mul","windowed","WindowedScalarMultiplier","borrow","borrow_mut","from","into","mul","multi_scalar_mul","new","try_from","try_into","two_scalar_mul","type_id","vzip","RistrettoPoint","RistrettoScalar","__clone_box","__clone_box","add","add","add","add","add","add","add","add","add_assign","add_assign","add_assign","add_assign","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","compress","decompress","default","deserialize","deserialize","div","div","div","double","eq","eq","equivalent","equivalent","equivalent","equivalent","fiat_shamir_reduction_to_group_element","fmt","fmt","from","from","from","from","from","from_byte_array","from_byte_array","from_bytes_mod_order","from_bytes_mod_order_wide","from_uniform_bytes","generator","generator","group_order","hash_to_group_element","hash_to_group_element","into","into","inverse","map_to_point","mul","mul","mul","mul","mul","mul","mul","mul","mul_assign","mul_assign","mul_assign","mul_assign","multi_scalar_mul","neg","neg","neg","neg","rand","serialize","serialize","sub","sub","sub","sub","sub","sub","sub","sub","sub_assign","sub_assign","sub_assign","sub_assign","to_byte_array","to_byte_array","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","zero","zero","zeroize","ProjectivePoint","SCALAR_SIZE_IN_BYTES","Scalar","__clone_box","__clone_box","add","add","add","add","add","add","add","add","add_assign","add_assign","add_assign","add_assign","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","default","default","deserialize","div","div","double","eq","eq","equivalent","equivalent","equivalent","equivalent","fmt","fmt","from","from","from","from","from","from_byte_array","generator","generator","into","into","inverse","mul","mul","mul","mul","mul","mul","mul","mul","mul_assign","mul_assign","mul_assign","mul_assign","neg","neg","neg","neg","rand","serialize","sub","sub","sub","sub","sub","sub","sub","sub","sub_assign","sub_assign","sub_assign","sub_assign","to_byte_array","to_le_bytes","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","zero","zero","Blake2b256","Digest","EllipticCurveMultisetHash","Hash","HashFunction","HashFunctionWrapper","Keccak256","MultisetHash","OUTPUT_SIZE","ReverseWrapper","Sha256","Sha3_256","Sha3_512","Sha512","TypedDigest","Variant","__clone_box","__clone_box","as_bits","as_ref","base32_len","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","check_base32","clone","clone","clone_into","clone_into","cmp","default","default","deserialize","deserialize","digest","digest","digest","digest","digest","digest_iterator","encode_hex","encode_hex_upper","eq","eq","equivalent","equivalent","equivalent","equivalent","finalize","finalize","flush","fmt","fmt","fmt","from","from","from","hash","insert","insert","insert_all","insert_all","into","into","into","new","new","partial_cmp","remove","remove","remove_all","remove_all","serialize","serialize","size","to_owned","to_owned","to_string","to_vec","try_as_bits","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","union","union","update","update","vzip","vzip","vzip","write","write","write","write_base32","HkdfIkm","HmacKey","hkdf_sha3_256","hmac_sha3_256","JWTHeader","__clone_box","borrow","borrow_mut","clone","clone_into","default","deserialize","eq","equivalent","equivalent","fmt","from","hash","into","json_schema","kid","new","parse_and_validate_jwt","schema_name","serialize","to_owned","try_from","try_into","typ","type_id","vzip","PrivateSeed","as_bits","as_bytes","as_ref","base32_len","borrow","borrow_mut","check_base32","decode_base64","drop","encode_base64","encode_hex","encode_hex_upper","eq","equivalent","equivalent","fmt","from","from_bytes","into","try_as_bits","try_from","try_into","type_id","vzip","write_base32","zeroize","Base64UrlUnpadded","Encoding","RSAPublicKey","RSASignature","__clone_box","__clone_box","__clone_box","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","decode","decode","decode_in_place","decode_in_place","decode_vec","decode_vec","encode","encode","encode_string","encode_string","encoded_len","encoded_len","eq","eq","equivalent","equivalent","equivalent","equivalent","fmt","from","from","from","from_bytes","from_der","from_raw_components","into","into","into","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","verify","verify_prehash","vzip","vzip","vzip","DefaultHash","SECP256K1","SECP256K1_KEYPAIR_LENGTH","SECP256K1_PRIVATE_KEY_LENGTH","SECP256K1_PUBLIC_KEY_LENGTH","SECP256K1_SIGNATURE_LENGTH","Secp256k1KeyPair","Secp256k1PrivateKey","Secp256k1PublicKey","Secp256k1PublicKeyAsBytes","Secp256k1Signature","Secp256k1SignatureAsBytes","__clone_box","__clone_box","as_bits","as_bits","as_bits","as_bits","as_ref","as_ref","as_ref","as_ref","base32_len","base32_len","base32_len","base32_len","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","bytes","bytes","bytes","check_base32","check_base32","check_base32","check_base32","clone","clone","clone_into","clone_into","cmp","copy","decode_base64","decode_base64","decode_base64","decode_base64","deserialize","deserialize","deserialize","deserialize","drop","encode_base64","encode_base64","encode_base64","encode_base64","encode_hex","encode_hex","encode_hex","encode_hex","encode_hex_upper","encode_hex_upper","encode_hex_upper","encode_hex_upper","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from_bytes","from_bytes","from_bytes","from_bytes","from_str","generate","hash","hash","into","into","into","into","partial_cmp","private","privkey","pubkey","public","public","recoverable","secret","serialize","serialize","serialize","serialize","sig","sign","sign_recoverable_with_hash","sign_with_hash","to_owned","to_owned","to_string","to_string","to_string","try_as_bits","try_as_bits","try_as_bits","try_as_bits","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","verify","verify_with_hash","vzip","vzip","vzip","vzip","write_base32","write_base32","write_base32","write_base32","SECP256K1","SECP256K1_RECOVERABLE_SIGNATURE_SIZE","Secp256k1RecoverableSignature","Secp256k1Sig","__clone_box","__clone_box","as_bits","as_c_ptr","as_mut_c_ptr","as_mut_ptr","as_ptr","as_ref","base32_len","borrow","borrow","borrow_mut","borrow_mut","bytes","check_base32","clone","clone","clone_into","clone_into","cmp","cmp_fast_unstable","decode_base64","deserialize","encode_base64","encode_hex","encode_hex_upper","eq","eq","eq_fast_unstable","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","from","from","from","from_bytes","from_compact","from_der","from_der_lax","from_str","hash","hash","into","into","normalize_s","partial_cmp","recover_with_hash","serialize","serialize_compact","serialize_der","sig","to_owned","to_owned","to_string","to_string","try_as_bits","try_from","try_from","try_from_nonrecoverable","try_into","try_into","type_id","type_id","verify","vzip","vzip","write_base32","DefaultHash","PRECOMPUTED_POINTS","SECP256R1_KEYPAIR_LENGTH","SECP256R1_PRIVATE_KEY_LENGTH","SECP256R1_PUBLIC_KEY_LENGTH","SECP256R1_SIGNATURE_LENTH","SLIDING_WINDOW_WIDTH","Secp256r1KeyPair","Secp256r1PrivateKey","Secp256r1PublicKey","Secp256r1PublicKeyAsBytes","Secp256r1Signature","Secp256r1SignatureAsBytes","__clone_box","__clone_box","as_bits","as_bits","as_bits","as_bits","as_ref","as_ref","as_ref","as_ref","base32_len","base32_len","base32_len","base32_len","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","bytes","bytes","bytes","check_base32","check_base32","check_base32","check_base32","clone","clone","clone_into","clone_into","cmp","conversion","copy","decode_base64","decode_base64","decode_base64","decode_base64","deserialize","deserialize","deserialize","deserialize","encode_base64","encode_base64","encode_base64","encode_base64","encode_hex","encode_hex","encode_hex","encode_hex","encode_hex_upper","encode_hex_upper","encode_hex_upper","encode_hex_upper","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from_bytes","from_bytes","from_bytes","from_bytes","from_str","generate","hash","hash","into","into","into","into","partial_cmp","private","privkey","pubkey","public","public","recoverable","secret","serialize","serialize","serialize","serialize","sig","sign","sign_recoverable_with_hash","sign_with_hash","to_owned","to_owned","to_string","to_string","to_string","try_as_bits","try_as_bits","try_as_bits","try_as_bits","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","verify","verify_with_hash","vzip","vzip","vzip","vzip","write_base32","write_base32","write_base32","write_base32","SECP256R1_RECOVERABLE_SIGNATURE_LENGTH","Secp256r1RecoverableSignature","__clone_box","as_bits","as_ref","base32_len","borrow","borrow_mut","bytes","check_base32","clone","clone_into","decode_base64","deserialize","encode_base64","encode_hex","encode_hex_upper","eq","equivalent","equivalent","fmt","fmt","from","from_bytes","hash","into","recover_with_hash","recovery_id","serialize","sig","to_owned","to_string","try_as_bits","try_from","try_from_nonrecoverable","try_into","type_id","vzip","write_base32","BYTE_LENGTH","BytesRepresentation","SerializationHelper","ToFromByteArray","__clone_box","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","cmp","deserialize","deserialize","deserialize_vector","eq","equivalent","equivalent","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_byte_array","hash","into","into","is_referenceable","json_schema","keypair_decode_base64","partial_cmp","schema_name","serialize","serialize","serialize_vector","to_byte_array","to_owned","to_string","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","SignatureService","__clone_box","borrow","borrow_mut","clone","clone_into","from","into","new","request_signature","to_owned","try_from","try_into","type_id","vzip","AggregateAuthenticator","AllowedRng","Authenticator","DefaultHash","EncodeDecodeBase64","FromUniformBytes","Generate","InsecureDefault","KeyPair","LENGTH","LENGTH","LENGTH","PrivKey","PrivKey","PrivKey","PrivKey","PubKey","PubKey","PubKey","PubKey","PubKey","PubKey","RecoverableSignature","RecoverableSigner","Sig","Sig","Sig","Sig","Sig","Sig","Signer","Signer","SigningKey","ToFromBytes","VerifyRecoverable","VerifyingKey","add_aggregate","add_signature","aggregate","as_bytes","batch_verify","copy","decode_base64","encode_base64","from_bytes","generate","generate","generate","insecure_default","private","public","recover","recover_with_hash","sign","sign_recoverable","sign_recoverable_with_hash","verify","verify","verify_different_msg","verify_recoverable","verify_recoverable_with_hash","log2_byte","PrivateKey","PrivateKey","Proof","PublicKey","PublicKey","PublicKey","VRFKeyPair","VRFPrivateKey","VRFProof","VRFPublicKey","ecvrf","generate","output","prove","to_hash","verify","verify_output","ECVRFKeyPair","ECVRFPrivateKey","ECVRFProof","ECVRFPublicKey","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","deserialize","deserialize","deserialize","deserialize","drop","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","from","from","from","from","from","generate","into","into","into","into","pk","prove","serialize","serialize","serialize","serialize","sk","to_hash","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","verify","vzip","vzip","vzip","vzip"],"q":[[0,"fastcrypto"],[22,"fastcrypto::aes"],[116,"fastcrypto::bls12381"],[122,"fastcrypto::bls12381::min_pk"],[310,"fastcrypto::bls12381::min_sig"],[499,"fastcrypto::ed25519"],[689,"fastcrypto::encoding"],[790,"fastcrypto::error"],[824,"fastcrypto::groups"],[850,"fastcrypto::groups::bls12381"],[1051,"fastcrypto::groups::multiplier"],[1058,"fastcrypto::groups::multiplier::windowed"],[1071,"fastcrypto::groups::ristretto255"],[1180,"fastcrypto::groups::secp256r1"],[1274,"fastcrypto::hash"],[1377,"fastcrypto::hmac"],[1381,"fastcrypto::jwt_utils"],[1408,"fastcrypto::private_seed"],[1435,"fastcrypto::rsa"],[1499,"fastcrypto::secp256k1"],[1654,"fastcrypto::secp256k1::recoverable"],[1730,"fastcrypto::secp256r1"],[1886,"fastcrypto::secp256r1::recoverable"],[1925,"fastcrypto::serde_helpers"],[1982,"fastcrypto::signature_service"],[1997,"fastcrypto::traits"],[2058,"fastcrypto::utils"],[2059,"fastcrypto::vrf"],[2076,"fastcrypto::vrf::ecvrf"],[2144,"dyn_clone::sealed"],[2145,"bitvec::slice"],[2146,"bitvec::order"],[2147,"generic_array"],[2148,"core::fmt"],[2149,"bech32"],[2150,"alloc::vec"],[2151,"core::result"],[2152,"core::clone"],[2153,"crypto_common"],[2154,"cipher::block"],[2155,"typenum::generated::consts"],[2156,"block_padding"],[2157,"serde::de"],[2158,"alloc::string"],[2159,"core::iter::traits::collect"],[2160,"serde::ser"],[2161,"bitvec::ptr::span"],[2162,"core::any"],[2163,"core::borrow"],[2164,"core::iter::traits::iterator"],[2165,"core::cmp"],[2166,"core::hash"],[2167,"core::option"],[2168,"core::marker"],[2169,"ed25519_consensus::signature"],[2170,"ed25519_consensus::signing_key"],[2171,"core::convert"],[2172,"schemars::gen"],[2173,"schemars::schema"],[2174,"signature::error"],[2175,"core::ops::arith"],[2176,"std::collections::hash::map"],[2177,"curve25519_dalek_ng::ristretto"],[2178,"curve25519_dalek_ng::scalar"],[2179,"ark_secp256r1::curves"],[2180,"ark_secp256r1::fields::fr"],[2181,"core::default"],[2182,"digest::digest"],[2183,"std::io::error"],[2184,"der::error"],[2185,"base64ct::alphabet::url"],[2186,"base64ct::errors"],[2187,"secp256k1_sys"],[2188,"secp256k1"],[2189,"secp256k1::ecdsa::serialized_signature"],[2190,"secp256k1::key"],[2191,"core::iter::traits::exact_size"],[2192,"base64ct::encoding"]],"i":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,35,0,0,6,6,6,6,6,22,32,34,6,22,32,34,6,6,6,6,6,20,22,32,34,35,34,6,6,6,6,6,20,22,32,34,35,34,6,6,22,32,34,6,6,6,22,32,34,6,22,32,34,6,6,6,6,22,32,34,6,22,32,34,6,22,32,34,6,22,32,34,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,52,55,48,48,48,48,52,53,54,55,48,52,53,54,55,48,52,53,54,55,48,48,52,53,54,55,48,52,53,54,55,48,52,53,55,48,52,53,54,55,48,52,55,48,52,55,48,52,54,52,53,54,55,48,55,48,52,53,54,55,48,52,53,54,55,48,52,53,54,55,48,52,53,54,55,48,52,53,54,55,48,52,52,53,53,54,54,55,55,48,48,52,52,53,53,54,55,55,48,48,52,52,53,54,54,55,48,48,52,53,54,55,48,54,54,52,55,52,52,53,54,55,48,52,54,53,52,54,52,53,54,55,48,55,48,53,54,52,55,48,52,53,55,48,52,53,54,55,48,52,52,53,54,55,48,48,52,53,54,55,48,52,53,54,55,48,52,52,48,48,52,53,54,55,48,52,53,54,55,48,0,0,0,0,0,0,0,0,64,67,63,63,63,63,64,65,66,67,63,64,65,66,67,63,64,65,66,67,63,63,64,65,66,67,63,64,65,66,67,63,64,65,67,63,64,65,66,67,63,64,67,63,64,67,63,64,66,64,65,66,67,63,67,63,68,64,65,66,67,63,64,65,66,67,63,64,65,66,67,63,64,65,66,67,63,64,65,66,67,63,64,64,65,65,66,66,67,67,63,63,64,64,65,65,66,67,67,63,63,64,64,65,66,66,67,63,63,64,65,66,67,63,66,66,64,67,64,64,65,66,67,63,64,66,65,64,66,64,65,66,67,63,67,63,65,66,64,67,63,64,65,67,63,64,65,66,67,63,64,64,65,66,67,63,63,64,65,66,67,63,64,65,66,67,63,64,64,63,63,64,65,66,67,63,64,65,66,67,63,0,0,0,0,0,0,0,0,0,0,0,0,69,73,74,69,71,72,73,74,69,71,72,73,74,69,71,72,73,74,195,69,71,72,73,74,195,69,71,72,73,74,73,74,69,71,72,73,74,69,73,74,69,73,74,69,72,69,71,72,73,74,73,74,69,71,72,73,74,195,71,69,71,72,73,74,69,71,72,73,74,69,71,72,73,74,69,71,72,73,74,69,69,71,71,72,72,73,73,74,74,69,69,71,71,72,73,73,74,74,195,69,69,71,72,72,72,73,74,69,71,72,73,74,72,72,69,69,195,69,71,72,73,74,69,72,72,69,71,72,73,74,195,73,72,74,69,73,74,69,71,73,74,69,71,72,73,74,195,69,69,71,72,73,73,74,195,69,71,72,73,74,195,69,71,72,73,74,69,195,69,71,72,73,74,69,71,72,73,74,0,0,0,0,0,77,78,79,196,77,78,79,196,77,78,79,77,78,79,77,78,79,197,196,77,78,79,0,77,78,79,77,77,78,78,79,79,197,196,77,78,79,78,77,78,77,78,79,77,77,79,79,77,78,79,196,77,78,79,77,78,196,77,78,79,77,78,79,77,78,79,77,78,79,77,78,79,77,78,79,77,78,196,77,77,78,78,79,79,196,77,78,79,196,77,78,79,196,77,78,79,80,0,0,18,18,18,18,18,18,18,18,18,18,18,80,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,0,0,0,0,0,0,96,96,0,0,91,0,87,88,89,91,93,92,96,97,0,96,92,0,0,91,0,0,0,0,0,0,0,0,0,0,0,98,99,100,101,98,98,98,98,99,99,99,99,100,100,100,100,101,101,101,101,98,98,99,99,100,100,101,101,98,99,100,101,98,99,100,101,0,98,99,100,101,98,99,100,101,98,99,100,101,98,99,100,101,98,99,100,101,98,98,99,99,100,100,101,101,101,98,99,100,101,98,99,100,101,101,98,99,100,101,98,99,100,101,98,99,100,101,98,99,98,99,100,101,101,98,98,98,98,99,99,99,99,100,100,100,100,101,101,101,101,98,98,99,99,100,100,101,101,98,98,99,98,98,99,99,100,100,101,101,98,101,98,99,100,101,98,98,98,98,99,99,99,99,100,100,100,100,101,101,101,101,98,98,99,99,100,100,101,101,98,99,100,101,98,99,100,101,98,98,99,99,100,101,98,99,100,101,98,99,100,101,98,99,100,101,98,99,100,101,101,0,0,103,103,104,103,0,0,105,105,105,105,105,0,105,105,105,105,105,105,0,0,108,109,108,108,108,108,109,109,109,109,108,108,109,109,108,109,108,109,108,109,108,109,108,108,108,108,109,108,109,109,108,108,109,108,108,109,109,109,108,109,108,108,109,109,109,108,109,109,109,108,108,109,109,108,109,108,109,109,108,108,108,108,108,109,109,109,109,108,108,109,109,108,108,108,109,109,109,108,109,108,108,108,108,109,109,109,109,108,108,109,109,108,109,108,109,108,108,109,108,109,108,109,108,109,108,109,109,0,0,0,112,113,112,112,112,112,113,113,113,113,112,112,113,113,112,113,112,113,112,113,112,113,112,113,113,112,113,112,112,113,112,112,113,113,112,113,112,112,113,113,113,113,112,113,112,113,113,112,112,112,112,113,113,113,113,112,112,113,113,112,112,113,113,113,113,112,112,112,112,113,113,113,113,112,112,113,113,113,113,112,113,112,113,112,113,112,113,112,113,112,113,0,0,0,0,0,0,0,0,127,0,0,0,0,0,121,198,116,117,116,116,116,116,118,117,116,118,117,116,116,117,116,117,116,118,117,116,117,121,126,127,117,116,127,116,116,116,117,116,116,117,117,127,118,118,116,116,117,116,118,117,116,126,117,126,117,116,118,117,127,116,116,126,117,126,117,116,117,116,116,117,116,116,116,116,118,117,116,118,117,116,118,117,126,117,127,118,116,118,117,118,118,118,116,0,0,0,0,0,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,0,134,134,134,134,134,134,134,134,0,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,0,0,0,0,137,138,139,137,138,139,137,138,139,137,138,139,137,138,139,199,137,199,137,199,137,199,137,199,137,199,137,137,139,137,137,139,139,137,137,138,139,139,138,138,137,138,139,137,138,139,137,138,139,137,138,139,137,138,139,138,138,137,138,139,0,0,0,0,0,0,0,0,0,0,0,0,143,145,143,144,145,146,143,144,145,146,143,144,145,146,143,144,145,146,143,144,145,146,143,144,145,143,144,145,146,143,145,143,145,143,146,143,144,145,146,143,144,145,146,144,143,144,145,146,143,144,145,146,143,144,145,146,143,144,145,146,143,143,144,144,145,145,146,146,143,143,144,144,145,145,146,143,143,144,145,145,146,146,143,144,145,146,146,146,143,145,143,144,145,146,143,146,144,143,146,146,0,146,143,144,145,146,145,146,146,146,143,145,143,144,145,143,144,145,146,143,143,144,145,145,146,143,144,145,146,143,144,145,146,143,143,143,144,145,146,143,144,145,146,0,0,0,0,148,147,147,148,148,148,148,147,147,148,147,148,147,147,147,148,147,148,147,148,148,147,147,147,147,147,148,147,148,148,148,147,147,148,148,147,147,148,148,147,147,148,148,148,148,148,147,148,147,148,148,147,147,148,148,147,148,147,148,147,147,148,147,147,148,147,148,147,148,148,147,147,0,0,0,0,0,0,0,0,0,0,0,0,0,154,156,154,155,156,157,154,155,156,157,154,155,156,157,154,155,156,157,154,155,156,157,154,155,156,154,155,156,157,154,156,154,156,154,0,157,154,155,156,157,154,155,156,157,154,155,156,157,154,155,156,157,154,155,156,157,154,155,156,157,154,154,155,155,156,156,157,157,154,154,155,155,156,156,157,154,154,155,156,156,157,157,154,155,156,157,157,157,154,156,154,155,156,157,154,157,155,154,157,157,0,157,154,155,156,157,156,157,157,157,154,156,154,155,156,154,155,156,157,154,154,155,156,156,157,154,155,156,157,154,155,156,157,154,154,154,155,156,157,154,155,156,157,0,0,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,161,0,0,0,62,159,62,159,62,62,62,62,159,62,0,62,62,62,62,62,159,62,62,62,62,62,62,62,62,62,62,62,62,62,161,62,159,62,62,62,0,62,62,159,62,0,161,62,62,159,62,159,62,159,62,159,62,0,163,163,163,163,163,163,163,163,163,163,163,163,163,163,0,0,0,181,0,0,0,0,0,171,172,164,171,164,162,170,172,164,162,182,181,170,0,0,171,172,162,182,183,170,0,181,0,0,0,0,170,170,170,173,170,162,175,175,173,162,176,177,178,162,162,181,181,165,182,182,171,170,170,183,183,0,189,187,187,190,187,188,0,0,0,0,0,187,187,187,188,188,188,0,0,0,0,191,192,193,194,191,192,193,194,191,192,193,194,192,191,192,193,194,191,191,192,192,193,193,194,194,191,192,193,194,191,192,193,193,194,193,191,192,193,194,193,193,191,192,193,194,193,194,191,192,193,194,191,192,193,194,191,192,193,194,194,191,192,193,194],"f":"`````````````````````````````````````````````{{{b{c}}d}f{}}{{{b{c}}}{{b{{h{eg}}}}}{}{}j}{{{b{{l{c}}}}}{{b{{A`{n}}}}}{{Ab{n}}Ad}}{{{b{{l{c}}}}}{{b{{A`{n}}}}}{{Ab{n}}}}{{{b{c}}}Af{}}{{{b{c}}}{{b{e}}}{}{}}000{{{b{Ahc}}}{{b{Ahe}}}{}{}}000{c{{An{{Al{Aj}}}}}{}}{{{b{{l{c}}}}}{{l{c}}}{B`{Ab{n}}}}{{{b{c}}{b{Ahe}}}f{}{}}{{{b{Bb}}}{{An{cBd}}}{}}{{{b{{Bh{}{{Bf{c}}}}}}{b{c}}{b{{A`{n}}}}}{{An{{Al{n}}Bd}}}Bj}{{{b{{Bl{ce}}}}{b{g}}{b{{A`{n}}}}}{{An{{Al{n}}Bd}}}{{Ab{n}}}{{C`{}{{Bn{c}}}}CbCd{Cj{}{{Cf{Ch}}}}ClCn}{}}{{{b{{D`{ceg}}}}{b{i}}{b{{A`{n}}}}}{{An{{Al{n}}Bd}}}{{Ab{n}}}{{C`{}{{Bn{c}}}}CbCd{Cj{}{{Cf{Ch}}}}ClCn}{{Db{Ch}}}{}}{{{b{{Dd{ceg}}}}{b{i}}{b{{A`{n}}}}}{{An{{Al{n}}Bd}}}{{Ab{n}}}{{C`{}{{Bn{c}}}}CbCd{Cj{}{{Cf{Ch}}}}Cl}{{Ab{n}}Ad}{}}{{{b{{Df{}{{Bf{c}}}}}}{b{c}}{b{{A`{n}}}}{b{{A`{n}}}}}{{An{{Al{n}}Bd}}}Bj}{{{b{{Dd{ceg}}}}{b{i}}{b{{A`{n}}}}{b{{A`{n}}}}}{{An{{Al{n}}Bd}}}{{Ab{n}}}{{C`{}{{Bn{c}}}}CbCd{Cj{}{{Cf{Ch}}}}Cl}{{Ab{n}}Ad}{}}{c{{An{{l{e}}}}}Dh{{Ab{n}}}}{{{b{Ah{l{c}}}}}f{{Ab{n}}}}{{{b{c}}}Dj{}}{{{b{c}}}e{}{{Dn{Dl}}}}0{{{b{{Bh{}{{Bf{c}}}}}}{b{c}}{b{{A`{n}}}}}{{Al{n}}}Bj}{{{b{{Bl{ce}}}}{b{g}}{b{{A`{n}}}}}{{Al{n}}}{{Ab{n}}}{{C`{}{{Bn{c}}}}CbCd{Cj{}{{Cf{Ch}}}}ClCn}{}}{{{b{{D`{ceg}}}}{b{i}}{b{{A`{n}}}}}{{Al{n}}}{{Ab{n}}}{{C`{}{{Bn{c}}}}CbCd{Cj{}{{Cf{Ch}}}}ClCn}{{Db{Ch}}}{}}{{{b{{Dd{ceg}}}}{b{i}}{b{{A`{n}}}}}{{Al{n}}}{{Ab{n}}}{{C`{}{{Bn{c}}}}CbCd{Cj{}{{Cf{Ch}}}}Cl}{{Ab{n}}Ad}{}}{{{b{{Df{}{{Bf{c}}}}}}{b{c}}{b{{A`{n}}}}{b{{A`{n}}}}}{{Al{n}}}Bj}{{{b{{Dd{ceg}}}}{b{i}}{b{{A`{n}}}}{b{{A`{n}}}}}{{Al{n}}}{{Ab{n}}}{{C`{}{{Bn{c}}}}CbCd{Cj{}{{Cf{Ch}}}}Cl}{{Ab{n}}Ad}{}}{{{b{{l{c}}}}{b{AhE`}}}Eb{{Ab{n}}}}0{cc{}}000{{{b{{A`{n}}}}}{{An{{l{c}}Bd}}}{{Ab{n}}Ad}}{{{b{Ahc}}}{{Ed{e}}}Ef{{Ab{n}}Ad}}{ce{}{}}000{{{Ed{c}}}{{Bl{ce}}}{{Ab{n}}}{}}{{{Ed{c}}}{{D`{ceg}}}{{Ab{n}}}{}{}}{{{Ed{c}}}{{Dd{ceg}}}{{Ab{n}}}{}{}}{{{b{{l{c}}}}e}An{{Ab{n}}}Eh}{{{b{c}}}e{}{}}{{{b{c}}}Dj{}}{{{b{c}}}{{An{{b{{h{eg}}}}{Ej{e}}}}}{}{}j}{c{{An{e}}}{}{}}0000000{{{b{c}}}El{}}0009999{{{b{c}}{b{Ahe}}}{{An{f}}}{}En}{{{b{Ah{l{c}}}}}f{{Ab{n}}}}``````````````{{{b{c}}d}f{}}00{{{b{AhF`}}F`}{{An{fBd}}}}{{{b{AhF`}}c}{{An{fBd}}}{}}{g{{An{F`Bd}}}{}{{Fb{c}}}{{Ff{}{{Fd{{b{e}}}}}}}}{{{b{c}}}{{b{{h{eg}}}}}{}{}j}0000{{{b{Fh}}}{{b{{A`{n}}}}}}{{{b{Fj}}}{{b{{A`{n}}}}}}{{{b{Fl}}}{{b{{A`{n}}}}}}{{{b{Fn}}}{{b{{A`{n}}}}}}{{{b{F`}}}{{b{{A`{n}}}}}}{{{b{c}}}Af{}}0000{{{b{{A`{{b{F`}}}}}}{Al{e}}{b{{A`{{b{{A`{n}}}}}}}}}{{An{fBd}}}{}{{G`{}{{Fd{{b{c}}}}}}}}{{{b{c}}}{{b{e}}}{}{}}0000{{{b{Ahc}}}{{b{Ahe}}}{}{}}0000````{c{{An{{Al{Aj}}}}}{}}0000{{{b{Fh}}}Fh}{{{b{Fn}}}Fn}{{{b{F`}}}F`}{{{b{c}}{b{Ahe}}}f{}{}}00{{{b{Fh}}{b{Fh}}}Gb}{{{b{Fl}}}Fl}{{{b{Bb}}}{{An{cBd}}}{}}0000{{}Fn}{{}F`}{c{{An{Fh}}}Dh}{c{{An{Fj}}}Dh}{c{{An{Fl}}}Dh}{c{{An{Fn}}}Dh}{c{{An{F`}}}Dh}{{{b{c}}}Dj{}}0000{{{b{c}}}e{}{{Dn{Dl}}}}000000000{{{b{Fh}}{b{Fh}}}Gd}{{{b{Fj}}{b{Fj}}}Gd}{{{b{Fl}}{b{Fl}}}Gd}{{{b{Fn}}{b{Fn}}}Gd}{{{b{F`}}{b{F`}}}Gd}{{{b{c}}{b{e}}}Gd{}{}}000000000{{{b{Fh}}{b{AhE`}}}{{An{fGf}}}}0{{{b{Fj}}{b{AhE`}}}Eb}0{{{b{Fl}}{b{AhE`}}}Eb}{{{b{Fn}}{b{AhE`}}}Eb}{{{b{Fn}}{b{AhE`}}}{{An{fGf}}}}{{{b{F`}}{b{AhE`}}}{{An{fGf}}}}{{{b{F`}}{b{AhE`}}}Eb}{{{b{Fj}}}Fh}{cc{}}00{FjFl}1{FnF`}2{{{b{{A`{n}}}}}{{An{FhBd}}}}{{{b{{A`{n}}}}}{{An{FjBd}}}}{{{b{{A`{n}}}}}{{An{FlBd}}}}{{{b{{A`{n}}}}}{{An{FnBd}}}}{{{b{{A`{n}}}}}{{An{F`Bd}}}}{{{b{Bb}}}{{An{Flc}}}{}}{{{b{Ahc}}}FlEf}{{{b{Fh}}{b{Ahc}}}fGh}{{{b{Fn}}{b{Ahc}}}fGh}{{}Fh}{ce{}{}}0000{{{b{Fh}}{b{Fh}}}{{Gj{Gb}}}}{Flc{}}``{{{b{Fl}}}{{b{c}}}{}}{{{b{Fh}}c}AnEh}{{{b{Fj}}c}AnEh}{{{b{Fl}}c}AnEh}{{{b{Fn}}c}AnEh}{{{b{F`}}c}AnEh}``{{{b{Fj}}{b{{A`{n}}}}}Fn}{{{b{Fl}}{b{{A`{n}}}}}Fn}{{{b{c}}}e{}{}}00{{{b{c}}}Dj{}}000{{{b{c}}}{{An{{b{{h{eg}}}}{Ej{e}}}}}{}{}j}0000{c{{An{e}}}{}{}}{{{b{Gl}}}{{An{Fhc}}}{}}111{{{b{Gl}}}{{An{F`c}}}{}}222222{{{b{c}}}El{}}0000{{{b{Fh}}}{{An{fBd}}}}{{{b{Fh}}{b{{A`{n}}}}{b{Fn}}}{{An{fBd}}}}{{{b{F`}}{b{A`}}{b{{A`{n}}}}}{{An{fBd}}}}{{{b{F`}}{b{A`}}{b{{A`{{b{{A`{n}}}}}}}}}{{An{fBd}}}}{ce{}{}}0000{{{b{c}}{b{Ahe}}}{{An{f}}}{}En}0000````````{{{b{c}}d}f{}}00{{{b{AhGn}}Gn}{{An{fBd}}}}{{{b{AhGn}}c}{{An{fBd}}}{}}{g{{An{GnBd}}}{}{{Fb{c}}}{{Ff{}{{Fd{{b{e}}}}}}}}{{{b{c}}}{{b{{h{eg}}}}}{}{}j}0000{{{b{H`}}}{{b{{A`{n}}}}}}{{{b{Hb}}}{{b{{A`{n}}}}}}{{{b{Hd}}}{{b{{A`{n}}}}}}{{{b{Hf}}}{{b{{A`{n}}}}}}{{{b{Gn}}}{{b{{A`{n}}}}}}{{{b{c}}}Af{}}0000{{{b{{A`{{b{Gn}}}}}}{Al{e}}{b{{A`{{b{{A`{n}}}}}}}}}{{An{fBd}}}{}{{G`{}{{Fd{{b{c}}}}}}}}{{{b{c}}}{{b{e}}}{}{}}0000{{{b{Ahc}}}{{b{Ahe}}}{}{}}0000````{c{{An{{Al{Aj}}}}}{}}0000{{{b{H`}}}H`}{{{b{Hf}}}Hf}{{{b{Gn}}}Gn}{{{b{c}}{b{Ahe}}}f{}{}}00{{{b{H`}}{b{H`}}}Gb}{{{b{Hd}}}Hd}{{{b{Bb}}}{{An{cBd}}}{}}0000{{}Hf}{{}Gn}{{}Hh}{c{{An{H`}}}Dh}{c{{An{Hb}}}Dh}{c{{An{Hd}}}Dh}{c{{An{Hf}}}Dh}{c{{An{Gn}}}Dh}{{{b{c}}}Dj{}}0000{{{b{c}}}e{}{{Dn{Dl}}}}000000000{{{b{H`}}{b{H`}}}Gd}{{{b{Hb}}{b{Hb}}}Gd}{{{b{Hd}}{b{Hd}}}Gd}{{{b{Hf}}{b{Hf}}}Gd}{{{b{Gn}}{b{Gn}}}Gd}{{{b{c}}{b{e}}}Gd{}{}}000000000{{{b{H`}}{b{AhE`}}}{{An{fGf}}}}0{{{b{Hb}}{b{AhE`}}}Eb}0{{{b{Hd}}{b{AhE`}}}Eb}{{{b{Hf}}{b{AhE`}}}{{An{fGf}}}}{{{b{Hf}}{b{AhE`}}}Eb}{{{b{Gn}}{b{AhE`}}}Eb}{{{b{Gn}}{b{AhE`}}}{{An{fGf}}}}{{{b{Hb}}}H`}{cc{}}0{HbHd}11{HfGn}2{{{b{{A`{n}}}}}{{An{H`Bd}}}}{{{b{{A`{n}}}}}{{An{HbBd}}}}{{{b{{A`{n}}}}}{{An{HdBd}}}}{{{b{{A`{n}}}}}{{An{HfBd}}}}{{{b{{A`{n}}}}}{{An{GnBd}}}}{{{b{Bb}}}{{An{Hdc}}}{}}{{{b{Ahc}}}HdEf}{{{b{H`}}{b{Ahc}}}fGh}{{{b{Hf}}{b{Ahc}}}fGh}{{}H`}{ce{}{}}0000{{{b{H`}}{b{H`}}}{{Gj{Gb}}}}{Hdc{}}``{{{b{Hd}}}{{b{c}}}{}}{{{b{H`}}c}AnEh}{{{b{Hb}}c}AnEh}{{{b{Hd}}c}AnEh}{{{b{Hf}}c}AnEh}{{{b{Gn}}c}AnEh}``{{{b{Hb}}{b{{A`{n}}}}}Hf}{{{b{Hd}}{b{{A`{n}}}}}Hf}{{{b{c}}}e{}{}}00{{{b{c}}}Dj{}}000{{{b{c}}}{{An{{b{{h{eg}}}}{Ej{e}}}}}{}{}j}0000{c{{An{e}}}{}{}}{{{b{Gl}}}{{An{H`c}}}{}}111{{{b{Gl}}}{{An{Gnc}}}{}}222222{{{b{c}}}El{}}0000{{{b{H`}}}{{An{fBd}}}}{{{b{H`}}{b{{A`{n}}}}{b{Hf}}}{{An{fBd}}}}{{{b{Gn}}{b{A`}}{b{{A`{n}}}}}{{An{fBd}}}}{{{b{Gn}}{b{A`}}{b{{A`{{b{{A`{n}}}}}}}}}{{An{fBd}}}}{ce{}{}}0000{{{b{c}}{b{Ahe}}}{{An{f}}}{}En}0000````````````{{{b{c}}d}f{}}00{{{b{c}}}{{b{{h{eg}}}}}{}{}j}0000{{{b{Hj}}}{{b{c}}}Hl}{{{b{Hn}}}{{b{c}}}Hl}{{{b{I`}}}{{b{{A`{n}}}}}}{{{b{Ib}}}{{b{{A`{n}}}}}}{{{b{Id}}}{{b{{A`{n}}}}}}{{{b{c}}}Af{}}0000{{{b{c}}}{{b{e}}}{}{}}00000{{{b{Ahc}}}{{b{Ahe}}}{}{}}00000``{c{{An{{Al{Aj}}}}}{}}0000{{{b{Hj}}}Hj}{{{b{Ib}}}Ib}{{{b{Id}}}Id}{{{b{c}}{b{Ahe}}}f{}{}}00{{{b{Hj}}{b{Hj}}}Gb}{{{b{I`}}}I`}{{{b{Bb}}}{{An{cBd}}}{}}0000{{}Ib}{{}Id}{c{{An{Hj}}}Dh}{c{{An{Hn}}}Dh}{c{{An{I`}}}Dh}{c{{An{Ib}}}Dh}{c{{An{Id}}}Dh}{c{{An{If}}}Dh}{{{b{AhHn}}}f}{{{b{c}}}Dj{}}0000{{{b{c}}}e{}{{Dn{Dl}}}}000000000{{{b{Hj}}{b{Hj}}}Gd}{{{b{Hn}}{b{Hn}}}Gd}{{{b{I`}}{b{I`}}}Gd}{{{b{Ib}}{b{Ib}}}Gd}{{{b{Id}}{b{Id}}}Gd}{{{b{c}}{b{e}}}Gd{}{}}000000000{{{b{Hj}}{b{AhE`}}}{{An{fGf}}}}{{{b{Hj}}{b{AhE`}}}Eb}{{{b{Hn}}{b{AhE`}}}Eb}0{{{b{I`}}{b{AhE`}}}Eb}{{{b{Ib}}{b{AhE`}}}Eb}{{{b{Ib}}{b{AhE`}}}{{An{fGf}}}}{{{b{Id}}{b{AhE`}}}{{An{fGf}}}}{{{b{Id}}{b{AhE`}}}Eb}{cc{}}{{{b{Hn}}}Hj}111{IhI`}{HnI`}33{{{b{{A`{n}}}}}{{An{HjBd}}}}{{{b{{A`{n}}}}}{{An{HnBd}}}}{{{b{{A`{n}}}}}{{An{I`Bd}}}}{{{b{{A`{n}}}}}{{An{IbBd}}}}{{{b{{A`{n}}}}}{{An{IdBd}}}}{{{b{Bb}}}{{An{I`c}}}{}}{{{b{Ahc}}}I`Ef}{{{b{Hj}}{b{Ahc}}}fGh}{{}Hj}{ce{}{}}00000{{{b{Hj}}{b{Hj}}}{{Gj{Gb}}}}{I`c{}}{{{b{I`}}}{{b{c}}}{}}{{{b{Hj}}c}AnEh}{{{b{Hn}}c}AnEh}{{{b{I`}}c}AnEh}{{{b{Ib}}c}AnEh}{{{b{Id}}c}AnEh}{{{b{If}}c}AnEh}`{{{b{I`}}{b{{A`{n}}}}}Ib}`{{{b{c}}}e{}{}}00{{{b{c}}}Dj{}}000{{{b{c}}}{{An{{b{{h{eg}}}}{Ej{e}}}}}{}{}j}0000{c{{An{e}}}{}{}}0{{{b{Gl}}}{{An{Hjc}}}{}}111{{{b{Gl}}}{{An{Ibc}}}{}}2222222{{{b{c}}}El{}}00000{{{b{Hj}}{b{{A`{n}}}}{b{Ib}}}{{An{fBd}}}}{ce{}{}}00000{{{b{c}}{b{Ahe}}}{{An{f}}}{}En}0000`````{{{b{c}}d}f{}}00{{{b{c}}}{{b{e}}}{}{}}000{{{b{Ahc}}}{{b{Ahe}}}{}{}}000{{{b{Ij}}}Ij}{{{b{Il}}}Il}{{{b{In}}}In}{{{b{c}}{b{Ahe}}}f{}{}}00{{{b{Bb}}}{{J`{{Al{n}}}}}}{{{b{Bb}}{b{Bb}}}{{J`{{Al{n}}}}}}111{{{b{Bb}}}{{J`{c}}}{{Jb{{b{{A`{n}}}}}}}}{c{{An{Ij}}}Dh}{c{{An{Il}}}Dh}{c{{An{In}}}Dh}{c{{An{{Al{n}}}}}Dh}{c{{An{{Jd{n}}}}}Dh}0101{cDj{{Jf{{A`{n}}}}}}{{c{b{Bb}}}{{J`{Dj}}}{{Jf{{A`{n}}}}}}1111{{{b{Ij}}}Dj}{{{b{Il}}}Dj}{{{b{Ij}}{b{Ij}}}Gd}{{{b{Il}}{b{Il}}}Gd}{{{b{In}}{b{In}}}Gd}{{{b{c}}{b{e}}}Gd{}{}}000{{{b{Ij}}{b{AhE`}}}Eb}{{{b{Il}}{b{AhE`}}}Eb}{{{b{In}}{b{AhE`}}}Eb}{cc{}}000{{{b{{A`{n}}}}}Ij}{{{b{{A`{n}}}}}Il}{ce{}{}}000{{{b{AhJh}}}Jj}00{{}Dj}00{{{b{Ij}}c}AnEh}{{{b{Il}}c}AnEh}{{{b{In}}c}AnEh}{{{b{c}}e}An{{Jf{{A`{n}}}}}Eh}00{{{b{c}}}e{}{}}00{{{b{Ij}}}{{J`{{Al{n}}}}}}{{{b{Il}}}{{J`{{Al{n}}}}}}{c{{An{e}}}{}{}}{Dj{{An{Ijc}}}{}}11{Dj{{An{Ilc}}}{}}{Dj{{An{Inc}}}{}}33333{{{b{c}}}El{}}000>>>>```````````````{{{b{c}}d}f{}}{{{b{c}}}{{b{e}}}{}{}}{{{b{Ahc}}}{{b{Ahe}}}{}{}}{{{b{Bd}}}Bd}{{{b{c}}{b{Ahe}}}f{}{}}{{{b{Bd}}{b{Bd}}}Gd}{{{b{c}}{b{e}}}Gd{}{}}0{{{b{Bd}}{b{AhE`}}}Eb}0{JlBd}{cc{}}{ce{}{}}{{{b{c}}}e{}{}}{{{b{c}}}Dj{}}{c{{An{e}}}{}{}}0>3````````````{{{b{Jn}}}Jn}{{{b{{A`{n}}}}}K`}{{{b{{Jd{n}}}}}{{J`{Kb}}}}{{}{{Kf{}{{Kd{c}}}}}Kh}{{{b{{A`{n}}}}}Kj}{{{b{Kh}}}{{J`{Kh}}}}{{{b{{A`{{L`{}{{Kl{c}}{Kn{e}}}}}}}}{b{{A`{c}}}}}{{J`{e}}}Kf{}}{{{b{{A`{c}}}}{b{{A`{Lb}}}}}{{J`{Lb}}}{}}`{{{b{{L`{}{{Kl{c}}{Kn{e}}}}}}{b{c}}}eKf{}}{{{b{Ahc}}}KhEf}``6```````````{{{b{c}}d}f{}}000{{LdLd}c{}}{{{b{Ld}}Ld}c{}}{{Ld{b{Ld}}}c{}}{{{b{Ld}}{b{Ld}}}c{}}{{Lf{b{Lf}}}c{}}{{{b{Lf}}Lf}c{}}{{LfLf}c{}}{{{b{Lf}}{b{Lf}}}c{}}{{LhLh}c{}}{{Lh{b{Lh}}}c{}}{{{b{Lh}}Lh}c{}}{{{b{Lh}}{b{Lh}}}c{}}{{{b{Lj}}{b{Lj}}}c{}}{{{b{Lj}}Lj}c{}}{{Lj{b{Lj}}}c{}}{{LjLj}c{}}{{{b{AhLd}}Ld}f}{{{b{AhLd}}{b{Ld}}}f}{{{b{AhLf}}Lf}f}{{{b{AhLf}}{b{Lf}}}f}{{{b{AhLh}}Lh}f}{{{b{AhLh}}{b{Lh}}}f}{{{b{AhLj}}{b{Lj}}}f}{{{b{AhLj}}Lj}f}{{{b{c}}}{{b{e}}}{}{}}000{{{b{Ahc}}}{{b{Ahe}}}{}{}}000{{{b{{A`{n}}}}}{{J`{Lj}}}}{{{b{Ld}}}Ld}{{{b{Lf}}}Lf}{{{b{Lh}}}Lh}{{{b{Lj}}}Lj}{{{b{c}}{b{Ahe}}}f{}{}}000{c{{An{Ld}}}Dh}{c{{An{Lf}}}Dh}{c{{An{Lh}}}Dh}{c{{An{Lj}}}Dh}{{LdLj}c{}}{{LfLj}c{}}{{LhLj}c{}}{{LjLj}c{}}{{{b{Ld}}{b{Ld}}}Gd}{{{b{Lf}}{b{Lf}}}Gd}{{{b{Lh}}{b{Lh}}}Gd}{{{b{Lj}}{b{Lj}}}Gd}{{{b{c}}{b{e}}}Gd{}{}}0000000{{{b{{A`{n}}}}}Lj}{{{b{Ld}}{b{AhE`}}}Eb}{{{b{Lf}}{b{AhE`}}}Eb}{{{b{Lh}}{b{AhE`}}}Eb}{{{b{Lj}}{b{AhE`}}}Eb}{cc{}}00{LlLj}1{{{b{{Jd{n}}}}}{{J`{Ld}}}}{{{b{{Jd{n}}}}}{{J`{Lf}}}}{{{b{{Jd{n}}}}}{{J`{Lh}}}}{{{b{{Jd{n}}}}}{{J`{Lj}}}}3210{{}Ld}{{}Lf}{{}Lh}{{}Lj}{{{b{{A`{n}}}}}Ld}{{{b{{A`{n}}}}}Lf}{ce{}{}}000{{{b{Lj}}}{{J`{Lj}}}}{{{b{Ld}}}c{}}{{Ldb}c{}}{{{b{Ld}}b}c{}}{{LdLj}c{}}{{LfLj}c{}}{{{b{Lf}}}c{}}{{Lfb}c{}}{{{b{Lf}}b}c{}}{{{b{Lh}}b}c{}}{{LhLj}c{}}{{Lhb}c{}}{{{b{Lh}}}c{}}{{LjLj}c{}}{{{b{Lj}}}c{}}{{{b{Lj}}b}c{}}{{Ljb}c{}}{{{b{AhLd}}}f}{{{b{AhLd}}b}f}{{{b{AhLf}}b}f}{{{b{AhLf}}}f}{{{b{AhLh}}b}f}{{{b{AhLh}}}f}{{{b{AhLj}}}f}{{{b{AhLj}}b}f}{{{b{{A`{Ld}}}}{b{{A`{c}}}}}{{J`{e}}}{}{}}{{{b{{A`{c}}}}{b{{A`{Ld}}}}}{{J`{Ld}}}{}}{{{b{{A`{c}}}}{b{{A`{Lf}}}}}{{J`{Lf}}}{}}{Ldc{}}{{{b{Ld}}}c{}}{Lfc{}}{{{b{Lf}}}c{}}{Lhc{}}{{{b{Lh}}}c{}}{{{b{Lj}}}c{}}{Ljc{}}{{{b{Ld}}{b{c}}}e{}{}}{{{b{Ahc}}}LjEf}{{{b{Ld}}c}AnEh}{{{b{Lf}}c}AnEh}{{{b{Lh}}c}AnEh}{{{b{Lj}}c}AnEh}{{LdLd}c{}}{{Ld{b{Ld}}}c{}}{{{b{Ld}}{b{Ld}}}c{}}{{{b{Ld}}Ld}c{}}{{Lf{b{Lf}}}c{}}{{{b{Lf}}Lf}c{}}{{LfLf}c{}}{{{b{Lf}}{b{Lf}}}c{}}{{{b{Lh}}{b{Lh}}}c{}}{{{b{Lh}}Lh}c{}}{{Lh{b{Lh}}}c{}}{{LhLh}c{}}{{LjLj}c{}}{{Lj{b{Lj}}}c{}}{{{b{Lj}}Lj}c{}}{{{b{Lj}}{b{Lj}}}c{}}{{{b{AhLd}}{b{Ld}}}f}{{{b{AhLd}}Ld}f}{{{b{AhLf}}{b{Lf}}}f}{{{b{AhLf}}Lf}f}{{{b{AhLh}}{b{Lh}}}f}{{{b{AhLh}}Lh}f}{{{b{AhLj}}Lj}f}{{{b{AhLj}}{b{Lj}}}f}{{{b{Ld}}}{{Jd{n}}}}{{{b{Lf}}}{{Jd{n}}}}{{{b{Lh}}}{{Jd{n}}}}{{{b{Lj}}}{{Jd{n}}}}{{{b{c}}}e{}{}}000{c{{An{e}}}{}{}}{{{b{Gl}}}{{An{Ldc}}}{}}1{{{b{Gl}}}{{An{Lfc}}}{}}222222{{{b{c}}}El{}}000{ce{}{}}000{{}Ld}{{}Lf}{{}Lh}{{}Lj}{{{b{AhLj}}}f}``{{{b{Ln}}{b{c}}}e{}{}}{{cc}Ln{}}{{{b{M`}}}{{Al{n}}}}{{{b{Ln}}{b{c}}{b{e}}{b{c}}}e{}{}}``{{{b{c}}}{{b{e}}}{}{}}{{{b{Ahc}}}{{b{Ahe}}}{}{}}{cc{}}<{{{b{{Mb{ce}}}}{b{e}}}c{{Md{}{{Kn{}}}}JnB`Ad}{M`B`Ad}}{{{b{{Jd{c}}}}{b{{Jd{e}}}}{b{{Mf{Af{Al{e}}}}}}Afe}e{M`B`Ad}{Jn{Md{}{{Kn{}}}}B`Ad}}{{cc}{{Mb{ce}}}{}{M`B`Ad}}{c{{An{e}}}{}{}}0{{{b{{Mb{ce}}}}{b{e}}{b{c}}{b{e}}}c{{Md{}{{Kn{}}}}JnB`Ad}{M`B`Ad}}{{{b{c}}}El{}}{ce{}{}}``{{{b{c}}d}f{}}0{{Mh{b{Mh}}}c{}}{{{b{Mh}}{b{Mh}}}c{}}{{{b{Mh}}Mh}c{}}{{MhMh}Mh}{{Mj{b{Mj}}}c{}}{{{b{Mj}}{b{Mj}}}c{}}{{{b{Mj}}Mj}c{}}{{MjMj}Mj}{{{b{AhMh}}Mh}f}{{{b{AhMh}}{b{Mh}}}f}{{{b{AhMj}}Mj}f}{{{b{AhMj}}{b{Mj}}}f}{{{b{c}}}{{b{e}}}{}{}}0{{{b{Ahc}}}{{b{Ahe}}}{}{}}0{{{b{Mh}}}Mh}{{{b{Mj}}}Mj}{{{b{c}}{b{Ahe}}}f{}{}}0{{{b{Mh}}}{{Jd{n}}}}{{{b{{Jd{n}}}}}{{An{MhBd}}}}{{}Mh}{c{{An{Mh}}}Dh}{c{{An{Mj}}}Dh}{{MhMj}c{}}{{MjMj}{{An{MjBd}}}}{{Mjc}Mj{}}:{{{b{Mh}}{b{Mh}}}Gd}{{{b{Mj}}{b{Mj}}}Gd}{{{b{c}}{b{e}}}Gd{}{}}000{{{b{{A`{n}}}}}Mj}{{{b{Mh}}{b{AhE`}}}Eb}{{{b{Mj}}{b{AhE`}}}Eb}{cc{}}{MlMh}{MnMj}{LlMj}3{{{b{{Jd{n}}}}}{{An{MhBd}}}}{{{b{{Jd{n}}}}}{{An{MjBd}}}}{{{b{{Jd{n}}}}}Mj}0{{{b{{Jd{n}}}}}Mh}{{}Mh}{{}Mj}0{{{b{{A`{n}}}}}Mh}={ce{}{}}0{{{b{Mj}}}{{J`{Mj}}}}2{{Mhb}c{}}{{{b{Mh}}b}c{}}{{MhMj}Mh}{{{b{Mh}}}c{}}{{{b{Mj}}b}c{}}{{MjMj}Mj}{{Mjb}c{}}{{{b{Mj}}}c{}}{{{b{AhMh}}}f}{{{b{AhMh}}b}f}{{{b{AhMj}}b}f}{{{b{AhMj}}}f}{{{b{{A`{c}}}}{b{{A`{Mh}}}}}{{J`{Mh}}}{}}{MhMh}:6{MjMj}{{{b{Ahc}}}MjEf}{{{b{Mh}}c}AnEh}{{{b{Mj}}c}AnEh}{{Mh{b{Mh}}}c{}}{{{b{Mh}}Mh}c{}}{{{b{Mh}}{b{Mh}}}c{}}{{MhMh}Mh}{{{b{Mj}}Mj}c{}}{{{b{Mj}}{b{Mj}}}c{}}{{Mj{b{Mj}}}c{}}{{MjMj}Mj}{{{b{AhMh}}{b{Mh}}}f}{{{b{AhMh}}Mh}f}{{{b{AhMj}}Mj}f}{{{b{AhMj}}{b{Mj}}}f}{{{b{Mh}}}{{Jd{n}}}}{{{b{Mj}}}{{Jd{n}}}}{{{b{c}}}e{}{}}0{{{b{{A`{n}}}}}{{An{MhBd}}}}{c{{An{e}}}{}{}}000{{{b{c}}}El{}}0{ce{}{}}0{{}Mh}{{}Mj}{{{b{AhMj}}}f}```{{{b{c}}d}f{}}0{{N`N`}N`}{{{b{N`}}N`}c{}}{{N`{b{N`}}}c{}}{{{b{N`}}{b{N`}}}c{}}{{{b{Nb}}Nb}c{}}{{NbNb}Nb}{{Nb{b{Nb}}}c{}}{{{b{Nb}}{b{Nb}}}c{}}{{{b{AhN`}}{b{N`}}}f}{{{b{AhN`}}N`}f}{{{b{AhNb}}Nb}f}{{{b{AhNb}}{b{Nb}}}f}{{{b{c}}}{{b{e}}}{}{}}0{{{b{Ahc}}}{{b{Ahe}}}{}{}}0{{{b{N`}}}N`}{{{b{Nb}}}Nb}{{{b{c}}{b{Ahe}}}f{}{}}0{{}N`}{{}Nb}{c{{An{Nb}}}Dh}{{N`Nb}{{An{N`Bd}}}}{{NbNb}{{An{NbBd}}}}7{{{b{N`}}{b{N`}}}Gd}{{{b{Nb}}{b{Nb}}}Gd}{{{b{c}}{b{e}}}Gd{}{}}000{{{b{N`}}{b{AhE`}}}Eb}{{{b{Nb}}{b{AhE`}}}Eb}{NdN`}{cc{}}0{LlNb}{NfNb}{{{b{{Jd{n}}}}}{{An{NbBd}}}}>={ce{}{}}0{{{b{Nb}}}{{J`{Nb}}}}{{{b{N`}}}c{}}{{{b{N`}}b}c{}}{{N`b}c{}}{{N`Nb}N`}{{{b{Nb}}b}c{}}{{{b{Nb}}}c{}}{{Nbb}c{}}{{NbNb}c{}}{{{b{AhN`}}}f}{{{b{AhN`}}b}f}{{{b{AhNb}}}f}{{{b{AhNb}}b}f}{N`N`}<7{NbNb}{{{b{Ahc}}}NbEf}{{{b{Nb}}c}AnEh}{{N`N`}N`}{{{b{N`}}N`}c{}}{{{b{N`}}{b{N`}}}c{}}{{N`{b{N`}}}c{}}{{Nb{b{Nb}}}c{}}{{{b{Nb}}{b{Nb}}}c{}}{{{b{Nb}}Nb}c{}}{{NbNb}Nb}{{{b{AhN`}}{b{N`}}}f}{{{b{AhN`}}N`}f}{{{b{AhNb}}Nb}f}{{{b{AhNb}}{b{Nb}}}f}{{{b{Nb}}}{{Jd{n}}}}{{{b{Nb}}}{{Al{n}}}}{{{b{c}}}e{}{}}0{c{{An{e}}}{}{}}000{{{b{c}}}El{}}0{ce{}{}}0{{}N`}{{}Nb}````````````````{{{b{c}}d}f{}}0{{{b{c}}}{{b{{h{eg}}}}}{}{}j}{{{b{Nh}}}{{b{{A`{n}}}}}}{{{b{c}}}Af{}}{{{b{c}}}{{b{e}}}{}{}}00{{{b{Ahc}}}{{b{Ahe}}}{}{}}00{c{{An{{Al{Aj}}}}}{}}{{{b{Nh}}}Nh}{{{b{Nj}}}Nj}{{{b{c}}{b{Ahe}}}f{}{}}0{{{b{Nh}}{b{Nh}}}Gb}{{}{{Nl{c}}}Nn}{{}Nj}{c{{An{Nh}}}Dh}{c{{An{Nj}}}Dh}{{{b{{Ob{}{{O`{c}}}}}}}c{{Od{Nh}}OfOhOjAd}}{{{b{Ol}}}Nh}{cNh{{Jf{{A`{n}}}}}}{{{b{Nj}}}Nh}`{eNh{{Jf{{A`{n}}}}}{{G`{}{{Fd{c}}}}}}{{{b{c}}}e{}{{Dn{Dl}}}}0{{{b{Nh}}{b{Nh}}}Gd}{{{b{Nj}}{b{Nj}}}Gd}{{{b{c}}{b{e}}}Gd{}{}}000{OnNh}{{{Nl{c}}}Nh{A@`Nn}}{{{b{Ah{Nl{c}}}}}{{A@b{f}}}{A@`Nn}}{{{b{Nh}}{b{AhE`}}}{{An{fGf}}}}0{{{b{Nj}}{b{AhE`}}}Eb}{cc{}}00{{{b{Nh}}{b{Ahc}}}fGh}{{{b{AhOl}}c}f{{Jf{{A`{n}}}}}}{{{b{AhNj}}c}f{{Jf{{A`{n}}}}}}{{{b{AhOl}}e}f{{Jf{{A`{n}}}}}{{Ff{}{{Fd{c}}}}}}{{{b{AhNj}}e}f{{Jf{{A`{n}}}}}{{Ff{}{{Fd{c}}}}}}{ce{}{}}00{{}On}{{{Jd{n}}}Nh}{{{b{Nh}}{b{Nh}}}{{Gj{Gb}}}}7654{{{b{Nh}}c}AnEh}{{{b{Nj}}c}AnEh}{{{b{Nh}}}Af}{{{b{c}}}e{}{}}0{{{b{c}}}Dj{}}{{{b{Nh}}}{{Al{n}}}}{{{b{c}}}{{An{{b{{h{eg}}}}{Ej{e}}}}}{}{}j}{c{{An{e}}}{}{}}00000{{{b{c}}}El{}}00{{{b{AhOl}}{b{Ol}}}f}{{{b{AhNj}}{b{Nj}}}f}{{{b{AhOn}}c}f{{Jf{{A`{n}}}}}}{{{b{Ah{Nl{c}}}}e}f{A@`Nn}{{Jf{{A`{n}}}}}}{ce{}{}}00{{{b{Ah{Nl{c}}}}{b{{A`{n}}}}}{{A@b{Af}}}{A@`Nn}}{{{b{Ahc}}{b{{A`{n}}}}}{{An{fA@d}}}{}}{{{b{Ahc}}{b{{A`{n}}}}}{{An{fA@f}}}{}}{{{b{c}}{b{Ahe}}}{{An{f}}}{}En}``{{{b{A@h}}{b{{A`{n}}}}{b{{A`{n}}}}Af}{{An{{Al{n}}Bd}}}}{{{b{A@j}}{b{{A`{n}}}}}Nh}`{{{b{c}}d}f{}}{{{b{c}}}{{b{e}}}{}{}}{{{b{Ahc}}}{{b{Ahe}}}{}{}}{{{b{A@l}}}A@l}{{{b{c}}{b{Ahe}}}f{}{}}{{}A@l}{c{{An{A@l}}}Dh}{{{b{A@l}}{b{A@l}}}Gd}{{{b{c}}{b{e}}}Gd{}{}}0{{{b{A@l}}{b{AhE`}}}Eb}{cc{}}{{{b{A@l}}{b{Ahc}}}fGh}{ce{}{}}{{{b{AhJh}}}Jj}`{{{b{Bb}}}{{An{A@lBd}}}}{{{b{Bb}}}{{An{{A@n{DjDj}}Bd}}}}{{}Dj}{{{b{A@l}}c}AnEh}{{{b{c}}}e{}{}}{c{{An{e}}}{}{}}0`{{{b{c}}}El{}}8`{{{b{c}}}{{b{{h{eg}}}}}{}{}j}{{{b{AA`}}}{{b{{A`{n}}}}}}0{{{b{c}}}Af{}}{{{b{c}}}{{b{e}}}{}{}}{{{b{Ahc}}}{{b{Ahe}}}{}{}}{c{{An{{Al{Aj}}}}}{}}{{{b{Bb}}}{{An{cBd}}}{}}{{{b{AhAA`}}}f}{{{b{c}}}Dj{}}{{{b{c}}}e{}{{Dn{Dl}}}}0{{{b{AA`}}{b{AA`}}}Gd}{{{b{c}}{b{e}}}Gd{}{}}0{{{b{AA`}}{b{AhE`}}}Eb}{cc{}}{{{b{{A`{n}}}}}{{An{AA`Bd}}}}{ce{}{}}{{{b{c}}}{{An{{b{{h{eg}}}}{Ej{e}}}}}{}{}j}{c{{An{e}}}{}{}}0{{{b{c}}}El{}}3{{{b{c}}{b{Ahe}}}{{An{f}}}{}En}<````{{{b{c}}d}f{}}00{{{b{c}}}{{b{e}}}{}{}}00{{{b{Ahc}}}{{b{Ahe}}}{}{}}00{{{b{AAb}}}AAb}{{{b{AAd}}}AAd}{{{b{AAf}}}AAf}{{{b{c}}{b{Ahe}}}f{}{}}00{{c{b{Ah{A`{n}}}}}{{An{{b{{A`{n}}}}AAh}}}{{Jf{{A`{n}}}}}}0{{{b{Ah{A`{n}}}}}{{An{{b{{A`{n}}}}AAj}}}}0{{{b{Bb}}}{{An{{Al{n}}AAh}}}}0{{{b{{A`{n}}}}{b{Ah{A`{n}}}}}{{An{{b{Bb}}AAl}}}}0{{{b{{A`{n}}}}}Dj}0{{{b{{A`{n}}}}}Af}0{{{b{AAb}}{b{AAb}}}Gd}{{{b{AAf}}{b{AAf}}}Gd}{{{b{c}}{b{e}}}Gd{}{}}000{{{b{AAb}}{b{AhE`}}}{{An{fGf}}}}{cc{}}00{{{b{{A`{n}}}}}{{J`{AAf}}}}{{{b{{A`{n}}}}}{{J`{AAd}}}}{{{b{{A`{n}}}}{b{{A`{n}}}}}{{J`{AAd}}}}{ce{}{}}00{{{b{c}}}e{}{}}00{c{{An{e}}}{}{}}00000{{{b{c}}}El{}}00{{{b{AAd}}{b{{A`{n}}}}{b{AAf}}}{{J`{f}}}}0444````````````{{{b{c}}d}f{}}0{{{b{c}}}{{b{{h{eg}}}}}{}{}j}000{{{b{AAn}}}{{b{{A`{n}}}}}}{{{b{AB`}}}{{b{{A`{n}}}}}}{{{b{ABb}}}{{b{{A`{n}}}}}}{{{b{ABd}}}{{b{{A`{n}}}}}}{{{b{c}}}Af{}}000{{{b{c}}}{{b{e}}}{}{}}000{{{b{Ahc}}}{{b{Ahe}}}{}{}}000```{c{{An{{Al{Aj}}}}}{}}000{{{b{AAn}}}AAn}{{{b{ABb}}}ABb}{{{b{c}}{b{Ahe}}}f{}{}}0{{{b{AAn}}{b{AAn}}}Gb}{{{b{ABd}}}ABd}{{{b{Bb}}}{{An{cBd}}}{}}000{c{{An{AAn}}}Dh}{c{{An{AB`}}}Dh}{c{{An{ABb}}}Dh}{c{{An{ABd}}}Dh}{{{b{AhAB`}}}f}{{{b{c}}}Dj{}}000{{{b{c}}}e{}{{Dn{Dl}}}}0000000{{{b{AAn}}{b{AAn}}}Gd}{{{b{AB`}}{b{AB`}}}Gd}{{{b{ABb}}{b{ABb}}}Gd}{{{b{ABd}}{b{ABd}}}Gd}{{{b{c}}{b{e}}}Gd{}{}}0000000{{{b{AAn}}{b{AhE`}}}Eb}{{{b{AAn}}{b{AhE`}}}{{An{fGf}}}}{{{b{AB`}}{b{AhE`}}}Eb}0{{{b{ABb}}{b{AhE`}}}{{An{fGf}}}}{{{b{ABb}}{b{AhE`}}}Eb}{{{b{ABd}}{b{AhE`}}}Eb}{{{b{AB`}}}AAn}{cc{}}0{{{b{ABf}}}ABb}1{AB`ABd}2{{{b{{A`{n}}}}}{{An{AAnBd}}}}{{{b{{A`{n}}}}}{{An{AB`Bd}}}}{{{b{{A`{n}}}}}{{An{ABbBd}}}}{{{b{{A`{n}}}}}{{An{ABdBd}}}}{{{b{Bb}}}{{An{ABdc}}}{}}{{{b{Ahc}}}ABdEf}{{{b{AAn}}{b{Ahc}}}fGh}{{{b{ABb}}{b{Ahc}}}fGh}{ce{}{}}000{{{b{AAn}}{b{AAn}}}{{Gj{Gb}}}}{ABdc{}}``{{{b{ABd}}}{{b{c}}}{}}```{{{b{AAn}}c}AnEh}{{{b{AB`}}c}AnEh}{{{b{ABb}}c}AnEh}{{{b{ABd}}c}AnEh}`{{{b{ABd}}{b{{A`{n}}}}}ABb}{{{b{ABd}}{b{{A`{n}}}}}ABf}1{{{b{c}}}e{}{}}0{{{b{c}}}Dj{}}00{{{b{c}}}{{An{{b{{h{eg}}}}{Ej{e}}}}}{}{}j}000{{{b{Gl}}}{{An{AAnc}}}{}}{c{{An{e}}}{}{}}00{{{b{Gl}}}{{An{ABbc}}}{}}11111{{{b{c}}}El{}}000{{{b{AAn}}{b{{A`{n}}}}{b{ABb}}}{{An{fBd}}}}0{ce{}{}}000{{{b{c}}{b{Ahe}}}{{An{f}}}{}En}000````{{{b{c}}d}f{}}0{{{b{c}}}{{b{{h{eg}}}}}{}{}j}{{{b{ABh}}}}{{{b{AhABh}}}}{{{b{AhABh}}}ABj}{{{b{ABh}}}ABj}{{{b{ABf}}}{{b{{A`{n}}}}}}{{{b{c}}}Af{}}{{{b{c}}}{{b{e}}}{}{}}0{{{b{Ahc}}}{{b{Ahe}}}{}{}}0`{c{{An{{Al{Aj}}}}}{}}{{{b{ABh}}}ABh}{{{b{ABf}}}ABf}{{{b{c}}{b{Ahe}}}f{}{}}0{{{b{ABh}}{b{ABh}}}Gb}0{{{b{Bb}}}{{An{cBd}}}{}}{c{{An{ABf}}}Dh}{{{b{c}}}Dj{}}{{{b{c}}}e{}{{Dn{Dl}}}}0{{{b{ABh}}{b{ABh}}}Gd}{{{b{ABf}}{b{ABf}}}Gd}1{{{b{c}}{b{e}}}Gd{}{}}000{{{b{ABh}}{b{AhE`}}}{{An{fGf}}}}0{{{b{ABf}}{b{AhE`}}}Eb}{{{b{ABf}}{b{AhE`}}}{{An{fGf}}}}{ABjABh}{cc{}}0{{{b{{A`{n}}}}}{{An{ABfBd}}}}{{{b{{A`{n}}}}}{{An{ABhABl}}}}00{{{b{Bb}}}{{An{ABhABl}}}}{{{b{ABh}}{b{Ahc}}}fGh}{{{b{ABf}}{b{Ahc}}}fGh}{ce{}{}}0{{{b{AhABh}}}f}{{{b{ABh}}{b{ABh}}}{{Gj{Gb}}}}{{{b{ABf}}{b{{A`{n}}}}}{{An{AAnBd}}}}{{{b{ABf}}c}AnEh}{{{b{ABh}}}{{Jd{n}}}}{{{b{ABh}}}ABn}`{{{b{c}}}e{}{}}0{{{b{c}}}Dj{}}0{{{b{c}}}{{An{{b{{h{eg}}}}{Ej{e}}}}}{}{}j}{c{{An{e}}}{}{}}0{{{b{ABb}}{b{AAn}}{b{{A`{n}}}}}{{An{ABfBd}}}}11{{{b{c}}}El{}}0{{{b{ABh}}{b{AC`}}{b{ACb}}}{{An{fABl}}}}=={{{b{c}}{b{Ahe}}}{{An{f}}}{}En}`````````````{{{b{c}}d}f{}}0{{{b{c}}}{{b{{h{eg}}}}}{}{}j}000{{{b{ACd}}}{{b{{A`{n}}}}}}{{{b{ACf}}}{{b{{A`{n}}}}}}{{{b{ACh}}}{{b{{A`{n}}}}}}{{{b{ACj}}}{{b{{A`{n}}}}}}{{{b{c}}}Af{}}000{{{b{c}}}{{b{e}}}{}{}}000{{{b{Ahc}}}{{b{Ahe}}}{}{}}000```{c{{An{{Al{Aj}}}}}{}}000{{{b{ACd}}}ACd}{{{b{ACh}}}ACh}{{{b{c}}{b{Ahe}}}f{}{}}0{{{b{ACd}}{b{ACd}}}Gb}`{{{b{ACj}}}ACj}{{{b{Bb}}}{{An{cBd}}}{}}000{c{{An{ACd}}}Dh}{c{{An{ACf}}}Dh}{c{{An{ACh}}}Dh}{c{{An{ACj}}}Dh}{{{b{c}}}Dj{}}000{{{b{c}}}e{}{{Dn{Dl}}}}0000000{{{b{ACd}}{b{ACd}}}Gd}{{{b{ACf}}{b{ACf}}}Gd}{{{b{ACh}}{b{ACh}}}Gd}{{{b{ACj}}{b{ACj}}}Gd}{{{b{c}}{b{e}}}Gd{}{}}0000000{{{b{ACd}}{b{AhE`}}}Eb}{{{b{ACd}}{b{AhE`}}}{{An{fGf}}}}{{{b{ACf}}{b{AhE`}}}Eb}0{{{b{ACh}}{b{AhE`}}}{{An{fGf}}}}{{{b{ACh}}{b{AhE`}}}Eb}{{{b{ACj}}{b{AhE`}}}Eb}{cc{}}{{{b{ACf}}}ACd}11{{{b{ACl}}}ACh}{ACfACj}3{{{b{{A`{n}}}}}{{An{ACdBd}}}}{{{b{{A`{n}}}}}{{An{ACfBd}}}}{{{b{{A`{n}}}}}{{An{AChBd}}}}{{{b{{A`{n}}}}}{{An{ACjBd}}}}{{{b{Bb}}}{{An{ACjc}}}{}}{{{b{Ahc}}}ACjEf}{{{b{ACd}}{b{Ahc}}}fGh}{{{b{ACh}}{b{Ahc}}}fGh}{ce{}{}}000{{{b{ACd}}{b{ACd}}}{{Gj{Gb}}}}{ACjc{}}``{{{b{ACj}}}{{b{c}}}{}}```{{{b{ACd}}c}AnEh}{{{b{ACf}}c}AnEh}{{{b{ACh}}c}AnEh}{{{b{ACj}}c}AnEh}`{{{b{ACj}}{b{{A`{n}}}}}ACh}{{{b{ACj}}{b{{A`{n}}}}}ACl}1{{{b{c}}}e{}{}}0{{{b{c}}}Dj{}}00{{{b{c}}}{{An{{b{{h{eg}}}}{Ej{e}}}}}{}{}j}000{c{{An{e}}}{}{}}{{{b{Gl}}}{{An{ACdc}}}{}}1{{{b{Gl}}}{{An{AChc}}}{}}222222{{{b{c}}}El{}}000{{{b{ACd}}{b{{A`{n}}}}{b{ACh}}}{{An{fBd}}}}0{ce{}{}}000{{{b{c}}{b{Ahe}}}{{An{f}}}{}En}000``{{{b{c}}d}f{}}{{{b{c}}}{{b{{h{eg}}}}}{}{}j}{{{b{ACl}}}{{b{{A`{n}}}}}}{{{b{c}}}Af{}}{{{b{c}}}{{b{e}}}{}{}}{{{b{Ahc}}}{{b{Ahe}}}{}{}}`{c{{An{{Al{Aj}}}}}{}}{{{b{ACl}}}ACl}{{{b{c}}{b{Ahe}}}f{}{}}{{{b{Bb}}}{{An{cBd}}}{}}{c{{An{ACl}}}Dh}{{{b{c}}}Dj{}}{{{b{c}}}e{}{{Dn{Dl}}}}0{{{b{ACl}}{b{ACl}}}Gd}{{{b{c}}{b{e}}}Gd{}{}}0{{{b{ACl}}{b{AhE`}}}Eb}{{{b{ACl}}{b{AhE`}}}{{An{fGf}}}}{cc{}}{{{b{{A`{n}}}}}{{An{AClBd}}}}{{{b{ACl}}{b{Ahc}}}fGh}{ce{}{}}{{{b{ACl}}{b{{A`{n}}}}}{{An{ACdBd}}}}`{{{b{ACl}}c}AnEh}`{{{b{c}}}e{}{}}<{{{b{c}}}{{An{{b{{h{eg}}}}{Ej{e}}}}}{}{}j}{c{{An{e}}}{}{}}{{{b{ACh}}{b{ACd}}{b{{A`{n}}}}}{{An{AClBd}}}}1{{{b{c}}}El{}}7{{{b{c}}{b{Ahe}}}{{An{f}}}{}En}````{{{b{c}}d}f{}}{{{b{c}}}{{b{e}}}{}{}}0{{{b{Ahc}}}{{b{Ahe}}}{}{}}0{{{b{Gl}}}Gl}{{{b{c}}{b{Ahe}}}f{}{}}{{{b{Gl}}{b{Gl}}}Gb}{c{{An{ACn}}}Dh}{c{{An{Gl}}}Dh}{{{b{{A`{n}}}}{AD`{{b{{Jd{n}}}}}{{Kn{{J`{c}}}}}}}{{J`{{Al{c}}}}}{}}{{{b{Gl}}{b{Gl}}}Gd}{{{b{c}}{b{e}}}Gd{}{}}0{{{b{Gl}}{b{AhE`}}}{{An{fGf}}}}{{{b{Gl}}{b{AhE`}}}Eb}{cc{}}{{{b{Ld}}}Gl}{{{b{Fh}}}Gl}{{{b{ABb}}}Gl}{{{b{ACd}}}Gl}{{{b{AAn}}}Gl}{{{b{H`}}}Gl}{{{b{Hj}}}Gl}{{{b{Gn}}}Gl}{{{b{Lf}}}Gl}{{{b{ACh}}}Gl}{{{b{Ib}}}Gl}{{{b{F`}}}Gl}<{{{b{{Jd{n}}}}}{{An{ADbBd}}}}{{{b{Gl}}{b{Ahc}}}fGh}{ce{}{}}0{{}Gd}{{{b{AhJh}}}Jj}{{{b{Bb}}}{{J`{c}}}ADd}{{{b{Gl}}{b{Gl}}}{{Gj{Gb}}}}{{}Dj}{{{b{ACn}}c}AnEh}{{{b{Gl}}c}AnEh}{{{b{{A`{c}}}}{AD`{{b{c}}}{{Kn{{Jd{n}}}}}}}{{Al{n}}}{}}{{{b{ADb}}}{{Jd{n}}}}{{{b{c}}}e{}{}}{{{b{c}}}Dj{}}{c{{An{e}}}{}{}}000{{{b{c}}}El{}}0==`{{{b{c}}d}f{}}{{{b{c}}}{{b{e}}}{}{}}{{{b{Ahc}}}{{b{Ahe}}}{}{}}{{{b{{ADf{c}}}}}{{ADf{c}}}{B`ADh}}{{{b{c}}{b{Ahe}}}f{}{}}{cc{}}{ce{}{}}{e{{ADf{c}}}ADh{{ADj{c}}ADl}}{{{b{{ADf{c}}}}Nh}cADh}<::92````````````````````````````````````{{{b{Ah{AEd{}{{ADn{c}}{AE`{e}}{AEb{g}}}}}}{AEd{}{{ADn{c}}{AE`{e}}{AEb{g}}}}}{{An{fBd}}}{{ADh{}{{AE`{e}}}}}{{AEf{}{{ADn{c}}}}}{{AEh{}{{ADn{c}}}}}}{{{b{Ah{AEd{}{{ADn{c}}{AE`{e}}{AEb{g}}}}}}c}{{An{fBd}}}{{ADh{}{{AE`{e}}}}}{{AEf{}{{ADn{c}}}}}{{AEh{}{{ADn{c}}}}}}{g{{An{{AEd{}{{ADn{c}}{AE`{i}}{AEb{k}}}}Bd}}}{{ADh{}{{AE`{i}}}}}{{Fb{c}}}{{Ff{}{{Fd{{b{e}}}}}}}{{AEf{}{{ADn{c}}}}}{{AEh{}{{ADn{c}}}}}}{{{b{AEj}}}{{b{{A`{n}}}}}}{{{b{{A`{{b{{AEd{}{{ADn{c}}{AE`{e}}{AEb{g}}}}}}}}}}{Al{i}}{b{{A`{{b{{A`{n}}}}}}}}}{{An{fBd}}}{{ADh{}{{AE`{e}}}}}{{AEf{}{{ADn{c}}}}}{{AEh{}{{ADn{c}}}}}{{AEl{}{{Fd{{b{e}}}}}}}}{{{b{{ADd{}{{AE`{c}}{AEb{e}}{ADn{g}}}}}}}{{ADd{}{{AE`{c}}{AEb{e}}{ADn{g}}}}}{{AEf{}{{AEb{e}}{ADn{g}}}}}{{AEh{}{{AE`{c}}{ADn{g}}}}}{{ADh{}{{AE`{c}}{AEb{e}}}}}}{{{b{Bb}}}{{J`{AEn}}}}{{{b{AEn}}}Dj}{{{b{{A`{n}}}}}{{An{AEjBd}}}}{{{b{Ahc}}}{{ADd{}{{AE`{e}}{AEb{g}}{ADn{i}}}}}Ef{{AEf{}{{AEb{g}}{ADn{i}}}}}{{AEh{}{{AE`{e}}{ADn{i}}}}}{{ADh{}{{AE`{e}}{AEb{g}}}}}}{{{b{Ahc}}}AF`Ef}{{{b{Ahc}}}AFbEf}{{}AFd}{{{ADd{}{{AE`{c}}{AEb{e}}{ADn{g}}}}}e{{AEf{}{{AEb{e}}{ADn{g}}}}}{{AEh{}{{AE`{c}}{ADn{g}}}}}{{ADh{}{{AE`{c}}{AEb{e}}}}}}{{{b{{ADd{}{{AE`{c}}{AEb{e}}{ADn{g}}}}}}}{{b{c}}}{{AEf{}{{AEb{e}}{ADn{g}}}}}{{AEh{}{{AE`{c}}{ADn{g}}}}}{{ADh{}{{AE`{c}}{AEb{e}}}}}}{{{b{{AFj{}{{AE`{c}}{AFf{e}}{AFh{g}}}}}}{b{{A`{n}}}}}{{An{cBd}}}{}{{AFl{}{{ADn{}}{AE`{}}}}}On}0{{{b{ADj}}{b{{A`{n}}}}}c{}}{{{b{{AFl{}{{AE`{c}}{ADn{e}}}}}}{b{{A`{n}}}}}e{}{{AFj{}{{AFf{}}{AE`{}}}}}}0{{{b{{AEf{}{{AEb{c}}{ADn{e}}}}}}{b{{A`{n}}}}{b{e}}}{{An{fBd}}}{{AEh{}{{AE`{}}}}}{{ADh{}{{AE`{}}}}}}{{{b{{AEd{}{{ADn{c}}{AE`{e}}{AEb{g}}}}}}{b{A`}}{b{{A`{n}}}}}{{An{fBd}}}{{ADh{}{{AE`{e}}}}}{{AEf{}{{ADn{c}}}}}{{AEh{}{{ADn{c}}}}}}{{{b{{AEd{}{{ADn{c}}{AE`{e}}{AEb{g}}}}}}{b{A`}}{b{{A`{{b{{A`{n}}}}}}}}}{{An{fBd}}}{{ADh{}{{AE`{e}}}}}{{AEf{}{{ADn{c}}}}}{{AEh{}{{ADn{c}}}}}}{{{b{{AFn{}{{ADn{c}}}}}}{b{{A`{n}}}}{b{c}}}{{An{fBd}}}{{AFj{}{{AE`{}}}}}}0{nAf}```````````{{{b{Ahc}}}{{AGf{}{{AG`{e}}{AGb{i}}{AGd{g}}}}}Ef{{AGh{}{{AGd{g}}}}}{{AGj{}{{AGb{i}}}}}{{AGl{}{{AGd{g}}}}}}{{{b{{AGf{}{{AG`{c}}{AGb{g}}{AGd{e}}}}}}{b{{A`{n}}}}}{{A@n{{Jd{n}}c}}}{{AGh{}{{AGd{e}}}}}{{AGj{}{{AGb{g}}}}}{{AGl{}{{AGd{e}}}}}}{{{b{{AGf{}{{AG`{c}}{AGb{g}}{AGd{e}}}}}}{b{{A`{n}}}}}c{{AGh{}{{AGd{e}}}}}{{AGj{}{{AGb{g}}}}}{{AGl{}{{AGd{e}}}}}}{{{b{{AGh{}{{AGd{c}}}}}}}{{Jd{n}}}AGj}{{{b{{AGh{}{{AGd{c}}}}}}{b{{A`{n}}}}{b{c}}}{{An{fBd}}}AGj}{{{b{{AGh{}{{AGd{c}}}}}}{b{{A`{n}}}}{b{c}}{b{{Jd{n}}}}}{{An{fBd}}}AGj}````{{{b{c}}}{{b{e}}}{}{}}000{{{b{Ahc}}}{{b{Ahe}}}{}{}}000{c{{An{AGn}}}Dh}{c{{An{AH`}}}Dh}{c{{An{AHb}}}Dh}{c{{An{AHd}}}Dh}{{{b{AhAH`}}}f}{{{b{AGn}}{b{AGn}}}Gd}{{{b{AH`}}{b{AH`}}}Gd}{{{b{AHb}}{b{AHb}}}Gd}{{{b{AHd}}{b{AHd}}}Gd}{{{b{c}}{b{e}}}Gd{}{}}0000000{{{b{AGn}}{b{AhE`}}}Eb}{{{b{AH`}}{b{AhE`}}}Eb}{{{b{AHb}}{b{AhE`}}}Eb}{{{b{AHd}}{b{AhE`}}}Eb}{cc{}}00{AH`AHb}1{{{b{Ahc}}}AHbEf}{ce{}{}}000`{{{b{AHb}}{b{{A`{n}}}}}AHd}{{{b{AGn}}c}AnEh}{{{b{AH`}}c}AnEh}{{{b{AHb}}c}AnEh}{{{b{AHd}}c}AnEh}`{{{b{AHd}}}{{Jd{n}}}}{c{{An{e}}}{}{}}0000000{{{b{c}}}El{}}000{{{b{AHd}}{b{{A`{n}}}}{b{c}}}{{An{fBd}}}{}}9999","D":"CB`","p":[[1,"reference"],[5,"Private",2144],[1,"unit"],[5,"BitSlice",2145],[10,"BitOrder",2146],[5,"GenericByteArray",22],[1,"u8"],[1,"slice"],[10,"ArrayLength",2147],[10,"Debug",2148],[1,"usize"],[0,"mut"],[5,"u5",2149],[5,"Vec",2150],[6,"Result",2151],[10,"Clone",2152],[1,"str"],[6,"FastCryptoError",790],[17,"IVType"],[10,"Cipher",22],[10,"Nonce",22],[5,"AesCtr",22],[17,"KeySize"],[10,"KeySizeUser",2153],[10,"KeyInit",2153],[10,"BlockCipher",2154],[17,"BlockSize"],[8,"U16",2155],[10,"BlockSizeUser",2153],[10,"BlockEncrypt",2154],[10,"BlockDecrypt",2154],[5,"AesCbc",22],[10,"Padding",2156],[5,"AesGcm",22],[10,"AuthenticatedCipher",22],[10,"Deserializer",2157],[5,"String",2158],[1,"char"],[10,"FromIterator",2159],[5,"Formatter",2148],[8,"Result",2148],[8,"AesKey",22],[10,"AllowedRng",1997],[10,"Serializer",2160],[6,"BitSpanError",2161],[5,"TypeId",2162],[10,"WriteBase32",2149],[5,"BLS12381AggregateSignature",122],[10,"Borrow",2163],[17,"Item"],[10,"IntoIterator",2159],[5,"BLS12381PublicKey",122],[5,"BLS12381PrivateKey",122],[5,"BLS12381KeyPair",122],[5,"BLS12381Signature",122],[10,"Iterator",2164],[6,"Ordering",2165],[1,"bool"],[5,"Error",2148],[10,"Hasher",2166],[6,"Option",2167],[5,"BytesRepresentation",1925],[5,"BLS12381AggregateSignature",310],[5,"BLS12381PublicKey",310],[5,"BLS12381PrivateKey",310],[5,"BLS12381KeyPair",310],[5,"BLS12381Signature",310],[8,"BLS12381AggregateSignatureAsBytes",310],[5,"Ed25519PublicKey",499],[10,"Sized",2168],[5,"Ed25519PrivateKey",499],[5,"Ed25519KeyPair",499],[5,"Ed25519Signature",499],[5,"Ed25519AggregateSignature",499],[5,"Signature",2169],[5,"SigningKey",2170],[5,"Base64",689],[5,"Hex",689],[5,"Base58",689],[8,"FastCryptoResult",790],[10,"TryFrom",2171],[1,"array"],[10,"AsRef",2171],[5,"SchemaGenerator",2172],[6,"Schema",2173],[5,"Error",2174],[10,"Doubling",824],[10,"FiatShamirChallenge",824],[10,"FromTrustedByteArray",824],[17,"ScalarType"],[10,"GroupElement",824],[10,"Scalar",824],[10,"HashToGroupElement",824],[17,"Other"],[17,"Output"],[10,"Pairing",824],[10,"MultiScalarMul",824],[5,"G1Element",850],[5,"G2Element",850],[5,"GTElement",850],[5,"Scalar",850],[1,"u128"],[10,"ScalarMultiplier",1051],[10,"ToLittleEndianBytes",1051],[5,"WindowedScalarMultiplier",1058],[10,"Add",2175],[5,"HashMap",2176],[5,"RistrettoPoint",1071],[5,"RistrettoScalar",1071],[5,"RistrettoPoint",2177],[5,"Scalar",2178],[5,"ProjectivePoint",1180],[5,"Scalar",1180],[8,"Projective",2179],[8,"Fr",2180],[5,"Digest",1274],[5,"EllipticCurveMultisetHash",1274],[5,"HashFunctionWrapper",1274],[10,"Default",2181],[17,"TypedDigest"],[10,"Hash",1274],[10,"Into",2171],[10,"Eq",2165],[10,"Hash",2166],[10,"Copy",2168],[10,"MultisetHash",1274],[10,"HashFunction",1274],[10,"Digest",2182],[8,"Result",2183],[5,"Error",2184],[5,"Error",2184],[8,"HkdfIkm",1377],[8,"HmacKey",1377],[5,"JWTHeader",1381],[1,"tuple"],[5,"PrivateSeed",1408],[5,"Base64UrlUnpadded",1435,2185],[5,"RSAPublicKey",1435],[5,"RSASignature",1435],[6,"Error",2186],[5,"InvalidEncodingError",2186],[5,"InvalidLengthError",2186],[5,"Secp256k1PublicKey",1499],[5,"Secp256k1PrivateKey",1499],[5,"Secp256k1Signature",1499],[5,"Secp256k1KeyPair",1499],[5,"Secp256k1RecoverableSignature",1654],[5,"Secp256k1Sig",1654],[5,"Signature",2187],[6,"Error",2188],[5,"SerializedSignature",2189],[5,"Message",2188],[5,"PublicKey",2190],[5,"Secp256r1PublicKey",1730],[5,"Secp256r1PrivateKey",1730],[5,"Secp256r1Signature",1730],[5,"Secp256r1KeyPair",1730],[5,"Secp256r1RecoverableSignature",1886],[5,"SerializationHelper",1925],[1,"fn"],[10,"ToFromByteArray",1925],[10,"KeyPair",1997],[5,"SignatureService",1982],[10,"Authenticator",1997],[10,"Signer",1997],[10,"Send",2168],[17,"Sig"],[17,"PubKey"],[17,"PrivKey"],[10,"AggregateAuthenticator",1997],[10,"VerifyingKey",1997],[10,"SigningKey",1997],[10,"ToFromBytes",1997],[10,"ExactSizeIterator",2191],[10,"EncodeDecodeBase64",1997],[10,"Generate",1997],[10,"FromUniformBytes",1997],[10,"InsecureDefault",1997],[17,"Signer"],[17,"DefaultHash"],[10,"RecoverableSignature",1997],[10,"RecoverableSigner",1997],[10,"VerifyRecoverable",1997],[17,"Proof"],[17,"PrivateKey"],[17,"PublicKey"],[10,"VRFKeyPair",2059],[10,"VRFProof",2059],[10,"VRFPublicKey",2059],[10,"VRFPrivateKey",2059],[5,"ECVRFPublicKey",2076],[5,"ECVRFPrivateKey",2076],[5,"ECVRFKeyPair",2076],[5,"ECVRFProof",2076],[5,"SingleSignature",499],[5,"Bech32",689],[10,"Encoding",689],[10,"ReverseWrapper",1274],[10,"Encoding",1435]],"r":[[1435,2185],[1436,2192]],"b":[[79,"impl-Display-for-GenericByteArray%3CN%3E"],[80,"impl-Debug-for-GenericByteArray%3CN%3E"],[221,"impl-Debug-for-BLS12381PublicKey"],[222,"impl-Display-for-BLS12381PublicKey"],[223,"impl-Display-for-BLS12381PrivateKey"],[224,"impl-Debug-for-BLS12381PrivateKey"],[226,"impl-Debug-for-BLS12381Signature"],[227,"impl-Display-for-BLS12381Signature"],[228,"impl-Display-for-BLS12381AggregateSignature"],[229,"impl-Debug-for-BLS12381AggregateSignature"],[410,"impl-Display-for-BLS12381PublicKey"],[411,"impl-Debug-for-BLS12381PublicKey"],[412,"impl-Display-for-BLS12381PrivateKey"],[413,"impl-Debug-for-BLS12381PrivateKey"],[415,"impl-Display-for-BLS12381Signature"],[416,"impl-Debug-for-BLS12381Signature"],[417,"impl-Debug-for-BLS12381AggregateSignature"],[418,"impl-Display-for-BLS12381AggregateSignature"],[600,"impl-Display-for-Ed25519PublicKey"],[601,"impl-Debug-for-Ed25519PublicKey"],[602,"impl-Display-for-Ed25519PrivateKey"],[603,"impl-Debug-for-Ed25519PrivateKey"],[605,"impl-Debug-for-Ed25519Signature"],[606,"impl-Display-for-Ed25519Signature"],[607,"impl-Display-for-Ed25519AggregateSignature"],[608,"impl-Debug-for-Ed25519AggregateSignature"],[614,"impl-From%3CSigningKey%3E-for-Ed25519KeyPair"],[615,"impl-From%3CEd25519PrivateKey%3E-for-Ed25519KeyPair"],[720,"impl-DeserializeAs%3C\'de,+Vec%3Cu8%3E%3E-for-Base64"],[721,"impl-DeserializeAs%3C\'de,+%5Bu8;+N%5D%3E-for-Base64"],[722,"impl-DeserializeAs%3C\'de,+%5Bu8;+N%5D%3E-for-Hex"],[723,"impl-DeserializeAs%3C\'de,+Vec%3Cu8%3E%3E-for-Hex"],[724,"impl-DeserializeAs%3C\'de,+%5Bu8;+N%5D%3E-for-Base58"],[725,"impl-DeserializeAs%3C\'de,+Vec%3Cu8%3E%3E-for-Base58"],[813,"impl-Debug-for-FastCryptoError"],[814,"impl-Display-for-FastCryptoError"],[865,"impl-Add-for-G1Element"],[866,"impl-Add%3CG1Element%3E-for-%26G1Element"],[867,"impl-Add%3C%26G1Element%3E-for-G1Element"],[868,"impl-Add%3C%26G1Element%3E-for-%26G1Element"],[869,"impl-Add%3C%26G2Element%3E-for-G2Element"],[870,"impl-Add%3CG2Element%3E-for-%26G2Element"],[871,"impl-Add-for-G2Element"],[872,"impl-Add%3C%26G2Element%3E-for-%26G2Element"],[873,"impl-Add-for-GTElement"],[874,"impl-Add%3C%26GTElement%3E-for-GTElement"],[875,"impl-Add%3CGTElement%3E-for-%26GTElement"],[876,"impl-Add%3C%26GTElement%3E-for-%26GTElement"],[877,"impl-Add%3C%26Scalar%3E-for-%26Scalar"],[878,"impl-Add%3CScalar%3E-for-%26Scalar"],[879,"impl-Add%3C%26Scalar%3E-for-Scalar"],[880,"impl-Add-for-Scalar"],[881,"impl-AddAssign-for-G1Element"],[882,"impl-AddAssign%3C%26G1Element%3E-for-G1Element"],[883,"impl-AddAssign-for-G2Element"],[884,"impl-AddAssign%3C%26G2Element%3E-for-G2Element"],[885,"impl-AddAssign-for-GTElement"],[886,"impl-AddAssign%3C%26GTElement%3E-for-GTElement"],[887,"impl-AddAssign%3C%26Scalar%3E-for-Scalar"],[888,"impl-AddAssign-for-Scalar"],[955,"impl-Mul%3C%3CG1Element+as+GroupElement%3E::ScalarType%3E-for-%26G1Element"],[956,"impl-Mul%3C%26%3CG1Element+as+GroupElement%3E::ScalarType%3E-for-G1Element"],[957,"impl-Mul%3C%26%3CG1Element+as+GroupElement%3E::ScalarType%3E-for-%26G1Element"],[958,"impl-Mul%3CScalar%3E-for-G1Element"],[959,"impl-Mul%3CScalar%3E-for-G2Element"],[960,"impl-Mul%3C%3CG2Element+as+GroupElement%3E::ScalarType%3E-for-%26G2Element"],[961,"impl-Mul%3C%26%3CG2Element+as+GroupElement%3E::ScalarType%3E-for-G2Element"],[962,"impl-Mul%3C%26%3CG2Element+as+GroupElement%3E::ScalarType%3E-for-%26G2Element"],[963,"impl-Mul%3C%26%3CGTElement+as+GroupElement%3E::ScalarType%3E-for-%26GTElement"],[964,"impl-Mul%3CScalar%3E-for-GTElement"],[965,"impl-Mul%3C%26%3CGTElement+as+GroupElement%3E::ScalarType%3E-for-GTElement"],[966,"impl-Mul%3C%3CGTElement+as+GroupElement%3E::ScalarType%3E-for-%26GTElement"],[967,"impl-Mul-for-Scalar"],[968,"impl-Mul%3C%3CScalar+as+GroupElement%3E::ScalarType%3E-for-%26Scalar"],[969,"impl-Mul%3C%26%3CScalar+as+GroupElement%3E::ScalarType%3E-for-%26Scalar"],[970,"impl-Mul%3C%26%3CScalar+as+GroupElement%3E::ScalarType%3E-for-Scalar"],[971,"impl-MulAssign%3C%3CG1Element+as+GroupElement%3E::ScalarType%3E-for-G1Element"],[972,"impl-MulAssign%3C%26%3CG1Element+as+GroupElement%3E::ScalarType%3E-for-G1Element"],[973,"impl-MulAssign%3C%26%3CG2Element+as+GroupElement%3E::ScalarType%3E-for-G2Element"],[974,"impl-MulAssign%3C%3CG2Element+as+GroupElement%3E::ScalarType%3E-for-G2Element"],[975,"impl-MulAssign%3C%26%3CGTElement+as+GroupElement%3E::ScalarType%3E-for-GTElement"],[976,"impl-MulAssign%3C%3CGTElement+as+GroupElement%3E::ScalarType%3E-for-GTElement"],[977,"impl-MulAssign%3C%3CScalar+as+GroupElement%3E::ScalarType%3E-for-Scalar"],[978,"impl-MulAssign%3C%26%3CScalar+as+GroupElement%3E::ScalarType%3E-for-Scalar"],[982,"impl-Neg-for-G1Element"],[983,"impl-Neg-for-%26G1Element"],[984,"impl-Neg-for-G2Element"],[985,"impl-Neg-for-%26G2Element"],[986,"impl-Neg-for-GTElement"],[987,"impl-Neg-for-%26GTElement"],[988,"impl-Neg-for-%26Scalar"],[989,"impl-Neg-for-Scalar"],[996,"impl-Sub-for-G1Element"],[997,"impl-Sub%3C%26G1Element%3E-for-G1Element"],[998,"impl-Sub%3C%26G1Element%3E-for-%26G1Element"],[999,"impl-Sub%3CG1Element%3E-for-%26G1Element"],[1000,"impl-Sub%3C%26G2Element%3E-for-G2Element"],[1001,"impl-Sub%3CG2Element%3E-for-%26G2Element"],[1002,"impl-Sub-for-G2Element"],[1003,"impl-Sub%3C%26G2Element%3E-for-%26G2Element"],[1004,"impl-Sub%3C%26GTElement%3E-for-%26GTElement"],[1005,"impl-Sub%3CGTElement%3E-for-%26GTElement"],[1006,"impl-Sub%3C%26GTElement%3E-for-GTElement"],[1007,"impl-Sub-for-GTElement"],[1008,"impl-Sub-for-Scalar"],[1009,"impl-Sub%3C%26Scalar%3E-for-Scalar"],[1010,"impl-Sub%3CScalar%3E-for-%26Scalar"],[1011,"impl-Sub%3C%26Scalar%3E-for-%26Scalar"],[1012,"impl-SubAssign%3C%26G1Element%3E-for-G1Element"],[1013,"impl-SubAssign-for-G1Element"],[1014,"impl-SubAssign%3C%26G2Element%3E-for-G2Element"],[1015,"impl-SubAssign-for-G2Element"],[1016,"impl-SubAssign%3C%26GTElement%3E-for-GTElement"],[1017,"impl-SubAssign-for-GTElement"],[1018,"impl-SubAssign-for-Scalar"],[1019,"impl-SubAssign%3C%26Scalar%3E-for-Scalar"],[1075,"impl-Add%3C%26RistrettoPoint%3E-for-RistrettoPoint"],[1076,"impl-Add%3C%26RistrettoPoint%3E-for-%26RistrettoPoint"],[1077,"impl-Add%3CRistrettoPoint%3E-for-%26RistrettoPoint"],[1078,"impl-Add-for-RistrettoPoint"],[1079,"impl-Add%3C%26RistrettoScalar%3E-for-RistrettoScalar"],[1080,"impl-Add%3C%26RistrettoScalar%3E-for-%26RistrettoScalar"],[1081,"impl-Add%3CRistrettoScalar%3E-for-%26RistrettoScalar"],[1082,"impl-Add-for-RistrettoScalar"],[1083,"impl-AddAssign-for-RistrettoPoint"],[1084,"impl-AddAssign%3C%26RistrettoPoint%3E-for-RistrettoPoint"],[1085,"impl-AddAssign-for-RistrettoScalar"],[1086,"impl-AddAssign%3C%26RistrettoScalar%3E-for-RistrettoScalar"],[1101,"impl-Div-for-RistrettoScalar"],[1102,"impl-Div%3C__RhsT%3E-for-RistrettoScalar"],[1115,"impl-From%3CScalar%3E-for-RistrettoScalar"],[1116,"impl-From%3Cu128%3E-for-RistrettoScalar"],[1132,"impl-Mul%3C%26%3CRistrettoPoint+as+GroupElement%3E::ScalarType%3E-for-RistrettoPoint"],[1133,"impl-Mul%3C%26%3CRistrettoPoint+as+GroupElement%3E::ScalarType%3E-for-%26RistrettoPoint"],[1134,"impl-Mul%3CRistrettoScalar%3E-for-RistrettoPoint"],[1135,"impl-Mul%3C%3CRistrettoPoint+as+GroupElement%3E::ScalarType%3E-for-%26RistrettoPoint"],[1136,"impl-Mul%3C%26%3CRistrettoScalar+as+GroupElement%3E::ScalarType%3E-for-%26RistrettoScalar"],[1137,"impl-Mul-for-RistrettoScalar"],[1138,"impl-Mul%3C%26%3CRistrettoScalar+as+GroupElement%3E::ScalarType%3E-for-RistrettoScalar"],[1139,"impl-Mul%3C%3CRistrettoScalar+as+GroupElement%3E::ScalarType%3E-for-%26RistrettoScalar"],[1140,"impl-MulAssign%3C%3CRistrettoPoint+as+GroupElement%3E::ScalarType%3E-for-RistrettoPoint"],[1141,"impl-MulAssign%3C%26%3CRistrettoPoint+as+GroupElement%3E::ScalarType%3E-for-RistrettoPoint"],[1142,"impl-MulAssign%3C%26%3CRistrettoScalar+as+GroupElement%3E::ScalarType%3E-for-RistrettoScalar"],[1143,"impl-MulAssign%3C%3CRistrettoScalar+as+GroupElement%3E::ScalarType%3E-for-RistrettoScalar"],[1145,"impl-Neg-for-RistrettoPoint"],[1146,"impl-Neg-for-%26RistrettoPoint"],[1147,"impl-Neg-for-%26RistrettoScalar"],[1148,"impl-Neg-for-RistrettoScalar"],[1152,"impl-Sub%3C%26RistrettoPoint%3E-for-RistrettoPoint"],[1153,"impl-Sub%3CRistrettoPoint%3E-for-%26RistrettoPoint"],[1154,"impl-Sub%3C%26RistrettoPoint%3E-for-%26RistrettoPoint"],[1155,"impl-Sub-for-RistrettoPoint"],[1156,"impl-Sub%3CRistrettoScalar%3E-for-%26RistrettoScalar"],[1157,"impl-Sub%3C%26RistrettoScalar%3E-for-%26RistrettoScalar"],[1158,"impl-Sub%3C%26RistrettoScalar%3E-for-RistrettoScalar"],[1159,"impl-Sub-for-RistrettoScalar"],[1160,"impl-SubAssign%3C%26RistrettoPoint%3E-for-RistrettoPoint"],[1161,"impl-SubAssign-for-RistrettoPoint"],[1162,"impl-SubAssign-for-RistrettoScalar"],[1163,"impl-SubAssign%3C%26RistrettoScalar%3E-for-RistrettoScalar"],[1185,"impl-Add-for-ProjectivePoint"],[1186,"impl-Add%3CProjectivePoint%3E-for-%26ProjectivePoint"],[1187,"impl-Add%3C%26ProjectivePoint%3E-for-ProjectivePoint"],[1188,"impl-Add%3C%26ProjectivePoint%3E-for-%26ProjectivePoint"],[1189,"impl-Add%3CScalar%3E-for-%26Scalar"],[1190,"impl-Add-for-Scalar"],[1191,"impl-Add%3C%26Scalar%3E-for-Scalar"],[1192,"impl-Add%3C%26Scalar%3E-for-%26Scalar"],[1193,"impl-AddAssign%3C%26ProjectivePoint%3E-for-ProjectivePoint"],[1194,"impl-AddAssign-for-ProjectivePoint"],[1195,"impl-AddAssign-for-Scalar"],[1196,"impl-AddAssign%3C%26Scalar%3E-for-Scalar"],[1222,"impl-From%3Cu128%3E-for-Scalar"],[1223,"impl-From%3CFp%3CMontBackend%3CFrConfig,+4%3E,+4%3E%3E-for-Scalar"],[1230,"impl-Mul%3C%3CProjectivePoint+as+GroupElement%3E::ScalarType%3E-for-%26ProjectivePoint"],[1231,"impl-Mul%3C%26%3CProjectivePoint+as+GroupElement%3E::ScalarType%3E-for-%26ProjectivePoint"],[1232,"impl-Mul%3C%26%3CProjectivePoint+as+GroupElement%3E::ScalarType%3E-for-ProjectivePoint"],[1233,"impl-Mul%3CScalar%3E-for-ProjectivePoint"],[1234,"impl-Mul%3C%26%3CScalar+as+GroupElement%3E::ScalarType%3E-for-%26Scalar"],[1235,"impl-Mul%3C%3CScalar+as+GroupElement%3E::ScalarType%3E-for-%26Scalar"],[1236,"impl-Mul%3C%26%3CScalar+as+GroupElement%3E::ScalarType%3E-for-Scalar"],[1237,"impl-Mul-for-Scalar"],[1238,"impl-MulAssign%3C%3CProjectivePoint+as+GroupElement%3E::ScalarType%3E-for-ProjectivePoint"],[1239,"impl-MulAssign%3C%26%3CProjectivePoint+as+GroupElement%3E::ScalarType%3E-for-ProjectivePoint"],[1240,"impl-MulAssign%3C%3CScalar+as+GroupElement%3E::ScalarType%3E-for-Scalar"],[1241,"impl-MulAssign%3C%26%3CScalar+as+GroupElement%3E::ScalarType%3E-for-Scalar"],[1242,"impl-Neg-for-ProjectivePoint"],[1243,"impl-Neg-for-%26ProjectivePoint"],[1244,"impl-Neg-for-%26Scalar"],[1245,"impl-Neg-for-Scalar"],[1248,"impl-Sub-for-ProjectivePoint"],[1249,"impl-Sub%3CProjectivePoint%3E-for-%26ProjectivePoint"],[1250,"impl-Sub%3C%26ProjectivePoint%3E-for-%26ProjectivePoint"],[1251,"impl-Sub%3C%26ProjectivePoint%3E-for-ProjectivePoint"],[1252,"impl-Sub%3C%26Scalar%3E-for-Scalar"],[1253,"impl-Sub%3C%26Scalar%3E-for-%26Scalar"],[1254,"impl-Sub%3CScalar%3E-for-%26Scalar"],[1255,"impl-Sub-for-Scalar"],[1256,"impl-SubAssign%3C%26ProjectivePoint%3E-for-ProjectivePoint"],[1257,"impl-SubAssign-for-ProjectivePoint"],[1258,"impl-SubAssign-for-Scalar"],[1259,"impl-SubAssign%3C%26Scalar%3E-for-Scalar"],[1328,"impl-Debug-for-Digest%3CDIGEST_LEN%3E"],[1329,"impl-Display-for-Digest%3CDIGEST_LEN%3E"],[1579,"impl-Debug-for-Secp256k1PublicKey"],[1580,"impl-Display-for-Secp256k1PublicKey"],[1581,"impl-Debug-for-Secp256k1PrivateKey"],[1582,"impl-Display-for-Secp256k1PrivateKey"],[1583,"impl-Display-for-Secp256k1Signature"],[1584,"impl-Debug-for-Secp256k1Signature"],[1691,"impl-Display-for-Signature"],[1692,"impl-Debug-for-Signature"],[1693,"impl-Debug-for-Secp256k1RecoverableSignature"],[1694,"impl-Display-for-Secp256k1RecoverableSignature"],[1811,"impl-Debug-for-Secp256r1PublicKey"],[1812,"impl-Display-for-Secp256r1PublicKey"],[1813,"impl-Display-for-Secp256r1PrivateKey"],[1814,"impl-Debug-for-Secp256r1PrivateKey"],[1815,"impl-Display-for-Secp256r1Signature"],[1816,"impl-Debug-for-Secp256r1Signature"],[1906,"impl-Debug-for-Secp256r1RecoverableSignature"],[1907,"impl-Display-for-Secp256r1RecoverableSignature"],[1943,"impl-Display-for-BytesRepresentation%3CN%3E"],[1944,"impl-Debug-for-BytesRepresentation%3CN%3E"],[1946,"impl-From%3C%26G1Element%3E-for-BytesRepresentation%3C%24length%3E"],[1947,"impl-From%3C%26BLS12381PublicKey%3E-for-BytesRepresentation%3C%24length%3E"],[1948,"impl-From%3C%26Secp256k1Signature%3E-for-BytesRepresentation%3C%24length%3E"],[1949,"impl-From%3C%26Secp256r1PublicKey%3E-for-BytesRepresentation%3C%24length%3E"],[1950,"impl-From%3C%26Secp256k1PublicKey%3E-for-BytesRepresentation%3C%24length%3E"],[1951,"impl-From%3C%26BLS12381PublicKey%3E-for-BytesRepresentation%3C%24length%3E"],[1952,"impl-From%3C%26Ed25519PublicKey%3E-for-BytesRepresentation%3C%24length%3E"],[1953,"impl-From%3C%26BLS12381AggregateSignature%3E-for-BytesRepresentation%3C%24length%3E"],[1954,"impl-From%3C%26G2Element%3E-for-BytesRepresentation%3C%24length%3E"],[1955,"impl-From%3C%26Secp256r1Signature%3E-for-BytesRepresentation%3C%24length%3E"],[1956,"impl-From%3C%26Ed25519Signature%3E-for-BytesRepresentation%3C%24length%3E"],[1957,"impl-From%3C%26BLS12381AggregateSignature%3E-for-BytesRepresentation%3C%24length%3E"]],"c":"OjAAAAEAAAAAAAEAEAAAAIAGgQY=","e":"OzAAAAEAANAGpAAAAAAABwAAAAoAAgAQAAAAEgAEACoAAQAuABAAQAACAEQABQBLAAIATwACAFYAAQBcABgAfAAAAIAAAACDAGQA6wAAAO0AAADvAAkA/gA4ADgBAAA8AQAAPwFlAKcBAACqAQAArAEJALsBOAD8AQAA/gFjAGMCAABnAgEAawIIAHoCOAC3AhAAygIAAMwCAADOAggA2QIAANsCAADfAgkA8wIOAAQDEgAZAwAAJgMKADMDBQA/AwIARAMAAEYDAQBKAwAATAMAAE4DAQBTAwAAVQMBAFgDAQBbAwEAXgMjAIMDIACnAwAAqQMNALsDYAAdBAAAIgQAACQEAQAoBAAAKgQFADIEFQBKBA8AWwQCAF8EAQBkBAEAZwQBAGsEAABtBCMAkgQKAJ4EAACgBCQAxwQEAM4ELAAKBRYAIwUBACYFBwAvBQQANwUAADkFAAA7BQAAQQUAAEMFAABFBQIASQUCAE0FCQBYBQAAWgUHAGcFCgBzBQAAdQUBAHgFCACCBQ8AkwUAAJUFBgCeBRAAsAUAALIFAAC0BQAAtgUAALgFAAC6BQcAywULANkFAgDdBQAA5QUAAOcFTAA2BgAAOAYAADoGBwBGBgUATQYGAFYGFwBvBggAewYEAIIGDACQBgYAmAYIAKMGAACnBgIArQYAAK8GAACyBgcAuwYDAMAGAgDNBgAAzwYiAPMGJwAcBwAAHwcBACIHBwAuBwUANQcHAD4HFwBXBwgAYQcTAHYHAQB5BwcAggcEAIkHCgCVBwQAmwcLAKgHAQCsBwYAtAcKAMAHBADHBwYA0QcAANcHDADmBwUA7QcAAPAHAADyBwEA9wcCAP0HAQAMCAUAHQggAEEIAABDCAAASAgYAA=="}],\ +["fastcrypto",{"t":"CCCCCQCCCQCCCCCCQQCCCCIIIIIIIIIIIFFFIKKKFRRIKNNNNNNNNNNNNNNNNNMNNNMNNNNNNMNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNSSSSCCFIFFFIFSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFIFFFIFSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNSSSSFFFFIFIFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFKFNNNNNNNNNNNNNNNNNMNNNNHNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPGIPPPPPPPPPPPPNNNNNNNNNNNNNNNNNNNKKKKKKRRKKRCMMMMMMNMCMMNCCMSFISFISFSSFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKKMMMMCFNNNNNHNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFSFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNIFFKKFIKTKIIIIRRNNNNNNNNNNNNNNNNNNNNNMMNNONNNNNNNNNMNNNNNNNNNMNMNNNNNNNMNMNNNNNNNNNNNNNNNNNNMNMNNNNNNNNIIHHFNNNNNNNNNNNNNNNONHNNNNNONNFNNNNNNNNNNNNNNNNNNNNNNNNNNFKFFNNNNNNNNNNNNNNNMNMNMNMNMNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNIJSSSSFFFIFINNNNNNNNNNNNNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONOCONNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNJSFFNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNISSSSSSFFFIFINNNNNNNNNNNNNNNNNNNNNNOOONNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONOCONNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNSFNNNNNNONNNNNNNNNNNNNNNNNNONONNNNNNNNNTFFKNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNMNNNNNHNNNNHMNNNNNNNNNNFNNNNNNNNNNNNNNKKKRKKKKKTTTRRRRRRRRRRKKRRRRRRKRKKKKMMMNMMMMMMMNMMMNMMNMMMMNNHRRRRRRKKKKCMNMMMNFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNONNNNNNNNNNNNNNNNNN","n":["aes","bls12381","ed25519","encoding","error","generate_bytes_representation","groups","hash","hmac","impl_base64_display_fmt","jwt_utils","private_seed","rsa","secp256k1","secp256r1","serde_helpers","serialize_deserialize_with_to_from_byte_array","serialize_deserialize_with_to_from_bytes","signature_service","traits","utils","vrf","Aes128CbcAnsiX923","Aes128CbcIso10126","Aes128CbcPkcs7","Aes128Ctr","Aes128Gcm","Aes192Ctr","Aes256CbcAnsiX923","Aes256CbcIso10126","Aes256CbcPkcs7","Aes256Ctr","Aes256Gcm","AesCbc","AesCtr","AesGcm","AesKey","AuthenticatedCipher","Cipher","EncryptionKey","GenericByteArray","IVType","IVType","InitializationVector","Nonce","__clone_box","as_bits","as_bytes","as_ref","base32_len","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","check_base32","clone","clone_into","decode_base64","decrypt","decrypt","decrypt","decrypt","decrypt_authenticated","decrypt_authenticated","deserialize","drop","encode_base64","encode_hex","encode_hex_upper","encrypt","encrypt","encrypt","encrypt","encrypt_authenticated","encrypt_authenticated","fmt","fmt","from","from","from","from","from_bytes","generate","into","into","into","into","new","new","new","serialize","to_owned","to_string","try_as_bits","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","write_base32","zeroize","BLS_G1_LENGTH","BLS_G2_LENGTH","BLS_KEYPAIR_LENGTH","BLS_PRIVATE_KEY_LENGTH","min_pk","min_sig","BLS12381AggregateSignature","BLS12381AggregateSignatureAsBytes","BLS12381KeyPair","BLS12381PrivateKey","BLS12381PublicKey","BLS12381PublicKeyAsBytes","BLS12381Signature","DST_G2","__clone_box","__clone_box","__clone_box","add_aggregate","add_signature","aggregate","as_bits","as_bits","as_bits","as_bits","as_bits","as_ref","as_ref","as_ref","as_ref","as_ref","base32_len","base32_len","base32_len","base32_len","base32_len","batch_verify","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","bytes","bytes","bytes","bytes","check_base32","check_base32","check_base32","check_base32","check_base32","clone","clone","clone","clone_into","clone_into","clone_into","cmp","copy","decode_base64","decode_base64","decode_base64","decode_base64","decode_base64","default","default","deserialize","deserialize","deserialize","deserialize","deserialize","encode_base64","encode_base64","encode_base64","encode_base64","encode_base64","encode_hex","encode_hex","encode_hex","encode_hex","encode_hex","encode_hex_upper","encode_hex_upper","encode_hex_upper","encode_hex_upper","encode_hex_upper","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from_bytes","from_bytes","from_bytes","from_bytes","from_bytes","from_str","generate","hash","hash","insecure_default","into","into","into","into","into","partial_cmp","private","privkey","pubkey","public","serialize","serialize","serialize","serialize","serialize","sig","sig","sign","sign","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","try_as_bits","try_as_bits","try_as_bits","try_as_bits","try_as_bits","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","validate","verify","verify","verify_different_msg","vzip","vzip","vzip","vzip","vzip","write_base32","write_base32","write_base32","write_base32","write_base32","BLS12381AggregateSignature","BLS12381AggregateSignatureAsBytes","BLS12381KeyPair","BLS12381PrivateKey","BLS12381PublicKey","BLS12381PublicKeyAsBytes","BLS12381Signature","DST_G1","__clone_box","__clone_box","__clone_box","add_aggregate","add_signature","aggregate","as_bits","as_bits","as_bits","as_bits","as_bits","as_ref","as_ref","as_ref","as_ref","as_ref","base32_len","base32_len","base32_len","base32_len","base32_len","batch_verify","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","bytes","bytes","bytes","bytes","check_base32","check_base32","check_base32","check_base32","check_base32","clone","clone","clone","clone_into","clone_into","clone_into","cmp","copy","decode_base64","decode_base64","decode_base64","decode_base64","decode_base64","default","default","default","deserialize","deserialize","deserialize","deserialize","deserialize","encode_base64","encode_base64","encode_base64","encode_base64","encode_base64","encode_hex","encode_hex","encode_hex","encode_hex","encode_hex","encode_hex_upper","encode_hex_upper","encode_hex_upper","encode_hex_upper","encode_hex_upper","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from_bytes","from_bytes","from_bytes","from_bytes","from_bytes","from_str","generate","hash","hash","insecure_default","into","into","into","into","into","partial_cmp","private","privkey","pubkey","public","serialize","serialize","serialize","serialize","serialize","sig","sig","sign","sign","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","try_as_bits","try_as_bits","try_as_bits","try_as_bits","try_as_bits","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","validate","verify","verify","verify_different_msg","vzip","vzip","vzip","vzip","vzip","write_base32","write_base32","write_base32","write_base32","write_base32","ED25519_KEYPAIR_LENGTH","ED25519_PRIVATE_KEY_LENGTH","ED25519_PUBLIC_KEY_LENGTH","ED25519_SIGNATURE_LENGTH","Ed25519AggregateSignature","Ed25519KeyPair","Ed25519PrivateKey","Ed25519PublicKey","Ed25519PublicKeyAsBytes","Ed25519Signature","Ed25519SignatureAsBytes","SingleSignature","__clone_box","__clone_box","__clone_box","as_bits","as_bits","as_bits","as_bits","as_bits","as_ref","as_ref","as_ref","as_ref","as_ref","base32_len","base32_len","base32_len","base32_len","base32_len","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","bytes","bytes","check_base32","check_base32","check_base32","check_base32","check_base32","clone","clone","clone","clone_into","clone_into","clone_into","cmp","copy","decode_base64","decode_base64","decode_base64","decode_base64","decode_base64","default","default","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize_as","drop","encode_base64","encode_base64","encode_base64","encode_base64","encode_base64","encode_hex","encode_hex","encode_hex","encode_hex","encode_hex","encode_hex_upper","encode_hex_upper","encode_hex_upper","encode_hex_upper","encode_hex_upper","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from_bytes","from_bytes","from_bytes","from_bytes","from_bytes","from_str","generate","hash","insecure_default","into","into","into","into","into","into","partial_cmp","private","public","serialize","serialize","serialize","serialize","serialize","serialize_as","sig","sign","sigs","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","try_as_bits","try_as_bits","try_as_bits","try_as_bits","try_as_bits","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","verify","vzip","vzip","vzip","vzip","vzip","vzip","write_base32","write_base32","write_base32","write_base32","write_base32","Base58","Base64","Bech32","Encoding","Hex","__clone_box","__clone_box","__clone_box","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","decode","decode","decode","decode","decode","decode_bytes_hex","deserialize","deserialize","deserialize","deserialize_as","deserialize_as","deserialize_as","deserialize_as","deserialize_as","deserialize_as","encode","encode","encode","encode","encode","encode_with_format","encoded","encoded_with_format","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","from","from","from","from","from_bytes","from_bytes","into","into","into","into","json_schema","json_schema","json_schema","schema_name","schema_name","schema_name","serialize","serialize","serialize","serialize_as","serialize_as","serialize_as","to_owned","to_owned","to_owned","to_vec","to_vec","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","Err","FastCryptoError","FastCryptoResult","GeneralError","GeneralOpaqueError","IgnoredMessage","InputLengthWrong","InputTooLong","InputTooShort","InvalidInput","InvalidMessage","InvalidProof","InvalidSignature","NotEnoughInputs","Ok","__clone_box","borrow","borrow_mut","clone","clone_into","eq","equivalent","equivalent","fmt","fmt","from","from","into","to_owned","to_string","try_from","try_into","type_id","vzip","Doubling","FiatShamirChallenge","FromTrustedByteArray","GroupElement","HashToGroupElement","MultiScalarMul","Other","Output","Pairing","Scalar","ScalarType","bls12381","double","fiat_shamir_reduction_to_group_element","from_trusted_byte_array","generator","hash_to_group_element","inverse","multi_pairing","multi_scalar_mul","multiplier","pairing","rand","repeated_doubling","ristretto255","secp256r1","zero","FP_BYTE_LENGTH","G1Element","G1ElementAsBytes","G1_ELEMENT_BYTE_LENGTH","G2Element","G2ElementAsBytes","G2_ELEMENT_BYTE_LENGTH","GTElement","GT_ELEMENT_BYTE_LENGTH","SCALAR_LENGTH","Scalar","__clone_box","__clone_box","__clone_box","__clone_box","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add","add_assign","add_assign","add_assign","add_assign","add_assign","add_assign","add_assign","add_assign","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","buffer_to_scalar_mod_r","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","deserialize","deserialize","deserialize","deserialize","div","div","div","div","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fiat_shamir_reduction_to_group_element","fmt","fmt","fmt","fmt","from","from","from","from","from","from_byte_array","from_byte_array","from_byte_array","from_byte_array","from_trusted_byte_array","from_trusted_byte_array","from_trusted_byte_array","from_trusted_byte_array","generator","generator","generator","generator","hash_to_group_element","hash_to_group_element","into","into","into","into","inverse","mul","mul","mul","mul","mul","mul","mul","mul","mul","mul","mul","mul","mul","mul","mul","mul","mul_assign","mul_assign","mul_assign","mul_assign","mul_assign","mul_assign","mul_assign","mul_assign","multi_pairing","multi_scalar_mul","multi_scalar_mul","neg","neg","neg","neg","neg","neg","neg","neg","pairing","rand","serialize","serialize","serialize","serialize","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","sub_assign","to_byte_array","to_byte_array","to_byte_array","to_byte_array","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","zero","zero","zero","zero","zeroize","ScalarMultiplier","ToLittleEndianBytes","mul","new","to_le_bytes","two_scalar_mul","windowed","WindowedScalarMultiplier","borrow","borrow_mut","from","into","mul","multi_scalar_mul","new","try_from","try_into","two_scalar_mul","type_id","vzip","RistrettoPoint","RistrettoScalar","__clone_box","__clone_box","add","add","add","add","add","add","add","add","add_assign","add_assign","add_assign","add_assign","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","compress","decompress","default","deserialize","deserialize","div","div","div","double","eq","eq","equivalent","equivalent","equivalent","equivalent","fiat_shamir_reduction_to_group_element","fmt","fmt","from","from","from","from","from","from_byte_array","from_byte_array","from_bytes_mod_order","from_bytes_mod_order_wide","from_uniform_bytes","generator","generator","group_order","hash_to_group_element","hash_to_group_element","into","into","inverse","map_to_point","mul","mul","mul","mul","mul","mul","mul","mul","mul_assign","mul_assign","mul_assign","mul_assign","multi_scalar_mul","neg","neg","neg","neg","rand","serialize","serialize","sub","sub","sub","sub","sub","sub","sub","sub","sub_assign","sub_assign","sub_assign","sub_assign","to_byte_array","to_byte_array","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","zero","zero","zeroize","ProjectivePoint","SCALAR_SIZE_IN_BYTES","Scalar","__clone_box","__clone_box","add","add","add","add","add","add","add","add","add_assign","add_assign","add_assign","add_assign","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","default","default","deserialize","div","div","double","eq","eq","equivalent","equivalent","equivalent","equivalent","fmt","fmt","from","from","from","from","from","from_byte_array","generator","generator","into","into","inverse","mul","mul","mul","mul","mul","mul","mul","mul","mul_assign","mul_assign","mul_assign","mul_assign","neg","neg","neg","neg","rand","serialize","sub","sub","sub","sub","sub","sub","sub","sub","sub_assign","sub_assign","sub_assign","sub_assign","to_byte_array","to_le_bytes","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","zero","zero","Blake2b256","Digest","EllipticCurveMultisetHash","Hash","HashFunction","HashFunctionWrapper","Keccak256","MultisetHash","OUTPUT_SIZE","ReverseWrapper","Sha256","Sha3_256","Sha3_512","Sha512","TypedDigest","Variant","__clone_box","__clone_box","as_bits","as_ref","base32_len","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","check_base32","clone","clone","clone_into","clone_into","cmp","default","default","deserialize","deserialize","digest","digest","digest","digest","digest","digest_iterator","encode_hex","encode_hex_upper","eq","eq","equivalent","equivalent","equivalent","equivalent","finalize","finalize","flush","fmt","fmt","fmt","from","from","from","hash","insert","insert","insert_all","insert_all","into","into","into","new","new","partial_cmp","remove","remove","remove_all","remove_all","serialize","serialize","size","to_owned","to_owned","to_string","to_vec","try_as_bits","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","union","union","update","update","vzip","vzip","vzip","write","write","write","write_base32","HkdfIkm","HmacKey","hkdf_sha3_256","hmac_sha3_256","JWTHeader","__clone_box","borrow","borrow_mut","clone","clone_into","default","deserialize","eq","equivalent","equivalent","fmt","from","hash","into","json_schema","kid","new","parse_and_validate_jwt","schema_name","serialize","to_owned","try_from","try_into","typ","type_id","vzip","PrivateSeed","as_bits","as_bytes","as_ref","base32_len","borrow","borrow_mut","check_base32","decode_base64","drop","encode_base64","encode_hex","encode_hex_upper","eq","equivalent","equivalent","fmt","from","from_bytes","into","try_as_bits","try_from","try_into","type_id","vzip","write_base32","zeroize","Base64UrlUnpadded","Encoding","RSAPublicKey","RSASignature","__clone_box","__clone_box","__clone_box","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","decode","decode","decode_in_place","decode_in_place","decode_vec","decode_vec","encode","encode","encode_string","encode_string","encoded_len","encoded_len","eq","eq","equivalent","equivalent","equivalent","equivalent","fmt","from","from","from","from_bytes","from_der","from_raw_components","into","into","into","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","verify","verify_prehash","vzip","vzip","vzip","DefaultHash","SECP256K1","SECP256K1_KEYPAIR_LENGTH","SECP256K1_PRIVATE_KEY_LENGTH","SECP256K1_PUBLIC_KEY_LENGTH","SECP256K1_SIGNATURE_LENGTH","Secp256k1KeyPair","Secp256k1PrivateKey","Secp256k1PublicKey","Secp256k1PublicKeyAsBytes","Secp256k1Signature","Secp256k1SignatureAsBytes","__clone_box","__clone_box","as_bits","as_bits","as_bits","as_bits","as_ref","as_ref","as_ref","as_ref","base32_len","base32_len","base32_len","base32_len","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","bytes","bytes","bytes","check_base32","check_base32","check_base32","check_base32","clone","clone","clone_into","clone_into","cmp","copy","decode_base64","decode_base64","decode_base64","decode_base64","deserialize","deserialize","deserialize","deserialize","drop","encode_base64","encode_base64","encode_base64","encode_base64","encode_hex","encode_hex","encode_hex","encode_hex","encode_hex_upper","encode_hex_upper","encode_hex_upper","encode_hex_upper","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from_bytes","from_bytes","from_bytes","from_bytes","from_str","generate","hash","hash","into","into","into","into","partial_cmp","private","privkey","pubkey","public","public","recoverable","secret","serialize","serialize","serialize","serialize","sig","sign","sign_recoverable_with_hash","sign_with_hash","to_owned","to_owned","to_string","to_string","to_string","try_as_bits","try_as_bits","try_as_bits","try_as_bits","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","verify","verify_with_hash","vzip","vzip","vzip","vzip","write_base32","write_base32","write_base32","write_base32","SECP256K1","SECP256K1_RECOVERABLE_SIGNATURE_SIZE","Secp256k1RecoverableSignature","Secp256k1Sig","__clone_box","__clone_box","as_bits","as_c_ptr","as_mut_c_ptr","as_mut_ptr","as_ptr","as_ref","base32_len","borrow","borrow","borrow_mut","borrow_mut","bytes","check_base32","clone","clone","clone_into","clone_into","cmp","cmp_fast_unstable","decode_base64","deserialize","encode_base64","encode_hex","encode_hex_upper","eq","eq","eq_fast_unstable","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","from","from","from","from_bytes","from_compact","from_der","from_der_lax","from_str","hash","hash","into","into","normalize_s","partial_cmp","recover_with_hash","serialize","serialize_compact","serialize_der","sig","to_owned","to_owned","to_string","to_string","try_as_bits","try_from","try_from","try_from_nonrecoverable","try_into","try_into","type_id","type_id","verify","vzip","vzip","write_base32","DefaultHash","PRECOMPUTED_POINTS","SECP256R1_KEYPAIR_LENGTH","SECP256R1_PRIVATE_KEY_LENGTH","SECP256R1_PUBLIC_KEY_LENGTH","SECP256R1_SIGNATURE_LENTH","SLIDING_WINDOW_WIDTH","Secp256r1KeyPair","Secp256r1PrivateKey","Secp256r1PublicKey","Secp256r1PublicKeyAsBytes","Secp256r1Signature","Secp256r1SignatureAsBytes","__clone_box","__clone_box","as_bits","as_bits","as_bits","as_bits","as_ref","as_ref","as_ref","as_ref","base32_len","base32_len","base32_len","base32_len","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","bytes","bytes","bytes","check_base32","check_base32","check_base32","check_base32","clone","clone","clone_into","clone_into","cmp","conversion","copy","decode_base64","decode_base64","decode_base64","decode_base64","deserialize","deserialize","deserialize","deserialize","encode_base64","encode_base64","encode_base64","encode_base64","encode_hex","encode_hex","encode_hex","encode_hex","encode_hex_upper","encode_hex_upper","encode_hex_upper","encode_hex_upper","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from_bytes","from_bytes","from_bytes","from_bytes","from_str","generate","hash","hash","into","into","into","into","partial_cmp","private","privkey","pubkey","public","public","recoverable","secret","serialize","serialize","serialize","serialize","sig","sign","sign_recoverable_with_hash","sign_with_hash","to_owned","to_owned","to_string","to_string","to_string","try_as_bits","try_as_bits","try_as_bits","try_as_bits","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","verify","verify_with_hash","vzip","vzip","vzip","vzip","write_base32","write_base32","write_base32","write_base32","SECP256R1_RECOVERABLE_SIGNATURE_LENGTH","Secp256r1RecoverableSignature","__clone_box","as_bits","as_ref","base32_len","borrow","borrow_mut","bytes","check_base32","clone","clone_into","decode_base64","deserialize","encode_base64","encode_hex","encode_hex_upper","eq","equivalent","equivalent","fmt","fmt","from","from_bytes","hash","into","recover_with_hash","recovery_id","serialize","sig","to_owned","to_string","try_as_bits","try_from","try_from_nonrecoverable","try_into","type_id","vzip","write_base32","BYTE_LENGTH","BytesRepresentation","SerializationHelper","ToFromByteArray","__clone_box","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","cmp","deserialize","deserialize","deserialize_vector","eq","equivalent","equivalent","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_byte_array","hash","into","into","is_referenceable","json_schema","keypair_decode_base64","partial_cmp","schema_name","serialize","serialize","serialize_vector","to_byte_array","to_owned","to_string","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","SignatureService","__clone_box","borrow","borrow_mut","clone","clone_into","from","into","new","request_signature","to_owned","try_from","try_into","type_id","vzip","AggregateAuthenticator","AllowedRng","Authenticator","DefaultHash","EncodeDecodeBase64","FromUniformBytes","Generate","InsecureDefault","KeyPair","LENGTH","LENGTH","LENGTH","PrivKey","PrivKey","PrivKey","PrivKey","PubKey","PubKey","PubKey","PubKey","PubKey","PubKey","RecoverableSignature","RecoverableSigner","Sig","Sig","Sig","Sig","Sig","Sig","Signer","Signer","SigningKey","ToFromBytes","VerifyRecoverable","VerifyingKey","add_aggregate","add_signature","aggregate","as_bytes","batch_verify","copy","decode_base64","encode_base64","from_bytes","generate","generate","generate","insecure_default","private","public","recover","recover_with_hash","sign","sign_recoverable","sign_recoverable_with_hash","verify","verify","verify_different_msg","verify_recoverable","verify_recoverable_with_hash","log2_byte","PrivateKey","PrivateKey","Proof","PublicKey","PublicKey","PublicKey","VRFKeyPair","VRFPrivateKey","VRFProof","VRFPublicKey","ecvrf","generate","output","prove","to_hash","verify","verify_output","ECVRFKeyPair","ECVRFPrivateKey","ECVRFProof","ECVRFPublicKey","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","deserialize","deserialize","deserialize","deserialize","drop","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","from","from","from","from","from","generate","into","into","into","into","pk","prove","serialize","serialize","serialize","serialize","sk","to_hash","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","verify","vzip","vzip","vzip","vzip"],"q":[[0,"fastcrypto"],[22,"fastcrypto::aes"],[116,"fastcrypto::bls12381"],[122,"fastcrypto::bls12381::min_pk"],[310,"fastcrypto::bls12381::min_sig"],[499,"fastcrypto::ed25519"],[689,"fastcrypto::encoding"],[790,"fastcrypto::error"],[824,"fastcrypto::groups"],[851,"fastcrypto::groups::bls12381"],[1052,"fastcrypto::groups::multiplier"],[1059,"fastcrypto::groups::multiplier::windowed"],[1072,"fastcrypto::groups::ristretto255"],[1181,"fastcrypto::groups::secp256r1"],[1275,"fastcrypto::hash"],[1378,"fastcrypto::hmac"],[1382,"fastcrypto::jwt_utils"],[1409,"fastcrypto::private_seed"],[1436,"fastcrypto::rsa"],[1500,"fastcrypto::secp256k1"],[1655,"fastcrypto::secp256k1::recoverable"],[1731,"fastcrypto::secp256r1"],[1887,"fastcrypto::secp256r1::recoverable"],[1926,"fastcrypto::serde_helpers"],[1983,"fastcrypto::signature_service"],[1998,"fastcrypto::traits"],[2059,"fastcrypto::utils"],[2060,"fastcrypto::vrf"],[2077,"fastcrypto::vrf::ecvrf"],[2145,"dyn_clone::sealed"],[2146,"bitvec::slice"],[2147,"bitvec::order"],[2148,"generic_array"],[2149,"core::fmt"],[2150,"bech32"],[2151,"alloc::vec"],[2152,"core::result"],[2153,"core::clone"],[2154,"crypto_common"],[2155,"cipher::block"],[2156,"typenum::generated::consts"],[2157,"block_padding"],[2158,"serde::de"],[2159,"alloc::string"],[2160,"core::iter::traits::collect"],[2161,"serde::ser"],[2162,"bitvec::ptr::span"],[2163,"core::any"],[2164,"core::borrow"],[2165,"core::iter::traits::iterator"],[2166,"core::cmp"],[2167,"core::hash"],[2168,"core::option"],[2169,"core::marker"],[2170,"ed25519_consensus::signature"],[2171,"ed25519_consensus::signing_key"],[2172,"core::convert"],[2173,"schemars::gen"],[2174,"schemars::schema"],[2175,"signature::error"],[2176,"core::ops::arith"],[2177,"std::collections::hash::map"],[2178,"curve25519_dalek_ng::ristretto"],[2179,"curve25519_dalek_ng::scalar"],[2180,"ark_secp256r1::curves"],[2181,"ark_secp256r1::fields::fr"],[2182,"core::default"],[2183,"digest::digest"],[2184,"std::io::error"],[2185,"der::error"],[2186,"base64ct::alphabet::url"],[2187,"base64ct::errors"],[2188,"secp256k1_sys"],[2189,"secp256k1"],[2190,"secp256k1::ecdsa::serialized_signature"],[2191,"secp256k1::key"],[2192,"core::iter::traits::exact_size"],[2193,"base64ct::encoding"]],"i":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,35,0,0,6,6,6,6,6,22,32,34,6,22,32,34,6,6,6,6,6,20,22,32,34,35,34,6,6,6,6,6,20,22,32,34,35,34,6,6,22,32,34,6,6,6,22,32,34,6,22,32,34,6,6,6,6,22,32,34,6,22,32,34,6,22,32,34,6,22,32,34,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,52,55,48,48,48,48,52,53,54,55,48,52,53,54,55,48,52,53,54,55,48,48,52,53,54,55,48,52,53,54,55,48,52,53,55,48,52,53,54,55,48,52,55,48,52,55,48,52,54,52,53,54,55,48,55,48,52,53,54,55,48,52,53,54,55,48,52,53,54,55,48,52,53,54,55,48,52,53,54,55,48,52,52,53,53,54,54,55,55,48,48,52,52,53,53,54,55,55,48,48,52,52,53,54,54,55,48,48,52,53,54,55,48,54,54,52,55,52,52,53,54,55,48,52,54,53,52,54,52,53,54,55,48,55,48,53,54,52,55,48,52,53,55,48,52,53,54,55,48,52,52,53,54,55,48,48,52,53,54,55,48,52,53,54,55,48,52,52,48,48,52,53,54,55,48,52,53,54,55,48,0,0,0,0,0,0,0,0,64,67,63,63,63,63,64,65,66,67,63,64,65,66,67,63,64,65,66,67,63,63,64,65,66,67,63,64,65,66,67,63,64,65,67,63,64,65,66,67,63,64,67,63,64,67,63,64,66,64,65,66,67,63,67,63,68,64,65,66,67,63,64,65,66,67,63,64,65,66,67,63,64,65,66,67,63,64,65,66,67,63,64,64,65,65,66,66,67,67,63,63,64,64,65,65,66,67,67,63,63,64,64,65,66,66,67,63,63,64,65,66,67,63,66,66,64,67,64,64,65,66,67,63,64,66,65,64,66,64,65,66,67,63,67,63,65,66,64,67,63,64,65,67,63,64,65,66,67,63,64,64,65,66,67,63,63,64,65,66,67,63,64,65,66,67,63,64,64,63,63,64,65,66,67,63,64,65,66,67,63,0,0,0,0,0,0,0,0,0,0,0,0,69,73,74,69,71,72,73,74,69,71,72,73,74,69,71,72,73,74,196,69,71,72,73,74,196,69,71,72,73,74,73,74,69,71,72,73,74,69,73,74,69,73,74,69,72,69,71,72,73,74,73,74,69,71,72,73,74,196,71,69,71,72,73,74,69,71,72,73,74,69,71,72,73,74,69,71,72,73,74,69,69,71,71,72,72,73,73,74,74,69,69,71,71,72,73,73,74,74,196,69,69,71,72,72,72,73,74,69,71,72,73,74,72,72,69,69,196,69,71,72,73,74,69,72,72,69,71,72,73,74,196,73,72,74,69,73,74,69,71,73,74,69,71,72,73,74,196,69,69,71,72,73,73,74,196,69,71,72,73,74,196,69,71,72,73,74,69,196,69,71,72,73,74,69,71,72,73,74,0,0,0,0,0,77,78,79,197,77,78,79,197,77,78,79,77,78,79,77,78,79,198,197,77,78,79,0,77,78,79,77,77,78,78,79,79,198,197,77,78,79,78,77,78,77,78,79,77,77,79,79,77,78,79,197,77,78,79,77,78,197,77,78,79,77,78,79,77,78,79,77,78,79,77,78,79,77,78,79,77,78,197,77,77,78,78,79,79,197,77,78,79,197,77,78,79,197,77,78,79,80,0,0,18,18,18,18,18,18,18,18,18,18,18,80,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,0,0,0,0,0,0,96,96,0,0,91,0,87,88,89,91,93,92,96,97,0,96,92,87,0,0,91,0,0,0,0,0,0,0,0,0,0,0,99,100,101,102,99,99,99,99,100,100,100,100,101,101,101,101,102,102,102,102,99,99,100,100,101,101,102,102,99,100,101,102,99,100,101,102,0,99,100,101,102,99,100,101,102,99,100,101,102,99,100,101,102,99,100,101,102,99,99,100,100,101,101,102,102,102,99,100,101,102,99,100,101,102,102,99,100,101,102,99,100,101,102,99,100,101,102,99,100,99,100,101,102,102,99,99,99,99,100,100,100,100,101,101,101,101,102,102,102,102,99,99,100,100,101,101,102,102,99,99,100,99,99,100,100,101,101,102,102,99,102,99,100,101,102,99,99,99,99,100,100,100,100,101,101,101,101,102,102,102,102,99,99,100,100,101,101,102,102,99,100,101,102,99,100,101,102,99,99,100,100,101,102,99,100,101,102,99,100,101,102,99,100,101,102,99,100,101,102,102,0,0,104,104,105,104,0,0,106,106,106,106,106,0,106,106,106,106,106,106,0,0,109,110,109,109,109,109,110,110,110,110,109,109,110,110,109,110,109,110,109,110,109,110,109,109,109,109,110,109,110,110,109,109,110,109,109,110,110,110,109,110,109,109,110,110,110,109,110,110,110,109,109,110,110,109,110,109,110,110,109,109,109,109,109,110,110,110,110,109,109,110,110,109,109,109,110,110,110,109,110,109,109,109,109,110,110,110,110,109,109,110,110,109,110,109,110,109,109,110,109,110,109,110,109,110,109,110,110,0,0,0,113,114,113,113,113,113,114,114,114,114,113,113,114,114,113,114,113,114,113,114,113,114,113,114,114,113,114,113,113,114,113,113,114,114,113,114,113,113,114,114,114,114,113,114,113,114,114,113,113,113,113,114,114,114,114,113,113,114,114,113,113,114,114,114,114,113,113,113,113,114,114,114,114,113,113,114,114,114,114,113,114,113,114,113,114,113,114,113,114,113,114,0,0,0,0,0,0,0,0,128,0,0,0,0,0,122,199,117,118,117,117,117,117,119,118,117,119,118,117,117,118,117,118,117,119,118,117,118,122,127,128,118,117,128,117,117,117,118,117,117,118,118,128,119,119,117,117,118,117,119,118,117,127,118,127,118,117,119,118,128,117,117,127,118,127,118,117,118,117,117,118,117,117,117,117,119,118,117,119,118,117,119,118,127,118,128,119,117,119,118,119,119,119,117,0,0,0,0,0,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,0,135,135,135,135,135,135,135,135,0,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,0,0,0,0,138,139,140,138,139,140,138,139,140,138,139,140,138,139,140,200,138,200,138,200,138,200,138,200,138,200,138,138,140,138,138,140,140,138,138,139,140,140,139,139,138,139,140,138,139,140,138,139,140,138,139,140,138,139,140,139,139,138,139,140,0,0,0,0,0,0,0,0,0,0,0,0,144,146,144,145,146,147,144,145,146,147,144,145,146,147,144,145,146,147,144,145,146,147,144,145,146,144,145,146,147,144,146,144,146,144,147,144,145,146,147,144,145,146,147,145,144,145,146,147,144,145,146,147,144,145,146,147,144,145,146,147,144,144,145,145,146,146,147,147,144,144,145,145,146,146,147,144,144,145,146,146,147,147,144,145,146,147,147,147,144,146,144,145,146,147,144,147,145,144,147,147,0,147,144,145,146,147,146,147,147,147,144,146,144,145,146,144,145,146,147,144,144,145,146,146,147,144,145,146,147,144,145,146,147,144,144,144,145,146,147,144,145,146,147,0,0,0,0,149,148,148,149,149,149,149,148,148,149,148,149,148,148,148,149,148,149,148,149,149,148,148,148,148,148,149,148,149,149,149,148,148,149,149,148,148,149,149,148,148,149,149,149,149,149,148,149,148,149,149,148,148,149,149,148,149,148,149,148,148,149,148,148,149,148,149,148,149,149,148,148,0,0,0,0,0,0,0,0,0,0,0,0,0,155,157,155,156,157,158,155,156,157,158,155,156,157,158,155,156,157,158,155,156,157,158,155,156,157,155,156,157,158,155,157,155,157,155,0,158,155,156,157,158,155,156,157,158,155,156,157,158,155,156,157,158,155,156,157,158,155,156,157,158,155,155,156,156,157,157,158,158,155,155,156,156,157,157,158,155,155,156,157,157,158,158,155,156,157,158,158,158,155,157,155,156,157,158,155,158,156,155,158,158,0,158,155,156,157,158,157,158,158,158,155,157,155,156,157,155,156,157,158,155,155,156,157,157,158,155,156,157,158,155,156,157,158,155,155,155,156,157,158,155,156,157,158,0,0,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,162,0,0,0,62,160,62,160,62,62,62,62,160,62,0,62,62,62,62,62,160,62,62,62,62,62,62,62,62,62,62,62,62,62,162,62,160,62,62,62,0,62,62,160,62,0,162,62,62,160,62,160,62,160,62,160,62,0,164,164,164,164,164,164,164,164,164,164,164,164,164,164,0,0,0,182,0,0,0,0,0,172,173,165,172,165,163,171,173,165,163,183,182,171,0,0,172,173,163,183,184,171,0,182,0,0,0,0,171,171,171,174,171,163,176,176,174,163,177,178,179,163,163,182,182,166,183,183,172,171,171,184,184,0,190,188,188,191,188,189,0,0,0,0,0,188,188,188,189,189,189,0,0,0,0,192,193,194,195,192,193,194,195,192,193,194,195,193,192,193,194,195,192,192,193,193,194,194,195,195,192,193,194,195,192,193,194,194,195,194,192,193,194,195,194,194,192,193,194,195,194,195,192,193,194,195,192,193,194,195,192,193,194,195,195,192,193,194,195],"f":"`````````````````````````````````````````````{{{b{c}}d}f{}}{{{b{c}}}{{b{{h{eg}}}}}{}{}j}{{{b{{l{c}}}}}{{b{{A`{n}}}}}{{Ab{n}}Ad}}{{{b{{l{c}}}}}{{b{{A`{n}}}}}{{Ab{n}}}}{{{b{c}}}Af{}}{{{b{c}}}{{b{e}}}{}{}}000{{{b{Ahc}}}{{b{Ahe}}}{}{}}000{c{{An{{Al{Aj}}}}}{}}{{{b{{l{c}}}}}{{l{c}}}{B`{Ab{n}}}}{{{b{c}}{b{Ahe}}}f{}{}}{{{b{Bb}}}{{An{cBd}}}{}}{{{b{{Bh{}{{Bf{c}}}}}}{b{c}}{b{{A`{n}}}}}{{An{{Al{n}}Bd}}}Bj}{{{b{{Bl{ce}}}}{b{g}}{b{{A`{n}}}}}{{An{{Al{n}}Bd}}}{{Ab{n}}}{{C`{}{{Bn{c}}}}CbCd{Cj{}{{Cf{Ch}}}}ClCn}{}}{{{b{{D`{ceg}}}}{b{i}}{b{{A`{n}}}}}{{An{{Al{n}}Bd}}}{{Ab{n}}}{{C`{}{{Bn{c}}}}CbCd{Cj{}{{Cf{Ch}}}}ClCn}{{Db{Ch}}}{}}{{{b{{Dd{ceg}}}}{b{i}}{b{{A`{n}}}}}{{An{{Al{n}}Bd}}}{{Ab{n}}}{{C`{}{{Bn{c}}}}CbCd{Cj{}{{Cf{Ch}}}}Cl}{{Ab{n}}Ad}{}}{{{b{{Df{}{{Bf{c}}}}}}{b{c}}{b{{A`{n}}}}{b{{A`{n}}}}}{{An{{Al{n}}Bd}}}Bj}{{{b{{Dd{ceg}}}}{b{i}}{b{{A`{n}}}}{b{{A`{n}}}}}{{An{{Al{n}}Bd}}}{{Ab{n}}}{{C`{}{{Bn{c}}}}CbCd{Cj{}{{Cf{Ch}}}}Cl}{{Ab{n}}Ad}{}}{c{{An{{l{e}}}}}Dh{{Ab{n}}}}{{{b{Ah{l{c}}}}}f{{Ab{n}}}}{{{b{c}}}Dj{}}{{{b{c}}}e{}{{Dn{Dl}}}}0{{{b{{Bh{}{{Bf{c}}}}}}{b{c}}{b{{A`{n}}}}}{{Al{n}}}Bj}{{{b{{Bl{ce}}}}{b{g}}{b{{A`{n}}}}}{{Al{n}}}{{Ab{n}}}{{C`{}{{Bn{c}}}}CbCd{Cj{}{{Cf{Ch}}}}ClCn}{}}{{{b{{D`{ceg}}}}{b{i}}{b{{A`{n}}}}}{{Al{n}}}{{Ab{n}}}{{C`{}{{Bn{c}}}}CbCd{Cj{}{{Cf{Ch}}}}ClCn}{{Db{Ch}}}{}}{{{b{{Dd{ceg}}}}{b{i}}{b{{A`{n}}}}}{{Al{n}}}{{Ab{n}}}{{C`{}{{Bn{c}}}}CbCd{Cj{}{{Cf{Ch}}}}Cl}{{Ab{n}}Ad}{}}{{{b{{Df{}{{Bf{c}}}}}}{b{c}}{b{{A`{n}}}}{b{{A`{n}}}}}{{Al{n}}}Bj}{{{b{{Dd{ceg}}}}{b{i}}{b{{A`{n}}}}{b{{A`{n}}}}}{{Al{n}}}{{Ab{n}}}{{C`{}{{Bn{c}}}}CbCd{Cj{}{{Cf{Ch}}}}Cl}{{Ab{n}}Ad}{}}{{{b{{l{c}}}}{b{AhE`}}}Eb{{Ab{n}}}}0{cc{}}000{{{b{{A`{n}}}}}{{An{{l{c}}Bd}}}{{Ab{n}}Ad}}{{{b{Ahc}}}{{Ed{e}}}Ef{{Ab{n}}Ad}}{ce{}{}}000{{{Ed{c}}}{{Bl{ce}}}{{Ab{n}}}{}}{{{Ed{c}}}{{D`{ceg}}}{{Ab{n}}}{}{}}{{{Ed{c}}}{{Dd{ceg}}}{{Ab{n}}}{}{}}{{{b{{l{c}}}}e}An{{Ab{n}}}Eh}{{{b{c}}}e{}{}}{{{b{c}}}Dj{}}{{{b{c}}}{{An{{b{{h{eg}}}}{Ej{e}}}}}{}{}j}{c{{An{e}}}{}{}}0000000{{{b{c}}}El{}}0009999{{{b{c}}{b{Ahe}}}{{An{f}}}{}En}{{{b{Ah{l{c}}}}}f{{Ab{n}}}}``````````````{{{b{c}}d}f{}}00{{{b{AhF`}}F`}{{An{fBd}}}}{{{b{AhF`}}c}{{An{fBd}}}{}}{g{{An{F`Bd}}}{}{{Fb{c}}}{{Ff{}{{Fd{{b{e}}}}}}}}{{{b{c}}}{{b{{h{eg}}}}}{}{}j}0000{{{b{Fh}}}{{b{{A`{n}}}}}}{{{b{Fj}}}{{b{{A`{n}}}}}}{{{b{Fl}}}{{b{{A`{n}}}}}}{{{b{Fn}}}{{b{{A`{n}}}}}}{{{b{F`}}}{{b{{A`{n}}}}}}{{{b{c}}}Af{}}0000{{{b{{A`{{b{F`}}}}}}{Al{e}}{b{{A`{{b{{A`{n}}}}}}}}}{{An{fBd}}}{}{{G`{}{{Fd{{b{c}}}}}}}}{{{b{c}}}{{b{e}}}{}{}}0000{{{b{Ahc}}}{{b{Ahe}}}{}{}}0000````{c{{An{{Al{Aj}}}}}{}}0000{{{b{Fh}}}Fh}{{{b{Fn}}}Fn}{{{b{F`}}}F`}{{{b{c}}{b{Ahe}}}f{}{}}00{{{b{Fh}}{b{Fh}}}Gb}{{{b{Fl}}}Fl}{{{b{Bb}}}{{An{cBd}}}{}}0000{{}Fn}{{}F`}{c{{An{Fh}}}Dh}{c{{An{Fj}}}Dh}{c{{An{Fl}}}Dh}{c{{An{Fn}}}Dh}{c{{An{F`}}}Dh}{{{b{c}}}Dj{}}0000{{{b{c}}}e{}{{Dn{Dl}}}}000000000{{{b{Fh}}{b{Fh}}}Gd}{{{b{Fj}}{b{Fj}}}Gd}{{{b{Fl}}{b{Fl}}}Gd}{{{b{Fn}}{b{Fn}}}Gd}{{{b{F`}}{b{F`}}}Gd}{{{b{c}}{b{e}}}Gd{}{}}000000000{{{b{Fh}}{b{AhE`}}}{{An{fGf}}}}0{{{b{Fj}}{b{AhE`}}}Eb}0{{{b{Fl}}{b{AhE`}}}Eb}{{{b{Fn}}{b{AhE`}}}{{An{fGf}}}}{{{b{Fn}}{b{AhE`}}}Eb}{{{b{F`}}{b{AhE`}}}Eb}{{{b{F`}}{b{AhE`}}}{{An{fGf}}}}{{{b{Fj}}}Fh}{cc{}}0{FjFl}111{FnF`}{{{b{{A`{n}}}}}{{An{FhBd}}}}{{{b{{A`{n}}}}}{{An{FjBd}}}}{{{b{{A`{n}}}}}{{An{FlBd}}}}{{{b{{A`{n}}}}}{{An{FnBd}}}}{{{b{{A`{n}}}}}{{An{F`Bd}}}}{{{b{Bb}}}{{An{Flc}}}{}}{{{b{Ahc}}}FlEf}{{{b{Fh}}{b{Ahc}}}fGh}{{{b{Fn}}{b{Ahc}}}fGh}{{}Fh}{ce{}{}}0000{{{b{Fh}}{b{Fh}}}{{Gj{Gb}}}}{Flc{}}``{{{b{Fl}}}{{b{c}}}{}}{{{b{Fh}}c}AnEh}{{{b{Fj}}c}AnEh}{{{b{Fl}}c}AnEh}{{{b{Fn}}c}AnEh}{{{b{F`}}c}AnEh}``{{{b{Fj}}{b{{A`{n}}}}}Fn}{{{b{Fl}}{b{{A`{n}}}}}Fn}{{{b{c}}}e{}{}}00{{{b{c}}}Dj{}}000{{{b{c}}}{{An{{b{{h{eg}}}}{Ej{e}}}}}{}{}j}0000{{{b{Gl}}}{{An{Fhc}}}{}}{c{{An{e}}}{}{}}000{{{b{Gl}}}{{An{F`c}}}{}}111111{{{b{c}}}El{}}0000{{{b{Fh}}}{{An{fBd}}}}{{{b{Fh}}{b{{A`{n}}}}{b{Fn}}}{{An{fBd}}}}{{{b{F`}}{b{A`}}{b{{A`{n}}}}}{{An{fBd}}}}{{{b{F`}}{b{A`}}{b{{A`{{b{{A`{n}}}}}}}}}{{An{fBd}}}}{ce{}{}}0000{{{b{c}}{b{Ahe}}}{{An{f}}}{}En}0000````````{{{b{c}}d}f{}}00{{{b{AhGn}}Gn}{{An{fBd}}}}{{{b{AhGn}}c}{{An{fBd}}}{}}{g{{An{GnBd}}}{}{{Fb{c}}}{{Ff{}{{Fd{{b{e}}}}}}}}{{{b{c}}}{{b{{h{eg}}}}}{}{}j}0000{{{b{H`}}}{{b{{A`{n}}}}}}{{{b{Hb}}}{{b{{A`{n}}}}}}{{{b{Hd}}}{{b{{A`{n}}}}}}{{{b{Hf}}}{{b{{A`{n}}}}}}{{{b{Gn}}}{{b{{A`{n}}}}}}{{{b{c}}}Af{}}0000{{{b{{A`{{b{Gn}}}}}}{Al{e}}{b{{A`{{b{{A`{n}}}}}}}}}{{An{fBd}}}{}{{G`{}{{Fd{{b{c}}}}}}}}{{{b{c}}}{{b{e}}}{}{}}0000{{{b{Ahc}}}{{b{Ahe}}}{}{}}0000````{c{{An{{Al{Aj}}}}}{}}0000{{{b{H`}}}H`}{{{b{Hf}}}Hf}{{{b{Gn}}}Gn}{{{b{c}}{b{Ahe}}}f{}{}}00{{{b{H`}}{b{H`}}}Gb}{{{b{Hd}}}Hd}{{{b{Bb}}}{{An{cBd}}}{}}0000{{}Hf}{{}Gn}{{}Hh}{c{{An{H`}}}Dh}{c{{An{Hb}}}Dh}{c{{An{Hd}}}Dh}{c{{An{Hf}}}Dh}{c{{An{Gn}}}Dh}{{{b{c}}}Dj{}}0000{{{b{c}}}e{}{{Dn{Dl}}}}000000000{{{b{H`}}{b{H`}}}Gd}{{{b{Hb}}{b{Hb}}}Gd}{{{b{Hd}}{b{Hd}}}Gd}{{{b{Hf}}{b{Hf}}}Gd}{{{b{Gn}}{b{Gn}}}Gd}{{{b{c}}{b{e}}}Gd{}{}}000000000{{{b{H`}}{b{AhE`}}}{{An{fGf}}}}0{{{b{Hb}}{b{AhE`}}}Eb}0{{{b{Hd}}{b{AhE`}}}Eb}{{{b{Hf}}{b{AhE`}}}Eb}{{{b{Hf}}{b{AhE`}}}{{An{fGf}}}}{{{b{Gn}}{b{AhE`}}}{{An{fGf}}}}{{{b{Gn}}{b{AhE`}}}Eb}{cc{}}{{{b{Hb}}}H`}11{HbHd}2{HfGn}3{{{b{{A`{n}}}}}{{An{H`Bd}}}}{{{b{{A`{n}}}}}{{An{HbBd}}}}{{{b{{A`{n}}}}}{{An{HdBd}}}}{{{b{{A`{n}}}}}{{An{HfBd}}}}{{{b{{A`{n}}}}}{{An{GnBd}}}}{{{b{Bb}}}{{An{Hdc}}}{}}{{{b{Ahc}}}HdEf}{{{b{H`}}{b{Ahc}}}fGh}{{{b{Hf}}{b{Ahc}}}fGh}{{}H`}{ce{}{}}0000{{{b{H`}}{b{H`}}}{{Gj{Gb}}}}{Hdc{}}``{{{b{Hd}}}{{b{c}}}{}}{{{b{H`}}c}AnEh}{{{b{Hb}}c}AnEh}{{{b{Hd}}c}AnEh}{{{b{Hf}}c}AnEh}{{{b{Gn}}c}AnEh}``{{{b{Hb}}{b{{A`{n}}}}}Hf}{{{b{Hd}}{b{{A`{n}}}}}Hf}{{{b{c}}}e{}{}}00{{{b{c}}}Dj{}}000{{{b{c}}}{{An{{b{{h{eg}}}}{Ej{e}}}}}{}{}j}0000{c{{An{e}}}{}{}}{{{b{Gl}}}{{An{H`c}}}{}}1111{{{b{Gl}}}{{An{Gnc}}}{}}22222{{{b{c}}}El{}}0000{{{b{H`}}}{{An{fBd}}}}{{{b{H`}}{b{{A`{n}}}}{b{Hf}}}{{An{fBd}}}}{{{b{Gn}}{b{A`}}{b{{A`{n}}}}}{{An{fBd}}}}{{{b{Gn}}{b{A`}}{b{{A`{{b{{A`{n}}}}}}}}}{{An{fBd}}}}{ce{}{}}0000{{{b{c}}{b{Ahe}}}{{An{f}}}{}En}0000````````````{{{b{c}}d}f{}}00{{{b{c}}}{{b{{h{eg}}}}}{}{}j}0000{{{b{Hj}}}{{b{c}}}Hl}{{{b{Hn}}}{{b{c}}}Hl}{{{b{I`}}}{{b{{A`{n}}}}}}{{{b{Ib}}}{{b{{A`{n}}}}}}{{{b{Id}}}{{b{{A`{n}}}}}}{{{b{c}}}Af{}}0000{{{b{c}}}{{b{e}}}{}{}}00000{{{b{Ahc}}}{{b{Ahe}}}{}{}}00000``{c{{An{{Al{Aj}}}}}{}}0000{{{b{Hj}}}Hj}{{{b{Ib}}}Ib}{{{b{Id}}}Id}{{{b{c}}{b{Ahe}}}f{}{}}00{{{b{Hj}}{b{Hj}}}Gb}{{{b{I`}}}I`}{{{b{Bb}}}{{An{cBd}}}{}}0000{{}Ib}{{}Id}{c{{An{Hj}}}Dh}{c{{An{Hn}}}Dh}{c{{An{I`}}}Dh}{c{{An{Ib}}}Dh}{c{{An{Id}}}Dh}{c{{An{If}}}Dh}{{{b{AhHn}}}f}{{{b{c}}}Dj{}}0000{{{b{c}}}e{}{{Dn{Dl}}}}000000000{{{b{Hj}}{b{Hj}}}Gd}{{{b{Hn}}{b{Hn}}}Gd}{{{b{I`}}{b{I`}}}Gd}{{{b{Ib}}{b{Ib}}}Gd}{{{b{Id}}{b{Id}}}Gd}{{{b{c}}{b{e}}}Gd{}{}}000000000{{{b{Hj}}{b{AhE`}}}Eb}{{{b{Hj}}{b{AhE`}}}{{An{fGf}}}}{{{b{Hn}}{b{AhE`}}}Eb}0{{{b{I`}}{b{AhE`}}}Eb}{{{b{Ib}}{b{AhE`}}}Eb}{{{b{Ib}}{b{AhE`}}}{{An{fGf}}}}{{{b{Id}}{b{AhE`}}}Eb}{{{b{Id}}{b{AhE`}}}{{An{fGf}}}}{cc{}}0{{{b{Hn}}}Hj}1{IhI`}2{HnI`}33{{{b{{A`{n}}}}}{{An{HjBd}}}}{{{b{{A`{n}}}}}{{An{HnBd}}}}{{{b{{A`{n}}}}}{{An{I`Bd}}}}{{{b{{A`{n}}}}}{{An{IbBd}}}}{{{b{{A`{n}}}}}{{An{IdBd}}}}{{{b{Bb}}}{{An{I`c}}}{}}{{{b{Ahc}}}I`Ef}{{{b{Hj}}{b{Ahc}}}fGh}{{}Hj}{ce{}{}}00000{{{b{Hj}}{b{Hj}}}{{Gj{Gb}}}}{I`c{}}{{{b{I`}}}{{b{c}}}{}}{{{b{Hj}}c}AnEh}{{{b{Hn}}c}AnEh}{{{b{I`}}c}AnEh}{{{b{Ib}}c}AnEh}{{{b{Id}}c}AnEh}{{{b{If}}c}AnEh}`{{{b{I`}}{b{{A`{n}}}}}Ib}`{{{b{c}}}e{}{}}00{{{b{c}}}Dj{}}000{{{b{c}}}{{An{{b{{h{eg}}}}{Ej{e}}}}}{}{}j}0000{c{{An{e}}}{}{}}0{{{b{Gl}}}{{An{Hjc}}}{}}111{{{b{Gl}}}{{An{Ibc}}}{}}2222222{{{b{c}}}El{}}00000{{{b{Hj}}{b{{A`{n}}}}{b{Ib}}}{{An{fBd}}}}{ce{}{}}00000{{{b{c}}{b{Ahe}}}{{An{f}}}{}En}0000`````{{{b{c}}d}f{}}00{{{b{c}}}{{b{e}}}{}{}}000{{{b{Ahc}}}{{b{Ahe}}}{}{}}000{{{b{Ij}}}Ij}{{{b{Il}}}Il}{{{b{In}}}In}{{{b{c}}{b{Ahe}}}f{}{}}00{{{b{Bb}}}{{J`{{Al{n}}}}}}{{{b{Bb}}{b{Bb}}}{{J`{{Al{n}}}}}}111{{{b{Bb}}}{{J`{c}}}{{Jb{{b{{A`{n}}}}}}}}{c{{An{Ij}}}Dh}{c{{An{Il}}}Dh}{c{{An{In}}}Dh}{c{{An{{Jd{n}}}}}Dh}{c{{An{{Al{n}}}}}Dh}0101{cDj{{Jf{{A`{n}}}}}}{{c{b{Bb}}}{{J`{Dj}}}{{Jf{{A`{n}}}}}}1111{{{b{Ij}}}Dj}{{{b{Il}}}Dj}{{{b{Ij}}{b{Ij}}}Gd}{{{b{Il}}{b{Il}}}Gd}{{{b{In}}{b{In}}}Gd}{{{b{c}}{b{e}}}Gd{}{}}000{{{b{Ij}}{b{AhE`}}}Eb}{{{b{Il}}{b{AhE`}}}Eb}{{{b{In}}{b{AhE`}}}Eb}{cc{}}000{{{b{{A`{n}}}}}Ij}{{{b{{A`{n}}}}}Il}{ce{}{}}000{{{b{AhJh}}}Jj}00{{}Dj}00{{{b{Ij}}c}AnEh}{{{b{Il}}c}AnEh}{{{b{In}}c}AnEh}{{{b{c}}e}An{{Jf{{A`{n}}}}}Eh}00{{{b{c}}}e{}{}}00{{{b{Ij}}}{{J`{{Al{n}}}}}}{{{b{Il}}}{{J`{{Al{n}}}}}}{c{{An{e}}}{}{}}0{Dj{{An{Ijc}}}{}}{Dj{{An{Ilc}}}{}}2{Dj{{An{Inc}}}{}}33333{{{b{c}}}El{}}000>>>>```````````````{{{b{c}}d}f{}}{{{b{c}}}{{b{e}}}{}{}}{{{b{Ahc}}}{{b{Ahe}}}{}{}}{{{b{Bd}}}Bd}{{{b{c}}{b{Ahe}}}f{}{}}{{{b{Bd}}{b{Bd}}}Gd}{{{b{c}}{b{e}}}Gd{}{}}0{{{b{Bd}}{b{AhE`}}}Eb}0{JlBd}{cc{}}{ce{}{}}{{{b{c}}}e{}{}}{{{b{c}}}Dj{}}{c{{An{e}}}{}{}}0>3````````````{JnJn}{{{b{{A`{n}}}}}K`}{{{b{{Jd{n}}}}}{{J`{Kb}}}}{{}{{Kf{}{{Kd{c}}}}}Kh}{{{b{{A`{n}}}}}Kj}{{{b{Kh}}}{{J`{Kh}}}}{{{b{{A`{{L`{}{{Kl{c}}{Kn{e}}}}}}}}{b{{A`{c}}}}}{{J`{e}}}Kf{}}{{{b{{A`{c}}}}{b{{A`{Lb}}}}}{{J`{Lb}}}{}}`{{{b{{L`{}{{Kl{c}}{Kn{e}}}}}}{b{c}}}eKf{}}{{{b{Ahc}}}KhEf}{{JnLd}Jn}``7```````````{{{b{c}}d}f{}}000{{LfLf}c{}}{{Lf{b{Lf}}}c{}}{{{b{Lf}}Lf}c{}}{{{b{Lf}}{b{Lf}}}c{}}{{LhLh}c{}}{{{b{Lh}}Lh}c{}}{{Lh{b{Lh}}}c{}}{{{b{Lh}}{b{Lh}}}c{}}{{{b{Lj}}{b{Lj}}}c{}}{{LjLj}c{}}{{Lj{b{Lj}}}c{}}{{{b{Lj}}Lj}c{}}{{{b{Ll}}Ll}c{}}{{LlLl}c{}}{{Ll{b{Ll}}}c{}}{{{b{Ll}}{b{Ll}}}c{}}{{{b{AhLf}}Lf}f}{{{b{AhLf}}{b{Lf}}}f}{{{b{AhLh}}Lh}f}{{{b{AhLh}}{b{Lh}}}f}{{{b{AhLj}}{b{Lj}}}f}{{{b{AhLj}}Lj}f}{{{b{AhLl}}{b{Ll}}}f}{{{b{AhLl}}Ll}f}{{{b{c}}}{{b{e}}}{}{}}000{{{b{Ahc}}}{{b{Ahe}}}{}{}}000{{{b{{A`{n}}}}}{{J`{Ll}}}}{{{b{Lf}}}Lf}{{{b{Lh}}}Lh}{{{b{Lj}}}Lj}{{{b{Ll}}}Ll}{{{b{c}}{b{Ahe}}}f{}{}}000{c{{An{Lf}}}Dh}{c{{An{Lh}}}Dh}{c{{An{Lj}}}Dh}{c{{An{Ll}}}Dh}{{LfLl}c{}}{{LhLl}c{}}{{LjLl}c{}}{{LlLl}c{}}{{{b{Lf}}{b{Lf}}}Gd}{{{b{Lh}}{b{Lh}}}Gd}{{{b{Lj}}{b{Lj}}}Gd}{{{b{Ll}}{b{Ll}}}Gd}{{{b{c}}{b{e}}}Gd{}{}}0000000{{{b{{A`{n}}}}}Ll}{{{b{Lf}}{b{AhE`}}}Eb}{{{b{Lh}}{b{AhE`}}}Eb}{{{b{Lj}}{b{AhE`}}}Eb}{{{b{Ll}}{b{AhE`}}}Eb}{cc{}}00{LnLl}1{{{b{{Jd{n}}}}}{{J`{Lf}}}}{{{b{{Jd{n}}}}}{{J`{Lh}}}}{{{b{{Jd{n}}}}}{{J`{Lj}}}}{{{b{{Jd{n}}}}}{{J`{Ll}}}}3210{{}Lf}{{}Lh}{{}Lj}{{}Ll}{{{b{{A`{n}}}}}Lf}{{{b{{A`{n}}}}}Lh}{ce{}{}}000{{{b{Ll}}}{{J`{Ll}}}}{{LfLl}c{}}{{{b{Lf}}}c{}}{{{b{Lf}}b}c{}}{{Lfb}c{}}{{Lhb}c{}}{{{b{Lh}}b}c{}}{{{b{Lh}}}c{}}{{LhLl}c{}}{{{b{Lj}}b}c{}}{{{b{Lj}}}c{}}{{LjLl}c{}}{{Ljb}c{}}{{{b{Ll}}}c{}}{{LlLl}c{}}{{Llb}c{}}{{{b{Ll}}b}c{}}{{{b{AhLf}}}f}{{{b{AhLf}}b}f}{{{b{AhLh}}b}f}{{{b{AhLh}}}f}{{{b{AhLj}}b}f}{{{b{AhLj}}}f}{{{b{AhLl}}b}f}{{{b{AhLl}}}f}{{{b{{A`{Lf}}}}{b{{A`{c}}}}}{{J`{e}}}{}{}}{{{b{{A`{c}}}}{b{{A`{Lf}}}}}{{J`{Lf}}}{}}{{{b{{A`{c}}}}{b{{A`{Lh}}}}}{{J`{Lh}}}{}}{{{b{Lf}}}c{}}{Lfc{}}{{{b{Lh}}}c{}}{Lhc{}}{Ljc{}}{{{b{Lj}}}c{}}{Llc{}}{{{b{Ll}}}c{}}{{{b{Lf}}{b{c}}}e{}{}}{{{b{Ahc}}}LlEf}{{{b{Lf}}c}AnEh}{{{b{Lh}}c}AnEh}{{{b{Lj}}c}AnEh}{{{b{Ll}}c}AnEh}{{Lf{b{Lf}}}c{}}{{LfLf}c{}}{{{b{Lf}}Lf}c{}}{{{b{Lf}}{b{Lf}}}c{}}{{LhLh}c{}}{{{b{Lh}}{b{Lh}}}c{}}{{{b{Lh}}Lh}c{}}{{Lh{b{Lh}}}c{}}{{{b{Lj}}Lj}c{}}{{{b{Lj}}{b{Lj}}}c{}}{{LjLj}c{}}{{Lj{b{Lj}}}c{}}{{LlLl}c{}}{{Ll{b{Ll}}}c{}}{{{b{Ll}}{b{Ll}}}c{}}{{{b{Ll}}Ll}c{}}{{{b{AhLf}}{b{Lf}}}f}{{{b{AhLf}}Lf}f}{{{b{AhLh}}Lh}f}{{{b{AhLh}}{b{Lh}}}f}{{{b{AhLj}}Lj}f}{{{b{AhLj}}{b{Lj}}}f}{{{b{AhLl}}{b{Ll}}}f}{{{b{AhLl}}Ll}f}{{{b{Lf}}}{{Jd{n}}}}{{{b{Lh}}}{{Jd{n}}}}{{{b{Lj}}}{{Jd{n}}}}{{{b{Ll}}}{{Jd{n}}}}{{{b{c}}}e{}{}}000{c{{An{e}}}{}{}}{{{b{Gl}}}{{An{Lfc}}}{}}1{{{b{Gl}}}{{An{Lhc}}}{}}222222{{{b{c}}}El{}}000{ce{}{}}000{{}Lf}{{}Lh}{{}Lj}{{}Ll}{{{b{AhLl}}}f}``{{{b{M`}}{b{c}}}e{}{}}{{cc}M`{}}{{{b{Mb}}}{{Al{n}}}}{{{b{M`}}{b{c}}{b{e}}{b{c}}}e{}{}}``{{{b{c}}}{{b{e}}}{}{}}{{{b{Ahc}}}{{b{Ahe}}}{}{}}{cc{}}<{{{b{{Md{ce}}}}{b{e}}}c{{Mf{}{{Kn{}}}}JnB`Ad}{MbB`Ad}}{{{b{{Jd{c}}}}{b{{Jd{e}}}}{b{{Mh{Af{Al{e}}}}}}Afe}e{MbB`Ad}{Jn{Mf{}{{Kn{}}}}B`Ad}}{{cc}{{Md{ce}}}{}{MbB`Ad}}{c{{An{e}}}{}{}}0{{{b{{Md{ce}}}}{b{e}}{b{c}}{b{e}}}c{{Mf{}{{Kn{}}}}JnB`Ad}{MbB`Ad}}{{{b{c}}}El{}}{ce{}{}}``{{{b{c}}d}f{}}0{{{b{Mj}}Mj}c{}}{{Mj{b{Mj}}}c{}}{{{b{Mj}}{b{Mj}}}c{}}{{MjMj}Mj}{{{b{Ml}}Ml}c{}}{{MlMl}Ml}{{{b{Ml}}{b{Ml}}}c{}}{{Ml{b{Ml}}}c{}}{{{b{AhMj}}Mj}f}{{{b{AhMj}}{b{Mj}}}f}{{{b{AhMl}}Ml}f}{{{b{AhMl}}{b{Ml}}}f}{{{b{c}}}{{b{e}}}{}{}}0{{{b{Ahc}}}{{b{Ahe}}}{}{}}0{{{b{Mj}}}Mj}{{{b{Ml}}}Ml}{{{b{c}}{b{Ahe}}}f{}{}}0{{{b{Mj}}}{{Jd{n}}}}{{{b{{Jd{n}}}}}{{An{MjBd}}}}{{}Mj}{c{{An{Mj}}}Dh}{c{{An{Ml}}}Dh}{{MjMl}c{}}{{Mlc}Ml{}}{{MlMl}{{An{MlBd}}}}{MjMj}{{{b{Mj}}{b{Mj}}}Gd}{{{b{Ml}}{b{Ml}}}Gd}{{{b{c}}{b{e}}}Gd{}{}}000{{{b{{A`{n}}}}}Ml}{{{b{Mj}}{b{AhE`}}}Eb}{{{b{Ml}}{b{AhE`}}}Eb}{MnMj}{cc{}}0{LnMl}{N`Ml}{{{b{{Jd{n}}}}}{{An{MjBd}}}}{{{b{{Jd{n}}}}}{{An{MlBd}}}}{{{b{{Jd{n}}}}}Ml}0{{{b{{Jd{n}}}}}Mj}{{}Mj}{{}Ml}0{{{b{{A`{n}}}}}Mj}={ce{}{}}0{{{b{Ml}}}{{J`{Ml}}}}2{{Mjb}c{}}{{{b{Mj}}}c{}}{{MjMl}Mj}{{{b{Mj}}b}c{}}{{Mlb}c{}}{{MlMl}Ml}{{{b{Ml}}b}c{}}{{{b{Ml}}}c{}}{{{b{AhMj}}}f}{{{b{AhMj}}b}f}{{{b{AhMl}}b}f}{{{b{AhMl}}}f}{{{b{{A`{c}}}}{b{{A`{Mj}}}}}{{J`{Mj}}}{}};{MjMj}{MlMl}7{{{b{Ahc}}}MlEf}{{{b{Mj}}c}AnEh}{{{b{Ml}}c}AnEh}{{{b{Mj}}{b{Mj}}}c{}}{{Mj{b{Mj}}}c{}}{{MjMj}Mj}{{{b{Mj}}Mj}c{}}{{{b{Ml}}Ml}c{}}{{MlMl}Ml}{{{b{Ml}}{b{Ml}}}c{}}{{Ml{b{Ml}}}c{}}{{{b{AhMj}}Mj}f}{{{b{AhMj}}{b{Mj}}}f}{{{b{AhMl}}Ml}f}{{{b{AhMl}}{b{Ml}}}f}{{{b{Mj}}}{{Jd{n}}}}{{{b{Ml}}}{{Jd{n}}}}{{{b{c}}}e{}{}}0{c{{An{e}}}{}{}}{{{b{{A`{n}}}}}{{An{MjBd}}}}111{{{b{c}}}El{}}0{ce{}{}}0{{}Mj}{{}Ml}{{{b{AhMl}}}f}```{{{b{c}}d}f{}}0{{{b{Nb}}{b{Nb}}}c{}}{{NbNb}Nb}{{{b{Nb}}Nb}c{}}{{Nb{b{Nb}}}c{}}{{{b{Nd}}{b{Nd}}}c{}}{{NdNd}Nd}{{{b{Nd}}Nd}c{}}{{Nd{b{Nd}}}c{}}{{{b{AhNb}}{b{Nb}}}f}{{{b{AhNb}}Nb}f}{{{b{AhNd}}{b{Nd}}}f}{{{b{AhNd}}Nd}f}{{{b{c}}}{{b{e}}}{}{}}0{{{b{Ahc}}}{{b{Ahe}}}{}{}}0{{{b{Nb}}}Nb}{{{b{Nd}}}Nd}{{{b{c}}{b{Ahe}}}f{}{}}0{{}Nb}{{}Nd}{c{{An{Nd}}}Dh}{{NbNd}{{An{NbBd}}}}{{NdNd}{{An{NdBd}}}}{NbNb}{{{b{Nb}}{b{Nb}}}Gd}{{{b{Nd}}{b{Nd}}}Gd}{{{b{c}}{b{e}}}Gd{}{}}000{{{b{Nb}}{b{AhE`}}}Eb}{{{b{Nd}}{b{AhE`}}}Eb}{cc{}}{NfNb}{LnNd}{NhNd}3{{{b{{Jd{n}}}}}{{An{NdBd}}}}?>{ce{}{}}0{{{b{Nd}}}{{J`{Nd}}}}{{NbNd}Nb}{{{b{Nb}}}c{}}{{Nbb}c{}}{{{b{Nb}}b}c{}}{{{b{Nd}}}c{}}{{Ndb}c{}}{{{b{Nd}}b}c{}}{{NdNd}c{}}{{{b{AhNb}}b}f}{{{b{AhNb}}}f}{{{b{AhNd}}}f}{{{b{AhNd}}b}f}:{NbNb}8{NdNd}{{{b{Ahc}}}NdEf}{{{b{Nd}}c}AnEh}{{NbNb}Nb}{{Nb{b{Nb}}}c{}}{{{b{Nb}}{b{Nb}}}c{}}{{{b{Nb}}Nb}c{}}{{{b{Nd}}Nd}c{}}{{{b{Nd}}{b{Nd}}}c{}}{{Nd{b{Nd}}}c{}}{{NdNd}Nd}{{{b{AhNb}}{b{Nb}}}f}{{{b{AhNb}}Nb}f}{{{b{AhNd}}Nd}f}{{{b{AhNd}}{b{Nd}}}f}{{{b{Nd}}}{{Jd{n}}}}{{{b{Nd}}}{{Al{n}}}}{{{b{c}}}e{}{}}0{c{{An{e}}}{}{}}000{{{b{c}}}El{}}0{ce{}{}}0{{}Nb}{{}Nd}````````````````{{{b{c}}d}f{}}0{{{b{c}}}{{b{{h{eg}}}}}{}{}j}{{{b{Nj}}}{{b{{A`{n}}}}}}{{{b{c}}}Af{}}{{{b{c}}}{{b{e}}}{}{}}00{{{b{Ahc}}}{{b{Ahe}}}{}{}}00{c{{An{{Al{Aj}}}}}{}}{{{b{Nj}}}Nj}{{{b{Nl}}}Nl}{{{b{c}}{b{Ahe}}}f{}{}}0{{{b{Nj}}{b{Nj}}}Gb}{{}{{Nn{c}}}O`}{{}Nl}{c{{An{Nj}}}Dh}{c{{An{Nl}}}Dh}{{{b{{Od{}{{Ob{c}}}}}}}c{{Of{Nj}}OhOjOlAd}}{{{b{On}}}Nj}{cNj{{Jf{{A`{n}}}}}}{{{b{Nl}}}Nj}`{eNj{{Jf{{A`{n}}}}}{{G`{}{{Fd{c}}}}}}{{{b{c}}}e{}{{Dn{Dl}}}}0{{{b{Nj}}{b{Nj}}}Gd}{{{b{Nl}}{b{Nl}}}Gd}{{{b{c}}{b{e}}}Gd{}{}}000{A@`Nj}{{{Nn{c}}}Nj{A@bO`}}{{{b{Ah{Nn{c}}}}}{{A@d{f}}}{A@bO`}}{{{b{Nj}}{b{AhE`}}}{{An{fGf}}}}0{{{b{Nl}}{b{AhE`}}}Eb}{cc{}}00{{{b{Nj}}{b{Ahc}}}fGh}{{{b{AhOn}}c}f{{Jf{{A`{n}}}}}}{{{b{AhNl}}c}f{{Jf{{A`{n}}}}}}{{{b{AhOn}}e}f{{Jf{{A`{n}}}}}{{Ff{}{{Fd{c}}}}}}{{{b{AhNl}}e}f{{Jf{{A`{n}}}}}{{Ff{}{{Fd{c}}}}}}{ce{}{}}00{{}A@`}{{{Jd{n}}}Nj}{{{b{Nj}}{b{Nj}}}{{Gj{Gb}}}}7654{{{b{Nj}}c}AnEh}{{{b{Nl}}c}AnEh}{{{b{Nj}}}Af}{{{b{c}}}e{}{}}0{{{b{c}}}Dj{}}{{{b{Nj}}}{{Al{n}}}}{{{b{c}}}{{An{{b{{h{eg}}}}{Ej{e}}}}}{}{}j}{c{{An{e}}}{}{}}00000{{{b{c}}}El{}}00{{{b{AhOn}}{b{On}}}f}{{{b{AhNl}}{b{Nl}}}f}{{{b{AhA@`}}c}f{{Jf{{A`{n}}}}}}{{{b{Ah{Nn{c}}}}e}f{A@bO`}{{Jf{{A`{n}}}}}}{ce{}{}}00{{{b{Ahc}}{b{{A`{n}}}}}{{An{fA@f}}}{}}{{{b{Ahc}}{b{{A`{n}}}}}{{An{fA@h}}}{}}{{{b{Ah{Nn{c}}}}{b{{A`{n}}}}}{{A@d{Af}}}{A@bO`}}{{{b{c}}{b{Ahe}}}{{An{f}}}{}En}``{{{b{A@j}}{b{{A`{n}}}}{b{{A`{n}}}}Af}{{An{{Al{n}}Bd}}}}{{{b{A@l}}{b{{A`{n}}}}}Nj}`{{{b{c}}d}f{}}{{{b{c}}}{{b{e}}}{}{}}{{{b{Ahc}}}{{b{Ahe}}}{}{}}{{{b{A@n}}}A@n}{{{b{c}}{b{Ahe}}}f{}{}}{{}A@n}{c{{An{A@n}}}Dh}{{{b{A@n}}{b{A@n}}}Gd}{{{b{c}}{b{e}}}Gd{}{}}0{{{b{A@n}}{b{AhE`}}}Eb}{cc{}}{{{b{A@n}}{b{Ahc}}}fGh}{ce{}{}}{{{b{AhJh}}}Jj}`{{{b{Bb}}}{{An{A@nBd}}}}{{{b{Bb}}}{{An{{AA`{DjDj}}Bd}}}}{{}Dj}{{{b{A@n}}c}AnEh}{{{b{c}}}e{}{}}{c{{An{e}}}{}{}}0`{{{b{c}}}El{}}8`{{{b{c}}}{{b{{h{eg}}}}}{}{}j}{{{b{AAb}}}{{b{{A`{n}}}}}}0{{{b{c}}}Af{}}{{{b{c}}}{{b{e}}}{}{}}{{{b{Ahc}}}{{b{Ahe}}}{}{}}{c{{An{{Al{Aj}}}}}{}}{{{b{Bb}}}{{An{cBd}}}{}}{{{b{AhAAb}}}f}{{{b{c}}}Dj{}}{{{b{c}}}e{}{{Dn{Dl}}}}0{{{b{AAb}}{b{AAb}}}Gd}{{{b{c}}{b{e}}}Gd{}{}}0{{{b{AAb}}{b{AhE`}}}Eb}{cc{}}{{{b{{A`{n}}}}}{{An{AAbBd}}}}{ce{}{}}{{{b{c}}}{{An{{b{{h{eg}}}}{Ej{e}}}}}{}{}j}{c{{An{e}}}{}{}}0{{{b{c}}}El{}}3{{{b{c}}{b{Ahe}}}{{An{f}}}{}En}<````{{{b{c}}d}f{}}00{{{b{c}}}{{b{e}}}{}{}}00{{{b{Ahc}}}{{b{Ahe}}}{}{}}00{{{b{AAd}}}AAd}{{{b{AAf}}}AAf}{{{b{AAh}}}AAh}{{{b{c}}{b{Ahe}}}f{}{}}00{{c{b{Ah{A`{n}}}}}{{An{{b{{A`{n}}}}AAj}}}{{Jf{{A`{n}}}}}}0{{{b{Ah{A`{n}}}}}{{An{{b{{A`{n}}}}AAl}}}}0{{{b{Bb}}}{{An{{Al{n}}AAj}}}}0{{{b{{A`{n}}}}{b{Ah{A`{n}}}}}{{An{{b{Bb}}AAn}}}}0{{{b{{A`{n}}}}}Dj}0{{{b{{A`{n}}}}}Af}0{{{b{AAd}}{b{AAd}}}Gd}{{{b{AAh}}{b{AAh}}}Gd}{{{b{c}}{b{e}}}Gd{}{}}000{{{b{AAd}}{b{AhE`}}}{{An{fGf}}}}{cc{}}00{{{b{{A`{n}}}}}{{J`{AAh}}}}{{{b{{A`{n}}}}}{{J`{AAf}}}}{{{b{{A`{n}}}}{b{{A`{n}}}}}{{J`{AAf}}}}{ce{}{}}00{{{b{c}}}e{}{}}00{c{{An{e}}}{}{}}00000{{{b{c}}}El{}}00{{{b{AAf}}{b{{A`{n}}}}{b{AAh}}}{{J`{f}}}}0444````````````{{{b{c}}d}f{}}0{{{b{c}}}{{b{{h{eg}}}}}{}{}j}000{{{b{AB`}}}{{b{{A`{n}}}}}}{{{b{ABb}}}{{b{{A`{n}}}}}}{{{b{ABd}}}{{b{{A`{n}}}}}}{{{b{ABf}}}{{b{{A`{n}}}}}}{{{b{c}}}Af{}}000{{{b{c}}}{{b{e}}}{}{}}000{{{b{Ahc}}}{{b{Ahe}}}{}{}}000```{c{{An{{Al{Aj}}}}}{}}000{{{b{AB`}}}AB`}{{{b{ABd}}}ABd}{{{b{c}}{b{Ahe}}}f{}{}}0{{{b{AB`}}{b{AB`}}}Gb}{{{b{ABf}}}ABf}{{{b{Bb}}}{{An{cBd}}}{}}000{c{{An{AB`}}}Dh}{c{{An{ABb}}}Dh}{c{{An{ABd}}}Dh}{c{{An{ABf}}}Dh}{{{b{AhABb}}}f}{{{b{c}}}Dj{}}000{{{b{c}}}e{}{{Dn{Dl}}}}0000000{{{b{AB`}}{b{AB`}}}Gd}{{{b{ABb}}{b{ABb}}}Gd}{{{b{ABd}}{b{ABd}}}Gd}{{{b{ABf}}{b{ABf}}}Gd}{{{b{c}}{b{e}}}Gd{}{}}0000000{{{b{AB`}}{b{AhE`}}}Eb}{{{b{AB`}}{b{AhE`}}}{{An{fGf}}}}{{{b{ABb}}{b{AhE`}}}Eb}0{{{b{ABd}}{b{AhE`}}}{{An{fGf}}}}{{{b{ABd}}{b{AhE`}}}Eb}{{{b{ABf}}{b{AhE`}}}Eb}{cc{}}{{{b{ABb}}}AB`}11{{{b{ABh}}}ABd}2{ABbABf}{{{b{{A`{n}}}}}{{An{AB`Bd}}}}{{{b{{A`{n}}}}}{{An{ABbBd}}}}{{{b{{A`{n}}}}}{{An{ABdBd}}}}{{{b{{A`{n}}}}}{{An{ABfBd}}}}{{{b{Bb}}}{{An{ABfc}}}{}}{{{b{Ahc}}}ABfEf}{{{b{AB`}}{b{Ahc}}}fGh}{{{b{ABd}}{b{Ahc}}}fGh}{ce{}{}}000{{{b{AB`}}{b{AB`}}}{{Gj{Gb}}}}{ABfc{}}``{{{b{ABf}}}{{b{c}}}{}}```{{{b{AB`}}c}AnEh}{{{b{ABb}}c}AnEh}{{{b{ABd}}c}AnEh}{{{b{ABf}}c}AnEh}`{{{b{ABf}}{b{{A`{n}}}}}ABd}{{{b{ABf}}{b{{A`{n}}}}}ABh}1{{{b{c}}}e{}{}}0{{{b{c}}}Dj{}}00{{{b{c}}}{{An{{b{{h{eg}}}}{Ej{e}}}}}{}{}j}000{c{{An{e}}}{}{}}{{{b{Gl}}}{{An{AB`c}}}{}}1{{{b{Gl}}}{{An{ABdc}}}{}}222222{{{b{c}}}El{}}000{{{b{AB`}}{b{{A`{n}}}}{b{ABd}}}{{An{fBd}}}}0{ce{}{}}000{{{b{c}}{b{Ahe}}}{{An{f}}}{}En}000````{{{b{c}}d}f{}}0{{{b{c}}}{{b{{h{eg}}}}}{}{}j}{{{b{ABj}}}}{{{b{AhABj}}}}{{{b{AhABj}}}ABl}{{{b{ABj}}}ABl}{{{b{ABh}}}{{b{{A`{n}}}}}}{{{b{c}}}Af{}}{{{b{c}}}{{b{e}}}{}{}}0{{{b{Ahc}}}{{b{Ahe}}}{}{}}0`{c{{An{{Al{Aj}}}}}{}}{{{b{ABj}}}ABj}{{{b{ABh}}}ABh}{{{b{c}}{b{Ahe}}}f{}{}}0{{{b{ABj}}{b{ABj}}}Gb}0{{{b{Bb}}}{{An{cBd}}}{}}{c{{An{ABh}}}Dh}{{{b{c}}}Dj{}}{{{b{c}}}e{}{{Dn{Dl}}}}0{{{b{ABj}}{b{ABj}}}Gd}{{{b{ABh}}{b{ABh}}}Gd}1{{{b{c}}{b{e}}}Gd{}{}}000{{{b{ABj}}{b{AhE`}}}{{An{fGf}}}}0{{{b{ABh}}{b{AhE`}}}Eb}{{{b{ABh}}{b{AhE`}}}{{An{fGf}}}}{cc{}}{ABlABj}1{{{b{{A`{n}}}}}{{An{ABhBd}}}}{{{b{{A`{n}}}}}{{An{ABjABn}}}}00{{{b{Bb}}}{{An{ABjABn}}}}{{{b{ABj}}{b{Ahc}}}fGh}{{{b{ABh}}{b{Ahc}}}fGh}{ce{}{}}0{{{b{AhABj}}}f}{{{b{ABj}}{b{ABj}}}{{Gj{Gb}}}}{{{b{ABh}}{b{{A`{n}}}}}{{An{AB`Bd}}}}{{{b{ABh}}c}AnEh}{{{b{ABj}}}{{Jd{n}}}}{{{b{ABj}}}AC`}`{{{b{c}}}e{}{}}0{{{b{c}}}Dj{}}0{{{b{c}}}{{An{{b{{h{eg}}}}{Ej{e}}}}}{}{}j}{c{{An{e}}}{}{}}0{{{b{ABd}}{b{AB`}}{b{{A`{n}}}}}{{An{ABhBd}}}}11{{{b{c}}}El{}}0{{{b{ABj}}{b{ACb}}{b{ACd}}}{{An{fABn}}}}=={{{b{c}}{b{Ahe}}}{{An{f}}}{}En}`````````````{{{b{c}}d}f{}}0{{{b{c}}}{{b{{h{eg}}}}}{}{}j}000{{{b{ACf}}}{{b{{A`{n}}}}}}{{{b{ACh}}}{{b{{A`{n}}}}}}{{{b{ACj}}}{{b{{A`{n}}}}}}{{{b{ACl}}}{{b{{A`{n}}}}}}{{{b{c}}}Af{}}000{{{b{c}}}{{b{e}}}{}{}}000{{{b{Ahc}}}{{b{Ahe}}}{}{}}000```{c{{An{{Al{Aj}}}}}{}}000{{{b{ACf}}}ACf}{{{b{ACj}}}ACj}{{{b{c}}{b{Ahe}}}f{}{}}0{{{b{ACf}}{b{ACf}}}Gb}`{{{b{ACl}}}ACl}{{{b{Bb}}}{{An{cBd}}}{}}000{c{{An{ACf}}}Dh}{c{{An{ACh}}}Dh}{c{{An{ACj}}}Dh}{c{{An{ACl}}}Dh}{{{b{c}}}Dj{}}000{{{b{c}}}e{}{{Dn{Dl}}}}0000000{{{b{ACf}}{b{ACf}}}Gd}{{{b{ACh}}{b{ACh}}}Gd}{{{b{ACj}}{b{ACj}}}Gd}{{{b{ACl}}{b{ACl}}}Gd}{{{b{c}}{b{e}}}Gd{}{}}0000000{{{b{ACf}}{b{AhE`}}}{{An{fGf}}}}{{{b{ACf}}{b{AhE`}}}Eb}{{{b{ACh}}{b{AhE`}}}Eb}0{{{b{ACj}}{b{AhE`}}}Eb}{{{b{ACj}}{b{AhE`}}}{{An{fGf}}}}{{{b{ACl}}{b{AhE`}}}Eb}{{{b{ACh}}}ACf}{cc{}}00{{{b{ACn}}}ACj}1{AChACl}{{{b{{A`{n}}}}}{{An{ACfBd}}}}{{{b{{A`{n}}}}}{{An{AChBd}}}}{{{b{{A`{n}}}}}{{An{ACjBd}}}}{{{b{{A`{n}}}}}{{An{AClBd}}}}{{{b{Bb}}}{{An{AClc}}}{}}{{{b{Ahc}}}AClEf}{{{b{ACf}}{b{Ahc}}}fGh}{{{b{ACj}}{b{Ahc}}}fGh}{ce{}{}}000{{{b{ACf}}{b{ACf}}}{{Gj{Gb}}}}{AClc{}}``{{{b{ACl}}}{{b{c}}}{}}```{{{b{ACf}}c}AnEh}{{{b{ACh}}c}AnEh}{{{b{ACj}}c}AnEh}{{{b{ACl}}c}AnEh}`{{{b{ACl}}{b{{A`{n}}}}}ACj}{{{b{ACl}}{b{{A`{n}}}}}ACn}1{{{b{c}}}e{}{}}0{{{b{c}}}Dj{}}00{{{b{c}}}{{An{{b{{h{eg}}}}{Ej{e}}}}}{}{}j}000{{{b{Gl}}}{{An{ACfc}}}{}}{c{{An{e}}}{}{}}00{{{b{Gl}}}{{An{ACjc}}}{}}11111{{{b{c}}}El{}}000{{{b{ACf}}{b{{A`{n}}}}{b{ACj}}}{{An{fBd}}}}0{ce{}{}}000{{{b{c}}{b{Ahe}}}{{An{f}}}{}En}000``{{{b{c}}d}f{}}{{{b{c}}}{{b{{h{eg}}}}}{}{}j}{{{b{ACn}}}{{b{{A`{n}}}}}}{{{b{c}}}Af{}}{{{b{c}}}{{b{e}}}{}{}}{{{b{Ahc}}}{{b{Ahe}}}{}{}}`{c{{An{{Al{Aj}}}}}{}}{{{b{ACn}}}ACn}{{{b{c}}{b{Ahe}}}f{}{}}{{{b{Bb}}}{{An{cBd}}}{}}{c{{An{ACn}}}Dh}{{{b{c}}}Dj{}}{{{b{c}}}e{}{{Dn{Dl}}}}0{{{b{ACn}}{b{ACn}}}Gd}{{{b{c}}{b{e}}}Gd{}{}}0{{{b{ACn}}{b{AhE`}}}Eb}{{{b{ACn}}{b{AhE`}}}{{An{fGf}}}}{cc{}}{{{b{{A`{n}}}}}{{An{ACnBd}}}}{{{b{ACn}}{b{Ahc}}}fGh}{ce{}{}}{{{b{ACn}}{b{{A`{n}}}}}{{An{ACfBd}}}}`{{{b{ACn}}c}AnEh}`{{{b{c}}}e{}{}}<{{{b{c}}}{{An{{b{{h{eg}}}}{Ej{e}}}}}{}{}j}{c{{An{e}}}{}{}}{{{b{ACj}}{b{ACf}}{b{{A`{n}}}}}{{An{ACnBd}}}}1{{{b{c}}}El{}}7{{{b{c}}{b{Ahe}}}{{An{f}}}{}En}````{{{b{c}}d}f{}}{{{b{c}}}{{b{e}}}{}{}}0{{{b{Ahc}}}{{b{Ahe}}}{}{}}0{{{b{Gl}}}Gl}{{{b{c}}{b{Ahe}}}f{}{}}{{{b{Gl}}{b{Gl}}}Gb}{c{{An{AD`}}}Dh}{c{{An{Gl}}}Dh}{{{b{{A`{n}}}}{ADb{{b{{Jd{n}}}}}{{Kn{{J`{c}}}}}}}{{J`{{Al{c}}}}}{}}{{{b{Gl}}{b{Gl}}}Gd}{{{b{c}}{b{e}}}Gd{}{}}0{{{b{Gl}}{b{AhE`}}}{{An{fGf}}}}{{{b{Gl}}{b{AhE`}}}Eb}{cc{}}{{{b{ACj}}}Gl}{{{b{F`}}}Gl}{{{b{Gn}}}Gl}{{{b{Hj}}}Gl}{{{b{AB`}}}Gl}{{{b{Lf}}}Gl}6{{{b{Ib}}}Gl}{{{b{Lh}}}Gl}{{{b{H`}}}Gl}{{{b{ABd}}}Gl}{{{b{Fh}}}Gl}{{{b{ACf}}}Gl}{{{b{{Jd{n}}}}}{{An{ADdBd}}}}{{{b{Gl}}{b{Ahc}}}fGh}{ce{}{}}0{{}Gd}{{{b{AhJh}}}Jj}{{{b{Bb}}}{{J`{c}}}ADf}{{{b{Gl}}{b{Gl}}}{{Gj{Gb}}}}{{}Dj}{{{b{AD`}}c}AnEh}{{{b{Gl}}c}AnEh}{{{b{{A`{c}}}}{ADb{{b{c}}}{{Kn{{Jd{n}}}}}}}{{Al{n}}}{}}{{{b{ADd}}}{{Jd{n}}}}{{{b{c}}}e{}{}}{{{b{c}}}Dj{}}{c{{An{e}}}{}{}}000{{{b{c}}}El{}}0==`{{{b{c}}d}f{}}{{{b{c}}}{{b{e}}}{}{}}{{{b{Ahc}}}{{b{Ahe}}}{}{}}{{{b{{ADh{c}}}}}{{ADh{c}}}{B`ADj}}{{{b{c}}{b{Ahe}}}f{}{}}{cc{}}{ce{}{}}{e{{ADh{c}}}ADj{{ADl{c}}ADn}}{{{b{{ADh{c}}}}Nj}cADj}<::92````````````````````````````````````{{{b{Ah{AEf{}{{AE`{c}}{AEb{e}}{AEd{g}}}}}}{AEf{}{{AE`{c}}{AEb{e}}{AEd{g}}}}}{{An{fBd}}}{{ADj{}{{AEb{e}}}}}{{AEh{}{{AE`{c}}}}}{{AEj{}{{AE`{c}}}}}}{{{b{Ah{AEf{}{{AE`{c}}{AEb{e}}{AEd{g}}}}}}c}{{An{fBd}}}{{ADj{}{{AEb{e}}}}}{{AEh{}{{AE`{c}}}}}{{AEj{}{{AE`{c}}}}}}{g{{An{{AEf{}{{AE`{c}}{AEb{i}}{AEd{k}}}}Bd}}}{{ADj{}{{AEb{i}}}}}{{Fb{c}}}{{Ff{}{{Fd{{b{e}}}}}}}{{AEh{}{{AE`{c}}}}}{{AEj{}{{AE`{c}}}}}}{{{b{AEl}}}{{b{{A`{n}}}}}}{{{b{{A`{{b{{AEf{}{{AE`{c}}{AEb{e}}{AEd{g}}}}}}}}}}{Al{i}}{b{{A`{{b{{A`{n}}}}}}}}}{{An{fBd}}}{{ADj{}{{AEb{e}}}}}{{AEh{}{{AE`{c}}}}}{{AEj{}{{AE`{c}}}}}{{AEn{}{{Fd{{b{e}}}}}}}}{{{b{{ADf{}{{AEb{c}}{AEd{e}}{AE`{g}}}}}}}{{ADf{}{{AEb{c}}{AEd{e}}{AE`{g}}}}}{{AEh{}{{AEd{e}}{AE`{g}}}}}{{AEj{}{{AEb{c}}{AE`{g}}}}}{{ADj{}{{AEb{c}}{AEd{e}}}}}}{{{b{Bb}}}{{J`{AF`}}}}{{{b{AF`}}}Dj}{{{b{{A`{n}}}}}{{An{AElBd}}}}{{{b{Ahc}}}{{ADf{}{{AEb{e}}{AEd{g}}{AE`{i}}}}}Ef{{AEh{}{{AEd{g}}{AE`{i}}}}}{{AEj{}{{AEb{e}}{AE`{i}}}}}{{ADj{}{{AEb{e}}{AEd{g}}}}}}{{{b{Ahc}}}AFbEf}{{{b{Ahc}}}AFdEf}{{}AFf}{{{ADf{}{{AEb{c}}{AEd{e}}{AE`{g}}}}}e{{AEh{}{{AEd{e}}{AE`{g}}}}}{{AEj{}{{AEb{c}}{AE`{g}}}}}{{ADj{}{{AEb{c}}{AEd{e}}}}}}{{{b{{ADf{}{{AEb{c}}{AEd{e}}{AE`{g}}}}}}}{{b{c}}}{{AEh{}{{AEd{e}}{AE`{g}}}}}{{AEj{}{{AEb{c}}{AE`{g}}}}}{{ADj{}{{AEb{c}}{AEd{e}}}}}}{{{b{{AFl{}{{AEb{c}}{AFh{e}}{AFj{g}}}}}}{b{{A`{n}}}}}{{An{cBd}}}{}{{AFn{}{{AE`{}}{AEb{}}}}}A@`}0{{{b{ADl}}{b{{A`{n}}}}}c{}}{{{b{{AFn{}{{AEb{c}}{AE`{e}}}}}}{b{{A`{n}}}}}e{}{{AFl{}{{AFh{}}{AEb{}}}}}}0{{{b{{AEh{}{{AEd{c}}{AE`{e}}}}}}{b{{A`{n}}}}{b{e}}}{{An{fBd}}}{{AEj{}{{AEb{}}}}}{{ADj{}{{AEb{}}}}}}{{{b{{AEf{}{{AE`{c}}{AEb{e}}{AEd{g}}}}}}{b{A`}}{b{{A`{n}}}}}{{An{fBd}}}{{ADj{}{{AEb{e}}}}}{{AEh{}{{AE`{c}}}}}{{AEj{}{{AE`{c}}}}}}{{{b{{AEf{}{{AE`{c}}{AEb{e}}{AEd{g}}}}}}{b{A`}}{b{{A`{{b{{A`{n}}}}}}}}}{{An{fBd}}}{{ADj{}{{AEb{e}}}}}{{AEh{}{{AE`{c}}}}}{{AEj{}{{AE`{c}}}}}}{{{b{{AG`{}{{AE`{c}}}}}}{b{{A`{n}}}}{b{c}}}{{An{fBd}}}{{AFl{}{{AEb{}}}}}}0{nAf}```````````{{{b{Ahc}}}{{AGh{}{{AGb{e}}{AGd{i}}{AGf{g}}}}}Ef{{AGj{}{{AGf{g}}}}}{{AGl{}{{AGd{i}}}}}{{AGn{}{{AGf{g}}}}}}{{{b{{AGh{}{{AGb{c}}{AGd{g}}{AGf{e}}}}}}{b{{A`{n}}}}}{{AA`{{Jd{n}}c}}}{{AGj{}{{AGf{e}}}}}{{AGl{}{{AGd{g}}}}}{{AGn{}{{AGf{e}}}}}}{{{b{{AGh{}{{AGb{c}}{AGd{g}}{AGf{e}}}}}}{b{{A`{n}}}}}c{{AGj{}{{AGf{e}}}}}{{AGl{}{{AGd{g}}}}}{{AGn{}{{AGf{e}}}}}}{{{b{{AGj{}{{AGf{c}}}}}}}{{Jd{n}}}AGl}{{{b{{AGj{}{{AGf{c}}}}}}{b{{A`{n}}}}{b{c}}}{{An{fBd}}}AGl}{{{b{{AGj{}{{AGf{c}}}}}}{b{{A`{n}}}}{b{c}}{b{{Jd{n}}}}}{{An{fBd}}}AGl}````{{{b{c}}}{{b{e}}}{}{}}000{{{b{Ahc}}}{{b{Ahe}}}{}{}}000{c{{An{AH`}}}Dh}{c{{An{AHb}}}Dh}{c{{An{AHd}}}Dh}{c{{An{AHf}}}Dh}{{{b{AhAHb}}}f}{{{b{AH`}}{b{AH`}}}Gd}{{{b{AHb}}{b{AHb}}}Gd}{{{b{AHd}}{b{AHd}}}Gd}{{{b{AHf}}{b{AHf}}}Gd}{{{b{c}}{b{e}}}Gd{}{}}0000000{{{b{AH`}}{b{AhE`}}}Eb}{{{b{AHb}}{b{AhE`}}}Eb}{{{b{AHd}}{b{AhE`}}}Eb}{{{b{AHf}}{b{AhE`}}}Eb}{cc{}}00{AHbAHd}1{{{b{Ahc}}}AHdEf}{ce{}{}}000`{{{b{AHd}}{b{{A`{n}}}}}AHf}{{{b{AH`}}c}AnEh}{{{b{AHb}}c}AnEh}{{{b{AHd}}c}AnEh}{{{b{AHf}}c}AnEh}`{{{b{AHf}}}{{Jd{n}}}}{c{{An{e}}}{}{}}0000000{{{b{c}}}El{}}000{{{b{AHf}}{b{{A`{n}}}}{b{c}}}{{An{fBd}}}{}}9999","D":"CBb","p":[[1,"reference"],[5,"Private",2145],[1,"unit"],[5,"BitSlice",2146],[10,"BitOrder",2147],[5,"GenericByteArray",22],[1,"u8"],[1,"slice"],[10,"ArrayLength",2148],[10,"Debug",2149],[1,"usize"],[0,"mut"],[5,"u5",2150],[5,"Vec",2151],[6,"Result",2152],[10,"Clone",2153],[1,"str"],[6,"FastCryptoError",790],[17,"IVType"],[10,"Cipher",22],[10,"Nonce",22],[5,"AesCtr",22],[17,"KeySize"],[10,"KeySizeUser",2154],[10,"KeyInit",2154],[10,"BlockCipher",2155],[17,"BlockSize"],[8,"U16",2156],[10,"BlockSizeUser",2154],[10,"BlockEncrypt",2155],[10,"BlockDecrypt",2155],[5,"AesCbc",22],[10,"Padding",2157],[5,"AesGcm",22],[10,"AuthenticatedCipher",22],[10,"Deserializer",2158],[5,"String",2159],[1,"char"],[10,"FromIterator",2160],[5,"Formatter",2149],[8,"Result",2149],[8,"AesKey",22],[10,"AllowedRng",1998],[10,"Serializer",2161],[6,"BitSpanError",2162],[5,"TypeId",2163],[10,"WriteBase32",2150],[5,"BLS12381AggregateSignature",122],[10,"Borrow",2164],[17,"Item"],[10,"IntoIterator",2160],[5,"BLS12381PublicKey",122],[5,"BLS12381PrivateKey",122],[5,"BLS12381KeyPair",122],[5,"BLS12381Signature",122],[10,"Iterator",2165],[6,"Ordering",2166],[1,"bool"],[5,"Error",2149],[10,"Hasher",2167],[6,"Option",2168],[5,"BytesRepresentation",1926],[5,"BLS12381AggregateSignature",310],[5,"BLS12381PublicKey",310],[5,"BLS12381PrivateKey",310],[5,"BLS12381KeyPair",310],[5,"BLS12381Signature",310],[8,"BLS12381AggregateSignatureAsBytes",310],[5,"Ed25519PublicKey",499],[10,"Sized",2169],[5,"Ed25519PrivateKey",499],[5,"Ed25519KeyPair",499],[5,"Ed25519Signature",499],[5,"Ed25519AggregateSignature",499],[5,"Signature",2170],[5,"SigningKey",2171],[5,"Base64",689],[5,"Hex",689],[5,"Base58",689],[8,"FastCryptoResult",790],[10,"TryFrom",2172],[1,"array"],[10,"AsRef",2172],[5,"SchemaGenerator",2173],[6,"Schema",2174],[5,"Error",2175],[10,"Doubling",824],[10,"FiatShamirChallenge",824],[10,"FromTrustedByteArray",824],[17,"ScalarType"],[10,"GroupElement",824],[10,"Scalar",824],[10,"HashToGroupElement",824],[17,"Other"],[17,"Output"],[10,"Pairing",824],[10,"MultiScalarMul",824],[1,"u64"],[5,"G1Element",851],[5,"G2Element",851],[5,"GTElement",851],[5,"Scalar",851],[1,"u128"],[10,"ScalarMultiplier",1052],[10,"ToLittleEndianBytes",1052],[5,"WindowedScalarMultiplier",1059],[10,"Add",2176],[5,"HashMap",2177],[5,"RistrettoPoint",1072],[5,"RistrettoScalar",1072],[5,"RistrettoPoint",2178],[5,"Scalar",2179],[5,"ProjectivePoint",1181],[5,"Scalar",1181],[8,"Projective",2180],[8,"Fr",2181],[5,"Digest",1275],[5,"EllipticCurveMultisetHash",1275],[5,"HashFunctionWrapper",1275],[10,"Default",2182],[17,"TypedDigest"],[10,"Hash",1275],[10,"Into",2172],[10,"Eq",2166],[10,"Hash",2167],[10,"Copy",2169],[10,"MultisetHash",1275],[10,"HashFunction",1275],[10,"Digest",2183],[8,"Result",2184],[5,"Error",2185],[5,"Error",2185],[8,"HkdfIkm",1378],[8,"HmacKey",1378],[5,"JWTHeader",1382],[1,"tuple"],[5,"PrivateSeed",1409],[5,"Base64UrlUnpadded",1436,2186],[5,"RSAPublicKey",1436],[5,"RSASignature",1436],[6,"Error",2187],[5,"InvalidEncodingError",2187],[5,"InvalidLengthError",2187],[5,"Secp256k1PublicKey",1500],[5,"Secp256k1PrivateKey",1500],[5,"Secp256k1Signature",1500],[5,"Secp256k1KeyPair",1500],[5,"Secp256k1RecoverableSignature",1655],[5,"Secp256k1Sig",1655],[5,"Signature",2188],[6,"Error",2189],[5,"SerializedSignature",2190],[5,"Message",2189],[5,"PublicKey",2191],[5,"Secp256r1PublicKey",1731],[5,"Secp256r1PrivateKey",1731],[5,"Secp256r1Signature",1731],[5,"Secp256r1KeyPair",1731],[5,"Secp256r1RecoverableSignature",1887],[5,"SerializationHelper",1926],[1,"fn"],[10,"ToFromByteArray",1926],[10,"KeyPair",1998],[5,"SignatureService",1983],[10,"Authenticator",1998],[10,"Signer",1998],[10,"Send",2169],[17,"Sig"],[17,"PubKey"],[17,"PrivKey"],[10,"AggregateAuthenticator",1998],[10,"VerifyingKey",1998],[10,"SigningKey",1998],[10,"ToFromBytes",1998],[10,"ExactSizeIterator",2192],[10,"EncodeDecodeBase64",1998],[10,"Generate",1998],[10,"FromUniformBytes",1998],[10,"InsecureDefault",1998],[17,"Signer"],[17,"DefaultHash"],[10,"RecoverableSignature",1998],[10,"RecoverableSigner",1998],[10,"VerifyRecoverable",1998],[17,"Proof"],[17,"PrivateKey"],[17,"PublicKey"],[10,"VRFKeyPair",2060],[10,"VRFProof",2060],[10,"VRFPublicKey",2060],[10,"VRFPrivateKey",2060],[5,"ECVRFPublicKey",2077],[5,"ECVRFPrivateKey",2077],[5,"ECVRFKeyPair",2077],[5,"ECVRFProof",2077],[5,"SingleSignature",499],[5,"Bech32",689],[10,"Encoding",689],[10,"ReverseWrapper",1275],[10,"Encoding",1436]],"r":[[1436,2186],[1437,2193]],"b":[[79,"impl-Debug-for-GenericByteArray%3CN%3E"],[80,"impl-Display-for-GenericByteArray%3CN%3E"],[221,"impl-Debug-for-BLS12381PublicKey"],[222,"impl-Display-for-BLS12381PublicKey"],[223,"impl-Debug-for-BLS12381PrivateKey"],[224,"impl-Display-for-BLS12381PrivateKey"],[226,"impl-Display-for-BLS12381Signature"],[227,"impl-Debug-for-BLS12381Signature"],[228,"impl-Debug-for-BLS12381AggregateSignature"],[229,"impl-Display-for-BLS12381AggregateSignature"],[410,"impl-Display-for-BLS12381PublicKey"],[411,"impl-Debug-for-BLS12381PublicKey"],[412,"impl-Display-for-BLS12381PrivateKey"],[413,"impl-Debug-for-BLS12381PrivateKey"],[415,"impl-Debug-for-BLS12381Signature"],[416,"impl-Display-for-BLS12381Signature"],[417,"impl-Display-for-BLS12381AggregateSignature"],[418,"impl-Debug-for-BLS12381AggregateSignature"],[600,"impl-Debug-for-Ed25519PublicKey"],[601,"impl-Display-for-Ed25519PublicKey"],[602,"impl-Display-for-Ed25519PrivateKey"],[603,"impl-Debug-for-Ed25519PrivateKey"],[605,"impl-Debug-for-Ed25519Signature"],[606,"impl-Display-for-Ed25519Signature"],[607,"impl-Debug-for-Ed25519AggregateSignature"],[608,"impl-Display-for-Ed25519AggregateSignature"],[613,"impl-From%3CSigningKey%3E-for-Ed25519KeyPair"],[615,"impl-From%3CEd25519PrivateKey%3E-for-Ed25519KeyPair"],[720,"impl-DeserializeAs%3C\'de,+%5Bu8;+N%5D%3E-for-Base64"],[721,"impl-DeserializeAs%3C\'de,+Vec%3Cu8%3E%3E-for-Base64"],[722,"impl-DeserializeAs%3C\'de,+Vec%3Cu8%3E%3E-for-Hex"],[723,"impl-DeserializeAs%3C\'de,+%5Bu8;+N%5D%3E-for-Hex"],[724,"impl-DeserializeAs%3C\'de,+Vec%3Cu8%3E%3E-for-Base58"],[725,"impl-DeserializeAs%3C\'de,+%5Bu8;+N%5D%3E-for-Base58"],[813,"impl-Debug-for-FastCryptoError"],[814,"impl-Display-for-FastCryptoError"],[866,"impl-Add-for-G1Element"],[867,"impl-Add%3C%26G1Element%3E-for-G1Element"],[868,"impl-Add%3CG1Element%3E-for-%26G1Element"],[869,"impl-Add%3C%26G1Element%3E-for-%26G1Element"],[870,"impl-Add-for-G2Element"],[871,"impl-Add%3CG2Element%3E-for-%26G2Element"],[872,"impl-Add%3C%26G2Element%3E-for-G2Element"],[873,"impl-Add%3C%26G2Element%3E-for-%26G2Element"],[874,"impl-Add%3C%26GTElement%3E-for-%26GTElement"],[875,"impl-Add-for-GTElement"],[876,"impl-Add%3C%26GTElement%3E-for-GTElement"],[877,"impl-Add%3CGTElement%3E-for-%26GTElement"],[878,"impl-Add%3CScalar%3E-for-%26Scalar"],[879,"impl-Add-for-Scalar"],[880,"impl-Add%3C%26Scalar%3E-for-Scalar"],[881,"impl-Add%3C%26Scalar%3E-for-%26Scalar"],[882,"impl-AddAssign-for-G1Element"],[883,"impl-AddAssign%3C%26G1Element%3E-for-G1Element"],[884,"impl-AddAssign-for-G2Element"],[885,"impl-AddAssign%3C%26G2Element%3E-for-G2Element"],[886,"impl-AddAssign%3C%26GTElement%3E-for-GTElement"],[887,"impl-AddAssign-for-GTElement"],[888,"impl-AddAssign%3C%26Scalar%3E-for-Scalar"],[889,"impl-AddAssign-for-Scalar"],[956,"impl-Mul%3CScalar%3E-for-G1Element"],[957,"impl-Mul%3C%3CG1Element+as+GroupElement%3E::ScalarType%3E-for-%26G1Element"],[958,"impl-Mul%3C%26%3CG1Element+as+GroupElement%3E::ScalarType%3E-for-%26G1Element"],[959,"impl-Mul%3C%26%3CG1Element+as+GroupElement%3E::ScalarType%3E-for-G1Element"],[960,"impl-Mul%3C%26%3CG2Element+as+GroupElement%3E::ScalarType%3E-for-G2Element"],[961,"impl-Mul%3C%26%3CG2Element+as+GroupElement%3E::ScalarType%3E-for-%26G2Element"],[962,"impl-Mul%3C%3CG2Element+as+GroupElement%3E::ScalarType%3E-for-%26G2Element"],[963,"impl-Mul%3CScalar%3E-for-G2Element"],[964,"impl-Mul%3C%26%3CGTElement+as+GroupElement%3E::ScalarType%3E-for-%26GTElement"],[965,"impl-Mul%3C%3CGTElement+as+GroupElement%3E::ScalarType%3E-for-%26GTElement"],[966,"impl-Mul%3CScalar%3E-for-GTElement"],[967,"impl-Mul%3C%26%3CGTElement+as+GroupElement%3E::ScalarType%3E-for-GTElement"],[968,"impl-Mul%3C%3CScalar+as+GroupElement%3E::ScalarType%3E-for-%26Scalar"],[969,"impl-Mul-for-Scalar"],[970,"impl-Mul%3C%26%3CScalar+as+GroupElement%3E::ScalarType%3E-for-Scalar"],[971,"impl-Mul%3C%26%3CScalar+as+GroupElement%3E::ScalarType%3E-for-%26Scalar"],[972,"impl-MulAssign%3C%3CG1Element+as+GroupElement%3E::ScalarType%3E-for-G1Element"],[973,"impl-MulAssign%3C%26%3CG1Element+as+GroupElement%3E::ScalarType%3E-for-G1Element"],[974,"impl-MulAssign%3C%26%3CG2Element+as+GroupElement%3E::ScalarType%3E-for-G2Element"],[975,"impl-MulAssign%3C%3CG2Element+as+GroupElement%3E::ScalarType%3E-for-G2Element"],[976,"impl-MulAssign%3C%26%3CGTElement+as+GroupElement%3E::ScalarType%3E-for-GTElement"],[977,"impl-MulAssign%3C%3CGTElement+as+GroupElement%3E::ScalarType%3E-for-GTElement"],[978,"impl-MulAssign%3C%26%3CScalar+as+GroupElement%3E::ScalarType%3E-for-Scalar"],[979,"impl-MulAssign%3C%3CScalar+as+GroupElement%3E::ScalarType%3E-for-Scalar"],[983,"impl-Neg-for-%26G1Element"],[984,"impl-Neg-for-G1Element"],[985,"impl-Neg-for-%26G2Element"],[986,"impl-Neg-for-G2Element"],[987,"impl-Neg-for-GTElement"],[988,"impl-Neg-for-%26GTElement"],[989,"impl-Neg-for-Scalar"],[990,"impl-Neg-for-%26Scalar"],[997,"impl-Sub%3C%26G1Element%3E-for-G1Element"],[998,"impl-Sub-for-G1Element"],[999,"impl-Sub%3CG1Element%3E-for-%26G1Element"],[1000,"impl-Sub%3C%26G1Element%3E-for-%26G1Element"],[1001,"impl-Sub-for-G2Element"],[1002,"impl-Sub%3C%26G2Element%3E-for-%26G2Element"],[1003,"impl-Sub%3CG2Element%3E-for-%26G2Element"],[1004,"impl-Sub%3C%26G2Element%3E-for-G2Element"],[1005,"impl-Sub%3CGTElement%3E-for-%26GTElement"],[1006,"impl-Sub%3C%26GTElement%3E-for-%26GTElement"],[1007,"impl-Sub-for-GTElement"],[1008,"impl-Sub%3C%26GTElement%3E-for-GTElement"],[1009,"impl-Sub-for-Scalar"],[1010,"impl-Sub%3C%26Scalar%3E-for-Scalar"],[1011,"impl-Sub%3C%26Scalar%3E-for-%26Scalar"],[1012,"impl-Sub%3CScalar%3E-for-%26Scalar"],[1013,"impl-SubAssign%3C%26G1Element%3E-for-G1Element"],[1014,"impl-SubAssign-for-G1Element"],[1015,"impl-SubAssign-for-G2Element"],[1016,"impl-SubAssign%3C%26G2Element%3E-for-G2Element"],[1017,"impl-SubAssign-for-GTElement"],[1018,"impl-SubAssign%3C%26GTElement%3E-for-GTElement"],[1019,"impl-SubAssign%3C%26Scalar%3E-for-Scalar"],[1020,"impl-SubAssign-for-Scalar"],[1076,"impl-Add%3CRistrettoPoint%3E-for-%26RistrettoPoint"],[1077,"impl-Add%3C%26RistrettoPoint%3E-for-RistrettoPoint"],[1078,"impl-Add%3C%26RistrettoPoint%3E-for-%26RistrettoPoint"],[1079,"impl-Add-for-RistrettoPoint"],[1080,"impl-Add%3CRistrettoScalar%3E-for-%26RistrettoScalar"],[1081,"impl-Add-for-RistrettoScalar"],[1082,"impl-Add%3C%26RistrettoScalar%3E-for-%26RistrettoScalar"],[1083,"impl-Add%3C%26RistrettoScalar%3E-for-RistrettoScalar"],[1084,"impl-AddAssign-for-RistrettoPoint"],[1085,"impl-AddAssign%3C%26RistrettoPoint%3E-for-RistrettoPoint"],[1086,"impl-AddAssign-for-RistrettoScalar"],[1087,"impl-AddAssign%3C%26RistrettoScalar%3E-for-RistrettoScalar"],[1102,"impl-Div%3C__RhsT%3E-for-RistrettoScalar"],[1103,"impl-Div-for-RistrettoScalar"],[1117,"impl-From%3Cu128%3E-for-RistrettoScalar"],[1118,"impl-From%3CScalar%3E-for-RistrettoScalar"],[1133,"impl-Mul%3C%26%3CRistrettoPoint+as+GroupElement%3E::ScalarType%3E-for-RistrettoPoint"],[1134,"impl-Mul%3C%3CRistrettoPoint+as+GroupElement%3E::ScalarType%3E-for-%26RistrettoPoint"],[1135,"impl-Mul%3CRistrettoScalar%3E-for-RistrettoPoint"],[1136,"impl-Mul%3C%26%3CRistrettoPoint+as+GroupElement%3E::ScalarType%3E-for-%26RistrettoPoint"],[1137,"impl-Mul%3C%26%3CRistrettoScalar+as+GroupElement%3E::ScalarType%3E-for-RistrettoScalar"],[1138,"impl-Mul-for-RistrettoScalar"],[1139,"impl-Mul%3C%26%3CRistrettoScalar+as+GroupElement%3E::ScalarType%3E-for-%26RistrettoScalar"],[1140,"impl-Mul%3C%3CRistrettoScalar+as+GroupElement%3E::ScalarType%3E-for-%26RistrettoScalar"],[1141,"impl-MulAssign%3C%3CRistrettoPoint+as+GroupElement%3E::ScalarType%3E-for-RistrettoPoint"],[1142,"impl-MulAssign%3C%26%3CRistrettoPoint+as+GroupElement%3E::ScalarType%3E-for-RistrettoPoint"],[1143,"impl-MulAssign%3C%26%3CRistrettoScalar+as+GroupElement%3E::ScalarType%3E-for-RistrettoScalar"],[1144,"impl-MulAssign%3C%3CRistrettoScalar+as+GroupElement%3E::ScalarType%3E-for-RistrettoScalar"],[1146,"impl-Neg-for-%26RistrettoPoint"],[1147,"impl-Neg-for-RistrettoPoint"],[1148,"impl-Neg-for-RistrettoScalar"],[1149,"impl-Neg-for-%26RistrettoScalar"],[1153,"impl-Sub%3C%26RistrettoPoint%3E-for-%26RistrettoPoint"],[1154,"impl-Sub%3C%26RistrettoPoint%3E-for-RistrettoPoint"],[1155,"impl-Sub-for-RistrettoPoint"],[1156,"impl-Sub%3CRistrettoPoint%3E-for-%26RistrettoPoint"],[1157,"impl-Sub%3CRistrettoScalar%3E-for-%26RistrettoScalar"],[1158,"impl-Sub-for-RistrettoScalar"],[1159,"impl-Sub%3C%26RistrettoScalar%3E-for-%26RistrettoScalar"],[1160,"impl-Sub%3C%26RistrettoScalar%3E-for-RistrettoScalar"],[1161,"impl-SubAssign-for-RistrettoPoint"],[1162,"impl-SubAssign%3C%26RistrettoPoint%3E-for-RistrettoPoint"],[1163,"impl-SubAssign-for-RistrettoScalar"],[1164,"impl-SubAssign%3C%26RistrettoScalar%3E-for-RistrettoScalar"],[1186,"impl-Add%3C%26ProjectivePoint%3E-for-%26ProjectivePoint"],[1187,"impl-Add-for-ProjectivePoint"],[1188,"impl-Add%3CProjectivePoint%3E-for-%26ProjectivePoint"],[1189,"impl-Add%3C%26ProjectivePoint%3E-for-ProjectivePoint"],[1190,"impl-Add%3C%26Scalar%3E-for-%26Scalar"],[1191,"impl-Add-for-Scalar"],[1192,"impl-Add%3CScalar%3E-for-%26Scalar"],[1193,"impl-Add%3C%26Scalar%3E-for-Scalar"],[1194,"impl-AddAssign%3C%26ProjectivePoint%3E-for-ProjectivePoint"],[1195,"impl-AddAssign-for-ProjectivePoint"],[1196,"impl-AddAssign%3C%26Scalar%3E-for-Scalar"],[1197,"impl-AddAssign-for-Scalar"],[1222,"impl-From%3Cu128%3E-for-Scalar"],[1223,"impl-From%3CFp%3CMontBackend%3CFrConfig,+4%3E,+4%3E%3E-for-Scalar"],[1231,"impl-Mul%3CScalar%3E-for-ProjectivePoint"],[1232,"impl-Mul%3C%3CProjectivePoint+as+GroupElement%3E::ScalarType%3E-for-%26ProjectivePoint"],[1233,"impl-Mul%3C%26%3CProjectivePoint+as+GroupElement%3E::ScalarType%3E-for-ProjectivePoint"],[1234,"impl-Mul%3C%26%3CProjectivePoint+as+GroupElement%3E::ScalarType%3E-for-%26ProjectivePoint"],[1235,"impl-Mul%3C%3CScalar+as+GroupElement%3E::ScalarType%3E-for-%26Scalar"],[1236,"impl-Mul%3C%26%3CScalar+as+GroupElement%3E::ScalarType%3E-for-Scalar"],[1237,"impl-Mul%3C%26%3CScalar+as+GroupElement%3E::ScalarType%3E-for-%26Scalar"],[1238,"impl-Mul-for-Scalar"],[1239,"impl-MulAssign%3C%26%3CProjectivePoint+as+GroupElement%3E::ScalarType%3E-for-ProjectivePoint"],[1240,"impl-MulAssign%3C%3CProjectivePoint+as+GroupElement%3E::ScalarType%3E-for-ProjectivePoint"],[1241,"impl-MulAssign%3C%3CScalar+as+GroupElement%3E::ScalarType%3E-for-Scalar"],[1242,"impl-MulAssign%3C%26%3CScalar+as+GroupElement%3E::ScalarType%3E-for-Scalar"],[1243,"impl-Neg-for-%26ProjectivePoint"],[1244,"impl-Neg-for-ProjectivePoint"],[1245,"impl-Neg-for-%26Scalar"],[1246,"impl-Neg-for-Scalar"],[1249,"impl-Sub-for-ProjectivePoint"],[1250,"impl-Sub%3C%26ProjectivePoint%3E-for-ProjectivePoint"],[1251,"impl-Sub%3C%26ProjectivePoint%3E-for-%26ProjectivePoint"],[1252,"impl-Sub%3CProjectivePoint%3E-for-%26ProjectivePoint"],[1253,"impl-Sub%3CScalar%3E-for-%26Scalar"],[1254,"impl-Sub%3C%26Scalar%3E-for-%26Scalar"],[1255,"impl-Sub%3C%26Scalar%3E-for-Scalar"],[1256,"impl-Sub-for-Scalar"],[1257,"impl-SubAssign%3C%26ProjectivePoint%3E-for-ProjectivePoint"],[1258,"impl-SubAssign-for-ProjectivePoint"],[1259,"impl-SubAssign-for-Scalar"],[1260,"impl-SubAssign%3C%26Scalar%3E-for-Scalar"],[1329,"impl-Debug-for-Digest%3CDIGEST_LEN%3E"],[1330,"impl-Display-for-Digest%3CDIGEST_LEN%3E"],[1580,"impl-Debug-for-Secp256k1PublicKey"],[1581,"impl-Display-for-Secp256k1PublicKey"],[1582,"impl-Display-for-Secp256k1PrivateKey"],[1583,"impl-Debug-for-Secp256k1PrivateKey"],[1584,"impl-Display-for-Secp256k1Signature"],[1585,"impl-Debug-for-Secp256k1Signature"],[1692,"impl-Display-for-Signature"],[1693,"impl-Debug-for-Signature"],[1694,"impl-Debug-for-Secp256k1RecoverableSignature"],[1695,"impl-Display-for-Secp256k1RecoverableSignature"],[1812,"impl-Display-for-Secp256r1PublicKey"],[1813,"impl-Debug-for-Secp256r1PublicKey"],[1814,"impl-Display-for-Secp256r1PrivateKey"],[1815,"impl-Debug-for-Secp256r1PrivateKey"],[1816,"impl-Debug-for-Secp256r1Signature"],[1817,"impl-Display-for-Secp256r1Signature"],[1907,"impl-Debug-for-Secp256r1RecoverableSignature"],[1908,"impl-Display-for-Secp256r1RecoverableSignature"],[1944,"impl-Display-for-BytesRepresentation%3CN%3E"],[1945,"impl-Debug-for-BytesRepresentation%3CN%3E"],[1947,"impl-From%3C%26Secp256r1Signature%3E-for-BytesRepresentation%3C%24length%3E"],[1948,"impl-From%3C%26BLS12381AggregateSignature%3E-for-BytesRepresentation%3C%24length%3E"],[1949,"impl-From%3C%26BLS12381AggregateSignature%3E-for-BytesRepresentation%3C%24length%3E"],[1950,"impl-From%3C%26Ed25519PublicKey%3E-for-BytesRepresentation%3C%24length%3E"],[1951,"impl-From%3C%26Secp256k1PublicKey%3E-for-BytesRepresentation%3C%24length%3E"],[1952,"impl-From%3C%26G1Element%3E-for-BytesRepresentation%3C%24length%3E"],[1954,"impl-From%3C%26Ed25519Signature%3E-for-BytesRepresentation%3C%24length%3E"],[1955,"impl-From%3C%26G2Element%3E-for-BytesRepresentation%3C%24length%3E"],[1956,"impl-From%3C%26BLS12381PublicKey%3E-for-BytesRepresentation%3C%24length%3E"],[1957,"impl-From%3C%26Secp256k1Signature%3E-for-BytesRepresentation%3C%24length%3E"],[1958,"impl-From%3C%26BLS12381PublicKey%3E-for-BytesRepresentation%3C%24length%3E"],[1959,"impl-From%3C%26Secp256r1PublicKey%3E-for-BytesRepresentation%3C%24length%3E"]],"c":"OjAAAAEAAAAAAAEAEAAAAIEGggY=","e":"OzAAAAEAANAGpQAAAAAABwAAAAoAAgAQAAAAEgAEACoAAQAuABAAQAACAEQABQBLAAIATwACAFYAAQBcABgAfAAAAIAAAACDAGQA6gAAAO4ACgD+ADgAOAEAADwBAAA/AWQApQEAAKgBAACqAQAArAEJALsBOAD8AQAA/gFjAGQCAABmAgAAaAIAAGsCCAB6AjgAtwIQAMoCAADMAgAAzgIIANkCAADbAgAA3wIJAPMCDgAEAxIAGQMAACYDCgAzAwUAPwMCAEQDAABGAwEASgMAAEwDAABOAwEAVAMAAFYDAQBZAwEAXAMBAF8DIwCEAyAAqAMAAKoDDQC8A2AAHgQAACMEAAAlBAEAKQQAACsEBQAzBBUASwQQAF4EAwBlBAEAaAQBAGwEAABuBCQAlAQJAJ8EAAChBCMAxgQCAMoEAgDPBCwACwUWACQFAQAnBQcAMAUEADgFAAA6BQAAPAUAAEIFAABEBQAARgUCAEoFAgBOBQkAWQUAAFsFBwBoBQoAdAUAAHYFAQB5BQgAgwUPAJQFAACWBQYAnwUQALEFAACzBQAAtQUAALcFAAC5BQAAuwUHAMwFCwDaBQIA3gUAAOYFAADoBUsANQYAADgGAAA6BggARwYFAE4GBgBXBhcAcAYIAHwGBACDBgwAkQYGAJkGBwCiBgAApAYAAKgGAgCuBgAAsAYAALMGBwC8BgMAwQYCAM4GAADQBiIA9AYoACAHAAAiBwgALwcFADYHBwA/BxcAWAcIAGIHEwB3BwEAegcHAIMHBACKBwoAlgcEAJwHBQCjBwcArQcGALUHCgDBBwQAyAcGANIHAADYBwwA5wcFAO4HAADxBwAA8wcBAPgHAgD+BwEADQgFAB4IIABCCAAARAgAAEkIGAA="}],\ ["fastcrypto_cli",{"t":"CSSSFNNNNOOOONNN","n":["sigs_cli_test_vectors","MSG","SEED","TEST_CASES","TestVector","borrow","borrow_mut","from","into","name","private","public","sig","try_from","try_into","type_id"],"q":[[0,"fastcrypto_cli"],[1,"fastcrypto_cli::sigs_cli_test_vectors"],[16,"core::result"],[17,"core::any"]],"i":[0,0,0,0,0,5,5,5,5,5,5,5,5,5,5,5],"f":"`````{{{b{c}}}{{b{e}}}{}{}}{{{b{dc}}}{{b{de}}}{}{}}{cc{}}{ce{}{}}````{c{{f{e}}}{}{}}0{{{b{c}}}h{}}","D":"h","p":[[1,"reference"],[0,"mut"],[6,"Result",16],[5,"TypeId",17],[5,"TestVector",1]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAAwAAwABAAMABgABAAoABgA="}],\ ["fastcrypto_derive",{"t":"YYY","n":["GroupOpsExtend","SilentDebug","SilentDisplay"],"q":[[0,"fastcrypto_derive"]],"i":[0,0,0],"f":"```","D":"h","p":[],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OjAAAAAAAAA="}],\ ["fastcrypto_tbls",{"t":"CCCCCCCCCCCCCCFFSFFNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNONNOONNNNONONNNNNNNNNNNNNNNNONNNNFFFFNNNNNNNNNNNNNNNNNONNNONNNNNNNNNNNNNNNNNNNNNNNOONNNONNNNNNNNNNNNNNNONNNNFFFFNNNNNNNNNNNNNNNNNONNNONNNNNNNNNNNNNNNNNNNNNNNOONNNONNNNNNNNNNNNNNNONNNNHHHHHSFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNONNNNNNNHFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFINNNNNNNNNNNNNNNNNNNNNNNONNNNNNNONNNNNNNNNNNNNNNNOIFIINNNNNNNNNNNNNNNNNNONNNNNNNONNNFNNNNNNNNNNNNNNNNNNNNNIRRIRKINOONNNNOOOMFIIIIIIIFFNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNOOONNNN","n":["dkg","dkg_v0","dkg_v1","dl_verification","ecies","ecies_v0","ecies_v1","mocked_dkg","nizk","nodes","polynomial","random_oracle","tbls","types","Complaint","Confirmation","DKG_MESSAGES_MAX_SIZE","Output","Party","__clone_box","__clone_box","__clone_box","__clone_box","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","complaints","complete","complete_v1","create_message","create_message_v1","deserialize","deserialize","deserialize","deserialize","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","from","from","from","from","id","into","into","into","into","merge","merge_v1","new","nodes","process_message","process_message_v1","random_oracle","sender","serialize","serialize","serialize","serialize","shares","t","t","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","vss_pk","vzip","vzip","vzip","vzip","Message","ProcessedMessage","UsedProcessedMessages","VerifiedProcessedMessages","__clone_box","__clone_box","__clone_box","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","complaint","deserialize","deserialize","deserialize","encrypted_shares","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","from","from","from","from","from","into","into","into","into","is_empty","len","message","sender","serialize","serialize","serialize","shares","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","vss_pk","vzip","vzip","vzip","vzip","Message","ProcessedMessage","UsedProcessedMessages","VerifiedProcessedMessages","__clone_box","__clone_box","__clone_box","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","complaint","deserialize","deserialize","deserialize","encrypted_shares","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","from","from","from","from","from","into","into","into","into","is_empty","len","message","sender","serialize","serialize","serialize","shares","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","vss_pk","vzip","vzip","vzip","vzip","verify_deg_t_poly","verify_equal_exponents","verify_pairs","verify_poly_evals","verify_triplets","AES_KEY_LENGTH","PrivateKey","PublicKey","RecoveryPackage","__clone_box","__clone_box","__clone_box","as_element","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","create_recovery_package","decrypt","decrypt_with_recovery_package","deserialize","deserialize","deserialize","deterministic_encrypt","drop","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","from","from","from","from","from","from_private_key","into","into","into","new","serialize","serialize","serialize","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","Encryption","MultiRecipientEncryption","__clone_box","__clone_box","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","decrypt_from_partial_decryption","deserialize","deserialize","encrypt","ephemeral_key","ephemeral_key","eq","eq","equivalent","equivalent","equivalent","equivalent","fmt","fmt","from","from","get_encryption","into","into","is_empty","len","proof","serialize","serialize","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","verify","vzip","vzip","MultiRecipientEncryption","__clone_box","borrow","borrow_mut","clone","clone_into","create_recovery_package","decrypt","decrypt_with_recovery_package","deserialize","encrypt","ephemeral_key","eq","equivalent","equivalent","fmt","from","into","is_empty","len","proof","proof","serialize","to_owned","try_from","try_into","type_id","verify","vzip","generate_mocked_output","DLNizk","DdhTupleNizk","__clone_box","__clone_box","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","create","create","deserialize","deserialize","eq","eq","equivalent","equivalent","equivalent","equivalent","fmt","fmt","from","from","into","into","serialize","serialize","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","verify","verify","vzip","vzip","Node","Nodes","PartyId","__clone_box","__clone_box","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","deserialize","deserialize","eq","eq","equivalent","equivalent","equivalent","equivalent","fmt","fmt","from","from","hash","id","into","into","iter","new","new_reduced","node_id_to_node","num_nodes","pk","serialize","serialize","share_id_to_node","share_ids_iter","share_ids_of","to_owned","to_owned","total_weight","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","weight","Eval","Poly","PrivatePoly","PublicPoly","__clone_box","add_assign","as_vec","borrow","borrow_mut","c0","clone","clone_into","commit","degree","deserialize","eq","equivalent","equivalent","eval","fmt","from","from","index","into","rand","serialize","to_owned","try_from","try_into","type_id","value","verify_share","vzip","zero","RandomOracle","__clone_box","borrow","borrow_mut","clone","clone_into","deserialize","eq","equivalent","equivalent","evaluate","extend","fmt","from","into","new","serialize","to_owned","try_from","try_into","type_id","vzip","PartialSignature","Private","Public","Share","Signature","ThresholdBls","UnindexedPartialSignatures","aggregate","index","index","partial_sign","partial_sign_batch","partial_verify","partial_verify_batch","value","value","values","verify","IndexedValue","PrivateBlsKey","PublicBlsKey","PublicVssKey","RawSignature","Share","ShareIndex","Signature","ThresholdBls12381MinSig","UnindexedValues","__clone_box","__clone_box","add_indexes","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","deserialize","deserialize","eq","eq","equivalent","equivalent","equivalent","equivalent","fmt","fmt","from","from","from","from","index","index","into","into","into","serialize","serialize","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","value","value","values","verify","vzip","vzip","vzip"],"q":[[0,"fastcrypto_tbls"],[14,"fastcrypto_tbls::dkg"],[105,"fastcrypto_tbls::dkg_v0"],[180,"fastcrypto_tbls::dkg_v1"],[255,"fastcrypto_tbls::dl_verification"],[260,"fastcrypto_tbls::ecies"],[328,"fastcrypto_tbls::ecies_v0"],[375,"fastcrypto_tbls::ecies_v1"],[404,"fastcrypto_tbls::mocked_dkg"],[405,"fastcrypto_tbls::nizk"],[447,"fastcrypto_tbls::nodes"],[499,"fastcrypto_tbls::polynomial"],[533,"fastcrypto_tbls::random_oracle"],[555,"fastcrypto_tbls::tbls"],[573,"fastcrypto_tbls::types"],[635,"dyn_clone::sealed"],[636,"core::clone"],[637,"fastcrypto::groups"],[638,"fastcrypto::error"],[639,"serde::ser"],[640,"serde::de"],[641,"fastcrypto::traits"],[642,"core::result"],[643,"core::cmp"],[644,"core::fmt"],[645,"core::any"],[646,"fastcrypto::groups::bls12381"],[647,"alloc::vec"],[648,"fastcrypto::hash"],[649,"core::iter::traits::iterator"],[650,"core::borrow"]],"i":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,8,9,10,5,8,9,10,5,8,9,10,5,8,9,10,5,8,9,10,9,5,5,5,5,5,8,9,10,5,8,9,5,5,8,8,9,9,8,9,10,5,8,9,10,5,5,8,9,10,5,5,5,10,5,5,5,9,5,8,9,10,10,5,5,5,8,9,10,5,8,9,10,5,8,9,10,5,8,9,10,10,5,8,9,10,0,0,0,0,20,30,11,39,20,30,11,39,20,30,11,20,30,11,20,30,11,30,20,30,11,20,20,30,11,20,20,30,30,11,11,20,30,11,39,20,30,11,11,39,20,30,11,39,39,30,20,20,30,11,30,20,30,11,39,20,30,11,39,20,30,11,39,20,30,11,20,39,20,30,11,0,0,0,0,21,32,18,41,21,32,18,41,21,32,18,21,32,18,21,32,18,32,21,32,18,21,21,32,18,21,21,32,32,18,18,21,32,18,41,21,32,18,18,41,21,32,18,41,41,32,21,21,32,18,32,21,32,18,41,21,32,18,41,21,32,18,41,21,32,18,21,41,21,32,18,0,0,0,0,0,0,0,0,0,33,46,47,46,33,46,47,33,46,47,33,46,47,33,46,47,33,33,46,33,46,47,46,33,33,46,47,33,33,46,46,47,47,33,46,47,33,33,46,46,47,46,33,46,47,33,33,46,47,33,46,47,33,46,47,33,46,47,33,46,47,33,46,47,0,0,48,51,48,51,48,51,48,51,48,51,48,48,51,51,48,51,48,51,48,48,51,51,48,51,48,51,51,48,51,51,51,51,48,51,48,51,48,51,48,51,48,51,51,48,51,0,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,0,0,0,54,52,54,52,54,52,54,52,54,52,54,52,54,52,54,52,54,54,52,52,54,52,54,52,54,52,54,52,54,52,54,52,54,52,54,52,54,52,54,52,0,0,0,58,34,58,34,58,34,58,34,58,34,58,34,58,34,58,58,34,34,58,34,58,34,34,58,58,34,34,34,34,34,34,58,58,34,34,34,34,58,34,34,58,34,58,34,58,34,58,34,58,0,0,0,0,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,44,45,45,45,45,45,45,45,44,45,45,45,0,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,0,72,72,0,72,0,0,72,69,67,72,72,72,72,69,67,73,72,0,0,0,0,0,0,0,0,0,0,71,70,70,74,71,70,74,71,70,71,70,71,70,71,70,71,70,71,71,70,70,71,70,74,71,70,70,75,71,74,71,70,71,70,71,70,74,71,70,74,71,70,74,71,70,75,71,70,74,74,71,70],"f":"```````````````````{{{b{c}}d}f{}}000{{{b{c}}}{{b{e}}}{}{}}000{{{b{hc}}}{{b{he}}}{}{}}000{{{b{{j{ce}}}}}{{j{ce}}}{ln}{ln}}{{{b{{A`{c}}}}}{{A`{c}}}{ln}}{{{b{{Ab{c}}}}}{{Ab{c}}}{ln}}{{{b{{Ad{ce}}}}}{{Ad{ce}}}{ln}{ln}}{{{b{c}}{b{he}}}f{}{}}000`{{{b{{j{ce}}}}{b{{Af{ce}}}}{b{{Ah{{Ab{e}}}}}}{b{hg}}}{{Aj{{Ad{ce}}}}}{nAlAnB`}{nAnB`}Bb}{{{b{{j{ce}}}}{b{{Bd{ce}}}}{b{{Ah{{Ab{e}}}}}}{b{hg}}}{{Aj{{Ad{ce}}}}}{nAlAnB`}{nAnBfB`}Bb}{{{b{{j{ce}}}}{b{hg}}}{{Aj{{Bh{ce}}}}}{nAlAnB`}{nAnB`}Bb}{{{b{{j{ce}}}}{b{hg}}}{{Aj{{Bj{ce}}}}}{nAlAnB`}{nAnBfB`}Bb}{c{{Bl{{j{eg}}}}}Bn{C`n}{C`n}}{c{{Bl{{A`{e}}}}}Bn{C`n}}{c{{Bl{{Ab{e}}}}}Bn{C`n}}{c{{Bl{{Ad{eg}}}}}Bn{C`n}{C`n}}{{{b{{j{ce}}}}{b{{j{ce}}}}}Cb{Cdn}{Cdn}}{{{b{{A`{c}}}}{b{{A`{c}}}}}Cb{Cdn}}{{{b{{Ab{c}}}}{b{{Ab{c}}}}}Cb{Cdn}}{{{b{c}}{b{e}}}Cb{}{}}00000{{{b{{A`{c}}}}{b{hCf}}}Ch{Cjn}}{{{b{{Ab{c}}}}{b{hCf}}}Ch{Cjn}}{{{b{{Ad{ce}}}}{b{hCf}}}Ch{Cjn}{Cjn}}{cc{}}000`{ce{}{}}000{{{b{{j{ce}}}}{b{{Ah{{Cl{ce}}}}}}}{{Aj{{Cn{{Ab{e}}{Af{ce}}}}}}}{nAlAnB`}{nAnB`}}{{{b{{j{ce}}}}{b{{Ah{{D`{ce}}}}}}}{{Aj{{Cn{{Ab{e}}{Bd{ce}}}}}}}{nAlAnB`}{nAnBfB`}}{{{Db{c}}{Dd{c}}DfDh{b{he}}}{{Aj{{j{gc}}}}}{nAnB`}Bb{nAlAnB`}}`{{{b{{j{ce}}}}{Bh{ce}}{b{hg}}}{{Aj{{Cl{ce}}}}}{nAlAnB`}{nAnB`}Bb}{{{b{{j{ce}}}}{Bj{ce}}{b{hg}}}{{Aj{{D`{ce}}}}}{nAlAnB`}{nAnBfB`}Bb}``{{{b{{j{ce}}}}g}Bl{Ann}{Ann}Dj}{{{b{{A`{c}}}}e}Bl{Ann}Dj}{{{b{{Ab{c}}}}e}Bl{Ann}Dj}{{{b{{Ad{ce}}}}g}Bl{Ann}{Ann}Dj}`{{{b{{j{ce}}}}}Df{nAlAnB`}{nAnB`}}`{{{b{c}}}e{}{}}000{c{{Bl{e}}}{}{}}0000000{{{b{c}}}Dl{}}000`====````{{{b{c}}d}f{}}00{{{b{c}}}{{b{e}}}{}{}}000{{{b{hc}}}{{b{he}}}{}{}}000{{{b{{Bh{ce}}}}}{{Bh{ce}}}{ln}{ln}}{{{b{{Cl{ce}}}}}{{Cl{ce}}}{ln}{ln}}{{{b{{Af{ce}}}}}{{Af{ce}}}{ln}{ln}}{{{b{c}}{b{he}}}f{}{}}00`{c{{Bl{{Bh{eg}}}}}Bn{C`n}{C`n}}{c{{Bl{{Cl{eg}}}}}Bn{C`n}{C`n}}{c{{Bl{{Af{eg}}}}}Bn{C`n}{C`n}}`{{{b{{Bh{ce}}}}{b{{Bh{ce}}}}}Cb{Cdn}{Cdn}}{{{b{{Cl{ce}}}}{b{{Cl{ce}}}}}Cb{Cdn}{Cdn}}{{{b{{Af{ce}}}}{b{{Af{ce}}}}}Cb{Cdn}{Cdn}}{{{b{c}}{b{e}}}Cb{}{}}00000{{{b{{Bh{ce}}}}{b{hCf}}}Ch{Cjn}{Cjn}}{{{b{{Cl{ce}}}}{b{hCf}}}Ch{Cjn}{Cjn}}{{{b{{Af{ce}}}}{b{hCf}}}Ch{Cjn}{Cjn}}{cc{}}000{{{b{{Ah{{Cl{ce}}}}}}}{{Af{ce}}}nn}{ce{}{}}000{{{b{{Dn{ce}}}}}Cbnn}{{{b{{Dn{ce}}}}}E`nn}``{{{b{{Bh{ce}}}}g}Bl{Ann}{Ann}Dj}{{{b{{Cl{ce}}}}g}Bl{Ann}{Ann}Dj}{{{b{{Af{ce}}}}g}Bl{Ann}{Ann}Dj}`{{{b{c}}}e{}{}}00{c{{Bl{e}}}{}{}}0000000{{{b{c}}}Dl{}}000`8888````{{{b{c}}d}f{}}00{{{b{c}}}{{b{e}}}{}{}}000{{{b{hc}}}{{b{he}}}{}{}}000{{{b{{Bj{ce}}}}}{{Bj{ce}}}{ln}{ln}}{{{b{{D`{ce}}}}}{{D`{ce}}}{ln}{ln}}{{{b{{Bd{ce}}}}}{{Bd{ce}}}{ln}{ln}}{{{b{c}}{b{he}}}f{}{}}00`{c{{Bl{{Bj{eg}}}}}Bn{C`n}{C`n}}{c{{Bl{{D`{eg}}}}}Bn{C`n}{C`n}}{c{{Bl{{Bd{eg}}}}}Bn{C`n}{C`n}}`{{{b{{Bj{ce}}}}{b{{Bj{ce}}}}}Cb{Cdn}{Cdn}}{{{b{{D`{ce}}}}{b{{D`{ce}}}}}Cb{Cdn}{Cdn}}{{{b{{Bd{ce}}}}{b{{Bd{ce}}}}}Cb{Cdn}{Cdn}}{{{b{c}}{b{e}}}Cb{}{}}00000{{{b{{Bj{ce}}}}{b{hCf}}}Ch{Cjn}{Cjn}}{{{b{{D`{ce}}}}{b{hCf}}}Ch{Cjn}{Cjn}}{{{b{{Bd{ce}}}}{b{hCf}}}Ch{Cjn}{Cjn}}{cc{}}000{{{b{{Ah{{D`{ce}}}}}}}{{Bd{ce}}}nn}{ce{}{}}000{{{b{{Eb{ce}}}}}Cbnn}{{{b{{Eb{ce}}}}}E`nn}``{{{b{{Bj{ce}}}}g}Bl{Ann}{Ann}Dj}{{{b{{D`{ce}}}}g}Bl{Ann}{Ann}Dj}{{{b{{Bd{ce}}}}g}Bl{Ann}{Ann}Dj}`{{{b{c}}}e{}{}}00{c{{Bl{e}}}{}{}}0000000{{{b{c}}}Dl{}}000`8888{{Df{b{{Ah{c}}}}{b{Ah}}{b{he}}}{{Aj{f}}}{nAl}Bb}{{{b{{Ah{Ed}}}}{b{{Ah{Ef}}}}{b{hc}}}{{Aj{f}}}Bb}{{{b{{Ah{{Cn{c}}}}}}{b{he}}}{{Aj{f}}}{nAl}Bb}{{{b{{Ah{Eh}}}}{b{{Ej{c}}}}{b{he}}}{{Aj{f}}}{nAl}Bb}{{{b{{Ah{{Cn{cc}}}}}}{b{he}}}{{Aj{f}}}{nAl}Bb}````{{{b{c}}d}f{}}00{{{b{{El{c}}}}}{{b{c}}}{nAnB`}}{{{b{c}}}{{b{e}}}{}{}}00{{{b{hc}}}{{b{he}}}{}{}}00{{{b{{Db{c}}}}}{{Db{c}}}{ln}}{{{b{{El{c}}}}}{{El{c}}}{ln}}{{{b{{En{c}}}}}{{En{c}}}{ln}}{{{b{c}}{b{he}}}f{}{}}00{{{b{{Db{c}}}}{b{{F`{c}}}}{b{Dh}}{b{he}}}{{En{c}}}{nAn}Bb}{{{b{{Db{c}}}}{b{{F`{c}}}}}{{Fd{Fb}}}{nAn}}{{{b{{El{c}}}}{b{{En{c}}}}{b{Dh}}{b{{F`{c}}}}}{{Aj{{Fd{Fb}}}}}{nAnB`}}{c{{Bl{{Db{e}}}}}Bnn}{c{{Bl{{El{e}}}}}Bn{C`n}}{c{{Bl{{En{e}}}}}Bn{C`n}}{{{b{{Ah{Fb}}}}{b{c}}{b{c}}E`}{{F`{c}}}{nAnB`}}{{{b{h{Db{c}}}}}fn}{{{b{{Db{c}}}}{b{{Db{c}}}}}Cb{Cdn}}{{{b{{El{c}}}}{b{{El{c}}}}}Cb{Cdn}}{{{b{{En{c}}}}{b{{En{c}}}}}Cb{Cdn}}{{{b{c}}{b{e}}}Cb{}{}}00000{{{b{{Db{c}}}}{b{hCf}}}Ch{Cjn}}{{{b{{El{c}}}}{b{hCf}}}Ch{Cjn}}{{{b{{En{c}}}}{b{hCf}}}Ch{Cjn}}{{}{{Db{c}}}{nAn}}{cc{}}0{c{{El{c}}}n}1{{{b{{Db{c}}}}}{{El{c}}}{nAnB`}}{ce{}{}}00{{{b{hc}}}{{Db{e}}}Bb{nAn}}{{{b{{Db{c}}}}e}BlnDj}{{{b{{El{c}}}}e}Bl{Ann}Dj}{{{b{{En{c}}}}e}Bl{Ann}Dj}{{{b{c}}}e{}{}}00{c{{Bl{e}}}{}{}}00000{{{b{c}}}Dl{}}00777``{{{b{c}}d}f{}}0{{{b{c}}}{{b{e}}}{}{}}0{{{b{hc}}}{{b{he}}}{}{}}0{{{b{{F`{c}}}}}{{F`{c}}}{ln}}{{{b{{Ff{c}}}}}{{Ff{c}}}{ln}}{{{b{c}}{b{he}}}f{}{}}0{{{b{{F`{c}}}}{b{c}}}{{Fd{Fb}}}{nAn}}{c{{Bl{{F`{e}}}}}Bn{C`n}}{c{{Bl{{Ff{e}}}}}Bn{C`n}}{{{b{{Ah{{Cn{{El{c}}{Fd{Fb}}}}}}}}{b{Dh}}{b{he}}}{{Ff{c}}}{nAn}Bb}{{{b{{F`{c}}}}}{{b{c}}}{nAn}}{{{b{{Ff{c}}}}}{{b{c}}}{nAn}}{{{b{{F`{c}}}}{b{{F`{c}}}}}Cb{Cdn}}{{{b{{Ff{c}}}}{b{{Ff{c}}}}}Cb{Cdn}}{{{b{c}}{b{e}}}Cb{}{}}000{{{b{{F`{c}}}}{b{hCf}}}Ch{Cjn}}{{{b{{Ff{c}}}}{b{hCf}}}Ch{Cjn}}{cc{}}0{{{b{{Ff{c}}}}E`}{{Aj{{F`{c}}}}}{nAn}}{ce{}{}}0{{{b{{Ff{c}}}}}Cb{nAn}}{{{b{{Ff{c}}}}}E`{nAn}}{{{b{{Ff{c}}}}}{{b{{Fh{c}}}}}{nAn}}{{{b{{F`{c}}}}e}Bl{Ann}Dj}{{{b{{Ff{c}}}}e}Bl{Ann}Dj}{{{b{c}}}e{}{}}0{c{{Bl{e}}}{}{}}000{{{b{c}}}Dl{}}0{{{b{{Ff{c}}}}{b{Dh}}}{{Aj{f}}}{nAn}}99`{{{b{c}}d}f{}}{{{b{c}}}{{b{e}}}{}{}}{{{b{hc}}}{{b{he}}}{}{}}{{{b{{Fj{c}}}}}{{Fj{c}}}{ln}}{{{b{c}}{b{he}}}f{}{}}{{{b{{Fj{c}}}}{b{{Db{c}}}}{b{Dh}}{b{he}}}{{En{c}}}{BfnAn}Bb}{{{b{{Fj{c}}}}{b{{Db{c}}}}{b{Dh}}E`}{{Fd{Fb}}}{BfnAn}}{{{b{{Fj{c}}}}{b{{En{c}}}}{b{Dh}}{b{Dh}}{b{{El{c}}}}E`}{{Aj{{Fd{Fb}}}}}{BfnAn}}{c{{Bl{{Fj{e}}}}}Bn{C`n}}{{{b{{Ah{{Cn{{El{c}}{Fd{Fb}}}}}}}}{b{Dh}}{b{he}}}{{Fj{c}}}{BfnAn}Bb}{{{b{{Fj{c}}}}}{{b{c}}}{BfnAn}}{{{b{{Fj{c}}}}{b{{Fj{c}}}}}Cb{Cdn}}{{{b{c}}{b{e}}}Cb{}{}}0{{{b{{Fj{c}}}}{b{hCf}}}Ch{Cjn}}{cc{}}{ce{}{}}{{{b{{Fj{c}}}}}Cb{BfnAn}}{{{b{{Fj{c}}}}}E`{BfnAn}}{{{b{{Fj{c}}}}}{{b{{Fl{c}}}}}{BfnAn}}`{{{b{{Fj{c}}}}e}Bl{Ann}Dj}{{{b{c}}}e{}{}}{c{{Bl{e}}}{}{}}0{{{b{c}}}Dl{}}{{{b{{Fj{c}}}}{b{Dh}}}{{Aj{f}}}{BfnAn}}8{{{Dd{c}}FnG`Gb}{{Ad{ec}}}{nAn}{nAn}}``{{{b{c}}d}f{}}0{{{b{c}}}{{b{e}}}{}{}}0{{{b{hc}}}{{b{he}}}{}{}}0{{{b{{Fl{c}}}}}{{Fl{c}}}{ln}}{{{b{{Fh{c}}}}}{{Fh{c}}}{ln}}{{{b{c}}{b{he}}}f{}{}}0{{b{b{c}}{b{c}}{b{c}}{b{Dh}}{b{he}}}{{Fl{c}}}{nAn}Bb}{{b{b{c}}{b{{Ah{Fb}}}}{b{Dh}}{b{he}}}{{Fh{c}}}{nAn}Bb}{c{{Bl{{Fl{e}}}}}Bn{nC`}}{c{{Bl{{Fh{e}}}}}Bn{nC`}}{{{b{{Fl{c}}}}{b{{Fl{c}}}}}Cb{Cdn}}{{{b{{Fh{c}}}}{b{{Fh{c}}}}}Cb{Cdn}}{{{b{c}}{b{e}}}Cb{}{}}000{{{b{{Fl{c}}}}{b{hCf}}}Ch{Cjn}}{{{b{{Fh{c}}}}{b{hCf}}}Ch{Cjn}}{cc{}}0{ce{}{}}0{{{b{{Fl{c}}}}e}Bl{Ann}Dj}{{{b{{Fh{c}}}}e}Bl{Ann}Dj}{{{b{c}}}e{}{}}0{c{{Bl{e}}}{}{}}000{{{b{c}}}Dl{}}0{{{b{{Fl{c}}}}{b{c}}{b{c}}{b{c}}{b{Dh}}}{{Aj{f}}}{nAn}}{{{b{{Fh{c}}}}{b{c}}{b{{Ah{Fb}}}}{b{Dh}}}{{Aj{f}}}{nAn}}77```{{{b{c}}d}f{}}0{{{b{c}}}{{b{e}}}{}{}}0{{{b{hc}}}{{b{he}}}{}{}}0{{{b{{Gd{c}}}}}{{Gd{c}}}{ln}}{{{b{{Dd{c}}}}}{{Dd{c}}}{ln}}{{{b{c}}{b{he}}}f{}{}}0{c{{Bl{{Gd{e}}}}}Bn{C`n}}{c{{Bl{{Dd{e}}}}}Bn{C`n}}{{{b{{Gd{c}}}}{b{{Gd{c}}}}}Cb{Cdn}}{{{b{{Dd{c}}}}{b{{Dd{c}}}}}Cb{Cdn}}{{{b{c}}{b{e}}}Cb{}{}}000{{{b{{Gd{c}}}}{b{hCf}}}Ch{Cjn}}{{{b{{Dd{c}}}}{b{hCf}}}Ch{Cjn}}{cc{}}0{{{b{{Dd{c}}}}}Gf{nAn}}`{ce{}{}}0{{{b{{Dd{c}}}}}{{`{{Gj{}{{Gh{{b{{Gd{c}}}}}}}}}}}{nAn}}{{{Fd{{Gd{c}}}}}{{Aj{{Dd{c}}}}}{nAn}}{{{Fd{{Gd{c}}}}DfDfDf}{{Aj{{Cn{{Dd{c}}Df}}}}}{nAn}}{{{b{{Dd{c}}}}Gb}{{Aj{{b{{Gd{c}}}}}}}{nAn}}{{{b{{Dd{c}}}}}E`{nAn}}`{{{b{{Gd{c}}}}e}Bl{Ann}Dj}{{{b{{Dd{c}}}}e}Bl{Ann}Dj}{{{b{{Dd{c}}}}{b{Gl}}}{{Aj{{b{{Gd{c}}}}}}}{nAn}}{{{b{{Dd{c}}}}}{{`{{Gj{}{{Gh{Gl}}}}}}}{nAn}}{{{b{{Dd{c}}}}Gb}{{Aj{{Fd{Gl}}}}}{nAn}}{{{b{c}}}e{}{}}0{{{b{{Dd{c}}}}}Df{nAn}}{c{{Bl{e}}}{}{}}000{{{b{c}}}Dl{}}0>>`````{{{b{c}}d}f{}}{{{b{h{Ej{c}}}}{b{{Ej{c}}}}}fn}{{{b{{Ej{c}}}}}{{b{{Fd{c}}}}}n}{{{b{c}}}{{b{e}}}{}{}}{{{b{hc}}}{{b{he}}}{}{}}{{{b{{Ej{c}}}}}{{b{c}}}n}{{{b{{Ej{c}}}}}{{Ej{c}}}l}{{{b{c}}{b{he}}}f{}{}}{{{b{{Ej{c}}}}}{{Ej{e}}}Gn{{n{}{{H`{c}}}}}}{{{b{{Ej{c}}}}}E`{}}{c{{Bl{{Ej{e}}}}}BnC`}{{{b{{Ej{c}}}}{b{{Ej{c}}}}}CbCd}{{{b{c}}{b{e}}}Cb{}{}}0{{{b{{Ej{c}}}}Gl}{{Eh{c}}}n}{{{b{{Ej{c}}}}{b{hCf}}}ChCj}{cc{}}{{{Fd{c}}}{{Ej{c}}}{}}`{ce{}{}}{{Df{b{hc}}}{{Ej{e}}}BbGn}{{{b{{Ej{c}}}}e}BlAnDj}{{{b{c}}}e{}{}}{c{{Bl{e}}}{}{}}0{{{b{c}}}Dl{}}`{{{b{{Ej{c}}}}Glb}{{Aj{f}}}n}6{{}{{Ej{c}}}n}`{{{b{c}}d}f{}}{{{b{c}}}{{b{e}}}{}{}}{{{b{hc}}}{{b{he}}}{}{}}{{{b{Dh}}}Dh}{{{b{c}}{b{he}}}f{}{}}{c{{Bl{Dh}}}Bn}{{{b{Dh}}{b{Dh}}}Cb}{{{b{c}}{b{e}}}Cb{}{}}0{{{b{Dh}}{b{c}}}{{Hb{Fb}}}An}{{{b{Dh}}{b{Hd}}}Dh}{{{b{Dh}}{b{hCf}}}Ch}{cc{}}{ce{}{}}{{{b{Hd}}}Dh}{{{b{Dh}}c}BlDj}{{{b{c}}}e{}{}}{c{{Bl{e}}}{}{}}0{{{b{c}}}Dl{}}5```````{{Dfg}{{Aj{c}}}{}{{Hh{{Hf{c}}}}}{{Gj{}{{Gh{e}}}}l}}``{{{b{{Hj{c}}}}{b{{Ah{Fb}}}}}{{Hf{e}}}{}{}}{{g{b{{Ah{Fb}}}}}{{Fd{{Hf{i}}}}}{}{{Hh{{Hj{c}}}}}{{Gj{}{{Gh{e}}}}}{}}{{{b{{Ej{c}}}}{b{{Ah{Fb}}}}{b{{Hf{e}}}}}{{Aj{f}}}{}{}}{{{b{{Ej{c}}}}{b{{Ah{Fb}}}}i{b{hk}}}{{Aj{f}}}{}{}{{Hh{{Hf{e}}}}}{{Gj{}{{Gh{g}}}}}Bb}```{{{b{c}}{b{{Ah{Fb}}}}{b{e}}}{{Aj{f}}}{}{}}``````````{{{b{c}}d}f{}}0{{{Hl{c}}{b{{Ah{Gl}}}}}{{Aj{{Fd{{Hn{c}}}}}}}{}}{{{b{c}}}{{b{e}}}{}{}}00{{{b{hc}}}{{b{he}}}{}{}}00{{{b{{Hn{c}}}}}{{Hn{c}}}l}{{{b{{Hl{c}}}}}{{Hl{c}}}l}{{{b{c}}{b{he}}}f{}{}}0{c{{Bl{{Hn{e}}}}}BnC`}{c{{Bl{{Hl{e}}}}}BnC`}{{{b{{Hn{c}}}}{b{{Hn{c}}}}}CbCd}{{{b{{Hl{c}}}}{b{{Hl{c}}}}}CbCd}{{{b{c}}{b{e}}}Cb{}{}}000{{{b{{Hn{c}}}}{b{hCf}}}ChCj}{{{b{{Hl{c}}}}{b{hCf}}}ChCj}{cc{}}00{{{Fd{{Hn{c}}}}}{{Hl{c}}}{}}``{ce{}{}}00{{{b{{Hn{c}}}}e}BlAnDj}{{{b{{Hl{c}}}}e}BlAnDj}{{{b{c}}}e{}{}}0{c{{Bl{e}}}{}{}}00000{{{b{c}}}Dl{}}00```{{{b{c}}{b{{Ah{Fb}}}}{b{e}}}{{Aj{f}}}{}{}}666","D":"AAf","p":[[1,"reference"],[5,"Private",635],[1,"unit"],[0,"mut"],[5,"Party",14],[10,"Clone",636],[10,"GroupElement",637],[5,"Complaint",14],[5,"Confirmation",14],[5,"Output",14],[5,"UsedProcessedMessages",105],[1,"slice"],[8,"FastCryptoResult",638],[10,"MultiScalarMul",637],[10,"Serialize",639],[10,"DeserializeOwned",640],[10,"AllowedRng",641],[5,"UsedProcessedMessages",180],[10,"HashToGroupElement",637],[5,"Message",105],[5,"Message",180],[6,"Result",642],[10,"Deserializer",640],[10,"Deserialize",640],[1,"bool"],[10,"PartialEq",643],[5,"Formatter",644],[8,"Result",644],[10,"Debug",644],[5,"ProcessedMessage",105],[1,"tuple"],[5,"ProcessedMessage",180],[5,"PrivateKey",260],[5,"Nodes",447],[1,"u16"],[5,"RandomOracle",533],[10,"Serializer",639],[5,"TypeId",645],[5,"VerifiedProcessedMessages",105],[1,"usize"],[5,"VerifiedProcessedMessages",180],[5,"G1Element",646],[5,"G2Element",646],[8,"Eval",499],[5,"Poly",499],[5,"PublicKey",260],[5,"RecoveryPackage",260],[5,"Encryption",328],[1,"u8"],[5,"Vec",647],[5,"MultiRecipientEncryption",328],[5,"DLNizk",405],[5,"MultiRecipientEncryption",375],[5,"DdhTupleNizk",405],[1,"u32"],[1,"u128"],[8,"PartyId",447],[5,"Node",447],[5,"Digest",648],[17,"Item"],[10,"Iterator",649],[8,"ShareIndex",573],[10,"Scalar",637],[17,"ScalarType"],[1,"array"],[1,"str"],[8,"PartialSignature",555],[10,"Borrow",650],[8,"Share",555],[5,"UnindexedValues",573],[5,"IndexedValue",573],[10,"ThresholdBls",555],[8,"UnindexedPartialSignatures",555],[5,"ThresholdBls12381MinSig",573],[8,"Share",573]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAPABPQABAA0AEQAAABQAEwAtAA8AQQAAAEkAAABMAAYAVAAVAG4AFACEAAsAlAAAAJkABgChAA4AsQADALkAFADPAAsA3wAAAOQABgDsAA4A/AADAAUBAgAJASQAMAEAADIBAAA2ARIASwEXAGUBAABoAQ8AeQEEAIABBwCKAQoAmAEJAKQBCQCyAQkAvQECAMIBFADZAQEA4AEAAOIBAgDoAQEA6wEIAPYBAwD7AQEA/gEBAAICAwAHAgAACQIBAA0CBQAUAgAAFwIIACICAAAmAgcALwIAADICAAA0AgEAOgICAD8CAwBFAgAASAIWAGICAgBoAhMA"}],\ -["fastcrypto_vdf",{"t":"CCCFNONNNONNONNNNCNNNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCCCHHKRKRMMMRRRKMMCIFNNNNNNNNNNN","n":["class_group","math","vdf","QuadraticForm","__clone_box","a","add","add","add","b","borrow","borrow_mut","c","clone","clone_into","compose","deserialize","discriminant","discriminant","double","eq","equivalent","equivalent","fmt","from","from_a_b_and_discriminant","generator","hash_to_group","hash_to_group_with_default_parameters","into","is_in_group","neg","serialize","to_owned","try_from","try_into","type_id","vzip","zero","DISCRIMINANT_3072","Discriminant","__clone_box","bits","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","deref","deserialize","eq","equivalent","equivalent","fmt","from","from","from_seed","into","into","serialize","to_owned","try_from","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","hash_prime","jacobi","parameterized_group","is_probable_prime","jacobi","Parameter","ParameterType","ParameterizedGroupElement","ScalarType","from_seed","is_in_group","zero","InputType","OutputType","ProofType","VDF","evaluate","verify","wesolowski","DefaultVDF","WesolowskisVDF","borrow","borrow_mut","evaluate","from","into","new","try_from","try_into","type_id","verify","vzip"],"q":[[0,"fastcrypto_vdf"],[3,"fastcrypto_vdf::class_group"],[39,"fastcrypto_vdf::class_group::discriminant"],[71,"fastcrypto_vdf::math"],[74,"fastcrypto_vdf::math::hash_prime"],[75,"fastcrypto_vdf::math::jacobi"],[76,"fastcrypto_vdf::math::parameterized_group"],[83,"fastcrypto_vdf::vdf"],[90,"fastcrypto_vdf::vdf::wesolowski"],[103,"dyn_clone::sealed"],[104,"core::result"],[105,"serde::de"],[106,"num_bigint::bigint"],[107,"core::fmt"],[108,"fastcrypto::error"],[109,"serde::ser"],[110,"core::any"],[111,"num_bigint::biguint"],[112,"core::convert"],[113,"fastcrypto::groups::multiplier"]],"i":[0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,12,12,12,20,12,20,12,12,20,12,12,12,12,12,12,20,12,12,20,12,12,12,12,20,12,20,12,20,12,20,0,0,0,0,0,0,27,0,27,24,27,27,32,32,32,0,32,32,0,0,0,34,34,34,34,34,34,34,34,34,34,34],"f":"````{{{b{c}}d}f{}}`{{hh}c{}}{{h{b{h}}}c{}}{{{b{h}}{b{h}}}c{}}`{{{b{c}}}{{b{e}}}{}{}}{{{b{jc}}}{{b{je}}}{}{}}`{{{b{h}}}h}{{{b{c}}{b{je}}}f{}{}}{{{b{h}}{b{h}}}h}{c{{l{h}}}n}`{{{b{h}}}A`}4{{{b{h}}{b{h}}}Ab}{{{b{c}}{b{e}}}Ab{}{}}0{{{b{h}}{b{jAd}}}Af}{cc{}}{{A`A`{b{Ah}}}{{Aj{h}}}}{{{b{Ah}}}h}{{{b{{An{Al}}}}{b{Ah}}B`}{{Aj{h}}}}{{{b{{An{Al}}}}{b{Ah}}}{{Aj{h}}}}{ce{}{}}{{{b{h}}{b{Ah}}}Ab}{hc{}}{{{b{h}}c}lBb}{{{b{c}}}e{}{}}{c{{l{e}}}{}{}}0{{{b{c}}}Bd{}}6{{{b{c}}}h{}}``{{{b{c}}d}f{}}{{{b{Ah}}}Bf}{{{b{c}}}{{b{e}}}{}{}}0{{{b{jc}}}{{b{je}}}{}{}}0{{{b{Ah}}}Ah}{{{b{c}}{b{je}}}f{}{}}{{{b{Bh}}}{{b{Ah}}}}{c{{l{Ah}}}n}{{{b{Ah}}{b{Ah}}}Ab}{{{b{c}}{b{e}}}Ab{}{}}0{{{b{Ah}}{b{jAd}}}Af}{cc{}}0{{{b{{An{Al}}}}Bj}{{Aj{Ah}}}}{ce{}{}}0{{{b{Ah}}c}lBb}{{{b{c}}}e{}{}}{c{{l{e}}}{}{}}{A`{{Aj{Ah}}}}111{{{b{c}}}Bd{}}055```{{{b{Bl}}}Ab}{{{b{A`}}{b{A`}}}{{Aj{Bn}}}}````{{{b{{An{Al}}}}Bj}{{Aj{C`}}}}{{{b{{Cf{}{{Cb{c}}{Cd{e}}}}}}{b{c}}}AbC`{{Ch{Bf}}}}{{{b{c}}}{{Cf{}{{Cb{c}}{Cd{e}}}}}C`{{Ch{Bf}}}}````{{{b{{D`{}{{Cj{c}}{Cl{e}}{Cn{g}}}}}}{b{c}}}{{Aj{{Db{eg}}}}}{}{}{}}{{{b{{D`{}{{Cj{c}}{Cl{e}}{Cn{g}}}}}}{b{c}}{b{e}}{b{g}}}{{Aj{f}}}{}{}{}}```{{{b{c}}}{{b{e}}}{}{}}{{{b{jc}}}{{b{je}}}{}{}}{{{b{{Dd{ceg}}}}{b{c}}}{{Aj{{Db{cc}}}}}{{Cf{}{{Cd{A`}}}}}{{`{c}}}{{Df{cA`}}}}{cc{}}{ce{}{}}{Bf{{Dd{ceg}}}Cf{{`{c}}}{{Df{c}}}}??={{{b{{Dd{ceg}}}}{b{c}}{b{c}}{b{c}}}{{Aj{f}}}{{Cf{}{{Cd{A`}}}}}{{`{c}}}{{Df{cA`}}}}2","D":"Ed","p":[[1,"reference"],[5,"Private",103],[1,"unit"],[5,"QuadraticForm",3],[0,"mut"],[6,"Result",104],[10,"Deserializer",105],[5,"BigInt",106],[1,"bool"],[5,"Formatter",107],[8,"Result",107],[5,"Discriminant",39],[8,"FastCryptoResult",108],[1,"u8"],[1,"slice"],[1,"u16"],[10,"Serializer",109],[5,"TypeId",110],[1,"u64"],[5,"DISCRIMINANT_3072",39],[1,"usize"],[5,"BigUint",111],[1,"i8"],[10,"Parameter",76],[17,"ParameterType"],[17,"ScalarType"],[10,"ParameterizedGroupElement",76],[10,"From",112],[17,"InputType"],[17,"OutputType"],[17,"ProofType"],[10,"VDF",83],[1,"tuple"],[5,"WesolowskisVDF",90],[10,"ScalarMultiplier",113]],"r":[],"b":[[6,"impl-Add-for-QuadraticForm"],[7,"impl-Add%3C%26QuadraticForm%3E-for-QuadraticForm"],[8,"impl-Add%3C%26QuadraticForm%3E-for-%26QuadraticForm"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAD0ADgAAAAAAAgAAAAUACgARAAAAFAAEAB8ACAAqAAAALAALAD0AAgBBAAYASQABAFoAAABdAAIAYwAEAA=="}],\ +["fastcrypto_vdf",{"t":"CCCFNONNNONNONNNNCNNNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCCCHHKRKMMMRRRKMCMCSFNNNNNNNNNNNIFNNNNNNNNNNN","n":["class_group","math","vdf","QuadraticForm","__clone_box","a","add","add","add","b","borrow","borrow_mut","c","clone","clone_into","compose","deserialize","discriminant","discriminant","double","eq","equivalent","equivalent","fmt","from","from_a_b_and_discriminant","generator","hash_to_group","hash_to_group_with_default_parameters","into","is_in_group","neg","serialize","to_owned","try_from","try_into","type_id","vzip","zero","DISCRIMINANT_3072","Discriminant","__clone_box","bits","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","deref","deserialize","eq","equivalent","equivalent","fmt","from","from","from_seed","into","into","serialize","to_owned","try_from","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","hash_prime","jacobi","parameterized_group","is_probable_prime","jacobi","Parameter","ParameterType","ParameterizedGroupElement","from_seed","is_in_group","zero","InputType","OutputType","ProofType","VDF","evaluate","pietrzak","verify","wesolowski","DEFAULT_CHALLENGE_SIZE_IN_BYTES","PietrzaksVDF","borrow","borrow_mut","evaluate","from","into","new","try_from","try_into","type_id","verify","vzip","DefaultVDF","WesolowskisVDF","borrow","borrow_mut","evaluate","from","into","new","try_from","try_into","type_id","verify","vzip"],"q":[[0,"fastcrypto_vdf"],[3,"fastcrypto_vdf::class_group"],[39,"fastcrypto_vdf::class_group::discriminant"],[71,"fastcrypto_vdf::math"],[74,"fastcrypto_vdf::math::hash_prime"],[75,"fastcrypto_vdf::math::jacobi"],[76,"fastcrypto_vdf::math::parameterized_group"],[82,"fastcrypto_vdf::vdf"],[90,"fastcrypto_vdf::vdf::pietrzak"],[103,"fastcrypto_vdf::vdf::wesolowski"],[116,"dyn_clone::sealed"],[117,"core::result"],[118,"serde::de"],[119,"num_bigint::bigint"],[120,"core::fmt"],[121,"fastcrypto::error"],[122,"serde::ser"],[123,"core::any"],[124,"num_bigint::biguint"],[125,"alloc::vec"],[126,"fastcrypto::groups::multiplier"]],"i":[0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,12,12,12,20,12,20,12,12,20,12,12,12,12,12,12,20,12,12,20,12,12,12,12,20,12,20,12,20,12,20,0,0,0,0,0,0,26,0,24,26,26,30,30,30,0,30,0,30,0,0,0,32,32,32,32,32,32,32,32,32,32,32,0,0,35,35,35,35,35,35,35,35,35,35,35],"f":"````{{{b{c}}d}f{}}`{{hh}c{}}{{h{b{h}}}c{}}{{{b{h}}{b{h}}}c{}}`{{{b{c}}}{{b{e}}}{}{}}{{{b{jc}}}{{b{je}}}{}{}}`{{{b{h}}}h}{{{b{c}}{b{je}}}f{}{}}{{{b{h}}{b{h}}}h}{c{{l{h}}}n}`{{{b{h}}}A`}{hh}{{{b{h}}{b{h}}}Ab}{{{b{c}}{b{e}}}Ab{}{}}0{{{b{h}}{b{jAd}}}Af}{cc{}}{{A`A`{b{Ah}}}{{Aj{h}}}}{{{b{Ah}}}h}{{{b{{An{Al}}}}{b{Ah}}B`}{{Aj{h}}}}{{{b{{An{Al}}}}{b{Ah}}}{{Aj{h}}}}{ce{}{}}{{{b{h}}{b{Ah}}}Ab}{hc{}}{{{b{h}}c}lBb}{{{b{c}}}e{}{}}{c{{l{e}}}{}{}}0{{{b{c}}}Bd{}}6{{{b{c}}}h{}}``{{{b{c}}d}f{}}{{{b{Ah}}}Bf}{{{b{c}}}{{b{e}}}{}{}}0{{{b{jc}}}{{b{je}}}{}{}}0{{{b{Ah}}}Ah}{{{b{c}}{b{je}}}f{}{}}{{{b{Bh}}}{{b{Ah}}}}{c{{l{Ah}}}n}{{{b{Ah}}{b{Ah}}}Ab}{{{b{c}}{b{e}}}Ab{}{}}0{{{b{Ah}}{b{jAd}}}Af}{cc{}}0{{{b{{An{Al}}}}Bj}{{Aj{Ah}}}}{ce{}{}}0{{{b{Ah}}c}lBb}{{{b{c}}}e{}{}}{A`{{Aj{Ah}}}}{c{{l{e}}}{}{}}000{{{b{c}}}Bd{}}055```{{{b{Bl}}}Ab}{{{b{A`}}{b{A`}}}{{Aj{Bn}}}}```{{{b{{An{Al}}}}Bj}{{Aj{C`}}}}{{{b{{Cd{}{{Cb{c}}}}}}{b{c}}}AbC`}{{{b{c}}}{{Cd{}{{Cb{c}}}}}C`}````{{{b{{Cl{}{{Cf{c}}{Ch{e}}{Cj{g}}}}}}{b{c}}}{{Aj{{Cn{eg}}}}}{}{}{}}`{{{b{{Cl{}{{Cf{c}}{Ch{e}}{Cj{g}}}}}}{b{c}}{b{e}}{b{g}}}{{Aj{f}}}{}{}{}}```{{{b{c}}}{{b{e}}}{}{}}{{{b{jc}}}{{b{je}}}{}{}}{{{b{{D`{c}}}}{b{c}}}{{Aj{{Cn{c{Db{c}}}}}}}{CdDd}}{cc{}}{ce{}{}}{Bf{{D`{c}}}Cd}>>={{{b{{D`{c}}}}{b{c}}{b{c}}{b{{Db{c}}}}}{{Aj{f}}}{CdDd}}2``65{{{b{{Df{ceg}}}}{b{c}}}{{Aj{{Cn{cc}}}}}Cd{{`{c}}}{{Dh{cBl}}}}43{Bf{{Df{ceg}}}Cd{{`{c}}}{{Dh{cBl}}}}{c{{l{e}}}{}{}}0{{{b{c}}}Bd{}}{{{b{{Df{ceg}}}}{b{c}}{b{c}}{b{c}}}{{Aj{f}}}Cd{{`{c}}}{{Dh{cBl}}}}7","D":"El","p":[[1,"reference"],[5,"Private",116],[1,"unit"],[5,"QuadraticForm",3],[0,"mut"],[6,"Result",117],[10,"Deserializer",118],[5,"BigInt",119],[1,"bool"],[5,"Formatter",120],[8,"Result",120],[5,"Discriminant",39],[8,"FastCryptoResult",121],[1,"u8"],[1,"slice"],[1,"u16"],[10,"Serializer",122],[5,"TypeId",123],[1,"u64"],[5,"DISCRIMINANT_3072",39],[1,"usize"],[5,"BigUint",124],[1,"i8"],[10,"Parameter",76],[17,"ParameterType"],[10,"ParameterizedGroupElement",76],[17,"InputType"],[17,"OutputType"],[17,"ProofType"],[10,"VDF",82],[1,"tuple"],[5,"PietrzaksVDF",90],[5,"Vec",125],[10,"Serialize",122],[5,"WesolowskisVDF",103],[10,"ScalarMultiplier",126]],"r":[],"b":[[6,"impl-Add-for-QuadraticForm"],[7,"impl-Add%3C%26QuadraticForm%3E-for-QuadraticForm"],[8,"impl-Add%3C%26QuadraticForm%3E-for-%26QuadraticForm"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAEYAEQAAAAAAAgAAAAUACgARAAAAFAAEAB8ACAAqAAAALAALAD0AAQBAAAcASQABAFgAAABaAAAAXQACAGMABABqAAIAcAAEAA=="}],\ ["fastcrypto_zkp",{"t":"FFNNNNNNNNNNNNNNNCCNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCIIICHHFFFNCNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNCCNNNCCSHHHSSHHHFFNNNNNNNNNNHHHHHHHHNNONHNNNNNNNNFNONNNNONNNNNNNNONNNNNNNONPPIIKYKYFPPPFFFFPPPGPFPPKPFFFNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMONNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNOONNNNOOOONNNHNNNNNNNNNNNNNNNMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNIIKYKYPPKGNNNNNNNNNNNNMNNNNNNNNNNNMMMNNNNNHHHHNFFNOONNNNNNNNNNNNNNNOONNNNNNNNNFFFCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKKMMHMHFFIINNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["Fr","FrRepr","__clone_box","__clone_box","add","add","add_assign","add_assign","as_bits","as_byte_slice","as_mut","as_mut_bits","as_mut_byte_slice","as_mut_slice_of","as_ref","as_slice_of","base32_len","bls12381","bn254","borrow","borrow","borrow_mut","borrow_mut","check_base32","clone","clone","clone_into","clone_into","cmp","conditional_select","ct_eq","ct_eq","default","default","double","dummy_circuits","encode_hex","encode_hex_upper","eq","eq","equivalent","equivalent","equivalent","equivalent","fmt","fmt","from","from","from","from","from","from_repr","from_repr_vartime","groth16","into","into","invert","is_odd","is_zero_vartime","mul","mul","mul_assign","mul_assign","neg","partial_cmp","product","random","sqrt","sqrt_ratio","square","sub","sub","sub_assign","sub_assign","sum","to_owned","to_owned","to_repr","try_as_bits","try_as_mut_bits","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","write_base32","zk_login_utils","PreparedVerifyingKey","Proof","VerifyingKey","api","prepare_pvk_bytes","verify_groth16_in_bytes","FieldElement","Proof","VerifyingKey","__clone_box","api","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","deserialize","deserialize","eq","equivalent","equivalent","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from_str","into","into","into","poseidon","to_owned","to_string","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","utils","verifier","vzip","vzip","vzip","zk_login","zk_login_api","SCALAR_SIZE","prepare_pvk_bytes","verify_groth16","verify_groth16_in_bytes","FIELD_ELEMENT_SIZE_IN_BYTES","MERKLE_TREE_DEGREE","poseidon","poseidon_bytes","poseidon_merkle_tree","GetSaltResponse","TestIssuerJWTResponse","borrow","borrow","borrow_mut","borrow_mut","deserialize","deserialize","fmt","fmt","from","from","gen_address_seed","get_nonce","get_oidc_url","get_proof","get_salt","get_test_issuer_jwt_token","get_token_exchange_url","get_zk_login_address","into","into","jwt","serialize","split_to_two_frs","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","PreparedVerifyingKey","__clone_box","alpha_g1_beta_g2","borrow","borrow_mut","clone","clone_into","delta_g2_neg_pc","deserialize","eq","equivalent","equivalent","fmt","from","from","from","gamma_g2_neg_pc","into","serialize","to_owned","try_from","try_into","type_id","verify","vk_gamma_abc_g1","vzip","Apple","AwsTenant","Bn254","Bn254Fr","CanonicalDeserialize","CanonicalDeserialize","CanonicalSerialize","CanonicalSerialize","Claim","Credenza3","Facebook","Google","JWK","JWKReader","JWTDetails","JwkId","Kakao","KarrierOne","Microsoft","OIDCProvider","Playtron","ProviderConfig","Slack","TestIssuer","ToConstraintField","Twitch","ZkLoginInputs","ZkLoginInputsReader","ZkLoginProof","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","alg","as_arkworks","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","calculate_all_inputs_hash","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","compressed_size","default","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize_compressed","deserialize_compressed_unchecked","deserialize_uncompressed","deserialize_uncompressed_unchecked","deserialize_with_mode","e","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fetch_jwks","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from_iss","from_json","from_json","from_reader","from_reader","from_str","get_address_seed","get_config","get_iss","get_kid","get_proof","hash","hash","hash","hash_ascii_str_to_field","init","into","into","into","into","into","into","into","into","into","into","iss","iss","json_schema","json_schema","json_schema","json_schema","jwk_endpoint","kid","kty","n","new","new","new","parse_jwks","partial_cmp","partial_cmp","schema_name","schema_name","schema_name","schema_name","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize_compressed","serialize_uncompressed","serialize_with_mode","serialized_size","to_field_elements","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","uncompressed_size","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","Bn254","Bn254Fr","CanonicalDeserialize","CanonicalDeserialize","CanonicalSerialize","CanonicalSerialize","Prod","Test","ToConstraintField","ZkLoginEnv","__clone_box","borrow","borrow_mut","clone","clone_into","compressed_size","default","deserialize","deserialize_compressed","deserialize_compressed_unchecked","deserialize_uncompressed","deserialize_uncompressed_unchecked","deserialize_with_mode","eq","equivalent","equivalent","fmt","from","from","from","into","serialize","serialize_compressed","serialize_uncompressed","serialize_with_mode","serialized_size","to_field_elements","to_owned","try_from","try_into","type_id","uncompressed_size","verify_zk_login","verify_zk_login_id","verify_zk_login_iss","verify_zk_login_proof_with_fixed_vk","vzip","DummyCircuit","Fibonacci","__clone_box","a","b","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","fmt","fmt","from","from","generate_constraints","generate_constraints","into","into","new","num_constraints","num_variables","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","PreparedVerifyingKey","Proof","VerifyingKey","api","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","deserialize","deserialize_from_parts","fmt","fmt","from","from","from","from","from_arkworks_format","into","into","into","prepare_inputs","serialize_into_parts","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","verify","verify_with_prepared_inputs","vzip","vzip","vzip","FromLittleEndianByteArray","GTSerialize","from_arkworks_bytes","from_little_endian_byte_array","prepare_pvk_bytes","to_arkworks_bytes","verify_groth16_in_bytes","Bn254FqElement","Bn254FrElement","CircomG1","CircomG2","__clone_box","__clone_box","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","deserialize","deserialize","eq","eq","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","from","from","from_str","from_str","into","into","json_schema","json_schema","padded","schema_name","schema_name","serialize","serialize","to_owned","to_owned","to_string","to_string","try_from","try_from","try_into","try_into","type_id","type_id","unpadded","vzip","vzip"],"q":[[0,"fastcrypto_zkp"],[90,"fastcrypto_zkp::bls12381"],[94,"fastcrypto_zkp::bls12381::api"],[96,"fastcrypto_zkp::bn254"],[147,"fastcrypto_zkp::bn254::api"],[151,"fastcrypto_zkp::bn254::poseidon"],[156,"fastcrypto_zkp::bn254::utils"],[189,"fastcrypto_zkp::bn254::verifier"],[215,"fastcrypto_zkp::bn254::zk_login"],[452,"fastcrypto_zkp::bn254::zk_login_api"],[499,"fastcrypto_zkp::dummy_circuits"],[530,"fastcrypto_zkp::groth16"],[568,"fastcrypto_zkp::groth16::api"],[575,"fastcrypto_zkp::zk_login_utils"],[627,"dyn_clone::sealed"],[628,"bitvec::slice"],[629,"bitvec::order"],[630,"byte_slice_cast"],[631,"core::result"],[632,"bech32"],[633,"alloc::vec"],[634,"core::cmp"],[635,"subtle"],[636,"core::iter::traits::collect"],[637,"core::fmt"],[638,"core::option"],[639,"core::borrow"],[640,"core::iter::traits::iterator"],[641,"rand_core"],[642,"bitvec::ptr::span"],[643,"core::any"],[644,"fastcrypto::error"],[645,"ark_bn254::curves"],[646,"ark_groth16::data_structures"],[647,"alloc::string"],[648,"serde::de"],[649,"reqwest::async_impl::client"],[650,"serde::ser"],[651,"ark_serialize"],[652,"ark_serialize::error"],[653,"ark_std::io"],[654,"core::hash"],[655,"schemars::gen"],[656,"schemars::schema"],[657,"ark_ff::to_field_vec"],[658,"ark_ff::fields"],[659,"im::hash::map"],[660,"core::clone"],[661,"ark_ff::fields::prime"],[662,"ark_relations::r1cs::constraint_system"],[663,"ark_relations::r1cs::error"],[664,"fastcrypto::groups"],[665,"fastcrypto::serde_helpers"],[666,"ark_serialize_derive"]],"i":[0,0,10,4,4,4,4,4,10,10,10,10,10,10,10,10,10,0,0,10,4,10,4,10,10,4,10,4,4,4,10,4,10,4,4,0,10,10,10,4,10,10,4,4,10,4,10,10,10,4,4,4,4,0,10,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,10,4,4,10,10,10,4,10,4,10,4,10,4,10,0,0,0,0,0,0,0,0,0,0,36,0,36,37,39,36,37,39,36,36,37,39,36,36,36,36,36,37,39,36,36,37,37,39,39,36,36,37,39,0,36,36,36,37,39,36,37,39,36,37,39,0,0,36,37,39,0,0,0,0,0,0,0,0,0,0,0,0,0,48,50,48,50,48,50,48,50,48,50,0,0,0,0,0,0,0,0,48,50,50,50,0,48,50,48,50,48,50,48,50,0,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,51,51,0,0,0,0,0,0,0,51,51,51,0,0,0,0,51,51,51,0,51,0,51,51,0,51,0,0,0,58,51,59,60,61,57,52,56,59,56,58,69,51,59,63,60,61,57,52,56,58,69,51,59,63,60,61,57,52,56,57,58,51,59,60,61,57,52,56,58,51,59,60,61,57,52,56,58,59,62,61,58,59,63,60,57,52,56,64,64,64,64,64,59,58,51,59,60,61,58,58,51,51,59,59,60,60,61,61,0,58,69,51,59,63,60,61,57,52,56,58,69,51,59,63,60,61,57,52,56,51,57,56,59,57,51,57,51,57,57,57,58,51,59,0,57,58,69,51,59,63,60,61,57,52,56,58,69,60,57,52,56,69,58,59,59,58,69,61,0,58,59,60,57,52,56,58,59,63,60,57,52,56,62,62,62,62,74,58,51,59,60,61,57,52,56,51,58,69,51,59,63,60,61,57,52,56,58,69,51,59,63,60,61,57,52,56,58,69,51,59,63,60,61,57,52,56,62,58,69,51,59,63,60,61,57,52,56,0,0,0,0,0,0,76,76,0,0,76,76,76,76,76,62,76,76,64,64,64,64,64,76,76,76,76,40,40,76,76,76,62,62,62,62,74,76,76,76,76,62,0,0,0,0,76,0,0,78,78,78,78,82,78,82,78,78,78,82,78,82,78,82,78,82,82,78,78,78,78,82,78,82,78,82,78,82,0,0,0,0,88,85,90,88,85,90,85,88,85,90,88,88,85,90,90,88,85,90,88,88,88,85,90,88,85,90,88,85,90,88,88,88,85,90,0,0,92,93,0,92,0,0,0,0,0,94,54,94,54,94,54,94,54,94,54,94,54,94,54,94,94,54,54,94,94,54,54,94,54,94,54,94,54,94,54,54,94,54,94,54,94,54,94,54,94,54,94,54,94,54,54,94,54],"f":"``{{{b{c}}d}f{}}0{{h{b{h}}}h}{{hh}h}{{{b{jh}}{b{h}}}f}{{{b{jh}}h}f}{{{b{c}}}{{b{{l{eg}}}}}{}{}n}{{{b{c}}}{{b{{Ab{A`}}}}}{}}{{{b{jAd}}}{{b{j{Ab{A`}}}}}}{{{b{jc}}}{{b{j{l{eg}}}}}{}{}n}{{{b{jc}}}{{b{j{Ab{A`}}}}}{}}{{{b{jc}}}{{Ah{{b{j{Ab{e}}}}Af}}}{}Aj}{{{b{Ad}}}{{b{{Ab{A`}}}}}}{{{b{c}}}{{Ah{{b{{Ab{e}}}}Af}}}{}Aj}{{{b{c}}}Al{}}``{{{b{c}}}{{b{e}}}{}{}}0{{{b{jc}}}{{b{je}}}{}{}}0{c{{Ah{{B`{An}}}}}{}}{{{b{Ad}}}Ad}{{{b{h}}}h}{{{b{c}}{b{je}}}f{}{}}0{{{b{h}}{b{h}}}Bb}{{{b{h}}{b{h}}Bd}h}{{{b{Ad}}{b{Ad}}}Bd}{{{b{h}}{b{h}}}Bd}{{}Ad}{{}h}7`{{{b{c}}}e{}{{Bh{Bf}}}}0{{{b{Ad}}{b{Ad}}}Bj}{{{b{h}}{b{h}}}Bj}{{{b{c}}{b{e}}}Bj{}{}}000{{{b{Ad}}{b{jBl}}}Bn}{{{b{h}}{b{jBl}}}Bn}{hAd}{cc{}}{{{b{h}}}Ad}{C`h}2{Ad{{Cb{h}}}}{Ad{{Cd{h}}}}`{ce{}{}}0{{{b{h}}}{{Cb{h}}}}{{{b{h}}}Bd}{{{b{h}}}Bj}{{h{b{h}}}h}{{hh}h}{{{b{jh}}h}f}{{{b{jh}}{b{h}}}f}{hh}{{{b{h}}{b{h}}}{{Cd{Bb}}}}{eh{{Cf{h}}}{{Cj{}{{Ch{c}}}}}}{chCl}:{{{b{h}}{b{h}}}{{Cn{Bdh}}}}{{{b{h}}}h}89673{{{b{c}}}e{}{}}0{{{b{h}}}Ad}{{{b{c}}}{{Ah{{b{{l{eg}}}}{D`{e}}}}}{}{}n}{{{b{jc}}}{{Ah{{b{j{l{eg}}}}{D`{e}}}}}{}{}n}{c{{Ah{e}}}{}{}}000{{{b{c}}}Db{}}0{ce{}{}}0{{{b{c}}{b{je}}}{{Ah{f}}}{}Dd}`````{{{b{{Ab{A`}}}}}{{Ah{{B`{{B`{A`}}}}Df}}}}{{{b{{Ab{A`}}}}{b{{Ab{A`}}}}{b{{Ab{A`}}}}{b{{Ab{A`}}}}{b{{Ab{A`}}}}{b{{Ab{A`}}}}}{{Ah{BjDf}}}}```{{{b{c}}d}f{}}`{{{b{c}}}{{b{e}}}{}{}}00{{{b{jc}}}{{b{je}}}{}{}}00{{{b{Dh}}}Dh}{{{b{c}}{b{je}}}f{}{}}{{{b{{Ab{A`}}}}}{{Dl{Dj}}}}{{{b{{Ab{A`}}}}}{{Dl{Dn}}}}{{{b{Dh}}{b{Dh}}}Bj}{{{b{c}}{b{e}}}Bj{}{}}0{{{b{Dh}}{b{jBl}}}Bn}0{{{b{Dj}}{b{jBl}}}Bn}{{{b{Dn}}{b{jBl}}}Bn}{E`Dh}{cc{}}0{{{Ed{Eb}}}Dj}{{{Ef{Eb}}}Dn}2{{{b{Eh}}}{{Ah{Dhc}}}{}}{ce{}{}}00`{{{b{c}}}e{}{}}{{{b{c}}}Ej{}}{c{{Ah{e}}}{}{}}00000{{{b{c}}}Db{}}00``444```{{{b{{Ab{A`}}}}}{{Ah{{B`{{B`{A`}}}}Df}}}}{{{b{El}}{b{{Ab{A`}}}}{b{{Ab{A`}}}}}{{Ah{BjDf}}}}{{{b{{Ab{A`}}}}{b{{Ab{A`}}}}{b{{Ab{A`}}}}{b{{Ab{A`}}}}{b{{Ab{A`}}}}{b{{Ab{A`}}}}}{{Ah{BjDf}}}}``{{{b{{Ab{Dh}}}}}{{Ah{DhDf}}}}{{{b{{Ab{{B`{A`}}}}}}}{{Dl{{En{A`}}}}}}{{{b{{Ab{Dh}}}}}{{Dl{Dh}}}}``{{{b{c}}}{{b{e}}}{}{}}0{{{b{jc}}}{{b{je}}}{}{}}0{c{{Ah{F`}}}Fb}{c{{Ah{Fd}}}Fb}{{{b{F`}}{b{jBl}}}Bn}{{{b{Fd}}{b{jBl}}}Bn}{cc{}}0{{{b{Eh}}{b{Eh}}{b{Eh}}{b{Eh}}}{{Ah{EjDf}}}}{{{b{{Ab{A`}}}}C`{b{Eh}}}{{Ah{EjDf}}}}{{Ff{b{{Ab{A`}}}}C`{b{Eh}}{b{Eh}}{b{Eh}}}{{Ah{EjDf}}}}{{{b{Eh}}C`{b{Eh}}{b{Eh}}{b{Eh}}{b{Eh}}}{{Ah{FhDf}}}}{{{b{Eh}}{b{Eh}}}{{Ah{EjDf}}}}{{{b{Fj}}{b{Eh}}{b{Eh}}{b{Eh}}}{{Ah{FdDf}}}}{{Ff{b{Eh}}{b{Eh}}{b{Eh}}{b{Eh}}}{{Ah{EjDf}}}}{{{b{Fl}}{b{Eh}}}{{Ah{{En{A`}}Df}}}}{ce{}{}}0`{{{b{Fd}}c}AhFn}{{{b{{Ab{A`}}}}}{{Ah{{Cn{E`E`}}Df}}}}{c{{Ah{e}}}{}{}}000{{{b{c}}}Db{}}044`{{{b{c}}d}f{}}`{{{b{c}}}{{b{e}}}{}{}}{{{b{jc}}}{{b{je}}}{}{}}{{{b{El}}}El}{{{b{c}}{b{je}}}f{}{}}`{{{b{{B`{c}}}}}{{Ah{ElDf}}}{{Cf{{Ab{A`}}}}}}{{{b{El}}{b{El}}}Bj}{{{b{c}}{b{e}}}Bj{}{}}0{{{b{El}}{b{jBl}}}Bn}{{{b{Dn}}}El}{cc{}}{{{b{{Ef{Eb}}}}}El}`{ce{}{}}{{{b{El}}}{{Ah{{B`{{B`{A`}}}}Df}}}}{{{b{c}}}e{}{}}{c{{Ah{e}}}{}{}}0{{{b{c}}}Db{}}{{{b{El}}{b{{Ab{Dh}}}}{b{Dj}}}{{Ah{BjDf}}}}`5`````````````````````````````{{{b{c}}d}f{}}0000000`{{{b{G`}}}{{Ah{{Ed{Eb}}Df}}}}{{{b{c}}}{{b{e}}}{}{}}000000000{{{b{jc}}}{{b{je}}}{}{}}000000000{{{b{Gb}}{b{{Ab{A`}}}}{b{{Ab{A`}}}}C`}{{Ah{E`Df}}}}{{{b{Gd}}}Gd}{{{b{Ff}}}Ff}{{{b{Gf}}}Gf}{{{b{Gh}}}Gh}{{{b{Gj}}}Gj}{{{b{Gb}}}Gb}{{{b{Fh}}}Fh}{{{b{G`}}}G`}{{{b{c}}{b{je}}}f{}{}}0000000{{{b{Gd}}{b{Gd}}}Bb}{{{b{Gf}}{b{Gf}}}Bb}{{{b{Gl}}}Al}{{}Gj}{c{{Ah{Gd}}}Fb}{c{{Ah{Gf}}}Fb}{c{{Ah{Gn}}}Fb}{c{{Ah{Gh}}}Fb}{c{{Ah{Gb}}}Fb}{c{{Ah{Fh}}}Fb}{c{{Ah{G`}}}Fb}{c{{Ah{H`Hb}}}Hd}000{{cHfHh}{{Ah{H`Hb}}}Hd}`{{{b{Gd}}{b{Gd}}}Bj}{{{b{Ff}}{b{Ff}}}Bj}{{{b{Gf}}{b{Gf}}}Bj}{{{b{Gh}}{b{Gh}}}Bj}{{{b{Gj}}{b{Gj}}}Bj}{{{b{c}}{b{e}}}Bj{}{}}000000000{{{b{Ff}}{b{Fj}}}{{Ah{{B`{{Cn{GdGf}}}}Df}}}}{{{b{Gd}}{b{jBl}}}Bn}{{{b{Hj}}{b{jBl}}}Bn}{{{b{Ff}}{b{jBl}}}Bn}{{{b{Gf}}{b{jBl}}}Bn}{{{b{Gn}}{b{jBl}}}Bn}{{{b{Gh}}{b{jBl}}}Bn}{{{b{Gj}}{b{jBl}}}Bn}{{{b{Gb}}{b{jBl}}}Bn}{{{b{Fh}}{b{jBl}}}Bn}{{{b{G`}}{b{jBl}}}Bn}{cc{}}000000000{{{b{Eh}}}{{Ah{FfDf}}}}{{{b{Eh}}{b{Eh}}}{{Ah{GbDf}}}}{{{b{Eh}}}{{Ah{G`Df}}}}{Gn{{Dl{Gf}}}}{{Fh{b{Eh}}}{{Ah{GbDf}}}}{{{b{Eh}}}{{Ah{Ffc}}}{}}{{{b{Gb}}}{{b{Fl}}}}{{{b{Ff}}}Hj}{{{b{Gb}}}{{b{Eh}}}}0{{{b{Gb}}}{{b{G`}}}}{{{b{Gd}}{b{jc}}}fHl}{{{b{Ff}}{b{jc}}}fHl}{{{b{Gf}}{b{jc}}}fHl}{{{b{Eh}}A`}{{Ah{E`Df}}}}{{{b{jGb}}}{{Ah{GbDf}}}}{ce{}{}}000000000``{{{b{jHn}}}I`}000````{{EjEj}Gd}{{{b{Eh}}{b{Eh}}}Hj}{{{b{Eh}}{b{Gh}}}{{Ah{GjDf}}}}{{{b{{Ab{A`}}}}{b{Ff}}}{{Ah{{B`{{Cn{GdGf}}}}Df}}}}{{{b{Gd}}{b{Gd}}}{{Cd{Bb}}}}{{{b{Gf}}{b{Gf}}}{{Cd{Bb}}}}{{}Ej}000{{{b{Gd}}c}AhFn}{{{b{Gf}}c}AhFn}{{{b{Gn}}c}AhFn}{{{b{Gh}}c}AhFn}{{{b{Gb}}c}AhFn}{{{b{Fh}}c}AhFn}{{{b{G`}}c}AhFn}{{{b{Gl}}c}{{Ah{fHb}}}Ib}0{{{b{Gl}}cHf}{{Ah{fHb}}}Ib}{{{b{Gl}}Hf}Al}{{{b{Id}}}{{Cd{{B`{c}}}}}If}{{{b{c}}}e{}{}}0000000{{{b{Ff}}}Ej}{c{{Ah{e}}}{}{}}0000000000000000000{{{b{c}}}Db{}}000000000{{{b{Gl}}}Al}{ce{}{}}000000000``````````{{{b{c}}d}f{}}{{{b{c}}}{{b{e}}}{}{}}{{{b{jc}}}{{b{je}}}{}{}}{{{b{Ih}}}Ih}{{{b{c}}{b{je}}}f{}{}}6{{}Ih}{c{{Ah{Ih}}}Fb}{c{{Ah{H`Hb}}}Hd}000{{cHfHh}{{Ah{H`Hb}}}Hd}{{{b{Ih}}{b{Ih}}}Bj}{{{b{c}}{b{e}}}Bj{}{}}0{{{b{Ih}}{b{jBl}}}Bn}{DhE`}{{{b{Fl}}}E`}{cc{}}?{{{b{Ih}}c}AhFn}{{{b{Gl}}c}{{Ah{fHb}}}Ib}0{{{b{Gl}}cHf}{{Ah{fHb}}}Ib}{{{b{Gl}}Hf}Al}{{{b{Id}}}{{Cd{{B`{c}}}}}If}{{{b{c}}}e{}{}}{c{{Ah{e}}}{}{}}0{{{b{c}}}Db{}}{{{b{Gl}}}Al}{{{b{Gb}}C`{b{{Ab{A`}}}}{b{{Ij{GdGf}}}}{b{Ih}}}{{Ah{fDf}}}}{{{b{{Ab{A`}}}}{b{Eh}}{b{Eh}}{b{Eh}}{b{Eh}}{b{Eh}}}{{Dl{f}}}}{{{b{{Ab{A`}}}}{b{Eh}}{b{Eh}}}{{Dl{f}}}}{{{b{Ih}}{b{{Ed{Eb}}}}{b{{Ab{E`}}}}}{{Ah{BjDf}}}}{ce{}{}}``{{{b{c}}d}f{}}``{{{b{c}}}{{b{e}}}{}{}}0{{{b{jc}}}{{b{je}}}{}{}}0{{{b{{Il{c}}}}}{{Il{c}}}{InJ`}}{{{b{c}}{b{je}}}f{}{}}{{{b{{Il{c}}}}{b{jBl}}}Bn{JbJ`}}{{{b{{Jd{c}}}}{b{jBl}}}Bn{JbJ`}}{cc{}}0{{{Il{c}}{Jf{c}}}{{Ah{fJh}}}J`}{{{Jd{c}}{Jf{c}}}{{Ah{fJh}}}J`}::{{Alcc}{{Jd{c}}}J`}``{{{b{c}}}e{}{}}{c{{Ah{e}}}{}{}}000{{{b{c}}}Db{}}0>>````<<<;;;{c{{Ah{{Jj{e}}}}}Fb{JlJn}}{{{b{{Ab{A`}}}}{b{{Ab{A`}}}}{b{{Ab{A`}}}}{b{{Ab{A`}}}}}{{Dl{{K`{c}}}}}{KbJn}}{{{b{{Jj{c}}}}{b{jBl}}}Bn{JbJn}}{{{b{{Kd{c}}}}{b{jBl}}}Bn{JbJn}}{{{b{{Kd{c}}}}}{{K`{c}}}Jn};;;{{{b{{Ab{A`}}}}}{{Dl{{Kd{c}}}}}{KbJn}}{ce{}{}}00{{{b{{K`{c}}}}{b{Ab}}}{{Dl{c}}}{KfJn}}{{{b{{K`{c}}}}}{{B`{{B`{A`}}}}}{KbJn}}::::::999{{{b{{K`{c}}}}{b{Ab}}{b{{Jj{c}}}}}{{Dl{f}}}{KfJn}}{{{b{{K`{c}}}}{b{c}}{b{{Jj{c}}}}}{{Dl{f}}}Jn}444``{{{b{{En{A`}}}}}{{Dl{Kh}}}}{{{b{{En{A`}}}}}{{Dl{Kj}}}}{{{b{{Ab{A`}}}}}{{Dl{{B`{{B`{A`}}}}}}}}{{{b{Kh}}}{{En{A`}}}}{{{b{{Ab{A`}}}}{b{{Ab{A`}}}}{b{{Ab{A`}}}}{b{{Ab{A`}}}}{b{{Ab{A`}}}}{b{{Ab{A`}}}}}{{Ah{BjDf}}}}````{{{b{c}}d}f{}}0{{{b{c}}}{{b{e}}}{}{}}0{{{b{jc}}}{{b{je}}}{}{}}0{{{b{Kl}}}Kl}{{{b{Fl}}}Fl}{{{b{c}}{b{je}}}f{}{}}0{c{{Ah{Kl}}}Fb}{c{{Ah{Fl}}}Fb}{{{b{Kl}}{b{Kl}}}Bj}{{{b{Fl}}{b{Fl}}}Bj}{{{b{c}}{b{e}}}Bj{}{}}000{{{b{Kl}}{b{jBl}}}Bn}0{{{b{Fl}}{b{jBl}}}Bn}0{cc{}}0{{{b{Eh}}}{{Ah{Klc}}}{}}{{{b{Eh}}}{{Ah{Flc}}}{}}{ce{}{}}0{{{b{jHn}}}I`}0{{{b{Fl}}}{{b{{Ab{A`}}}}}}{{}Ej}0{{{b{Kl}}c}AhFn}{{{b{Fl}}c}AhFn}{{{b{c}}}e{}{}}0{{{b{c}}}Ej{}}0{c{{Ah{e}}}{}{}}000{{{b{c}}}Db{}}0799","D":"AHf","p":[[1,"reference"],[5,"Private",627],[1,"unit"],[5,"Fr",0],[0,"mut"],[5,"BitSlice",628],[10,"BitOrder",629],[1,"u8"],[1,"slice"],[5,"FrRepr",0],[6,"Error",630],[6,"Result",631],[10,"FromByteSlice",630],[1,"usize"],[5,"u5",632],[5,"Vec",633],[6,"Ordering",634],[5,"Choice",635],[1,"char"],[10,"FromIterator",636],[1,"bool"],[5,"Formatter",637],[8,"Result",637],[1,"u64"],[5,"CtOption",635],[6,"Option",638],[10,"Borrow",639],[17,"Item"],[10,"Iterator",640],[10,"RngCore",641],[1,"tuple"],[6,"BitSpanError",642],[5,"TypeId",643],[10,"WriteBase32",632],[6,"FastCryptoError",644],[5,"FieldElement",96],[5,"Proof",96],[8,"FastCryptoResult",644],[5,"VerifyingKey",96],[8,"Bn254Fr",452],[8,"Bn254",452,645],[5,"Proof",646],[5,"VerifyingKey",646],[1,"str"],[5,"String",647],[5,"PreparedVerifyingKey",189],[1,"array"],[5,"GetSaltResponse",156],[10,"Deserializer",648],[5,"TestIssuerJWTResponse",156],[6,"OIDCProvider",215],[5,"ZkLoginInputsReader",215],[5,"Client",649],[5,"Bn254FrElement",575],[10,"Serializer",650],[5,"ZkLoginProof",215],[5,"ZkLoginInputs",215],[5,"JwkId",215],[5,"JWK",215],[5,"Claim",215],[5,"JWTDetails",215],[10,"CanonicalSerialize",452,651],[5,"JWKReader",215],[10,"CanonicalDeserialize",452,651],[6,"SerializationError",652],[10,"Read",653],[6,"Compress",651],[6,"Validate",651],[5,"ProviderConfig",215],[10,"Hasher",654],[5,"SchemaGenerator",655],[6,"Schema",656],[10,"Write",653],[10,"ToConstraintField",452,657],[10,"Field",658],[6,"ZkLoginEnv",452],[5,"HashMap",659],[5,"DummyCircuit",499],[10,"Clone",660],[10,"PrimeField",661],[10,"Debug",637],[5,"Fibonacci",499],[6,"ConstraintSystemRef",662],[6,"SynthesisError",663],[5,"Proof",530],[10,"Deserialize",648],[10,"Pairing",664],[5,"PreparedVerifyingKey",530],[10,"ToFromByteArray",665],[5,"VerifyingKey",530],[10,"MultiScalarMul",664],[10,"GTSerialize",568],[10,"FromLittleEndianByteArray",568],[5,"Bn254FqElement",575]],"r":[[217,645],[219,651],[220,666],[221,651],[222,666],[239,657],[452,645],[454,651],[455,666],[456,651],[457,666],[460,657]],"b":[[4,"impl-Add%3C%26Fr%3E-for-Fr"],[5,"impl-Add-for-Fr"],[6,"impl-AddAssign%3C%26Fr%3E-for-Fr"],[7,"impl-AddAssign-for-Fr"],[46,"impl-From%3CFr%3E-for-FrRepr"],[48,"impl-From%3C%26Fr%3E-for-FrRepr"],[59,"impl-Mul%3C%26Fr%3E-for-Fr"],[60,"impl-Mul-for-Fr"],[61,"impl-MulAssign-for-Fr"],[62,"impl-MulAssign%3C%26Fr%3E-for-Fr"],[70,"impl-Sub-for-Fr"],[71,"impl-Sub%3C%26Fr%3E-for-Fr"],[72,"impl-SubAssign%3C%26Fr%3E-for-Fr"],[73,"impl-SubAssign-for-Fr"],[114,"impl-Debug-for-FieldElement"],[115,"impl-Display-for-FieldElement"],[202,"impl-From%3C%26VerifyingKey%3E-for-PreparedVerifyingKey"],[204,"impl-From%3C%26VerifyingKey%3CBn%3CConfig%3E%3E%3E-for-PreparedVerifyingKey"],[479,"impl-From%3CFieldElement%3E-for-Fp%3CMontBackend%3CFrConfig,+4%3E,+4%3E"],[480,"impl-From%3C%26Bn254FrElement%3E-for-Fp%3CMontBackend%3CFrConfig,+4%3E,+4%3E"],[597,"impl-Display-for-Bn254FqElement"],[598,"impl-Debug-for-Bn254FqElement"],[599,"impl-Debug-for-Bn254FrElement"],[600,"impl-Display-for-Bn254FrElement"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAALABOQACAA8AFAAPACUACgAxAAEANAACADkACQBEABUAZAAAAGYABwBwAAcAegABAH0AAACCAAoAjwACAJ8ABwC0AAAAtgAHAL8AAADBAAMAxwADAM0AAADRAAMA1wAAANoAAQDdAAAA3wAAAPUABwD/ABMAFAEeADUBDgBFAQkAXgEAAGQBAgB1AQMAgQEOAJEBNQDIAQAAygEAAM8BCwDcAQUA5AECAOgBBgDzAQAA9gEAAPkBBwADAgEACgIIABQCDQAlAgAAKgIJADYCAgA8AgAARAIVAFwCAQBgAgEAYwINAHICAQA="}],\ ["sigs_cli",{"t":"PPGPPFPPPPPGFFPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNHOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["BLS12381MinPk","BLS12381MinSig","Command","Ed25519","Keygen","KeygenArguments","Secp256k1","Secp256k1Recoverable","Secp256r1","Secp256r1Recoverable","Sign","SignatureScheme","SigningArguments","VerifiyingArguments","Verify","__clone_box","__clone_box","__clone_box","augment_args","augment_args","augment_args","augment_args_for_update","augment_args_for_update","augment_args_for_update","augment_subcommands","augment_subcommands_for_update","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","command","command","command","command","command_for_update","command_for_update","command_for_update","command_for_update","execute","from","from","from","from","from","from_arg_matches","from_arg_matches","from_arg_matches","from_arg_matches","from_arg_matches_mut","from_arg_matches_mut","from_arg_matches_mut","from_arg_matches_mut","from_str","group_id","group_id","group_id","has_subcommand","into","into","into","into","into","main","msg","msg","public_key","scheme","scheme","scheme","secret_key","seed","signature","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches_mut","update_from_arg_matches_mut","update_from_arg_matches_mut","update_from_arg_matches_mut","vzip","vzip","vzip","vzip","vzip"],"q":[[0,"sigs_cli"],[115,"dyn_clone::sealed"],[116,"clap::builder::command"],[117,"fastcrypto::error"],[118,"core::result"],[119,"clap::parser::matches::arg_matches"],[120,"clap"],[121,"clap::util::id"],[122,"core::option"],[123,"core::any"]],"i":[15,15,0,15,9,0,15,15,15,15,9,0,0,0,9,6,7,8,6,7,8,6,7,8,9,9,15,9,6,7,8,15,9,6,7,8,6,7,8,6,7,8,9,6,7,8,9,6,7,8,0,15,9,6,7,8,9,6,7,8,9,6,7,8,15,6,7,8,9,15,9,6,7,8,0,7,8,8,6,7,8,7,6,8,6,7,8,15,9,6,7,8,15,9,6,7,8,15,9,6,7,8,9,6,7,8,9,6,7,8,15,9,6,7,8],"f":"```````````````{{{b{c}}d}f{}}00{hh}0000000{{{b{c}}}{{b{e}}}{}{}}0000{{{b{jc}}}{{b{je}}}{}{}}0000{{{b{l}}}l}{{{b{n}}}n}{{{b{A`}}}A`}{{{b{c}}{b{je}}}f{}{}}00{{}h}0000000{Ab{{Af{fAd}}}}{cc{}}0000{{{b{Ah}}}{{Af{AbAj}}}}{{{b{Ah}}}{{Af{lAj}}}}{{{b{Ah}}}{{Af{nAj}}}}{{{b{Ah}}}{{Af{A`Aj}}}}{{{b{jAh}}}{{Af{AbAj}}}}{{{b{jAh}}}{{Af{lAj}}}}{{{b{jAh}}}{{Af{nAj}}}}{{{b{jAh}}}{{Af{A`Aj}}}}{{{b{Al}}}{{Af{Anc}}}{}}{{}{{Bb{B`}}}}00{{{b{Al}}}Bd}{ce{}{}}0000{{}f}`````````{{{b{c}}}e{}{}}00{c{{Af{e}}}{}{}}000000000{{{b{c}}}Bf{}}0000{{{b{jAb}}{b{Ah}}}{{Af{fAj}}}}{{{b{jl}}{b{Ah}}}{{Af{fAj}}}}{{{b{jn}}{b{Ah}}}{{Af{fAj}}}}{{{b{jA`}}{b{Ah}}}{{Af{fAj}}}}{{{b{jAb}}{b{jAh}}}{{Af{fAj}}}}{{{b{jl}}{b{jAh}}}{{Af{fAj}}}}{{{b{jn}}{b{jAh}}}{{Af{fAj}}}}{{{b{jA`}}{b{jAh}}}{{Af{fAj}}}}<<<<<","D":"Bl","p":[[1,"reference"],[5,"Private",115],[1,"unit"],[5,"Command",116],[0,"mut"],[5,"KeygenArguments",0],[5,"SigningArguments",0],[5,"VerifiyingArguments",0],[6,"Command",0],[6,"FastCryptoError",117],[6,"Result",118],[5,"ArgMatches",119],[8,"Error",120],[1,"str"],[6,"SignatureScheme",0],[5,"Id",121],[6,"Option",122],[1,"bool"],[5,"TypeId",123]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAF0ABwAAAAQABgAEAAwAAgAQACMAOQAMAEsAAABVAB4A"}],\ ["tlock_cli",{"t":"GPFPFFPFNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNHNHHHHNNNNNNNNNNNNNNNNNNNNNNNHOOOONONNNNNNNNNNNNNNNNNNONNNNNNNNOHNNNNNOH","n":["Command","Decrypt","DecryptArguments","Encrypt","EncryptArguments","Encryption","Verify","VerifyArguments","__clone_box","__clone_box","__clone_box","augment_args","augment_args","augment_args","augment_args_for_update","augment_args_for_update","augment_args_for_update","augment_subcommands","augment_subcommands_for_update","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","ciphertext","clone","clone","clone","clone_into","clone_into","clone_into","command","command","command","command","command_for_update","command_for_update","command_for_update","command_for_update","decrypt","deserialize","drand_pk","encode_round","encrypt","execute","fmt","from","from","from","from","from","from_arg_matches","from_arg_matches","from_arg_matches","from_arg_matches","from_arg_matches_mut","from_arg_matches_mut","from_arg_matches_mut","from_arg_matches_mut","group_id","group_id","group_id","has_subcommand","into","into","into","into","into","main","plaintext","round","round","round_signature","serialize","signature","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","u","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches","update_from_arg_matches_mut","update_from_arg_matches_mut","update_from_arg_matches_mut","update_from_arg_matches_mut","v","verify_signature","vzip","vzip","vzip","vzip","vzip","w","xor_arrays"],"q":[[0,"tlock_cli"],[116,"dyn_clone::sealed"],[117,"clap::builder::command"],[118,"fastcrypto::groups::bls12381"],[119,"alloc::vec"],[120,"core::option"],[121,"core::result"],[122,"serde::de"],[123,"alloc::string"],[124,"std::io::error"],[125,"core::fmt"],[126,"clap::parser::matches::arg_matches"],[127,"clap"],[128,"clap::util::id"],[129,"serde::ser"],[130,"core::any"],[131,"fastcrypto::error"]],"i":[0,20,0,20,0,0,20,0,6,7,8,6,7,8,6,7,8,20,20,20,6,7,8,9,20,6,7,8,9,7,6,7,8,6,7,8,20,6,7,8,20,6,7,8,0,9,0,0,0,0,9,20,6,7,8,9,20,6,7,8,20,6,7,8,6,7,8,20,20,6,7,8,9,0,6,6,8,7,9,8,6,7,8,20,6,7,8,9,20,6,7,8,9,20,6,7,8,9,9,20,6,7,8,20,6,7,8,9,0,20,6,7,8,9,9,0],"f":"````````{{{b{c}}d}f{}}00{hh}0000000{{{b{c}}}{{b{e}}}{}{}}0000{{{b{jc}}}{{b{je}}}{}{}}0000`{{{b{l}}}l}{{{b{n}}}n}{{{b{A`}}}A`}{{{b{c}}{b{je}}}f{}{}}00{{}h}0000000{{AbAd}{{Aj{{Ah{Af}}}}}}{c{{Al{Ab}}}An}{{}B`}{{{b{Bb}}}{{Bd{Af}}}}{{Bb{b{{Bf{Af}}}}}Ab}{Bh{{Al{BjBl}}}}{{{b{Ab}}{b{jBn}}}C`}{cc{}}0000{{{b{Cb}}}{{Al{BhCd}}}}{{{b{Cb}}}{{Al{lCd}}}}{{{b{Cb}}}{{Al{nCd}}}}{{{b{Cb}}}{{Al{A`Cd}}}}{{{b{jCb}}}{{Al{BhCd}}}}{{{b{jCb}}}{{Al{lCd}}}}{{{b{jCb}}}{{Al{nCd}}}}{{{b{jCb}}}{{Al{A`Cd}}}}{{}{{Aj{Cf}}}}00{{{b{Ch}}}Cj}{ce{}{}}0000{{}f}````{{{b{Ab}}c}AlCl}`{{{b{c}}}e{}{}}00{c{{Al{e}}}{}{}}000000000{{{b{c}}}Cn{}}0000`{{{b{jBh}}{b{Cb}}}{{Al{fCd}}}}{{{b{jl}}{b{Cb}}}{{Al{fCd}}}}{{{b{jn}}{b{Cb}}}{{Al{fCd}}}}{{{b{jA`}}{b{Cb}}}{{Al{fCd}}}}{{{b{jBh}}{b{jCb}}}{{Al{fCd}}}}{{{b{jl}}{b{jCb}}}{{Al{fCd}}}}{{{b{jn}}{b{jCb}}}{{Al{fCd}}}}{{{b{jA`}}{b{jCb}}}{{Al{fCd}}}}`{{AdBb}{{D`{f}}}}>>>>>`{{{b{{Bf{Af}}}}{b{{Bf{Af}}}}}{{Ah{Af}}}}","D":"Bh","p":[[1,"reference"],[5,"Private",116],[1,"unit"],[5,"Command",117],[0,"mut"],[5,"EncryptArguments",0],[5,"DecryptArguments",0],[5,"VerifyArguments",0],[5,"Encryption",0],[5,"G1Element",118],[1,"u8"],[5,"Vec",119],[6,"Option",120],[6,"Result",121],[10,"Deserializer",122],[5,"G2Element",118],[1,"u64"],[1,"array"],[1,"slice"],[6,"Command",0],[5,"String",123],[5,"Error",124],[5,"Formatter",125],[8,"Result",125],[5,"ArgMatches",126],[8,"Error",127],[5,"Id",128],[1,"str"],[1,"bool"],[10,"Serializer",129],[5,"TypeId",130],[8,"FastCryptoResult",131]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAGAACQAAAAIABAAAAAcAAAAJABQAHwAUADkACwBKAAAATwAAAFEAIwA="}],\ diff --git a/docs/search.desc/fastcrypto/fastcrypto-desc-0-.js b/docs/search.desc/fastcrypto/fastcrypto-desc-0-.js index 4fd81a6c1f..ddd74ff9ce 100644 --- a/docs/search.desc/fastcrypto/fastcrypto-desc-0-.js +++ b/docs/search.desc/fastcrypto/fastcrypto-desc-0-.js @@ -1 +1 @@ -searchState.loadedDescShard("fastcrypto", 0, "This module contains implementations of various AES modes.\nThis module contains an implementation of the BLS …\nThis module contains an implementation of the Ed25519 …\nEncodings of binary data such as Base64 and Hex.\nCollection of errors to be used in fastcrypto.\nMacro for generating a new alias for BytesRepresentation …\nThis module contains a selection of cryptographic hash …\nImplementations of HMAC and HKDF.\nImplementation of a verifier following RSASSA-PKCS1-v1_5 …\nThis module contains an implementation of the ECDSA …\nThis module contains an implementation of the ECDSA …\nMacro for generating Serialize/Deserialize for a type that …\nAES128 in CBC-mode using ANSI X9.23 padding.\nAES128 in CBC-mode using ISO 10126 padding.\nAES128 in CBC-mode using PKCS #7 padding.\nAES128 in CTR-mode.\nAES128 in GCM-mode (authenticated) using the given nonce …\nAES192 in CTR-mode.\nAES256 in CBC-mode using ANSI X9.23 padding.\nAES256 in CBC-mode using ISO 10126 padding.\nAES256 in CBC-mode using PKCS #7 padding.\nAES256 in CTR-mode.\nAES256 in GCM-mode (authenticated) using the given nonce …\nAes in CBC mode\nAes in CTR mode\nAES in GCM mode (authenticated).\nA key of N bytes used with AES ciphers.\nTrait impl’d by symmetric ciphers for authenticated …\nTrait impl’d by symmetric ciphers.\nTrait impl’d by encryption keys in symmetric cryptography\nStruct wrapping an instance of a …\nAn N byte initialization vector used with AES ciphers.\nTrait impl’d by nonces and IV’s used in symmetric …\nDecrypt ciphertext using the given IV and return the …\nDecrypt ciphertext using the given IV and authentication …\nEncrypt plaintext using the given IV and return the result.\nEncrypt plaintext using the given IV and authentication …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nThe length of public keys when using the min_pk module and …\nThe length of public keys when using the min_sig module …\nThe key pair bytes length used by helper is the same as …\nThe length of a private key in bytes.\nModule minimizing the size of public keys. Module …\nModule minimizing the size of signatures. Module …\nAggregation of multiple BLS 12-381 signatures.\nBLS 12-381 key pair.\nBLS 12-381 private key.\nBLS 12-381 public key.\nBLS 12-381 signature.\nHash-to-curve domain separation tag.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nAggregation of multiple BLS 12-381 signatures.\nBLS 12-381 key pair.\nBLS 12-381 private key.\nBLS 12-381 public key.\nBLS 12-381 signature.\nHash-to-curve domain separation tag.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nThe key pair bytes length is the same as the private key …\nThe length of a private key in bytes.\nThe length of a public key in bytes.\nThe length of a signature in bytes.\nAggregation of multiple Ed25519 signatures.\nEd25519 key pair.\nEd25519 private key.\nEd25519 public key.\nEd25519 signature.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nBase64 encoding\nBech32 encoding\nTrait representing a general binary-to-string encoding.\nHex string encoding.\nDecode this encoding into bytes.\nDecodes the Bech32 string to bytes, validating the given …\nDecodes a hex string to bytes. Both upper and lower case …\nDecodes a hex string to bytes. Both upper and lower case …\nEncode bytes into a string.\nEncodes bytes into a Bech32 encoded string, with the given …\nHex encoding is without “0x” prefix. See …\nEncode bytes as a hex string with a “0x” prefix.\nGet a string representation of this Base64 encoding.\nGet a string representation of this Hex encoding with a “…\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nEncodes bytes as a Base64.\nEncodes bytes as a hex string.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nDecodes this Base64 encoding to bytes.\nDecodes this hex encoding to bytes.\nContains the error value\nCollection of errors to be used in fastcrypto.\nGeneral cryptographic error.\nGeneral opaque cryptographic error.\nMessage should be ignored\nInput length is wrong.\nInput is to long.\nInput is to short.\nInvalid value was given to the function\nInvalid message was given to the function\nInvalid proof was given to the function\nInvalid signature was given to the function\nNot enough inputs were given to the function, retry with …\nContains the success value\nReturns the argument unchanged.\nCalls U::from(self).\nTrait for group elements that has a fast doubling …\nTrait for groups that have a reduction from a random …\nFaster deserialization in case the input is trusted …\nTrait impl’d by elements of an additive cyclic group.\nTrait for groups that have a standardized “hash_to_point…\nTrait for groups that support multi-scalar multiplication.\nTrait impl’d by scalars to be used with GroupElement.\nType of scalars used in the [Self::mul] multiplication …\nCompute 2 * Self = Self + Self.\nReturn an instance of the generator for this group.\nHashes the given message and maps the result to a group …\nMulti-pairing operation that computes the sum of pairings …\nThis module contains implementations of optimised scalar …\nImplementations of the ristretto255 group which is a group …\nImplementation of the Secp256r1 (aka P-256) curve. This is …\nReturn an instance of the identity element in this group.\nElements of the group G_1 in BLS 12-381.\nElements of the group G_2 in BLS 12-381.\nElements of the subgroup G_T of F_q^{12} in BLS 12-381. …\nThis represents a scalar modulo r = …\nSimilar to reduce_mod_uniform_buffer, returns a result of …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nTrait for scalar multiplication for a fixed group element, …\nCompute self.base_element * scalar.\nCreate a new scalar multiplier with the given base element.\nSerialize scalar into a byte vector in little-endian …\nCompute …\nThis scalar multiplier uses pre-computation with the …\nReturns the argument unchanged.\nCalls U::from(self).\nThis method computes the linear combination of the given …\nRepresents a point in the Ristretto group for Curve25519.\nRepresents a scalar.\nReturn this point in compressed form.\nReturn this point in compressed form.\nReturns the argument unchanged.\nReturns the argument unchanged.\nConstruct a RistrettoScalar by reducing a 32-byte …\nConstruct a RistrettoScalar by reducing a 64-byte …\nConstruct a RistrettoPoint from the given data using an …\nThe order of the base point.\nCalls U::from(self).\nCalls U::from(self).\nConstruct a RistrettoPoint from the given data using a …\nDecode a ristretto point in compressed binary form.\nA point on the Secp256r1 curve in projective coordinates.\nA field element in the prime field of the same order as …\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nThe BLAKE2-256 hash function with 256 bit digests.\nRepresents a digest of DIGEST_LEN bytes.\nEllipticCurveMultisetHash (ECMH) is a homomorphic multiset …\nThis trait is implemented by all messages that can be …\nTrait implemented by hash functions providing a output of …\nThis wraps a digest::Digest as a HashFunction.\nThe KECCAK hash function with 256 bit digests.\nA Multiset Hash is a homomorphic hash function, which …\nThe length of this hash functions digests in bytes.\nThis trait allows using a HashFunctionWrapper where a …\nThe SHA-2 hash function with 256 bit digests.\nThe SHA-3 hash function with 256 bit digests.\nThe SHA-3 hash function with 512 bit digests.\nThe SHA-512 hash function with 512 bit digests.\nThe type of the digest when this is hashed.\nGenerate a digest of the current state of this hash …\nCompute the digest of the given data and consume the hash …\nCompute a single digest from all slices in the iterator in …\nRetrieve result and consume hash function.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nInsert an item into this hash function.\nInsert multiple items into this hash function.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCreate a new hash function of the given type\nCreate a new digest containing the given bytes\nRemove an element from this hash function.\nRemove multiple items from this hash function.\nThe size of this digest in bytes.\nCopy the digest into a new vector.\nAdd all the elements of another hash function into this …\nProcess the given data, and update the internal of the …\nType for input keying material in hkdf_sha3_256.\nType for key in hmac_sha3_256.\nHMAC-based Extract-and-Expand Key Derivation Function …\nKeyed-Hash Message Authentication Code (HMAC) using …\nStruct that represents a standard JWT header according to …\nReturns the argument unchanged.\nCalls U::from(self).\nParse the header base64 string into a [struct JWTHeader].\nPrivate key/seed of any/fixed size.\nReturns the argument unchanged.\nCalls U::from(self).\nURL-safe Base64 encoding without padding.\nBase64 encoding trait.\nDecode a Base64 string into the provided destination …\nDecode a Base64 string in-place.\nDecode a Base64 string into a byte vector.\nEncode the input byte slice as Base64.\nEncode input byte slice into a String containing Base64.\nGet the length of Base64 produced by encoding the given …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nParse signature from binary representation according to …\nParse an RSAPublicKey from an ASN.1 DER (Distinguished …\nParse an RSAPublicKey from its components, eg. the modulus …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nVerify a signed message. The verification uses SHA-256 for …\nVerify a signed message. The message, hashed, must be the …\nDefault hash function used for signing and verifying …\nThe key pair bytes length is the same as the private key …\nThe length of a private key in bytes.\nThe length of a public key in bytes.\nThe length of a signature in bytes.\nSecp256k1 public/private key pair.\nSecp256k1 private key.\nSecp256k1 public key.\nSecp256k1 ECDSA signature.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nThis module contains an implementation of the ECDSA …\nCreate a new recoverable signature over the given message. …\nCreate a new signature using the given hash function to …\nVerify the signature using the given hash function to hash …\nLength of a compact signature followed by one extra byte …\nSecp256k1 signature.\nAn ECDSA signature\nObtains a raw mutable pointer suitable for use with FFI …\nObtains a raw pointer suitable for use with FFI functions\nLike cmp::Cmp but faster and with no guarantees across …\nLike cmp::Eq but faster and with no guarantees across …\nReturns the argument unchanged.\nReturns the argument unchanged.\nConverts a 64-byte compact-encoded byte slice to a …\nConverts a DER-encoded byte slice to a signature\nConverts a “lax DER”-encoded byte slice to a …\nCalls U::from(self).\nCalls U::from(self).\nNormalizes a signature to a “low S” form. In ECDSA, …\nRecover public key from signature using the given hash …\nSerializes the signature in compact format\nSerializes the signature in DER format\nConvert a non-recoverable signature into a recoverable …\nVerifies an ECDSA signature for msg using pk and the …\nDefault hash function used for signing and verifying …\nThe number of precomputed points used for scalar …\nThe key pair bytes length is the same as the private key …\nThe length of a private key in bytes.\nThe length of a public key in bytes.\nThe length of a signature in bytes.\nThe size of the sliding window used for scalar …\nSecp256r1 public/private key pair.\nSecp256r1 private key.\nSecp256r1 public key.\nSecp256r1 signature.\nThis module contains conversion function between scalars …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nThis module contains an implementation of the ECDSA …\nCreate a new signature using the given hash function to …\nVerify the signature using the given hash function to hash …\nSecp256r1 signature.\nReturns the argument unchanged.\nCalls U::from(self).\nRecover the public key used to create this signature. This …\nExternal types.\nSerialization of internal types.\nGiven a byte array of length N * SIZE_IN_BYTES, …\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nSerialize a vector of elements of type T into a byte array …\nThis service holds the node’s private key. It takes …\nReturns the argument unchanged.\nCalls U::from(self).\nTrait impl’d by aggregated signatures in asymmetric …\nTrait impl’d by RNG’s accepted by fastcrypto.\nTrait impl’d by signatures in asymmetric cryptography.\nCryptographic material with an immediate conversion …\nTrait impl’d by a keys/secret seeds for generating a …\nTrait impl’d by cryptographic material that can be …\nTrait for objects that support an insecure default value …\nTrait impl’d by a public / private key pair in …\nTrait impl’d by recoverable signatures\nTrait impl’d by public / private keypairs that can …\nTrait impl’d by a key/keypair that can create signatures.\nTrait impl’d by private (secret) keys in asymmetric …\nTrait impl’d by concrete types that represent digital …\nTrait impl’d by public keys in asymmetric cryptography.\nCombine signatures into a single aggregated signature.\nBorrow a byte slice representing the serialized form of …\nVerify a batch of aggregate signatures, each consisting of …\nParse an object from its byte representation\nGenerate a new keypair using the given RNG.\nGenerate a new random instance using the given RNG.\nGet the private key.\nGet the public key.\nRecover the public key from this signature.\nRecover the public key from this signature. Assuming that …\nCreate a new signature over a message.\nSign as a recoverable signature.\nSign as a recoverable signature using the given hash …\nUse Self to verify that the provided signature for a given …\nVerify this aggregate signature assuming that all …\nVerify this aggregate signature where the signatures are …\nVerify a recoverable signature by recovering the public …\nVerify a recoverable signature by recovering the public …\nReturns the log base 2 of b. There is an exception: for …\nA keypair for a verifiable random function (VRF).\nRepresents a private key used to compute outputs for a …\nA proof that the output of a VRF was computed correctly.\nRepresents a public key of which is use to verify outputs …\nAn implementation of an Elliptic Curve VRF (ECVRF) using …\nGenerate a new keypair using the given RNG.\nCompute both hash and proof for the given input.\nGenerate a proof for the given input.\nCompute the output of the VRF with this proof.\nVerify the correctness of this proof.\nVerify the correctness of this proof and VRF output.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).") \ No newline at end of file +searchState.loadedDescShard("fastcrypto", 0, "This module contains implementations of various AES modes.\nThis module contains an implementation of the BLS …\nThis module contains an implementation of the Ed25519 …\nEncodings of binary data such as Base64 and Hex.\nCollection of errors to be used in fastcrypto.\nMacro for generating a new alias for BytesRepresentation …\nThis module contains a selection of cryptographic hash …\nImplementations of HMAC and HKDF.\nImplementation of a verifier following RSASSA-PKCS1-v1_5 …\nThis module contains an implementation of the ECDSA …\nThis module contains an implementation of the ECDSA …\nMacro for generating Serialize/Deserialize for a type that …\nAES128 in CBC-mode using ANSI X9.23 padding.\nAES128 in CBC-mode using ISO 10126 padding.\nAES128 in CBC-mode using PKCS #7 padding.\nAES128 in CTR-mode.\nAES128 in GCM-mode (authenticated) using the given nonce …\nAES192 in CTR-mode.\nAES256 in CBC-mode using ANSI X9.23 padding.\nAES256 in CBC-mode using ISO 10126 padding.\nAES256 in CBC-mode using PKCS #7 padding.\nAES256 in CTR-mode.\nAES256 in GCM-mode (authenticated) using the given nonce …\nAes in CBC mode\nAes in CTR mode\nAES in GCM mode (authenticated).\nA key of N bytes used with AES ciphers.\nTrait impl’d by symmetric ciphers for authenticated …\nTrait impl’d by symmetric ciphers.\nTrait impl’d by encryption keys in symmetric cryptography\nStruct wrapping an instance of a …\nAn N byte initialization vector used with AES ciphers.\nTrait impl’d by nonces and IV’s used in symmetric …\nDecrypt ciphertext using the given IV and return the …\nDecrypt ciphertext using the given IV and authentication …\nEncrypt plaintext using the given IV and return the result.\nEncrypt plaintext using the given IV and authentication …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nThe length of public keys when using the min_pk module and …\nThe length of public keys when using the min_sig module …\nThe key pair bytes length used by helper is the same as …\nThe length of a private key in bytes.\nModule minimizing the size of public keys. Module …\nModule minimizing the size of signatures. Module …\nAggregation of multiple BLS 12-381 signatures.\nBLS 12-381 key pair.\nBLS 12-381 private key.\nBLS 12-381 public key.\nBLS 12-381 signature.\nHash-to-curve domain separation tag.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nAggregation of multiple BLS 12-381 signatures.\nBLS 12-381 key pair.\nBLS 12-381 private key.\nBLS 12-381 public key.\nBLS 12-381 signature.\nHash-to-curve domain separation tag.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nThe key pair bytes length is the same as the private key …\nThe length of a private key in bytes.\nThe length of a public key in bytes.\nThe length of a signature in bytes.\nAggregation of multiple Ed25519 signatures.\nEd25519 key pair.\nEd25519 private key.\nEd25519 public key.\nEd25519 signature.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nBase64 encoding\nBech32 encoding\nTrait representing a general binary-to-string encoding.\nHex string encoding.\nDecode this encoding into bytes.\nDecodes the Bech32 string to bytes, validating the given …\nDecodes a hex string to bytes. Both upper and lower case …\nDecodes a hex string to bytes. Both upper and lower case …\nEncode bytes into a string.\nEncodes bytes into a Bech32 encoded string, with the given …\nHex encoding is without “0x” prefix. See …\nEncode bytes as a hex string with a “0x” prefix.\nGet a string representation of this Base64 encoding.\nGet a string representation of this Hex encoding with a “…\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nEncodes bytes as a Base64.\nEncodes bytes as a hex string.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nDecodes this Base64 encoding to bytes.\nDecodes this hex encoding to bytes.\nContains the error value\nCollection of errors to be used in fastcrypto.\nGeneral cryptographic error.\nGeneral opaque cryptographic error.\nMessage should be ignored\nInput length is wrong.\nInput is to long.\nInput is to short.\nInvalid value was given to the function\nInvalid message was given to the function\nInvalid proof was given to the function\nInvalid signature was given to the function\nNot enough inputs were given to the function, retry with …\nContains the success value\nReturns the argument unchanged.\nCalls U::from(self).\nTrait for group elements that has a fast doubling …\nTrait for groups that have a reduction from a random …\nFaster deserialization in case the input is trusted …\nTrait impl’d by elements of an additive cyclic group.\nTrait for groups that have a standardized “hash_to_point…\nTrait for groups that support multi-scalar multiplication.\nTrait impl’d by scalars to be used with GroupElement.\nType of scalars used in the [Self::mul] multiplication …\nCompute 2 * Self = Self + Self.\nReturn an instance of the generator for this group.\nHashes the given message and maps the result to a group …\nMulti-pairing operation that computes the sum of pairings …\nThis module contains implementations of optimised scalar …\nCompute input * 2^repetitions by repeated doubling.\nImplementations of the ristretto255 group which is a group …\nImplementation of the Secp256r1 (aka P-256) curve. This is …\nReturn an instance of the identity element in this group.\nElements of the group G_1 in BLS 12-381.\nElements of the group G_2 in BLS 12-381.\nElements of the subgroup G_T of F_q^{12} in BLS 12-381. …\nThis represents a scalar modulo r = …\nSimilar to reduce_mod_uniform_buffer, returns a result of …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nTrait for scalar multiplication for a fixed group element, …\nCompute self.base_element * scalar.\nCreate a new scalar multiplier with the given base element.\nSerialize scalar into a byte vector in little-endian …\nCompute …\nThis scalar multiplier uses pre-computation with the …\nReturns the argument unchanged.\nCalls U::from(self).\nThis method computes the linear combination of the given …\nRepresents a point in the Ristretto group for Curve25519.\nRepresents a scalar.\nReturn this point in compressed form.\nReturn this point in compressed form.\nReturns the argument unchanged.\nReturns the argument unchanged.\nConstruct a RistrettoScalar by reducing a 32-byte …\nConstruct a RistrettoScalar by reducing a 64-byte …\nConstruct a RistrettoPoint from the given data using an …\nThe order of the base point.\nCalls U::from(self).\nCalls U::from(self).\nConstruct a RistrettoPoint from the given data using a …\nDecode a ristretto point in compressed binary form.\nA point on the Secp256r1 curve in projective coordinates.\nA field element in the prime field of the same order as …\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nThe BLAKE2-256 hash function with 256 bit digests.\nRepresents a digest of DIGEST_LEN bytes.\nEllipticCurveMultisetHash (ECMH) is a homomorphic multiset …\nThis trait is implemented by all messages that can be …\nTrait implemented by hash functions providing a output of …\nThis wraps a digest::Digest as a HashFunction.\nThe KECCAK hash function with 256 bit digests.\nA Multiset Hash is a homomorphic hash function, which …\nThe length of this hash functions digests in bytes.\nThis trait allows using a HashFunctionWrapper where a …\nThe SHA-2 hash function with 256 bit digests.\nThe SHA-3 hash function with 256 bit digests.\nThe SHA-3 hash function with 512 bit digests.\nThe SHA-512 hash function with 512 bit digests.\nThe type of the digest when this is hashed.\nGenerate a digest of the current state of this hash …\nCompute the digest of the given data and consume the hash …\nCompute a single digest from all slices in the iterator in …\nRetrieve result and consume hash function.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nInsert an item into this hash function.\nInsert multiple items into this hash function.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCreate a new hash function of the given type\nCreate a new digest containing the given bytes\nRemove an element from this hash function.\nRemove multiple items from this hash function.\nThe size of this digest in bytes.\nCopy the digest into a new vector.\nAdd all the elements of another hash function into this …\nProcess the given data, and update the internal of the …\nType for input keying material in hkdf_sha3_256.\nType for key in hmac_sha3_256.\nHMAC-based Extract-and-Expand Key Derivation Function …\nKeyed-Hash Message Authentication Code (HMAC) using …\nStruct that represents a standard JWT header according to …\nReturns the argument unchanged.\nCalls U::from(self).\nParse the header base64 string into a [struct JWTHeader].\nPrivate key/seed of any/fixed size.\nReturns the argument unchanged.\nCalls U::from(self).\nURL-safe Base64 encoding without padding.\nBase64 encoding trait.\nDecode a Base64 string into the provided destination …\nDecode a Base64 string in-place.\nDecode a Base64 string into a byte vector.\nEncode the input byte slice as Base64.\nEncode input byte slice into a String containing Base64.\nGet the length of Base64 produced by encoding the given …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nParse signature from binary representation according to …\nParse an RSAPublicKey from an ASN.1 DER (Distinguished …\nParse an RSAPublicKey from its components, eg. the modulus …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nVerify a signed message. The verification uses SHA-256 for …\nVerify a signed message. The message, hashed, must be the …\nDefault hash function used for signing and verifying …\nThe key pair bytes length is the same as the private key …\nThe length of a private key in bytes.\nThe length of a public key in bytes.\nThe length of a signature in bytes.\nSecp256k1 public/private key pair.\nSecp256k1 private key.\nSecp256k1 public key.\nSecp256k1 ECDSA signature.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nThis module contains an implementation of the ECDSA …\nCreate a new recoverable signature over the given message. …\nCreate a new signature using the given hash function to …\nVerify the signature using the given hash function to hash …\nLength of a compact signature followed by one extra byte …\nSecp256k1 signature.\nAn ECDSA signature\nObtains a raw mutable pointer suitable for use with FFI …\nObtains a raw pointer suitable for use with FFI functions\nLike cmp::Cmp but faster and with no guarantees across …\nLike cmp::Eq but faster and with no guarantees across …\nReturns the argument unchanged.\nReturns the argument unchanged.\nConverts a 64-byte compact-encoded byte slice to a …\nConverts a DER-encoded byte slice to a signature\nConverts a “lax DER”-encoded byte slice to a …\nCalls U::from(self).\nCalls U::from(self).\nNormalizes a signature to a “low S” form. In ECDSA, …\nRecover public key from signature using the given hash …\nSerializes the signature in compact format\nSerializes the signature in DER format\nConvert a non-recoverable signature into a recoverable …\nVerifies an ECDSA signature for msg using pk and the …\nDefault hash function used for signing and verifying …\nThe number of precomputed points used for scalar …\nThe key pair bytes length is the same as the private key …\nThe length of a private key in bytes.\nThe length of a public key in bytes.\nThe length of a signature in bytes.\nThe size of the sliding window used for scalar …\nSecp256r1 public/private key pair.\nSecp256r1 private key.\nSecp256r1 public key.\nSecp256r1 signature.\nThis module contains conversion function between scalars …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nThis module contains an implementation of the ECDSA …\nCreate a new signature using the given hash function to …\nVerify the signature using the given hash function to hash …\nSecp256r1 signature.\nReturns the argument unchanged.\nCalls U::from(self).\nRecover the public key used to create this signature. This …\nExternal types.\nSerialization of internal types.\nGiven a byte array of length N * SIZE_IN_BYTES, …\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nSerialize a vector of elements of type T into a byte array …\nThis service holds the node’s private key. It takes …\nReturns the argument unchanged.\nCalls U::from(self).\nTrait impl’d by aggregated signatures in asymmetric …\nTrait impl’d by RNG’s accepted by fastcrypto.\nTrait impl’d by signatures in asymmetric cryptography.\nCryptographic material with an immediate conversion …\nTrait impl’d by a keys/secret seeds for generating a …\nTrait impl’d by cryptographic material that can be …\nTrait for objects that support an insecure default value …\nTrait impl’d by a public / private key pair in …\nTrait impl’d by recoverable signatures\nTrait impl’d by public / private keypairs that can …\nTrait impl’d by a key/keypair that can create signatures.\nTrait impl’d by private (secret) keys in asymmetric …\nTrait impl’d by concrete types that represent digital …\nTrait impl’d by public keys in asymmetric cryptography.\nCombine signatures into a single aggregated signature.\nBorrow a byte slice representing the serialized form of …\nVerify a batch of aggregate signatures, each consisting of …\nParse an object from its byte representation\nGenerate a new keypair using the given RNG.\nGenerate a new random instance using the given RNG.\nGet the private key.\nGet the public key.\nRecover the public key from this signature.\nRecover the public key from this signature. Assuming that …\nCreate a new signature over a message.\nSign as a recoverable signature.\nSign as a recoverable signature using the given hash …\nUse Self to verify that the provided signature for a given …\nVerify this aggregate signature assuming that all …\nVerify this aggregate signature where the signatures are …\nVerify a recoverable signature by recovering the public …\nVerify a recoverable signature by recovering the public …\nReturns the log base 2 of b. There is an exception: for …\nA keypair for a verifiable random function (VRF).\nRepresents a private key used to compute outputs for a …\nA proof that the output of a VRF was computed correctly.\nRepresents a public key of which is use to verify outputs …\nAn implementation of an Elliptic Curve VRF (ECVRF) using …\nGenerate a new keypair using the given RNG.\nCompute both hash and proof for the given input.\nGenerate a proof for the given input.\nCompute the output of the VRF with this proof.\nVerify the correctness of this proof.\nVerify the correctness of this proof and VRF output.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).") \ No newline at end of file diff --git a/docs/search.desc/fastcrypto_vdf/fastcrypto_vdf-desc-0-.js b/docs/search.desc/fastcrypto_vdf/fastcrypto_vdf-desc-0-.js index 7922cc2c21..2fc375a4e0 100644 --- a/docs/search.desc/fastcrypto_vdf/fastcrypto_vdf-desc-0-.js +++ b/docs/search.desc/fastcrypto_vdf/fastcrypto_vdf-desc-0-.js @@ -1 +1 @@ -searchState.loadedDescShard("fastcrypto_vdf", 0, "This module contains implementation of imaginary class …\nThis module contains a implementation of a verifiable …\nA binary quadratic form, (a, b, c) for arbitrary integers …\nCompute the composition of this quadratic form with …\nDiscriminants of quadratic forms are negative primes which …\nCompute the discriminant of this quadratic form, eg. b^2 - …\nReturns the argument unchanged.\nCreate a new quadratic form given only the a and b …\nReturn a generator (or, more precisely, an element with a …\nGenerate a random quadratic form from a seed with the …\nGenerate a random quadratic form from a seed with the …\nCalls U::from(self).\nFixed 3072 bit discriminant. Generated from the seed [1,2,3…\nA discriminant for an imaginary class group. The …\nReturn the number of bits needed to represent this …\nReturns the argument unchanged.\nReturns the argument unchanged.\nCompute a valid discriminant (aka a negative prime equal …\nCalls U::from(self).\nCalls U::from(self).\nA valid discriminant should be a negative prime congruent …\nThis module contains an implementation of a hash-to-prime …\nCheck if the input is a probable prime.\nCompute the Jacobi symbol (a/m) for odd m. If m is prime, …\nThis trait is implemented by types which can be used as …\nThe type of the parameter which uniquely defines this …\nTrait implemented by elements of an additive group where …\nInteger type used for multiplication.\nCompute a random instance of a given size from a seed.\nReturns true if this is an element of the group defined by …\nReturn an instance of the identity element in this group.\nThe type of the input to the VDF.\nThe type of the output from the VDF.\nThe type of the proof of correctness for this VDF.\nThis represents a Verifiable Delay Function (VDF) …\nEvaluate this VDF and return the output and a proof of …\nVerify the output and proof from a VDF.\nImplementation of Wesolowski’s VDF construction over an …\nAn implementation of Wesolowski’s VDF construction …\nReturns the argument unchanged.\nCalls U::from(self).\nCreate a new VDF using the group defined by the given …") \ No newline at end of file +searchState.loadedDescShard("fastcrypto_vdf", 0, "This module contains implementation of imaginary class …\nThis module contains a implementation of a verifiable …\nA binary quadratic form, (a, b, c) for arbitrary integers …\nCompute the composition of this quadratic form with …\nDiscriminants of quadratic forms are negative primes which …\nCompute the discriminant of this quadratic form, eg. b^2 - …\nReturns the argument unchanged.\nCreate a new quadratic form given only the a and b …\nReturn a generator (or, more precisely, an element with a …\nGenerate a random quadratic form from a seed with the …\nGenerate a random quadratic form from a seed with the …\nCalls U::from(self).\nFixed 3072 bit discriminant. Generated from the seed [1,2,3…\nA discriminant for an imaginary class group. The …\nReturn the number of bits needed to represent this …\nReturns the argument unchanged.\nReturns the argument unchanged.\nCompute a valid discriminant (aka a negative prime equal …\nCalls U::from(self).\nCalls U::from(self).\nA valid discriminant should be a negative prime congruent …\nThis module contains an implementation of a hash-to-prime …\nCheck if the input is a probable prime.\nCompute the Jacobi symbol (a/m) for odd m. If m is prime, …\nThis trait is implemented by types which can be used as …\nThe type of the parameter which uniquely defines this …\nTrait implemented by elements of an additive group where …\nCompute a random instance of a given size from a seed.\nReturns true if this is an element of the group defined by …\nReturn an instance of the identity element in this group.\nThe type of the input to the VDF.\nThe type of the output from the VDF.\nThe type of the proof of correctness for this VDF.\nThis represents a Verifiable Delay Function (VDF) …\nEvaluate this VDF and return the output and a proof of …\nVerify the output and proof from a VDF.\nDefault size in bytes of the Fiat-Shamir challenge used in …\nThis implements Pietrzak’s VDF construction from …\nReturns the argument unchanged.\nCalls U::from(self).\nCreate a new VDF using the group defined by the given …\nImplementation of Wesolowski’s VDF construction over an …\nAn implementation of Wesolowski’s VDF construction …\nReturns the argument unchanged.\nCalls U::from(self).\nCreate a new VDF using the group defined by the given …") \ No newline at end of file diff --git a/docs/src-files.js b/docs/src-files.js index ebf5a7c4bd..fb56217d10 100644 --- a/docs/src-files.js +++ b/docs/src-files.js @@ -5,7 +5,7 @@ var srcIndex = new Map(JSON.parse('[\ ["fastcrypto_cli",["",[],["lib.rs"]]],\ ["fastcrypto_derive",["",[],["lib.rs"]]],\ ["fastcrypto_tbls",["",[],["dkg.rs","dkg_v0.rs","dkg_v1.rs","dl_verification.rs","ecies.rs","ecies_v0.rs","ecies_v1.rs","lib.rs","mocked_dkg.rs","nizk.rs","nodes.rs","polynomial.rs","random_oracle.rs","tbls.rs","types.rs"]]],\ -["fastcrypto_vdf",["",[["class_group",[],["bigint_serde.rs","discriminant.rs","hash.rs","mod.rs","reduction.rs"]],["math",[],["crt.rs","extended_gcd.rs","hash_prime.rs","jacobi.rs","mod.rs","modular_sqrt.rs","parameterized_group.rs"]],["vdf",[["wesolowski",[],["fiat_shamir.rs","mod.rs"]]],["mod.rs"]]],["lib.rs"]]],\ +["fastcrypto_vdf",["",[["class_group",[],["bigint_serde.rs","discriminant.rs","hash.rs","mod.rs","reduction.rs"]],["math",[],["crt.rs","extended_gcd.rs","hash_prime.rs","jacobi.rs","mod.rs","modular_sqrt.rs","parameterized_group.rs"]],["vdf",[["pietrzak",[],["mod.rs"]],["wesolowski",[],["fiat_shamir.rs","mod.rs"]]],["mod.rs"]]],["lib.rs"]]],\ ["fastcrypto_zkp",["",[["bls12381",[["api",[],["conversions.rs","mod.rs"]]],["mod.rs"]],["bn254",[["poseidon",[],["constants.rs","mod.rs"]]],["api.rs","mod.rs","utils.rs","verifier.rs","zk_login.rs","zk_login_api.rs"]],["groth16",[],["api.rs","mod.rs"]]],["dummy_circuits.rs","lib.rs","zk_login_utils.rs"]]],\ ["sigs_cli",["",[],["sigs_cli.rs"]]],\ ["tlock_cli",["",[],["tlock.rs"]]],\ diff --git a/docs/src/fastcrypto/groups/mod.rs.html b/docs/src/fastcrypto/groups/mod.rs.html index 31e28ef58f..ef2a69d594 100644 --- a/docs/src/fastcrypto/groups/mod.rs.html +++ b/docs/src/fastcrypto/groups/mod.rs.html @@ -114,6 +114,11 @@ 114 115 116 +117 +118 +119 +120 +121
    // Copyright (c) 2022, Mysten Labs, Inc.
     // SPDX-License-Identifier: Apache-2.0
     
    @@ -170,9 +175,14 @@
     }
     
     /// Trait for group elements that has a fast doubling operation.
    -pub trait Doubling {
    +pub trait Doubling: Clone {
         /// Compute 2 * Self = Self + Self.
    -    fn double(&self) -> Self;
    +    fn double(self) -> Self;
    +
    +    /// Compute input * 2^repetitions by repeated doubling.
    +    fn repeated_doubling(self, repetitions: u64) -> Self {
    +        (0..repetitions).fold(self, |acc, _| acc.double())
    +    }
     }
     
     pub trait Pairing: GroupElement {
    diff --git a/docs/src/fastcrypto/groups/multiplier/integer_utils.rs.html b/docs/src/fastcrypto/groups/multiplier/integer_utils.rs.html
    index 79bfb466b6..50956132a5 100644
    --- a/docs/src/fastcrypto/groups/multiplier/integer_utils.rs.html
    +++ b/docs/src/fastcrypto/groups/multiplier/integer_utils.rs.html
    @@ -207,7 +207,7 @@
     // SPDX-License-Identifier: Apache-2.0
     
     use crate::groups::multiplier::ToLittleEndianBytes;
    -use num_bigint::BigInt;
    +use num_bigint::BigUint;
     
     /// Given a binary representation of a number in little-endian format, return the digits of its base
     /// `2^bits_per_digit` expansion.
    @@ -321,12 +321,12 @@
         x & (x - 1) == 0
     }
     
    -// We implementation `ToLittleEndianByteArray` for BigInt in case it needs to be used as scalar for
    +// We implement `ToLittleEndianByteArray` for `BigUint` in case it needs to be used as scalar for
     // multi-scalar multiplication.
    -impl ToLittleEndianBytes for BigInt {
    +impl ToLittleEndianBytes for BigUint {
         fn to_le_bytes(&self) -> Vec<u8> {
    -        self.to_bytes_le().1
    -    }
    +        self.to_bytes_le()
    +    }
     }
     
     #[cfg(test)]
    diff --git a/docs/src/fastcrypto/groups/ristretto255.rs.html b/docs/src/fastcrypto/groups/ristretto255.rs.html
    index edb8833511..08751cefa7 100644
    --- a/docs/src/fastcrypto/groups/ristretto255.rs.html
    +++ b/docs/src/fastcrypto/groups/ristretto255.rs.html
    @@ -294,8 +294,8 @@
     }
     
     impl Doubling for RistrettoPoint {
    -    fn double(&self) -> Self {
    -        Self(self.0.add(&self.0))
    +    fn double(self) -> Self {
    +        Self(self.0.add(self.0))
         }
     }
     
    diff --git a/docs/src/fastcrypto/groups/secp256r1.rs.html b/docs/src/fastcrypto/groups/secp256r1.rs.html
    index 876dd56950..f3bf500391 100644
    --- a/docs/src/fastcrypto/groups/secp256r1.rs.html
    +++ b/docs/src/fastcrypto/groups/secp256r1.rs.html
    @@ -175,7 +175,7 @@
     }
     
     impl Doubling for ProjectivePoint {
    -    fn double(&self) -> Self {
    +    fn double(self) -> Self {
             ProjectivePoint::from(self.0.double())
         }
     }
    diff --git a/docs/src/fastcrypto_vdf/class_group/mod.rs.html b/docs/src/fastcrypto_vdf/class_group/mod.rs.html
    index 87d2a4aefe..19255a0315 100644
    --- a/docs/src/fastcrypto_vdf/class_group/mod.rs.html
    +++ b/docs/src/fastcrypto_vdf/class_group/mod.rs.html
    @@ -345,12 +345,6 @@
     345
     346
     347
    -348
    -349
    -350
    -351
    -352
    -353
     
    // Copyright (c) 2022, Mysten Labs, Inc.
     // SPDX-License-Identifier: Apache-2.0
     
    @@ -558,26 +552,22 @@
     }
     
     impl Doubling for QuadraticForm {
    -    fn double(&self) -> Self {
    +    fn double(self) -> Self {
             // Slightly optimised version of Algorithm 2 from Jacobson, Jr, Michael & Poorten, Alfred
             // (2002). "Computational aspects of NUCOMP", Lecture Notes in Computer Science.
             // (https://www.researchgate.net/publication/221451638_Computational_aspects_of_NUCOMP)
             // The paragraph numbers and variable names follow the paper.
     
    -        let u = &self.a;
    -        let v = &self.b;
    -        let w = &self.c;
    -
    -        let EuclideanAlgorithmOutput {
    +        let EuclideanAlgorithmOutput {
                 gcd: g,
                 x: _,
                 y,
                 a_divided_by_gcd: capital_by,
                 b_divided_by_gcd: capital_dy,
    -        } = extended_euclidean_algorithm(u, v, false);
    +        } = extended_euclidean_algorithm(&self.a, &self.b, false);
     
             let (bx, x, by, y, iterated) = partial_xgcd(
    -            (&y * w).mod_floor(&capital_by),
    +            (&y * &self.c).mod_floor(&capital_by),
                 capital_by.clone(),
                 self.partial_gcd_limit(),
             );
    @@ -587,11 +577,11 @@
             let mut v3 = -(by * &bx) << 1;
     
             if !iterated {
    -            let dx = (&bx * &capital_dy - w) / &capital_by;
    -            v3 += v;
    +            let dx = (&bx * &capital_dy - &self.c) / &capital_by;
    +            v3 += &self.b;
                 w3 -= &g * &dx;
             } else {
    -            let dx = (&bx * &capital_dy - w * &x) / &capital_by;
    +            let dx = (&bx * &capital_dy - &self.c * &x) / &capital_by;
                 let q1 = &dx * &y;
                 let mut dy = &q1 + &capital_dy;
                 v3 += &g * (&dy + &q1);
    @@ -648,8 +638,6 @@
         /// The discriminant of a quadratic form defines the class group.
         type ParameterType = Discriminant;
     
    -    type ScalarType = BigInt;
    -
         fn zero(discriminant: &Self::ParameterType) -> Self {
             Self::from_a_b_and_discriminant(BigInt::one(), BigInt::one(), discriminant)
                 .expect("Doesn't fail")
    diff --git a/docs/src/fastcrypto_vdf/math/parameterized_group.rs.html b/docs/src/fastcrypto_vdf/math/parameterized_group.rs.html
    index 8cf079cc18..b243c4f516 100644
    --- a/docs/src/fastcrypto_vdf/math/parameterized_group.rs.html
    +++ b/docs/src/fastcrypto_vdf/math/parameterized_group.rs.html
    @@ -30,13 +30,60 @@
     30
     31
     32
    +33
    +34
    +35
    +36
    +37
    +38
    +39
    +40
    +41
    +42
    +43
    +44
    +45
    +46
    +47
    +48
    +49
    +50
    +51
    +52
    +53
    +54
    +55
    +56
    +57
    +58
    +59
    +60
    +61
    +62
    +63
    +64
    +65
    +66
    +67
    +68
    +69
    +70
    +71
    +72
    +73
    +74
    +75
    +76
    +77
    +78
    +79
     
    // Copyright (c) 2022, Mysten Labs, Inc.
     // SPDX-License-Identifier: Apache-2.0
     
    -use std::ops::{Add, Neg};
    -
    -use fastcrypto::error::FastCryptoResult;
    +use fastcrypto::error::FastCryptoResult;
     use fastcrypto::groups::Doubling;
    +use num_bigint::BigUint;
    +use std::ops::{Add, Neg};
     
     /// This trait is implemented by types which can be used as parameters for a parameterized group.
     /// See [ParameterizedGroupElement].
    @@ -53,13 +100,60 @@
         /// The type of the parameter which uniquely defines this group.
         type ParameterType: Parameter;
     
    -    /// Integer type used for multiplication.
    -    type ScalarType: From<u64>;
    -
         /// Return an instance of the identity element in this group.
         fn zero(parameter: &Self::ParameterType) -> Self;
     
         /// Returns true if this is an element of the group defined by `parameter`.
         fn is_in_group(&self, parameter: &Self::ParameterType) -> bool;
     }
    +
    +/// Compute self * scalar using a "Double-and-Add" algorithm for a positive scalar.
    +pub(crate) fn multiply<G: ParameterizedGroupElement>(
    +    input: &G,
    +    scalar: &BigUint,
    +    parameter: &G::ParameterType,
    +) -> G {
    +    (0..scalar.bits())
    +        .rev()
    +        .map(|i| scalar.bit(i))
    +        .fold(G::zero(parameter), |acc, bit| {
    +            let mut res = acc.double();
    +            if bit {
    +                res = res + input;
    +            }
    +            res
    +        })
    +}
    +
    +#[cfg(test)]
    +mod tests {
    +    use crate::class_group::discriminant::Discriminant;
    +    use crate::class_group::QuadraticForm;
    +    use crate::math::parameterized_group::{multiply, Parameter, ParameterizedGroupElement};
    +    use num_bigint::BigUint;
    +    use num_traits::{One, Zero};
    +
    +    #[test]
    +    fn test_scalar_multiplication() {
    +        let discriminant = Discriminant::from_seed(b"test", 256).unwrap();
    +        let input = QuadraticForm::generator(&discriminant);
    +
    +        // Edge cases
    +        assert_eq!(
    +            QuadraticForm::zero(&discriminant),
    +            multiply(&input, &BigUint::zero(), &discriminant)
    +        );
    +        assert_eq!(input, multiply(&input, &BigUint::one(), &discriminant));
    +
    +        let exponent = 12345u64;
    +        let output = multiply(&input, &BigUint::from(exponent), &discriminant);
    +
    +        // Check alignment with repeated addition.
    +        let mut expected_output = input.clone();
    +        for _ in 1..exponent {
    +            expected_output = expected_output + &input;
    +        }
    +        assert_eq!(output, expected_output);
    +    }
    +}
     

\ No newline at end of file diff --git a/docs/src/fastcrypto_vdf/vdf/mod.rs.html b/docs/src/fastcrypto_vdf/vdf/mod.rs.html index 7fc6c0428b..71d555dbd5 100644 --- a/docs/src/fastcrypto_vdf/vdf/mod.rs.html +++ b/docs/src/fastcrypto_vdf/vdf/mod.rs.html @@ -88,6 +88,7 @@ 88 89 90 +91
// Copyright (c) 2022, Mysten Labs, Inc.
 // SPDX-License-Identifier: Apache-2.0
 
@@ -96,6 +97,7 @@
 
 use fastcrypto::error::FastCryptoResult;
 
+pub mod pietrzak;
 pub mod wesolowski;
 
 /// This represents a Verifiable Delay Function (VDF) construction.
diff --git a/docs/src/fastcrypto_vdf/vdf/pietrzak/mod.rs.html b/docs/src/fastcrypto_vdf/vdf/pietrzak/mod.rs.html
new file mode 100644
index 0000000000..67665242ae
--- /dev/null
+++ b/docs/src/fastcrypto_vdf/vdf/pietrzak/mod.rs.html
@@ -0,0 +1,359 @@
+mod.rs - source
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
+79
+80
+81
+82
+83
+84
+85
+86
+87
+88
+89
+90
+91
+92
+93
+94
+95
+96
+97
+98
+99
+100
+101
+102
+103
+104
+105
+106
+107
+108
+109
+110
+111
+112
+113
+114
+115
+116
+117
+118
+119
+120
+121
+122
+123
+124
+125
+126
+127
+128
+129
+130
+131
+132
+133
+134
+135
+136
+137
+138
+139
+140
+141
+142
+143
+144
+145
+146
+147
+148
+149
+150
+151
+152
+153
+154
+155
+156
+157
+158
+159
+160
+161
+162
+163
+164
+165
+166
+167
+168
+169
+170
+171
+172
+173
+174
+175
+176
+177
+178
+179
+
// Copyright (c) 2022, Mysten Labs, Inc.
+// SPDX-License-Identifier: Apache-2.0
+
+use crate::math::parameterized_group::{multiply, ParameterizedGroupElement};
+use crate::vdf::VDF;
+use fastcrypto::error::FastCryptoError::{InvalidInput, InvalidProof};
+use fastcrypto::error::FastCryptoResult;
+use fastcrypto::hash::{HashFunction, Keccak256};
+use num_bigint::BigUint;
+use num_integer::Integer;
+use serde::Serialize;
+use std::mem;
+
+/// Default size in bytes of the Fiat-Shamir challenge used in proving and verification.
+///
+/// This is based on Pietrzak (2018), "Simple Verifiable Delay Functions" (https://eprint.iacr.org/2018/627.pdf)
+/// which states that the challenge should be 2^l bits (see section 6), where l is the security
+/// parameter. Soundness is proven in section 6.3 in this paper.
+pub const DEFAULT_CHALLENGE_SIZE_IN_BYTES: usize = 16;
+
+/// This implements Pietrzak's VDF construction from https://eprint.iacr.org/2018/627.pdf.
+///
+/// The VDF is, as in [crate::vdf::wesolowski::WesolowskisVDF], based on the repeated squaring of an
+/// element in a group of unknown order. However, in this construction, proofs are larger and
+/// verification is slower than in Wesolowski's construction, but the output of a VDF is unique,
+/// assuming that the used group have no small subgroups, and proving is faster for the same number
+/// of iterations.
+pub struct PietrzaksVDF<G: ParameterizedGroupElement> {
+    group_parameter: G::ParameterType,
+    iterations: u64,
+}
+
+impl<G: ParameterizedGroupElement> PietrzaksVDF<G> {
+    /// Create a new VDF using the group defined by the given group parameter. Evaluating this VDF
+    /// will require computing `2^iterations * input` which requires `iterations` group operations.
+    pub fn new(group_parameter: G::ParameterType, iterations: u64) -> Self {
+        Self {
+            group_parameter,
+            iterations,
+        }
+    }
+}
+
+impl<G: ParameterizedGroupElement + Serialize> VDF for PietrzaksVDF<G>
+where
+    G::ParameterType: Serialize,
+{
+    type InputType = G;
+    type OutputType = G;
+    type ProofType = Vec<G>;
+
+    fn evaluate(&self, input: &G) -> FastCryptoResult<(G, Vec<G>)> {
+        // Proof generation works but is not optimised.
+
+        if !input.is_in_group(&self.group_parameter) || self.iterations == 0 {
+            return Err(InvalidInput);
+        }
+
+        // Compute output = 2^iterations * input
+        let output = input.clone().repeated_doubling(self.iterations);
+
+        let mut x = input.clone();
+        let mut y = output.clone();
+        let mut t = self.iterations;
+
+        let mut proof = Vec::new();
+
+        // Compute the full proof. This loop may stop at any time which will give a shorter proof
+        // that is computationally harder to verify.
+        while t != 1 {
+            if check_parity_and_iterate(&mut t) {
+                y = y.double();
+            }
+
+            // TODO: Precompute some of the mu's to speed up the proof generation.
+            let mu = x.clone().repeated_doubling(t);
+
+            let r = compute_challenge(&x, &y, self.iterations, &mu, &self.group_parameter);
+            x = multiply(&x, &r, &self.group_parameter) + &mu;
+            y = multiply(&mu, &r, &self.group_parameter) + &y;
+
+            proof.push(mu);
+        }
+
+        Ok((output, proof))
+    }
+
+    fn verify(&self, input: &G, output: &G, proof: &Vec<G>) -> FastCryptoResult<()> {
+        if !input.is_in_group(&self.group_parameter)
+            || !output.is_in_group(&self.group_parameter)
+            || !proof.iter().all(|mu| mu.is_in_group(&self.group_parameter))
+            || self.iterations == 0
+        {
+            return Err(InvalidInput);
+        }
+
+        let mut x = input.clone();
+        let mut y = output.clone();
+        let mut t = self.iterations;
+
+        for mu in proof {
+            if check_parity_and_iterate(&mut t) {
+                y = y.double();
+            }
+
+            let r = compute_challenge(&x, &y, self.iterations, mu, &self.group_parameter);
+            x = multiply(&x, &r, &self.group_parameter) + mu;
+            y = multiply(mu, &r, &self.group_parameter) + y;
+        }
+
+        // In case the proof is shorter than the full proof, we need to compute the remaining powers.
+        x = x.repeated_doubling(t);
+        if x != y {
+            return Err(InvalidProof);
+        }
+        Ok(())
+    }
+}
+
+/// Compute the Fiat-Shamir challenge used in Pietrzak's VDF construction.
+fn compute_challenge<G: ParameterizedGroupElement + Serialize>(
+    input: &G,
+    output: &G,
+    iterations: u64,
+    mu: &G,
+    group_parameter: &G::ParameterType,
+) -> BigUint
+where
+    G::ParameterType: Serialize,
+{
+    let seed = bcs::to_bytes(&(input, output, iterations, mu, group_parameter))
+        .expect("Failed to serialize Fiat-Shamir input.");
+    let hash = Keccak256::digest(seed);
+    BigUint::from_bytes_be(&hash.digest[..DEFAULT_CHALLENGE_SIZE_IN_BYTES])
+}
+
+/// Replace t with (t+1) >> 1 and return true iff the input was odd.
+#[inline]
+fn check_parity_and_iterate(t: &mut u64) -> bool {
+    mem::replace(t, (*t >> 1) + (*t & 1)).is_odd()
+}
+
+#[cfg(test)]
+mod tests {
+    use crate::class_group::discriminant::Discriminant;
+    use crate::class_group::QuadraticForm;
+    use crate::math::parameterized_group::Parameter;
+    use crate::vdf::pietrzak::PietrzaksVDF;
+    use crate::vdf::VDF;
+
+    #[test]
+    fn test_vdf() {
+        let iterations = 136u64;
+        let discriminant = Discriminant::from_seed(&[0, 1, 2], 512).unwrap();
+
+        let input = QuadraticForm::generator(&discriminant);
+
+        let vdf = PietrzaksVDF::<QuadraticForm>::new(discriminant.clone(), iterations);
+        let (output, proof) = vdf.evaluate(&input).unwrap();
+
+        assert!(vdf.verify(&input, &output, &proof).is_ok());
+
+        let other_input = input.clone() + &input;
+        assert!(vdf.verify(&other_input, &output, &proof).is_err())
+    }
+
+    #[test]
+    fn test_vdf_edge_cases() {
+        let discriminant = Discriminant::from_seed(&[0, 1, 2], 512).unwrap();
+        let input = QuadraticForm::generator(&discriminant);
+
+        assert!(PietrzaksVDF::<QuadraticForm>::new(discriminant.clone(), 1)
+            .evaluate(&input)
+            .is_ok());
+        assert!(PietrzaksVDF::<QuadraticForm>::new(discriminant.clone(), 0)
+            .evaluate(&input)
+            .is_err());
+    }
+}
+
\ No newline at end of file diff --git a/docs/src/fastcrypto_vdf/vdf/wesolowski/fiat_shamir.rs.html b/docs/src/fastcrypto_vdf/vdf/wesolowski/fiat_shamir.rs.html index 2ce9480efa..d54ae54cd9 100644 --- a/docs/src/fastcrypto_vdf/vdf/wesolowski/fiat_shamir.rs.html +++ b/docs/src/fastcrypto_vdf/vdf/wesolowski/fiat_shamir.rs.html @@ -48,33 +48,15 @@ 48 49 50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66
// Copyright (c) 2022, Mysten Labs, Inc.
 // SPDX-License-Identifier: Apache-2.0
 
-use crate::class_group::discriminant::Discriminant;
-use crate::class_group::QuadraticForm;
+use crate::class_group::QuadraticForm;
 use crate::math::hash_prime::hash_prime;
 use crate::math::parameterized_group::ParameterizedGroupElement;
 use crate::vdf::wesolowski::WesolowskisVDF;
 use fastcrypto::groups::multiplier::ScalarMultiplier;
-use num_bigint::BigInt;
-use serde::Serialize;
+use num_bigint::BigUint;
 
 /// Default size in bytes of the Fiat-Shamir challenge used in proving and verification.
 ///
@@ -89,11 +71,11 @@
 pub trait FiatShamir<G: ParameterizedGroupElement>: Sized {
     /// Compute the prime modulus used in proving and verification. This is a Fiat-Shamir construction
     /// to make the Wesolowski VDF non-interactive.
-    fn compute_challenge<M: ScalarMultiplier<G, G::ScalarType>>(
+    fn compute_challenge<M: ScalarMultiplier<G, BigUint>>(
         vdf: &WesolowskisVDF<G, Self, M>,
         input: &G,
         output: &G,
-    ) -> G::ScalarType;
+    ) -> BigUint;
 }
 
 /// Implementation of the Fiat-Shamir challenge generation for usage with Wesolowski's VDF construction.
@@ -102,32 +84,18 @@
 pub struct StrongFiatShamir {}
 
 impl FiatShamir<QuadraticForm> for StrongFiatShamir {
-    fn compute_challenge<M: ScalarMultiplier<QuadraticForm, BigInt>>(
+    fn compute_challenge<M: ScalarMultiplier<QuadraticForm, BigUint>>(
         vdf: &WesolowskisVDF<QuadraticForm, Self, M>,
         input: &QuadraticForm,
         output: &QuadraticForm,
-    ) -> BigInt {
-        let seed = bcs::to_bytes(&FiatShamirInput {
-            input,
-            output,
-            iterations: vdf.iterations,
-            group_parameter: &vdf.group_parameter,
-        })
-        .expect("Failed to serialize FiatShamirInput");
+    ) -> BigUint {
+        let seed = bcs::to_bytes(&(input, output, vdf.iterations, &vdf.group_parameter))
+            .expect("Failed to serialize Fiat-Shamir input");
         hash_prime(
             &seed,
             DEFAULT_CHALLENGE_SIZE_IN_BYTES,
             &[0, 8 * DEFAULT_CHALLENGE_SIZE_IN_BYTES - 1],
         )
-        .into()
     }
 }
-
-#[derive(Serialize)]
-struct FiatShamirInput<'a> {
-    input: &'a QuadraticForm,
-    output: &'a QuadraticForm,
-    iterations: u64,
-    group_parameter: &'a Discriminant,
-}
 
\ No newline at end of file diff --git a/docs/src/fastcrypto_vdf/vdf/wesolowski/mod.rs.html b/docs/src/fastcrypto_vdf/vdf/wesolowski/mod.rs.html index c9838458ee..b3d757c1bf 100644 --- a/docs/src/fastcrypto_vdf/vdf/wesolowski/mod.rs.html +++ b/docs/src/fastcrypto_vdf/vdf/wesolowski/mod.rs.html @@ -198,15 +198,13 @@ 198 199 200 -201 -202
// Copyright (c) 2022, Mysten Labs, Inc.
 // SPDX-License-Identifier: Apache-2.0
 
 use std::marker::PhantomData;
 use std::ops::ShlAssign;
 
-use num_bigint::BigInt;
+use num_bigint::BigUint;
 use num_integer::Integer;
 
 use fastcrypto::error::FastCryptoError::{InvalidInput, InvalidProof};
@@ -226,7 +224,7 @@
 pub struct WesolowskisVDF<
     G: ParameterizedGroupElement,
     F: FiatShamir<G>,
-    M: ScalarMultiplier<G, G::ScalarType>,
+    M: ScalarMultiplier<G, BigUint>,
 > {
     group_parameter: G::ParameterType,
     iterations: u64,
@@ -234,7 +232,7 @@
     _scalar_multiplier: PhantomData<M>,
 }
 
-impl<G: ParameterizedGroupElement, F: FiatShamir<G>, M: ScalarMultiplier<G, G::ScalarType>>
+impl<G: ParameterizedGroupElement, F: FiatShamir<G>, M: ScalarMultiplier<G, BigUint>>
     WesolowskisVDF<G, F, M>
 {
     /// Create a new VDF using the group defined by the given group parameter. Evaluating this VDF
@@ -249,11 +247,8 @@
     }
 }
 
-impl<
-        G: ParameterizedGroupElement<ScalarType = BigInt>,
-        F: FiatShamir<G>,
-        M: ScalarMultiplier<G, BigInt>,
-    > VDF for WesolowskisVDF<G, F, M>
+impl<G: ParameterizedGroupElement, F: FiatShamir<G>, M: ScalarMultiplier<G, BigUint>> VDF
+    for WesolowskisVDF<G, F, M>
 {
     type InputType = G;
     type OutputType = G;
@@ -265,16 +260,13 @@
         }
 
         // Compute output = 2^iterations * input
-        let mut output = input.clone();
-        for _ in 0..self.iterations {
-            output = output.double();
-        }
+        let output = input.clone().repeated_doubling(self.iterations);
 
         let multiplier = M::new(input.clone(), G::zero(&self.group_parameter));
 
         // Algorithm from page 3 on https://crypto.stanford.edu/~dabo/pubs/papers/VDFsurvey.pdf
         let challenge = F::compute_challenge(self, input, &output);
-        let mut quotient_remainder = (BigInt::from(0), BigInt::from(2));
+        let mut quotient_remainder = (BigUint::from(0u8), BigUint::from(2u8));
         let mut proof = multiplier.mul(&quotient_remainder.0);
         for _ in 1..self.iterations {
             quotient_remainder.1.shl_assign(1);
@@ -294,7 +286,11 @@
         }
 
         let challenge = F::compute_challenge(self, input, output);
-        let r = BigInt::modpow(&BigInt::from(2), &BigInt::from(self.iterations), &challenge);
+        let r = BigUint::modpow(
+            &BigUint::from(2u8),
+            &BigUint::from(self.iterations),
+            &challenge,
+        );
         let multiplier = M::new(input.clone(), G::zero(&self.group_parameter));
 
         if multiplier.two_scalar_mul(&r, proof, &challenge) != *output {
@@ -309,7 +305,7 @@
 pub type DefaultVDF = WesolowskisVDF<
     QuadraticForm,
     StrongFiatShamir,
-    WindowedScalarMultiplier<QuadraticForm, BigInt, 256, 5>,
+    WindowedScalarMultiplier<QuadraticForm, BigUint, 256, 5>,
 >;
 
 #[cfg(test)]
@@ -322,7 +318,7 @@
     use crate::vdf::VDF;
     use fastcrypto::groups::multiplier::windowed::WindowedScalarMultiplier;
     use fastcrypto::groups::multiplier::ScalarMultiplier;
-    use num_bigint::BigInt;
+    use num_bigint::{BigInt, BigUint};
     use num_traits::Num;
     use std::str::FromStr;
 
@@ -378,7 +374,7 @@
         let vdf = WesolowskisVDF::<
             QuadraticForm,
             ChiaFiatShamir,
-            WindowedScalarMultiplier<QuadraticForm, BigInt, 256, 5>,
+            WindowedScalarMultiplier<QuadraticForm, BigUint, 256, 5>,
         >::new(discriminant.clone(), iterations);
 
         assert!(vdf.verify(&input, &output, &proof).is_ok());
@@ -388,13 +384,13 @@
     struct ChiaFiatShamir {}
 
     impl FiatShamir<QuadraticForm> for ChiaFiatShamir {
-        fn compute_challenge<M: ScalarMultiplier<QuadraticForm, BigInt>>(
+        fn compute_challenge<M: ScalarMultiplier<QuadraticForm, BigUint>>(
             _vdf: &WesolowskisVDF<QuadraticForm, Self, M>,
             _input: &QuadraticForm,
             _output: &QuadraticForm,
-        ) -> BigInt {
+        ) -> BigUint {
             // Hardcoded challenge for the test vector
-            BigInt::from_str_radix(
+            BigUint::from_str_radix(
                 "a8d8728e9942a994a3a1aa3d2fa21549aa1a7b37d3c315c6e705bda590689c640f",
                 16,
             )
diff --git a/docs/trait.impl/core/marker/trait.Freeze.js b/docs/trait.impl/core/marker/trait.Freeze.js
index fed61b6364..9637edb89e 100644
--- a/docs/trait.impl/core/marker/trait.Freeze.js
+++ b/docs/trait.impl/core/marker/trait.Freeze.js
@@ -4,7 +4,7 @@
 "fastcrypto":[["impl !Freeze for BLS12381AggregateSignature",1,["fastcrypto::bls12381::min_pk::BLS12381AggregateSignature"]],["impl !Freeze for BLS12381KeyPair",1,["fastcrypto::bls12381::min_pk::BLS12381KeyPair"]],["impl !Freeze for BLS12381PrivateKey",1,["fastcrypto::bls12381::min_pk::BLS12381PrivateKey"]],["impl !Freeze for BLS12381PublicKey",1,["fastcrypto::bls12381::min_pk::BLS12381PublicKey"]],["impl !Freeze for BLS12381Signature",1,["fastcrypto::bls12381::min_pk::BLS12381Signature"]],["impl !Freeze for BLS12381AggregateSignature",1,["fastcrypto::bls12381::min_sig::BLS12381AggregateSignature"]],["impl !Freeze for BLS12381KeyPair",1,["fastcrypto::bls12381::min_sig::BLS12381KeyPair"]],["impl !Freeze for BLS12381PrivateKey",1,["fastcrypto::bls12381::min_sig::BLS12381PrivateKey"]],["impl !Freeze for BLS12381PublicKey",1,["fastcrypto::bls12381::min_sig::BLS12381PublicKey"]],["impl !Freeze for BLS12381Signature",1,["fastcrypto::bls12381::min_sig::BLS12381Signature"]],["impl !Freeze for Ed25519AggregateSignature",1,["fastcrypto::ed25519::Ed25519AggregateSignature"]],["impl !Freeze for Ed25519Signature",1,["fastcrypto::ed25519::Ed25519Signature"]],["impl !Freeze for Secp256k1RecoverableSignature",1,["fastcrypto::secp256k1::recoverable::Secp256k1RecoverableSignature"]],["impl !Freeze for Secp256k1KeyPair",1,["fastcrypto::secp256k1::Secp256k1KeyPair"]],["impl !Freeze for Secp256k1PrivateKey",1,["fastcrypto::secp256k1::Secp256k1PrivateKey"]],["impl !Freeze for Secp256k1PublicKey",1,["fastcrypto::secp256k1::Secp256k1PublicKey"]],["impl !Freeze for Secp256k1Signature",1,["fastcrypto::secp256k1::Secp256k1Signature"]],["impl !Freeze for Secp256r1RecoverableSignature",1,["fastcrypto::secp256r1::recoverable::Secp256r1RecoverableSignature"]],["impl !Freeze for Secp256r1KeyPair",1,["fastcrypto::secp256r1::Secp256r1KeyPair"]],["impl !Freeze for Secp256r1PrivateKey",1,["fastcrypto::secp256r1::Secp256r1PrivateKey"]],["impl !Freeze for Secp256r1PublicKey",1,["fastcrypto::secp256r1::Secp256r1PublicKey"]],["impl !Freeze for Secp256r1Signature",1,["fastcrypto::secp256r1::Secp256r1Signature"]],["impl Freeze for FastCryptoError",1,["fastcrypto::error::FastCryptoError"]],["impl Freeze for Ed25519KeyPair",1,["fastcrypto::ed25519::Ed25519KeyPair"]],["impl Freeze for Ed25519PrivateKey",1,["fastcrypto::ed25519::Ed25519PrivateKey"]],["impl Freeze for Ed25519PublicKey",1,["fastcrypto::ed25519::Ed25519PublicKey"]],["impl Freeze for SingleSignature",1,["fastcrypto::ed25519::SingleSignature"]],["impl Freeze for Base58",1,["fastcrypto::encoding::Base58"]],["impl Freeze for Base64",1,["fastcrypto::encoding::Base64"]],["impl Freeze for Bech32",1,["fastcrypto::encoding::Bech32"]],["impl Freeze for Hex",1,["fastcrypto::encoding::Hex"]],["impl Freeze for G1Element",1,["fastcrypto::groups::bls12381::G1Element"]],["impl Freeze for G2Element",1,["fastcrypto::groups::bls12381::G2Element"]],["impl Freeze for GTElement",1,["fastcrypto::groups::bls12381::GTElement"]],["impl Freeze for Scalar",1,["fastcrypto::groups::bls12381::Scalar"]],["impl Freeze for RistrettoPoint",1,["fastcrypto::groups::ristretto255::RistrettoPoint"]],["impl Freeze for RistrettoScalar",1,["fastcrypto::groups::ristretto255::RistrettoScalar"]],["impl Freeze for ProjectivePoint",1,["fastcrypto::groups::secp256r1::ProjectivePoint"]],["impl Freeze for Scalar",1,["fastcrypto::groups::secp256r1::Scalar"]],["impl Freeze for EllipticCurveMultisetHash",1,["fastcrypto::hash::EllipticCurveMultisetHash"]],["impl Freeze for JWTHeader",1,["fastcrypto::jwt_utils::JWTHeader"]],["impl Freeze for RSAPublicKey",1,["fastcrypto::rsa::RSAPublicKey"]],["impl Freeze for RSASignature",1,["fastcrypto::rsa::RSASignature"]],["impl Freeze for ECVRFKeyPair",1,["fastcrypto::vrf::ecvrf::ECVRFKeyPair"]],["impl Freeze for ECVRFPrivateKey",1,["fastcrypto::vrf::ecvrf::ECVRFPrivateKey"]],["impl Freeze for ECVRFProof",1,["fastcrypto::vrf::ecvrf::ECVRFProof"]],["impl Freeze for ECVRFPublicKey",1,["fastcrypto::vrf::ecvrf::ECVRFPublicKey"]],["impl<G, S, const CACHE_SIZE: usize, const SLIDING_WINDOW_WIDTH: usize> Freeze for WindowedScalarMultiplier<G, S, CACHE_SIZE, SLIDING_WINDOW_WIDTH>
where\n G: Freeze,
",1,["fastcrypto::groups::multiplier::windowed::WindowedScalarMultiplier"]],["impl<KeySize, Aes> Freeze for AesCtr<KeySize, Aes>
where\n <KeySize as ArrayLength<u8>>::ArrayType: Freeze,
",1,["fastcrypto::aes::AesCtr"]],["impl<KeySize, Aes, NonceSize> Freeze for AesGcm<KeySize, Aes, NonceSize>
where\n <KeySize as ArrayLength<u8>>::ArrayType: Freeze,
",1,["fastcrypto::aes::AesGcm"]],["impl<KeySize, Aes, Padding> Freeze for AesCbc<KeySize, Aes, Padding>
where\n <KeySize as ArrayLength<u8>>::ArrayType: Freeze,
",1,["fastcrypto::aes::AesCbc"]],["impl<N> Freeze for GenericByteArray<N>
where\n <N as ArrayLength<u8>>::ArrayType: Freeze,
",1,["fastcrypto::aes::GenericByteArray"]],["impl<Signature, const DIGEST_LEN: usize> Freeze for SignatureService<Signature, DIGEST_LEN>",1,["fastcrypto::signature_service::SignatureService"]],["impl<Variant, const DIGEST_LEN: usize> Freeze for HashFunctionWrapper<Variant, DIGEST_LEN>
where\n Variant: Freeze,
",1,["fastcrypto::hash::HashFunctionWrapper"]],["impl<const DIGEST_LEN: usize> Freeze for Digest<DIGEST_LEN>",1,["fastcrypto::hash::Digest"]],["impl<const N: usize> Freeze for BytesRepresentation<N>",1,["fastcrypto::serde_helpers::BytesRepresentation"]],["impl<const N: usize> Freeze for SerializationHelper<N>",1,["fastcrypto::serde_helpers::SerializationHelper"]],["impl<const RECOMMENDED_LENGTH: usize, const FIXED_LENGTH_ONLY: bool> Freeze for PrivateSeed<RECOMMENDED_LENGTH, FIXED_LENGTH_ONLY>",1,["fastcrypto::private_seed::PrivateSeed"]]], "fastcrypto_cli":[["impl Freeze for TestVector",1,["fastcrypto_cli::sigs_cli_test_vectors::TestVector"]]], "fastcrypto_tbls":[["impl Freeze for RandomOracle",1,["fastcrypto_tbls::random_oracle::RandomOracle"]],["impl Freeze for ThresholdBls12381MinSig",1,["fastcrypto_tbls::types::ThresholdBls12381MinSig"]],["impl<A> Freeze for IndexedValue<A>
where\n A: Freeze,
",1,["fastcrypto_tbls::types::IndexedValue"]],["impl<A> Freeze for UnindexedValues<A>",1,["fastcrypto_tbls::types::UnindexedValues"]],["impl<C> Freeze for Poly<C>",1,["fastcrypto_tbls::polynomial::Poly"]],["impl<EG> Freeze for Complaint<EG>
where\n EG: Freeze,\n <EG as GroupElement>::ScalarType: Freeze,
",1,["fastcrypto_tbls::dkg::Complaint"]],["impl<EG> Freeze for Confirmation<EG>",1,["fastcrypto_tbls::dkg::Confirmation"]],["impl<G> Freeze for PrivateKey<G>
where\n <G as GroupElement>::ScalarType: Freeze,
",1,["fastcrypto_tbls::ecies::PrivateKey"]],["impl<G> Freeze for PublicKey<G>
where\n G: Freeze,
",1,["fastcrypto_tbls::ecies::PublicKey"]],["impl<G> Freeze for RecoveryPackage<G>
where\n G: Freeze,\n <G as GroupElement>::ScalarType: Freeze,
",1,["fastcrypto_tbls::ecies::RecoveryPackage"]],["impl<G> Freeze for Encryption<G>
where\n G: Freeze,
",1,["fastcrypto_tbls::ecies_v0::Encryption"]],["impl<G> Freeze for MultiRecipientEncryption<G>
where\n G: Freeze,\n <G as GroupElement>::ScalarType: Freeze,
",1,["fastcrypto_tbls::ecies_v0::MultiRecipientEncryption"]],["impl<G> Freeze for MultiRecipientEncryption<G>
where\n G: Freeze,\n <G as GroupElement>::ScalarType: Freeze,
",1,["fastcrypto_tbls::ecies_v1::MultiRecipientEncryption"]],["impl<G> Freeze for DLNizk<G>
where\n G: Freeze,\n <G as GroupElement>::ScalarType: Freeze,
",1,["fastcrypto_tbls::nizk::DLNizk"]],["impl<G> Freeze for DdhTupleNizk<G>
where\n G: Freeze,\n <G as GroupElement>::ScalarType: Freeze,
",1,["fastcrypto_tbls::nizk::DdhTupleNizk"]],["impl<G> Freeze for Node<G>
where\n G: Freeze,
",1,["fastcrypto_tbls::nodes::Node"]],["impl<G> Freeze for Nodes<G>",1,["fastcrypto_tbls::nodes::Nodes"]],["impl<G, EG> Freeze for Output<G, EG>",1,["fastcrypto_tbls::dkg::Output"]],["impl<G, EG> Freeze for Party<G, EG>
where\n <EG as GroupElement>::ScalarType: Freeze,
",1,["fastcrypto_tbls::dkg::Party"]],["impl<G, EG> Freeze for Message<G, EG>
where\n EG: Freeze,\n <EG as GroupElement>::ScalarType: Freeze,
",1,["fastcrypto_tbls::dkg_v0::Message"]],["impl<G, EG> Freeze for ProcessedMessage<G, EG>
where\n EG: Freeze,\n <EG as GroupElement>::ScalarType: Freeze,
",1,["fastcrypto_tbls::dkg_v0::ProcessedMessage"]],["impl<G, EG> Freeze for UsedProcessedMessages<G, EG>",1,["fastcrypto_tbls::dkg_v0::UsedProcessedMessages"]],["impl<G, EG> Freeze for VerifiedProcessedMessages<G, EG>",1,["fastcrypto_tbls::dkg_v0::VerifiedProcessedMessages"]],["impl<G, EG> Freeze for Message<G, EG>
where\n EG: Freeze,\n <EG as GroupElement>::ScalarType: Freeze,
",1,["fastcrypto_tbls::dkg_v1::Message"]],["impl<G, EG> Freeze for ProcessedMessage<G, EG>
where\n EG: Freeze,\n <EG as GroupElement>::ScalarType: Freeze,
",1,["fastcrypto_tbls::dkg_v1::ProcessedMessage"]],["impl<G, EG> Freeze for UsedProcessedMessages<G, EG>",1,["fastcrypto_tbls::dkg_v1::UsedProcessedMessages"]],["impl<G, EG> Freeze for VerifiedProcessedMessages<G, EG>",1,["fastcrypto_tbls::dkg_v1::VerifiedProcessedMessages"]]], -"fastcrypto_vdf":[["impl !Freeze for QuadraticForm",1,["fastcrypto_vdf::class_group::QuadraticForm"]],["impl Freeze for DISCRIMINANT_3072",1,["fastcrypto_vdf::class_group::discriminant::DISCRIMINANT_3072"]],["impl Freeze for Discriminant",1,["fastcrypto_vdf::class_group::discriminant::Discriminant"]],["impl<G, F, M> Freeze for WesolowskisVDF<G, F, M>",1,["fastcrypto_vdf::vdf::wesolowski::WesolowskisVDF"]]], +"fastcrypto_vdf":[["impl !Freeze for QuadraticForm",1,["fastcrypto_vdf::class_group::QuadraticForm"]],["impl Freeze for DISCRIMINANT_3072",1,["fastcrypto_vdf::class_group::discriminant::DISCRIMINANT_3072"]],["impl Freeze for Discriminant",1,["fastcrypto_vdf::class_group::discriminant::Discriminant"]],["impl<G> Freeze for PietrzaksVDF<G>",1,["fastcrypto_vdf::vdf::pietrzak::PietrzaksVDF"]],["impl<G, F, M> Freeze for WesolowskisVDF<G, F, M>",1,["fastcrypto_vdf::vdf::wesolowski::WesolowskisVDF"]]], "fastcrypto_zkp":[["impl Freeze for OIDCProvider",1,["fastcrypto_zkp::bn254::zk_login::OIDCProvider"]],["impl Freeze for ZkLoginEnv",1,["fastcrypto_zkp::bn254::zk_login_api::ZkLoginEnv"]],["impl Freeze for FieldElement",1,["fastcrypto_zkp::bn254::FieldElement"]],["impl Freeze for Proof",1,["fastcrypto_zkp::bn254::Proof"]],["impl Freeze for VerifyingKey",1,["fastcrypto_zkp::bn254::VerifyingKey"]],["impl Freeze for GetSaltResponse",1,["fastcrypto_zkp::bn254::utils::GetSaltResponse"]],["impl Freeze for TestIssuerJWTResponse",1,["fastcrypto_zkp::bn254::utils::TestIssuerJWTResponse"]],["impl Freeze for PreparedVerifyingKey",1,["fastcrypto_zkp::bn254::verifier::PreparedVerifyingKey"]],["impl Freeze for Claim",1,["fastcrypto_zkp::bn254::zk_login::Claim"]],["impl Freeze for JWK",1,["fastcrypto_zkp::bn254::zk_login::JWK"]],["impl Freeze for JWKReader",1,["fastcrypto_zkp::bn254::zk_login::JWKReader"]],["impl Freeze for JWTDetails",1,["fastcrypto_zkp::bn254::zk_login::JWTDetails"]],["impl Freeze for JwkId",1,["fastcrypto_zkp::bn254::zk_login::JwkId"]],["impl Freeze for ProviderConfig",1,["fastcrypto_zkp::bn254::zk_login::ProviderConfig"]],["impl Freeze for ZkLoginInputs",1,["fastcrypto_zkp::bn254::zk_login::ZkLoginInputs"]],["impl Freeze for ZkLoginInputsReader",1,["fastcrypto_zkp::bn254::zk_login::ZkLoginInputsReader"]],["impl Freeze for ZkLoginProof",1,["fastcrypto_zkp::bn254::zk_login::ZkLoginProof"]],["impl Freeze for Fr",1,["fastcrypto_zkp::Fr"]],["impl Freeze for FrRepr",1,["fastcrypto_zkp::FrRepr"]],["impl Freeze for Bn254FqElement",1,["fastcrypto_zkp::zk_login_utils::Bn254FqElement"]],["impl Freeze for Bn254FrElement",1,["fastcrypto_zkp::zk_login_utils::Bn254FrElement"]],["impl<F> Freeze for DummyCircuit<F>
where\n F: Freeze,
",1,["fastcrypto_zkp::dummy_circuits::DummyCircuit"]],["impl<F> Freeze for Fibonacci<F>
where\n F: Freeze,
",1,["fastcrypto_zkp::dummy_circuits::Fibonacci"]],["impl<G1> Freeze for PreparedVerifyingKey<G1>
where\n <G1 as Pairing>::Output: Freeze,\n <G1 as Pairing>::Other: Freeze,
",1,["fastcrypto_zkp::groth16::PreparedVerifyingKey"]],["impl<G1> Freeze for Proof<G1>
where\n G1: Freeze,\n <G1 as Pairing>::Other: Freeze,
",1,["fastcrypto_zkp::groth16::Proof"]],["impl<G1> Freeze for VerifyingKey<G1>
where\n G1: Freeze,\n <G1 as Pairing>::Other: Freeze,
",1,["fastcrypto_zkp::groth16::VerifyingKey"]]], "sigs_cli":[["impl Freeze for Command",1,["sigs_cli::Command"]],["impl Freeze for SignatureScheme",1,["sigs_cli::SignatureScheme"]],["impl Freeze for KeygenArguments",1,["sigs_cli::KeygenArguments"]],["impl Freeze for SigningArguments",1,["sigs_cli::SigningArguments"]],["impl Freeze for VerifiyingArguments",1,["sigs_cli::VerifiyingArguments"]]], "tlock_cli":[["impl Freeze for Command",1,["tlock_cli::Command"]],["impl Freeze for DecryptArguments",1,["tlock_cli::DecryptArguments"]],["impl Freeze for EncryptArguments",1,["tlock_cli::EncryptArguments"]],["impl Freeze for Encryption",1,["tlock_cli::Encryption"]],["impl Freeze for VerifyArguments",1,["tlock_cli::VerifyArguments"]]], diff --git a/docs/trait.impl/core/marker/trait.Send.js b/docs/trait.impl/core/marker/trait.Send.js index b607e8a1d4..a9da8bbcfc 100644 --- a/docs/trait.impl/core/marker/trait.Send.js +++ b/docs/trait.impl/core/marker/trait.Send.js @@ -4,7 +4,7 @@ "fastcrypto":[["impl Send for FastCryptoError",1,["fastcrypto::error::FastCryptoError"]],["impl Send for BLS12381AggregateSignature",1,["fastcrypto::bls12381::min_pk::BLS12381AggregateSignature"]],["impl Send for BLS12381KeyPair",1,["fastcrypto::bls12381::min_pk::BLS12381KeyPair"]],["impl Send for BLS12381PrivateKey",1,["fastcrypto::bls12381::min_pk::BLS12381PrivateKey"]],["impl Send for BLS12381PublicKey",1,["fastcrypto::bls12381::min_pk::BLS12381PublicKey"]],["impl Send for BLS12381Signature",1,["fastcrypto::bls12381::min_pk::BLS12381Signature"]],["impl Send for BLS12381AggregateSignature",1,["fastcrypto::bls12381::min_sig::BLS12381AggregateSignature"]],["impl Send for BLS12381KeyPair",1,["fastcrypto::bls12381::min_sig::BLS12381KeyPair"]],["impl Send for BLS12381PrivateKey",1,["fastcrypto::bls12381::min_sig::BLS12381PrivateKey"]],["impl Send for BLS12381PublicKey",1,["fastcrypto::bls12381::min_sig::BLS12381PublicKey"]],["impl Send for BLS12381Signature",1,["fastcrypto::bls12381::min_sig::BLS12381Signature"]],["impl Send for Ed25519AggregateSignature",1,["fastcrypto::ed25519::Ed25519AggregateSignature"]],["impl Send for Ed25519KeyPair",1,["fastcrypto::ed25519::Ed25519KeyPair"]],["impl Send for Ed25519PrivateKey",1,["fastcrypto::ed25519::Ed25519PrivateKey"]],["impl Send for Ed25519PublicKey",1,["fastcrypto::ed25519::Ed25519PublicKey"]],["impl Send for Ed25519Signature",1,["fastcrypto::ed25519::Ed25519Signature"]],["impl Send for SingleSignature",1,["fastcrypto::ed25519::SingleSignature"]],["impl Send for Base58",1,["fastcrypto::encoding::Base58"]],["impl Send for Base64",1,["fastcrypto::encoding::Base64"]],["impl Send for Bech32",1,["fastcrypto::encoding::Bech32"]],["impl Send for Hex",1,["fastcrypto::encoding::Hex"]],["impl Send for G1Element",1,["fastcrypto::groups::bls12381::G1Element"]],["impl Send for G2Element",1,["fastcrypto::groups::bls12381::G2Element"]],["impl Send for GTElement",1,["fastcrypto::groups::bls12381::GTElement"]],["impl Send for Scalar",1,["fastcrypto::groups::bls12381::Scalar"]],["impl Send for RistrettoPoint",1,["fastcrypto::groups::ristretto255::RistrettoPoint"]],["impl Send for RistrettoScalar",1,["fastcrypto::groups::ristretto255::RistrettoScalar"]],["impl Send for ProjectivePoint",1,["fastcrypto::groups::secp256r1::ProjectivePoint"]],["impl Send for Scalar",1,["fastcrypto::groups::secp256r1::Scalar"]],["impl Send for EllipticCurveMultisetHash",1,["fastcrypto::hash::EllipticCurveMultisetHash"]],["impl Send for JWTHeader",1,["fastcrypto::jwt_utils::JWTHeader"]],["impl Send for RSAPublicKey",1,["fastcrypto::rsa::RSAPublicKey"]],["impl Send for RSASignature",1,["fastcrypto::rsa::RSASignature"]],["impl Send for Secp256k1RecoverableSignature",1,["fastcrypto::secp256k1::recoverable::Secp256k1RecoverableSignature"]],["impl Send for Secp256k1KeyPair",1,["fastcrypto::secp256k1::Secp256k1KeyPair"]],["impl Send for Secp256k1PrivateKey",1,["fastcrypto::secp256k1::Secp256k1PrivateKey"]],["impl Send for Secp256k1PublicKey",1,["fastcrypto::secp256k1::Secp256k1PublicKey"]],["impl Send for Secp256k1Signature",1,["fastcrypto::secp256k1::Secp256k1Signature"]],["impl Send for Secp256r1RecoverableSignature",1,["fastcrypto::secp256r1::recoverable::Secp256r1RecoverableSignature"]],["impl Send for Secp256r1KeyPair",1,["fastcrypto::secp256r1::Secp256r1KeyPair"]],["impl Send for Secp256r1PrivateKey",1,["fastcrypto::secp256r1::Secp256r1PrivateKey"]],["impl Send for Secp256r1PublicKey",1,["fastcrypto::secp256r1::Secp256r1PublicKey"]],["impl Send for Secp256r1Signature",1,["fastcrypto::secp256r1::Secp256r1Signature"]],["impl Send for ECVRFKeyPair",1,["fastcrypto::vrf::ecvrf::ECVRFKeyPair"]],["impl Send for ECVRFPrivateKey",1,["fastcrypto::vrf::ecvrf::ECVRFPrivateKey"]],["impl Send for ECVRFProof",1,["fastcrypto::vrf::ecvrf::ECVRFProof"]],["impl Send for ECVRFPublicKey",1,["fastcrypto::vrf::ecvrf::ECVRFPublicKey"]],["impl<G, S, const CACHE_SIZE: usize, const SLIDING_WINDOW_WIDTH: usize> Send for WindowedScalarMultiplier<G, S, CACHE_SIZE, SLIDING_WINDOW_WIDTH>
where\n G: Send,\n S: Send,
",1,["fastcrypto::groups::multiplier::windowed::WindowedScalarMultiplier"]],["impl<KeySize, Aes> Send for AesCtr<KeySize, Aes>
where\n Aes: Send,
",1,["fastcrypto::aes::AesCtr"]],["impl<KeySize, Aes, NonceSize> Send for AesGcm<KeySize, Aes, NonceSize>
where\n Aes: Send,\n NonceSize: Send,
",1,["fastcrypto::aes::AesGcm"]],["impl<KeySize, Aes, Padding> Send for AesCbc<KeySize, Aes, Padding>
where\n Aes: Send,\n Padding: Send,
",1,["fastcrypto::aes::AesCbc"]],["impl<N> Send for GenericByteArray<N>",1,["fastcrypto::aes::GenericByteArray"]],["impl<Signature, const DIGEST_LEN: usize> Send for SignatureService<Signature, DIGEST_LEN>",1,["fastcrypto::signature_service::SignatureService"]],["impl<Variant, const DIGEST_LEN: usize> Send for HashFunctionWrapper<Variant, DIGEST_LEN>
where\n Variant: Send,
",1,["fastcrypto::hash::HashFunctionWrapper"]],["impl<const DIGEST_LEN: usize> Send for Digest<DIGEST_LEN>",1,["fastcrypto::hash::Digest"]],["impl<const N: usize> Send for BytesRepresentation<N>",1,["fastcrypto::serde_helpers::BytesRepresentation"]],["impl<const N: usize> Send for SerializationHelper<N>",1,["fastcrypto::serde_helpers::SerializationHelper"]],["impl<const RECOMMENDED_LENGTH: usize, const FIXED_LENGTH_ONLY: bool> Send for PrivateSeed<RECOMMENDED_LENGTH, FIXED_LENGTH_ONLY>",1,["fastcrypto::private_seed::PrivateSeed"]]], "fastcrypto_cli":[["impl Send for TestVector",1,["fastcrypto_cli::sigs_cli_test_vectors::TestVector"]]], "fastcrypto_tbls":[["impl Send for RandomOracle",1,["fastcrypto_tbls::random_oracle::RandomOracle"]],["impl Send for ThresholdBls12381MinSig",1,["fastcrypto_tbls::types::ThresholdBls12381MinSig"]],["impl<A> Send for IndexedValue<A>
where\n A: Send,
",1,["fastcrypto_tbls::types::IndexedValue"]],["impl<A> Send for UnindexedValues<A>
where\n A: Send,
",1,["fastcrypto_tbls::types::UnindexedValues"]],["impl<C> Send for Poly<C>
where\n C: Send,
",1,["fastcrypto_tbls::polynomial::Poly"]],["impl<EG> Send for Complaint<EG>
where\n EG: Send,\n <EG as GroupElement>::ScalarType: Send,
",1,["fastcrypto_tbls::dkg::Complaint"]],["impl<EG> Send for Confirmation<EG>
where\n EG: Send,\n <EG as GroupElement>::ScalarType: Send,
",1,["fastcrypto_tbls::dkg::Confirmation"]],["impl<G> Send for PrivateKey<G>
where\n <G as GroupElement>::ScalarType: Send,
",1,["fastcrypto_tbls::ecies::PrivateKey"]],["impl<G> Send for PublicKey<G>
where\n G: Send,
",1,["fastcrypto_tbls::ecies::PublicKey"]],["impl<G> Send for RecoveryPackage<G>
where\n G: Send,\n <G as GroupElement>::ScalarType: Send,
",1,["fastcrypto_tbls::ecies::RecoveryPackage"]],["impl<G> Send for Encryption<G>
where\n G: Send,
",1,["fastcrypto_tbls::ecies_v0::Encryption"]],["impl<G> Send for MultiRecipientEncryption<G>
where\n G: Send,\n <G as GroupElement>::ScalarType: Send,
",1,["fastcrypto_tbls::ecies_v0::MultiRecipientEncryption"]],["impl<G> Send for MultiRecipientEncryption<G>
where\n G: Send,\n <G as GroupElement>::ScalarType: Send,
",1,["fastcrypto_tbls::ecies_v1::MultiRecipientEncryption"]],["impl<G> Send for DLNizk<G>
where\n G: Send,\n <G as GroupElement>::ScalarType: Send,
",1,["fastcrypto_tbls::nizk::DLNizk"]],["impl<G> Send for DdhTupleNizk<G>
where\n G: Send,\n <G as GroupElement>::ScalarType: Send,
",1,["fastcrypto_tbls::nizk::DdhTupleNizk"]],["impl<G> Send for Node<G>
where\n G: Send,
",1,["fastcrypto_tbls::nodes::Node"]],["impl<G> Send for Nodes<G>
where\n G: Send,
",1,["fastcrypto_tbls::nodes::Nodes"]],["impl<G, EG> Send for Output<G, EG>
where\n G: Send,\n <G as GroupElement>::ScalarType: Send,\n EG: Send,
",1,["fastcrypto_tbls::dkg::Output"]],["impl<G, EG> Send for Party<G, EG>
where\n <EG as GroupElement>::ScalarType: Send,\n <G as GroupElement>::ScalarType: Send,\n EG: Send,
",1,["fastcrypto_tbls::dkg::Party"]],["impl<G, EG> Send for Message<G, EG>
where\n EG: Send,\n <EG as GroupElement>::ScalarType: Send,\n G: Send,
",1,["fastcrypto_tbls::dkg_v0::Message"]],["impl<G, EG> Send for ProcessedMessage<G, EG>
where\n EG: Send,\n <EG as GroupElement>::ScalarType: Send,\n <G as GroupElement>::ScalarType: Send,\n G: Send,
",1,["fastcrypto_tbls::dkg_v0::ProcessedMessage"]],["impl<G, EG> Send for UsedProcessedMessages<G, EG>
where\n EG: Send,\n <EG as GroupElement>::ScalarType: Send,\n <G as GroupElement>::ScalarType: Send,\n G: Send,
",1,["fastcrypto_tbls::dkg_v0::UsedProcessedMessages"]],["impl<G, EG> Send for VerifiedProcessedMessages<G, EG>
where\n EG: Send,\n <EG as GroupElement>::ScalarType: Send,\n <G as GroupElement>::ScalarType: Send,\n G: Send,
",1,["fastcrypto_tbls::dkg_v0::VerifiedProcessedMessages"]],["impl<G, EG> Send for Message<G, EG>
where\n EG: Send,\n <EG as GroupElement>::ScalarType: Send,\n G: Send,
",1,["fastcrypto_tbls::dkg_v1::Message"]],["impl<G, EG> Send for ProcessedMessage<G, EG>
where\n EG: Send,\n <EG as GroupElement>::ScalarType: Send,\n <G as GroupElement>::ScalarType: Send,\n G: Send,
",1,["fastcrypto_tbls::dkg_v1::ProcessedMessage"]],["impl<G, EG> Send for UsedProcessedMessages<G, EG>
where\n EG: Send,\n <EG as GroupElement>::ScalarType: Send,\n <G as GroupElement>::ScalarType: Send,\n G: Send,
",1,["fastcrypto_tbls::dkg_v1::UsedProcessedMessages"]],["impl<G, EG> Send for VerifiedProcessedMessages<G, EG>
where\n EG: Send,\n <EG as GroupElement>::ScalarType: Send,\n <G as GroupElement>::ScalarType: Send,\n G: Send,
",1,["fastcrypto_tbls::dkg_v1::VerifiedProcessedMessages"]]], -"fastcrypto_vdf":[["impl Send for DISCRIMINANT_3072",1,["fastcrypto_vdf::class_group::discriminant::DISCRIMINANT_3072"]],["impl Send for Discriminant",1,["fastcrypto_vdf::class_group::discriminant::Discriminant"]],["impl Send for QuadraticForm",1,["fastcrypto_vdf::class_group::QuadraticForm"]],["impl<G, F, M> Send for WesolowskisVDF<G, F, M>
where\n <G as ParameterizedGroupElement>::ParameterType: Send,\n F: Send,\n M: Send,
",1,["fastcrypto_vdf::vdf::wesolowski::WesolowskisVDF"]]], +"fastcrypto_vdf":[["impl Send for DISCRIMINANT_3072",1,["fastcrypto_vdf::class_group::discriminant::DISCRIMINANT_3072"]],["impl Send for Discriminant",1,["fastcrypto_vdf::class_group::discriminant::Discriminant"]],["impl Send for QuadraticForm",1,["fastcrypto_vdf::class_group::QuadraticForm"]],["impl<G> Send for PietrzaksVDF<G>",1,["fastcrypto_vdf::vdf::pietrzak::PietrzaksVDF"]],["impl<G, F, M> Send for WesolowskisVDF<G, F, M>
where\n <G as ParameterizedGroupElement>::ParameterType: Send,\n F: Send,\n M: Send,
",1,["fastcrypto_vdf::vdf::wesolowski::WesolowskisVDF"]]], "fastcrypto_zkp":[["impl Send for OIDCProvider",1,["fastcrypto_zkp::bn254::zk_login::OIDCProvider"]],["impl Send for ZkLoginEnv",1,["fastcrypto_zkp::bn254::zk_login_api::ZkLoginEnv"]],["impl Send for FieldElement",1,["fastcrypto_zkp::bn254::FieldElement"]],["impl Send for Proof",1,["fastcrypto_zkp::bn254::Proof"]],["impl Send for VerifyingKey",1,["fastcrypto_zkp::bn254::VerifyingKey"]],["impl Send for GetSaltResponse",1,["fastcrypto_zkp::bn254::utils::GetSaltResponse"]],["impl Send for TestIssuerJWTResponse",1,["fastcrypto_zkp::bn254::utils::TestIssuerJWTResponse"]],["impl Send for PreparedVerifyingKey",1,["fastcrypto_zkp::bn254::verifier::PreparedVerifyingKey"]],["impl Send for Claim",1,["fastcrypto_zkp::bn254::zk_login::Claim"]],["impl Send for JWK",1,["fastcrypto_zkp::bn254::zk_login::JWK"]],["impl Send for JWKReader",1,["fastcrypto_zkp::bn254::zk_login::JWKReader"]],["impl Send for JWTDetails",1,["fastcrypto_zkp::bn254::zk_login::JWTDetails"]],["impl Send for JwkId",1,["fastcrypto_zkp::bn254::zk_login::JwkId"]],["impl Send for ProviderConfig",1,["fastcrypto_zkp::bn254::zk_login::ProviderConfig"]],["impl Send for ZkLoginInputs",1,["fastcrypto_zkp::bn254::zk_login::ZkLoginInputs"]],["impl Send for ZkLoginInputsReader",1,["fastcrypto_zkp::bn254::zk_login::ZkLoginInputsReader"]],["impl Send for ZkLoginProof",1,["fastcrypto_zkp::bn254::zk_login::ZkLoginProof"]],["impl Send for Fr",1,["fastcrypto_zkp::Fr"]],["impl Send for FrRepr",1,["fastcrypto_zkp::FrRepr"]],["impl Send for Bn254FqElement",1,["fastcrypto_zkp::zk_login_utils::Bn254FqElement"]],["impl Send for Bn254FrElement",1,["fastcrypto_zkp::zk_login_utils::Bn254FrElement"]],["impl<F> Send for DummyCircuit<F>",1,["fastcrypto_zkp::dummy_circuits::DummyCircuit"]],["impl<F> Send for Fibonacci<F>",1,["fastcrypto_zkp::dummy_circuits::Fibonacci"]],["impl<G1> Send for PreparedVerifyingKey<G1>
where\n <G1 as Pairing>::Output: Send,\n <G1 as Pairing>::Other: Send,\n G1: Send,
",1,["fastcrypto_zkp::groth16::PreparedVerifyingKey"]],["impl<G1> Send for Proof<G1>
where\n G1: Send,\n <G1 as Pairing>::Other: Send,
",1,["fastcrypto_zkp::groth16::Proof"]],["impl<G1> Send for VerifyingKey<G1>
where\n G1: Send,\n <G1 as Pairing>::Other: Send,
",1,["fastcrypto_zkp::groth16::VerifyingKey"]]], "sigs_cli":[["impl Send for Command",1,["sigs_cli::Command"]],["impl Send for SignatureScheme",1,["sigs_cli::SignatureScheme"]],["impl Send for KeygenArguments",1,["sigs_cli::KeygenArguments"]],["impl Send for SigningArguments",1,["sigs_cli::SigningArguments"]],["impl Send for VerifiyingArguments",1,["sigs_cli::VerifiyingArguments"]]], "tlock_cli":[["impl Send for Command",1,["tlock_cli::Command"]],["impl Send for DecryptArguments",1,["tlock_cli::DecryptArguments"]],["impl Send for EncryptArguments",1,["tlock_cli::EncryptArguments"]],["impl Send for Encryption",1,["tlock_cli::Encryption"]],["impl Send for VerifyArguments",1,["tlock_cli::VerifyArguments"]]], diff --git a/docs/trait.impl/core/marker/trait.Sync.js b/docs/trait.impl/core/marker/trait.Sync.js index 90fa034114..834f9fb41c 100644 --- a/docs/trait.impl/core/marker/trait.Sync.js +++ b/docs/trait.impl/core/marker/trait.Sync.js @@ -4,7 +4,7 @@ "fastcrypto":[["impl Sync for FastCryptoError",1,["fastcrypto::error::FastCryptoError"]],["impl Sync for BLS12381AggregateSignature",1,["fastcrypto::bls12381::min_pk::BLS12381AggregateSignature"]],["impl Sync for BLS12381KeyPair",1,["fastcrypto::bls12381::min_pk::BLS12381KeyPair"]],["impl Sync for BLS12381PrivateKey",1,["fastcrypto::bls12381::min_pk::BLS12381PrivateKey"]],["impl Sync for BLS12381PublicKey",1,["fastcrypto::bls12381::min_pk::BLS12381PublicKey"]],["impl Sync for BLS12381Signature",1,["fastcrypto::bls12381::min_pk::BLS12381Signature"]],["impl Sync for BLS12381AggregateSignature",1,["fastcrypto::bls12381::min_sig::BLS12381AggregateSignature"]],["impl Sync for BLS12381KeyPair",1,["fastcrypto::bls12381::min_sig::BLS12381KeyPair"]],["impl Sync for BLS12381PrivateKey",1,["fastcrypto::bls12381::min_sig::BLS12381PrivateKey"]],["impl Sync for BLS12381PublicKey",1,["fastcrypto::bls12381::min_sig::BLS12381PublicKey"]],["impl Sync for BLS12381Signature",1,["fastcrypto::bls12381::min_sig::BLS12381Signature"]],["impl Sync for Ed25519AggregateSignature",1,["fastcrypto::ed25519::Ed25519AggregateSignature"]],["impl Sync for Ed25519KeyPair",1,["fastcrypto::ed25519::Ed25519KeyPair"]],["impl Sync for Ed25519PrivateKey",1,["fastcrypto::ed25519::Ed25519PrivateKey"]],["impl Sync for Ed25519PublicKey",1,["fastcrypto::ed25519::Ed25519PublicKey"]],["impl Sync for Ed25519Signature",1,["fastcrypto::ed25519::Ed25519Signature"]],["impl Sync for SingleSignature",1,["fastcrypto::ed25519::SingleSignature"]],["impl Sync for Base58",1,["fastcrypto::encoding::Base58"]],["impl Sync for Base64",1,["fastcrypto::encoding::Base64"]],["impl Sync for Bech32",1,["fastcrypto::encoding::Bech32"]],["impl Sync for Hex",1,["fastcrypto::encoding::Hex"]],["impl Sync for G1Element",1,["fastcrypto::groups::bls12381::G1Element"]],["impl Sync for G2Element",1,["fastcrypto::groups::bls12381::G2Element"]],["impl Sync for GTElement",1,["fastcrypto::groups::bls12381::GTElement"]],["impl Sync for Scalar",1,["fastcrypto::groups::bls12381::Scalar"]],["impl Sync for RistrettoPoint",1,["fastcrypto::groups::ristretto255::RistrettoPoint"]],["impl Sync for RistrettoScalar",1,["fastcrypto::groups::ristretto255::RistrettoScalar"]],["impl Sync for ProjectivePoint",1,["fastcrypto::groups::secp256r1::ProjectivePoint"]],["impl Sync for Scalar",1,["fastcrypto::groups::secp256r1::Scalar"]],["impl Sync for EllipticCurveMultisetHash",1,["fastcrypto::hash::EllipticCurveMultisetHash"]],["impl Sync for JWTHeader",1,["fastcrypto::jwt_utils::JWTHeader"]],["impl Sync for RSAPublicKey",1,["fastcrypto::rsa::RSAPublicKey"]],["impl Sync for RSASignature",1,["fastcrypto::rsa::RSASignature"]],["impl Sync for Secp256k1RecoverableSignature",1,["fastcrypto::secp256k1::recoverable::Secp256k1RecoverableSignature"]],["impl Sync for Secp256k1KeyPair",1,["fastcrypto::secp256k1::Secp256k1KeyPair"]],["impl Sync for Secp256k1PrivateKey",1,["fastcrypto::secp256k1::Secp256k1PrivateKey"]],["impl Sync for Secp256k1PublicKey",1,["fastcrypto::secp256k1::Secp256k1PublicKey"]],["impl Sync for Secp256k1Signature",1,["fastcrypto::secp256k1::Secp256k1Signature"]],["impl Sync for Secp256r1RecoverableSignature",1,["fastcrypto::secp256r1::recoverable::Secp256r1RecoverableSignature"]],["impl Sync for Secp256r1KeyPair",1,["fastcrypto::secp256r1::Secp256r1KeyPair"]],["impl Sync for Secp256r1PrivateKey",1,["fastcrypto::secp256r1::Secp256r1PrivateKey"]],["impl Sync for Secp256r1PublicKey",1,["fastcrypto::secp256r1::Secp256r1PublicKey"]],["impl Sync for Secp256r1Signature",1,["fastcrypto::secp256r1::Secp256r1Signature"]],["impl Sync for ECVRFKeyPair",1,["fastcrypto::vrf::ecvrf::ECVRFKeyPair"]],["impl Sync for ECVRFPrivateKey",1,["fastcrypto::vrf::ecvrf::ECVRFPrivateKey"]],["impl Sync for ECVRFProof",1,["fastcrypto::vrf::ecvrf::ECVRFProof"]],["impl Sync for ECVRFPublicKey",1,["fastcrypto::vrf::ecvrf::ECVRFPublicKey"]],["impl<G, S, const CACHE_SIZE: usize, const SLIDING_WINDOW_WIDTH: usize> Sync for WindowedScalarMultiplier<G, S, CACHE_SIZE, SLIDING_WINDOW_WIDTH>
where\n G: Sync,\n S: Sync,
",1,["fastcrypto::groups::multiplier::windowed::WindowedScalarMultiplier"]],["impl<KeySize, Aes> Sync for AesCtr<KeySize, Aes>
where\n Aes: Sync,
",1,["fastcrypto::aes::AesCtr"]],["impl<KeySize, Aes, NonceSize> Sync for AesGcm<KeySize, Aes, NonceSize>
where\n Aes: Sync,\n NonceSize: Sync,
",1,["fastcrypto::aes::AesGcm"]],["impl<KeySize, Aes, Padding> Sync for AesCbc<KeySize, Aes, Padding>
where\n Aes: Sync,\n Padding: Sync,
",1,["fastcrypto::aes::AesCbc"]],["impl<N> Sync for GenericByteArray<N>",1,["fastcrypto::aes::GenericByteArray"]],["impl<Signature, const DIGEST_LEN: usize> Sync for SignatureService<Signature, DIGEST_LEN>",1,["fastcrypto::signature_service::SignatureService"]],["impl<Variant, const DIGEST_LEN: usize> Sync for HashFunctionWrapper<Variant, DIGEST_LEN>
where\n Variant: Sync,
",1,["fastcrypto::hash::HashFunctionWrapper"]],["impl<const DIGEST_LEN: usize> Sync for Digest<DIGEST_LEN>",1,["fastcrypto::hash::Digest"]],["impl<const N: usize> Sync for BytesRepresentation<N>",1,["fastcrypto::serde_helpers::BytesRepresentation"]],["impl<const N: usize> Sync for SerializationHelper<N>",1,["fastcrypto::serde_helpers::SerializationHelper"]],["impl<const RECOMMENDED_LENGTH: usize, const FIXED_LENGTH_ONLY: bool> Sync for PrivateSeed<RECOMMENDED_LENGTH, FIXED_LENGTH_ONLY>",1,["fastcrypto::private_seed::PrivateSeed"]]], "fastcrypto_cli":[["impl Sync for TestVector",1,["fastcrypto_cli::sigs_cli_test_vectors::TestVector"]]], "fastcrypto_tbls":[["impl Sync for RandomOracle",1,["fastcrypto_tbls::random_oracle::RandomOracle"]],["impl Sync for ThresholdBls12381MinSig",1,["fastcrypto_tbls::types::ThresholdBls12381MinSig"]],["impl<A> Sync for IndexedValue<A>
where\n A: Sync,
",1,["fastcrypto_tbls::types::IndexedValue"]],["impl<A> Sync for UnindexedValues<A>
where\n A: Sync,
",1,["fastcrypto_tbls::types::UnindexedValues"]],["impl<C> Sync for Poly<C>
where\n C: Sync,
",1,["fastcrypto_tbls::polynomial::Poly"]],["impl<EG> Sync for Complaint<EG>
where\n EG: Sync,\n <EG as GroupElement>::ScalarType: Sync,
",1,["fastcrypto_tbls::dkg::Complaint"]],["impl<EG> Sync for Confirmation<EG>
where\n EG: Sync,\n <EG as GroupElement>::ScalarType: Sync,
",1,["fastcrypto_tbls::dkg::Confirmation"]],["impl<G> Sync for PrivateKey<G>
where\n <G as GroupElement>::ScalarType: Sync,
",1,["fastcrypto_tbls::ecies::PrivateKey"]],["impl<G> Sync for PublicKey<G>
where\n G: Sync,
",1,["fastcrypto_tbls::ecies::PublicKey"]],["impl<G> Sync for RecoveryPackage<G>
where\n G: Sync,\n <G as GroupElement>::ScalarType: Sync,
",1,["fastcrypto_tbls::ecies::RecoveryPackage"]],["impl<G> Sync for Encryption<G>
where\n G: Sync,
",1,["fastcrypto_tbls::ecies_v0::Encryption"]],["impl<G> Sync for MultiRecipientEncryption<G>
where\n G: Sync,\n <G as GroupElement>::ScalarType: Sync,
",1,["fastcrypto_tbls::ecies_v0::MultiRecipientEncryption"]],["impl<G> Sync for MultiRecipientEncryption<G>
where\n G: Sync,\n <G as GroupElement>::ScalarType: Sync,
",1,["fastcrypto_tbls::ecies_v1::MultiRecipientEncryption"]],["impl<G> Sync for DLNizk<G>
where\n G: Sync,\n <G as GroupElement>::ScalarType: Sync,
",1,["fastcrypto_tbls::nizk::DLNizk"]],["impl<G> Sync for DdhTupleNizk<G>
where\n G: Sync,\n <G as GroupElement>::ScalarType: Sync,
",1,["fastcrypto_tbls::nizk::DdhTupleNizk"]],["impl<G> Sync for Node<G>
where\n G: Sync,
",1,["fastcrypto_tbls::nodes::Node"]],["impl<G> Sync for Nodes<G>
where\n G: Sync,
",1,["fastcrypto_tbls::nodes::Nodes"]],["impl<G, EG> Sync for Output<G, EG>
where\n G: Sync,\n <G as GroupElement>::ScalarType: Sync,\n EG: Sync,
",1,["fastcrypto_tbls::dkg::Output"]],["impl<G, EG> Sync for Party<G, EG>
where\n <EG as GroupElement>::ScalarType: Sync,\n <G as GroupElement>::ScalarType: Sync,\n EG: Sync,
",1,["fastcrypto_tbls::dkg::Party"]],["impl<G, EG> Sync for Message<G, EG>
where\n EG: Sync,\n <EG as GroupElement>::ScalarType: Sync,\n G: Sync,
",1,["fastcrypto_tbls::dkg_v0::Message"]],["impl<G, EG> Sync for ProcessedMessage<G, EG>
where\n EG: Sync,\n <EG as GroupElement>::ScalarType: Sync,\n <G as GroupElement>::ScalarType: Sync,\n G: Sync,
",1,["fastcrypto_tbls::dkg_v0::ProcessedMessage"]],["impl<G, EG> Sync for UsedProcessedMessages<G, EG>
where\n EG: Sync,\n <EG as GroupElement>::ScalarType: Sync,\n <G as GroupElement>::ScalarType: Sync,\n G: Sync,
",1,["fastcrypto_tbls::dkg_v0::UsedProcessedMessages"]],["impl<G, EG> Sync for VerifiedProcessedMessages<G, EG>
where\n EG: Sync,\n <EG as GroupElement>::ScalarType: Sync,\n <G as GroupElement>::ScalarType: Sync,\n G: Sync,
",1,["fastcrypto_tbls::dkg_v0::VerifiedProcessedMessages"]],["impl<G, EG> Sync for Message<G, EG>
where\n EG: Sync,\n <EG as GroupElement>::ScalarType: Sync,\n G: Sync,
",1,["fastcrypto_tbls::dkg_v1::Message"]],["impl<G, EG> Sync for ProcessedMessage<G, EG>
where\n EG: Sync,\n <EG as GroupElement>::ScalarType: Sync,\n <G as GroupElement>::ScalarType: Sync,\n G: Sync,
",1,["fastcrypto_tbls::dkg_v1::ProcessedMessage"]],["impl<G, EG> Sync for UsedProcessedMessages<G, EG>
where\n EG: Sync,\n <EG as GroupElement>::ScalarType: Sync,\n <G as GroupElement>::ScalarType: Sync,\n G: Sync,
",1,["fastcrypto_tbls::dkg_v1::UsedProcessedMessages"]],["impl<G, EG> Sync for VerifiedProcessedMessages<G, EG>
where\n EG: Sync,\n <EG as GroupElement>::ScalarType: Sync,\n <G as GroupElement>::ScalarType: Sync,\n G: Sync,
",1,["fastcrypto_tbls::dkg_v1::VerifiedProcessedMessages"]]], -"fastcrypto_vdf":[["impl !Sync for QuadraticForm",1,["fastcrypto_vdf::class_group::QuadraticForm"]],["impl Sync for DISCRIMINANT_3072",1,["fastcrypto_vdf::class_group::discriminant::DISCRIMINANT_3072"]],["impl Sync for Discriminant",1,["fastcrypto_vdf::class_group::discriminant::Discriminant"]],["impl<G, F, M> Sync for WesolowskisVDF<G, F, M>
where\n <G as ParameterizedGroupElement>::ParameterType: Sync,\n F: Sync,\n M: Sync,
",1,["fastcrypto_vdf::vdf::wesolowski::WesolowskisVDF"]]], +"fastcrypto_vdf":[["impl !Sync for QuadraticForm",1,["fastcrypto_vdf::class_group::QuadraticForm"]],["impl Sync for DISCRIMINANT_3072",1,["fastcrypto_vdf::class_group::discriminant::DISCRIMINANT_3072"]],["impl Sync for Discriminant",1,["fastcrypto_vdf::class_group::discriminant::Discriminant"]],["impl<G> Sync for PietrzaksVDF<G>",1,["fastcrypto_vdf::vdf::pietrzak::PietrzaksVDF"]],["impl<G, F, M> Sync for WesolowskisVDF<G, F, M>
where\n <G as ParameterizedGroupElement>::ParameterType: Sync,\n F: Sync,\n M: Sync,
",1,["fastcrypto_vdf::vdf::wesolowski::WesolowskisVDF"]]], "fastcrypto_zkp":[["impl Sync for OIDCProvider",1,["fastcrypto_zkp::bn254::zk_login::OIDCProvider"]],["impl Sync for ZkLoginEnv",1,["fastcrypto_zkp::bn254::zk_login_api::ZkLoginEnv"]],["impl Sync for FieldElement",1,["fastcrypto_zkp::bn254::FieldElement"]],["impl Sync for Proof",1,["fastcrypto_zkp::bn254::Proof"]],["impl Sync for VerifyingKey",1,["fastcrypto_zkp::bn254::VerifyingKey"]],["impl Sync for GetSaltResponse",1,["fastcrypto_zkp::bn254::utils::GetSaltResponse"]],["impl Sync for TestIssuerJWTResponse",1,["fastcrypto_zkp::bn254::utils::TestIssuerJWTResponse"]],["impl Sync for PreparedVerifyingKey",1,["fastcrypto_zkp::bn254::verifier::PreparedVerifyingKey"]],["impl Sync for Claim",1,["fastcrypto_zkp::bn254::zk_login::Claim"]],["impl Sync for JWK",1,["fastcrypto_zkp::bn254::zk_login::JWK"]],["impl Sync for JWKReader",1,["fastcrypto_zkp::bn254::zk_login::JWKReader"]],["impl Sync for JWTDetails",1,["fastcrypto_zkp::bn254::zk_login::JWTDetails"]],["impl Sync for JwkId",1,["fastcrypto_zkp::bn254::zk_login::JwkId"]],["impl Sync for ProviderConfig",1,["fastcrypto_zkp::bn254::zk_login::ProviderConfig"]],["impl Sync for ZkLoginInputs",1,["fastcrypto_zkp::bn254::zk_login::ZkLoginInputs"]],["impl Sync for ZkLoginInputsReader",1,["fastcrypto_zkp::bn254::zk_login::ZkLoginInputsReader"]],["impl Sync for ZkLoginProof",1,["fastcrypto_zkp::bn254::zk_login::ZkLoginProof"]],["impl Sync for Fr",1,["fastcrypto_zkp::Fr"]],["impl Sync for FrRepr",1,["fastcrypto_zkp::FrRepr"]],["impl Sync for Bn254FqElement",1,["fastcrypto_zkp::zk_login_utils::Bn254FqElement"]],["impl Sync for Bn254FrElement",1,["fastcrypto_zkp::zk_login_utils::Bn254FrElement"]],["impl<F> Sync for DummyCircuit<F>",1,["fastcrypto_zkp::dummy_circuits::DummyCircuit"]],["impl<F> Sync for Fibonacci<F>",1,["fastcrypto_zkp::dummy_circuits::Fibonacci"]],["impl<G1> Sync for PreparedVerifyingKey<G1>
where\n <G1 as Pairing>::Output: Sync,\n <G1 as Pairing>::Other: Sync,\n G1: Sync,
",1,["fastcrypto_zkp::groth16::PreparedVerifyingKey"]],["impl<G1> Sync for Proof<G1>
where\n G1: Sync,\n <G1 as Pairing>::Other: Sync,
",1,["fastcrypto_zkp::groth16::Proof"]],["impl<G1> Sync for VerifyingKey<G1>
where\n G1: Sync,\n <G1 as Pairing>::Other: Sync,
",1,["fastcrypto_zkp::groth16::VerifyingKey"]]], "sigs_cli":[["impl Sync for Command",1,["sigs_cli::Command"]],["impl Sync for SignatureScheme",1,["sigs_cli::SignatureScheme"]],["impl Sync for KeygenArguments",1,["sigs_cli::KeygenArguments"]],["impl Sync for SigningArguments",1,["sigs_cli::SigningArguments"]],["impl Sync for VerifiyingArguments",1,["sigs_cli::VerifiyingArguments"]]], "tlock_cli":[["impl Sync for Command",1,["tlock_cli::Command"]],["impl Sync for DecryptArguments",1,["tlock_cli::DecryptArguments"]],["impl Sync for EncryptArguments",1,["tlock_cli::EncryptArguments"]],["impl Sync for Encryption",1,["tlock_cli::Encryption"]],["impl Sync for VerifyArguments",1,["tlock_cli::VerifyArguments"]]], diff --git a/docs/trait.impl/core/marker/trait.Unpin.js b/docs/trait.impl/core/marker/trait.Unpin.js index 298d1bb469..9558d68e34 100644 --- a/docs/trait.impl/core/marker/trait.Unpin.js +++ b/docs/trait.impl/core/marker/trait.Unpin.js @@ -4,7 +4,7 @@ "fastcrypto":[["impl Unpin for FastCryptoError",1,["fastcrypto::error::FastCryptoError"]],["impl Unpin for BLS12381AggregateSignature",1,["fastcrypto::bls12381::min_pk::BLS12381AggregateSignature"]],["impl Unpin for BLS12381KeyPair",1,["fastcrypto::bls12381::min_pk::BLS12381KeyPair"]],["impl Unpin for BLS12381PrivateKey",1,["fastcrypto::bls12381::min_pk::BLS12381PrivateKey"]],["impl Unpin for BLS12381PublicKey",1,["fastcrypto::bls12381::min_pk::BLS12381PublicKey"]],["impl Unpin for BLS12381Signature",1,["fastcrypto::bls12381::min_pk::BLS12381Signature"]],["impl Unpin for BLS12381AggregateSignature",1,["fastcrypto::bls12381::min_sig::BLS12381AggregateSignature"]],["impl Unpin for BLS12381KeyPair",1,["fastcrypto::bls12381::min_sig::BLS12381KeyPair"]],["impl Unpin for BLS12381PrivateKey",1,["fastcrypto::bls12381::min_sig::BLS12381PrivateKey"]],["impl Unpin for BLS12381PublicKey",1,["fastcrypto::bls12381::min_sig::BLS12381PublicKey"]],["impl Unpin for BLS12381Signature",1,["fastcrypto::bls12381::min_sig::BLS12381Signature"]],["impl Unpin for Ed25519AggregateSignature",1,["fastcrypto::ed25519::Ed25519AggregateSignature"]],["impl Unpin for Ed25519KeyPair",1,["fastcrypto::ed25519::Ed25519KeyPair"]],["impl Unpin for Ed25519PrivateKey",1,["fastcrypto::ed25519::Ed25519PrivateKey"]],["impl Unpin for Ed25519PublicKey",1,["fastcrypto::ed25519::Ed25519PublicKey"]],["impl Unpin for Ed25519Signature",1,["fastcrypto::ed25519::Ed25519Signature"]],["impl Unpin for SingleSignature",1,["fastcrypto::ed25519::SingleSignature"]],["impl Unpin for Base58",1,["fastcrypto::encoding::Base58"]],["impl Unpin for Base64",1,["fastcrypto::encoding::Base64"]],["impl Unpin for Bech32",1,["fastcrypto::encoding::Bech32"]],["impl Unpin for Hex",1,["fastcrypto::encoding::Hex"]],["impl Unpin for G1Element",1,["fastcrypto::groups::bls12381::G1Element"]],["impl Unpin for G2Element",1,["fastcrypto::groups::bls12381::G2Element"]],["impl Unpin for GTElement",1,["fastcrypto::groups::bls12381::GTElement"]],["impl Unpin for Scalar",1,["fastcrypto::groups::bls12381::Scalar"]],["impl Unpin for RistrettoPoint",1,["fastcrypto::groups::ristretto255::RistrettoPoint"]],["impl Unpin for RistrettoScalar",1,["fastcrypto::groups::ristretto255::RistrettoScalar"]],["impl Unpin for ProjectivePoint",1,["fastcrypto::groups::secp256r1::ProjectivePoint"]],["impl Unpin for Scalar",1,["fastcrypto::groups::secp256r1::Scalar"]],["impl Unpin for EllipticCurveMultisetHash",1,["fastcrypto::hash::EllipticCurveMultisetHash"]],["impl Unpin for JWTHeader",1,["fastcrypto::jwt_utils::JWTHeader"]],["impl Unpin for RSAPublicKey",1,["fastcrypto::rsa::RSAPublicKey"]],["impl Unpin for RSASignature",1,["fastcrypto::rsa::RSASignature"]],["impl Unpin for Secp256k1RecoverableSignature",1,["fastcrypto::secp256k1::recoverable::Secp256k1RecoverableSignature"]],["impl Unpin for Secp256k1KeyPair",1,["fastcrypto::secp256k1::Secp256k1KeyPair"]],["impl Unpin for Secp256k1PrivateKey",1,["fastcrypto::secp256k1::Secp256k1PrivateKey"]],["impl Unpin for Secp256k1PublicKey",1,["fastcrypto::secp256k1::Secp256k1PublicKey"]],["impl Unpin for Secp256k1Signature",1,["fastcrypto::secp256k1::Secp256k1Signature"]],["impl Unpin for Secp256r1RecoverableSignature",1,["fastcrypto::secp256r1::recoverable::Secp256r1RecoverableSignature"]],["impl Unpin for Secp256r1KeyPair",1,["fastcrypto::secp256r1::Secp256r1KeyPair"]],["impl Unpin for Secp256r1PrivateKey",1,["fastcrypto::secp256r1::Secp256r1PrivateKey"]],["impl Unpin for Secp256r1PublicKey",1,["fastcrypto::secp256r1::Secp256r1PublicKey"]],["impl Unpin for Secp256r1Signature",1,["fastcrypto::secp256r1::Secp256r1Signature"]],["impl Unpin for ECVRFKeyPair",1,["fastcrypto::vrf::ecvrf::ECVRFKeyPair"]],["impl Unpin for ECVRFPrivateKey",1,["fastcrypto::vrf::ecvrf::ECVRFPrivateKey"]],["impl Unpin for ECVRFProof",1,["fastcrypto::vrf::ecvrf::ECVRFProof"]],["impl Unpin for ECVRFPublicKey",1,["fastcrypto::vrf::ecvrf::ECVRFPublicKey"]],["impl<G, S, const CACHE_SIZE: usize, const SLIDING_WINDOW_WIDTH: usize> Unpin for WindowedScalarMultiplier<G, S, CACHE_SIZE, SLIDING_WINDOW_WIDTH>
where\n G: Unpin,\n S: Unpin,
",1,["fastcrypto::groups::multiplier::windowed::WindowedScalarMultiplier"]],["impl<KeySize, Aes> Unpin for AesCtr<KeySize, Aes>
where\n Aes: Unpin,\n <KeySize as ArrayLength<u8>>::ArrayType: Unpin,
",1,["fastcrypto::aes::AesCtr"]],["impl<KeySize, Aes, NonceSize> Unpin for AesGcm<KeySize, Aes, NonceSize>
where\n Aes: Unpin,\n NonceSize: Unpin,\n <KeySize as ArrayLength<u8>>::ArrayType: Unpin,
",1,["fastcrypto::aes::AesGcm"]],["impl<KeySize, Aes, Padding> Unpin for AesCbc<KeySize, Aes, Padding>
where\n Aes: Unpin,\n Padding: Unpin,\n <KeySize as ArrayLength<u8>>::ArrayType: Unpin,
",1,["fastcrypto::aes::AesCbc"]],["impl<N> Unpin for GenericByteArray<N>
where\n <N as ArrayLength<u8>>::ArrayType: Unpin,
",1,["fastcrypto::aes::GenericByteArray"]],["impl<Signature, const DIGEST_LEN: usize> Unpin for SignatureService<Signature, DIGEST_LEN>",1,["fastcrypto::signature_service::SignatureService"]],["impl<Variant, const DIGEST_LEN: usize> Unpin for HashFunctionWrapper<Variant, DIGEST_LEN>
where\n Variant: Unpin,
",1,["fastcrypto::hash::HashFunctionWrapper"]],["impl<const DIGEST_LEN: usize> Unpin for Digest<DIGEST_LEN>",1,["fastcrypto::hash::Digest"]],["impl<const N: usize> Unpin for BytesRepresentation<N>",1,["fastcrypto::serde_helpers::BytesRepresentation"]],["impl<const N: usize> Unpin for SerializationHelper<N>",1,["fastcrypto::serde_helpers::SerializationHelper"]],["impl<const RECOMMENDED_LENGTH: usize, const FIXED_LENGTH_ONLY: bool> Unpin for PrivateSeed<RECOMMENDED_LENGTH, FIXED_LENGTH_ONLY>",1,["fastcrypto::private_seed::PrivateSeed"]]], "fastcrypto_cli":[["impl Unpin for TestVector",1,["fastcrypto_cli::sigs_cli_test_vectors::TestVector"]]], "fastcrypto_tbls":[["impl Unpin for RandomOracle",1,["fastcrypto_tbls::random_oracle::RandomOracle"]],["impl Unpin for ThresholdBls12381MinSig",1,["fastcrypto_tbls::types::ThresholdBls12381MinSig"]],["impl<A> Unpin for IndexedValue<A>
where\n A: Unpin,
",1,["fastcrypto_tbls::types::IndexedValue"]],["impl<A> Unpin for UnindexedValues<A>
where\n A: Unpin,
",1,["fastcrypto_tbls::types::UnindexedValues"]],["impl<C> Unpin for Poly<C>
where\n C: Unpin,
",1,["fastcrypto_tbls::polynomial::Poly"]],["impl<EG> Unpin for Complaint<EG>
where\n EG: Unpin,\n <EG as GroupElement>::ScalarType: Unpin,
",1,["fastcrypto_tbls::dkg::Complaint"]],["impl<EG> Unpin for Confirmation<EG>
where\n EG: Unpin,\n <EG as GroupElement>::ScalarType: Unpin,
",1,["fastcrypto_tbls::dkg::Confirmation"]],["impl<G> Unpin for PrivateKey<G>
where\n <G as GroupElement>::ScalarType: Unpin,
",1,["fastcrypto_tbls::ecies::PrivateKey"]],["impl<G> Unpin for PublicKey<G>
where\n G: Unpin,
",1,["fastcrypto_tbls::ecies::PublicKey"]],["impl<G> Unpin for RecoveryPackage<G>
where\n G: Unpin,\n <G as GroupElement>::ScalarType: Unpin,
",1,["fastcrypto_tbls::ecies::RecoveryPackage"]],["impl<G> Unpin for Encryption<G>
where\n G: Unpin,
",1,["fastcrypto_tbls::ecies_v0::Encryption"]],["impl<G> Unpin for MultiRecipientEncryption<G>
where\n G: Unpin,\n <G as GroupElement>::ScalarType: Unpin,
",1,["fastcrypto_tbls::ecies_v0::MultiRecipientEncryption"]],["impl<G> Unpin for MultiRecipientEncryption<G>
where\n G: Unpin,\n <G as GroupElement>::ScalarType: Unpin,
",1,["fastcrypto_tbls::ecies_v1::MultiRecipientEncryption"]],["impl<G> Unpin for DLNizk<G>
where\n G: Unpin,\n <G as GroupElement>::ScalarType: Unpin,
",1,["fastcrypto_tbls::nizk::DLNizk"]],["impl<G> Unpin for DdhTupleNizk<G>
where\n G: Unpin,\n <G as GroupElement>::ScalarType: Unpin,
",1,["fastcrypto_tbls::nizk::DdhTupleNizk"]],["impl<G> Unpin for Node<G>
where\n G: Unpin,
",1,["fastcrypto_tbls::nodes::Node"]],["impl<G> Unpin for Nodes<G>
where\n G: Unpin,
",1,["fastcrypto_tbls::nodes::Nodes"]],["impl<G, EG> Unpin for Output<G, EG>
where\n G: Unpin,\n <G as GroupElement>::ScalarType: Unpin,\n EG: Unpin,
",1,["fastcrypto_tbls::dkg::Output"]],["impl<G, EG> Unpin for Party<G, EG>
where\n <EG as GroupElement>::ScalarType: Unpin,\n <G as GroupElement>::ScalarType: Unpin,\n EG: Unpin,
",1,["fastcrypto_tbls::dkg::Party"]],["impl<G, EG> Unpin for Message<G, EG>
where\n EG: Unpin,\n <EG as GroupElement>::ScalarType: Unpin,\n G: Unpin,
",1,["fastcrypto_tbls::dkg_v0::Message"]],["impl<G, EG> Unpin for ProcessedMessage<G, EG>
where\n EG: Unpin,\n <EG as GroupElement>::ScalarType: Unpin,\n <G as GroupElement>::ScalarType: Unpin,\n G: Unpin,
",1,["fastcrypto_tbls::dkg_v0::ProcessedMessage"]],["impl<G, EG> Unpin for UsedProcessedMessages<G, EG>
where\n EG: Unpin,\n <EG as GroupElement>::ScalarType: Unpin,\n <G as GroupElement>::ScalarType: Unpin,\n G: Unpin,
",1,["fastcrypto_tbls::dkg_v0::UsedProcessedMessages"]],["impl<G, EG> Unpin for VerifiedProcessedMessages<G, EG>
where\n EG: Unpin,\n <EG as GroupElement>::ScalarType: Unpin,\n <G as GroupElement>::ScalarType: Unpin,\n G: Unpin,
",1,["fastcrypto_tbls::dkg_v0::VerifiedProcessedMessages"]],["impl<G, EG> Unpin for Message<G, EG>
where\n EG: Unpin,\n <EG as GroupElement>::ScalarType: Unpin,\n G: Unpin,
",1,["fastcrypto_tbls::dkg_v1::Message"]],["impl<G, EG> Unpin for ProcessedMessage<G, EG>
where\n EG: Unpin,\n <EG as GroupElement>::ScalarType: Unpin,\n <G as GroupElement>::ScalarType: Unpin,\n G: Unpin,
",1,["fastcrypto_tbls::dkg_v1::ProcessedMessage"]],["impl<G, EG> Unpin for UsedProcessedMessages<G, EG>
where\n EG: Unpin,\n <EG as GroupElement>::ScalarType: Unpin,\n <G as GroupElement>::ScalarType: Unpin,\n G: Unpin,
",1,["fastcrypto_tbls::dkg_v1::UsedProcessedMessages"]],["impl<G, EG> Unpin for VerifiedProcessedMessages<G, EG>
where\n EG: Unpin,\n <EG as GroupElement>::ScalarType: Unpin,\n <G as GroupElement>::ScalarType: Unpin,\n G: Unpin,
",1,["fastcrypto_tbls::dkg_v1::VerifiedProcessedMessages"]]], -"fastcrypto_vdf":[["impl Unpin for DISCRIMINANT_3072",1,["fastcrypto_vdf::class_group::discriminant::DISCRIMINANT_3072"]],["impl Unpin for Discriminant",1,["fastcrypto_vdf::class_group::discriminant::Discriminant"]],["impl Unpin for QuadraticForm",1,["fastcrypto_vdf::class_group::QuadraticForm"]],["impl<G, F, M> Unpin for WesolowskisVDF<G, F, M>",1,["fastcrypto_vdf::vdf::wesolowski::WesolowskisVDF"]]], +"fastcrypto_vdf":[["impl Unpin for DISCRIMINANT_3072",1,["fastcrypto_vdf::class_group::discriminant::DISCRIMINANT_3072"]],["impl Unpin for Discriminant",1,["fastcrypto_vdf::class_group::discriminant::Discriminant"]],["impl Unpin for QuadraticForm",1,["fastcrypto_vdf::class_group::QuadraticForm"]],["impl<G> Unpin for PietrzaksVDF<G>",1,["fastcrypto_vdf::vdf::pietrzak::PietrzaksVDF"]],["impl<G, F, M> Unpin for WesolowskisVDF<G, F, M>",1,["fastcrypto_vdf::vdf::wesolowski::WesolowskisVDF"]]], "fastcrypto_zkp":[["impl Unpin for OIDCProvider",1,["fastcrypto_zkp::bn254::zk_login::OIDCProvider"]],["impl Unpin for ZkLoginEnv",1,["fastcrypto_zkp::bn254::zk_login_api::ZkLoginEnv"]],["impl Unpin for FieldElement",1,["fastcrypto_zkp::bn254::FieldElement"]],["impl Unpin for Proof",1,["fastcrypto_zkp::bn254::Proof"]],["impl Unpin for VerifyingKey",1,["fastcrypto_zkp::bn254::VerifyingKey"]],["impl Unpin for GetSaltResponse",1,["fastcrypto_zkp::bn254::utils::GetSaltResponse"]],["impl Unpin for TestIssuerJWTResponse",1,["fastcrypto_zkp::bn254::utils::TestIssuerJWTResponse"]],["impl Unpin for PreparedVerifyingKey",1,["fastcrypto_zkp::bn254::verifier::PreparedVerifyingKey"]],["impl Unpin for Claim",1,["fastcrypto_zkp::bn254::zk_login::Claim"]],["impl Unpin for JWK",1,["fastcrypto_zkp::bn254::zk_login::JWK"]],["impl Unpin for JWKReader",1,["fastcrypto_zkp::bn254::zk_login::JWKReader"]],["impl Unpin for JWTDetails",1,["fastcrypto_zkp::bn254::zk_login::JWTDetails"]],["impl Unpin for JwkId",1,["fastcrypto_zkp::bn254::zk_login::JwkId"]],["impl Unpin for ProviderConfig",1,["fastcrypto_zkp::bn254::zk_login::ProviderConfig"]],["impl Unpin for ZkLoginInputs",1,["fastcrypto_zkp::bn254::zk_login::ZkLoginInputs"]],["impl Unpin for ZkLoginInputsReader",1,["fastcrypto_zkp::bn254::zk_login::ZkLoginInputsReader"]],["impl Unpin for ZkLoginProof",1,["fastcrypto_zkp::bn254::zk_login::ZkLoginProof"]],["impl Unpin for Fr",1,["fastcrypto_zkp::Fr"]],["impl Unpin for FrRepr",1,["fastcrypto_zkp::FrRepr"]],["impl Unpin for Bn254FqElement",1,["fastcrypto_zkp::zk_login_utils::Bn254FqElement"]],["impl Unpin for Bn254FrElement",1,["fastcrypto_zkp::zk_login_utils::Bn254FrElement"]],["impl<F> Unpin for DummyCircuit<F>
where\n F: Unpin,
",1,["fastcrypto_zkp::dummy_circuits::DummyCircuit"]],["impl<F> Unpin for Fibonacci<F>
where\n F: Unpin,
",1,["fastcrypto_zkp::dummy_circuits::Fibonacci"]],["impl<G1> Unpin for PreparedVerifyingKey<G1>
where\n <G1 as Pairing>::Output: Unpin,\n <G1 as Pairing>::Other: Unpin,\n G1: Unpin,
",1,["fastcrypto_zkp::groth16::PreparedVerifyingKey"]],["impl<G1> Unpin for Proof<G1>
where\n G1: Unpin,\n <G1 as Pairing>::Other: Unpin,
",1,["fastcrypto_zkp::groth16::Proof"]],["impl<G1> Unpin for VerifyingKey<G1>
where\n G1: Unpin,\n <G1 as Pairing>::Other: Unpin,
",1,["fastcrypto_zkp::groth16::VerifyingKey"]]], "sigs_cli":[["impl Unpin for Command",1,["sigs_cli::Command"]],["impl Unpin for SignatureScheme",1,["sigs_cli::SignatureScheme"]],["impl Unpin for KeygenArguments",1,["sigs_cli::KeygenArguments"]],["impl Unpin for SigningArguments",1,["sigs_cli::SigningArguments"]],["impl Unpin for VerifiyingArguments",1,["sigs_cli::VerifiyingArguments"]]], "tlock_cli":[["impl Unpin for Command",1,["tlock_cli::Command"]],["impl Unpin for DecryptArguments",1,["tlock_cli::DecryptArguments"]],["impl Unpin for EncryptArguments",1,["tlock_cli::EncryptArguments"]],["impl Unpin for Encryption",1,["tlock_cli::Encryption"]],["impl Unpin for VerifyArguments",1,["tlock_cli::VerifyArguments"]]], diff --git a/docs/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js b/docs/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js index 45ecc4eef6..48cbbaf759 100644 --- a/docs/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js +++ b/docs/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js @@ -4,7 +4,7 @@ "fastcrypto":[["impl RefUnwindSafe for FastCryptoError",1,["fastcrypto::error::FastCryptoError"]],["impl RefUnwindSafe for BLS12381AggregateSignature",1,["fastcrypto::bls12381::min_pk::BLS12381AggregateSignature"]],["impl RefUnwindSafe for BLS12381KeyPair",1,["fastcrypto::bls12381::min_pk::BLS12381KeyPair"]],["impl RefUnwindSafe for BLS12381PrivateKey",1,["fastcrypto::bls12381::min_pk::BLS12381PrivateKey"]],["impl RefUnwindSafe for BLS12381PublicKey",1,["fastcrypto::bls12381::min_pk::BLS12381PublicKey"]],["impl RefUnwindSafe for BLS12381Signature",1,["fastcrypto::bls12381::min_pk::BLS12381Signature"]],["impl RefUnwindSafe for BLS12381AggregateSignature",1,["fastcrypto::bls12381::min_sig::BLS12381AggregateSignature"]],["impl RefUnwindSafe for BLS12381KeyPair",1,["fastcrypto::bls12381::min_sig::BLS12381KeyPair"]],["impl RefUnwindSafe for BLS12381PrivateKey",1,["fastcrypto::bls12381::min_sig::BLS12381PrivateKey"]],["impl RefUnwindSafe for BLS12381PublicKey",1,["fastcrypto::bls12381::min_sig::BLS12381PublicKey"]],["impl RefUnwindSafe for BLS12381Signature",1,["fastcrypto::bls12381::min_sig::BLS12381Signature"]],["impl RefUnwindSafe for Ed25519AggregateSignature",1,["fastcrypto::ed25519::Ed25519AggregateSignature"]],["impl RefUnwindSafe for Ed25519KeyPair",1,["fastcrypto::ed25519::Ed25519KeyPair"]],["impl RefUnwindSafe for Ed25519PrivateKey",1,["fastcrypto::ed25519::Ed25519PrivateKey"]],["impl RefUnwindSafe for Ed25519PublicKey",1,["fastcrypto::ed25519::Ed25519PublicKey"]],["impl RefUnwindSafe for Ed25519Signature",1,["fastcrypto::ed25519::Ed25519Signature"]],["impl RefUnwindSafe for SingleSignature",1,["fastcrypto::ed25519::SingleSignature"]],["impl RefUnwindSafe for Base58",1,["fastcrypto::encoding::Base58"]],["impl RefUnwindSafe for Base64",1,["fastcrypto::encoding::Base64"]],["impl RefUnwindSafe for Bech32",1,["fastcrypto::encoding::Bech32"]],["impl RefUnwindSafe for Hex",1,["fastcrypto::encoding::Hex"]],["impl RefUnwindSafe for G1Element",1,["fastcrypto::groups::bls12381::G1Element"]],["impl RefUnwindSafe for G2Element",1,["fastcrypto::groups::bls12381::G2Element"]],["impl RefUnwindSafe for GTElement",1,["fastcrypto::groups::bls12381::GTElement"]],["impl RefUnwindSafe for Scalar",1,["fastcrypto::groups::bls12381::Scalar"]],["impl RefUnwindSafe for RistrettoPoint",1,["fastcrypto::groups::ristretto255::RistrettoPoint"]],["impl RefUnwindSafe for RistrettoScalar",1,["fastcrypto::groups::ristretto255::RistrettoScalar"]],["impl RefUnwindSafe for ProjectivePoint",1,["fastcrypto::groups::secp256r1::ProjectivePoint"]],["impl RefUnwindSafe for Scalar",1,["fastcrypto::groups::secp256r1::Scalar"]],["impl RefUnwindSafe for EllipticCurveMultisetHash",1,["fastcrypto::hash::EllipticCurveMultisetHash"]],["impl RefUnwindSafe for JWTHeader",1,["fastcrypto::jwt_utils::JWTHeader"]],["impl RefUnwindSafe for RSAPublicKey",1,["fastcrypto::rsa::RSAPublicKey"]],["impl RefUnwindSafe for RSASignature",1,["fastcrypto::rsa::RSASignature"]],["impl RefUnwindSafe for Secp256k1RecoverableSignature",1,["fastcrypto::secp256k1::recoverable::Secp256k1RecoverableSignature"]],["impl RefUnwindSafe for Secp256k1KeyPair",1,["fastcrypto::secp256k1::Secp256k1KeyPair"]],["impl RefUnwindSafe for Secp256k1PrivateKey",1,["fastcrypto::secp256k1::Secp256k1PrivateKey"]],["impl RefUnwindSafe for Secp256k1PublicKey",1,["fastcrypto::secp256k1::Secp256k1PublicKey"]],["impl RefUnwindSafe for Secp256k1Signature",1,["fastcrypto::secp256k1::Secp256k1Signature"]],["impl RefUnwindSafe for Secp256r1RecoverableSignature",1,["fastcrypto::secp256r1::recoverable::Secp256r1RecoverableSignature"]],["impl RefUnwindSafe for Secp256r1KeyPair",1,["fastcrypto::secp256r1::Secp256r1KeyPair"]],["impl RefUnwindSafe for Secp256r1PrivateKey",1,["fastcrypto::secp256r1::Secp256r1PrivateKey"]],["impl RefUnwindSafe for Secp256r1PublicKey",1,["fastcrypto::secp256r1::Secp256r1PublicKey"]],["impl RefUnwindSafe for Secp256r1Signature",1,["fastcrypto::secp256r1::Secp256r1Signature"]],["impl RefUnwindSafe for ECVRFKeyPair",1,["fastcrypto::vrf::ecvrf::ECVRFKeyPair"]],["impl RefUnwindSafe for ECVRFPrivateKey",1,["fastcrypto::vrf::ecvrf::ECVRFPrivateKey"]],["impl RefUnwindSafe for ECVRFProof",1,["fastcrypto::vrf::ecvrf::ECVRFProof"]],["impl RefUnwindSafe for ECVRFPublicKey",1,["fastcrypto::vrf::ecvrf::ECVRFPublicKey"]],["impl<G, S, const CACHE_SIZE: usize, const SLIDING_WINDOW_WIDTH: usize> RefUnwindSafe for WindowedScalarMultiplier<G, S, CACHE_SIZE, SLIDING_WINDOW_WIDTH>
where\n G: RefUnwindSafe,\n S: RefUnwindSafe,
",1,["fastcrypto::groups::multiplier::windowed::WindowedScalarMultiplier"]],["impl<KeySize, Aes> RefUnwindSafe for AesCtr<KeySize, Aes>
where\n Aes: RefUnwindSafe,\n <KeySize as ArrayLength<u8>>::ArrayType: RefUnwindSafe,
",1,["fastcrypto::aes::AesCtr"]],["impl<KeySize, Aes, NonceSize> RefUnwindSafe for AesGcm<KeySize, Aes, NonceSize>
where\n Aes: RefUnwindSafe,\n NonceSize: RefUnwindSafe,\n <KeySize as ArrayLength<u8>>::ArrayType: RefUnwindSafe,
",1,["fastcrypto::aes::AesGcm"]],["impl<KeySize, Aes, Padding> RefUnwindSafe for AesCbc<KeySize, Aes, Padding>
where\n Aes: RefUnwindSafe,\n Padding: RefUnwindSafe,\n <KeySize as ArrayLength<u8>>::ArrayType: RefUnwindSafe,
",1,["fastcrypto::aes::AesCbc"]],["impl<N> RefUnwindSafe for GenericByteArray<N>
where\n <N as ArrayLength<u8>>::ArrayType: RefUnwindSafe,
",1,["fastcrypto::aes::GenericByteArray"]],["impl<Signature, const DIGEST_LEN: usize> !RefUnwindSafe for SignatureService<Signature, DIGEST_LEN>",1,["fastcrypto::signature_service::SignatureService"]],["impl<Variant, const DIGEST_LEN: usize> RefUnwindSafe for HashFunctionWrapper<Variant, DIGEST_LEN>
where\n Variant: RefUnwindSafe,
",1,["fastcrypto::hash::HashFunctionWrapper"]],["impl<const DIGEST_LEN: usize> RefUnwindSafe for Digest<DIGEST_LEN>",1,["fastcrypto::hash::Digest"]],["impl<const N: usize> RefUnwindSafe for BytesRepresentation<N>",1,["fastcrypto::serde_helpers::BytesRepresentation"]],["impl<const N: usize> RefUnwindSafe for SerializationHelper<N>",1,["fastcrypto::serde_helpers::SerializationHelper"]],["impl<const RECOMMENDED_LENGTH: usize, const FIXED_LENGTH_ONLY: bool> RefUnwindSafe for PrivateSeed<RECOMMENDED_LENGTH, FIXED_LENGTH_ONLY>",1,["fastcrypto::private_seed::PrivateSeed"]]], "fastcrypto_cli":[["impl RefUnwindSafe for TestVector",1,["fastcrypto_cli::sigs_cli_test_vectors::TestVector"]]], "fastcrypto_tbls":[["impl RefUnwindSafe for RandomOracle",1,["fastcrypto_tbls::random_oracle::RandomOracle"]],["impl RefUnwindSafe for ThresholdBls12381MinSig",1,["fastcrypto_tbls::types::ThresholdBls12381MinSig"]],["impl<A> RefUnwindSafe for IndexedValue<A>
where\n A: RefUnwindSafe,
",1,["fastcrypto_tbls::types::IndexedValue"]],["impl<A> RefUnwindSafe for UnindexedValues<A>
where\n A: RefUnwindSafe,
",1,["fastcrypto_tbls::types::UnindexedValues"]],["impl<C> RefUnwindSafe for Poly<C>
where\n C: RefUnwindSafe,
",1,["fastcrypto_tbls::polynomial::Poly"]],["impl<EG> RefUnwindSafe for Complaint<EG>
where\n EG: RefUnwindSafe,\n <EG as GroupElement>::ScalarType: RefUnwindSafe,
",1,["fastcrypto_tbls::dkg::Complaint"]],["impl<EG> RefUnwindSafe for Confirmation<EG>
where\n EG: RefUnwindSafe,\n <EG as GroupElement>::ScalarType: RefUnwindSafe,
",1,["fastcrypto_tbls::dkg::Confirmation"]],["impl<G> RefUnwindSafe for PrivateKey<G>
where\n <G as GroupElement>::ScalarType: RefUnwindSafe,
",1,["fastcrypto_tbls::ecies::PrivateKey"]],["impl<G> RefUnwindSafe for PublicKey<G>
where\n G: RefUnwindSafe,
",1,["fastcrypto_tbls::ecies::PublicKey"]],["impl<G> RefUnwindSafe for RecoveryPackage<G>
where\n G: RefUnwindSafe,\n <G as GroupElement>::ScalarType: RefUnwindSafe,
",1,["fastcrypto_tbls::ecies::RecoveryPackage"]],["impl<G> RefUnwindSafe for Encryption<G>
where\n G: RefUnwindSafe,
",1,["fastcrypto_tbls::ecies_v0::Encryption"]],["impl<G> RefUnwindSafe for MultiRecipientEncryption<G>
where\n G: RefUnwindSafe,\n <G as GroupElement>::ScalarType: RefUnwindSafe,
",1,["fastcrypto_tbls::ecies_v0::MultiRecipientEncryption"]],["impl<G> RefUnwindSafe for MultiRecipientEncryption<G>
where\n G: RefUnwindSafe,\n <G as GroupElement>::ScalarType: RefUnwindSafe,
",1,["fastcrypto_tbls::ecies_v1::MultiRecipientEncryption"]],["impl<G> RefUnwindSafe for DLNizk<G>
where\n G: RefUnwindSafe,\n <G as GroupElement>::ScalarType: RefUnwindSafe,
",1,["fastcrypto_tbls::nizk::DLNizk"]],["impl<G> RefUnwindSafe for DdhTupleNizk<G>
where\n G: RefUnwindSafe,\n <G as GroupElement>::ScalarType: RefUnwindSafe,
",1,["fastcrypto_tbls::nizk::DdhTupleNizk"]],["impl<G> RefUnwindSafe for Node<G>
where\n G: RefUnwindSafe,
",1,["fastcrypto_tbls::nodes::Node"]],["impl<G> RefUnwindSafe for Nodes<G>
where\n G: RefUnwindSafe,
",1,["fastcrypto_tbls::nodes::Nodes"]],["impl<G, EG> RefUnwindSafe for Output<G, EG>
where\n G: RefUnwindSafe,\n <G as GroupElement>::ScalarType: RefUnwindSafe,\n EG: RefUnwindSafe,
",1,["fastcrypto_tbls::dkg::Output"]],["impl<G, EG> RefUnwindSafe for Party<G, EG>
where\n <EG as GroupElement>::ScalarType: RefUnwindSafe,\n <G as GroupElement>::ScalarType: RefUnwindSafe,\n EG: RefUnwindSafe,
",1,["fastcrypto_tbls::dkg::Party"]],["impl<G, EG> RefUnwindSafe for Message<G, EG>
where\n EG: RefUnwindSafe,\n <EG as GroupElement>::ScalarType: RefUnwindSafe,\n G: RefUnwindSafe,
",1,["fastcrypto_tbls::dkg_v0::Message"]],["impl<G, EG> RefUnwindSafe for ProcessedMessage<G, EG>
where\n EG: RefUnwindSafe,\n <EG as GroupElement>::ScalarType: RefUnwindSafe,\n <G as GroupElement>::ScalarType: RefUnwindSafe,\n G: RefUnwindSafe,
",1,["fastcrypto_tbls::dkg_v0::ProcessedMessage"]],["impl<G, EG> RefUnwindSafe for UsedProcessedMessages<G, EG>
where\n EG: RefUnwindSafe,\n <EG as GroupElement>::ScalarType: RefUnwindSafe,\n <G as GroupElement>::ScalarType: RefUnwindSafe,\n G: RefUnwindSafe,
",1,["fastcrypto_tbls::dkg_v0::UsedProcessedMessages"]],["impl<G, EG> RefUnwindSafe for VerifiedProcessedMessages<G, EG>
where\n EG: RefUnwindSafe,\n <EG as GroupElement>::ScalarType: RefUnwindSafe,\n <G as GroupElement>::ScalarType: RefUnwindSafe,\n G: RefUnwindSafe,
",1,["fastcrypto_tbls::dkg_v0::VerifiedProcessedMessages"]],["impl<G, EG> RefUnwindSafe for Message<G, EG>
where\n EG: RefUnwindSafe,\n <EG as GroupElement>::ScalarType: RefUnwindSafe,\n G: RefUnwindSafe,
",1,["fastcrypto_tbls::dkg_v1::Message"]],["impl<G, EG> RefUnwindSafe for ProcessedMessage<G, EG>
where\n EG: RefUnwindSafe,\n <EG as GroupElement>::ScalarType: RefUnwindSafe,\n <G as GroupElement>::ScalarType: RefUnwindSafe,\n G: RefUnwindSafe,
",1,["fastcrypto_tbls::dkg_v1::ProcessedMessage"]],["impl<G, EG> RefUnwindSafe for UsedProcessedMessages<G, EG>
where\n EG: RefUnwindSafe,\n <EG as GroupElement>::ScalarType: RefUnwindSafe,\n <G as GroupElement>::ScalarType: RefUnwindSafe,\n G: RefUnwindSafe,
",1,["fastcrypto_tbls::dkg_v1::UsedProcessedMessages"]],["impl<G, EG> RefUnwindSafe for VerifiedProcessedMessages<G, EG>
where\n EG: RefUnwindSafe,\n <EG as GroupElement>::ScalarType: RefUnwindSafe,\n <G as GroupElement>::ScalarType: RefUnwindSafe,\n G: RefUnwindSafe,
",1,["fastcrypto_tbls::dkg_v1::VerifiedProcessedMessages"]]], -"fastcrypto_vdf":[["impl !RefUnwindSafe for QuadraticForm",1,["fastcrypto_vdf::class_group::QuadraticForm"]],["impl RefUnwindSafe for DISCRIMINANT_3072",1,["fastcrypto_vdf::class_group::discriminant::DISCRIMINANT_3072"]],["impl RefUnwindSafe for Discriminant",1,["fastcrypto_vdf::class_group::discriminant::Discriminant"]],["impl<G, F, M> RefUnwindSafe for WesolowskisVDF<G, F, M>",1,["fastcrypto_vdf::vdf::wesolowski::WesolowskisVDF"]]], +"fastcrypto_vdf":[["impl !RefUnwindSafe for QuadraticForm",1,["fastcrypto_vdf::class_group::QuadraticForm"]],["impl RefUnwindSafe for DISCRIMINANT_3072",1,["fastcrypto_vdf::class_group::discriminant::DISCRIMINANT_3072"]],["impl RefUnwindSafe for Discriminant",1,["fastcrypto_vdf::class_group::discriminant::Discriminant"]],["impl<G> RefUnwindSafe for PietrzaksVDF<G>",1,["fastcrypto_vdf::vdf::pietrzak::PietrzaksVDF"]],["impl<G, F, M> RefUnwindSafe for WesolowskisVDF<G, F, M>",1,["fastcrypto_vdf::vdf::wesolowski::WesolowskisVDF"]]], "fastcrypto_zkp":[["impl RefUnwindSafe for OIDCProvider",1,["fastcrypto_zkp::bn254::zk_login::OIDCProvider"]],["impl RefUnwindSafe for ZkLoginEnv",1,["fastcrypto_zkp::bn254::zk_login_api::ZkLoginEnv"]],["impl RefUnwindSafe for FieldElement",1,["fastcrypto_zkp::bn254::FieldElement"]],["impl RefUnwindSafe for Proof",1,["fastcrypto_zkp::bn254::Proof"]],["impl RefUnwindSafe for VerifyingKey",1,["fastcrypto_zkp::bn254::VerifyingKey"]],["impl RefUnwindSafe for GetSaltResponse",1,["fastcrypto_zkp::bn254::utils::GetSaltResponse"]],["impl RefUnwindSafe for TestIssuerJWTResponse",1,["fastcrypto_zkp::bn254::utils::TestIssuerJWTResponse"]],["impl RefUnwindSafe for PreparedVerifyingKey",1,["fastcrypto_zkp::bn254::verifier::PreparedVerifyingKey"]],["impl RefUnwindSafe for Claim",1,["fastcrypto_zkp::bn254::zk_login::Claim"]],["impl RefUnwindSafe for JWK",1,["fastcrypto_zkp::bn254::zk_login::JWK"]],["impl RefUnwindSafe for JWKReader",1,["fastcrypto_zkp::bn254::zk_login::JWKReader"]],["impl RefUnwindSafe for JWTDetails",1,["fastcrypto_zkp::bn254::zk_login::JWTDetails"]],["impl RefUnwindSafe for JwkId",1,["fastcrypto_zkp::bn254::zk_login::JwkId"]],["impl RefUnwindSafe for ProviderConfig",1,["fastcrypto_zkp::bn254::zk_login::ProviderConfig"]],["impl RefUnwindSafe for ZkLoginInputs",1,["fastcrypto_zkp::bn254::zk_login::ZkLoginInputs"]],["impl RefUnwindSafe for ZkLoginInputsReader",1,["fastcrypto_zkp::bn254::zk_login::ZkLoginInputsReader"]],["impl RefUnwindSafe for ZkLoginProof",1,["fastcrypto_zkp::bn254::zk_login::ZkLoginProof"]],["impl RefUnwindSafe for Fr",1,["fastcrypto_zkp::Fr"]],["impl RefUnwindSafe for FrRepr",1,["fastcrypto_zkp::FrRepr"]],["impl RefUnwindSafe for Bn254FqElement",1,["fastcrypto_zkp::zk_login_utils::Bn254FqElement"]],["impl RefUnwindSafe for Bn254FrElement",1,["fastcrypto_zkp::zk_login_utils::Bn254FrElement"]],["impl<F> RefUnwindSafe for DummyCircuit<F>
where\n F: RefUnwindSafe,
",1,["fastcrypto_zkp::dummy_circuits::DummyCircuit"]],["impl<F> RefUnwindSafe for Fibonacci<F>
where\n F: RefUnwindSafe,
",1,["fastcrypto_zkp::dummy_circuits::Fibonacci"]],["impl<G1> RefUnwindSafe for PreparedVerifyingKey<G1>
where\n <G1 as Pairing>::Output: RefUnwindSafe,\n <G1 as Pairing>::Other: RefUnwindSafe,\n G1: RefUnwindSafe,
",1,["fastcrypto_zkp::groth16::PreparedVerifyingKey"]],["impl<G1> RefUnwindSafe for Proof<G1>
where\n G1: RefUnwindSafe,\n <G1 as Pairing>::Other: RefUnwindSafe,
",1,["fastcrypto_zkp::groth16::Proof"]],["impl<G1> RefUnwindSafe for VerifyingKey<G1>
where\n G1: RefUnwindSafe,\n <G1 as Pairing>::Other: RefUnwindSafe,
",1,["fastcrypto_zkp::groth16::VerifyingKey"]]], "sigs_cli":[["impl RefUnwindSafe for Command",1,["sigs_cli::Command"]],["impl RefUnwindSafe for SignatureScheme",1,["sigs_cli::SignatureScheme"]],["impl RefUnwindSafe for KeygenArguments",1,["sigs_cli::KeygenArguments"]],["impl RefUnwindSafe for SigningArguments",1,["sigs_cli::SigningArguments"]],["impl RefUnwindSafe for VerifiyingArguments",1,["sigs_cli::VerifiyingArguments"]]], "tlock_cli":[["impl RefUnwindSafe for Command",1,["tlock_cli::Command"]],["impl RefUnwindSafe for DecryptArguments",1,["tlock_cli::DecryptArguments"]],["impl RefUnwindSafe for EncryptArguments",1,["tlock_cli::EncryptArguments"]],["impl RefUnwindSafe for Encryption",1,["tlock_cli::Encryption"]],["impl RefUnwindSafe for VerifyArguments",1,["tlock_cli::VerifyArguments"]]], diff --git a/docs/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js b/docs/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js index 6847b0ce08..97d264ae29 100644 --- a/docs/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js +++ b/docs/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js @@ -4,7 +4,7 @@ "fastcrypto":[["impl UnwindSafe for FastCryptoError",1,["fastcrypto::error::FastCryptoError"]],["impl UnwindSafe for BLS12381AggregateSignature",1,["fastcrypto::bls12381::min_pk::BLS12381AggregateSignature"]],["impl UnwindSafe for BLS12381KeyPair",1,["fastcrypto::bls12381::min_pk::BLS12381KeyPair"]],["impl UnwindSafe for BLS12381PrivateKey",1,["fastcrypto::bls12381::min_pk::BLS12381PrivateKey"]],["impl UnwindSafe for BLS12381PublicKey",1,["fastcrypto::bls12381::min_pk::BLS12381PublicKey"]],["impl UnwindSafe for BLS12381Signature",1,["fastcrypto::bls12381::min_pk::BLS12381Signature"]],["impl UnwindSafe for BLS12381AggregateSignature",1,["fastcrypto::bls12381::min_sig::BLS12381AggregateSignature"]],["impl UnwindSafe for BLS12381KeyPair",1,["fastcrypto::bls12381::min_sig::BLS12381KeyPair"]],["impl UnwindSafe for BLS12381PrivateKey",1,["fastcrypto::bls12381::min_sig::BLS12381PrivateKey"]],["impl UnwindSafe for BLS12381PublicKey",1,["fastcrypto::bls12381::min_sig::BLS12381PublicKey"]],["impl UnwindSafe for BLS12381Signature",1,["fastcrypto::bls12381::min_sig::BLS12381Signature"]],["impl UnwindSafe for Ed25519AggregateSignature",1,["fastcrypto::ed25519::Ed25519AggregateSignature"]],["impl UnwindSafe for Ed25519KeyPair",1,["fastcrypto::ed25519::Ed25519KeyPair"]],["impl UnwindSafe for Ed25519PrivateKey",1,["fastcrypto::ed25519::Ed25519PrivateKey"]],["impl UnwindSafe for Ed25519PublicKey",1,["fastcrypto::ed25519::Ed25519PublicKey"]],["impl UnwindSafe for Ed25519Signature",1,["fastcrypto::ed25519::Ed25519Signature"]],["impl UnwindSafe for SingleSignature",1,["fastcrypto::ed25519::SingleSignature"]],["impl UnwindSafe for Base58",1,["fastcrypto::encoding::Base58"]],["impl UnwindSafe for Base64",1,["fastcrypto::encoding::Base64"]],["impl UnwindSafe for Bech32",1,["fastcrypto::encoding::Bech32"]],["impl UnwindSafe for Hex",1,["fastcrypto::encoding::Hex"]],["impl UnwindSafe for G1Element",1,["fastcrypto::groups::bls12381::G1Element"]],["impl UnwindSafe for G2Element",1,["fastcrypto::groups::bls12381::G2Element"]],["impl UnwindSafe for GTElement",1,["fastcrypto::groups::bls12381::GTElement"]],["impl UnwindSafe for Scalar",1,["fastcrypto::groups::bls12381::Scalar"]],["impl UnwindSafe for RistrettoPoint",1,["fastcrypto::groups::ristretto255::RistrettoPoint"]],["impl UnwindSafe for RistrettoScalar",1,["fastcrypto::groups::ristretto255::RistrettoScalar"]],["impl UnwindSafe for ProjectivePoint",1,["fastcrypto::groups::secp256r1::ProjectivePoint"]],["impl UnwindSafe for Scalar",1,["fastcrypto::groups::secp256r1::Scalar"]],["impl UnwindSafe for EllipticCurveMultisetHash",1,["fastcrypto::hash::EllipticCurveMultisetHash"]],["impl UnwindSafe for JWTHeader",1,["fastcrypto::jwt_utils::JWTHeader"]],["impl UnwindSafe for RSAPublicKey",1,["fastcrypto::rsa::RSAPublicKey"]],["impl UnwindSafe for RSASignature",1,["fastcrypto::rsa::RSASignature"]],["impl UnwindSafe for Secp256k1RecoverableSignature",1,["fastcrypto::secp256k1::recoverable::Secp256k1RecoverableSignature"]],["impl UnwindSafe for Secp256k1KeyPair",1,["fastcrypto::secp256k1::Secp256k1KeyPair"]],["impl UnwindSafe for Secp256k1PrivateKey",1,["fastcrypto::secp256k1::Secp256k1PrivateKey"]],["impl UnwindSafe for Secp256k1PublicKey",1,["fastcrypto::secp256k1::Secp256k1PublicKey"]],["impl UnwindSafe for Secp256k1Signature",1,["fastcrypto::secp256k1::Secp256k1Signature"]],["impl UnwindSafe for Secp256r1RecoverableSignature",1,["fastcrypto::secp256r1::recoverable::Secp256r1RecoverableSignature"]],["impl UnwindSafe for Secp256r1KeyPair",1,["fastcrypto::secp256r1::Secp256r1KeyPair"]],["impl UnwindSafe for Secp256r1PrivateKey",1,["fastcrypto::secp256r1::Secp256r1PrivateKey"]],["impl UnwindSafe for Secp256r1PublicKey",1,["fastcrypto::secp256r1::Secp256r1PublicKey"]],["impl UnwindSafe for Secp256r1Signature",1,["fastcrypto::secp256r1::Secp256r1Signature"]],["impl UnwindSafe for ECVRFKeyPair",1,["fastcrypto::vrf::ecvrf::ECVRFKeyPair"]],["impl UnwindSafe for ECVRFPrivateKey",1,["fastcrypto::vrf::ecvrf::ECVRFPrivateKey"]],["impl UnwindSafe for ECVRFProof",1,["fastcrypto::vrf::ecvrf::ECVRFProof"]],["impl UnwindSafe for ECVRFPublicKey",1,["fastcrypto::vrf::ecvrf::ECVRFPublicKey"]],["impl<G, S, const CACHE_SIZE: usize, const SLIDING_WINDOW_WIDTH: usize> UnwindSafe for WindowedScalarMultiplier<G, S, CACHE_SIZE, SLIDING_WINDOW_WIDTH>
where\n G: UnwindSafe,\n S: UnwindSafe,
",1,["fastcrypto::groups::multiplier::windowed::WindowedScalarMultiplier"]],["impl<KeySize, Aes> UnwindSafe for AesCtr<KeySize, Aes>
where\n Aes: UnwindSafe,\n <KeySize as ArrayLength<u8>>::ArrayType: UnwindSafe,
",1,["fastcrypto::aes::AesCtr"]],["impl<KeySize, Aes, NonceSize> UnwindSafe for AesGcm<KeySize, Aes, NonceSize>
where\n Aes: UnwindSafe,\n NonceSize: UnwindSafe,\n <KeySize as ArrayLength<u8>>::ArrayType: UnwindSafe,
",1,["fastcrypto::aes::AesGcm"]],["impl<KeySize, Aes, Padding> UnwindSafe for AesCbc<KeySize, Aes, Padding>
where\n Aes: UnwindSafe,\n Padding: UnwindSafe,\n <KeySize as ArrayLength<u8>>::ArrayType: UnwindSafe,
",1,["fastcrypto::aes::AesCbc"]],["impl<N> UnwindSafe for GenericByteArray<N>
where\n <N as ArrayLength<u8>>::ArrayType: UnwindSafe,
",1,["fastcrypto::aes::GenericByteArray"]],["impl<Signature, const DIGEST_LEN: usize> !UnwindSafe for SignatureService<Signature, DIGEST_LEN>",1,["fastcrypto::signature_service::SignatureService"]],["impl<Variant, const DIGEST_LEN: usize> UnwindSafe for HashFunctionWrapper<Variant, DIGEST_LEN>
where\n Variant: UnwindSafe,
",1,["fastcrypto::hash::HashFunctionWrapper"]],["impl<const DIGEST_LEN: usize> UnwindSafe for Digest<DIGEST_LEN>",1,["fastcrypto::hash::Digest"]],["impl<const N: usize> UnwindSafe for BytesRepresentation<N>",1,["fastcrypto::serde_helpers::BytesRepresentation"]],["impl<const N: usize> UnwindSafe for SerializationHelper<N>",1,["fastcrypto::serde_helpers::SerializationHelper"]],["impl<const RECOMMENDED_LENGTH: usize, const FIXED_LENGTH_ONLY: bool> UnwindSafe for PrivateSeed<RECOMMENDED_LENGTH, FIXED_LENGTH_ONLY>",1,["fastcrypto::private_seed::PrivateSeed"]]], "fastcrypto_cli":[["impl UnwindSafe for TestVector",1,["fastcrypto_cli::sigs_cli_test_vectors::TestVector"]]], "fastcrypto_tbls":[["impl UnwindSafe for RandomOracle",1,["fastcrypto_tbls::random_oracle::RandomOracle"]],["impl UnwindSafe for ThresholdBls12381MinSig",1,["fastcrypto_tbls::types::ThresholdBls12381MinSig"]],["impl<A> UnwindSafe for IndexedValue<A>
where\n A: UnwindSafe,
",1,["fastcrypto_tbls::types::IndexedValue"]],["impl<A> UnwindSafe for UnindexedValues<A>
where\n A: UnwindSafe,
",1,["fastcrypto_tbls::types::UnindexedValues"]],["impl<C> UnwindSafe for Poly<C>
where\n C: UnwindSafe,
",1,["fastcrypto_tbls::polynomial::Poly"]],["impl<EG> UnwindSafe for Complaint<EG>
where\n EG: UnwindSafe,\n <EG as GroupElement>::ScalarType: UnwindSafe,
",1,["fastcrypto_tbls::dkg::Complaint"]],["impl<EG> UnwindSafe for Confirmation<EG>
where\n EG: UnwindSafe,\n <EG as GroupElement>::ScalarType: UnwindSafe,
",1,["fastcrypto_tbls::dkg::Confirmation"]],["impl<G> UnwindSafe for PrivateKey<G>
where\n <G as GroupElement>::ScalarType: UnwindSafe,
",1,["fastcrypto_tbls::ecies::PrivateKey"]],["impl<G> UnwindSafe for PublicKey<G>
where\n G: UnwindSafe,
",1,["fastcrypto_tbls::ecies::PublicKey"]],["impl<G> UnwindSafe for RecoveryPackage<G>
where\n G: UnwindSafe,\n <G as GroupElement>::ScalarType: UnwindSafe,
",1,["fastcrypto_tbls::ecies::RecoveryPackage"]],["impl<G> UnwindSafe for Encryption<G>
where\n G: UnwindSafe,
",1,["fastcrypto_tbls::ecies_v0::Encryption"]],["impl<G> UnwindSafe for MultiRecipientEncryption<G>
where\n G: UnwindSafe,\n <G as GroupElement>::ScalarType: UnwindSafe,
",1,["fastcrypto_tbls::ecies_v0::MultiRecipientEncryption"]],["impl<G> UnwindSafe for MultiRecipientEncryption<G>
where\n G: UnwindSafe,\n <G as GroupElement>::ScalarType: UnwindSafe,
",1,["fastcrypto_tbls::ecies_v1::MultiRecipientEncryption"]],["impl<G> UnwindSafe for DLNizk<G>
where\n G: UnwindSafe,\n <G as GroupElement>::ScalarType: UnwindSafe,
",1,["fastcrypto_tbls::nizk::DLNizk"]],["impl<G> UnwindSafe for DdhTupleNizk<G>
where\n G: UnwindSafe,\n <G as GroupElement>::ScalarType: UnwindSafe,
",1,["fastcrypto_tbls::nizk::DdhTupleNizk"]],["impl<G> UnwindSafe for Node<G>
where\n G: UnwindSafe,
",1,["fastcrypto_tbls::nodes::Node"]],["impl<G> UnwindSafe for Nodes<G>
where\n G: UnwindSafe,
",1,["fastcrypto_tbls::nodes::Nodes"]],["impl<G, EG> UnwindSafe for Output<G, EG>
where\n G: UnwindSafe,\n <G as GroupElement>::ScalarType: UnwindSafe,\n EG: UnwindSafe,
",1,["fastcrypto_tbls::dkg::Output"]],["impl<G, EG> UnwindSafe for Party<G, EG>
where\n <EG as GroupElement>::ScalarType: UnwindSafe,\n <G as GroupElement>::ScalarType: UnwindSafe,\n EG: UnwindSafe,
",1,["fastcrypto_tbls::dkg::Party"]],["impl<G, EG> UnwindSafe for Message<G, EG>
where\n EG: UnwindSafe,\n <EG as GroupElement>::ScalarType: UnwindSafe,\n G: UnwindSafe,
",1,["fastcrypto_tbls::dkg_v0::Message"]],["impl<G, EG> UnwindSafe for ProcessedMessage<G, EG>
where\n EG: UnwindSafe,\n <EG as GroupElement>::ScalarType: UnwindSafe,\n <G as GroupElement>::ScalarType: UnwindSafe,\n G: UnwindSafe,
",1,["fastcrypto_tbls::dkg_v0::ProcessedMessage"]],["impl<G, EG> UnwindSafe for UsedProcessedMessages<G, EG>
where\n EG: UnwindSafe,\n <EG as GroupElement>::ScalarType: UnwindSafe,\n <G as GroupElement>::ScalarType: UnwindSafe,\n G: UnwindSafe,
",1,["fastcrypto_tbls::dkg_v0::UsedProcessedMessages"]],["impl<G, EG> UnwindSafe for VerifiedProcessedMessages<G, EG>
where\n EG: UnwindSafe,\n <EG as GroupElement>::ScalarType: UnwindSafe,\n <G as GroupElement>::ScalarType: UnwindSafe,\n G: UnwindSafe,
",1,["fastcrypto_tbls::dkg_v0::VerifiedProcessedMessages"]],["impl<G, EG> UnwindSafe for Message<G, EG>
where\n EG: UnwindSafe,\n <EG as GroupElement>::ScalarType: UnwindSafe,\n G: UnwindSafe,
",1,["fastcrypto_tbls::dkg_v1::Message"]],["impl<G, EG> UnwindSafe for ProcessedMessage<G, EG>
where\n EG: UnwindSafe,\n <EG as GroupElement>::ScalarType: UnwindSafe,\n <G as GroupElement>::ScalarType: UnwindSafe,\n G: UnwindSafe,
",1,["fastcrypto_tbls::dkg_v1::ProcessedMessage"]],["impl<G, EG> UnwindSafe for UsedProcessedMessages<G, EG>
where\n EG: UnwindSafe,\n <EG as GroupElement>::ScalarType: UnwindSafe,\n <G as GroupElement>::ScalarType: UnwindSafe,\n G: UnwindSafe,
",1,["fastcrypto_tbls::dkg_v1::UsedProcessedMessages"]],["impl<G, EG> UnwindSafe for VerifiedProcessedMessages<G, EG>
where\n EG: UnwindSafe,\n <EG as GroupElement>::ScalarType: UnwindSafe,\n <G as GroupElement>::ScalarType: UnwindSafe,\n G: UnwindSafe,
",1,["fastcrypto_tbls::dkg_v1::VerifiedProcessedMessages"]]], -"fastcrypto_vdf":[["impl UnwindSafe for DISCRIMINANT_3072",1,["fastcrypto_vdf::class_group::discriminant::DISCRIMINANT_3072"]],["impl UnwindSafe for Discriminant",1,["fastcrypto_vdf::class_group::discriminant::Discriminant"]],["impl UnwindSafe for QuadraticForm",1,["fastcrypto_vdf::class_group::QuadraticForm"]],["impl<G, F, M> UnwindSafe for WesolowskisVDF<G, F, M>",1,["fastcrypto_vdf::vdf::wesolowski::WesolowskisVDF"]]], +"fastcrypto_vdf":[["impl UnwindSafe for DISCRIMINANT_3072",1,["fastcrypto_vdf::class_group::discriminant::DISCRIMINANT_3072"]],["impl UnwindSafe for Discriminant",1,["fastcrypto_vdf::class_group::discriminant::Discriminant"]],["impl UnwindSafe for QuadraticForm",1,["fastcrypto_vdf::class_group::QuadraticForm"]],["impl<G> UnwindSafe for PietrzaksVDF<G>",1,["fastcrypto_vdf::vdf::pietrzak::PietrzaksVDF"]],["impl<G, F, M> UnwindSafe for WesolowskisVDF<G, F, M>",1,["fastcrypto_vdf::vdf::wesolowski::WesolowskisVDF"]]], "fastcrypto_zkp":[["impl UnwindSafe for OIDCProvider",1,["fastcrypto_zkp::bn254::zk_login::OIDCProvider"]],["impl UnwindSafe for ZkLoginEnv",1,["fastcrypto_zkp::bn254::zk_login_api::ZkLoginEnv"]],["impl UnwindSafe for FieldElement",1,["fastcrypto_zkp::bn254::FieldElement"]],["impl UnwindSafe for Proof",1,["fastcrypto_zkp::bn254::Proof"]],["impl UnwindSafe for VerifyingKey",1,["fastcrypto_zkp::bn254::VerifyingKey"]],["impl UnwindSafe for GetSaltResponse",1,["fastcrypto_zkp::bn254::utils::GetSaltResponse"]],["impl UnwindSafe for TestIssuerJWTResponse",1,["fastcrypto_zkp::bn254::utils::TestIssuerJWTResponse"]],["impl UnwindSafe for PreparedVerifyingKey",1,["fastcrypto_zkp::bn254::verifier::PreparedVerifyingKey"]],["impl UnwindSafe for Claim",1,["fastcrypto_zkp::bn254::zk_login::Claim"]],["impl UnwindSafe for JWK",1,["fastcrypto_zkp::bn254::zk_login::JWK"]],["impl UnwindSafe for JWKReader",1,["fastcrypto_zkp::bn254::zk_login::JWKReader"]],["impl UnwindSafe for JWTDetails",1,["fastcrypto_zkp::bn254::zk_login::JWTDetails"]],["impl UnwindSafe for JwkId",1,["fastcrypto_zkp::bn254::zk_login::JwkId"]],["impl UnwindSafe for ProviderConfig",1,["fastcrypto_zkp::bn254::zk_login::ProviderConfig"]],["impl UnwindSafe for ZkLoginInputs",1,["fastcrypto_zkp::bn254::zk_login::ZkLoginInputs"]],["impl UnwindSafe for ZkLoginInputsReader",1,["fastcrypto_zkp::bn254::zk_login::ZkLoginInputsReader"]],["impl UnwindSafe for ZkLoginProof",1,["fastcrypto_zkp::bn254::zk_login::ZkLoginProof"]],["impl UnwindSafe for Fr",1,["fastcrypto_zkp::Fr"]],["impl UnwindSafe for FrRepr",1,["fastcrypto_zkp::FrRepr"]],["impl UnwindSafe for Bn254FqElement",1,["fastcrypto_zkp::zk_login_utils::Bn254FqElement"]],["impl UnwindSafe for Bn254FrElement",1,["fastcrypto_zkp::zk_login_utils::Bn254FrElement"]],["impl<F> UnwindSafe for DummyCircuit<F>
where\n F: UnwindSafe,
",1,["fastcrypto_zkp::dummy_circuits::DummyCircuit"]],["impl<F> UnwindSafe for Fibonacci<F>
where\n F: UnwindSafe,
",1,["fastcrypto_zkp::dummy_circuits::Fibonacci"]],["impl<G1> UnwindSafe for PreparedVerifyingKey<G1>
where\n <G1 as Pairing>::Output: UnwindSafe,\n <G1 as Pairing>::Other: UnwindSafe,\n G1: UnwindSafe,
",1,["fastcrypto_zkp::groth16::PreparedVerifyingKey"]],["impl<G1> UnwindSafe for Proof<G1>
where\n G1: UnwindSafe,\n <G1 as Pairing>::Other: UnwindSafe,
",1,["fastcrypto_zkp::groth16::Proof"]],["impl<G1> UnwindSafe for VerifyingKey<G1>
where\n G1: UnwindSafe,\n <G1 as Pairing>::Other: UnwindSafe,
",1,["fastcrypto_zkp::groth16::VerifyingKey"]]], "sigs_cli":[["impl UnwindSafe for Command",1,["sigs_cli::Command"]],["impl UnwindSafe for SignatureScheme",1,["sigs_cli::SignatureScheme"]],["impl UnwindSafe for KeygenArguments",1,["sigs_cli::KeygenArguments"]],["impl UnwindSafe for SigningArguments",1,["sigs_cli::SigningArguments"]],["impl UnwindSafe for VerifiyingArguments",1,["sigs_cli::VerifiyingArguments"]]], "tlock_cli":[["impl UnwindSafe for Command",1,["tlock_cli::Command"]],["impl UnwindSafe for DecryptArguments",1,["tlock_cli::DecryptArguments"]],["impl UnwindSafe for EncryptArguments",1,["tlock_cli::EncryptArguments"]],["impl UnwindSafe for Encryption",1,["tlock_cli::Encryption"]],["impl UnwindSafe for VerifyArguments",1,["tlock_cli::VerifyArguments"]]], diff --git a/docs/type.impl/fastcrypto_vdf/vdf/wesolowski/struct.WesolowskisVDF.js b/docs/type.impl/fastcrypto_vdf/vdf/wesolowski/struct.WesolowskisVDF.js index 2c4728134e..04fb8f3048 100644 --- a/docs/type.impl/fastcrypto_vdf/vdf/wesolowski/struct.WesolowskisVDF.js +++ b/docs/type.impl/fastcrypto_vdf/vdf/wesolowski/struct.WesolowskisVDF.js @@ -1,3 +1,3 @@ (function() {var type_impls = { -"fastcrypto_vdf":[["
source§

impl<G: ParameterizedGroupElement<ScalarType = BigInt>, F: FiatShamir<G>, M: ScalarMultiplier<G, BigInt>> VDF for WesolowskisVDF<G, F, M>

§

type InputType = G

The type of the input to the VDF.
§

type OutputType = G

The type of the output from the VDF.
§

type ProofType = G

The type of the proof of correctness for this VDF.
source§

fn evaluate(&self, input: &G) -> FastCryptoResult<(G, G)>

Evaluate this VDF and return the output and a proof of correctness.
source§

fn verify(&self, input: &G, output: &G, proof: &G) -> FastCryptoResult<()>

Verify the output and proof from a VDF.
","VDF","fastcrypto_vdf::vdf::wesolowski::DefaultVDF"],["
source§

impl<G: ParameterizedGroupElement, F: FiatShamir<G>, M: ScalarMultiplier<G, G::ScalarType>> WesolowskisVDF<G, F, M>

source

pub fn new(group_parameter: G::ParameterType, iterations: u64) -> Self

Create a new VDF using the group defined by the given group parameter. Evaluating this VDF\nwill require computing 2^iterations * input which requires iterations group operations.

\n
",0,"fastcrypto_vdf::vdf::wesolowski::DefaultVDF"]] +"fastcrypto_vdf":[["
source§

impl<G: ParameterizedGroupElement, F: FiatShamir<G>, M: ScalarMultiplier<G, BigUint>> VDF for WesolowskisVDF<G, F, M>

§

type InputType = G

The type of the input to the VDF.
§

type OutputType = G

The type of the output from the VDF.
§

type ProofType = G

The type of the proof of correctness for this VDF.
source§

fn evaluate(&self, input: &G) -> FastCryptoResult<(G, G)>

Evaluate this VDF and return the output and a proof of correctness.
source§

fn verify(&self, input: &G, output: &G, proof: &G) -> FastCryptoResult<()>

Verify the output and proof from a VDF.
","VDF","fastcrypto_vdf::vdf::wesolowski::DefaultVDF"],["
source§

impl<G: ParameterizedGroupElement, F: FiatShamir<G>, M: ScalarMultiplier<G, BigUint>> WesolowskisVDF<G, F, M>

source

pub fn new(group_parameter: G::ParameterType, iterations: u64) -> Self

Create a new VDF using the group defined by the given group parameter. Evaluating this VDF\nwill require computing 2^iterations * input which requires iterations group operations.

\n
",0,"fastcrypto_vdf::vdf::wesolowski::DefaultVDF"]] };if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file