diff --git a/rustdoc/latest/equihash/all.html b/rustdoc/latest/equihash/all.html index 77afe09b1..2d03e5756 100644 --- a/rustdoc/latest/equihash/all.html +++ b/rustdoc/latest/equihash/all.html @@ -1 +1 @@ -List of all items in this crate

List of all items

Structs

Functions

\ No newline at end of file +List of all items in this crate

List of all items

Structs

Functions

\ No newline at end of file diff --git a/rustdoc/latest/equihash/fn.is_valid_solution.html b/rustdoc/latest/equihash/fn.is_valid_solution.html index 91b7201f9..b8efc5573 100644 --- a/rustdoc/latest/equihash/fn.is_valid_solution.html +++ b/rustdoc/latest/equihash/fn.is_valid_solution.html @@ -1,4 +1,4 @@ -is_valid_solution in equihash - Rust

Function is_valid_solution

Source
pub fn is_valid_solution(
+is_valid_solution in equihash - Rust

Function is_valid_solution

Source
pub fn is_valid_solution(
     n: u32,
     k: u32,
     input: &[u8],
diff --git a/rustdoc/latest/equihash/index.html b/rustdoc/latest/equihash/index.html
index b6d916153..62f795cdf 100644
--- a/rustdoc/latest/equihash/index.html
+++ b/rustdoc/latest/equihash/index.html
@@ -1,4 +1,4 @@
-equihash - Rust

Crate equihash

Source
Expand description

Equihash is a Proof-of-Work algorithm, based on a generalization of the Birthday +equihash - Rust

Crate equihash

Source
Expand description

Equihash is a Proof-of-Work algorithm, based on a generalization of the Birthday problem which finds colliding hash values. It was designed to be memory-hard; more specifically, the bottle-neck for parallel implementations of Equihash solvers would be memory bandwidth.

diff --git a/rustdoc/latest/equihash/struct.Error.html b/rustdoc/latest/equihash/struct.Error.html index 38c7769b8..23a0da290 100644 --- a/rustdoc/latest/equihash/struct.Error.html +++ b/rustdoc/latest/equihash/struct.Error.html @@ -1,4 +1,4 @@ -Error in equihash - Rust

Struct Error

Source
pub struct Error(/* private fields */);
Expand description

An Equihash solution failed to verify.

+Error in equihash - Rust

Struct Error

Source
pub struct Error(/* private fields */);
Expand description

An Equihash solution failed to verify.

Trait Implementations§

Source§

impl Debug for Error

Source§

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

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

impl Display for Error

Source§

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

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

impl Error for Error

Available on crate feature std only.
1.30.0 · Source§

fn source(&self) -> Option<&(dyn Error + 'static)>

Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · Source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
Source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type-based access to context intended for error reports. Read more

Auto Trait Implementations§

§

impl Freeze for Error

§

impl RefUnwindSafe for Error

§

impl Send for Error

§

impl Sync for Error

§

impl Unpin for Error

§

impl UnwindSafe for Error

Blanket Implementations§

Source§

impl<T> Any for 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 diff --git a/rustdoc/latest/f4jumble/all.html b/rustdoc/latest/f4jumble/all.html index dcb562e3a..d7cabd13f 100644 --- a/rustdoc/latest/f4jumble/all.html +++ b/rustdoc/latest/f4jumble/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/rustdoc/latest/f4jumble/constant.VALID_LENGTH.html b/rustdoc/latest/f4jumble/constant.VALID_LENGTH.html index 91ec55801..8659f2dcc 100644 --- a/rustdoc/latest/f4jumble/constant.VALID_LENGTH.html +++ b/rustdoc/latest/f4jumble/constant.VALID_LENGTH.html @@ -1,3 +1,3 @@ -VALID_LENGTH in f4jumble - Rust

Constant VALID_LENGTH

Source
pub const VALID_LENGTH: RangeInclusive<usize>;
Expand description

Length of F4Jumbled message must lie in the range VALID_LENGTH.

+VALID_LENGTH in f4jumble - Rust

Constant VALID_LENGTH

Source
pub const VALID_LENGTH: RangeInclusive<usize>;
Expand description

Length of F4Jumbled message must lie in the range VALID_LENGTH.

VALID_LENGTH = 48..=4194368

\ No newline at end of file diff --git a/rustdoc/latest/f4jumble/enum.Error.html b/rustdoc/latest/f4jumble/enum.Error.html index f006b1c56..a51195ee6 100644 --- a/rustdoc/latest/f4jumble/enum.Error.html +++ b/rustdoc/latest/f4jumble/enum.Error.html @@ -1,4 +1,4 @@ -Error in f4jumble - Rust

Enum Error

Source
pub enum Error {
+Error in f4jumble - Rust

Enum Error

Source
pub enum Error {
     InvalidLength,
 }
Expand description

Errors produced by F4Jumble.

Variants§

§

InvalidLength

Value error indicating that length of F4Jumbled message does not diff --git a/rustdoc/latest/f4jumble/fn.f4jumble.html b/rustdoc/latest/f4jumble/fn.f4jumble.html index eb184416b..469e286fd 100644 --- a/rustdoc/latest/f4jumble/fn.f4jumble.html +++ b/rustdoc/latest/f4jumble/fn.f4jumble.html @@ -1,4 +1,4 @@ -f4jumble in f4jumble - Rust

Function f4jumble

Source
pub fn f4jumble(message: &[u8]) -> Result<Vec<u8>, Error>
Available on crate feature alloc only.
Expand description

Encodes the given message using F4Jumble, and returns the encoded message as a vector +f4jumble in f4jumble - Rust

Function f4jumble

Source
pub fn f4jumble(message: &[u8]) -> Result<Vec<u8>, Error>
Available on crate feature alloc only.
Expand description

Encodes the given message using F4Jumble, and returns the encoded message as a vector of bytes.

Returns an error if the message is an invalid length.

§Examples

diff --git a/rustdoc/latest/f4jumble/fn.f4jumble_inv.html b/rustdoc/latest/f4jumble/fn.f4jumble_inv.html index 504f09e6e..fc7461eaa 100644 --- a/rustdoc/latest/f4jumble/fn.f4jumble_inv.html +++ b/rustdoc/latest/f4jumble/fn.f4jumble_inv.html @@ -1,4 +1,4 @@ -f4jumble_inv in f4jumble - Rust

Function f4jumble_inv

Source
pub fn f4jumble_inv(message: &[u8]) -> Result<Vec<u8>, Error>
Available on crate feature alloc only.
Expand description

Decodes the given message using F4Jumble⁻¹, and returns the decoded message as a +f4jumble_inv in f4jumble - Rust

Function f4jumble_inv

Source
pub fn f4jumble_inv(message: &[u8]) -> Result<Vec<u8>, Error>
Available on crate feature alloc only.
Expand description

Decodes the given message using F4Jumble⁻¹, and returns the decoded message as a vector of bytes.

Returns an error if the message is an invalid length.

§Examples

diff --git a/rustdoc/latest/f4jumble/fn.f4jumble_inv_mut.html b/rustdoc/latest/f4jumble/fn.f4jumble_inv_mut.html index 1d8baa318..38eefaa36 100644 --- a/rustdoc/latest/f4jumble/fn.f4jumble_inv_mut.html +++ b/rustdoc/latest/f4jumble/fn.f4jumble_inv_mut.html @@ -1,4 +1,4 @@ -f4jumble_inv_mut in f4jumble - Rust

Function f4jumble_inv_mut

Source
pub fn f4jumble_inv_mut(message: &mut [u8]) -> Result<(), Error>
Expand description

Decodes the given message in-place using F4Jumble⁻¹.

+f4jumble_inv_mut in f4jumble - Rust

Function f4jumble_inv_mut

Source
pub fn f4jumble_inv_mut(message: &mut [u8]) -> Result<(), Error>
Expand description

Decodes the given message in-place using F4Jumble⁻¹.

Returns an error if the message is an invalid length. message will be unmodified in this case.

§Examples

diff --git a/rustdoc/latest/f4jumble/fn.f4jumble_mut.html b/rustdoc/latest/f4jumble/fn.f4jumble_mut.html index 952163347..207ee8aee 100644 --- a/rustdoc/latest/f4jumble/fn.f4jumble_mut.html +++ b/rustdoc/latest/f4jumble/fn.f4jumble_mut.html @@ -1,4 +1,4 @@ -f4jumble_mut in f4jumble - Rust

Function f4jumble_mut

Source
pub fn f4jumble_mut(message: &mut [u8]) -> Result<(), Error>
Expand description

Encodes the given message in-place using F4Jumble.

+f4jumble_mut in f4jumble - Rust

Function f4jumble_mut

Source
pub fn f4jumble_mut(message: &mut [u8]) -> Result<(), Error>
Expand description

Encodes the given message in-place using F4Jumble.

Returns an error if the message is an invalid length. message will be unmodified in this case.

§Examples

diff --git a/rustdoc/latest/f4jumble/index.html b/rustdoc/latest/f4jumble/index.html index c39b87291..f42dfc7e8 100644 --- a/rustdoc/latest/f4jumble/index.html +++ b/rustdoc/latest/f4jumble/index.html @@ -1,4 +1,4 @@ -f4jumble - Rust

Crate f4jumble

Source
Expand description

This crate provides a mechanism for “jumbling” byte slices in a reversible way.

+f4jumble - Rust

Crate f4jumble

Source
Expand description

This crate provides a mechanism for “jumbling” byte slices in a reversible way.

Many byte encodings such as Base64 and Bech32 do not have “cascading” behaviour: changing an input byte at one position has no effect on the encoding of bytes at distant positions. This can be a problem if users generally check the correctness of diff --git a/rustdoc/latest/help.html b/rustdoc/latest/help.html index acd731178..fccdf3188 100644 --- a/rustdoc/latest/help.html +++ b/rustdoc/latest/help.html @@ -1 +1 @@ -Help

Rustdoc help

Back
\ No newline at end of file +Help

Rustdoc help

Back
\ No newline at end of file diff --git a/rustdoc/latest/index.html b/rustdoc/latest/index.html index 816578afe..ee25abf1c 100644 --- a/rustdoc/latest/index.html +++ b/rustdoc/latest/index.html @@ -1,2 +1,2 @@ -Index of crates
+Index of crates
\ No newline at end of file diff --git a/rustdoc/latest/pczt/all.html b/rustdoc/latest/pczt/all.html index 951537547..37f22e2ed 100644 --- a/rustdoc/latest/pczt/all.html +++ b/rustdoc/latest/pczt/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/rustdoc/latest/pczt/common/fn.determine_lock_time.html b/rustdoc/latest/pczt/common/fn.determine_lock_time.html index dda03f4ea..15cdc2ef1 100644 --- a/rustdoc/latest/pczt/common/fn.determine_lock_time.html +++ b/rustdoc/latest/pczt/common/fn.determine_lock_time.html @@ -1,4 +1,4 @@ -determine_lock_time in pczt::common - Rust

Function determine_lock_time

Source
pub fn determine_lock_time<L: LockTimeInput>(
+determine_lock_time in pczt::common - Rust

Function determine_lock_time

Source
pub fn determine_lock_time<L: LockTimeInput>(
     global: &Global,
     inputs: &[L],
 ) -> Option<u32>
Expand description

Determines the lock time for the transaction.

diff --git a/rustdoc/latest/pczt/common/index.html b/rustdoc/latest/pczt/common/index.html index d3418469b..c557de09f 100644 --- a/rustdoc/latest/pczt/common/index.html +++ b/rustdoc/latest/pczt/common/index.html @@ -1,2 +1,2 @@ -pczt::common - Rust

Module common

Source
Expand description

The common fields of a PCZT.

+pczt::common - Rust

Module common

Source
Expand description

The common fields of a PCZT.

Structs§

Global
Global fields that are relevant to the transaction as a whole.

Traits§

LockTimeInput

Functions§

determine_lock_time
Determines the lock time for the transaction.
\ No newline at end of file diff --git a/rustdoc/latest/pczt/common/struct.Global.html b/rustdoc/latest/pczt/common/struct.Global.html index e2d86b213..7e5431ab4 100644 --- a/rustdoc/latest/pczt/common/struct.Global.html +++ b/rustdoc/latest/pczt/common/struct.Global.html @@ -1,4 +1,4 @@ -Global in pczt::common - Rust

Struct Global

Source
pub struct Global { /* private fields */ }
Expand description

Global fields that are relevant to the transaction as a whole.

+Global in pczt::common - Rust

Struct Global

Source
pub struct Global { /* private fields */ }
Expand description

Global fields that are relevant to the transaction as a whole.

Implementations§

Source§

impl Global

Source

pub fn tx_version(&self) -> &u32

Source

pub fn version_group_id(&self) -> &u32

Source

pub fn consensus_branch_id(&self) -> &u32

The consensus branch ID for the chain in which this transaction will be mined.

Non-optional because this commits to the set of consensus rules that will apply to the transaction; differences therein can affect every role.

diff --git a/rustdoc/latest/pczt/common/trait.LockTimeInput.html b/rustdoc/latest/pczt/common/trait.LockTimeInput.html index 7d16d93ab..9ea159f06 100644 --- a/rustdoc/latest/pczt/common/trait.LockTimeInput.html +++ b/rustdoc/latest/pczt/common/trait.LockTimeInput.html @@ -1,4 +1,4 @@ -LockTimeInput in pczt::common - Rust

Trait LockTimeInput

Source
pub trait LockTimeInput {
+LockTimeInput in pczt::common - Rust

Trait LockTimeInput

Source
pub trait LockTimeInput {
     // Required methods
     fn required_time_lock_time(&self) -> Option<u32>;
     fn required_height_lock_time(&self) -> Option<u32>;
diff --git a/rustdoc/latest/pczt/enum.ParseError.html b/rustdoc/latest/pczt/enum.ParseError.html
index db93ed6d5..e40458e08 100644
--- a/rustdoc/latest/pczt/enum.ParseError.html
+++ b/rustdoc/latest/pczt/enum.ParseError.html
@@ -1,4 +1,4 @@
-ParseError in pczt - Rust

Enum ParseError

Source
pub enum ParseError {
+ParseError in pczt - Rust

Enum ParseError

Source
pub enum ParseError {
     NotPczt,
     Invalid(Error),
     TooShort,
@@ -8,7 +8,7 @@
 
§

Invalid(Error)

The PCZT encoding was invalid.

§

TooShort

The bytes are too short to contain a PCZT.

§

UnknownVersion(u32)

The PCZT has an unknown version.

-

Trait Implementations§

Source§

impl Debug for ParseError

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where +

Trait Implementations§

Source§

impl Debug for ParseError

Source§

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

Formats the value using the given formatter. Read more

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 diff --git a/rustdoc/latest/pczt/index.html b/rustdoc/latest/pczt/index.html index 7ead547ec..c4a0d2bed 100644 --- a/rustdoc/latest/pczt/index.html +++ b/rustdoc/latest/pczt/index.html @@ -1,4 +1,4 @@ -pczt - Rust

Crate pczt

Source
Expand description

The Partially Created Zcash Transaction (PCZT) format.

+pczt - Rust

Crate pczt

Source
Expand description

The Partially Created Zcash Transaction (PCZT) format.

This format enables splitting up the logical steps of creating a Zcash transaction across distinct entities. The entity roles roughly match those specified in BIP 174: Partially Signed Bitcoin Transaction Format and BIP 370: PSBT Version 2, diff --git a/rustdoc/latest/pczt/orchard/index.html b/rustdoc/latest/pczt/orchard/index.html index 9f2287b91..bc88b65f9 100644 --- a/rustdoc/latest/pczt/orchard/index.html +++ b/rustdoc/latest/pczt/orchard/index.html @@ -1,2 +1,2 @@ -pczt::orchard - Rust

Module orchard

Source
Expand description

The Orchard fields of a PCZT.

+pczt::orchard - Rust

Module orchard

Source
Expand description

The Orchard fields of a PCZT.

Structs§

Action
Information about an Orchard action within a transaction.
Bundle
PCZT fields that are specific to producing the transaction’s Orchard bundle (if any).
Output
Information about the output part of an Orchard action.
Spend
Information about the spend part of an Orchard action.
\ No newline at end of file diff --git a/rustdoc/latest/pczt/orchard/struct.Action.html b/rustdoc/latest/pczt/orchard/struct.Action.html index 6ff82c46f..1786cdc33 100644 --- a/rustdoc/latest/pczt/orchard/struct.Action.html +++ b/rustdoc/latest/pczt/orchard/struct.Action.html @@ -1,4 +1,4 @@ -Action in pczt::orchard - Rust

Struct Action

Source
pub struct Action { /* private fields */ }
Expand description

Information about an Orchard action within a transaction.

+Action in pczt::orchard - Rust

Struct Action

Source
pub struct Action { /* private fields */ }
Expand description

Information about an Orchard action within a transaction.

Implementations§

Source§

impl Action

Source

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

Source

pub fn spend(&self) -> &Spend

Source

pub fn output(&self) -> &Output

Trait Implementations§

Source§

impl Clone for Action

Source§

fn clone(&self) -> Action

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 Action

Source§

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

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

impl<'de> Deserialize<'de> for Action

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 Serialize for Action

Source§

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

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

§

impl Freeze for Action

§

impl RefUnwindSafe for Action

§

impl Send for Action

§

impl Sync for Action

§

impl Unpin for Action

§

impl UnwindSafe for Action

Blanket Implementations§

Source§

impl<T> Any for T
where diff --git a/rustdoc/latest/pczt/orchard/struct.Bundle.html b/rustdoc/latest/pczt/orchard/struct.Bundle.html index 7117facbf..9eb8caf88 100644 --- a/rustdoc/latest/pczt/orchard/struct.Bundle.html +++ b/rustdoc/latest/pczt/orchard/struct.Bundle.html @@ -1,4 +1,4 @@ -Bundle in pczt::orchard - Rust

Struct Bundle

Source
pub struct Bundle { /* private fields */ }
Expand description

PCZT fields that are specific to producing the transaction’s Orchard bundle (if any).

+Bundle in pczt::orchard - Rust

Struct Bundle

Source
pub struct Bundle { /* private fields */ }
Expand description

PCZT fields that are specific to producing the transaction’s Orchard bundle (if any).

Implementations§

Source§

impl Bundle

Source

pub fn actions(&self) -> &Vec<Action>

The Orchard actions in this bundle.

Entries are added by the Constructor, and modified by an Updater, IO Finalizer, Signer, Combiner, or Spend Finalizer.

diff --git a/rustdoc/latest/pczt/orchard/struct.Output.html b/rustdoc/latest/pczt/orchard/struct.Output.html index ee3116c02..a274ffeb2 100644 --- a/rustdoc/latest/pczt/orchard/struct.Output.html +++ b/rustdoc/latest/pczt/orchard/struct.Output.html @@ -1,4 +1,4 @@ -Output in pczt::orchard - Rust

Struct Output

Source
pub struct Output { /* private fields */ }
Expand description

Information about the output part of an Orchard action.

+Output in pczt::orchard - Rust

Struct Output

Source
pub struct Output { /* private fields */ }
Expand description

Information about the output part of an Orchard action.

Implementations§

Source§

impl Output

Source

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

Source

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

Source

pub fn enc_ciphertext(&self) -> &Vec<u8>

The encrypted note plaintext for the output.

Encoded as a Vec<u8> because its length depends on the transaction version.

Once we have memo bundles, we will be able to set memos independently of Outputs. diff --git a/rustdoc/latest/pczt/orchard/struct.Spend.html b/rustdoc/latest/pczt/orchard/struct.Spend.html index e316c6b58..41ae90c39 100644 --- a/rustdoc/latest/pczt/orchard/struct.Spend.html +++ b/rustdoc/latest/pczt/orchard/struct.Spend.html @@ -1,4 +1,4 @@ -Spend in pczt::orchard - Rust

Struct Spend

Source
pub struct Spend { /* private fields */ }
Expand description

Information about the spend part of an Orchard action.

+Spend in pczt::orchard - Rust

Struct Spend

Source
pub struct Spend { /* private fields */ }
Expand description

Information about the spend part of an Orchard action.

Implementations§

Source§

impl Spend

Source

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

Source

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

Source

pub fn proprietary(&self) -> &BTreeMap<String, Vec<u8>>

Proprietary fields related to the note being spent.

Trait Implementations§

Source§

impl Clone for Spend

Source§

fn clone(&self) -> Spend

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 Spend

Source§

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

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

impl<'de> Deserialize<'de> for Spend

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 Serialize for Spend

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where diff --git a/rustdoc/latest/pczt/roles/combiner/enum.Error.html b/rustdoc/latest/pczt/roles/combiner/enum.Error.html index 56dee3a7c..e231da002 100644 --- a/rustdoc/latest/pczt/roles/combiner/enum.Error.html +++ b/rustdoc/latest/pczt/roles/combiner/enum.Error.html @@ -1,4 +1,4 @@ -Error in pczt::roles::combiner - Rust

Enum Error

Source
pub enum Error {
+Error in pczt::roles::combiner - Rust

Enum Error

Source
pub enum Error {
     NoPczts,
     DataMismatch,
 }
Expand description

Errors that can occur while combining PCZTs.

diff --git a/rustdoc/latest/pczt/roles/combiner/index.html b/rustdoc/latest/pczt/roles/combiner/index.html index 0643520e9..9191dc68b 100644 --- a/rustdoc/latest/pczt/roles/combiner/index.html +++ b/rustdoc/latest/pczt/roles/combiner/index.html @@ -1,4 +1,4 @@ -pczt::roles::combiner - Rust

Module combiner

Source
Expand description

The Combiner role (anyone can execute).

+pczt::roles::combiner - Rust

Module combiner

Source
Expand description

The Combiner role (anyone can execute).

  • Combines several PCZTs that represent the same transaction into a single PCZT.
diff --git a/rustdoc/latest/pczt/roles/combiner/struct.Combiner.html b/rustdoc/latest/pczt/roles/combiner/struct.Combiner.html index 5fc2e832b..3e3048292 100644 --- a/rustdoc/latest/pczt/roles/combiner/struct.Combiner.html +++ b/rustdoc/latest/pczt/roles/combiner/struct.Combiner.html @@ -1,4 +1,4 @@ -Combiner in pczt::roles::combiner - Rust

Struct Combiner

Source
pub struct Combiner { /* private fields */ }

Implementations§

Source§

impl Combiner

Source

pub fn new(pczts: Vec<Pczt>) -> Self

Instantiates the Combiner role with the given PCZTs.

+Combiner in pczt::roles::combiner - Rust

Struct Combiner

Source
pub struct Combiner { /* private fields */ }

Implementations§

Source§

impl Combiner

Source

pub fn new(pczts: Vec<Pczt>) -> Self

Instantiates the Combiner role with the given PCZTs.

Source

pub fn combine(self) -> Result<Pczt, Error>

Combines the PCZTs.

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 diff --git a/rustdoc/latest/pczt/roles/creator/index.html b/rustdoc/latest/pczt/roles/creator/index.html index 6e10cdc5d..aac31a81d 100644 --- a/rustdoc/latest/pczt/roles/creator/index.html +++ b/rustdoc/latest/pczt/roles/creator/index.html @@ -1,4 +1,4 @@ -pczt::roles::creator - Rust

Module creator

Source
Expand description

The Creator role (single entity).

+pczt::roles::creator - Rust

Module creator

Source
Expand description

The Creator role (single entity).

  • Creates the base PCZT with no information about spends or outputs.
diff --git a/rustdoc/latest/pczt/roles/creator/struct.Creator.html b/rustdoc/latest/pczt/roles/creator/struct.Creator.html index ceac2d7c7..8095ec359 100644 --- a/rustdoc/latest/pczt/roles/creator/struct.Creator.html +++ b/rustdoc/latest/pczt/roles/creator/struct.Creator.html @@ -1,10 +1,10 @@ -Creator in pczt::roles::creator - Rust

Struct Creator

Source
pub struct Creator { /* private fields */ }

Implementations§

Source§

impl Creator

Source

pub fn new( +Creator in pczt::roles::creator - Rust

Struct Creator

Source
pub struct Creator { /* private fields */ }

Implementations§

Source§

impl Creator

Source

pub fn new( consensus_branch_id: u32, expiry_height: u32, coin_type: u32, sapling_anchor: [u8; 32], orchard_anchor: [u8; 32], -) -> Self

Source

pub fn with_fallback_lock_time(self, fallback: u32) -> Self

Source

pub fn with_orchard_flags(self, orchard_flags: Flags) -> Self

Available on crate feature orchard only.
Source

pub fn build(self) -> Pczt

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where +) -> Self

Source

pub fn with_fallback_lock_time(self, fallback: u32) -> Self

Source

pub fn with_orchard_flags(self, orchard_flags: Flags) -> Self

Available on crate feature orchard only.
Source

pub fn build(self) -> Pczt

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 diff --git a/rustdoc/latest/pczt/roles/index.html b/rustdoc/latest/pczt/roles/index.html index e489df9cf..376875224 100644 --- a/rustdoc/latest/pczt/roles/index.html +++ b/rustdoc/latest/pczt/roles/index.html @@ -1,4 +1,4 @@ -pczt::roles - Rust

Module roles

Source
Expand description

Implementations of the PCZT roles.

+pczt::roles - Rust

Module roles

Source
Expand description

Implementations of the PCZT roles.

The roles currently without an implementation are:

  • Constructor (anyone can contribute) diff --git a/rustdoc/latest/pczt/roles/low_level_signer/index.html b/rustdoc/latest/pczt/roles/low_level_signer/index.html index fc49f6bc3..6b06163ca 100644 --- a/rustdoc/latest/pczt/roles/low_level_signer/index.html +++ b/rustdoc/latest/pczt/roles/low_level_signer/index.html @@ -1,2 +1,2 @@ -pczt::roles::low_level_signer - Rust

    Module low_level_signer

    Source
    Expand description

    A low-level variant of the Signer role, for dependency-constrained environments.

    +pczt::roles::low_level_signer - Rust

    Module low_level_signer

    Source
    Expand description

    A low-level variant of the Signer role, for dependency-constrained environments.

    Structs§

    Signer
    \ No newline at end of file diff --git a/rustdoc/latest/pczt/roles/low_level_signer/struct.Signer.html b/rustdoc/latest/pczt/roles/low_level_signer/struct.Signer.html index b82bc9e0f..bc534485d 100644 --- a/rustdoc/latest/pczt/roles/low_level_signer/struct.Signer.html +++ b/rustdoc/latest/pczt/roles/low_level_signer/struct.Signer.html @@ -1,4 +1,4 @@ -Signer in pczt::roles::low_level_signer - Rust

    Struct Signer

    Source
    pub struct Signer { /* private fields */ }

    Implementations§

    Source§

    impl Signer

    Source

    pub fn new(pczt: Pczt) -> Self

    Instantiates the low-level Signer role with the given PCZT.

    +Signer in pczt::roles::low_level_signer - Rust

    Struct Signer

    Source
    pub struct Signer { /* private fields */ }

    Implementations§

    Source§

    impl Signer

    Source

    pub fn new(pczt: Pczt) -> Self

    Instantiates the low-level Signer role with the given PCZT.

    Source

    pub fn sign_orchard_with<E, F>(self, f: F) -> Result<Self, E>
    where E: From<ParseError>, F: FnOnce(&Pczt, &mut Bundle, &mut u8) -> Result<(), E>,

    Available on crate feature orchard only.

    Exposes the capability to sign the Orchard spends.

    diff --git a/rustdoc/latest/pczt/roles/redactor/index.html b/rustdoc/latest/pczt/roles/redactor/index.html index 0b284eed2..b413d496b 100644 --- a/rustdoc/latest/pczt/roles/redactor/index.html +++ b/rustdoc/latest/pczt/roles/redactor/index.html @@ -1,4 +1,4 @@ -pczt::roles::redactor - Rust

    Module redactor

    Source
    Expand description

    The Redactor role (anyone can execute).

    +pczt::roles::redactor - Rust

    Module redactor

    Source
    Expand description

    The Redactor role (anyone can execute).

    • Removes information that is unnecessary for subsequent entities to proceed.
    • This can be useful e.g. when creating a transaction that has inputs from multiple diff --git a/rustdoc/latest/pczt/roles/redactor/orchard/index.html b/rustdoc/latest/pczt/roles/redactor/orchard/index.html index 78c414744..117efc549 100644 --- a/rustdoc/latest/pczt/roles/redactor/orchard/index.html +++ b/rustdoc/latest/pczt/roles/redactor/orchard/index.html @@ -1 +1 @@ -pczt::roles::redactor::orchard - Rust

      Module orchard

      Source

      Structs§

      ActionRedactor
      A Redactor for Orchard actions.
      OrchardRedactor
      A Redactor for the Orchard bundle.
      \ No newline at end of file +pczt::roles::redactor::orchard - Rust

      Module orchard

      Source

      Structs§

      ActionRedactor
      A Redactor for Orchard actions.
      OrchardRedactor
      A Redactor for the Orchard bundle.
      \ No newline at end of file diff --git a/rustdoc/latest/pczt/roles/redactor/orchard/struct.ActionRedactor.html b/rustdoc/latest/pczt/roles/redactor/orchard/struct.ActionRedactor.html index ea1971574..49fa06a4b 100644 --- a/rustdoc/latest/pczt/roles/redactor/orchard/struct.ActionRedactor.html +++ b/rustdoc/latest/pczt/roles/redactor/orchard/struct.ActionRedactor.html @@ -1,4 +1,4 @@ -ActionRedactor in pczt::roles::redactor::orchard - Rust

      Struct ActionRedactor

      Source
      pub struct ActionRedactor<'a>(/* private fields */);
      Expand description

      A Redactor for Orchard actions.

      +ActionRedactor in pczt::roles::redactor::orchard - Rust

      Struct ActionRedactor

      Source
      pub struct ActionRedactor<'a>(/* private fields */);
      Expand description

      A Redactor for Orchard actions.

      Implementations§

      Source§

      impl ActionRedactor<'_>

      Source

      pub fn clear_spend_auth_sig(&mut self)

      Removes the spend authorizing signature.

      Source

      pub fn clear_spend_recipient(&mut self)

      Removes the spend’s recipient.

      Source

      pub fn clear_spend_value(&mut self)

      Removes the spend’s value.

      diff --git a/rustdoc/latest/pczt/roles/redactor/orchard/struct.OrchardRedactor.html b/rustdoc/latest/pczt/roles/redactor/orchard/struct.OrchardRedactor.html index 155ea6112..b0c24291a 100644 --- a/rustdoc/latest/pczt/roles/redactor/orchard/struct.OrchardRedactor.html +++ b/rustdoc/latest/pczt/roles/redactor/orchard/struct.OrchardRedactor.html @@ -1,4 +1,4 @@ -OrchardRedactor in pczt::roles::redactor::orchard - Rust

      Struct OrchardRedactor

      Source
      pub struct OrchardRedactor<'a>(/* private fields */);
      Expand description

      A Redactor for the Orchard bundle.

      +OrchardRedactor in pczt::roles::redactor::orchard - Rust

      Struct OrchardRedactor

      Source
      pub struct OrchardRedactor<'a>(/* private fields */);
      Expand description

      A Redactor for the Orchard bundle.

      Implementations§

      Source§

      impl OrchardRedactor<'_>

      Source

      pub fn redact_actions<F>(&mut self, f: F)
      where F: FnOnce(ActionRedactor<'_>),

      Redacts all actions in the same way.

      Source

      pub fn redact_action<F>(&mut self, index: usize, f: F)
      where diff --git a/rustdoc/latest/pczt/roles/redactor/sapling/index.html b/rustdoc/latest/pczt/roles/redactor/sapling/index.html index 40d390433..9994dc51a 100644 --- a/rustdoc/latest/pczt/roles/redactor/sapling/index.html +++ b/rustdoc/latest/pczt/roles/redactor/sapling/index.html @@ -1 +1 @@ -pczt::roles::redactor::sapling - Rust

      Module sapling

      Source

      Structs§

      OutputRedactor
      A Redactor for Sapling outputs.
      SaplingRedactor
      A Redactor for the Sapling bundle.
      SpendRedactor
      A Redactor for Sapling spends.
      \ No newline at end of file +pczt::roles::redactor::sapling - Rust

      Module sapling

      Source

      Structs§

      OutputRedactor
      A Redactor for Sapling outputs.
      SaplingRedactor
      A Redactor for the Sapling bundle.
      SpendRedactor
      A Redactor for Sapling spends.
      \ No newline at end of file diff --git a/rustdoc/latest/pczt/roles/redactor/sapling/struct.OutputRedactor.html b/rustdoc/latest/pczt/roles/redactor/sapling/struct.OutputRedactor.html index ff43cbbc4..ca3015d0e 100644 --- a/rustdoc/latest/pczt/roles/redactor/sapling/struct.OutputRedactor.html +++ b/rustdoc/latest/pczt/roles/redactor/sapling/struct.OutputRedactor.html @@ -1,4 +1,4 @@ -OutputRedactor in pczt::roles::redactor::sapling - Rust

      Struct OutputRedactor

      Source
      pub struct OutputRedactor<'a>(/* private fields */);
      Expand description

      A Redactor for Sapling outputs.

      +OutputRedactor in pczt::roles::redactor::sapling - Rust

      Struct OutputRedactor

      Source
      pub struct OutputRedactor<'a>(/* private fields */);
      Expand description

      A Redactor for Sapling outputs.

      Implementations§

      Source§

      impl OutputRedactor<'_>

      Source

      pub fn clear_zkproof(&mut self)

      Removes the proof.

      Source

      pub fn clear_recipient(&mut self)

      Removes the recipient.

      Source

      pub fn clear_value(&mut self)

      Removes the value.

      diff --git a/rustdoc/latest/pczt/roles/redactor/sapling/struct.SaplingRedactor.html b/rustdoc/latest/pczt/roles/redactor/sapling/struct.SaplingRedactor.html index 1bdc2fe99..8859b0bee 100644 --- a/rustdoc/latest/pczt/roles/redactor/sapling/struct.SaplingRedactor.html +++ b/rustdoc/latest/pczt/roles/redactor/sapling/struct.SaplingRedactor.html @@ -1,4 +1,4 @@ -SaplingRedactor in pczt::roles::redactor::sapling - Rust

      Struct SaplingRedactor

      Source
      pub struct SaplingRedactor<'a>(/* private fields */);
      Expand description

      A Redactor for the Sapling bundle.

      +SaplingRedactor in pczt::roles::redactor::sapling - Rust

      Struct SaplingRedactor

      Source
      pub struct SaplingRedactor<'a>(/* private fields */);
      Expand description

      A Redactor for the Sapling bundle.

      Implementations§

      Source§

      impl SaplingRedactor<'_>

      Source

      pub fn redact_spends<F>(&mut self, f: F)
      where F: FnOnce(SpendRedactor<'_>),

      Redacts all spends in the same way.

      Source

      pub fn redact_spend<F>(&mut self, index: usize, f: F)
      where diff --git a/rustdoc/latest/pczt/roles/redactor/sapling/struct.SpendRedactor.html b/rustdoc/latest/pczt/roles/redactor/sapling/struct.SpendRedactor.html index b481b051e..2be01b086 100644 --- a/rustdoc/latest/pczt/roles/redactor/sapling/struct.SpendRedactor.html +++ b/rustdoc/latest/pczt/roles/redactor/sapling/struct.SpendRedactor.html @@ -1,4 +1,4 @@ -SpendRedactor in pczt::roles::redactor::sapling - Rust

      Struct SpendRedactor

      Source
      pub struct SpendRedactor<'a>(/* private fields */);
      Expand description

      A Redactor for Sapling spends.

      +SpendRedactor in pczt::roles::redactor::sapling - Rust

      Struct SpendRedactor

      Source
      pub struct SpendRedactor<'a>(/* private fields */);
      Expand description

      A Redactor for Sapling spends.

      Implementations§

      Source§

      impl SpendRedactor<'_>

      Source

      pub fn clear_zkproof(&mut self)

      Removes the proof.

      Source

      pub fn clear_spend_auth_sig(&mut self)

      Removes the spend authorizing signature.

      Source

      pub fn clear_recipient(&mut self)

      Removes the recipient.

      diff --git a/rustdoc/latest/pczt/roles/redactor/struct.GlobalRedactor.html b/rustdoc/latest/pczt/roles/redactor/struct.GlobalRedactor.html index 4166d4577..85966b023 100644 --- a/rustdoc/latest/pczt/roles/redactor/struct.GlobalRedactor.html +++ b/rustdoc/latest/pczt/roles/redactor/struct.GlobalRedactor.html @@ -1,4 +1,4 @@ -GlobalRedactor in pczt::roles::redactor - Rust

      Struct GlobalRedactor

      Source
      pub struct GlobalRedactor<'a>(/* private fields */);
      Expand description

      An Redactor for the global transaction details.

      +GlobalRedactor in pczt::roles::redactor - Rust

      Struct GlobalRedactor

      Source
      pub struct GlobalRedactor<'a>(/* private fields */);
      Expand description

      An Redactor for the global transaction details.

      Implementations§

      Source§

      impl GlobalRedactor<'_>

      Source

      pub fn redact_proprietary(&mut self, key: &str)

      Redacts the proprietary value at the given key.

      Source

      pub fn clear_proprietary(&mut self)

      Removes all proprietary values.

      Auto Trait Implementations§

      §

      impl<'a> Freeze for GlobalRedactor<'a>

      §

      impl<'a> RefUnwindSafe for GlobalRedactor<'a>

      §

      impl<'a> Send for GlobalRedactor<'a>

      §

      impl<'a> Sync for GlobalRedactor<'a>

      §

      impl<'a> Unpin for GlobalRedactor<'a>

      §

      impl<'a> !UnwindSafe for GlobalRedactor<'a>

      Blanket Implementations§

      Source§

      impl<T> Any for T
      where diff --git a/rustdoc/latest/pczt/roles/redactor/struct.Redactor.html b/rustdoc/latest/pczt/roles/redactor/struct.Redactor.html index f58845009..6191e480a 100644 --- a/rustdoc/latest/pczt/roles/redactor/struct.Redactor.html +++ b/rustdoc/latest/pczt/roles/redactor/struct.Redactor.html @@ -1,4 +1,4 @@ -Redactor in pczt::roles::redactor - Rust

      Struct Redactor

      Source
      pub struct Redactor { /* private fields */ }

      Implementations§

      Source§

      impl Redactor

      Source

      pub fn redact_orchard_with<F>(self, f: F) -> Self
      where +Redactor in pczt::roles::redactor - Rust

      Struct Redactor

      Source
      pub struct Redactor { /* private fields */ }

      Implementations§

      Source§

      impl Redactor

      Source

      pub fn redact_orchard_with<F>(self, f: F) -> Self
      where F: FnOnce(OrchardRedactor<'_>),

      Redacts the Orchard bundle with the given closure.

      Source§

      impl Redactor

      Source

      pub fn redact_sapling_with<F>(self, f: F) -> Self
      where F: FnOnce(SaplingRedactor<'_>),

      Redacts the Sapling bundle with the given closure.

      diff --git a/rustdoc/latest/pczt/roles/redactor/transparent/index.html b/rustdoc/latest/pczt/roles/redactor/transparent/index.html index df3a67ddc..d2f2c5f73 100644 --- a/rustdoc/latest/pczt/roles/redactor/transparent/index.html +++ b/rustdoc/latest/pczt/roles/redactor/transparent/index.html @@ -1 +1 @@ -pczt::roles::redactor::transparent - Rust

      Module transparent

      Source

      Structs§

      InputRedactor
      A Redactor for transparent inputs.
      OutputRedactor
      A Redactor for transparent outputs.
      TransparentRedactor
      A Redactor for the transparent bundle.
      \ No newline at end of file +pczt::roles::redactor::transparent - Rust

      Module transparent

      Source

      Structs§

      InputRedactor
      A Redactor for transparent inputs.
      OutputRedactor
      A Redactor for transparent outputs.
      TransparentRedactor
      A Redactor for the transparent bundle.
      \ No newline at end of file diff --git a/rustdoc/latest/pczt/roles/redactor/transparent/struct.InputRedactor.html b/rustdoc/latest/pczt/roles/redactor/transparent/struct.InputRedactor.html index 2080c171b..d5f4766c9 100644 --- a/rustdoc/latest/pczt/roles/redactor/transparent/struct.InputRedactor.html +++ b/rustdoc/latest/pczt/roles/redactor/transparent/struct.InputRedactor.html @@ -1,4 +1,4 @@ -InputRedactor in pczt::roles::redactor::transparent - Rust

      Struct InputRedactor

      Source
      pub struct InputRedactor<'a>(/* private fields */);
      Expand description

      A Redactor for transparent inputs.

      +InputRedactor in pczt::roles::redactor::transparent - Rust

      Struct InputRedactor

      Source
      pub struct InputRedactor<'a>(/* private fields */);
      Expand description

      A Redactor for transparent inputs.

      Implementations§

      Source§

      impl InputRedactor<'_>

      Source

      pub fn clear_script_sig(&mut self)

      Removes the script_sig.

      Source

      pub fn clear_redeem_script(&mut self)

      Removes the redeem_script.

      Source

      pub fn redact_partial_signature(&mut self, pubkey: [u8; 33])

      Redacts the signature for the given pubkey.

      diff --git a/rustdoc/latest/pczt/roles/redactor/transparent/struct.OutputRedactor.html b/rustdoc/latest/pczt/roles/redactor/transparent/struct.OutputRedactor.html index 1139118a0..852db9978 100644 --- a/rustdoc/latest/pczt/roles/redactor/transparent/struct.OutputRedactor.html +++ b/rustdoc/latest/pczt/roles/redactor/transparent/struct.OutputRedactor.html @@ -1,4 +1,4 @@ -OutputRedactor in pczt::roles::redactor::transparent - Rust

      Struct OutputRedactor

      Source
      pub struct OutputRedactor<'a>(/* private fields */);
      Expand description

      A Redactor for transparent outputs.

      +OutputRedactor in pczt::roles::redactor::transparent - Rust

      Struct OutputRedactor

      Source
      pub struct OutputRedactor<'a>(/* private fields */);
      Expand description

      A Redactor for transparent outputs.

      Implementations§

      Source§

      impl OutputRedactor<'_>

      Source

      pub fn clear_redeem_script(&mut self)

      Removes the redeem_script.

      Source

      pub fn redact_bip32_derivation(&mut self, pubkey: [u8; 33])

      Redacts the BIP 32 derivation path for the given pubkey.

      Source

      pub fn clear_bip32_derivation(&mut self)

      Removes all BIP 32 derivation paths.

      diff --git a/rustdoc/latest/pczt/roles/redactor/transparent/struct.TransparentRedactor.html b/rustdoc/latest/pczt/roles/redactor/transparent/struct.TransparentRedactor.html index 76874f5f8..fea741801 100644 --- a/rustdoc/latest/pczt/roles/redactor/transparent/struct.TransparentRedactor.html +++ b/rustdoc/latest/pczt/roles/redactor/transparent/struct.TransparentRedactor.html @@ -1,4 +1,4 @@ -TransparentRedactor in pczt::roles::redactor::transparent - Rust

      Struct TransparentRedactor

      Source
      pub struct TransparentRedactor<'a>(/* private fields */);
      Expand description

      A Redactor for the transparent bundle.

      +TransparentRedactor in pczt::roles::redactor::transparent - Rust

      Struct TransparentRedactor

      Source
      pub struct TransparentRedactor<'a>(/* private fields */);
      Expand description

      A Redactor for the transparent bundle.

      Implementations§

      Source§

      impl TransparentRedactor<'_>

      Source

      pub fn redact_inputs<F>(&mut self, f: F)
      where F: FnOnce(InputRedactor<'_>),

      Redacts all inputs in the same way.

      Source

      pub fn redact_input<F>(&mut self, index: usize, f: F)
      where diff --git a/rustdoc/latest/pczt/roles/updater/enum.OrchardError.html b/rustdoc/latest/pczt/roles/updater/enum.OrchardError.html index 1e91d2e8d..4c6fb8f4c 100644 --- a/rustdoc/latest/pczt/roles/updater/enum.OrchardError.html +++ b/rustdoc/latest/pczt/roles/updater/enum.OrchardError.html @@ -1,4 +1,4 @@ -OrchardError in pczt::roles::updater - Rust

      Enum OrchardError

      Source
      pub enum OrchardError {
      +OrchardError in pczt::roles::updater - Rust

      Enum OrchardError

      Source
      pub enum OrchardError {
           Parser(ParseError),
           Updater(UpdaterError),
       }
      Available on crate feature orchard only.
      Expand description

      Errors that can occur while updating the Orchard bundle of a PCZT.

      diff --git a/rustdoc/latest/pczt/roles/updater/index.html b/rustdoc/latest/pczt/roles/updater/index.html index 439bf3092..8a3288337 100644 --- a/rustdoc/latest/pczt/roles/updater/index.html +++ b/rustdoc/latest/pczt/roles/updater/index.html @@ -1,4 +1,4 @@ -pczt::roles::updater - Rust

      Module updater

      Source
      Expand description

      The Updater role (anyone can contribute).

      +pczt::roles::updater - Rust

      Module updater

      Source
      Expand description

      The Updater role (anyone can contribute).

      • Adds information necessary for subsequent entities to proceed, such as key paths for signing spends.
      • diff --git a/rustdoc/latest/pczt/roles/updater/struct.GlobalUpdater.html b/rustdoc/latest/pczt/roles/updater/struct.GlobalUpdater.html index 1918650c4..b7781f2b0 100644 --- a/rustdoc/latest/pczt/roles/updater/struct.GlobalUpdater.html +++ b/rustdoc/latest/pczt/roles/updater/struct.GlobalUpdater.html @@ -1,4 +1,4 @@ -GlobalUpdater in pczt::roles::updater - Rust

        Struct GlobalUpdater

        Source
        pub struct GlobalUpdater<'a>(/* private fields */);
        Expand description

        An updater for a transparent PCZT output.

        +GlobalUpdater in pczt::roles::updater - Rust

        Struct GlobalUpdater

        Source
        pub struct GlobalUpdater<'a>(/* private fields */);
        Expand description

        An updater for a transparent PCZT output.

        Implementations§

        Source§

        impl GlobalUpdater<'_>

        Source

        pub fn set_proprietary(&mut self, key: String, value: Vec<u8>)

        Stores the given proprietary value at the given key.

        Auto Trait Implementations§

        §

        impl<'a> Freeze for GlobalUpdater<'a>

        §

        impl<'a> RefUnwindSafe for GlobalUpdater<'a>

        §

        impl<'a> Send for GlobalUpdater<'a>

        §

        impl<'a> Sync for GlobalUpdater<'a>

        §

        impl<'a> Unpin for GlobalUpdater<'a>

        §

        impl<'a> !UnwindSafe for GlobalUpdater<'a>

        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 diff --git a/rustdoc/latest/pczt/roles/updater/struct.Updater.html b/rustdoc/latest/pczt/roles/updater/struct.Updater.html index 7cbe9c64a..bba9061f5 100644 --- a/rustdoc/latest/pczt/roles/updater/struct.Updater.html +++ b/rustdoc/latest/pczt/roles/updater/struct.Updater.html @@ -1,4 +1,4 @@ -Updater in pczt::roles::updater - Rust

        Struct Updater

        Source
        pub struct Updater { /* private fields */ }

        Implementations§

        Source§

        impl Updater

        Source

        pub fn update_orchard_with<F>(self, f: F) -> Result<Self, OrchardError>
        where +Updater in pczt::roles::updater - Rust

        Struct Updater

        Source
        pub struct Updater { /* private fields */ }

        Implementations§

        Source§

        impl Updater

        Source

        pub fn update_orchard_with<F>(self, f: F) -> Result<Self, OrchardError>
        where F: FnOnce(Updater<'_>) -> Result<(), UpdaterError>,

        Available on crate feature orchard only.

        Updates the Orchard bundle with information in the given closure.

        Source§

        impl Updater

        Source

        pub fn new(pczt: Pczt) -> Self

        Instantiates the Updater role with the given PCZT.

        Source

        pub fn update_global_with<F>(self, f: F) -> Self
        where diff --git a/rustdoc/latest/pczt/roles/verifier/enum.OrchardError.html b/rustdoc/latest/pczt/roles/verifier/enum.OrchardError.html index 940a8ce64..e438427a4 100644 --- a/rustdoc/latest/pczt/roles/verifier/enum.OrchardError.html +++ b/rustdoc/latest/pczt/roles/verifier/enum.OrchardError.html @@ -1,4 +1,4 @@ -OrchardError in pczt::roles::verifier - Rust

        Enum OrchardError

        Source
        pub enum OrchardError<E> {
        +OrchardError in pczt::roles::verifier - Rust

        Enum OrchardError

        Source
        pub enum OrchardError<E> {
             Parse(ParseError),
             Verify(VerifyError),
             Custom(E),
        diff --git a/rustdoc/latest/pczt/roles/verifier/index.html b/rustdoc/latest/pczt/roles/verifier/index.html
        index a4dab9277..f0fede8a3 100644
        --- a/rustdoc/latest/pczt/roles/verifier/index.html
        +++ b/rustdoc/latest/pczt/roles/verifier/index.html
        @@ -1,4 +1,4 @@
        -pczt::roles::verifier - Rust

        Module verifier

        Source
        Expand description

        The Verifier role (anyone can inspect).

        +pczt::roles::verifier - Rust

        Module verifier

        Source
        Expand description

        The Verifier role (anyone can inspect).

        This isn’t a real role per se; it’s instead a way for accessing the parsed protocol-specific bundles for individual access and verification.

        Structs§

        Verifier

        Enums§

        OrchardErrororchard
        Errors that can occur while verifying the Orchard bundle of a PCZT.
        \ No newline at end of file diff --git a/rustdoc/latest/pczt/roles/verifier/struct.Verifier.html b/rustdoc/latest/pczt/roles/verifier/struct.Verifier.html index 0c3bc7484..3ce463cfe 100644 --- a/rustdoc/latest/pczt/roles/verifier/struct.Verifier.html +++ b/rustdoc/latest/pczt/roles/verifier/struct.Verifier.html @@ -1,4 +1,4 @@ -Verifier in pczt::roles::verifier - Rust

        Struct Verifier

        Source
        pub struct Verifier { /* private fields */ }

        Implementations§

        Source§

        impl Verifier

        Source

        pub fn with_orchard<E, F>(self, f: F) -> Result<Self, OrchardError<E>>
        where +Verifier in pczt::roles::verifier - Rust

        Struct Verifier

        Source
        pub struct Verifier { /* private fields */ }

        Implementations§

        Source§

        impl Verifier

        Source

        pub fn with_orchard<E, F>(self, f: F) -> Result<Self, OrchardError<E>>
        where F: FnOnce(&Bundle) -> Result<(), OrchardError<E>>,

        Available on crate feature orchard only.

        Parses the Orchard bundle and then verifies it in the given closure.

        Source§

        impl Verifier

        Source

        pub fn new(pczt: Pczt) -> Self

        Instantiates the Verifier role with the given PCZT.

        Source

        pub fn finish(self) -> Pczt

        Finishes the Verifier role, returning the updated PCZT.

        diff --git a/rustdoc/latest/pczt/sapling/index.html b/rustdoc/latest/pczt/sapling/index.html index cf5ff1e92..261f9137b 100644 --- a/rustdoc/latest/pczt/sapling/index.html +++ b/rustdoc/latest/pczt/sapling/index.html @@ -1,2 +1,2 @@ -pczt::sapling - Rust

        Module sapling

        Source
        Expand description

        The Sapling fields of a PCZT.

        +pczt::sapling - Rust

        Module sapling

        Source
        Expand description

        The Sapling fields of a PCZT.

        Structs§

        Bundle
        PCZT fields that are specific to producing the transaction’s Sapling bundle (if any).
        Output
        Information about a Sapling output within a transaction.
        Spend
        Information about a Sapling spend within a transaction.
        \ No newline at end of file diff --git a/rustdoc/latest/pczt/sapling/struct.Bundle.html b/rustdoc/latest/pczt/sapling/struct.Bundle.html index efd6ec599..f0ef613ab 100644 --- a/rustdoc/latest/pczt/sapling/struct.Bundle.html +++ b/rustdoc/latest/pczt/sapling/struct.Bundle.html @@ -1,4 +1,4 @@ -Bundle in pczt::sapling - Rust

        Struct Bundle

        Source
        pub struct Bundle { /* private fields */ }
        Expand description

        PCZT fields that are specific to producing the transaction’s Sapling bundle (if any).

        +Bundle in pczt::sapling - Rust

        Struct Bundle

        Source
        pub struct Bundle { /* private fields */ }
        Expand description

        PCZT fields that are specific to producing the transaction’s Sapling bundle (if any).

        Implementations§

        Source§

        impl Bundle

        Source

        pub fn spends(&self) -> &Vec<Spend>

        Source

        pub fn outputs(&self) -> &Vec<Output>

        Source

        pub fn value_sum(&self) -> &i128

        The net value of Sapling spends minus outputs.

        This is initialized by the Creator, and updated by the Constructor as spends or outputs are added to the PCZT. It enables per-spend and per-output values to be diff --git a/rustdoc/latest/pczt/sapling/struct.Output.html b/rustdoc/latest/pczt/sapling/struct.Output.html index 09139afef..7a3cbb6c9 100644 --- a/rustdoc/latest/pczt/sapling/struct.Output.html +++ b/rustdoc/latest/pczt/sapling/struct.Output.html @@ -1,4 +1,4 @@ -Output in pczt::sapling - Rust

        Struct Output

        Source
        pub struct Output { /* private fields */ }
        Expand description

        Information about a Sapling output within a transaction.

        +Output in pczt::sapling - Rust

        Struct Output

        Source
        pub struct Output { /* private fields */ }
        Expand description

        Information about a Sapling output within a transaction.

        Implementations§

        Source§

        impl Output

        Source

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

        Source

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

        Source

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

        Source

        pub fn enc_ciphertext(&self) -> &Vec<u8>

        The encrypted note plaintext for the output.

        Encoded as a Vec<u8> because its length depends on the transaction version.

        Once we have memo bundles, we will be able to set memos independently of diff --git a/rustdoc/latest/pczt/sapling/struct.Spend.html b/rustdoc/latest/pczt/sapling/struct.Spend.html index f6d33ad4d..d97df9eba 100644 --- a/rustdoc/latest/pczt/sapling/struct.Spend.html +++ b/rustdoc/latest/pczt/sapling/struct.Spend.html @@ -1,4 +1,4 @@ -Spend in pczt::sapling - Rust

        Struct Spend

        Source
        pub struct Spend { /* private fields */ }
        Expand description

        Information about a Sapling spend within a transaction.

        +Spend in pczt::sapling - Rust

        Struct Spend

        Source
        pub struct Spend { /* private fields */ }
        Expand description

        Information about a Sapling spend within a transaction.

        Implementations§

        Source§

        impl Spend

        Source

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

        Source

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

        Source

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

        Source

        pub fn proprietary(&self) -> &BTreeMap<String, Vec<u8>>

        Proprietary fields related to the note being spent.

        Trait Implementations§

        Source§

        impl Clone for Spend

        Source§

        fn clone(&self) -> Spend

        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 Spend

        Source§

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

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

        impl<'de> Deserialize<'de> for Spend

        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 Serialize for Spend

        Source§

        fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
        where diff --git a/rustdoc/latest/pczt/struct.Pczt.html b/rustdoc/latest/pczt/struct.Pczt.html index fbe76d986..ea30ef9ee 100644 --- a/rustdoc/latest/pczt/struct.Pczt.html +++ b/rustdoc/latest/pczt/struct.Pczt.html @@ -1,9 +1,9 @@ -Pczt in pczt - Rust

        Struct Pczt

        Source
        pub struct Pczt { /* private fields */ }
        Expand description

        A partially-created Zcash transaction.

        -

        Implementations§

        Source§

        impl Pczt

        Source

        pub fn global(&self) -> &Global

        Global fields that are relevant to the transaction as a whole.

        -
        Source

        pub fn transparent(&self) -> &Bundle

        Source

        pub fn sapling(&self) -> &Bundle

        Source

        pub fn orchard(&self) -> &Bundle

        Source§

        impl Pczt

        Source

        pub fn parse(bytes: &[u8]) -> Result<Self, ParseError>

        Parses a PCZT from its encoding.

        -
        Source

        pub fn serialize(&self) -> Vec<u8>

        Serializes this PCZT.

        -

        Trait Implementations§

        Source§

        impl Clone for Pczt

        Source§

        fn clone(&self) -> Pczt

        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 Pczt

        Source§

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

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

        impl<'de> Deserialize<'de> for Pczt

        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 Serialize for Pczt

        Source§

        fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
        where +Pczt in pczt - Rust

        Struct Pczt

        Source
        pub struct Pczt { /* private fields */ }
        Expand description

        A partially-created Zcash transaction.

        +

        Implementations§

        Source§

        impl Pczt

        Source

        pub fn global(&self) -> &Global

        Global fields that are relevant to the transaction as a whole.

        +
        Source

        pub fn transparent(&self) -> &Bundle

        Source

        pub fn sapling(&self) -> &Bundle

        Source

        pub fn orchard(&self) -> &Bundle

        Source§

        impl Pczt

        Source

        pub fn parse(bytes: &[u8]) -> Result<Self, ParseError>

        Parses a PCZT from its encoding.

        +
        Source

        pub fn serialize(&self) -> Vec<u8>

        Serializes this PCZT.

        +

        Trait Implementations§

        Source§

        impl Clone for Pczt

        Source§

        fn clone(&self) -> Pczt

        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 Pczt

        Source§

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

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

        impl<'de> Deserialize<'de> for Pczt

        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 Serialize for Pczt

        Source§

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

        Serialize this value into the given Serde serializer. Read more

        Auto Trait Implementations§

        §

        impl Freeze for Pczt

        §

        impl RefUnwindSafe for Pczt

        §

        impl Send for Pczt

        §

        impl Sync for Pczt

        §

        impl Unpin for Pczt

        §

        impl UnwindSafe for Pczt

        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 diff --git a/rustdoc/latest/pczt/transparent/index.html b/rustdoc/latest/pczt/transparent/index.html index b732f76de..c2ec861ee 100644 --- a/rustdoc/latest/pczt/transparent/index.html +++ b/rustdoc/latest/pczt/transparent/index.html @@ -1,3 +1,3 @@ -pczt::transparent - Rust

        Module transparent

        Source
        Expand description

        The transparent fields of a PCZT.

        +pczt::transparent - Rust

        Module transparent

        Source
        Expand description

        The transparent fields of a PCZT.

        Structs§

        Bundle
        PCZT fields that are specific to producing the transaction’s transparent bundle (if any).
        Input
        Information about a transparent input within a transaction.
        Output
        Information about a transparent output within a transaction.
        \ No newline at end of file diff --git a/rustdoc/latest/pczt/transparent/struct.Bundle.html b/rustdoc/latest/pczt/transparent/struct.Bundle.html index 8028365f8..88ab79deb 100644 --- a/rustdoc/latest/pczt/transparent/struct.Bundle.html +++ b/rustdoc/latest/pczt/transparent/struct.Bundle.html @@ -1,4 +1,4 @@ -Bundle in pczt::transparent - Rust

        Struct Bundle

        Source
        pub struct Bundle { /* private fields */ }
        Expand description

        PCZT fields that are specific to producing the transaction’s transparent bundle (if +Bundle in pczt::transparent - Rust

        Struct Bundle

        Source
        pub struct Bundle { /* private fields */ }
        Expand description

        PCZT fields that are specific to producing the transaction’s transparent bundle (if any).

        Implementations§

        Source§

        impl Bundle

        Source

        pub fn inputs(&self) -> &Vec<Input>

        Source

        pub fn outputs(&self) -> &Vec<Output>

        Trait Implementations§

        Source§

        impl Clone for Bundle

        Source§

        fn clone(&self) -> Bundle

        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 Bundle

        Source§

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

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

        impl<'de> Deserialize<'de> for Bundle

        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 Serialize for Bundle

        Source§

        fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
        where diff --git a/rustdoc/latest/pczt/transparent/struct.Input.html b/rustdoc/latest/pczt/transparent/struct.Input.html index 7727017ae..34abb1ff2 100644 --- a/rustdoc/latest/pczt/transparent/struct.Input.html +++ b/rustdoc/latest/pczt/transparent/struct.Input.html @@ -1,4 +1,4 @@ -Input in pczt::transparent - Rust

        Struct Input

        Source
        pub struct Input { /* private fields */ }
        Expand description

        Information about a transparent input within a transaction.

        +Input in pczt::transparent - Rust

        Struct Input

        Source
        pub struct Input { /* private fields */ }
        Expand description

        Information about a transparent input within a transaction.

        Implementations§

        Source§

        impl Input

        Source

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

        Source

        pub fn prevout_index(&self) -> &u32

        Source

        pub fn sequence(&self) -> &Option<u32>

        The sequence number of this input.

        • This is set by the Constructor.
        • diff --git a/rustdoc/latest/pczt/transparent/struct.Output.html b/rustdoc/latest/pczt/transparent/struct.Output.html index 4cd35207f..a6a154913 100644 --- a/rustdoc/latest/pczt/transparent/struct.Output.html +++ b/rustdoc/latest/pczt/transparent/struct.Output.html @@ -1,4 +1,4 @@ -Output in pczt::transparent - Rust

          Struct Output

          Source
          pub struct Output { /* private fields */ }
          Expand description

          Information about a transparent output within a transaction.

          +Output in pczt::transparent - Rust

          Struct Output

          Source
          pub struct Output { /* private fields */ }
          Expand description

          Information about a transparent output within a transaction.

          Implementations§

          Source§

          impl Output

          Source

          pub fn value(&self) -> &u64

          Source

          pub fn script_pubkey(&self) -> &Vec<u8>

          Source

          pub fn user_address(&self) -> &Option<String>

          The user-facing address to which this output is being sent, if any.

          • This is set by an Updater.
          • diff --git a/rustdoc/latest/search-index.js b/rustdoc/latest/search-index.js index b59fe72c4..61e506ac3 100644 --- a/rustdoc/latest/search-index.js +++ b/rustdoc/latest/search-index.js @@ -1,4 +1,4 @@ -var searchIndex = new Map(JSON.parse('[["equihash",{"t":"FNNNNNNHNNNN","n":["Error","borrow","borrow_mut","fmt","","from","into","is_valid_solution","to_string","try_from","try_into","type_id"],"q":[[0,"equihash"],[12,"equihash::verify"],[13,"core::fmt"],[14,"core::result"],[15,"alloc::string"],[16,"core::any"]],"i":"`f00000`0000","f":"`{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{{{b{f}}{b{dh}}}j}0{cc{}}{{}c{}}{{ll{b{{A`{n}}}}{b{{A`{n}}}}{b{{A`{n}}}}}{{Ad{Abf}}}}{bAf}{c{{Ad{e}}}{}{}}{{}{{Ad{c}}}{}}{bAh}","D":"j","p":[[1,"reference",null,null,1],[0,"mut"],[5,"Error",0,12],[5,"Formatter",13],[8,"Result",13],[1,"u32"],[1,"u8"],[1,"slice"],[1,"unit"],[6,"Result",14,null,1],[5,"String",15],[5,"TypeId",16]],"r":[[0,12],[1,12],[2,12],[3,12],[4,12],[5,12],[6,12],[7,12],[8,12],[9,12],[10,12],[11,12]],"b":[[3,"impl-Debug-for-Error"],[4,"impl-Display-for-Error"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAAcAAgACAAMACQADAA==","P":[[1,"T"],[3,""],[5,"T"],[6,"U"],[7,""],[9,"U,T"],[10,"U"],[11,""]]}],["f4jumble",{"t":"GPSNNHHHHNNNNNNNN","n":["Error","InvalidLength","VALID_LENGTH","borrow","borrow_mut","f4jumble","f4jumble_inv","f4jumble_inv_mut","f4jumble_mut","fmt","","from","into","to_string","try_from","try_into","type_id"],"q":[[0,"f4jumble"],[17,"core::ops::range"],[18,"alloc::vec"],[19,"core::result"],[20,"core::fmt"],[21,"alloc::string"],[22,"core::any"]],"i":"`n`00````00000000","f":"``{{}b}{d{{d{c}}}{}}{{{d{f}}}{{d{fc}}}{}}{{{d{{j{h}}}}}{{A`{{l{h}}n}}}}0{{{d{f{j{h}}}}}{{A`{Abn}}}}0{{{d{n}}{d{fAd}}}Af}0{cc{}}{{}c{}}{dAh}{c{{A`{e}}}{}{}}{{}{{A`{c}}}{}}{dAj}","D":"Ad","p":[[5,"RangeInclusive",17],[1,"reference",null,null,1],[0,"mut"],[1,"u8"],[1,"slice"],[5,"Vec",18],[6,"Error",0],[6,"Result",19,null,1],[1,"unit"],[5,"Formatter",20],[8,"Result",20],[5,"String",21],[5,"TypeId",22]],"r":[],"b":[[9,"impl-Debug-for-Error"],[10,"impl-Display-for-Error"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAAcAAwAEAAEACgABAA4AAwA=","P":[[3,"T"],[5,""],[11,"T"],[12,"U"],[13,""],[14,"U,T"],[15,"U"],[16,""]]}],["pczt",{"t":"PPGFPPNNNNNNNCNNNNNNNNNNNNNNNNCNNCCNNNNCNNNNNNNNNFKNNNNNNNNNHNNNNNNNNNNMMNNNNNNNNNFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCCCCCCFPGPNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNCNNNNNCCNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFGPFPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPGPFPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["Invalid","NotPczt","ParseError","Pczt","TooShort","UnknownVersion","borrow","","borrow_mut","","clone","clone_into","clone_to_uninit","common","deref","","deref_mut","","deserialize","drop","","fmt","","from","","global","init","","into","","orchard","","parse","roles","sapling","","serialize","","to_owned","transparent","","try_from","","try_into","","type_id","","vzip","","Global","LockTimeInput","borrow","borrow_mut","clone","clone_into","clone_to_uninit","consensus_branch_id","deref","deref_mut","deserialize","determine_lock_time","drop","expiry_height","fmt","from","has_sighash_single","init","inputs_modifiable","into","outputs_modifiable","proprietary","required_height_lock_time","required_time_lock_time","serialize","shielded_modifiable","to_owned","try_from","try_into","tx_version","type_id","version_group_id","vzip","Action","Bundle","Output","Spend","actions","anchor","borrow","","","","borrow_mut","","","","clone","","","","clone_into","","","","clone_to_uninit","","","","cmx","cv_net","deref","","","","deref_mut","","","","deserialize","","","","drop","","","","enc_ciphertext","ephemeral_key","flags","fmt","","","","from","","","","init","","","","into","","","","nullifier","out_ciphertext","output","proprietary","","recipient","rk","rseed","serialize","","","","spend","to_owned","","","","try_from","","","","try_into","","","","type_id","","","","user_address","value","value_sum","vzip","","","","combiner","creator","low_level_signer","redactor","updater","verifier","Combiner","DataMismatch","Error","NoPczts","borrow","","borrow_mut","","combine","deref","","deref_mut","","drop","","fmt","from","","init","","into","","new","try_from","","try_into","","type_id","","vzip","","Creator","borrow","borrow_mut","build","deref","deref_mut","drop","from","init","into","new","try_from","try_into","type_id","vzip","with_fallback_lock_time","with_orchard_flags","Signer","borrow","borrow_mut","deref","deref_mut","drop","finish","from","init","into","new","sign_orchard_with","try_from","try_into","type_id","vzip","GlobalRedactor","Redactor","borrow","","borrow_mut","","clear_proprietary","deref","","deref_mut","","drop","","finish","from","","init","","into","","new","orchard","redact_global_with","redact_orchard_with","redact_proprietary","redact_sapling_with","redact_transparent_with","sapling","transparent","try_from","","try_into","","type_id","","vzip","","ActionRedactor","OrchardRedactor","borrow","","borrow_mut","","clear_bsk","clear_output_ock","clear_output_proprietary","clear_output_recipient","clear_output_rseed","clear_output_user_address","clear_output_value","clear_output_zip32_derivation","clear_rcv","clear_spend_alpha","clear_spend_auth_sig","clear_spend_dummy_sk","clear_spend_fvk","clear_spend_proprietary","clear_spend_recipient","clear_spend_rho","clear_spend_rseed","clear_spend_value","clear_spend_witness","clear_spend_zip32_derivation","clear_zkproof","deref","","deref_mut","","drop","","from","","init","","into","","redact_action","redact_actions","redact_output_proprietary","redact_spend_proprietary","try_from","","try_into","","type_id","","vzip","","OutputRedactor","SaplingRedactor","SpendRedactor","borrow","","","borrow_mut","","","clear_alpha","clear_bsk","clear_dummy_ask","clear_ock","clear_proof_generation_key","clear_proprietary","","clear_rcm","clear_rcv","","clear_recipient","","clear_rseed","","clear_spend_auth_sig","clear_user_address","clear_value","","clear_witness","clear_zip32_derivation","","clear_zkproof","","deref","","","deref_mut","","","drop","","","from","","","init","","","into","","","redact_output","redact_outputs","redact_proprietary","","redact_spend","redact_spends","try_from","","","try_into","","","type_id","","","vzip","","","InputRedactor","OutputRedactor","TransparentRedactor","borrow","","","borrow_mut","","","clear_bip32_derivation","","clear_hash160_preimages","clear_hash256_preimages","clear_partial_signatures","clear_proprietary","","clear_redeem_script","","clear_ripemd160_preimages","clear_script_sig","clear_sha256_preimages","clear_user_address","deref","","","deref_mut","","","drop","","","from","","","init","","","into","","","redact_bip32_derivation","","redact_hash160_preimage","redact_hash256_preimage","redact_input","redact_inputs","redact_output","redact_outputs","redact_partial_signature","redact_proprietary","","redact_ripemd160_preimage","redact_sha256_preimage","try_from","","","try_into","","","type_id","","","vzip","","","GlobalUpdater","OrchardError","Parser","Updater","","borrow","","","borrow_mut","","","deref","","","deref_mut","","","drop","","","finish","fmt","from","","","init","","","into","","","new","set_proprietary","try_from","","","try_into","","","type_id","","","update_global_with","update_orchard_with","vzip","","","Custom","OrchardError","Parse","Verifier","Verify","borrow","","borrow_mut","","deref","","deref_mut","","drop","","finish","fmt","from","","","init","","into","","new","try_from","","try_into","","type_id","","vzip","","with_orchard","Bundle","Output","Spend","anchor","borrow","","","borrow_mut","","","clone","","","clone_into","","","clone_to_uninit","","","cmu","cv","","deref","","","deref_mut","","","deserialize","","","drop","","","enc_ciphertext","ephemeral_key","fmt","","","from","","","init","","","into","","","nullifier","out_ciphertext","outputs","proprietary","","recipient","rk","rseed","serialize","","","spends","to_owned","","","try_from","","","try_into","","","type_id","","","user_address","value","value_sum","vzip","","","Bundle","Input","Output","borrow","","","borrow_mut","","","clone","","","clone_into","","","clone_to_uninit","","","deref","","","deref_mut","","","deserialize","","","drop","","","fmt","","","from","","","init","","","inputs","into","","","outputs","prevout_index","prevout_txid","proprietary","","required_height_lock_time","required_time_lock_time","script_pubkey","","sequence","serialize","","","to_owned","","","try_from","","","try_into","","","type_id","","","user_address","value","","vzip","",""],"q":[[0,"pczt"],[49,"pczt::common"],[82,"pczt::orchard"],[181,"pczt::roles"],[187,"pczt::roles::combiner"],[218,"pczt::roles::creator"],[235,"pczt::roles::low_level_signer"],[251,"pczt::roles::redactor"],[288,"pczt::roles::redactor::orchard"],[339,"pczt::roles::redactor::sapling"],[407,"pczt::roles::redactor::transparent"],[472,"pczt::roles::updater"],[519,"pczt::roles::verifier"],[553,"pczt::sapling"],[631,"pczt::transparent"],[705,"core::result"],[706,"serde::de"],[707,"core::fmt"],[708,"alloc::vec"],[709,"serde::ser"],[710,"core::any"],[711,"core::option"],[712,"alloc::string"],[713,"alloc::collections::btree::map"],[714,"orchard::bundle"],[715,"orchard::pczt::parse"],[716,"core::convert"],[717,"orchard::pczt"],[718,"core::ops::function"],[719,"pczt::roles::updater::orchard"],[720,"orchard::pczt::updater"],[721,"pczt::roles::verifier::orchard"],[722,"orchard::pczt::verify"]],"i":"Af0``00f101000`0101001010100101`00``0000`001010101``Ah00000000`0000000000Bl0111111111````Aj00CdChCj32103210321032100232103210321032100033210321032103210102100103210232103210321032100033210```````Db`0D`10100101011010101001010101`Dd000000000000000`Dh00000000000000``EfEd10010101011010101`11011``10101010``EhF`10100000000000000000001101010101010110010101010```ElFbFd21012101101101010101011010210210210210210210221022210210210210```EnFfFh21010111101011102102102102102102101011222211011210210210210``Fl`0FjFn2102102102102121021021021010210210211102Gf`0`0Gd1010101010101101010010101010```An0GlGn21021021021001021021021021000210210210210102100102102210210210210002210```BdHbHd21021021021021021021021021021021022102111011101210210210210210010210","f":"``````{b{{b{c}}}{}}0{{{b{d}}}{{b{dc}}}{}}0{{{b{f}}}f}{{b{b{dc}}}h{}}{{bj}h}`{l{{b{c}}}{}}0{l{{b{dc}}}{}}0{c{{n{f}}}A`}{lh}0{{{b{f}}{b{dAb}}}Ad}{{{b{Af}}{b{dAb}}}Ad}{cc{}}0{{{b{f}}}{{b{Ah}}}}{{}l}0{{}c{}}0`{{{b{f}}}{{b{Aj}}}}{{{b{{Al{j}}}}}{{n{fAf}}}}``{{{b{f}}}{{b{An}}}}{{{b{f}}}{{B`{j}}}}{{{b{f}}c}nBb}{bc{}}`{{{b{f}}}{{b{Bd}}}}{c{{n{e}}}{}{}}0{{}{{n{c}}}{}}0{bBf}0{{}c{}}0``{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{{{b{Ah}}}Ah}{{b{b{dc}}}h{}}{{bj}h}{{{b{Ah}}}{{b{Bh}}}}{l{{b{c}}}{}}{l{{b{dc}}}{}}{c{{n{Ah}}}A`}{{{b{Ah}}{b{{Al{c}}}}}{{Bj{Bh}}}Bl}{lh}5{{{b{Ah}}{b{dAb}}}Ad}{cc{}}{{{b{Ah}}}Bn}{{}l}1{{}c{}}2{{{b{Ah}}}{{b{{Cb{C`{B`{j}}}}}}}}{{{b{Bl}}}{{Bj{Bh}}}}0{{{b{Ah}}c}nBb}5{bc{}}{c{{n{e}}}{}{}}{{}{{n{c}}}{}}{{{b{Ah}}}{{b{Bh}}}}{bBf}1{{}c{}}````{{{b{Aj}}}{{b{{B`{Cd}}}}}}{{{b{Aj}}}{{b{{Cf{j}}}}}}{b{{b{c}}}{}}000{{{b{d}}}{{b{dc}}}{}}000{{{b{Aj}}}Aj}{{{b{Cd}}}Cd}{{{b{Ch}}}Ch}{{{b{Cj}}}Cj}{{b{b{dc}}}h{}}000{{bj}h}000{{{b{Cj}}}{{b{{Cf{j}}}}}}{{{b{Cd}}}{{b{{Cf{j}}}}}}{l{{b{c}}}{}}000{l{{b{dc}}}{}}000{c{{n{Aj}}}A`}{c{{n{Cd}}}A`}{c{{n{Ch}}}A`}{c{{n{Cj}}}A`}{lh}000{{{b{Cj}}}{{b{{B`{j}}}}}}9{{{b{Aj}}}{{b{j}}}}{{{b{Aj}}{b{dAb}}}Ad}{{{b{Cd}}{b{dAb}}}Ad}{{{b{Ch}}{b{dAb}}}Ad}{{{b{Cj}}{b{dAb}}}Ad}{cc{}}000{{}l}000{{}c{}}000{{{b{Ch}}}{{b{{Cf{j}}}}}}9{{{b{Cd}}}{{b{Cj}}}}{{{b{Ch}}}{{b{{Cb{C`{B`{j}}}}}}}}{{{b{Cj}}}{{b{{Cb{C`{B`{j}}}}}}}}{{{b{Cj}}}{{b{{Bj{{Cf{j}}}}}}}}40{{{b{Aj}}c}nBb}{{{b{Cd}}c}nBb}{{{b{Ch}}c}nBb}{{{b{Cj}}c}nBb}{{{b{Cd}}}{{b{Ch}}}}{bc{}}000{c{{n{e}}}{}{}}000{{}{{n{c}}}{}}000{bBf}000{{{b{Cj}}}{{b{{Bj{C`}}}}}}{{{b{Cj}}}{{b{{Bj{Cl}}}}}}{{{b{Aj}}}{{b{{Cn{ClBn}}}}}}{{}c{}}000``````````{b{{b{c}}}{}}0{{{b{d}}}{{b{dc}}}{}}0{D`{{n{fDb}}}}{l{{b{c}}}{}}0{l{{b{dc}}}{}}0{lh}0{{{b{Db}}{b{dAb}}}Ad}{cc{}}0{{}l}0{{}c{}}0{{{B`{f}}}D`}{c{{n{e}}}{}{}}0{{}{{n{c}}}{}}0{bBf}0>>`=<{Ddf};:9765{{BhBhBh{Cf{j}}{Cf{j}}}Dd}432{{}c{}}{{DdBh}Dd}{{DdDf}Dd}`{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{l{{b{c}}}{}}{l{{b{dc}}}{}}{lh}{Dhf}{cc{}}{{}l}{{}c{}}{fDh}{{Dhe}{{n{Dhc}}}{{Dl{Dj}}}{{Eb{{b{f}}{b{dDn}}{b{dj}}}{{E`{{n{hc}}}}}}}}{c{{n{e}}}{}{}}{{}{{n{c}}}{}}{bBf}{{}c{}}``>>=={{{b{dEd}}}h}==<<;;{Eff}::9988{fEf}`{{Efc}Ef{{Eb{Ed}}}}{{Efc}Ef{{Eb{Eh}}}}{{{b{dEd}}{b{Ej}}}h}{{Efc}Ef{{Eb{El}}}}{{Efc}Ef{{Eb{En}}}}``;;::9988``{b{{b{c}}}{}}0{{{b{d}}}{{b{dc}}}{}}0{{{b{dEh}}}h}{{{b{dF`}}}h}0000000000000000001{l{{b{c}}}{}}0{l{{b{dc}}}{}}0{lh}0{cc{}}0{{}l}0{{}c{}}0{{{b{dEh}}lc}h{{Eb{F`}}}}{{{b{dEh}}c}h{{Eb{F`}}}}{{{b{dF`}}{b{Ej}}}h}0{c{{n{e}}}{}{}}0{{}{{n{c}}}{}}0{bBf}0{{}c{}}0```{b{{b{c}}}{}}00{{{b{d}}}{{b{dc}}}{}}00{{{b{dFb}}}h}{{{b{dEl}}}h}1{{{b{dFd}}}h}2202202020202022020{l{{b{c}}}{}}00{l{{b{dc}}}{}}00{lh}00{cc{}}00{{}l}00{{}c{}}00{{{b{dEl}}lc}h{{Eb{Fd}}}}{{{b{dEl}}c}h{{Eb{Fd}}}}{{{b{dFb}}{b{Ej}}}h}{{{b{dFd}}{b{Ej}}}h}{{{b{dEl}}lc}h{{Eb{Fb}}}}{{{b{dEl}}c}h{{Eb{Fb}}}}{c{{n{e}}}{}{}}00{{}{{n{c}}}{}}00{bBf}00{{}c{}}00```{b{{b{c}}}{}}00{{{b{d}}}{{b{dc}}}{}}00{{{b{dFf}}}h}{{{b{dFh}}}h}11110101110{l{{b{c}}}{}}00{l{{b{dc}}}{}}00{lh}00{cc{}}00{{}l}00{{}c{}}00{{{b{dFf}}{Cf{j}}}h}{{{b{dFh}}{Cf{j}}}h}11{{{b{dEn}}lc}h{{Eb{Ff}}}}{{{b{dEn}}c}h{{Eb{Ff}}}}{{{b{dEn}}lc}h{{Eb{Fh}}}}{{{b{dEn}}c}h{{Eb{Fh}}}}5{{{b{dFf}}{b{Ej}}}h}{{{b{dFh}}{b{Ej}}}h}77{c{{n{e}}}{}{}}00{{}{{n{c}}}{}}00{bBf}00{{}c{}}00`````{b{{b{c}}}{}}00{{{b{d}}}{{b{dc}}}{}}00{l{{b{c}}}{}}00{l{{b{dc}}}{}}00{lh}00{Fjf}{{{b{Fl}}{b{dAb}}}Ad}{cc{}}00{{}l}00{{}c{}}00{fFj}{{{b{dFn}}C`{B`{j}}}h}???>>>==={{Fjc}Fj{{Eb{Fn}}}}{{Fjc}{{n{FjFl}}}{{Eb{G`}{{E`{{n{hGb}}}}}}}}>>>`````==<<;;::99{Gdf}{{{b{{Gf{c}}}}{b{dAb}}}AdGh}8{Gj{{Gf{c}}}{}}98877{fGd}{c{{n{e}}}{}{}}0{{}{{n{c}}}{}}0{bBf}0{{}c{}}0{{Gde}{{n{Gd{Gf{c}}}}}{}{{Eb{{b{Dn}}}{{E`{{n{h{Gf{c}}}}}}}}}}```{{{b{An}}}{{b{{Cf{j}}}}}}{b{{b{c}}}{}}00{{{b{d}}}{{b{dc}}}{}}00{{{b{An}}}An}{{{b{Gl}}}Gl}{{{b{Gn}}}Gn}{{b{b{dc}}}h{}}00{{bj}h}00{{{b{Gn}}}{{b{{Cf{j}}}}}}{{{b{Gl}}}{{b{{Cf{j}}}}}}1{l{{b{c}}}{}}00{l{{b{dc}}}{}}00{c{{n{An}}}A`}{c{{n{Gl}}}A`}{c{{n{Gn}}}A`}{lh}00{{{b{Gn}}}{{b{{B`{j}}}}}}8{{{b{An}}{b{dAb}}}Ad}{{{b{Gl}}{b{dAb}}}Ad}{{{b{Gn}}{b{dAb}}}Ad}{cc{}}00{{}l}00{{}c{}}00=6{{{b{An}}}{{b{{B`{Gn}}}}}}{{{b{Gl}}}{{b{{Cb{C`{B`{j}}}}}}}}{{{b{Gn}}}{{b{{Cb{C`{B`{j}}}}}}}}{{{b{Gn}}}{{b{{Bj{{Cf{j}}}}}}}}{{{b{Gl}}}{{b{{Cf{j}}}}}}1{{{b{An}}c}nBb}{{{b{Gl}}c}nBb}{{{b{Gn}}c}nBb}{{{b{An}}}{{b{{B`{Gl}}}}}}{bc{}}00{c{{n{e}}}{}{}}00{{}{{n{c}}}{}}00{bBf}00{{{b{Gn}}}{{b{{Bj{C`}}}}}}{{{b{Gn}}}{{b{{Bj{Cl}}}}}}{{{b{An}}}{{b{H`}}}}{{}c{}}00```{b{{b{c}}}{}}00{{{b{d}}}{{b{dc}}}{}}00{{{b{Bd}}}Bd}{{{b{Hb}}}Hb}{{{b{Hd}}}Hd}{{b{b{dc}}}h{}}00{{bj}h}00{l{{b{c}}}{}}00{l{{b{dc}}}{}}00{c{{n{Bd}}}A`}{c{{n{Hb}}}A`}{c{{n{Hd}}}A`}{lh}00{{{b{Bd}}{b{dAb}}}Ad}{{{b{Hb}}{b{dAb}}}Ad}{{{b{Hd}}{b{dAb}}}Ad}{cc{}}00{{}l}00{{{b{Bd}}}{{b{{B`{Hb}}}}}}{{}c{}}00{{{b{Bd}}}{{b{{B`{Hd}}}}}}{{{b{Hb}}}{{b{Bh}}}}{{{b{Hb}}}{{b{{Cf{j}}}}}}{{{b{Hb}}}{{b{{Cb{C`{B`{j}}}}}}}}{{{b{Hd}}}{{b{{Cb{C`{B`{j}}}}}}}}{{{b{Hb}}}{{Bj{Bh}}}}0{{{b{Hb}}}{{b{{B`{j}}}}}}{{{b{Hd}}}{{b{{B`{j}}}}}}{{{b{Hb}}}{{b{{Bj{Bh}}}}}}{{{b{Bd}}c}nBb}{{{b{Hb}}c}nBb}{{{b{Hd}}c}nBb}{bc{}}00{c{{n{e}}}{}{}}00{{}{{n{c}}}{}}00{bBf}00{{{b{Hd}}}{{b{{Bj{C`}}}}}}{{{b{Hb}}}{{b{Cl}}}}{{{b{Hd}}}{{b{Cl}}}}{{}c{}}00","D":"ANf","p":[[1,"reference",null,null,1],[0,"mut"],[5,"Pczt",0],[1,"unit"],[1,"u8"],[1,"usize"],[6,"Result",705,null,1],[10,"Deserializer",706],[5,"Formatter",707],[8,"Result",707],[6,"ParseError",0],[5,"Global",49],[5,"Bundle",82],[1,"slice"],[5,"Bundle",553],[5,"Vec",708],[10,"Serializer",709],[5,"Bundle",631],[5,"TypeId",710],[1,"u32"],[6,"Option",711,null,1],[10,"LockTimeInput",49],[1,"bool"],[5,"String",712],[5,"BTreeMap",713],[5,"Action",82],[1,"array"],[5,"Spend",82],[5,"Output",82],[1,"u64"],[1,"tuple",null,null,1],[5,"Combiner",187],[6,"Error",187],[5,"Creator",218],[5,"Flags",714],[5,"Signer",235],[6,"ParseError",715],[10,"From",716,null,1],[5,"Bundle",717],[17,"Output"],[10,"FnOnce",718],[5,"GlobalRedactor",251],[5,"Redactor",251],[5,"OrchardRedactor",288],[1,"str"],[5,"SaplingRedactor",339],[5,"TransparentRedactor",407],[5,"ActionRedactor",288],[5,"SpendRedactor",339],[5,"OutputRedactor",339],[5,"InputRedactor",407],[5,"OutputRedactor",407],[5,"Updater",472],[6,"OrchardError",472,719],[5,"GlobalUpdater",472],[5,"Updater",720],[6,"UpdaterError",720],[5,"Verifier",519],[6,"OrchardError",519,721],[10,"Debug",707],[6,"VerifyError",722],[5,"Spend",553],[5,"Output",553],[1,"i128"],[5,"Input",631],[5,"Output",631]],"r":[[473,719],[474,719],[476,719],[479,719],[482,719],[485,719],[488,719],[491,719],[493,719],[496,719],[499,719],[502,719],[507,719],[510,719],[513,719],[518,719],[519,721],[520,721],[521,721],[523,721],[525,721],[527,721],[529,721],[531,721],[533,721],[535,721],[537,721],[538,721],[540,721],[542,721],[545,721],[547,721],[549,721],[551,721]],"b":[[36,"impl-Pczt"],[37,"impl-Serialize-for-Pczt"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAM4BSAAHAAYADwAIABsAAQAgAAAAJAAAACYAAQApAAgAMwAFADoAAgA+AAIAQwAAAEgAAgBMAAYAWQAlAIAAAACCAAMAigADAJIAAACUAAAAmAAAAJoAFACyAAMAvAABAL8ABADFAAYAzgABANMADgDjAAAA5QAMAPQAAAD4AAMA/QAEAAMBBQAMAQEAEQEAABcBCQAjAQMAPAEFAEQBAQBMAQcAVwEFAHQBCACAAQIAjAELAJsBBQCuAQgAugECAM0BCwDbAREA7gEAAPIBAgD6AQgABQIDAAoCDAAYAgAAGgIAABwCAQAhAgcALgIdAE0CAwBUAgIAWgIAAFwCAABgAgAAYgIPAHUCAgB7Ah0AnAIDAKMCAgCoAgMArQIOAL0CBAA=","P":[[6,"T"],[10,""],[11,"T"],[12,""],[14,"T"],[18,"__D"],[19,""],[23,"T"],[25,""],[28,"U"],[31,""],[37,"__S"],[38,"T"],[40,""],[41,"U,T"],[43,"U"],[45,""],[47,"V"],[51,"T"],[53,""],[54,"T"],[55,""],[57,"T"],[59,"__D"],[60,"L"],[61,""],[64,"T"],[65,""],[68,"U"],[69,""],[73,"__S"],[74,""],[75,"T"],[76,"U,T"],[77,"U"],[78,""],[81,"V"],[86,""],[88,"T"],[96,""],[100,"T"],[104,""],[110,"T"],[118,"__D"],[122,""],[133,"T"],[137,""],[141,"U"],[145,""],[153,"__S"],[157,""],[158,"T"],[162,"U,T"],[166,"U"],[170,""],[177,"V"],[191,"T"],[195,""],[196,"T"],[200,""],[203,"T"],[205,""],[207,"U"],[209,""],[210,"U,T"],[212,"U"],[214,""],[216,"V"],[219,"T"],[221,""],[222,"T"],[224,""],[225,"T"],[226,""],[227,"U"],[228,""],[229,"U,T"],[230,"U"],[231,""],[232,"V"],[233,""],[236,"T"],[240,""],[242,"T"],[243,""],[244,"U"],[245,""],[246,"E,F"],[247,"U,T"],[248,"U"],[249,""],[250,"V"],[253,"T"],[257,""],[258,"T"],[262,""],[265,"T"],[267,""],[269,"U"],[271,""],[273,"F"],[275,""],[276,"F"],[280,"U,T"],[282,"U"],[284,""],[286,"V"],[290,"T"],[294,""],[315,"T"],[319,""],[321,"T"],[323,""],[325,"U"],[327,"F"],[329,""],[331,"U,T"],[333,"U"],[335,""],[337,"V"],[342,"T"],[348,""],[371,"T"],[377,""],[380,"T"],[383,""],[386,"U"],[389,"F"],[391,""],[393,"F"],[395,"U,T"],[398,"U"],[401,""],[404,"V"],[410,"T"],[416,""],[429,"T"],[435,""],[438,"T"],[441,""],[444,"U"],[447,""],[451,"F"],[455,""],[460,"U,T"],[463,"U"],[466,""],[469,"V"],[477,"T"],[489,""],[494,"T"],[497,""],[500,"U"],[503,""],[505,"U,T"],[508,"U"],[511,""],[514,"F"],[516,"V"],[524,"T"],[532,""],[535,"E"],[536,"T"],[537,"E"],[538,"T"],[539,""],[541,"U"],[543,""],[544,"U,T"],[546,"U"],[548,""],[550,"V"],[552,"E,F"],[556,""],[557,"T"],[563,""],[566,"T"],[569,""],[575,"T"],[581,"__D"],[584,""],[592,"T"],[595,""],[598,"U"],[601,""],[609,"__S"],[612,""],[613,"T"],[616,"U,T"],[619,"U"],[622,""],[628,"V"],[634,"T"],[640,""],[643,"T"],[646,""],[649,"T"],[655,"__D"],[658,""],[664,"T"],[667,""],[671,"U"],[674,""],[684,"__S"],[687,"T"],[690,"U,T"],[693,"U"],[696,""],[702,"V"]]}],["zcash",{"t":"E","n":["primitives"],"q":[[0,"zcash"]],"i":"`","f":"`","D":"b","p":[],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OjAAAAEAAAAAAAAAEAAAAAEA","P":[]}],["zcash_address",{"t":"GRRPPPIPGPPKKKPPFPFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNMNNMNMNMNMNNNNNNNNCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNOOSHFGPKPKGPPPKRGPPPPPPPPPPPPGGPPPPGFFPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOO","n":["ConversionError","Error","","IncorrectNetwork","InvalidEncoding","Main","Network","NotZcash","ParseError","Regtest","Test","ToAddress","TryFromAddress","TryFromRawAddress","Unified","Unsupported","UnsupportedAddress","User","ZcashAddress","borrow","","","","borrow_mut","","","","can_receive_as","can_receive_memo","clone","clone_into","clone_to_uninit","convert","convert_if_network","encode","eq","","fmt","","","","","","","","from","","","","","","","from_sapling","","from_sprout","","from_str","from_tex","","from_transparent_p2pkh","","from_transparent_p2sh","","from_unified","","hash","into","","","","matches_receiver","source","test_vectors","testing","to_owned","to_string","","","","try_from","","","","try_from_encoded","try_from_raw_sapling","","try_from_raw_sprout","","try_from_raw_tex","","try_from_raw_transparent_p2pkh","","try_from_raw_transparent_p2sh","","try_from_raw_unified","","try_from_sapling","","try_from_sprout","","try_from_tex","","try_from_transparent_p2pkh","","try_from_transparent_p2sh","","try_from_unified","","try_into","","","","type_id","","","","unified","vzip","","","","actual","expected","UNIFIED","arb_address","Address","Bech32mZip316","BothP2phkAndP2sh","Container","DuplicateTypecode","Encoding","Fvk","InvalidEncoding","InvalidTypecodeOrder","InvalidTypecodeValue","Item","","Ivk","NotUnified","OnlyTransparent","Orchard","","","","P2pkh","","","","P2sh","","ParseError","Receiver","Sapling","","","","Typecode","Ufvk","Uivk","Unknown","","","","UnknownPrefix","borrow","","","","","","","","","borrow_mut","","","","","","","","","can_receive_memo","clone","","","","","","","","clone_into","","","","","","","","clone_to_uninit","","","","","","","","cmp","contains_receiver","decode","","encode","","encoding_order","eq","","","","","","","","","fmt","","","","","","","","","from","","","","","","","","","has_receiver_of_type","hash","","","","","","","","into","","","","","","","","","items","","items_as_parsed","","","","partial_cmp","preference_order","to_owned","","","","","","","","to_string","try_from","","","","","","","","","","","","","try_from_items","","try_into","","","","","","","","","type_id","","","","","","","","","typed_encoding","","vzip","","","","","","","","","data","typecode","data","typecode","data","typecode"],"q":[[0,"zcash_address"],[121,"zcash_address::ConversionError"],[123,"zcash_address::test_vectors"],[124,"zcash_address::testing"],[125,"zcash_address::unified"],[320,"zcash_address::unified::Fvk"],[322,"zcash_address::unified::Ivk"],[324,"zcash_address::unified::Receiver"],[326,"zcash_protocol"],[327,"zcash_address::convert"],[328,"core::result"],[329,"zcash_protocol::consensus"],[330,"alloc::string"],[331,"zcash_address::encoding"],[332,"core::fmt"],[333,"zcash_address::kind::unified"],[334,"zcash_address::kind::unified::address"],[335,"core::hash"],[336,"core::error"],[337,"core::option"],[338,"core::any"],[339,"proptest::strategy::traits"],[340,"zcash_address::kind::unified::fvk"],[341,"zcash_address::kind::unified::ivk"],[342,"core::cmp"],[343,"alloc::vec"],[344,"zcash_address::kind"]],"i":"`AhAdA`AlFj`1`00```12`2`An32f14300000000030114433001444330Bn1011010101011254115``125412541177777777777766666666666625412541`2541D`0````Bj`0``000`Ej`11CfDfDjDn321030``3210```321053Cb3Dh3Dl38E`736251490373625140736251407362514003Ed00058473625:18473625::8473625:14847362518473625:19994321584736251:88477366255:1008473625:18473625:1En09584736;2Fd0Ff0Fh0","f":"```````````````````{b{{b{c}}}{}}000{{{b{d}}}{{b{dc}}}{}}000{{{b{f}}h}j}{{{b{f}}}j}{{{b{f}}}f}{{b{b{dc}}}l{}}{{bn}l}{f{{Ab{cA`}}}Ad}{{fAf}{{Ab{cA`}}}Ah}{{{b{f}}}Aj}{{{b{Al}}{b{Al}}}j}{{{b{f}}{b{f}}}j}{{{b{An}}{b{dB`}}}Bb}0{{{b{{A`{c}}}}{b{dB`}}}BbBd}{{{b{{A`{c}}}}{b{dB`}}}BbBf}{{{b{Al}}{b{dB`}}}Bb}0{{{b{f}}{b{dB`}}}Bb}0{cc{}}0{c{{A`{c}}}{}}{Bhc{}}2{BjAl}3{{Af{Bl{n}}}Bn}{{Af{Bl{n}}}f}10{{{b{C`}}}{{Ab{fc}}}{}}212121{{AfCb}Bn}{{AfCb}f}{{{b{f}}{b{dc}}}lCd}{{}c{}}000{{{b{f}}{b{Cf}}}j}{{{b{{A`{c}}}}}{{Cj{{b{Ch}}}}}Ch}``{bc{}}{bAj}000{c{{Ab{e}}}{}{}}000{{{b{C`}}}{{Ab{fAl}}}}{{{Bl{n}}}{{Ab{{Ah{}{{Cl{c}}}}{A`{c}}}}}{}}000000000{Cb{{Ab{{Ah{}{{Cl{c}}}}{A`{c}}}}}{}}0{{Af{Bl{n}}}{{Ab{{Ad{}{{Cl{c}}}}{A`{c}}}}}{}}000000000{{AfCb}{{Ab{{Ad{}{{Cl{c}}}}{A`{c}}}}}{}}0{{}{{Ab{c}}}{}}000{bCn}000`{{}c{}}000{D`Af}0{{}b}{Af{{`{{Dd{}{{Db{f}}}}}}}}```````````````````````````````````````{b{{b{c}}}{}}00000000{{{b{d}}}{{b{dc}}}{}}00000000{{{b{Cb}}}j}{{{b{Cf}}}Cf}{{{b{Cb}}}Cb}{{{b{Df}}}Df}{{{b{Dh}}}Dh}{{{b{Dj}}}Dj}{{{b{Dl}}}Dl}{{{b{Dn}}}Dn}{{{b{E`}}}E`}{{b{b{dc}}}l{}}0000000{{bn}l}0000000{{{b{E`}}{b{E`}}}Eb}{{{b{Cb}}{b{Cf}}}j}{{{b{C`}}}{{Ab{{Ef{AfEd}}Bj}}}}0{{{b{Ed}}{b{Af}}}Aj}0{{{b{Dn}}{b{Dn}}}Eb}{{{b{Cf}}{b{Cf}}}j}{{{b{Cb}}{b{Cb}}}j}{{{b{Df}}{b{Df}}}j}{{{b{Dh}}{b{Dh}}}j}{{{b{Dj}}{b{Dj}}}j}{{{b{Dl}}{b{Dl}}}j}{{{b{Dn}}{b{Dn}}}j}{{{b{Bj}}{b{Bj}}}j}{{{b{E`}}{b{E`}}}j}{{{b{Cf}}{b{dB`}}}Bb}{{{b{Cb}}{b{dB`}}}Bb}{{{b{Df}}{b{dB`}}}Bb}{{{b{Dh}}{b{dB`}}}Bb}{{{b{Dj}}{b{dB`}}}Bb}{{{b{Dl}}{b{dB`}}}Bb}{{{b{Dn}}{b{dB`}}}Bb}{{{b{Bj}}{b{dB`}}}Bb}0{cc{}}00000000{{{b{Cb}}h}j}{{{b{Cf}}{b{dc}}}lCd}{{{b{Cb}}{b{dc}}}lCd}{{{b{Df}}{b{dc}}}lCd}{{{b{Dh}}{b{dc}}}lCd}{{{b{Dj}}{b{dc}}}lCd}{{{b{Dl}}{b{dc}}}lCd}{{{b{Dn}}{b{dc}}}lCd}{{{b{E`}}{b{dc}}}lCd}{{}c{}}00000000{{{b{{Ej{}{{Eh{c}}}}}}}{{El{c}}}En}0{{{b{{Ej{}{{Eh{c}}}}}}}{{b{{F`{c}}}}}En}{{{b{Cb}}}{{b{{F`{Cf}}}}}}{{{b{Dh}}}{{b{{F`{Df}}}}}}{{{b{Dl}}}{{b{{F`{Dj}}}}}}{{{b{E`}}{b{E`}}}{{Cj{Eb}}}}{{{b{Dn}}{b{Dn}}}Eb}{bc{}}0000000{bAj}{c{{Ab{e}}}{}{}}{{{Ef{Fb{b{{F`{n}}}}}}}{{Ab{Cfc}}}{}}1{{{Ef{Fb{b{{F`{n}}}}}}}{{Ab{Dfc}}}{}}222{{{Ef{Fb{b{{F`{n}}}}}}}{{Ab{Djc}}}{}}3{Fb{{Ab{Dnc}}}{}}444{{{El{c}}}{{Ab{EdBj}}}{}}0{{}{{Ab{c}}}{}}00000000{bCn}00000000{{{b{En}}}{{El{n}}}}0{{}c{}}00000000{FdEl}{FdFb}{FfEl}{FfFb}{FhEl}{FhFb}","D":"M`","p":[[1,"reference",null,null,1],[0,"mut"],[5,"ZcashAddress",0],[6,"PoolType",326],[1,"bool"],[1,"unit"],[1,"u8"],[6,"ConversionError",0,327],[6,"Result",328,null,1],[10,"TryFromAddress",0,327],[6,"NetworkType",329],[10,"TryFromRawAddress",0,327],[5,"String",330],[6,"ParseError",0,331],[5,"UnsupportedAddress",0,327],[5,"Formatter",332],[8,"Result",332],[10,"Debug",332],[10,"Display",332],[1,"never"],[6,"ParseError",125,333],[1,"array"],[10,"ToAddress",0,327],[1,"str"],[5,"Address",125,334],[10,"Hasher",335],[6,"Receiver",125,334],[10,"Error",336],[6,"Option",337,null,1],[17,"Error"],[5,"TypeId",338],[15,"IncorrectNetwork",121],[17,"Value"],[10,"Strategy",339],[6,"Fvk",125,340],[5,"Ufvk",125,340],[6,"Ivk",125,341],[5,"Uivk",125,341],[6,"Typecode",125,333],[6,"Bech32mZip316",125,333],[6,"Ordering",342],[10,"Encoding",125,333],[1,"tuple",null,null,1],[17,"Item"],[10,"Container",125,333],[5,"Vec",343],[10,"Item",125,333],[1,"slice"],[1,"u32"],[15,"Unknown",320],[15,"Unknown",322],[15,"Unknown",324],[8,"Network",0]],"r":[[0,327],[1,327],[2,327],[3,327],[4,331],[7,331],[8,331],[11,327],[12,327],[13,327],[14,331],[15,327],[16,327],[17,327],[19,327],[20,327],[21,331],[23,327],[24,327],[25,331],[35,331],[37,327],[38,327],[39,327],[40,327],[41,331],[42,331],[45,327],[46,327],[47,327],[48,327],[49,331],[50,331],[52,327],[54,327],[57,327],[59,327],[61,327],[63,327],[66,327],[67,327],[68,331],[71,327],[75,327],[76,327],[77,331],[79,327],[80,327],[81,331],[84,327],[85,327],[86,327],[87,327],[88,327],[89,327],[90,327],[91,327],[92,327],[93,327],[94,327],[95,327],[96,327],[97,327],[98,327],[99,327],[100,327],[101,327],[102,327],[103,327],[104,327],[105,327],[106,327],[107,327],[108,327],[109,327],[110,331],[112,327],[113,327],[114,331],[116,344],[117,327],[118,327],[119,331],[125,334],[126,333],[127,333],[128,333],[129,333],[130,333],[131,340],[132,333],[133,333],[134,333],[135,333],[136,333],[137,341],[138,333],[139,333],[140,334],[141,340],[142,341],[143,333],[144,334],[145,340],[146,341],[147,333],[148,334],[149,333],[150,333],[151,334],[152,334],[153,340],[154,341],[155,333],[156,333],[157,340],[158,341],[159,334],[160,340],[161,341],[162,333],[163,333],[164,334],[165,334],[166,340],[167,340],[168,341],[169,341],[170,333],[171,333],[172,333],[173,334],[174,334],[175,340],[176,340],[177,341],[178,341],[179,333],[180,333],[181,333],[182,334],[183,334],[184,334],[185,340],[186,340],[187,341],[188,341],[189,333],[190,333],[191,334],[192,334],[193,340],[194,340],[195,341],[196,341],[197,333],[198,333],[199,334],[200,334],[201,340],[202,340],[203,341],[204,341],[205,333],[206,333],[207,333],[208,334],[209,333],[210,333],[211,333],[212,333],[213,333],[214,334],[215,334],[216,340],[217,340],[218,341],[219,341],[220,333],[221,333],[222,333],[223,334],[224,334],[225,340],[226,340],[227,341],[228,341],[229,333],[230,333],[231,333],[232,334],[233,334],[234,340],[235,340],[236,341],[237,341],[238,333],[239,333],[240,333],[241,334],[242,334],[243,334],[244,340],[245,340],[246,341],[247,341],[248,333],[249,333],[250,334],[251,334],[252,340],[253,340],[254,341],[255,341],[256,333],[257,333],[258,333],[259,333],[260,333],[261,333],[262,334],[263,340],[264,341],[265,333],[266,333],[267,334],[268,334],[269,340],[270,340],[271,341],[272,341],[273,333],[274,333],[275,333],[276,334],[277,334],[278,334],[279,340],[280,340],[281,340],[282,341],[283,341],[284,341],[285,333],[286,333],[287,333],[288,333],[289,333],[290,333],[291,334],[292,334],[293,340],[294,340],[295,341],[296,341],[297,333],[298,333],[299,333],[300,334],[301,334],[302,340],[303,340],[304,341],[305,341],[306,333],[307,333],[308,333],[309,333],[310,333],[311,334],[312,334],[313,340],[314,340],[315,341],[316,341],[317,333],[318,333],[319,333]],"b":[[37,"impl-Display-for-UnsupportedAddress"],[38,"impl-Debug-for-UnsupportedAddress"],[39,"impl-Debug-for-ConversionError%3CE%3E"],[40,"impl-Display-for-ConversionError%3CE%3E"],[41,"impl-Debug-for-ParseError"],[42,"impl-Display-for-ParseError"],[43,"impl-Debug-for-ZcashAddress"],[44,"impl-Display-for-ZcashAddress"],[230,"impl-Display-for-ParseError"],[231,"impl-Debug-for-ParseError"]],"c":"OjAAAAEAAAAAAAAAEAAAAAcA","e":"OzAAAAEAAN4AGAAHAAAAFAAHAB4AAgAkAAkAMAABADMAAAA1AAMAOgAIAEgACwBVAB8AdgAFAI0AAACRAAAAlQAAAJkAAACgAAIApQARALgAGADWABIA8wAHAAcBAAAKARcAJAERADgBDgA=","P":[[19,"T"],[27,""],[30,"T"],[31,""],[32,"T"],[34,""],[39,"E"],[41,""],[45,"T"],[47,"E"],[48,"T"],[50,""],[51,"T"],[52,""],[56,"FromStr::Err"],[57,""],[65,"__H"],[66,"U"],[70,""],[71,"E"],[74,"T"],[75,""],[79,"U,T"],[83,""],[84,"TryFromRawAddress::Error"],[96,"TryFromAddress::Error"],[108,"U"],[112,""],[117,"V"],[121,""],[164,"T"],[182,""],[191,"T"],[199,""],[232,"T"],[241,""],[242,"__H"],[250,"U"],[259,"Container::Item"],[262,""],[267,"T"],[275,""],[276,"U,T"],[277,"TryFrom::Error"],[278,"U,T"],[279,"TryFrom::Error"],[280,"U,T"],[283,"TryFrom::Error"],[284,"U,T"],[285,"TryFrom::Error"],[286,"U,T"],[289,"Container::Item"],[291,"U"],[300,""],[311,"V"],[320,""]]}],["zcash_client_backend",{"t":"FPPPIPPIGPPNCNNNNNNNCHNNNNNNCNCNNNNNNNNNNCNNNNNNNCCCCCCNNNNNNNNNNCCGPGPPPPPPFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNHHKRFFRRRFGGFPPPPFGFFPPFPPRRRPPPPPPKPPPPPPPGRKGSRFGFFFPSRFFFGFFFPGGGPPPPRPKKFKKTTFNNNNNNNQQQQQNMNNNMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMMMMMMMNMMMMMMMMMMNMMNNMNMMMNMMNNNNNNNNMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNMMMMNNNNNNNONNNNNNCNMMMMMMNNMMMNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNMNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMNNMMNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNMNMNOOOOOOOOOOOOOOKKFFRFNNNNNNNNNNNNNNMNNNNNNNNNNCNNNNNNNNNMNNNMNNNNNNNNNNMNNNHNNNNCNNNNNNNNNNNNNNNMPGPPNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNPPPPPPPPPGPPPPPPPPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNOOPPPPPGFPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNPPGNNNNNNNNNNNNNNNNCNNNNNOOOHRRGRRFTRKPPRRFRFRPFFRKFFKKFFNNNMMMNNNNNMNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNMNNCNNMOCOONNNNNNNNNNNMNNCNNNMONNNNNNNHNNNNNNNNNNNNNNNNNCMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNRRRTKRHHHHHMMMHHHMMHHHHMHHHHMNNMHHHHHMHHHHMMMHHHMMMHMHFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNHNNNNNNHNHHNNNNPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPIPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPIIPPPPPIIPPPPPHHCHHHHOOOOOOOOOOPPPPRRFGKGRRPPPKPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNMNNNNNNNNNNNNNNNNNOOKPGPRPPPGPNNNNNNNMHHHHHNNNNNNMHHHHHHNNNNNNNNNNNNNNNNNNNNNNNNNNNNOORPPPGKFGPFGRRPPRPPFGPFPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNCNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCOOOOOKFRKRKNNMNNNNNNMNNNNMMNNNNMMNKFRKRKNNMNNNNNNMNNNNMMNNNNMMNIIFFKNNNNNNNNNNNNNNNNNNMNNNNNNMNNNNNNNNNNNNTTGPPPGGPGPPPPPPPPPPPPPGFPPPPPGFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNHPPPPPPPPPPFGPPFPPFPFGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOPPPPPPPPPPSGPPPPPPNNNNNCNNNNNNNNNNNCCNNNNNNNFFFFFFONNNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNONONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNONNNNNNNNNNNNNNNNOONONOONNNNNNNNNNNNNNNNNNNNNNNNNNOOOONOOOOONNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNFGFPPFPPFFFFFFPFPGPPONNONNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNOONNOONNNNNNNNNNNNNNNOOONNOCONNNNOOONNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNOOOONNNOOONNNNNNNNNNNNPPPGNNNNNNNNNNNNNNNNNNNNNNNFFFFFFFFFFFFFFPFFPFGFFFFOOOOOONOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNONONOOONOONNOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNNNNNNNNNNNNNNNOOFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPFPGFKFPPPMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNMNNNNMNNNNHCNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOHCHHPGPPPPPNNNNNNNNNNNNNNHNNNNNPPPPPGFPGFGPPFIIFIIFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOPPPPFPPFPGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHHNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNSHHHHHH","n":["DecryptedOutput","Incoming","Orchard","Outgoing","PoolType","Sapling","Shielded","ShieldedProtocol","TransferType","Transparent","WalletInternal","account","address","borrow","","borrow_mut","","clone","clone_into","clone_to_uninit","data_api","decrypt_transaction","deref","","deref_mut","","drop","","encoding","eq","fees","fmt","from","","index","init","","into","","into_request","","keys","memo","named_layer","","new","note","note_value","","proposal","proto","scan","scanning","serialization","sync","to_owned","transfer_type","try_from","","try_into","","type_id","","vzip","","wallet","zip321","Address","Orchard","Receiver","Sapling","","Tex","Transparent","","Unified","UnifiedAddress","borrow","","","borrow_mut","","","can_receive_as","clone","","clone_into","","clone_to_uninit","","corresponds","decode","","deref","","","deref_mut","","","drop","","","encode","","","eq","","fmt","","from","","","","","","from_receivers","has_orchard","has_sapling","has_transparent","init","","","into","","","into_request","","","named_layer","","","orchard","receiver_types","sapling","testing","to_owned","","to_transparent_address","to_zcash_address","","transparent","try_from","","","","try_from_raw_sapling","try_from_raw_tex","try_from_raw_transparent_p2pkh","try_from_raw_transparent_p2sh","try_from_raw_unified","try_from_zcash_address","try_into","","","type_id","","","unknown","vzip","","","arb_addr","arb_unified_addr","Account","","AccountBalance","AccountBirthday","AccountId","","","AccountMeta","AccountPurpose","AccountSource","AddressInfo","All","","","Attempt","Balance","BirthdayError","BlockMetadata","BoundedU8","Combine","Decode","DecryptedTransaction","Derived","Enhancement","Error","","","ExceedsBalancePercentage","ExceedsMinValue","ExceedsPriorSendPercentile","GetStatus","HeightInvalid","Imported","InputSource","Mempool","Mined","","NoAccounts","NoDerivedAccounts","NotInMainChain","NotRelevant","NoteFilter","NoteRef","NoteRetention","NullifierQuery","ORCHARD_SHARD_HEIGHT","OrchardShardStore","OutputOfSentTx","OutputStatusFilter","PoolMeta","Progress","Ratio","Relevant","SAPLING_SHARD_HEIGHT","SaplingShardStore","ScannedBlock","ScannedBlockCommitments","ScannedBundles","SeedRelevance","SentTransaction","SentTransactionOutput","SpendableNotes","Spending","TransactionDataRequest","TransactionStatus","TransactionStatusFilter","TransactionsInvolvingAddress","TxidNotRecognized","Unspent","","UtxoRef","ViewOnly","WalletCommitmentTrees","WalletRead","WalletSummary","WalletTest","WalletWrite","ZERO","","Zip32Derivation","account_balances","account_id","account_index","add_pending_change_value","add_pending_spendable_value","add_spendable_value","address","ambassador_impl_InputSource","ambassador_impl_WalletCommitmentTrees","ambassador_impl_WalletRead","ambassador_impl_WalletTest","ambassador_impl_WalletWrite","attempt","block_fully_scanned","block_hash","","block_height","block_max_scanned","block_metadata","block_time","borrow","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","borrow_mut","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","chain","chain_height","chain_tip_height","change_pending_confirmation","","clone","","","","","","","","","","","","","","","","","","","","clone_into","","","","","","","","","","","","","","","","","","","","clone_to_uninit","","","","","","","","","","","","","","","","","","","","cmp","","","","combine","commitments","create_account","created","denominator","deref","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","deref_mut","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","diversifier_index","drop","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","empty","eq","","","","","","","","","","","","","","error","fee_amount","final_tree_size","find_account_for_ephemeral_address","fmt","","","","","","","","","","","","","","","","","","","","from","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","from_activation","from_parts","","","","","from_sapling_activation","from_treestate","fully_scanned_height","get_account","get_account_birthday","get_account_for_ufvk","get_account_ids","get_account_metadata","get_address_for_index","get_block_hash","get_checkpoint_history","get_derived_account","get_known_ephemeral_addresses","get_last_generated_address_matching","get_max_height_hash","get_memo","get_next_available_address","get_notes","get_orchard_nullifiers","get_sapling_nullifiers","get_sent_note_ids","get_sent_outputs","get_spendable_note","get_spendable_transparent_outputs","get_target_and_anchor_heights","get_transaction","get_transparent_address_metadata","get_transparent_balances","get_transparent_output","get_transparent_receivers","get_tx_height","get_tx_history","get_unified_full_viewing_keys","get_unspent_transparent_output","get_wallet_birthday","get_wallet_summary","hash","","","","","","height","","id","import_account_hd","import_account_ufvk","init","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","into","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","into_commitments","into_request","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","into_vec","is_synced","key_derivation","key_source","list_addresses","memo","mined_height","name","named_layer","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","new","","","","","","","","","","new_const","next_orchard_subtree_index","next_sapling_subtree_index","note_count","","nullifier_map","numerator","orchard","","","","orchard_balance","orchard_frontier","orchard_outputs","orchard_tree_size","orchard_value","output_index","outputs","partial_cmp","","","","progress","purpose","put_blocks","put_orchard_subtree_roots","put_received_transparent_utxo","put_sapling_subtree_roots","recipient","recover_until","recovery","reserve_next_n_ephemeral_addresses","sapling","","","","sapling_balance","sapling_frontier","sapling_outputs","sapling_tree_size","sapling_value","scan","scanning","seed_fingerprint","seed_relevance_to_derived_accounts","select_spendable_notes","set_transaction_status","should_retain_orchard","should_retain_sapling","source","spendable_value","","store_decrypted_tx","store_transactions_to_be_sent","suggest_scan_ranges","take_orchard","take_sapling","target_height","testing","to_block_metadata","to_owned","","","","","","","","","","","","","","","","","","","","total","","total_note_count","total_value","","transaction_data_requests","transactions","transparent_key_scope","truncate_to_height","try_from","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","try_into","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","tx","","type_id","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","ufvk","uivk","unshielded","unshielded_balance","update_chain_tip","utxo_query_height","utxos_spent","validate_seed","value","","","value_pending_spendability","","vzip","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","wallet","with_orchard_balance_mut","with_orchard_tree_mut","with_sapling_balance_mut","with_sapling_tree_mut","with_unshielded_balance_mut","derivation","","key_source","","purpose","condition","fallback","account_ids","address","block_range_end","block_range_start","output_status_filter","request_at","tx_status_filter","BlockCache","BlockSource","ChainState","CommitmentTreeRoot","Error","ScanSummary","block_hash","block_height","borrow","","","borrow_mut","","","clone","","clone_into","","clone_to_uninit","","delete","deref","","","deref_mut","","","drop","","","empty","error","final_orchard_tree","final_sapling_tree","fmt","","","from","","","from_parts","get_tip_height","init","","","insert","into","","","into_request","","","named_layer","","","new","read","received_orchard_note_count","received_sapling_note_count","root_hash","scan_cached_blocks","scanned_range","spent_orchard_note_count","spent_sapling_note_count","subtree_end_height","testing","to_owned","","truncate","try_from","","","try_into","","","type_id","","","vzip","","","with_blocks","BlockSource","Error","Scan","Wallet","borrow","borrow_mut","deref","deref_mut","drop","fmt","","from","","init","into","into_request","named_layer","source","to_string","try_from","try_into","type_id","vzip","MockBlockSource","borrow","borrow_mut","deref","deref_mut","drop","from","init","into","into_request","named_layer","try_from","try_into","type_id","vzip","with_blocks","AccountCannotSpend","AccountIdNotRecognized","Address","AddressNotRecognized","BalanceError","Builder","Change","CommitmentTree","DataSource","Error","InsufficientFunds","KeyNotAvailable","KeyNotRecognized","MemoForbidden","NoSupportedReceivers","NoteMismatch","NoteSelection","PaysEphemeralTransparentAddress","Proposal","ProposalNotSupported","ScanRequired","UnsupportedChangeType","borrow","borrow_mut","deref","deref_mut","drop","fmt","","from","","","","","","","","","init","into","into_request","named_layer","source","to_string","try_from","try_into","type_id","vzip","available","required","ChainTip","FoundNote","Historic","Ignored","OpenAdjacent","ScanPriority","ScanRange","Scanned","Verify","block_range","borrow","","borrow_mut","","clone","","clone_into","","clone_to_uninit","","cmp","deref","","deref_mut","","drop","","eq","","fmt","","","from","","from_parts","init","","into","","into_request","","is_empty","len","named_layer","","partial_cmp","priority","spanning_tree","split_at","to_owned","","to_string","truncate_end","truncate_start","try_from","","try_into","","type_id","","vzip","","Leaf","Parent","SpanningTree","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","drop","fmt","from","init","insert","into","into_request","into_vec","named_layer","testing","to_owned","try_from","try_into","type_id","vzip","left","right","span","scan_range","Account","AccountId","AddressType","BlockSource","BsError","CachedBlock","DEFAULT_NETWORK","DataStore","DataStoreFactory","DefaultExternal","DiversifiedExternal","DsError","Error","FakeCompactOutput","Handle","InitialChainState","InsertResult","Internal","MockWalletDb","NoteCommitments","Nullifier","Reset","TestAccount","TestBuilder","TestCache","TestFvk","TestState","TransactionSummary","account","account_id","account_value_delta","add_logical_action","add_output","add_spend","at","birthday","block_fully_scanned","block_max_scanned","block_metadata","block_source","borrow","","","","","","","","","","borrow_mut","","","","","","","","","","build","cache","chain_height","chain_state","clone","","","","clone_into","","","","clone_to_uninit","","","","create_account","create_proposed_transactions","create_standard_transaction","default","deref","","","","","","","","","","deref_mut","","","","","","","","","","drop","","","","","","","","","","expired_unmined","expiry_height","fee_paid","find_account_for_ephemeral_address","fmt","from","","","","","","","","","","from_compact_block","from_parts","generate_block_at","generate_empty_block","generate_next_block","generate_next_block_from_tx","generate_next_block_including","generate_next_block_multi","generate_next_block_spending","get_account","get_account_birthday","get_account_for_ufvk","get_account_ids","get_account_metadata","get_address_for_index","get_block_hash","get_derived_account","get_known_ephemeral_addresses","get_last_generated_address_matching","get_max_height_hash","get_memo","get_next_available_address","get_orchard_nullifiers","get_pending_change","get_pending_shielded_balance","get_sapling_nullifiers","get_spendable_balance","get_spendable_note","get_target_and_anchor_heights","get_total_balance","get_transaction","get_transparent_address_metadata","get_transparent_balances","get_transparent_receivers","get_tx_from_history","get_tx_height","get_unified_full_viewing_keys","get_wallet_birthday","get_wallet_summary","","has_change","height","id","import_account_hd","import_account_ufvk","init","","","","","","","","","","insert","into","","","","","","","","","","into_request","","","","","","","","","","is_shielding","latest_cached_block","list_addresses","memo_count","mined_height","name","named_layer","","","","","","","","","","network","","new","","","new_data_store","none","nu5_activation_height","orchard","","orchard_end_size","orchard_ovk","orchard_tree","pool","prior_orchard_roots","prior_sapling_roots","propose_shielding","propose_standard_transfer","propose_transfer","put_blocks","put_orchard_subtree_roots","put_received_transparent_utxo","put_sapling_subtree_roots","put_subtree_roots","random","received_note_count","reserve_next_n_ephemeral_addresses","reset","","rng_mut","sapling","","sapling_activation_height","sapling_end_size","sapling_ovk","sapling_tree","scan_cached_blocks","seed_relevance_to_derived_accounts","select_spendable_notes","sent_note_count","set_account_index","set_transaction_status","shield_transparent_funds","single_output_change_strategy","source","spend","spent_note_count","store_decrypted_tx","store_transactions_to_be_sent","suggest_scan_ranges","test_account","test_account_orchard","test_account_sapling","test_seed","to_owned","","","","total_received","total_spent","transaction_data_requests","transparent","truncate_to_height","","","truncate_to_height_retaining_cache","try_from","","","","","","","","","","try_into","","","","","","","","","","try_scan_cached_blocks","txid","type_id","","","","","","","","","","ufvk","uivk","update_chain_tip","usk","utxo_query_height","validate_seed","vzip","","","","","","","","","","wallet","wallet_mut","with_account_from_sapling_activation","with_account_having_current_birthday","with_block_cache","with_data_store_factory","with_gap_limits","with_initial_chain_state","with_orchard_tree_mut","with_sapling_tree_mut","OrchardPoolTester","borrow","borrow_mut","decrypted_pool_outputs_count","deref","deref_mut","drop","empty_tree_leaf","empty_tree_root","from","fvk_default_address","fvks_equal","init","into","into_request","named_layer","next_subtree_index","put_subtree_roots","received_note_count","select_spendable_notes","sk","sk_default_address","sk_to_fvk","test_account_fvk","try_from","try_into","try_output_recovery","type_id","usk_to_sk","vzip","with_decrypted_pool_memos","Fvk","MerkleTreeHash","Note","SHIELDED_PROTOCOL","ShieldedPoolTester","Sk","birthday_in_anchor_shard","change_note_spends_succeed","checkpoint_gaps","create_to_address_fails_on_incorrect_usk","data_db_truncation","decrypted_pool_outputs_count","empty_tree_leaf","empty_tree_root","external_address_change_spends_detected_in_restore_from_seed","fully_funded_fully_private","fully_funded_send_to_t","fvk_default_address","fvks_equal","invalid_chain_cache_disconnected","metadata_queries_exclude_unwanted_notes","multi_pool_checkpoint","multi_pool_checkpoints_with_pruning","next_subtree_index","ovk_policy_prevents_recovery_from_chain","pool_crossing_required","proposal_fails_if_not_all_ephemeral_outputs_consumed","proposal_fails_with_no_blocks","put_subtree_roots","random_address","random_fvk","received_note_count","reorg_to_checkpoint","scan_cached_blocks_allows_blocks_out_of_order","scan_cached_blocks_detects_spends_out_of_order","scan_cached_blocks_finds_change_notes","scan_cached_blocks_finds_received_notes","select_spendable_notes","send_multi_step_proposed_transfer","send_single_step_proposed_transfer","send_with_multiple_change_outputs","shield_transparent","sk","sk_default_address","sk_to_fvk","spend_fails_on_locked_notes","spend_fails_on_unverified_notes","spend_succeeds_to_t_addr_zero_change","test_account_fvk","try_output_recovery","usk_to_sk","valid_chain_states","with_decrypted_pool_memos","zip317_spend","SaplingPoolTester","borrow","borrow_mut","decrypted_pool_outputs_count","deref","deref_mut","drop","empty_tree_leaf","empty_tree_root","from","fvk_default_address","fvks_equal","init","into","into_request","named_layer","next_subtree_index","put_subtree_roots","received_note_count","select_spendable_notes","sk","sk_default_address","sk_to_fvk","test_account_fvk","try_from","try_into","try_output_recovery","type_id","usk_to_sk","vzip","with_decrypted_pool_memos","GapLimits","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","drop","ephemeral","eq","external","fmt","from","gap_limits","init","internal","into","into_request","named_layer","new","put_received_transparent_utxo","to_owned","transparent_balance_across_shielding","transparent_balance_spendability","try_from","try_into","type_id","vzip","AccountCannotSpend","","","","","AccountIdNotRecognized","","","","","Address","","","","","AddressNotRecognized","","","","","BalanceError","","","","","Builder","","","","","Change","","","","","CommitmentTree","","","","","CreateErrT","DataSource","","","","","InsufficientFunds","","","","","KeyNotAvailable","","","","","KeyNotRecognized","","","","","MemoForbidden","","","","","NoSupportedReceivers","","","","","NoteMismatch","","","","","NoteSelection","","","","","PaysEphemeralTransparentAddress","","","","","Proposal","","","","","ProposalNotSupported","","","","","ProposeShieldingErrT","ProposeTransferErrT","ScanRequired","","","","","ShieldErrT","TransferErrT","UnsupportedChangeType","","","","","create_proposed_transactions","decrypt_and_store_transaction","input_selection","propose_shielding","propose_standard_transfer_to_address","propose_transfer","shield_transparent_funds","available","required","available","required","available","required","available","required","available","required","Address","Balance","Change","DataSource","Error","","GreedyInputSelector","GreedyInputSelectorError","InputSelector","InputSelectorError","InputSource","","InsufficientFunds","Proposal","Selection","ShieldingSelector","SyncRequired","UnsupportedAddress","UnsupportedTexAddress","borrow","","","borrow_mut","","","clone","clone_into","clone_to_uninit","default","deref","","","deref_mut","","","drop","","","eq","fmt","","","","from","","","","","","","init","","","into","","","into_request","","","named_layer","","","new","propose_shielding","","propose_transaction","","source","to_owned","to_string","","try_from","","","try_into","","","type_id","","","vzip","","","available","required","AddressCodec","Base58","Bech32DecodeError","Bech32Error","Error","Hrp","HrpMismatch","ReadError","TransparentCodecError","UnsupportedAddressType","borrow","","borrow_mut","","clone","clone_into","clone_to_uninit","decode","decode_extended_full_viewing_key","decode_extended_spending_key","decode_extfvk_with_network","decode_payment_address","decode_transparent_address","deref","","deref_mut","","drop","","encode","encode_extended_full_viewing_key","encode_extended_spending_key","encode_payment_address","encode_payment_address_p","encode_transparent_address","encode_transparent_address_p","eq","fmt","","","","from","","","","init","","into","","into_request","","named_layer","","to_owned","to_string","","try_from","","try_into","","type_id","","vzip","","actual","expected","AccountMetaT","AddDustToFee","AllowDustChange","BundleError","ChangeError","ChangeStrategy","ChangeValue","DustAction","DustInputs","DustOutputPolicy","EphemeralBalance","Error","FeeRule","Input","InsufficientFunds","MetaSource","Output","Reject","SplitPolicy","StandardFeeRule","StrategyError","TransactionBalance","Zip317","action","borrow","","","","","","","","borrow_mut","","","","","","","","clone","","","","","","","","clone_into","","","","","","","","clone_to_uninit","","","","","","","","common","compute_balance","default","deref","","","","","","","","deref_mut","","","","","","","","drop","","","","","","","","dust_threshold","ephemeral_input_amount","ephemeral_output_amount","ephemeral_transparent","eq","","","","","","","fee_required","","fee_rule","fetch_wallet_meta","fmt","","","","","","","","","from","","","","","","","","grace_actions","init","","","","","","","","into","","","","","","","","into_request","","","","","","","","is_ephemeral","is_input","is_output","marginal_fee","memo","min_split_output_value","named_layer","","","","","","","","new","","orchard","","output_pool","proposed_change","sapling","","shielded","single_output","source","split_count","standard","target_output_count","to_owned","","","","","","","","to_string","total","try_from","","","","","","","","try_into","","","","","","","","type_id","","","","","","","","value","vzip","","","","","","","","with_min_output_value","zip317","available","orchard","required","sapling","transparent","BundleView","EmptyBundleView","In","InputView","Out","OutputView","borrow","borrow_mut","bundle_type","","deref","deref_mut","drop","from","init","inputs","","into","into_request","named_layer","note_id","outputs","","try_from","try_into","type_id","value","","vzip","BundleView","EmptyBundleView","In","InputView","Out","OutputView","borrow","borrow_mut","bundle_type","","deref","deref_mut","drop","from","init","inputs","","into","into_request","named_layer","note_id","outputs","","try_from","try_into","type_id","value","","vzip","MultiOutputChangeStrategy","SingleOutputChangeStrategy","MultiOutputChangeStrategy","SingleOutputChangeStrategy","Zip317FeeRule","borrow","","borrow_mut","","compute_balance","","deref","","deref_mut","","drop","","fee_rule","","fetch_wallet_meta","","from","","grace_actions","init","","into","","into_request","","marginal_fee","named_layer","","new","","try_from","","try_into","","type_id","","vzip","","ALLOW_ALL","","AddressGenerationError","AllAvailableKeys","Allow","Custom","DecodingError","DerivationError","DiversifierSpaceExhausted","Era","EraInvalid","EraMismatch","InsufficientData","InvalidSaplingDiversifierIndex","InvalidTransparentChildIndex","KeyDataInvalid","KeyNotAvailable","LengthInvalid","LengthMismatch","Omit","Orchard","","ReadError","ReceiverRequirement","ReceiverRequirements","ReceiverTypeNotSupported","Require","ShieldedReceiverRequired","Transparent","TypecodeInvalid","UnifiedAddressRequest","UnifiedFullViewingKey","UnifiedIncomingViewingKey","UnifiedSpendingKey","address","","borrow","","","","","","","","","","borrow_mut","","","","","","","","","","clone","","","","","","","clone_into","","","","","","","clone_to_uninit","","","","","","","custom","decode","","default_address","","","default_transparent_address","deref","","","","","","","","","","deref_mut","","","","","","","","","","drop","","","","","","","","","","encode","","eq","","","find_address","","fmt","","","","","","","","","","","","","from","","","","","","","","","","","from_bytes","from_sapling_extended_full_viewing_key","from_seed","has_orchard","has_sapling","has_transparent","init","","","","","","","","","","intersect","","into","","","","","","","","","","into_request","","","","","","","","","","named_layer","","","","","","","","","","new","","","orchard","","","","p2pkh","parse","receiver_requirements","sapling","","","","","testing","to_bytes","to_owned","","","","","","","to_receiver_requirements","to_string","","","to_unified_full_viewing_key","to_unified_incoming_viewing_key","transparent","","","try_from","","","","","","","","","","try_into","","","","","","","","","","type_id","","","","","","","","","","unsafe_custom","unsafe_new","vzip","","","","","","","","","","DiversifiableFullViewingKey","ExtendedFullViewingKey","ExtendedSpendingKey","add_logical_action","add_output","add_spend","address","","borrow","","","borrow_mut","","","change_address","clone","","","clone_into","","","clone_to_uninit","","","decrypt_diversifier","default_address","","","deref","","","deref_mut","","","derive_child","derive_internal","","diversified_address","diversified_change_address","drop","","","eq","","expsk","find_address","","fmt","","","from","","","","","from_bytes","","from_path","fvk","","init","","","into","","","into_request","","","master","named_layer","","","orchard_ovk","read","","sapling_ovk","spending_key","to_bytes","","to_diversifiable_full_viewing_key","","to_extended_full_viewing_key","to_external_ivk","to_internal_fvk","to_ivk","to_nk","to_ovk","to_owned","","","try_from","","","try_into","","","type_id","","","vzip","","","write","","arb_unified_spending_key","AnchorNotFound","BalanceError","ChainDoubleSpend","Change","EphemeralOutputLeftUnspent","EphemeralOutputsInvalid","Overflow","Payment","PaymentPoolsMismatch","PaysTexFromShielded","Proposal","ProposalError","ReferenceError","RequestTotalInvalid","ShieldedInputs","ShieldingInvalid","SpendsChange","Step","StepDoubleSpend","StepOutput","StepOutputIndex","anchor_height","balance","borrow","","","","","","borrow_mut","","","","","","clone","","","","","","clone_into","","","","","","clone_to_uninit","","","","","","cmp","","deref","","","","","","deref_mut","","","","","","drop","","","","","","eq","","","","","fee_rule","fmt","","","","","","from","","","","","","from_parts","","hash","","init","","","","","","into","","","","","","into_request","","","","","","involves","is_shielding","min_target_height","multi_step","named_layer","","","","","","new","notes","output_index","partial_cmp","","payment_pools","prior_step_inputs","shielded_inputs","single_step","step_index","steps","to_owned","","","","","","to_string","transaction_request","transparent_inputs","try_from","","","","","","try_into","","","","","","type_id","","","","","","vzip","","","","","","input_total","output_total","BalanceInvalid","EmptyShieldedInputs","FeeRuleNotSupported","InputNotFound","InputRetrieval","InvalidChangeRecipient","InvalidEphemeralRecipient","MemoInvalid","NoSteps","NullInput","PROPOSAL_SER_V1","ProposalDecodingError","ProposalInvalid","TransparentMemo","TxIdInvalid","ValuePoolNotSupported","VersionInvalid","Zip321","borrow","borrow_mut","clone","clone_into","clone_to_uninit","compact_formats","deref","deref_mut","drop","fmt","","from","","init","into","into_request","named_layer","proposal","service","source","to_owned","to_string","try_from","try_into","type_id","vzip","ChainMetadata","CompactBlock","CompactOrchardAction","CompactSaplingOutput","CompactSaplingSpend","CompactTx","actions","borrow","","","","","","borrow_mut","","","","","","chain_metadata","ciphertext","","clear","","","","","","clone","","","","","","clone_into","","","","","","clone_to_uninit","","","","","","cmu","","cmx","","default","","","","","","deref","","","","","","deref_mut","","","","","","drop","","","","","","encoded_len","","","","","","ephemeral_key","","","","eq","","","","","","fee","fmt","","","","","","from","","","","","","","","","hash","","","header","","height","","index","init","","","","","","into","","","","","","into_request","","","","","","named_layer","","","","","","nf","","","nullifier","orchard_commitment_tree_size","outputs","prev_hash","","proto_version","sapling_commitment_tree_size","spends","time","to_owned","","","","","","try_from","","","","","","try_into","","","","","","txid","type_id","","","","","","vtx","vzip","","","","","","ChangeValue","FeeRule","MemoBytes","NotSpecified","Orchard","PaymentOutputPool","PoolNotSpecified","PreZip313","PriorStepChange","PriorStepOutput","Proposal","ProposalStep","ProposedInput","ReceivedOutput","Sapling","TransactionBalance","Transparent","ValuePool","Zip313","Zip317","anchor_height","as_str_name","","balance","borrow","","","","","","","","","","","","borrow_mut","","","","","","","","","","","","change_index","clear","","","","","","","","","","clone","","","","","","","","","","","","clone_into","","","","","","","","","","","","clone_to_uninit","","","","","","","","","","","","cmp","","default","","","","","","","","","","","","deref","","","","","","","","","","","","deref_mut","","","","","","","","","","","","drop","","","","","","","","","","","","encoded_len","","","","","","","","","","eq","","","","","","","","","","","","fee_required","fee_rule","","fmt","","","","","","","","","","","","from","","","","","","","","","","","","","","from_i32","","from_standard_proposal","from_str_name","","hash","","index","init","","","","","","","","","","","","inputs","into","","","","","","","","","","","","into_request","","","","","","","","","","","","is_ephemeral","is_shielding","is_valid","","memo","min_target_height","named_layer","","","","","","","","","","","","parse_txid","partial_cmp","","payment_index","","payment_output_pools","pool_type","","proposed_change","proposed_input","proto_version","set_fee_rule","set_value_pool","","","step_index","","steps","to_owned","","","","","","","","","","","","transaction_request","try_from","","","","","","","","","","","","","","try_into","","","","","","","","","","","","try_into_standard_proposal","txid","type_id","","","","","","","","","","","","value","","","","value_pool","","","","","","vzip","","","","","","","","","","","","PriorStepChange","PriorStepOutput","ReceivedOutput","Value","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","drop","encode","encoded_len","eq","fmt","from","init","into","into_request","merge","named_layer","to_owned","try_from","try_into","type_id","vzip","Address","AddressList","Balance","BlockId","BlockRange","ChainSpec","Duration","Empty","Exclude","GetAddressUtxosArg","GetAddressUtxosReply","GetAddressUtxosReplyList","GetSubtreeRootsArg","LightdInfo","Orchard","PingResponse","RawTransaction","Sapling","SendResponse","ShieldedProtocol","SubtreeRoot","TransparentAddressBlockFilter","TreeState","TxFilter","address","","","address_utxos","addresses","","as_str_name","block","block_height","borrow","","","","","","","","","","","","","","","","","","","","","","borrow_mut","","","","","","","","","","","","","","","","","","","","","","branch","build_date","build_user","chain_name","clear","","","","","","","","","","","","","","","","","","","","","clone","","","","","","","","","","","","","","","","","","","","","","clone_into","","","","","","","","","","","","","","","","","","","","","","clone_to_uninit","","","","","","","","","","","","","","","","","","","","","","cmp","compact_tx_streamer_client","completing_block_hash","completing_block_height","consensus_branch_id","data","default","","","","","","","","","","","","","","","","","","","","","","deref","","","","","","","","","","","","","","","","","","","","","","deref_mut","","","","","","","","","","","","","","","","","","","","","","donation_address","drop","","","","","","","","","","","","","","","","","","","","","","encoded_len","","","","","","","","","","","","","","","","","","","","","end","entry","eq","","","","","","","","","","","","","","","","","","","","","","error_code","error_message","estimated_height","exit","fmt","","","","","","","","","","","","","","","","","","","","","","from","","","","","","","","","","","","","","","","","","","","","","from_i32","from_str_name","git_commit","hash","","","","height","","","","index","","init","","","","","","","","","","","","","","","","","","","","","","interval_us","into","","","","","","","","","","","","","","","","","","","","","","into_request","","","","","","","","","","","","","","","","","","","","","","is_valid","max_entries","","named_layer","","","","","","","","","","","","","","","","","","","","","","network","orchard_tree","","partial_cmp","range","root_hash","sapling_activation_height","sapling_tree","","script","set_shielded_protocol","shielded_protocol","","start","start_height","start_index","taddr_support","time","to_chain_state","to_owned","","","","","","","","","","","","","","","","","","","","","","try_from","","","","","","","","","","","","","","","","","","","","","","","try_into","","","","","","","","","","","","","","","","","","","","","","txid","","type_id","","","","","","","","","","","","","","","","","","","","","","value_zat","","vendor","version","vzip","","","","","","","","","","","","","","","","","","","","","","zcashd_build","zcashd_subversion","CompactTxStreamerClient","accept_compressed","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","drop","fmt","from","get_address_utxos","get_address_utxos_stream","get_block","get_block_nullifiers","get_block_range","get_block_range_nullifiers","get_latest_block","get_latest_tree_state","get_lightd_info","get_mempool_stream","get_mempool_tx","get_subtree_roots","get_taddress_balance","get_taddress_balance_stream","get_taddress_txids","get_transaction","get_tree_state","init","into","into_request","max_decoding_message_size","max_encoding_message_size","named_layer","new","ping","send_compressed","send_transaction","to_owned","try_from","try_into","type_id","vzip","with_interceptor","with_origin","BlockHeightDiscontinuity","EncodingInvalid","Nullifiers","PrevHashMismatch","ScanError","ScanningKey","ScanningKeyOps","ScanningKeys","TreeSizeInvalid","TreeSizeMismatch","TreeSizeUnknown","account_id","","","at_height","borrow","","","","borrow_mut","","","","clone","clone_into","clone_to_uninit","deref","","","","deref_mut","","","","drop","","","","empty","","fmt","","from","","","","from_account_ufvks","init","","","","into","","","","into_request","","","","is_continuity_error","key_scope","","","named_layer","","","","new","nf","","","orchard","","prepare","","","sapling","","scan_block","testing","to_owned","to_string","try_from","","","","try_into","","","","type_id","","","","vzip","","","","at_height","","","","","computed","given","index","new_height","pool_type","prev_height","protocol","","","txid","fake_compact_block","shardtree","read_shard","write_shard","Cache","Error","MisbehavingServer","Scan","Server","Wallet","WalletTrees","borrow","borrow_mut","deref","deref_mut","drop","fmt","","from","","","init","into","into_request","named_layer","run","to_string","try_from","try_into","type_id","vzip","Custom","Discard","EphemeralTransparent","External","InternalAccount","Note","NoteId","Orchard","OvkPolicy","ReceivedNote","Recipient","Sapling","Sender","TransparentAddressMetadata","WalletOrchardOutput","WalletOrchardSpend","WalletOutput","WalletSaplingOutput","WalletSaplingSpend","WalletSpend","WalletTransparentOutput","WalletTx","account_id","","address_index","block_index","borrow","","","","","","","","","","borrow_mut","","","","","","","","","","clone","","","","","","","clone_into","","","","","","","clone_to_uninit","","","","","","","cmp","coin","custom_from_common_bytes","deref","","","","","","","","","","deref_mut","","","","","","","","","","drop","","","","","","","","","","ephemeral_key","eq","","","","","fmt","","","","","","","from","","","","","","","","","","from_parts","","","","index","","init","","","","","","","","","","internal_note_id","into","","","","","","","","","","into_request","","","","","","","","","","is_change","map_note","mined_height","named_layer","","","","","","","","","","new","","","nf","","note","","note_commitment_tree_position","","note_id","","note_value","","orchard_outputs","orchard_spends","outpoint","","output_index","","partial_cmp","protocol","","recipient_address","recipient_key_scope","sapling_outputs","sapling_spends","scope","spending_key_scope","to_owned","","","","","","","try_from","","","","","","","","","","try_into","","","","","","","","","","txid","","","txout","type_id","","","","","","","","","","value","","","","vzip","","","","","","","","","","orchard","sapling","ephemeral_address","external_address","note","outpoint","output_pool","receiving_account","","recipient_address","DuplicateParameter","InvalidBase64","MemoBytesError","ParseError","Payment","RecipientMissing","TooManyPayments","TransactionRequest","TransparentMemo","Zip321Error","amount","borrow","","","borrow_mut","","","clone","","","clone_into","","","clone_to_uninit","","","deref","","","deref_mut","","","drop","","","empty","eq","","","fmt","","","","from","","","","from_indexed","from_uri","init","","","into","","","into_request","","","label","memo","memo_from_base64","memo_to_base64","message","named_layer","","","new","","other_params","payments","recipient_address","source","testing","to_owned","","","to_string","to_uri","total","try_from","","","try_into","","","type_id","","","vzip","","","without_memo","VALID_PARAMNAME","arb_addr_str","arb_valid_memo","arb_zip321_payment","arb_zip321_request","arb_zip321_request_sequential","arb_zip321_uri"],"q":[[0,"zcash_client_backend"],[67,"zcash_client_backend::address"],[161,"zcash_client_backend::address::testing"],[163,"zcash_client_backend::data_api"],[981,"zcash_client_backend::data_api::AccountPurpose"],[982,"zcash_client_backend::data_api::AccountSource"],[986,"zcash_client_backend::data_api::NoteFilter"],[988,"zcash_client_backend::data_api::SeedRelevance"],[989,"zcash_client_backend::data_api::TransactionDataRequest"],[995,"zcash_client_backend::data_api::chain"],[1077,"zcash_client_backend::data_api::chain::error"],[1100,"zcash_client_backend::data_api::chain::testing"],[1116,"zcash_client_backend::data_api::error"],[1164,"zcash_client_backend::data_api::error::Error"],[1166,"zcash_client_backend::data_api::scanning"],[1228,"zcash_client_backend::data_api::scanning::spanning_tree"],[1253,"zcash_client_backend::data_api::scanning::spanning_tree::SpanningTree"],[1256,"zcash_client_backend::data_api::scanning::spanning_tree::testing"],[1257,"zcash_client_backend::data_api::testing"],[1598,"zcash_client_backend::data_api::testing::orchard"],[1629,"zcash_client_backend::data_api::testing::pool"],[1683,"zcash_client_backend::data_api::testing::sapling"],[1714,"zcash_client_backend::data_api::testing::transparent"],[1743,"zcash_client_backend::data_api::wallet"],[1860,"zcash_client_backend::data_api::error::Error"],[1870,"zcash_client_backend::data_api::wallet::input_selection"],[1953,"zcash_client_backend::data_api::wallet::input_selection::InputSelectorError"],[1955,"zcash_client_backend::encoding"],[2019,"zcash_client_backend::encoding::Bech32DecodeError"],[2021,"zcash_client_backend::fees"],[2242,"zcash_client_backend::fees::ChangeError"],[2247,"zcash_client_backend::fees::orchard"],[2276,"zcash_client_backend::fees::sapling"],[2305,"zcash_client_backend::fees::standard"],[2307,"zcash_client_backend::fees::zip317"],[2348,"zcash_client_backend::keys"],[2616,"zcash_client_backend::keys::sapling"],[2721,"zcash_client_backend::keys::testing"],[2722,"zcash_client_backend::proposal"],[2889,"zcash_client_backend::proposal::ProposalError"],[2891,"zcash_client_backend::proto"],[2935,"zcash_client_backend::proto::compact_formats"],[3117,"zcash_client_backend::proto::proposal"],[3469,"zcash_client_backend::proto::proposal::proposed_input"],[3496,"zcash_client_backend::proto::service"],[4095,"zcash_client_backend::proto::service::compact_tx_streamer_client"],[4141,"zcash_client_backend::scanning"],[4239,"zcash_client_backend::scanning::ScanError"],[4254,"zcash_client_backend::scanning::testing"],[4255,"zcash_client_backend::serialization"],[4256,"zcash_client_backend::serialization::shardtree"],[4258,"zcash_client_backend::sync"],[4285,"zcash_client_backend::wallet"],[4541,"zcash_client_backend::wallet::OvkPolicy"],[4543,"zcash_client_backend::wallet::Recipient"],[4551,"zcash_client_backend::zip321"],[4643,"zcash_client_backend::zip321::testing"],[4650,"zcash_client_backend::decrypt"],[4651,"zcash_protocol::consensus"],[4652,"core::option"],[4653,"zcash_primitives::transaction"],[4654,"zcash_keys::keys"],[4655,"std::collections::hash::map"],[4656,"core::marker"],[4657,"core::fmt"],[4658,"tonic::request"],[4659,"zcash_protocol::memo"],[4660,"tonic::service::layered"],[4661,"sapling_crypto::note"],[4662,"zcash_protocol::value"],[4663,"orchard::note"],[4664,"core::result"],[4665,"core::any"],[4666,"zcash_keys::address"],[4667,"zcash_protocol"],[4668,"zcash_address"],[4669,"alloc::string"],[4670,"sapling_crypto::address"],[4671,"zcash_transparent::address"],[4672,"orchard::address"],[4673,"zcash_address::kind::unified"],[4674,"alloc::vec"],[4675,"zcash_address::kind::unified::address"],[4676,"zcash_address::convert"],[4677,"proptest::strategy::traits"],[4678,"core::cmp"],[4679,"core::hash"],[4680,"zip32"],[4681,"zcash_primitives::block"],[4682,"core::clone"],[4683,"incrementalmerkletree"],[4684,"secrecy::vec"],[4685,"time::offset_date_time"],[4686,"core::num::error"],[4687,"std::io::error"],[4688,"zcash_transparent::keys"],[4689,"zip32::fingerprint"],[4690,"core::ops::range"],[4691,"orchard::note::nullifier"],[4692,"sapling_crypto::note::nullifier"],[4693,"zcash_protocol::txid"],[4694,"core::num::nonzero"],[4695,"zcash_transparent::bundle"],[4696,"orchard::tree"],[4697,"incrementalmerkletree::frontier"],[4698,"shardtree::error"],[4699,"sapling_crypto::tree"],[4700,"shardtree::store"],[4701,"core::convert"],[4702,"core::ops::function"],[4703,"shardtree"],[4704,"alloc::boxed"],[4705,"nonempty"],[4706,"core::future::future"],[4707,"core::pin"],[4708,"core::error"],[4709,"sapling_crypto::builder"],[4710,"zcash_primitives::transaction::builder"],[4711,"zcash_transparent::builder"],[4712,"rand_core"],[4713,"zcash_protocol::local_consensus"],[4714,"zcash_primitives::transaction::fees"],[4715,"subtle"],[4716,"core::default"],[4717,"orchard::keys"],[4718,"zip321"],[4719,"rand_chacha"],[4720,"sapling_crypto::keys"],[4721,"sapling_crypto::zip32"],[4722,"sapling_crypto::prover"],[4723,"zcash_keys::encoding"],[4724,"bs58::decode"],[4725,"bech32"],[4726,"bech32::primitives::decode"],[4727,"zcash_primitives::transaction::fees::transparent"],[4728,"core::iter::traits::collect"],[4729,"orchard::builder"],[4730,"bip32::error"],[4731,"zcash_address::kind::unified::fvk"],[4732,"std::io"],[4733,"alloc::collections::btree::map"],[4734,"sapling_crypto::note::commitment"],[4735,"orchard::note::commitment"],[4736,"zcash_note_encryption"],[4737,"sapling_crypto::bundle"],[4738,"orchard::action"],[4739,"core::array"],[4740,"prost::error"],[4741,"bytes::buf::buf_mut"],[4742,"prost::encoding::wire_type"],[4743,"prost::encoding"],[4744,"bytes::buf::buf_impl"],[4745,"tonic::codec::compression"],[4746,"tonic::body"],[4747,"tonic::client::service"],[4748,"tonic::response"],[4749,"tonic::status"],[4750,"tonic::codec::decode"],[4751,"tonic::service::interceptor"],[4752,"http::request"],[4753,"http::response"],[4754,"tower_service"],[4755,"http::uri"],[4756,"shardtree::prunable"],[4757,"zcash_primitives::merkle_tree"],[4758,"zcash_keys::address::testing"],[4759,"zcash_keys::keys::sapling"],[4760,"zcash_keys::keys::testing"],[4761,"zip321::testing"]],"i":"`hCCn1`0CD```02b`0303333``030303`3`3030030303`0030000``````3003030303```Cl`0Cf0100`1Cj1201101010120120120120100101012011110000201201201201000`01121020011111112012010201```Hb``HhMf2````O`IhIjGj````0Ld`I`Il79AAb444132`66InJh010`:```2`````0`2```````Hn```42:8Kd1`````GdFh`FfFnG`444Gh`````>HbHjHd0221O`4KnJnA@b5Ah:LnLd?>;HnI`IbIfFfIhIjIlInJ`JbJdGjJfJhHdJjO`GhKnJnA@bHjAhFnLnLdGdFhG`HnI`IbIfFfIhIjIlInJ`JbJdGjJfJhHdJj`Hb=GdFh10G`HnI`IbIfFfIhIjIlInJ`JbJdGjJfJhHdJjGdFhG`HnI`IbIfFfIhIjIlInJ`JbJdGjJfJhHdJjGdFhG`HnI`IbIfFfIhIjIlInJ`JbJdGjJfJhHdJj;:954JnKdFnIbO`GhKn6A@bHjAh7LnLdGdFhG`HnI`=IfFfIhIjIlInJ`JbJdGjJfJhHdJjO`GhKnJnA@bHjAhFnLnLdGdFhG`HnI`IbIfFfIhIjIlInJ`JbJdGjJfJhHdJjGhO`1KnJnA@bHjAhFnLnLdGdFhG`HnI`IbIfFfIhIjIlInJ`JbJdGjJfJhHdJjKnGdFhG`HnI`IbIfFfIhIjIlJdGjJh`FnJnHbGdFhG`HnI`IbIfFfIhIjIlInJ`JbJdGjJfJhHdJjO`GhKnJnA@bHjAhFnLnLd00GdFhG`HnI`IbIfFfIhIjIlInJ`JbJdGjJfJhHdJj0GhLn53222>Hb000MfKd2Mj3333310330022333303303233G`HnI`IhIjIlHj=Hh99O`>KnJnA@b5AhFnLnLdGdFhG`HnI`IbIfFfIhIjIlInJ`JbJdGjJfJhHdJjO`GhKnJnA@bHjAhFnLnLdGdFhG`HnI`IbIfFfIhIjIlInJ`JbJdGjJfJhHdJjHjO`GhKnJnA@b5AhFnLnLdGdFhG`HnI`IbIfFfIhIjIlInJ`JbJdGjJfJhHdJjKn=I`0HbLnAhHhO`Gh7JnA@bHj6Fn8LdGdFhG`Hn?IbIfFfIhIjIlInJ`JbJdGjJfJhHdJjKnAhFnG`IbIfFf>=<<00>=Jn37Hj?A@bFh;9<:Ln9IhIjIlJd9HhKdAAb107Jj>2Kn;BMhBMjMbBMlBMn?BKjBKlBLb?>BLd>=<;BLfBKf<;BKhBKn<;:98BL`8764444BLhBLj7BLlBLnBM`BMb:9BMdBMf:9BMhBMjMbBMlBMn=BKjBKl>=BLd=<;:BLfBKf;:BKhBKn;:987BL`76BLbBLhBLj8BLlBLnBM`BMb;:BMdBMf;:BMhBMjMbBMlBMn>BKjBKl?>=BLd=<;:BLfBKf;:BKhBKn;:987BL`76BLb0`995BLlBLhBLj92BLnBM`BMb;:BMdBMf;:BMhBMjMbBMlBMn>BKjBKl?=BKjBKl?BLf?>BLd>=<;1BKf;:BKhBKn;:987BL`76BLbBLhBLj7BLlBLnBM`BMb<:BMdBMf;:BMhBMjMbBMlBMn>BKjBKl=7>=BLd=<;:BLfBKf;:BKhBKn;:987BL`76BLbBLn06?BLhBLj9BLl3BM`BMb;:BMdBMf;:BMhBMjMbBMlBMn>BKjBKl?=BKjBKl?8><;:BLfBKf;:BKhBKn;:987BL`76BLbBLhBLj8BLlBLnBM`BMb;:BMdBMf;:BMhBMjMbBMlBMn>BKjBKl??3BL`?>BLd>=<;BLfBKf<;BKhBKn<;:98576BLb;;;0394;;8:::BLj7;5<>BLhBLjBLdBLlBLnBM`BMbBLfBKfBMdBMfBKhBKnBMhBMjMbBMlBMnBL`BKjBKlBLb>>`BNf00000000000000000000000000000000000000000000AEb0`0````000C@hC@j020C@lC@n421044442104210421041044210412104210421044322210413221032210``442104210421042104CAdCAfCAhCAjCAl224CAn503215````CBd`0000000000000000000`00000AIf0Ll00``Nl```02`````````CBfCBhNfABb032Nh6Oh6Nn943652817094281709428170942817094219365281709436528170943652817094521704281709436528170946510653652817094036528170943652817094501365281709432465505000003311202271533402817094365281709436528170943201365281709417003652817094CCd0CCfCCh01CCj210BGb000`00`0`CCl10ALf2102102102102102102100210221022100021021021011``1210101012`2102002102102102101```````","f":"```````````{{{d{{b{ce}}}}}{{d{e}}}{}{}}`{d{{d{c}}}{}}0{{{d{f}}}{{d{fc}}}{}}0{{{d{h}}}h}{{d{d{fc}}}j{}}{{dl}j}`{{{d{c}}{A`{n}}{A`{n}}{d{Ab}}{d{{Af{eAd}}}}}{{Ah{e}}}AjAl}{An{{d{c}}}{}}0{An{{d{fc}}}{}}0{Anj}0`{{{d{h}}{d{h}}}B`}`{{{d{h}}{d{fBb}}}Bd}{cc{}}0{{{d{{b{ce}}}}}An{}{}}{{}An}0{{}c{}}0{{}{{Bf{c}}}{}}0`{{{d{{b{ce}}}}}{{d{Bh}}}{}{}}{{dc}{{Bj{c}}}{}}0{{AnceBhh}{{b{ce}}}{}{}}{{{d{{b{ce}}}}}{{d{c}}}{}{}}{{{d{{b{Blc}}}}}Bn{}}{{{d{{b{C`c}}}}}Bn{}}``````{dc{}}{{{d{{b{ce}}}}}h{}{}}{c{{Cb{e}}}{}{}}0{{}{{Cb{c}}}{}}0{dCd}0{{}c{}}0````````````{d{{d{c}}}{}}00{{{d{f}}}{{d{fc}}}{}}00{{{d{Cf}}Ch}B`}{{{d{Cj}}}Cj}{{{d{Cf}}}Cf}{{d{d{fc}}}j{}}0{{dl}j}0{{{d{Cl}}{d{Cn}}}B`}{{{d{c}}{d{D`}}}{{Cb{CjDb}}}Aj}{{{d{c}}{d{D`}}}{{A`{Cf}}}Aj}{An{{d{c}}}{}}00{An{{d{fc}}}{}}00{Anj}00{{{d{Cj}}{d{c}}}DbAj}0{{{d{Cf}}{d{c}}}DbAj}{{{d{Cj}}{d{Cj}}}B`}{{{d{Cf}}{d{Cf}}}B`}{{{d{Cj}}{d{fBb}}}{{Cb{jDd}}}}{{{d{Cf}}{d{fBb}}}{{Cb{jDd}}}}{cc{}}0{DfCf}1{CjCf}{DhCf}{{{A`{Dj}}{A`{Df}}{A`{Dh}}}{{A`{Cj}}}}{{{d{Cj}}}B`}00{{}An}00{{}c{}}00{{}{{Bf{c}}}{}}00{{dc}{{Bj{c}}}{}}00{{{d{Cj}}}{{A`{{d{Dj}}}}}}{{{d{Cj}}}{{Dn{Dl}}}}{{{d{Cj}}}{{A`{{d{Df}}}}}}`{dc{}}0{{{d{Cf}}}{{A`{Dh}}}}{{{d{Cl}}E`}Cn}{{{d{Cf}}{d{c}}}CnAj}{{{d{Cj}}}{{A`{{d{Dh}}}}}}{c{{Cb{e}}}{}{}}{Eb{{Cb{Cj}}}}11{{{Ed{l}}}{{Cb{CfEf}}}}000{Eb{{Cb{CfEf}}}}{{{d{c}}Cn}{{Cb{Cf{Ef{{d{D`}}}}}}}Aj}{{}{{Cb{c}}}{}}00{dCd}00{{{d{Cj}}}{{d{{El{{Ej{Eh{Dn{l}}}}}}}}}}{{}c{}}00{En{{`{{Fb{}{{F`{Cf}}}}}}}}{{FdEn}{{`{{Fb{}{{F`{Cj}}}}}}}}`````````````````````````````````````````````{{}l}```````0``````````````````````````{{{d{{Ff{c}}}}}{{d{{Af{cFh}}}}}{FjFl}}{{{d{{Fn{c}}}}}{{d{c}}}{}}{{{d{G`}}}Gb}{{{d{fGd}}Bn}{{Cb{jGf}}}}00{{{d{Gh}}}{{d{Cf}}}}`````{{GjGj}Gj}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}}{{Cb{{A`{Hd}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{{Hj{c}}}}}Hl{}}{{{d{Hd}}}Hl}{{{d{Hd}}}n}3{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}n}{{Cb{{A`{Hd}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{{Hj{c}}}}}Eh{}}{d{{d{c}}}{}}00000000000000000000000000000{{{d{f}}}{{d{fc}}}{}}00000000000000000000000000000`{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}}{{Cb{{A`{n}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{{Ff{c}}}}}n{FjFl}}{{{d{Gd}}}Bn}{{{d{Fh}}}Bn}{{{d{Gd}}}Gd}{{{d{Fh}}}Fh}{{{d{G`}}}G`}{{{d{Hn}}}Hn}{{{d{I`}}}I`}{{{d{{Ib{c}}}}}{{Ib{c}}}Id}{{{d{If}}}If}{{{d{{Ff{c}}}}}{{Ff{c}}}{IdFjFl}}{{{d{Ih}}}Ih}{{{d{Ij}}}Ij}{{{d{Il}}}Il}{{{d{In}}}In}{{{d{J`}}}J`}{{{d{Jb}}}Jb}{{{d{Jd}}}Jd}{{{d{Gj}}}Gj}{{{d{Jf}}}Jf}{{{d{{Jh{c}}}}}{{Jh{c}}}{IdAl}}{{{d{Hd}}}Hd}{{{d{Jj}}}Jj}{{d{d{fc}}}j{}}0000000000000000000{{dl}j}0000000000000000000{{{d{Ih}}{d{Ih}}}Jl}{{{d{Ij}}{d{Ij}}}Jl}{{{d{Il}}{d{Il}}}Jl}{{{d{Jd}}{d{Jd}}}Jl}{{GjGj}Gj}{{{d{{Jn{ce}}}}}{{d{{El{{Ej{c{K`{n}}}}}}}}}{}{}}{{{d{f{Kd{}{{Kb{c}}}}}}{d{D`}}{d{{Kf{l}}}}{d{Jj}}{A`{{d{D`}}}}}{{Cb{{Ej{eKh}}g}}}{}{}{}}{{{d{{Fn{c}}}}}Kj{}}{{{d{{Ib{c}}}}}{{d{c}}}{}}{An{{d{c}}}{}}00000000000000000000000000000{An{{d{fc}}}{}}00000000000000000000000000000{{{d{Gh}}}Kl}{Anj}00000000000000000000000000000{{}{{Kn{c}}}{}}{{{d{Gd}}{d{Gd}}}B`}{{{d{Fh}}{d{Fh}}}B`}{{{d{G`}}{d{G`}}}B`}{{{d{Hn}}{d{Hn}}}B`}{{{d{I`}}{d{I`}}}B`}{{{d{{Ib{c}}}}{d{{Ib{c}}}}}B`L`}{{{d{If}}{d{If}}}B`}{{{d{{Ff{c}}}}{d{{Ff{c}}}}}B`{L`FjFl}}{{{d{Ih}}{d{Ih}}}B`}{{{d{Ij}}{d{Ij}}}B`}{{{d{Il}}{d{Il}}}B`}{{{d{Jd}}{d{Jd}}}B`}{{{d{Gj}}{d{Gj}}}B`}{{{d{{Jh{c}}}}{d{{Jh{c}}}}}B`{L`Al}}`{{{d{{Fn{c}}}}}Bn{}}{{{d{{Jn{ce}}}}}Eh{}{}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}{d{Dh}}}{{Cb{{A`{e}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{Gd}}{d{fBb}}}Bd}{{{d{Fh}}{d{fBb}}}Bd}{{{d{G`}}{d{fBb}}}Bd}{{{d{Hn}}{d{fBb}}}Bd}{{{d{I`}}{d{fBb}}}Bd}{{{d{{Ib{c}}}}{d{fBb}}}BdHf}{{{d{If}}{d{fBb}}}Bd}{{{d{{Ff{c}}}}{d{fBb}}}Bd{HfFjFl}}{{{d{Ih}}{d{fBb}}}Bd}{{{d{Ij}}{d{fBb}}}Bd}{{{d{Il}}{d{fBb}}}Bd}{{{d{In}}{d{fBb}}}Bd}{{{d{J`}}{d{fBb}}}Bd}{{{d{Jb}}{d{fBb}}}Bd}{{{d{Jd}}{d{fBb}}}Bd}{{{d{Gj}}{d{fBb}}}Bd}{{{d{Jf}}{d{fBb}}}Bd}{{{d{{Jh{c}}}}{d{fBb}}}Bd{HfAl}}{{{d{Hd}}{d{fBb}}}Bd}{{{d{Jj}}{d{fBb}}}Bd}{cc{}}000000000{LbLd}{LfLd}22222222222222222222{{{d{c}}LhHl}JjAj}{{CfKl{A`{Lj}}}{{A`{Gh}}}}{{An{Ll{c}}Bn{A`{Bh}}}{{Ln{c}}}{}}{{Bn{A`{Cf}}{A`{{Ej{CfEh}}}}}Jf}{{nHl{A`{Eh}}{A`{Eh}}}Hd}{{M`{A`{n}}}Jj}{{{d{c}}Hl}JjAj}{{Mb{A`{n}}}{{Cb{JjLd}}}}{{{d{{Ff{c}}}}}n{FjFl}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}e}{{Cb{{A`{g}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}e}{{Cb{nc}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}{d{Ad}}}{{Cb{{A`{g}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}}{{Cb{{Dn{e}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{{Mf{}{{Gl{c}}{Gn{e}}{Md{g}}}}}}e{d{Gj}}{d{{El{g}}}}}{{Cb{Jbc}}}Hf{AlHfFjFl}{AlHfFjMh}}{{{d{f{Kd{}{{Kb{c}}}}}}eKlEn}{{Cb{{A`{Cj}}g}}}{}{}{}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}n}{{Cb{{A`{Hl}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{Mj}}{d{Ml}}}{{Cb{{Dn{{Ej{n{A`{Mn}}}}}}c}}}{}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}{d{N`}}Gb}{{Cb{{A`{g}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}e{A`{{Nd{Nb}}}}}{{Cb{{Dn{{Ej{DhNf}}}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}eEn}{{Cb{{A`{Cj}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}}{{Cb{{A`{{Ej{nHl}}}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}Nh}{{Cb{{A`{Nj}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{f{Kd{}{{Kb{c}}}}}}eEn}{{Cb{{A`{{Ej{CjKl}}}}g}}}{}{}{}}{{{d{Mj}}Ml}{{Cb{{Dn{{Nn{cNl}}}}e}}}{}{}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}O`}{{Cb{{Dn{{Ej{eOb}}}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}O`}{{Cb{{Dn{{Ej{eOd}}}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{Mj}}{d{Of}}Ml}{{Cb{{Dn{Nh}}c}}}{}}{{{d{Mj}}{d{Of}}}{{Cb{{Dn{Jf}}c}}}{}}{{{d{{Mf{}{{Gl{c}}{Gn{e}}{Md{g}}}}}}{d{Of}}MlEh}{{Cb{{A`{{Nn{gNl}}}}c}}}Hf{AlHfFjFl}{AlHfFjMh}}{{{d{{Mf{}{{Gl{c}}{Gn{e}}{Md{g}}}}}}{d{Dh}}nEh}{{Cb{{Dn{Oh}}c}}}Hf{AlHfFjFl}{AlHfFjMh}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}Oj}{{Cb{{A`{{Ej{nn}}}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}Of}{{Cb{{A`{Ab}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}e{d{Dh}}}{{Cb{{A`{Nf}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}en}{{Cb{{Af{DhBn}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{Mj}}{d{Ol}}B`}{{Cb{{A`{Oh}}c}}}{}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}eB`}{{Cb{{Af{Dh{A`{Nf}}}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}Of}{{Cb{{A`{n}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{Mj}}}{{Cb{{Dn{{On{c}}}}e}}}{}{}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}}{{Cb{{Af{eAd}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{{Mf{}{{Gl{c}}{Gn{e}}{Md{g}}}}}}{d{Ol}}}{{Cb{{A`{Oh}}c}}}Hf{AlHfFjFl}{AlHfFjMh}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}}{{Cb{{A`{n}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}Eh}{{Cb{{A`{{Ff{e}}}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{G`}}{d{fc}}}jA@`}{{{d{Hn}}{d{fc}}}jA@`}{{{d{I`}}{d{fc}}}jA@`}{{{d{Ih}}{d{fc}}}jA@`}{{{d{Ij}}{d{fc}}}jA@`}{{{d{Il}}{d{fc}}}jA@`}{{{d{{Hj{c}}}}}n{}}{{{d{Jj}}}n}{{{d{{Hh{}{{Gn{c}}}}}}}cAl}{{{d{f{Kd{}{{Kb{c}}}}}}{d{D`}}{d{{Kf{l}}}}Gb{d{Jj}}{A`{{d{D`}}}}}{{Cb{{Ej{eKh}}g}}}{}{}{}}{{{d{f{Kd{}{{Kb{c}}}}}}{d{D`}}{d{Ad}}{d{Jj}}Hn{A`{{d{D`}}}}}{{Cb{eg}}}{}{}{}}{{}An}00000000000000000000000000000{{}c{}}00000000000000000000000000000{{{Hj{c}}}A@b{}}{{}{{Bf{c}}}{}}00000000000000000000000000000{{{Kn{c}}{d{e}}}{{Dn{{Nn{cNl}}}}}{}{{A@d{c}}}}{{{d{{Ff{c}}}}}B`{FjFl}}{{{d{I`}}}{{A`{{d{G`}}}}}}{{{d{I`}}}{{A`{{d{D`}}}}}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}e}{{Cb{{Dn{Gh}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{{Ln{c}}}}}{{A`{{d{Bh}}}}}{}}{{{d{{Ah{c}}}}}{{A`{n}}}{}}{{{d{{Hh{}{{Gn{c}}}}}}}{{A`{{d{D`}}}}}Al}{{dc}{{Bj{c}}}{}}00000000000000000000000000000{{{Dn{{Nn{cBl}}}}{Dn{{Nn{cC`}}}}}{{Kn{c}}}{}}{{{A`{n}}{d{Ab}}{Dn{{b{Blc}}}}{Dn{{b{C`c}}}}}{{Ah{c}}}{}}{{{d{Ab}}Kjnc{d{{El{{Ln{c}}}}}}Bn{d{{El{Ol}}}}}{{Fn{c}}}{}}{{N`Gb}G`}{{cc}{{Ib{c}}}{}}{{{Ib{A@f}}{A`{{Ib{A@f}}}}}If}{{{Af{cFh}}nnIfA@fA@f}{{Ff{c}}}{FjFl}}{{AnBn}J`}{{{A`{J`}}{A`{J`}}}Jb}{l{{A`{Jd}}}}{lJd}{{{d{{Ff{c}}}}}A@f{FjFl}}0{{{d{J`}}}An}{{{d{Jb}}Ml}{{A`{An}}}}{{{d{{Jn{ce}}}}}{{d{{El{{Ej{OfA@h{Dn{e}}}}}}}}}{}{}}{{{d{{Ib{c}}}}}{{d{c}}}{}}{{{d{{Kn{c}}}}}{{d{{El{{Nn{cC`}}}}}}}{}}{{{d{{Hj{c}}}}}{{d{{Jn{A@jOb}}}}}{}}{{{d{Jb}}}{{A`{{d{J`}}}}}}{A@bDn}{{{d{Fh}}}{{d{Gd}}}}{{{d{Jj}}}{{d{{A@l{A@j}}}}}}{{{d{{Ah{c}}}}}{{d{{El{{b{C`c}}}}}}}{}}{{{d{Hd}}}{{A`{Eh}}}}{{{d{{Kn{c}}}}}{{Cb{BnGf}}}{}}{{{d{{Ln{c}}}}}An{}}{{{d{{Fn{c}}}}}{{d{{El{{Ln{c}}}}}}}{}}{{{d{Ih}}{d{Ih}}}{{A`{Jl}}}}{{{d{Ij}}{d{Ij}}}{{A`{Jl}}}}{{{d{Il}}{d{Il}}}{{A`{Jl}}}}{{{d{Jd}}{d{Jd}}}{{A`{Jl}}}}{{{d{{Ff{c}}}}}If{FjFl}}{{{d{{Hh{}{{Gn{c}}}}}}}HnAl}{{{d{f{Kd{}{{Kb{c}}}}}}{d{M`}}{Dn{{Hj{e}}}}}{{Cb{jg}}}{}{}{}}{{{d{f{AAb{}{{Gl{c}}{A@n{e}}{AA`{g}}}}}}A@f{d{{El{{AAd{A@j}}}}}}}{{Cb{j{AAf{c}}}}}Hf{{AAn{}{{AAh{AAj}}{AAl{n}}{Gl{c}}}}}{{AAn{}{{AAh{A@j}}{AAl{n}}{Gl{c}}}}}}{{{d{f{Kd{}{{Kb{c}}}}}}{d{Oh}}}{{Cb{ce}}}{}{}}{{{d{f{AAb{}{{Gl{c}}{A@n{e}}{AA`{g}}}}}}A@f{d{{El{{AAd{AAj}}}}}}}{{Cb{j{AAf{c}}}}}Hf{{AAn{}{{AAh{AAj}}{AAl{n}}{Gl{c}}}}}{{AAn{}{{AAh{A@j}}{AAl{n}}{Gl{c}}}}}}{{{d{{Ln{c}}}}}{{d{{Ll{c}}}}}{}}{{{d{Jj}}}{{A`{n}}}}{{{d{If}}}{{A`{{Ib{A@f}}}}}}{{{d{f{Kd{}{{Kb{c}}}}}}eAn}{{Cb{{Dn{{Ej{DhNf}}}}g}}}{}{}{}}{{{d{{Kn{c}}}}}{{d{{El{{Nn{cBl}}}}}}}{}}{{{d{{Hj{c}}}}}{{d{{Jn{AAjOd}}}}}{}}{{{d{Jb}}}{{A`{{d{J`}}}}}}{A@bDn}{{{d{Fh}}}{{d{Gd}}}}{{{d{Jj}}}{{d{{A@l{AAj}}}}}}{{{d{{Ah{c}}}}}{{d{{El{{b{Blc}}}}}}}{}}{{{d{Hd}}}{{A`{Eh}}}}{{{d{{Kn{c}}}}}{{Cb{BnGf}}}{}}{{{d{If}}}{{Ib{A@f}}}}`{{{d{G`}}}{{d{N`}}}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}{d{{Kf{l}}}}}{{Cb{{Jh{e}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{{Mf{}{{Gl{c}}{Gn{e}}{Md{g}}}}}}eBn{d{{El{Ml}}}}n{d{{El{g}}}}}{{Cb{{Kn{g}}c}}}Hf{AlHfFjFl}{AlHfFjMh}}{{{d{f{Kd{}{{Kb{c}}}}}}OfIn}{{Cb{je}}}{}{}}{{{d{A@d}}{d{{Nn{cC`}}}}}B`{}}{{{d{A@d}}{d{{Nn{cBl}}}}}B`{}}{{{d{{Hh{}{{Gn{c}}}}}}}{{d{I`}}}Al}{{{d{Gd}}}Bn}{{{d{Fh}}}Bn}{{{d{f{Kd{}{{Kb{c}}}}}}{Ah{e}}}{{Cb{jg}}}{}{}{}}{{{d{f{Kd{}{{Kb{c}}}}}}{d{{El{{Fn{e}}}}}}}{{Cb{jg}}}{}{}{}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}}{{Cb{{Dn{AB`}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{Kn{c}}}{{Dn{{Nn{cC`}}}}}{}}{{{Kn{c}}}{{Dn{{Nn{cBl}}}}}{}}{{{d{{Fn{c}}}}}n{}}`{{{d{{Hj{c}}}}}Hd{}}{dc{}}000000000000000000098{{{d{Jb}}}{{A`{An}}}}{{{d{{Kn{c}}}}}{{Cb{BnGf}}}{}}{{{d{Jb}}}{{A`{Bn}}}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}}{{Cb{{Dn{Il}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{{Hj{c}}}}}{{d{{El{{ABb{c}}}}}}}{}}{{{d{Gh}}}{{A`{Lj}}}}{{{d{f{Kd{}{{Kb{c}}}}}}n}{{Cb{ne}}}{}{}}{c{{Cb{e}}}{}{}}00000000000000000000000000000{{}{{Cb{c}}}{}}00000000000000000000000000000{{{d{{Ah{c}}}}}{{d{Ab}}}{}}{{{d{{Fn{c}}}}}{{d{Ab}}}{}}{dCd}00000000000000000000000000000{{{d{{Hh{}{{Gn{c}}}}}}}{{A`{{d{Ad}}}}}Al}{{{d{{Hh{}{{Gn{c}}}}}}}ABdAl}{{{d{Fh}}}Bn}{{{d{Fh}}}{{d{Gd}}}}{{{d{f{Kd{}{{Kb{c}}}}}}n}{{Cb{je}}}{}{}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}e}{{Cb{nc}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{{Fn{c}}}}}{{d{{El{Ol}}}}}{}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}e{d{{Kf{l}}}}}{{Cb{B`c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{{Ln{c}}}}}Bn{}}{{{d{J`}}}Bn}{{{d{Jd}}}l}{{{d{Gd}}}Bn}9{{}c{}}00000000000000000000000000000`{{{d{fFh}}g}{{Cb{ce}}}{}{{ABf{Gf}}}{{ABj{{d{fGd}}}{{ABh{{Cb{ce}}}}}}}}{{{d{f{AAb{}{{Gl{c}}{A@n{e}}{AA`{g}}}}}}m}{{Cb{ik}}}Hf{{AAn{}{{AAh{AAj}}{AAl{n}}{Gl{c}}}}}{{AAn{}{{AAh{A@j}}{AAl{n}}{Gl{c}}}}}{}{{ABf{{AAf{c}}}}}{{ABn{{d{f{ABl{g}}}}}{{ABh{{Cb{ik}}}}}}}}1{{{d{f{AAb{}{{Gl{c}}{A@n{e}}{AA`{g}}}}}}m}{{Cb{ik}}}Hf{{AAn{}{{AAh{AAj}}{AAl{n}}{Gl{c}}}}}{{AAn{}{{AAh{A@j}}{AAl{n}}{Gl{c}}}}}{}{{ABf{{AAf{c}}}}}{{ABn{{d{f{ABl{e}}}}}{{ABh{{Cb{ik}}}}}}}}2{AC`A`}{ACbG`}{ACbA`}{ACdA`}{ACdHn}{ACfACh}0{ACjACl}{ACnDh}{ACnA`}{ACnn}{ACnIj}2{ACnIh}``````{{{d{M`}}}Hl}{{{d{M`}}}n}{d{{d{c}}}{}}00{{{d{f}}}{{d{fc}}}{}}00{{{d{AD`}}}AD`}{{{d{M`}}}M`}{{d{d{fc}}}j{}}0{{dl}j}0{{{d{ADb}}AB`}{{ADf{{ACh{ADd}}}}}}{An{{d{c}}}{}}00{An{{d{fc}}}{}}00{Anj}00{{nHl}M`}`{{{d{M`}}}{{d{{A@l{A@j}}}}}}{{{d{M`}}}{{d{{A@l{AAj}}}}}}{{{d{{AAd{c}}}}{d{fBb}}}BdHf}{{{d{AD`}}{d{fBb}}}Bd}{{{d{M`}}{d{fBb}}}Bd}{cc{}}00{{nc}{{AAd{c}}}{}}{{{d{ADb}}{A`{{d{AB`}}}}}{{Cb{{A`{n}}c}}}{}}{{}An}00{{{d{ADb}}{Dn{ADh}}}{{ADf{{ACh{ADd}}}}}}{{}c{}}00{{}{{Bf{c}}}{}}00{{dc}{{Bj{c}}}{}}00{{nHl{A@l{AAj}}{A@l{A@j}}}M`}{{{d{ADb}}{d{AB`}}}{{ADf{{ACh{ADd}}}}}}{{{d{AD`}}}An}0{{{d{{AAd{c}}}}}{{d{c}}}{}}{{{d{c}}{d{e}}{d{fg}}n{d{M`}}An}{{Cb{AD`ADj}}}{AjADl}ADnKd}{{{d{AD`}}}{{Nd{n}}}}33{{{d{{AAd{c}}}}}n{}}`{dc{}}0{{{d{ADb}}n}{{ADf{{ACh{ADd}}}}}}{c{{Cb{e}}}{}{}}00{{}{{Cb{c}}}{}}00{dCd}00{{}c{}}00{{{d{{ADn{}{{Gl{c}}}}}}{A`{n}}{A`{An}}g}{{Cb{j{ADj{ec}}}}}{}{}{{ABn{ADh}{{ABh{{Cb{j{ADj{ec}}}}}}}}}}````{d{{d{c}}}{}}{{{d{f}}}{{d{fc}}}{}}{An{{d{c}}}{}}{An{{d{fc}}}{}}{Anj}{{{d{{ADj{ce}}}}{d{fBb}}}BdHfHf}{{{d{{ADj{ce}}}}{d{fBb}}}BdAE`AE`}{cc{}}{AEb{{ADj{ce}}}{}{}}{{}An}{{}c{}}{{}{{Bf{c}}}{}}{{dc}{{Bj{c}}}{}}{{{d{{ADj{ce}}}}}{{A`{{d{AEd}}}}}{HfAE`AEd}{HfAE`AEd}}{dDb}{c{{Cb{e}}}{}{}}{{}{{Cb{c}}}{}}{dCd}{{}c{}}`{d{{d{c}}}{}}{{{d{f}}}{{d{fc}}}{}}{An{{d{c}}}{}}{An{{d{fc}}}{}}{Anj}{cc{}}?>=<9876{{{d{AEf}}{A`{n}}{A`{An}}e}{{Cb{j{ADj{cAEh}}}}}{}{{ABn{ADh}{{ABh{{Cb{j{ADj{cAEh}}}}}}}}}}``````````````````````65432{{{d{{AEj{cegikm}}}}{d{fBb}}}BdAE`AE`AE`AE`AE`AE`}{{{d{{AEj{cegikm}}}}{d{fBb}}}BdHfHfHfHfHfHf}{{{AEl{cegi}}}{{AEj{ckemgi}}}{}{}{}{}{}{}}{AEn{{AEj{cegikm}}}{}{}{}{}{}{}}{{{AF`{c}}}{{AEj{egickm}}}{}{}{}{}{}{}}6{Gf{{AEj{cegikm}}}{}{}{}{}{}{}}{{{Ef{{d{D`}}}}}{{AEj{cegikm}}}{}{}{}{}{}{}}{{{AAf{c}}}{{AEj{ecgikm}}}{}{}{}{}{}{}}{AFb{{AEj{cegikm}}}{}{}{}{}{}{}}{AFd{{AEj{cegikm}}}{}{}{}{}{}{}}{{}An}{{}c{}}{{}{{Bf{c}}}{}}{{dc}{{Bj{c}}}{}}{{{d{{AEj{cegikm}}}}}{{A`{{d{AEd}}}}}{HfAE`AEd}{HfAE`AEd}{HfAE`AEd}{HfAE`}{HfAE`AEd}{HfAE`}}{dDb}{c{{Cb{e}}}{}{}}{{}{{Cb{c}}}{}}{dCd}{{}c{}}{AFfBn}0`````````{{{d{AB`}}}{{d{{Nd{n}}}}}}{d{{d{c}}}{}}0{{{d{f}}}{{d{fc}}}{}}0{{{d{AFh}}}AFh}{{{d{AB`}}}AB`}{{d{d{fc}}}j{}}0{{dl}j}0{{{d{AFh}}{d{AFh}}}Jl}{An{{d{c}}}{}}0{An{{d{fc}}}{}}0{Anj}0{{{d{AFh}}{d{AFh}}}B`}{{{d{AB`}}{d{AB`}}}B`}{{{d{AFh}}{d{fBb}}}Bd}{{{d{AB`}}{d{fBb}}}Bd}0{cc{}}0{{{Nd{n}}AFh}AB`}{{}An}0{{}c{}}0{{}{{Bf{c}}}{}}0{{{d{AB`}}}B`}{{{d{AB`}}}An}{{dc}{{Bj{c}}}{}}0{{{d{AFh}}{d{AFh}}}{{A`{Jl}}}}{{{d{AB`}}}AFh}`{{{d{AB`}}n}{{A`{{Ej{AB`AB`}}}}}}{dc{}}0{dDb}{{{d{AB`}}n}{{A`{AB`}}}}0{c{{Cb{e}}}{}{}}0{{}{{Cb{c}}}{}}0{dCd}0{{}c{}}0```{d{{d{c}}}{}}{{{d{f}}}{{d{fc}}}{}}{{{d{AFj}}}AFj}{{d{d{fc}}}j{}}{{dl}j}{An{{d{c}}}{}}{An{{d{fc}}}{}}{Anj}{{{d{AFj}}{d{fBb}}}Bd}{cc{}}{{}An}{{AFjAB`B`}AFj}{{}c{}}{{}{{Bf{c}}}{}}{AFj{{Dn{AB`}}}}{{dc}{{Bj{c}}}{}}`{dc{}}{c{{Cb{e}}}{}{}}{{}{{Cb{c}}}{}}{dCd}{{}c{}}{AFlACh}0{AFlNd}{{{Nd{Eh}}AFh}AB`}````````````````````````````{{{d{{AFn{c}}}}}{{d{c}}}{}}{{{d{{On{c}}}}}{{d{c}}}{}}{{{d{{On{c}}}}}AG`{}}{{{d{{AGd{}{{AGb{c}}}}}}{d{fAGf}}{d{e}}ncAGhBnEh{d{fg}}}cAlAj{AGjAGl}}{{{d{{AGd{}{{AGb{c}}}}}}{d{fAGf}}{d{e}}nAGhBnEh{d{fg}}}cAlAj{AGjAGl}}{{{d{{AGd{}{{AGb{c}}}}}}{d{fAGf}}c{d{fe}}}jAl{AGjAGl}}{{M`EhEh}AGn}{{{d{{AFn{c}}}}}{{d{Jj}}}{}}{{{d{AH`}}}{{Cb{{A`{Hd}}c}}}{}}0{{{d{AH`}}n}{{Cb{{A`{Hd}}c}}}{}}{{{d{{AHh{}{{AHb{c}}{AHd{e}}{AHf{g}}}}}}}{{d{e}}}Hf{{ADn{}{{Gl{c}}}}}{}}{d{{d{c}}}{}}000000000{{{d{f}}}{{d{fc}}}{}}000000000{{{AHj{ce}}}{{AHn{cAHl}}}{}AI`}{{{d{{AHn{ceg}}}}}dAHh{MjKd}Aj}{{{d{AH`}}}{{Cb{{A`{n}}c}}}{}}{AIbM`}{{{d{AGn}}}AGn}{{{d{{AFn{c}}}}}{{AFn{c}}}Id}{{{d{AGh}}}AGh}{{{d{{AId{c}}}}}{{AId{c}}}Id}{{d{d{fc}}}j{}}000{{dl}j}000{{{d{fAH`}}{d{D`}}{d{{Kf{l}}}}{d{Jj}}{A`{{d{D`}}}}}{{Cb{{Ej{cKh}}e}}}{}{}}{{{d{f{AHn{cik}}}}{d{Kh}}AIf{d{{AIh{m}}}}}{{Cb{{ACl{Of}}{AIj{iomAa}}}}}{}{HfFjFl}Hf{{Mf{}{{Gn{e}}{Gl{g}}}}Mj{Kd{}{{Gn{e}}{Gl{g}}}}AAb}{AjADl}AIl{}{}}{{{d{f{AHn{cik}}}}{d{AFn}}CnBn}{{Cb{{ACl{Of}}{AJb{i{AIn{i}}{AJ`{i}}}}}}}{}{HfFjFl}Hf{{Mf{}{{Gn{e}}{Gl{g}}}}Mj{Kd{}{{Gn{e}}{Gl{g}}}}AAb}{AjADl}}{{}{{AHj{jj}}}}{An{{d{c}}}{}}000000000{An{{d{fc}}}{}}000000000{Anj}000000000{{{d{{On{c}}}}}B`{}}{{{d{{On{c}}}}}{{A`{n}}}{}}{{{d{{On{c}}}}}{{A`{Bn}}}{}}{{{d{AH`}}{d{Dh}}}{{Cb{{A`{c}}e}}}{}{}}{{{d{AGn}}{d{fBb}}}Bd}{cc{}}000000000{{{d{ADh}}}AJd}{{cOf{A`{n}}{A`{n}}AG`BnBn{A`{Bn}}AnB`AnAnAnB`B`}{{On{c}}}{}}{{{d{f{AHn{ceg}}}}nHl{d{{El{{AId{i}}}}}}EhEhB`}{{Ej{Dn}}}AHh{MjKd}AjAGd}{{{d{f{AHn{ceg}}}}}{{Ej{n}}}AHh{MjKd}Aj}{{{d{f{AHn{ceg}}}}{d{i}}AGhBn}{{Ej{n}}}AHh{MjKd}AjAGd}{{{d{f{AHn{ceg}}}}An{d{Ab}}}{{Ej{n}}}AHh{MjKd}Aj}{{{d{f{AHn{ceg}}}}Of}{{Ej{n}}}AHh{MjKd}Aj}{{{d{f{AHn{ceg}}}}{d{{El{{AId{i}}}}}}}{{Ej{nDn}}}AHh{MjKd}AjAGd}{{{d{f{AHn{ceg}}}}{d{i}}{Ej{Bn}}kBn}{{Ej{n}}}AHh{MjKd}AjAGd{{AJf{Cf}}}}{{{d{AH`}}c}{{Cb{{A`{e}}g}}}{}{}{}}{{{d{AH`}}c}{{Cb{ne}}}{}{}}{{{d{AH`}}{d{Ad}}}{{Cb{{A`{c}}e}}}{}{}}{{{d{AH`}}}{{Cb{{Dn{c}}e}}}{}{}}{{{d{AH`}}c{d{Gj}}{d{{El{e}}}}}{{Cb{Jbg}}}{}{}{}}{{{d{fAH`}}cKlEn}{{Cb{{A`{Cj}}e}}}{}{}}{{{d{AH`}}n}{{Cb{{A`{Hl}}c}}}{}}{{{d{AH`}}{d{N`}}Gb}{{Cb{{A`{c}}e}}}{}{}}{{{d{AH`}}c{A`{{Nd{Nb}}}}}{{Cb{{Dn{{Ej{DhNf}}}}e}}}{}{}}{{{d{AH`}}cEn}{{Cb{{A`{Cj}}e}}}{}{}}{{{d{AH`}}}{{Cb{{A`{{Ej{nHl}}}}c}}}{}}{{{d{AH`}}Nh}{{Cb{{A`{Nj}}c}}}{}}{{{d{fAH`}}cEn}{{Cb{{A`{{Ej{CjKl}}}}e}}}{}{}}{{{d{AH`}}O`}{{Cb{{Dn{{Ej{cOb}}}}e}}}{}{}}{{{d{{AHn{cik}}}}eEh}Bn{}{HfFjFl}Hf{{Mf{}{{Gn{e}}{Gl{g}}}}Mj{Kd{}{{Gn{e}}{Gl{g}}}}AAb}{AjADl}}0{{{d{AH`}}O`}{{Cb{{Dn{{Ej{cOd}}}}e}}}{}{}}1{{{d{AH`}}{d{Of}}MlEh}{{Cb{{A`{{Nn{cNl}}}}e}}}{}{}}{{{d{AH`}}Oj}{{Cb{{A`{{Ej{nn}}}}c}}}{}}{{{d{{AHn{cik}}}}e}Bn{}{HfFjFl}Hf{{Mf{}{{Gn{e}}{Gl{g}}}}Mj{Kd{}{{Gn{e}}{Gl{g}}}}AAb}{AjADl}}{{{d{AH`}}Of}{{Cb{{A`{Ab}}c}}}{}}{{{d{AH`}}c{d{Dh}}}{{Cb{{A`{Nf}}e}}}{}{}}{{{d{AH`}}cn}{{Cb{{Af{DhBn}}e}}}{}{}}{{{d{AH`}}cB`}{{Cb{{Af{Dh{A`{Nf}}}}e}}}{}{}}{{{d{{AHn{cik}}}}Of}{{Cb{{A`{{On{e}}}}g}}}{}{FjFl}Hf{{Mf{}{{Gn{e}}{Gl{g}}}}Mj{Kd{}{{Gn{e}}{Gl{g}}}}AAb}{AjADl}}{{{d{AH`}}Of}{{Cb{{A`{n}}c}}}{}}{{{d{AH`}}}{{Cb{{Af{cAd}}e}}}{}{}}{{{d{AH`}}}{{Cb{{A`{n}}c}}}{}}{{{d{{AHn{cik}}}}Eh}{{A`{{Ff{e}}}}}{}{HfFjFl}Hf{{Mf{}{{Gn{e}}{Gl{g}}}}Mj{Kd{}{{Gn{e}}{Gl{g}}}}AAb}{AjADl}}{{{d{AH`}}Eh}{{Cb{{A`{{Ff{c}}}}e}}}{}{}}{{{d{{On{c}}}}}B`{}}{{{d{AGn}}}n}{{{d{{AFn{c}}}}}eHh{}}{{{d{fAH`}}{d{D`}}{d{{Kf{l}}}}Gb{d{Jj}}{A`{{d{D`}}}}}{{Cb{{Ej{cKh}}e}}}{}{}}{{{d{fAH`}}{d{D`}}{d{Ad}}{d{Jj}}Hn{A`{{d{D`}}}}}{{Cb{ce}}}{}{}}{{}An}000000000{{{d{f{AHh{}{{AHb{c}}{AHd{e}}{AHf{g}}}}}}{d{ADh}}}gHf{{ADn{}{{Gl{c}}}}}{}}{{}c{}}000000000{{}{{Bf{c}}}{}}0000000008{{{d{{AHn{ceg}}}}}{{A`{{d{AGn}}}}}AHh{MjKd}Aj}{{{d{AH`}}c}{{Cb{{Dn{Gh}}e}}}{}{}}{{{d{{On{c}}}}}An{}}{{{d{{On{c}}}}}{{A`{n}}}{}}{{{d{{AFn{c}}}}}{{A`{{d{D`}}}}}Hh}{{dc}{{Bj{c}}}{}}000000000{{{d{{AHn{ceg}}}}}{{d{g}}}{}Mj{}}{AH`Fd}{{}{{AHj{jj}}}}{FdAH`}{{cAGhBn}{{AId{c}}}{}}{{{d{{AI`{}{{Gl{c}}{Gn{e}}{H`{g}}{AJh{i}}{AJj{k}}}}}}AHlAJl}{{Cb{kc}}}Hf{HfAJnAK`FlFjADl}{{Hh{}{{Gn{e}}}}Id}Hf{{Mf{}{{Gn{e}}{Gl{i}}}}{Hb{}{{Gn{e}}{H`{g}}{Gl{i}}}}MjKdAAb}}{nAGn}{{{d{{AHn{ceg}}}}}n{}MjAj}`{{{d{AJd}}}{{d{{El{A@j}}}}}}{{{d{AGn}}}Eh}{{{d{{AGd{}{{AGb{c}}}}}}AKb}{{A`{AKd}}}Al}{AH`ABl}`{AIbDn}0{{{d{f{AHn{cik}}}}{d{m}}{d{o}}Bn{d{{El{Dh}}}}Eh}{{Cb{{AIh{AEh}}{AKf{iAEhmo}}}}}{}{HfFjFl}Hf{{Mf{}{{Gn{e}}{Gl{g}}}}Mj{Kd{}{{Gn{e}}{Gl{g}}}}AAb}{AjADl}{{AKj{}{{AKh{i}}}}}{{AKn{}{{AKl{i}}}}}}{{{d{f{AHn{cik}}}}AL`Oj{d{Cf}}Bn{A`{Bh}}{A`{Bh}}Ml}{{Cb{{AIh{AL`}}{ALd{im{AIn{i}}{ALb{i}}}}}}}{}{HfFjFl}Hf{{Mf{}{{Gn{e}}{Gl{g}}}}Mj{Kd{}{{Gn{e}}{Gl{g}}}}AAb}{AjADl}{}}{{{d{f{AHn{cik}}}}{d{m}}{d{o}}ALfOj}{{Cb{AIh{ALd{iAEhmo}}}}}{}{HfFjFl}Hf{{Mf{}{{Gn{e}}{Gl{g}}}}Mj{Kd{}{{Gn{e}}{Gl{g}}}}AAb}{AjADl}{{ALh{}{{AKh{i}}}}}{{AKn{}{{AKl{i}}}}}}{{{d{fAH`}}{d{M`}}{Dn{{Hj{c}}}}}{{Cb{je}}}{}{}}{{{d{fAH`}}A@f{d{{El{{AAd{A@j}}}}}}}{{Cb{j{AAf{c}}}}}{}}{{{d{fAH`}}{d{Oh}}}{{Cb{ce}}}{}{}}{{{d{fAH`}}A@f{d{{El{{AAd{AAj}}}}}}}{{Cb{j{AAf{c}}}}}{}}{{{d{f{AHn{ceg}}}}A@f{d{{El{{AAd{AAj}}}}}}A@f{d{{El{{AAd{A@j}}}}}}}{{Cb{jAAf}}}AHh{MfMjKdAAb}{AjADl}}{{{d{fc}}e}{{AId{e}}}AGj{}}{{{d{{On{c}}}}}An{}}{{{d{fAH`}}cAn}{{Cb{{Dn{{Ej{DhNf}}}}e}}}{}{}}{{{d{f{AHn{c{ALl{}{{ALj{e}}}}AHl}}}}}e{}{}}{{{d{f{AHn{ceAHl}}}}}{}{}{HbALl}}{{{d{f{AHn{ceg}}}}}{{d{fALn}}}{}Mj{}}`{{{d{AJd}}}{{d{{El{AAj}}}}}}{{{d{{AHn{ceg}}}}}n{}MjAj}{{{d{AGn}}}Eh}{{{d{{AGd{}{{AGb{c}}}}}}}{{A`{AM`}}}Al}{AH`ABl}{{{d{f{AHn{ceg}}}}nAn}AD`AHh{MfMjKdAAb}{AjADl}}{{{d{AH`}}{d{{Kf{l}}}}}{{Cb{{Jh{c}}e}}}{}{}}{{{d{AH`}}cBn{d{{El{Ml}}}}n{d{{El{e}}}}}{{Cb{{Kn{e}}g}}}{}{}{}}<{{{AHj{ce}}Gb}{{AHj{ce}}}{}{}}{{{d{fAH`}}OfIn}{{Cb{jc}}}{}}{{{d{f{AHn{cik}}}}{d{m}}{d{o}}Bn{d{Kh}}{d{{El{Dh}}}}Eh}{{Cb{{ACl{Of}}{AMb{imo}}}}}{}{HfFjFl}Hf{{Mf{}{{Gn{e}}{Gl{g}}}}Mj{Kd{}{{Gn{e}}{Gl{g}}}}AAb}{AjADl}{{AKj{}{{AKh{i}}}}}{{AKn{}{{AKl{i}}}}}}{{AL`{A`{{d{D`}}}}Ml}{{ALb{c}}}Mf}{{{d{{AFn{c}}}}}{{d{I`}}}Hh}{{{d{f{AHn{cik}}}}{d{m}}{d{o}}{d{Kh}}ALfAIfOj}{{Cb{{ACl{Of}}{AJb{imo}}}}}{}{HfFjFl}Hf{{Mf{}{{Gn{e}}{Gl{g}}}}Mj{Kd{}{{Gn{e}}{Gl{g}}}}AAb}{AjADl}{{ALh{}{{AKh{i}}}}}{{AKn{}{{AKl{i}}}}}}{{{d{{On{c}}}}}An{}}{{{d{fAH`}}{Ah{c}}}{{Cb{je}}}{}{}}{{{d{fAH`}}{d{{El{{Fn{c}}}}}}}{{Cb{je}}}{}{}}{{{d{AH`}}}{{Cb{{Dn{AB`}}c}}}{}}{{{d{{AHn{ceg}}}}}{{A`{{d{AFn}}}}}{}MjAj}{{{d{{AHn{ceg}}}}}{{A`{{d{AMd}}}}}{}MjAj}{{{d{{AHn{ceg}}}}}{{A`{{d{AMf}}}}}{}MjAj}{{{d{{AHn{ceg}}}}}{{A`{{d{{Kf{l}}}}}}}{}MjAj}{dc{}}000{{{d{{On{c}}}}}Bn{}}0{{{d{AH`}}}{{Cb{{Dn{Il}}c}}}{}}`{{{d{f{AHh{}{{AHb{c}}{AHd{e}}{AHf{g}}}}}}n}jHf{{ADn{}{{Gl{c}}}}}{}}{{{d{f{AHn{ceg}}}}n}jAHh{MjKd}Aj}{{{d{fAH`}}n}{{Cb{nc}}}{}}1{c{{Cb{e}}}{}{}}000000000{{}{{Cb{c}}}{}}000000000{{{d{f{AHn{ceg}}}}nAn}{{Cb{AD`ADj}}}AHh{MfMjKdAAb}{AjADl}}{{{d{{On{c}}}}}Of{}}{dCd}000000000{{{d{{AFn{c}}}}}{{A`{{d{Ad}}}}}Hh}{{{d{{AFn{c}}}}}ABdHh}{{{d{fAH`}}n}{{Cb{jc}}}{}}{{{d{{AFn{c}}}}}{{d{Kh}}}{}}{{{d{AH`}}c}{{Cb{ne}}}{}{}}{{{d{AH`}}c{d{{Kf{l}}}}}{{Cb{B`e}}}{}{}}{{}c{}}000000000{{{d{{AHn{ceg}}}}}{{d{e}}}{}Mj{}}{{{d{f{AHn{ceg}}}}}{{d{fe}}}{}Mj{}}{{{AHj{ce}}Hl}{{AHj{ce}}}{}{}}{{{AHj{ce}}}{{AHj{ce}}}{}{}}{{{AHj{jc}}e}{{AHj{ec}}}{}AHh}{{{AHj{cj}}e}{{AHj{ce}}}{}{}}{{{AHj{ce}}AJl}{{AHj{ce}}}{}{}}{{{AHj{ce}}g}{{AHj{ce}}}{}{}{{ABj{{d{fALn}}{d{AHl}}}{{ABh{AIb}}}}}}{{{d{fAH`}}k}{{Cb{ei}}}{}{}{}{{ABf{{AAf{g}}}}}{{ABn{{d{f{ABl{c}}}}}{{ABh{{Cb{ei}}}}}}}}{{{d{fAH`}}i}{{Cb{eg}}}{}{}{{ABf{{AAf{AEh}}}}}{{ABn{{d{f{ABl{c}}}}}{{ABh{{Cb{eg}}}}}}}}`{d{{d{c}}}{}}{{{d{f}}}{{d{fc}}}{}}{{{d{{Ah{c}}}}}An{}}{An{{d{c}}}{}}{An{{d{fc}}}{}}{Anj}{{}c{}}{AMhc{}}{cc{}}{{{d{c}}}Cf{}}{{{d{c}}{d{c}}}B`{}}{{}An}{{}c{}}{{}{{Bf{c}}}{}}{{dc}{{Bj{c}}}{}}{{{d{{Ff{c}}}}}A@f{FlFj}}{{{d{f{AHn{ceg}}}}A@f{d{{El{{AAd{i}}}}}}}{{Cb{jAAf}}}{}{MjAAb}{}{}}{{{d{AD`}}}An}{{{d{{AHn{ceg}}}}Bnn{d{El}}}{{Cb{{Dn{{Nn{i}}}}}}}{}{MfMj}{}{}}{{{d{{El{l}}}}}c{}}{{{d{c}}}Cf{}}{{{d{c}}}e{}{}}{{{d{{AHn{ceg}}}}}i{}MjAj{}}{c{{Cb{e}}}{}{}}{{}{{Cb{c}}}{}}{{{d{c}}n{d{Ab}}{d{e}}}{{A`{{Ej{NlCfBh}}}}}Aj{}}{dCd}{{{d{Kh}}}{{d{c}}}{}}{{}c{}}{{{d{{Ah{c}}}}e}j{}{{ABn{{d{Bh}}}}}}``````{{ce}jAI`AHh}0{{ce}jAI`AHh}{cjAI`}1{{{d{{Ah{c}}}}}An{}}{{}c{}}{AMhc{}}455{{{d{c}}}Cf{}}{{{d{c}}{d{c}}}B`{}}7{{ce}jAI`AHh}88{{{d{{Ff{c}}}}}A@f{FlFj}}8987{{{d{f{AHn{ceg}}}}A@f{d{{El{{AAd{i}}}}}}}{{Cb{jAAf}}}{}{MjAAb}{}{}}{cCfAGj}{ceAGj{}}{{{d{AD`}}}An}{{ce}jAI`AHh}>==={{{d{{AHn{ceg}}}}Bnn{d{El}}}{{Cb{{Dn{{Nn{i}}}}}}}{}{MfMj}{}{}}{{ceg}jAI`AHh{{AMj{dEh}{{ABh{B`}}}}}}{{ce}jAI`AHh}0{{ce}jAI`AHh}{{{d{{El{l}}}}}c{}}{{{d{c}}}Cf{}}{{{d{c}}}e{}{}}444{{{d{{AHn{ceg}}}}}i{}MjAj{}}{{{d{c}}n{d{Ab}}{d{e}}}{{A`{{Ej{NlCfBh}}}}}Aj{}}{{{d{Kh}}}{{d{c}}}{}}7{{{d{{Ah{c}}}}e}j{}{{ABn{{d{Bh}}}}}}7`{d{{d{c}}}{}}{{{d{f}}}{{d{fc}}}{}}{{{d{{Ah{c}}}}}An{}}{An{{d{c}}}{}}{An{{d{fc}}}{}}{Anj}{{}c{}}{AMhc{}}{cc{}}{{{d{c}}}Cf{}}{{{d{c}}{d{c}}}B`{}}{{}An}{{}c{}}{{}{{Bf{c}}}{}}{{dc}{{Bj{c}}}{}}{{{d{{Ff{c}}}}}A@f{FlFj}}{{{d{f{AHn{ceg}}}}A@f{d{{El{{AAd{i}}}}}}}{{Cb{jAAf}}}{}{MjAAb}{}{}}{{{d{AD`}}}An}{{{d{{AHn{ceg}}}}Bnn{d{El}}}{{Cb{{Dn{{Nn{i}}}}}}}{}{MfMj}{}{}}{{{d{{El{l}}}}}c{}}{{{d{c}}}Cf{}}{{{d{c}}}e{}{}}{{{d{{AHn{ceg}}}}}i{}MjAj{}}{c{{Cb{e}}}{}{}}{{}{{Cb{c}}}{}}{{{d{c}}n{d{Ab}}{d{e}}}{{A`{{Ej{NlCfBh}}}}}Aj{}}{dCd}{{{d{Kh}}}{{d{c}}}{}}{{}c{}}{{{d{{Ah{c}}}}e}j{}{{ABn{{d{Bh}}}}}}`{d{{d{c}}}{}}{{{d{f}}}{{d{fc}}}{}}{{{d{AJl}}}AJl}{{d{d{fc}}}j{}}{{dl}j}{An{{d{c}}}{}}{An{{d{fc}}}{}}{Anj}{{{d{AJl}}}Eh}{{{d{AJl}}{d{AJl}}}B`}1{{{d{AJl}}{d{fBb}}}Bd}{cc{}}{{ceAJl}jAI`AHh}{{}An}5{{}c{}}{{}{{Bf{c}}}{}}{{dc}{{Bj{c}}}{}}{{EhEhEh}AJl}{cjAI`}{dc{}}{{ce}jAI`AHh}0{c{{Cb{e}}}{}{}}{{}{{Cb{c}}}{}}{dCd}{{}c{}}``````````````````````````````````````````````````````````````````````````````````````````````````````````````{{{d{fc}}{d{e}}{d{g}}{d{i}}{d{Kh}}AIf{d{{AIh{km}}}}}{{Cb{{ACl{Of}}{AIj{cokAam}}}}}{KdAAb}{AjId}AMlAMnAIl{}{}{}}{{{d{c}}{d{fe}}{d{Ab}}{A`{n}}}{{Cb{j}}}AjKd}`{{{d{fc}}{d{e}}{d{g}}{d{i}}Bn{d{{El{Dh}}}}Eh}{{Cb{{AIh{AEh}}{AKf{ckgi}}}}}{Hb{Mf{}{{Gl{}}}}}Aj{{AKj{}{{AKh{c}}}}}{{AKn{}{{AKl{c}}}}}{}}{{{d{fc}}{d{e}}AL`Oj{d{Cf}}Bn{A`{Bh}}{A`{Bh}}Ml}{{Cb{{AIh{AL`}}{ALd{cg{AIn{c}}{ALb{c}}}}}}}{Mf{Hb{}{{Gl{}}{Gn{}}}}}{AjId}{}}{{{d{fc}}{d{e}}{d{g}}{d{i}}ALfOj}{{Cb{AIh{ALd{ckgi}}}}}{Hb{Mf{}{{Gl{}}}}}{AjId}{{ALh{}{{AKh{c}}}}}{{AKn{}{{AKl{c}}}}}{}}{{{d{fc}}{d{e}}{d{g}}{d{i}}{d{k}}{d{m}}Bn{d{Kh}}{d{{El{Dh}}}}Eh}{{Cb{{ACl{Of}}{AMb{ckm}}}}}{KdAAb{Mf{}{{Gl{}}}}}AjAMlAMn{{AKj{}{{AKh{c}}}}}{{AKn{}{{AKl{c}}}}}}{AFfBn}000000000```````````````````{d{{d{c}}}{}}00{{{d{f}}}{{d{fc}}}{}}00{{{d{AN`}}}AN`}{{d{d{fc}}}j{}}{{dl}j}{{}{{AIn{c}}}{}}{An{{d{c}}}{}}00{An{{d{fc}}}{}}00{Anj}00{{{d{AN`}}{d{AN`}}}B`}{{{d{{AEl{cegi}}}}{d{fBb}}}BdAE`AE`AE`AE`}{{{d{{AEl{cegi}}}}{d{fBb}}}BdHfHfHfHf}{{{d{AN`}}{d{fBb}}}Bd}0{cc{}}{AN`{{AEl{cAN`eg}}}{}{}{}}{Gf{{AEl{cAN`eg}}}{}{}{}}{{{ANb{ce}}}{{AEl{gice}}}{}{}{}{}}{{{Ef{{d{D`}}}}}{{AEl{cegi}}}{}{}{}{}}44{{}An}00{{}c{}}00{{}{{Bf{c}}}{}}00{{dc}{{Bj{c}}}{}}00{{}{{AIn{c}}}{}}{{{d{{AKj{}{{Gl{c}}{AKh{e}}}}}}{d{g}}{d{e}}{d{i}}Bn{d{{El{Dh}}}}nEh}{{Cb{{AIh{AEh}}{AEl{cAEh}}}}}{}MfAj{{AKn{}{{AKl{e}}}}}}{{{d{{AIn{c}}}}{d{e}}{d{g}}{d{i}}Bn{d{{El{Dh}}}}nEh}{{Cb{{AIh{AEh}}{AEl{kAEh}}}}}MfAj{}{{AKn{}{{AKl{g}}}}}{}}{{{d{{ALh{}{{Gl{c}}{AKh{e}}}}}}{d{g}}{d{e}}nnALf{d{i}}}{{Cb{AIh{AEl{c}}}}}{}MfAj{{AKn{}{{AKl{e}}}}}}{{{d{{AIn{c}}}}{d{e}}{d{g}}nnALf{d{i}}}{{Cb{AIh{AEl{k}}}}}MfAj{}{{AKn{}{{AKl{c}}}}}{}}{{{d{{AEl{cegi}}}}}{{A`{{d{AEd}}}}}{HfAE`AEd}{HfAE`AEd}{HfAE`AEd}{HfAE`}}{dc{}}{dDb}0{c{{Cb{e}}}{}{}}00{{}{{Cb{c}}}{}}00{dCd}00{{}c{}}00{ANdBn}0``````````{d{{d{c}}}{}}0{{{d{f}}}{{d{fc}}}{}}0{{{d{ANf}}}ANf}{{d{d{fc}}}j{}}{{dl}j}{{{d{c}}{d{D`}}}{{Cb{{ANh{}{{Gl{e}}}}e}}}{}{}}{{{d{D`}}{d{D`}}}{{Cb{ANjANf}}}}{{{d{D`}}{d{D`}}}{{Cb{ANlANf}}}}{{{d{D`}}}{{Cb{{Ej{E`ANj}}ANf}}}}{{{d{D`}}{d{D`}}}{{Cb{DfANf}}}}{{{d{{El{l}}}}{d{{El{l}}}}{d{D`}}}{{Cb{{A`{Dh}}ANn}}}}{An{{d{c}}}{}}0{An{{d{fc}}}{}}0{Anj}0{{{d{{ANh{}{{Gl{c}}}}}}{d{e}}}Db{}{}}{{{d{D`}}{d{ANj}}}Db}{{{d{D`}}{d{ANl}}}Db}{{{d{D`}}{d{Df}}}Db}{{{d{c}}{d{Df}}}DbAj}{{{d{{El{l}}}}{d{{El{l}}}}{d{Dh}}}Db}{{{d{c}}{d{Dh}}}DbAj}{{{d{ANf}}{d{ANf}}}B`}{{{d{ANf}}{d{fBb}}}{{Cb{jDd}}}}0{{{d{AO`}}{d{fBb}}}{{Cb{jDd}}}}0{AObANf}{cc{}}{AOdANf}1{{}An}0{{}c{}}0{{}{{Bf{c}}}{}}0{{dc}{{Bj{c}}}{}}0{dc{}}{dDb}0{c{{Cb{e}}}{}{}}0{{}{{Cb{c}}}{}}0{dCd}0{{}c{}}0{AOfDb}0```````````````````````{{{d{AOh}}}AOj}{d{{d{c}}}{}}0000000{{{d{f}}}{{d{fc}}}{}}0000000{{{d{AL`}}}AL`}{{{d{AOl}}}AOl}{{{d{AOn}}}AOn}{{{d{{ANb{ce}}}}}{{ANb{ce}}}IdId}{{{d{AOj}}}AOj}{{{d{AOh}}}AOh}{{{d{B@`}}}B@`}{{{d{B@b}}}B@b}{{d{d{fc}}}j{}}0000000{{dl}j}0000000`{{{d{{AKn{}{{B@d{c}}{Gl{e}}{AKl{g}}{B@f{i}}}}}}{d{k}}n{d{{El{m}}}}{d{{El{o}}}}{d{Ac}}{d{Ae}}{A`{{d{B@b}}}}{d{i}}}{{Cb{AOn{ANb{eAa}}}}}{AIlId}{}Mf{}AjB@hB@jId{{B@l{Aa}}}{{B@n{Aa}}}}{{}AOh}{An{{d{c}}}{}}0000000{An{{d{fc}}}{}}0000000{Anj}0000000{{{d{AOh}}}{{A`{Bn}}}}{{{d{B@b}}}{{A`{Bn}}}}0{BnAOl}{{{d{AL`}}{d{AL`}}}B`}{{{d{AOl}}{d{AOl}}}B`}{{{d{AOn}}{d{AOn}}}B`}{{{d{{ANb{ce}}}}{d{{ANb{ce}}}}}B`L`L`}{{{d{AOj}}{d{AOj}}}B`}{{{d{AOh}}{d{AOh}}}B`}{{{d{B@b}}{d{B@b}}}B`}{{{d{AL`}}{d{c}}negAnAnAn}{{Cb{Bni}}}Aj{{BAd{}{{BA`{BAb}}}}}{{BAd{}{{BA`{An}}}}}{}}{{{d{AOn}}}Bn}{{{d{{AKn{}{{B@d{c}}{Gl{e}}{AKl{g}}{B@f{i}}}}}}}{{d{c}}}{AIlId}{}Mf{}}{{{d{{AKn{}{{B@d{c}}{Gl{e}}{AKl{g}}{B@f{i}}}}}}{d{g}}{d{El}}}{{Cb{i}}}{AIlId}{}Mf{}}{{{d{AL`}}{d{fBb}}}Bd}{{{d{AOl}}{d{fBb}}}Bd}{{{d{AOn}}{d{fBb}}}Bd}{{{d{{ANb{ce}}}}{d{fBb}}}BdHfHf}{{{d{{ANb{ce}}}}{d{fBb}}}BdAE`AE`}{{{d{AOj}}{d{fBb}}}Bd}{{{d{AOh}}{d{fBb}}}Bd}{{{d{B@`}}{d{fBb}}}Bd}{{{d{B@b}}{d{fBb}}}Bd}{cc{}}0000000{{{d{AL`}}}An}{{}An}0000000{{}c{}}0000000{{}{{Bf{c}}}{}}0000000{{{d{AOl}}}B`}{{{d{B@b}}}B`}0{{{d{AL`}}}Bn}{{{d{AOl}}}{{A`{{d{Bh}}}}}}{{{d{B@`}}}{{A`{Bn}}}}{{dc}{{Bj{c}}}{}}0000000{{{Dn{AOl}}Bn}{{Cb{AOnj}}}}{{AOj{A`{Bn}}}AOh}`{{Bn{A`{Bh}}}AOl}{{{d{AOl}}}Ch}{{{d{AOn}}}{{d{{El{AOl}}}}}}`2{{MlBn{A`{Bh}}}AOl}{{}B@`}{{{d{{ANb{ce}}}}}{{A`{{d{AEd}}}}}{HfAE`AEd}{HfAE`}}{{{d{B@`}}{A`{An}}{A`{Bn}}Bn}BAf}`{{{d{B@`}}}BAf}{dc{}}0000000{dDb}{{{d{AOn}}}Bn}{c{{Cb{e}}}{}{}}0000000{{}{{Cb{c}}}{}}0000000{dCd}0000000{{{d{AOl}}}Bn}{{}c{}}0000000{{BAfBn}B@`}`{BAhBn}{BAjDn}100``````{d{{d{c}}}{}}{{{d{f}}}{{d{fc}}}{}}{{{d{{B@n{}{{BAl{c}}{BAn{g}}}}}}}BB`{{BBb{e}}}{}BBd}{{{d{BBf}}}BB`}{An{{d{c}}}{}}{An{{d{fc}}}{}}{Anj}{cc{}}{{}An}{{{d{{B@n{}{{BAl{c}}{BAn{g}}}}}}}{{d{{El{c}}}}}{{BBb{e}}}{}BBd}{{{d{BBf}}}{{d{{El{c}}}}}{}}{{}c{}}{{}{{Bf{c}}}{}}{{dc}{{Bj{c}}}{}}{{{d{BBb}}}{{d{c}}}{}}{{{d{{B@n{}{{BAl{c}}{BAn{g}}}}}}}{{d{{El{g}}}}}{{BBb{e}}}{}BBd}{{{d{BBf}}}{{d{{El{c}}}}}{}}{c{{Cb{e}}}{}{}}{{}{{Cb{c}}}{}}{dCd}{{{d{BBb}}}Bn}{{{d{BBd}}}Bn}{{}c{}}``````{d{{d{c}}}{}}{{{d{f}}}{{d{fc}}}{}}{{{d{{B@l{}{{BAl{c}}{BAn{g}}}}}}}BBh{{BBj{e}}}{}BBl}{{{d{BBn}}}BBh}{An{{d{c}}}{}}{An{{d{fc}}}{}}{Anj}{cc{}}{{}An}{{{d{{B@l{}{{BAl{c}}{BAn{g}}}}}}}{{d{{El{c}}}}}{{BBj{e}}}{}BBl}{{{d{BBn}}}{{d{{El{c}}}}}{}}{{}c{}}{{}{{Bf{c}}}{}}{{dc}{{Bj{c}}}{}}{{{d{BBj}}}{{d{c}}}{}}{{{d{{B@l{}{{BAl{c}}{BAn{g}}}}}}}{{d{{El{g}}}}}{{BBj{e}}}{}BBl}{{{d{BBn}}}{{d{{El{c}}}}}{}}{c{{Cb{e}}}{}{}}{{}{{Cb{c}}}{}}{dCd}{{{d{BBj}}}Bn}{{{d{BBl}}}Bn}{{}c{}}`````{d{{d{c}}}{}}0{{{d{f}}}{{d{fc}}}{}}0{{{d{{BC`{ce}}}}{d{g}}n{d{{El{i}}}}{d{{El{k}}}}{d{o}}{d{Aa}}{A`{{d{B@b}}}}{d{Ac}}}{{Cb{AOn{ANb{Aem}}}}}{BCbId}MfAjB@hB@jId{{B@l{m}}}{{B@n{m}}}{}{}}{{{d{{BCd{ce}}}}{d{g}}n{d{{El{i}}}}{d{{El{k}}}}{d{o}}{d{Aa}}{A`{{d{B@b}}}}{d{Ac}}}{{Cb{AOn{ANb{Aem}}}}}{BCbId}MfAjB@hB@jId{{B@l{m}}}{{B@n{m}}}{}{}}{An{{d{c}}}{}}0{An{{d{fc}}}{}}0{Anj}0{{{d{{BC`{ce}}}}}{{d{g}}}{BCbId}Mf{}}{{{d{{BCd{ce}}}}}{{d{g}}}{BCbId}Mf{}}{{{d{{BC`{ce}}}}{d{g}}{d{El}}}{{Cb{i}}}{BCbId}Mf{}{}}{{{d{{BCd{ce}}}}{d{g}}{d{El}}}{{Cb{i}}}{BCbId}Mf{}{}}{cc{}}0{{{d{BCb}}}An}{{}An}0{{}c{}}0{{}{{Bf{c}}}{}}0{{{d{BCb}}}Bn}{{dc}{{Bj{c}}}{}}0{{c{A`{Bh}}MlAOh}{{BC`{ce}}}{}{}}{{c{A`{Bh}}MlAOhB@`}{{BCd{ce}}}{}{}}{c{{Cb{e}}}{}{}}0{{}{{Cb{c}}}{}}0{dCd}0{{}c{}}0``````````````````````````````````{{{d{Ad}}KlEn}{{Cb{CjBCf}}}}{{{d{ABd}}KlEn}{{Cb{CjBCf}}}}{d{{d{c}}}{}}000000000{{{d{f}}}{{d{fc}}}{}}000000000{{{d{Kh}}}Kh}{{{d{BCf}}}BCf}{{{d{BCh}}}BCh}{{{d{En}}}En}{{{d{BCj}}}BCj}{{{d{Ad}}}Ad}{{{d{ABd}}}ABd}{{d{d{fc}}}j{}}000000{{dl}j}000000{{BChBChBCh}{{Cb{Enj}}}}{{{d{c}}{d{D`}}}{{Cb{AdDb}}}Aj}{{{d{c}}{d{D`}}}{{Cb{ABdDb}}}Aj}{{{d{Kh}}En}{{Ej{CjKl}}}}{{{d{Ad}}En}{{Cb{{Ej{CjKl}}BCf}}}}{{{d{ABd}}En}{{Cb{{Ej{CjKl}}BCf}}}}{{{d{Kh}}}{{Ej{DhNb}}}}{An{{d{c}}}{}}000000000{An{{d{fc}}}{}}000000000{Anj}000000000{{{d{Ad}}{d{c}}}DbAj}{{{d{ABd}}{d{c}}}DbAj}{{{d{BCl}}{d{BCl}}}B`}{{{d{BCn}}{d{BCn}}}B`}{{{d{BCh}}{d{BCh}}}B`}{{{d{Ad}}KlEn}{{Cb{{Ej{CjKl}}BCf}}}}{{{d{ABd}}KlEn}{{Cb{{Ej{CjKl}}BCf}}}}{{{d{BD`}}{d{fBb}}}{{Cb{jDd}}}}0{{{d{BCl}}{d{fBb}}}{{Cb{jDd}}}}{{{d{BCn}}{d{fBb}}}{{Cb{jDd}}}}0{{{d{Kh}}{d{fBb}}}{{Cb{jDd}}}}{{{d{BCf}}{d{fBb}}}{{Cb{jDd}}}}0{{{d{BCh}}{d{fBb}}}{{Cb{jDd}}}}{{{d{En}}{d{fBb}}}{{Cb{jDd}}}}{{{d{BCj}}{d{fBb}}}{{Cb{jDd}}}}{{{d{Ad}}{d{fBb}}}{{Cb{jDd}}}}{{{d{ABd}}{d{fBb}}}{{Cb{jDd}}}}{BDbBD`}{cc{}}000000000{{BCl{d{{El{l}}}}}{{Cb{KhBCn}}}}{ANj{{Cb{AdBD`}}}}{{{d{c}}{d{{El{l}}}}Gb}{{Cb{KhBD`}}}Aj}{{{d{ABd}}}B`}00{{}An}000000000{{BChBCh}{{Cb{BChj}}}}{{{d{BCj}}{d{BCj}}}{{Cb{BCjj}}}}{{}c{}}000000000{{}{{Bf{c}}}{}}000000000{{dc}{{Bj{c}}}{}}000000000{{BChBChBCh}{{Cb{BCjj}}}}{{{A`{BDd}}{A`{AMf}}{A`{AMd}}}{{Cb{AdBD`}}}}{{{A`{BDf}}{A`{BDh}}{A`{BDj}}}ABd}{{{d{Kh}}}{{d{BDl}}}}{{{d{BCj}}}BCh}{{{d{Ad}}}{{A`{{d{AMd}}}}}}{{{d{ABd}}}{{d{{A`{BDj}}}}}}2{{{d{BDn}}}{{Cb{AdBCn}}}}{{{d{ABd}}En}{{Cb{BCjBCf}}}}`{{{d{Kh}}}{{d{ANl}}}}5{{{d{Ad}}}{{A`{{d{AMf}}}}}}{{{d{ABd}}}{{d{{A`{BDh}}}}}}`{{{d{Kh}}BCl}{{Dn{l}}}}{dc{}}000000{{{d{ABd}}}{{Cb{BCjj}}}}{dDb}00{{{d{Kh}}}Ad}{{{d{Ad}}}ABd}{{{d{Kh}}}{{d{BE`}}}}{{{d{Ad}}}{{A`{{d{BDd}}}}}}{{{d{ABd}}}{{d{{A`{BDf}}}}}}{c{{Cb{e}}}{}{}}000000000{{}{{Cb{c}}}{}}000000000{dCd}000000000{{BChBChBCh}En}{{BChBChBCh}BCj}{{}c{}}000000000```{{{d{AMf}}{d{fAGf}}{d{c}}neAGhBnEh{d{fg}}}eAj{}{AGjAGl}}{{{d{AMf}}{d{fAGf}}{d{c}}nAGhBnEh{d{fe}}}gAj{AGjAGl}{}}{{{d{AMf}}{d{fAGf}}c{d{fe}}}j{}{AGjAGl}}{{{d{ANj}}Kl}{{A`{Df}}}}{{{d{AMf}}Kl}{{A`{Df}}}}{d{{d{c}}}{}}00{{{d{f}}}{{d{fc}}}{}}00{{{d{AMf}}}{{Ej{KlDf}}}}{{{d{ANl}}}ANl}{{{d{ANj}}}ANj}{{{d{AMf}}}AMf}{{d{d{fc}}}j{}}00{{dl}j}00{{{d{AMf}}{d{Df}}}{{A`{{Ej{KlAKb}}}}}}{{{d{ANl}}}{{Ej{KlDf}}}}{{{d{ANj}}}{{Ej{KlDf}}}}8{An{{d{c}}}{}}00{An{{d{fc}}}{}}00{{{d{ANl}}BEb}ANl}:9{{{d{AMf}}BEd}{{A`{Df}}}}0{Anj}00{{{d{ANl}}{d{ANl}}}B`}{{{d{ANj}}{d{ANj}}}B`}{ANlBEf}{{{d{ANj}}Kl}{{A`{{Ej{KlDf}}}}}}{{{d{AMf}}Kl}{{A`{{Ej{KlDf}}}}}}{{{d{ANl}}{d{fBb}}}{{Cb{jDd}}}}{{{d{ANj}}{d{fBb}}}{{Cb{jDd}}}}{{{d{AMf}}{d{fBb}}}{{Cb{jDd}}}}{cc{}}0{ANjAMf}1{{{d{ANj}}}AMf}{{{d{{El{l}}}}}{{Cb{ANlBEh}}}}{{{d{{Ed{l}}}}}{{A`{AMf}}}}{{{d{ANl}}{d{{El{BEb}}}}}ANl}{{{d{AMf}}}{{d{BEj}}}}{ANjBEj}{{}An}00{{}c{}}00{{}{{Bf{c}}}{}}00{{{d{{El{l}}}}}ANl}{{dc}{{Bj{c}}}{}}00{{{d{AMf}}AKb}{{A`{AKd}}}}{c{{Cb{ANlLf}}}BEl}{c{{Cb{ANjLf}}}BEl}{{{d{AMf}}}{{A`{AM`}}}}{{{d{{El{l}}}}EhGb}ANl}{{{d{ANl}}}{{Ed{l}}}}{{{d{AMf}}}{{Ed{l}}}}{{{d{ANl}}}AMf}{{{d{ANj}}}AMf}{{{d{ANl}}}ANj}{{{d{AMf}}}BDh}{{{d{AMf}}}BEj}{{{d{AMf}}AKb}BEn}{{{d{AMf}}AKb}BF`}{{{d{AMf}}AKb}AM`}{dc{}}00{c{{Cb{e}}}{}{}}00{{}{{Cb{c}}}{}}00{dCd}00{{}c{}}00{{{d{ANl}}c}{{Cb{jLf}}}BFb}{{{d{ANj}}c}{{Cb{jLf}}}BFb}{Fd{{`{{Fb{}{{F`{Kh}}}}}}}}`````````````````````{{{d{{BFd{c}}}}}n{}}{{{d{{BFf{c}}}}}{{d{AOn}}}{}}{d{{d{c}}}{}}00000{{{d{f}}}{{d{fc}}}{}}00000{{{d{AFb}}}AFb}{{{d{{BFd{c}}}}}{{BFd{c}}}Id}{{{d{{AIh{ce}}}}}{{AIh{ce}}}IdId}{{{d{BFh}}}BFh}{{{d{BFj}}}BFj}{{{d{{BFf{c}}}}}{{BFf{c}}}Id}{{d{d{fc}}}j{}}00000{{dl}j}00000{{{d{BFh}}{d{BFh}}}Jl}{{{d{BFj}}{d{BFj}}}Jl}{An{{d{c}}}{}}00000{An{{d{fc}}}{}}00000{Anj}00000{{{d{{BFd{c}}}}{d{{BFd{c}}}}}B`L`}{{{d{{AIh{ce}}}}{d{{AIh{ce}}}}}B`L`L`}{{{d{BFh}}{d{BFh}}}B`}{{{d{BFj}}{d{BFj}}}B`}{{{d{{BFf{c}}}}{d{{BFf{c}}}}}B`L`}{{{d{{AIh{ce}}}}}{{d{c}}}{}{}}{{{d{AFb}}{d{fBb}}}Bd}0{{{d{{AIh{ce}}}}{d{fBb}}}BdHf{}}{{{d{BFh}}{d{fBb}}}Bd}{{{d{BFj}}{d{fBb}}}Bd}{{{d{{BFf{c}}}}{d{fBb}}}Bd{}}{cc{}}00000{{n{ACl{{Nn{cNl}}}}}{{BFd{c}}}{}}{{{d{{El{{BFf{c}}}}}}ALf{BFl{AnCh}}{Dn{Oh}}{A`{{BFd{c}}}}{Dn{BFj}}AOnB`}{{Cb{{BFf{c}}AFb}}}{}}{{{d{BFh}}{d{fc}}}jA@`}{{{d{BFj}}{d{fc}}}jA@`}{{}An}00000{{}c{}}00000{{}{{Bf{c}}}{}}00000{{{d{{BFf{c}}}}Ch}B`{}}{{{d{{BFf{c}}}}}B`{}}{{{d{{AIh{ce}}}}}n{}{}}{{cn{ACl{{BFf{e}}}}}{{Cb{{AIh{ce}}AFb}}}{}{}}{{dc}{{Bj{c}}}{}}00000{{AnBFh}BFj}{{{d{{BFd{c}}}}}{{d{{ACl{{Nn{cNl}}}}}}}{}}{{{d{BFj}}}BFh}{{{d{BFh}}{d{BFh}}}{{A`{Jl}}}}{{{d{BFj}}{d{BFj}}}{{A`{Jl}}}}{{{d{{BFf{c}}}}}{{d{{BFl{AnCh}}}}}{}}{{{d{{BFf{c}}}}}{{d{{El{BFj}}}}}{}}{{{d{{BFf{c}}}}}{{A`{{d{{BFd{c}}}}}}}{}}{{ALf{BFl{AnCh}}{Dn{Oh}}{A`{{BFd{c}}}}AOnenB`}{{Cb{{AIh{ec}}AFb}}}{}{}}{{{d{BFj}}}An}{{{d{{AIh{ce}}}}}{{d{{ACl{{BFf{e}}}}}}}{}{}}{dc{}}00000{dDb}{{{d{{BFf{c}}}}}{{d{ALf}}}{}}{{{d{{BFf{c}}}}}{{d{{El{Oh}}}}}{}}{c{{Cb{e}}}{}{}}00000{{}{{Cb{c}}}{}}00000{dCd}00000{{}c{}}00000{BFnBn}0``````````{{}Eh}```````{d{{d{c}}}{}}{{{d{f}}}{{d{fc}}}{}}{{{d{{BG`{c}}}}}{{BG`{c}}}Id}{{d{d{fc}}}j{}}{{dl}j}`{An{{d{c}}}{}}{An{{d{fc}}}{}}{Anj}{{{d{{BG`{c}}}}{d{fBb}}}BdHf}{{{d{{BG`{c}}}}{d{fBb}}}BdAE`}{BGb{{BG`{c}}}{}}{cc{}}{{}An}{{}c{}}{{}{{Bf{c}}}{}}{{dc}{{Bj{c}}}{}}``{{{d{{BG`{c}}}}}{{A`{{d{AEd}}}}}AEd}{dc{}}{dDb}{c{{Cb{e}}}{}{}}{{}{{Cb{c}}}{}}{dCd}{{}c{}}``````{AGfDn}{d{{d{c}}}{}}00000{{{d{f}}}{{d{fc}}}{}}00000{ADhA`}{BGdDn}{BGfDn}{{{d{fBGh}}}j}{{{d{fADh}}}j}{{{d{fAGf}}}j}{{{d{fBGj}}}j}{{{d{fBGd}}}j}{{{d{fBGf}}}j}{{{d{BGh}}}BGh}{{{d{ADh}}}ADh}{{{d{AGf}}}AGf}{{{d{BGj}}}BGj}{{{d{BGd}}}BGd}{{{d{BGf}}}BGf}{{d{d{fc}}}j{}}00000{{dl}j}00000{{{d{BGd}}}{{Cb{BGlj}}}}{BGdDn}{{{d{BGf}}}{{Cb{BGnj}}}}{BGfDn}{{}BGh}{{}ADh}{{}AGf}{{}BGj}{{}BGd}{{}BGf}{An{{d{c}}}{}}00000{An{{d{fc}}}{}}00000{Anj}00000{{{d{BGh}}}An}{{{d{ADh}}}An}{{{d{AGf}}}An}{{{d{BGj}}}An}{{{d{BGd}}}An}{{{d{BGf}}}An}{{{d{BGd}}}{{Cb{BH`j}}}}{{{d{BGf}}}{{Cb{BH`j}}}}{BGdDn}{BGfDn}{{{d{BGh}}{d{BGh}}}B`}{{{d{ADh}}{d{ADh}}}B`}{{{d{AGf}}{d{AGf}}}B`}{{{d{BGj}}{d{BGj}}}B`}{{{d{BGd}}{d{BGd}}}B`}{{{d{BGf}}{d{BGf}}}B`}{AGfEh}{{{d{BGh}}{d{fBb}}}Bd}{{{d{ADh}}{d{fBb}}}Bd}{{{d{AGf}}{d{fBb}}}Bd}{{{d{BGj}}{d{fBb}}}Bd}{{{d{BGd}}{d{fBb}}}Bd}{{{d{BGf}}{d{fBb}}}Bd}{cc{}}00{{{d{{BHb{c}}}}}BGjBHd}1{{{d{{BHf{c}}}}}BGd{}}22{{{d{{BHh{c}}}}}BGf{}}{{{d{ADh}}}Hl}{ADhDn}{AGfDn}{{{d{ADh}}}{{A`{BHj}}}}2{{{d{ADh}}}n}{ADhA@f}{AGfA@f}{{}An}00000{{}c{}}00000{{}{{Bf{c}}}{}}00000{{dc}{{Bj{c}}}{}}00000{{{d{BGj}}}{{Cb{Odj}}}}{{{d{BGf}}}{{Cb{Obj}}}}{BGjDn}{BGfDn}{BGhEh}=?>{ADhEh}1>0{dc{}}00000{c{{Cb{e}}}{}{}}00000{{}{{Cb{c}}}{}}00000{{{d{AGf}}}Of}{dCd}00000{ADhDn}{{}c{}}00000````````````````````{BHlEh}{{{d{BHn}}}{{d{D`}}}}{{{d{BI`}}}{{d{D`}}}}{BHlA`}{d{{d{c}}}{}}00000000000{{{d{f}}}{{d{fc}}}{}}00000000000{BIbEh}{{{d{fBId}}}j}{{{d{fBHl}}}j}{{{d{fBIf}}}j}{{{d{fBIh}}}j}{{{d{fBIj}}}j}{{{d{fBIb}}}j}{{{d{fBIl}}}j}{{{d{fBIn}}}j}{{{d{fBJ`}}}j}{{{d{fBJb}}}j}{{{d{BId}}}BId}{{{d{BHl}}}BHl}{{{d{BIf}}}BIf}{{{d{BIh}}}BIh}{{{d{BIj}}}BIj}{{{d{BIb}}}BIb}{{{d{BIl}}}BIl}{{{d{BIn}}}BIn}{{{d{BJ`}}}BJ`}{{{d{BJb}}}BJb}{{{d{BHn}}}BHn}{{{d{BI`}}}BI`}{{d{d{fc}}}j{}}00000000000{{dl}j}00000000000{{{d{BHn}}{d{BHn}}}Jl}{{{d{BI`}}{d{BI`}}}Jl}{{}BId}{{}BHl}{{}BIf}{{}BIh}{{}BIj}{{}BIb}{{}BIl}{{}BIn}{{}BJ`}{{}BJb}{{}BHn}{{}BI`}{An{{d{c}}}{}}00000000000{An{{d{fc}}}{}}00000000000{Anj}00000000000{{{d{BId}}}An}{{{d{BHl}}}An}{{{d{BIf}}}An}{{{d{BIh}}}An}{{{d{BIj}}}An}{{{d{BIb}}}An}{{{d{BIl}}}An}{{{d{BIn}}}An}{{{d{BJ`}}}An}{{{d{BJb}}}An}{{{d{BId}}{d{BId}}}B`}{{{d{BHl}}{d{BHl}}}B`}{{{d{BIf}}{d{BIf}}}B`}{{{d{BIh}}{d{BIh}}}B`}{{{d{BIj}}{d{BIj}}}B`}{{{d{BIb}}{d{BIb}}}B`}{{{d{BIl}}{d{BIl}}}B`}{{{d{BIn}}{d{BIn}}}B`}{{{d{BJ`}}{d{BJ`}}}B`}{{{d{BJb}}{d{BJb}}}B`}{{{d{BHn}}{d{BHn}}}B`}{{{d{BI`}}{d{BI`}}}B`}{BInA@f}{{{d{BId}}}BI`}{BIdBJd}{{{d{BId}}{d{fBb}}}Bd}{{{d{BHl}}{d{fBb}}}Bd}{{{d{BIf}}{d{fBb}}}Bd}{{{d{BIh}}{d{fBb}}}Bd}{{{d{BIj}}{d{fBb}}}Bd}{{{d{BIb}}{d{fBb}}}Bd}{{{d{BIl}}{d{fBb}}}Bd}{{{d{BIn}}{d{fBb}}}Bd}{{{d{BJ`}}{d{fBb}}}Bd}{{{d{BJb}}{d{fBb}}}Bd}{{{d{BHn}}{d{fBb}}}Bd}{{{d{BI`}}{d{fBb}}}Bd}{cc{}}000000000{ChBHn}{MlBHn}22{BJd{{A`{BHn}}}}{BJd{{A`{BI`}}}}{{{d{{AIh{AL`c}}}}}BId{}}{{{d{D`}}}{{A`{BHn}}}}{{{d{D`}}}{{A`{BI`}}}}{{{d{BHn}}{d{fc}}}jA@`}{{{d{BI`}}{d{fc}}}jA@`}{BIhEh}{{}An}00000000000{BHlDn}{{}c{}}00000000000{{}{{Bf{c}}}{}}00000000000{BJ`B`}{BHlB`}{BJdB`}0{BJ`A`}{BIdEh}{{dc}{{Bj{c}}}{}}00000000000{{{d{BIh}}}{{Cb{OfBJf}}}}{{{d{BHn}}{d{BHn}}}{{A`{Jl}}}}{{{d{BI`}}{d{BI`}}}{{A`{Jl}}}}{BIfEh}{BIjEh}={{{d{BIh}}}{{Cb{Ch{BG`{c}}}}}{}}{{{d{BJ`}}}{{Cb{Ch{BG`{c}}}}}{}}{BInDn}`9{{{d{fBId}}BI`}j}{{{d{fBIf}}BHn}j}{{{d{fBIh}}BHn}j}{{{d{fBJ`}}BHn}j}7{BIbEh}{BIdDn}{dc{}}00000000000{BHlDb}{c{{Cb{e}}}{}{}}000000000{BJd{{Cb{BHnBJh}}}}1{BJd{{Cb{BI`BJh}}}}2{{}{{Cb{c}}}{}}00000000000{{{d{BId}}{d{e}}}{{Cb{{AIh{AL`}}{BG`{c}}}}}{}{{Mf{}{{Gl{c}}}}}}{BIhDn}{dCd}00000000000{BIhA@f}{BIlA`}{BJ`A@f}{BJbDn}{{{d{BIf}}}BHn}{{{d{BIh}}}BHn}{{{d{BJ`}}}BHn}{BIfBJd}{BIhBJd}{BJ`BJd}{{}c{}}00000000000````{d{{d{c}}}{}}{{{d{f}}}{{d{fc}}}{}}{{{d{BJj}}}BJj}{{d{d{fc}}}j{}}{{dl}j}{An{{d{c}}}{}}{An{{d{fc}}}{}}{Anj}{{{d{BJj}}{d{fc}}}jBJl}{{{d{BJj}}}An}{{{d{BJj}}{d{BJj}}}B`}{{{d{BJj}}{d{fBb}}}Bd}{cc{}}{{}An}{{}c{}}{{}{{Bf{c}}}{}}{{{d{f{A`{BJj}}}}EhBJn{d{fc}}BK`}{{Cb{jBKb}}}BKd}{{dc}{{Bj{c}}}{}}{dc{}}{c{{Cb{e}}}{}{}}{{}{{Cb{c}}}{}}{dCd}{{}c{}}````````````````````````{BKfDb}{BKhDb}{BKjDb}{BKlDn}{BKnDn}{BL`Dn}{{{d{BLb}}}{{d{D`}}}}{BLdA`}{BLfA@f}{d{{d{c}}}{}}000000000000000000000{{{d{f}}}{{d{fc}}}{}}000000000000000000000{BLfDb}000{{{d{fBLh}}}j}{{{d{fBLj}}}j}{{{d{fBLd}}}j}{{{d{fBLl}}}j}{{{d{fBLn}}}j}{{{d{fBM`}}}j}{{{d{fBMb}}}j}{{{d{fBLf}}}j}{{{d{fBKf}}}j}{{{d{fBMd}}}j}{{{d{fBMf}}}j}{{{d{fBKh}}}j}{{{d{fBKn}}}j}{{{d{fBMh}}}j}{{{d{fBMj}}}j}{{{d{fMb}}}j}{{{d{fBMl}}}j}{{{d{fBMn}}}j}{{{d{fBL`}}}j}{{{d{fBKj}}}j}{{{d{fBKl}}}j}{{{d{BLh}}}BLh}{{{d{BLj}}}BLj}{{{d{BLd}}}BLd}{{{d{BLl}}}BLl}{{{d{BLn}}}BLn}{{{d{BM`}}}BM`}{{{d{BMb}}}BMb}{{{d{BLf}}}BLf}{{{d{BKf}}}BKf}{{{d{BMd}}}BMd}{{{d{BMf}}}BMf}{{{d{BKh}}}BKh}{{{d{BKn}}}BKn}{{{d{BMh}}}BMh}{{{d{BMj}}}BMj}{{{d{Mb}}}Mb}{{{d{BMl}}}BMl}{{{d{BMn}}}BMn}{{{d{BL`}}}BL`}{{{d{BKj}}}BKj}{{{d{BKl}}}BKl}{{{d{BLb}}}BLb}{{d{d{fc}}}j{}}000000000000000000000{{dl}j}000000000000000000000{{{d{BLb}}{d{BLb}}}Jl}`{BMnDn}{BMnA@f}{BLfDb}{BLlDn}{{}BLh}{{}BLj}{{}BLd}{{}BLl}{{}BLn}{{}BM`}{{}BMb}{{}BLf}{{}BKf}{{}BMd}{{}BMf}{{}BKh}{{}BKn}{{}BMh}{{}BMj}{{}Mb}{{}BMl}{{}BMn}{{}BL`}{{}BKj}{{}BKl}{{}BLb}{An{{d{c}}}{}}000000000000000000000{An{{d{fc}}}{}}000000000000000000000{BLfDb}{Anj}000000000000000000000{{{d{BLh}}}An}{{{d{BLj}}}An}{{{d{BLd}}}An}{{{d{BLl}}}An}{{{d{BLn}}}An}{{{d{BM`}}}An}{{{d{BMb}}}An}{{{d{BLf}}}An}{{{d{BKf}}}An}{{{d{BMd}}}An}{{{d{BMf}}}An}{{{d{BKh}}}An}{{{d{BKn}}}An}{{{d{BMh}}}An}{{{d{BMj}}}An}{{{d{Mb}}}An}{{{d{BMl}}}An}{{{d{BMn}}}An}{{{d{BL`}}}An}{{{d{BKj}}}An}{{{d{BKl}}}An}{BLjA`}{BMfBN`}{{{d{BLh}}{d{BLh}}}B`}{{{d{BLj}}{d{BLj}}}B`}{{{d{BLd}}{d{BLd}}}B`}{{{d{BLl}}{d{BLl}}}B`}{{{d{BLn}}{d{BLn}}}B`}{{{d{BM`}}{d{BM`}}}B`}{{{d{BMb}}{d{BMb}}}B`}{{{d{BLf}}{d{BLf}}}B`}{{{d{BKf}}{d{BKf}}}B`}{{{d{BMd}}{d{BMd}}}B`}{{{d{BMf}}{d{BMf}}}B`}{{{d{BKh}}{d{BKh}}}B`}{{{d{BKn}}{d{BKn}}}B`}{{{d{BMh}}{d{BMh}}}B`}{{{d{BMj}}{d{BMj}}}B`}{{{d{Mb}}{d{Mb}}}B`}{{{d{BMl}}{d{BMl}}}B`}{{{d{BMn}}{d{BMn}}}B`}{{{d{BL`}}{d{BL`}}}B`}{{{d{BKj}}{d{BKj}}}B`}{{{d{BKl}}{d{BKl}}}B`}{{{d{BLb}}{d{BLb}}}B`}{BLnBJd}{BLnDb}{BLfA@f}{BMfBN`}{{{d{BLh}}{d{fBb}}}Bd}{{{d{BLj}}{d{fBb}}}Bd}{{{d{BLd}}{d{fBb}}}Bd}{{{d{BLl}}{d{fBb}}}Bd}{{{d{BLn}}{d{fBb}}}Bd}{{{d{BM`}}{d{fBb}}}Bd}{{{d{BMb}}{d{fBb}}}Bd}{{{d{BLf}}{d{fBb}}}Bd}{{{d{BKf}}{d{fBb}}}Bd}{{{d{BMd}}{d{fBb}}}Bd}{{{d{BMf}}{d{fBb}}}Bd}{{{d{BKh}}{d{fBb}}}Bd}{{{d{BKn}}{d{fBb}}}Bd}{{{d{BMh}}{d{fBb}}}Bd}{{{d{BMj}}{d{fBb}}}Bd}{{{d{Mb}}{d{fBb}}}Bd}{{{d{BMl}}{d{fBb}}}Bd}{{{d{BMn}}{d{fBb}}}Bd}{{{d{BL`}}{d{fBb}}}Bd}{{{d{BKj}}{d{fBb}}}Bd}{{{d{BKl}}{d{fBb}}}Bd}{{{d{BLb}}{d{fBb}}}Bd}{cc{}}000000000000000000000{BJd{{A`{BLb}}}}{{{d{D`}}}{{A`{BLb}}}}{BLfDb}{{{d{BLb}}{d{fc}}}jA@`}{BLhDn}{BLdDn}{MbDb}{BLhA@f}{BLlA@f}{MbA@f}{BKjA@f}{BLdA@f}{BKjBJd}{{}An}000000000000000000000{BMdBN`}{{}c{}}000000000000000000000{{}{{Bf{c}}}{}}000000000000000000000{BJdB`}{BMlEh}{BL`Eh}{{dc}{{Bj{c}}}{}}000000000000000000000>{{{d{Mb}}}{{BNd{{BNb{A@j}}}}}}?{{{d{BLb}}{d{BLb}}}{{A`{Jl}}}}{BKfA`}{BMnDn}{BLfA@f}{{{d{Mb}}}{{BNd{{BNb{AAj}}}}}}{MbDb}{BKjDn}{{{d{fBMl}}BLb}j}{{{d{BMl}}}BLb}{BMlBJd}{BLjA`}{BL`A@f}?{BLfB`}{MbEh}{{{d{Mb}}}{{BNd{M`}}}}{dc{}}000000000000000000000{c{{Cb{e}}}{}{}}000000000000000000000{BJd{{Cb{BLbBJh}}}}{{}{{Cb{c}}}{}}000000000000000000000{BMjDn}={dCd}000000000000000000000{BMhBN`}{BKjBN`}{BLfDb}0{{}c{}}00000000000000000000011`{{{BNf{c}}BNh}{{BNf{c}}}{{BNl{BNj}}}}{d{{d{c}}}{}}{{{d{f}}}{{d{fc}}}{}}{{{d{{BNf{c}}}}}{{BNf{c}}}Id}{{d{d{fc}}}j{}}{{dl}j}{An{{d{c}}}{}}{An{{d{fc}}}{}}{Anj}{{{d{{BNf{c}}}}{d{fBb}}}BdHf}{cc{}}{{{d{f{BNf{c}}}}e}{{Cb{{BNn{BKl}}BO`}}}{{BNl{BNj}}}{{BOb{BL`}}}}{{{d{f{BNf{c}}}}e}{{Cb{{BNn{{BOd{BKj}}}}BO`}}}{{BNl{BNj}}}{{BOb{BL`}}}}{{{d{f{BNf{c}}}}e}{{Cb{{BNn{ADh}}BO`}}}{{BNl{BNj}}}{{BOb{BLh}}}}0{{{d{f{BNf{c}}}}e}{{Cb{{BNn{{BOd{ADh}}}}BO`}}}{{BNl{BNj}}}{{BOb{BLj}}}}0{{{d{f{BNf{c}}}}e}{{Cb{{BNn{BLh}}BO`}}}{{BNl{BNj}}}{{BOb{BM`}}}}{{{d{f{BNf{c}}}}e}{{Cb{{BNn{Mb}}BO`}}}{{BNl{BNj}}}{{BOb{BMb}}}}{{{d{f{BNf{c}}}}e}{{Cb{{BNn{BLf}}BO`}}}{{BNl{BNj}}}{{BOb{BMb}}}}{{{d{f{BNf{c}}}}e}{{Cb{{BNn{{BOd{BLl}}}}BO`}}}{{BNl{BNj}}}{{BOb{BMb}}}}{{{d{f{BNf{c}}}}e}{{Cb{{BNn{{BOd{AGf}}}}BO`}}}{{BNl{BNj}}}{{BOb{BMj}}}}{{{d{f{BNf{c}}}}e}{{Cb{{BNn{{BOd{BMn}}}}BO`}}}{{BNl{BNj}}}{{BOb{BMl}}}}{{{d{f{BNf{c}}}}e}{{Cb{{BNn{BMh}}BO`}}}{{BNl{BNj}}}{{BOb{BKn}}}}{{{d{f{BNf{c}}}}e}{{Cb{{BNn{BMh}}BO`}}}{{BNl{BNj}}}{{BOh{}{{BOf{BKh}}}}}}{{{d{f{BNf{c}}}}e}{{Cb{{BNn{{BOd{BLl}}}}BO`}}}{{BNl{BNj}}}{{BOb{BKf}}}}{{{d{f{BNf{c}}}}e}{{Cb{{BNn{BLl}}BO`}}}{{BNl{BNj}}}{{BOb{BLd}}}}{{{d{f{BNf{c}}}}e}{{Cb{{BNn{Mb}}BO`}}}{{BNl{BNj}}}{{BOb{BLh}}}}{{}An}{{}c{}}{{}{{Bf{c}}}{}}{{{BNf{c}}An}{{BNf{c}}}{{BNl{BNj}}}}0{{dc}{{Bj{c}}}{}}{c{{BNf{c}}}{{BNl{BNj}}}}{{{d{f{BNf{c}}}}e}{{Cb{{BNn{BMf}}BO`}}}{{BNl{BNj}}}{{BOb{BMd}}}}{{{BNf{c}}BNh}{{BNf{c}}}{{BNl{BNj}}}}{{{d{f{BNf{c}}}}e}{{Cb{{BNn{BLn}}BO`}}}{{BNl{BNj}}}{{BOb{BLl}}}}{dc{}}{c{{Cb{e}}}{}{}}{{}{{Cb{c}}}{}}{dCd}{{}c{}}{{ce}{{BNf{{BOj{ce}}}}}{{C@b{{BOl{BNj}}}{{BOn{C@`}}}}{BNl{BNj}}}C@d}{{cC@f}{{BNf{c}}}{{BNl{BNj}}}}```````````{{{d{C@h}}}{{d{c}}}{}}{{{d{{C@j{BDjAMdc}}}}}{{d{c}}}{}}{{{d{{C@j{BEnBF`c}}}}}{{d{c}}}{}}{{{d{AEb}}}n}{d{{d{c}}}{}}000{{{d{f}}}{{d{fc}}}{}}000{{{d{AEb}}}AEb}{{d{d{fc}}}j{}}{{dl}j}{An{{d{c}}}{}}000{An{{d{fc}}}{}}000{Anj}000{{}{{C@l{ce}}}{}{}}{{}{{C@n{c}}}{}}{{{d{AEb}}{d{fBb}}}Bd}0{cc{}}000{e{{C@l{c{Ej{cAKb}}}}}{AlFjFl}{{BAd{}{{BA`{{Ej{cAd}}}}}}}}{{}An}000{{}c{}}000{{}{{Bf{c}}}{}}000{{{d{AEb}}}B`}{{{d{C@h}}}{{A`{AKb}}}}{{{d{{C@j{BEnBF`c}}}}}{{A`{AKb}}}{}}{{{d{{C@j{BDjAMdc}}}}}{{A`{AKb}}}{}}{{dc}{{Bj{c}}}{}}000{{{Af{c{ACh{C@h}}}}{Af{c{ACh{C@h}}}}}{{C@l{ec}}}{}{}}{{{d{C@h}}dMn}{{A`{c}}}{}}{{{d{{C@j{BEnBF`c}}}}{d{Bl}}Mn}{{A`{Od}}}{}}{{{d{{C@j{BDjAMdc}}}}{d{C`}}Mn}{{A`{Ob}}}{}}{{{d{{C@l{ce}}}}}{{d{{Af{e{ACh{C@h}}}}}}}{}{}}{{{d{{C@n{c}}}}}{{d{{El{{Ej{cOb}}}}}}}{}}{{{d{C@h}}}}{{{d{{C@j{BDjAMdc}}}}}CA`{}}{{{d{{C@j{BEnBF`c}}}}}CAb{}}4{{{d{{C@n{c}}}}}{{d{{El{{Ej{cOd}}}}}}}{}}{{{d{c}}ADh{d{{C@l{eg}}}}{d{{C@n{e}}}}{A`{{d{Hd}}}}}{{Cb{{Hj{e}}AEb}}}{AjADl}{AK`FjFlAJnADl}{AlFlFjADl}}`{dc{}}{dDb}{c{{Cb{e}}}{}{}}000{{}{{Cb{c}}}{}}000{dCd}000{{}c{}}000{CAdn}{CAfn}{CAhn}{CAjn}{CAln}{CAhEh}0{CAdAn}{CAnn}{CAdMl}1{CAhMl}{CAjMl}{CAlMl}{CAdOf}{{nHlOd{d{AMf}}BnB`{A`{{Ej{EhEh}}}}}ADh}`{c{{BNd{{CB`{e}}}}}BElCBb}{{{d{fc}}{d{{CB`{e}}}}}{{BNd{j}}}BFbCBb}```````{d{{d{c}}}{}}{{{d{f}}}{{d{fc}}}{}}{An{{d{c}}}{}}{An{{d{fc}}}{}}{Anj}{{{d{{CBd{ceg}}}}{d{fBb}}}BdHfHfHf}{{{d{{CBd{ceg}}}}{d{fBb}}}BdAE`AE`AE`}{cc{}}{BO`{{CBd{ceg}}}{}{}{}}{{{ADj{ce}}}{{CBd{ecg}}}{}{}{}}{{}An}{{}c{}}{{}{{Bf{c}}}{}}{{dc}{{Bj{c}}}{}}{{{d{f{BNf{c}}}}{d{e}}{d{g}}{d{fi}}Eh}{{Cb{jCBd}}}{{BNl{BNj}}}{AjADl}ADb{KdAAb}}{dDb}{c{{Cb{e}}}{}{}}{{}{{Cb{c}}}{}}{dCd}{{}c{}}``````````````````````{{{d{{CBf{ce}}}}}{{d{e}}}{}{}}{{{d{{CBh{ceg}}}}}{{d{g}}}{}{}{}}{{{d{Nf}}}Nb}{{{d{{ABb{c}}}}}An{}}{d{{d{c}}}{}}000000000{{{d{f}}}{{d{fc}}}{}}000000000{{{d{Nh}}}Nh}{{{d{{Ll{c}}}}}{{Ll{c}}}Id}{{{d{Oh}}}Oh}{{{d{Nl}}}Nl}{{{d{{Nn{ce}}}}}{{Nn{ce}}}IdId}{{{d{AIf}}}AIf}{{{d{Nf}}}Nf}{{d{d{fc}}}j{}}000000{{dl}j}000000{{{d{Nh}}{d{Nh}}}Jl}{{{d{Oh}}}{{d{CBj}}}}{{{d{{Ed{l}}}}}AIf}{An{{d{c}}}{}}000000000{An{{d{fc}}}{}}000000000{Anj}000000000{{{d{{CBh{ceg}}}}}{{d{BH`}}}{}{}{}}{{{d{Nh}}{d{Nh}}}B`}{{{d{Oh}}{d{Oh}}}B`}{{{d{Nl}}{d{Nl}}}B`}{{{d{{Nn{ce}}}}{d{{Nn{ce}}}}}B`L`L`}{{{d{Nf}}{d{Nf}}}B`}{{{d{Nh}}{d{fBb}}}Bd}{{{d{{Ll{c}}}}{d{fBb}}}BdHf}{{{d{Oh}}{d{fBb}}}Bd}{{{d{Nl}}{d{fBb}}}Bd}{{{d{{Nn{ce}}}}{d{fBb}}}BdHfHf}{{{d{AIf}}{d{fBb}}}Bd}{{{d{Nf}}{d{fBb}}}Bd}{cc{}}000000000{{Ance}{{CBf{ce}}}{}{}}{{AnBH`cB`Mn{A`{e}}g{A`{AKb}}}{{CBh{ceg}}}{}{}{}}{{OlCBj{A`{n}}}{{A`{Oh}}}}{{cOfA@heAKbMn}{{Nn{ce}}}{}{}}{{{d{{CBf{ce}}}}}An{}{}}{{{d{{CBh{ceg}}}}}An{}{}{}}{{}An}000000000{{{d{{Nn{ce}}}}}{{d{c}}}{}{}}{{}c{}}000000000{{}{{Bf{c}}}{}}000000000{{{d{{CBh{ceg}}}}}B`{}{}{}}{{{Nn{ce}}i}{{Nn{cg}}}{}{}{}{{AMj{e}{{ABh{g}}}}}}{{{d{Oh}}}{{A`{n}}}}{{dc}{{Bj{c}}}{}}000000000{{OfAn{Dn{{CBl{c}}}}{Dn{{CBn{c}}}}{Dn{{CBf{Obc}}}}{Dn{{CC`{c}}}}}{{ABb{c}}}{}}{{OfMlA@h}Nh}{{LjNb}Nf}{{{d{{CBf{ce}}}}}{{d{c}}}{}{}}{{{d{{CBh{ceg}}}}}{{A`{{d{e}}}}}{}{}{}}{{{d{{CBh{ceg}}}}}{{d{c}}}{}{}{}}{{{d{{Nn{ce}}}}}{{d{e}}}{}{}}{{{d{{CBh{ceg}}}}}Mn{}{}{}}{{{d{{Nn{ce}}}}}Mn{}{}}{{{d{{Nn{cBl}}}}}{{d{c}}}{}}{{{d{{Nn{cC`}}}}}{{d{c}}}{}}{{{d{{Nn{cC`}}}}}{{Cb{BnGf}}}{}}{{{d{{Nn{cBl}}}}}{{Cb{BnGf}}}{}}{{{d{{ABb{c}}}}}{{d{{El{{CC`{c}}}}}}}{}}{{{d{{ABb{c}}}}}{{d{{El{{CCb{c}}}}}}}{}}{{{d{Oh}}}{{d{Ol}}}}0{{{d{Nh}}}A@h}{{{d{{Nn{ce}}}}}A@h{}{}}{{{d{Nh}}{d{Nh}}}{{A`{Jl}}}}{{{d{Nh}}}Ml}{{{d{Nl}}}Ml}{{{d{Oh}}}{{d{Dh}}}}{{{d{{CBh{ceg}}}}}{{A`{AKb}}}{}{}{}}{{{d{{ABb{c}}}}}{{d{{El{{CBn{c}}}}}}}{}}{{{d{{ABb{c}}}}}{{d{{El{{CBl{c}}}}}}}{}}{{{d{Nf}}}Lj}{{{d{{Nn{ce}}}}}AKb{}{}}{dc{}}000000{c{{Cb{e}}}{}{}}000000000{{}{{Cb{c}}}{}}000000000{{{d{{ABb{c}}}}}Of{}}{{{d{Nh}}}{{d{Of}}}}{{{d{{Nn{ce}}}}}{{d{Of}}}{}{}}{{{d{Oh}}}{{d{CBj}}}}{dCd}000000000{{{d{Oh}}}Bn}{{{d{Nl}}}Bn}{{{d{{Nn{cBl}}}}}Bn{}}{{{d{{Nn{cC`}}}}}Bn{}}{{}c{}}000000000{CCdAKd}{CCdAM`}{CCfDh}{CChA`}{CChACh}{CCfOl}{CCjCh}{CCf}{CCh}{CCjCn}``````````{{{d{CCl}}}Bn}{d{{d{c}}}{}}00{{{d{f}}}{{d{fc}}}{}}00{{{d{BGb}}}BGb}{{{d{CCl}}}CCl}{{{d{ALf}}}ALf}{{d{d{fc}}}j{}}00{{dl}j}00{An{{d{c}}}{}}00{An{{d{fc}}}{}}00{Anj}00{{}ALf}{{{d{BGb}}{d{BGb}}}B`}{{{d{CCl}}{d{CCl}}}B`}{{{d{ALf}}{d{ALf}}}B`}{{{d{BGb}}{d{fBb}}}{{Cb{jDd}}}}0{{{d{CCl}}{d{fBb}}}{{Cb{jDd}}}}{{{d{ALf}}{d{fBb}}}{{Cb{jDd}}}}{cc{}}{{{Ef{c}}}BGbAE`}11{{{BFl{AnCCl}}}{{Cb{ALfBGb}}}}{{{d{D`}}}{{Cb{ALfBGb}}}}{{}An}00{{}c{}}00{{}{{Bf{c}}}{}}00{{{d{CCl}}}{{A`{{d{Db}}}}}}{{{d{CCl}}}{{A`{{d{Bh}}}}}}{{{d{D`}}}{{Cb{BhBGb}}}}{{{d{Bh}}}Db}3{{dc}{{Bj{c}}}{}}00{{CnBn{A`{Bh}}{A`{Db}}{A`{Db}}{Dn{{Ej{DbDb}}}}}{{A`{CCl}}}}{{{Dn{CCl}}}{{Cb{ALfBGb}}}}{{{d{CCl}}}{{d{{El{{Ej{DbDb}}}}}}}}{{{d{ALf}}}{{d{{BFl{AnCCl}}}}}}{{{d{CCl}}}{{d{Cn}}}}{{{d{BGb}}}{{A`{{d{AEd}}}}}}`{dc{}}00{dDb}{{{d{ALf}}}Db}{{{d{ALf}}}{{Cb{BnGf}}}}{c{{Cb{e}}}{}{}}00{{}{{Cb{c}}}{}}00{dCd}00{{}c{}}00{{CnBn}CCl}{{}d}{E`{{`{{Fb{}{{F`{Db}}}}}}}}{{}{{`{{Fb{}{{F`{Bh}}}}}}}}{E`{{`{{Fb{}{{F`{CCl}}}}}}}}{E`{{`{{Fb{}{{F`{ALf}}}}}}}}03","D":"KFl","p":[[5,"DecryptedOutput",0,4650],[1,"reference",null,null,1],[0,"mut"],[6,"TransferType",0,4650],[1,"unit"],[1,"u8"],[5,"BlockHeight",4651],[6,"Option",4652,null,1],[5,"Transaction",4653],[5,"UnifiedFullViewingKey",2348,4654],[5,"HashMap",4655],[5,"DecryptedTransaction",163],[10,"Parameters",4651],[10,"Copy",4656],[1,"usize"],[1,"bool"],[5,"Formatter",4657],[8,"Result",4657],[5,"Request",4658],[5,"MemoBytes",4659],[5,"Layered",4660],[5,"Note",4661],[5,"Zatoshis",4662],[5,"Note",4663],[6,"Result",4664,null,1],[5,"TypeId",4665],[6,"Address",67,4666],[6,"PoolType",4667],[5,"UnifiedAddress",67,4666],[6,"Receiver",67,4666],[5,"ZcashAddress",4668],[1,"str"],[5,"String",4669],[5,"Error",4657],[5,"PaymentAddress",4670],[6,"TransparentAddress",4671],[5,"Address",4672],[6,"Typecode",4673],[5,"Vec",4674],[6,"NetworkType",4651],[5,"Address",4675],[1,"array"],[6,"ConversionError",4676],[1,"u32"],[1,"tuple",null,null,1],[1,"slice"],[6,"UnifiedAddressRequest",2348,4654],[17,"Value"],[10,"Strategy",4677],[6,"Network",4651],[5,"WalletSummary",163],[5,"AccountBalance",163],[10,"Eq",4678],[10,"Hash",4679],[5,"SentTransaction",163],[5,"Zip32Derivation",163],[5,"AccountId",4680],[5,"Balance",163],[6,"BalanceError",4662],[5,"AddressInfo",163],[6,"NoteFilter",163],[17,"Error"],[17,"AccountId"],[17,"Account"],[10,"WalletRead",163],[5,"BlockMetadata",163],[10,"Debug",4657],[10,"Account",163],[5,"ScannedBlock",163],[5,"BlockHash",4681],[6,"AccountPurpose",163],[6,"AccountSource",163],[5,"Ratio",163],[10,"Clone",4682],[5,"Progress",163],[6,"TransactionStatusFilter",163],[6,"OutputStatusFilter",163],[6,"TransactionDataRequest",163],[6,"TransactionStatus",163],[5,"PoolMeta",163],[5,"AccountMeta",163],[5,"BoundedU8",163],[5,"OutputOfSentTx",163],[6,"SeedRelevance",163],[5,"AccountBirthday",163],[6,"Ordering",4678],[5,"ScannedBundles",163],[6,"Retention",4683],[17,"UtxoRef"],[10,"WalletWrite",163],[8,"SecretVec",4684],[5,"UnifiedSpendingKey",2348,4654],[5,"OffsetDateTime",4685],[5,"DiversifierIndex",4680],[5,"SpendableNotes",163],[10,"PartialEq",4678],[5,"TryFromIntError",4686],[6,"BirthdayError",163],[5,"Error",4687],[6,"NetworkUpgrade",4651],[5,"TransparentKeyScope",4688],[6,"Recipient",4285],[5,"SentTransactionOutput",163],[5,"ChainState",995],[5,"TreeState",3496],[17,"NoteRef"],[10,"InputSource",163],[10,"Ord",4678],[10,"WalletTest",163],[6,"ShieldedProtocol",4667],[5,"Position",4683],[5,"SeedFingerprint",4689],[5,"NonHardenedChildIndex",4688],[5,"Range",4690],[5,"TransparentAddressMetadata",4285],[5,"NoteId",4285],[6,"Memo",4659],[6,"Note",4285],[5,"ReceivedNote",4285],[6,"NullifierQuery",163],[5,"Nullifier",4691],[5,"Nullifier",4692],[5,"TxId",4693],[5,"WalletTransparentOutput",4285],[8,"NonZeroU32",4694],[5,"OutPoint",4695],[5,"TransactionSummary",1257],[10,"Hasher",4679],[5,"ScannedBlockCommitments",163],[10,"NoteRetention",163],[1,"u64"],[1,"u16"],[5,"MerkleHashOrchard",4696],[5,"Frontier",4697],[17,"SaplingShardStore"],[17,"OrchardShardStore"],[10,"WalletCommitmentTrees",163],[5,"CommitmentTreeRoot",995],[6,"ShardTreeError",4698],[17,"H"],[5,"Node",4699],[17,"CheckpointId"],[10,"ShardStore",4700],[5,"ScanRange",1166],[5,"WalletTx",4285],[5,"UnifiedIncomingViewingKey",2348,4654],[10,"From",4701,null,1],[17,"Output"],[10,"FnOnce",4702],[5,"ShardTree",4703],[10,"FnMut",4702],[15,"Spending",981],[15,"Derived",982],[15,"Imported",982],[15,"Attempt",986],[5,"Box",4704,null,1],[15,"Relevant",988],[5,"NonEmpty",4705],[15,"TransactionsInvolvingAddress",989],[5,"ScanSummary",995],[10,"BlockCache",995],[10,"Future",4706,null,1],[5,"Pin",4707],[5,"CompactBlock",2935],[6,"Error",1077],[10,"Send",4656],[10,"BlockSource",995],[10,"Display",4657],[6,"ScanError",4141],[10,"Error",4708],[5,"MockBlockSource",1100],[6,"Infallible",4701],[6,"Error",1116],[6,"InputSelectorError",1870],[6,"Error",4709],[6,"Error",4710],[6,"ProposalError",2722],[6,"Error",4711],[15,"InsufficientFunds",1860],[6,"ScanPriority",1166],[6,"SpanningTree",1228],[15,"Parent",1253],[5,"TestAccount",1257],[5,"ZatBalance",4662],[17,"Nullifier"],[10,"TestFvk",1257],[5,"CompactTx",2935],[6,"AddressType",1257],[10,"RngCore",4712],[10,"CryptoRng",4712],[5,"CachedBlock",1257],[5,"MockWalletDb",1257],[17,"BsError"],[17,"BlockSource"],[17,"InsertResult"],[10,"TestCache",1257],[5,"TestBuilder",1257],[5,"LocalNetwork",4713],[5,"TestState",1257],[10,"DataStoreFactory",1257],[5,"InitialChainState",1257],[5,"FakeCompactOutput",1257],[6,"OvkPolicy",4285],[5,"Proposal",2722],[8,"CreateErrT",1743],[10,"FeeRule",4714],[5,"GreedyInputSelector",1870],[8,"MultiOutputChangeStrategy",2305],[8,"TransferErrT",1743],[5,"NoteCommitments",1257],[10,"Into",4701,null,1],[17,"DsError"],[17,"DataStore"],[5,"GapLimits",1714],[10,"ConditionallySelectable",4715],[10,"Default",4716],[6,"Scope",4680],[5,"OutgoingViewingKey",4717],[8,"ProposeShieldingErrT",1743],[17,"InputSource"],[10,"ShieldingSelector",1870],[17,"MetaSource"],[10,"ChangeStrategy",2021],[6,"StandardFeeRule",2021],[8,"SingleOutputChangeStrategy",2305],[8,"ProposeTransferErrT",1743],[5,"TransactionRequest",4551,4718],[10,"InputSelector",1870],[17,"Handle"],[10,"Reset",1257],[8,"ChaChaRng",4719],[5,"OutgoingViewingKey",4720],[8,"ShieldErrT",1743],[5,"FullViewingKey",4717],[5,"DiversifiableFullViewingKey",2616,4721],[5,"Level",4683],[10,"Fn",4702],[10,"SpendProver",4722],[10,"OutputProver",4722],[6,"GreedyInputSelectorError",1870],[6,"ChangeError",2021],[15,"InsufficientFunds",1953],[6,"Bech32DecodeError",1955,4723],[10,"AddressCodec",1955,4723],[5,"ExtendedFullViewingKey",2616,4721],[5,"ExtendedSpendingKey",2616,4721],[6,"Error",4724],[6,"TransparentCodecError",1955,4723],[6,"DecodeError",4725],[6,"CheckedHrpstringError",4726],[15,"HrpMismatch",2019],[5,"DustOutputPolicy",2021],[6,"DustAction",2021],[5,"ChangeValue",2021],[5,"TransactionBalance",2021],[5,"SplitPolicy",2021],[6,"EphemeralBalance",2021],[17,"FeeRule"],[17,"AccountMetaT"],[10,"InputView",4727],[10,"OutputView",4727],[10,"BundleView",2276],[10,"BundleView",2247],[17,"Item"],[6,"InputSize",4727],[10,"IntoIterator",4728],[8,"NonZeroUsize",4694],[15,"InsufficientFunds",2242],[15,"DustInputs",2242],[17,"In"],[17,"Out"],[6,"BundleType",4729],[10,"InputView",2247],[10,"OutputView",2247],[5,"EmptyBundleView",2247],[6,"BundleType",4709],[10,"InputView",2276],[10,"OutputView",2276],[5,"EmptyBundleView",2276],[5,"SingleOutputChangeStrategy",2307],[10,"Zip317FeeRule",2307],[5,"MultiOutputChangeStrategy",2307],[6,"AddressGenerationError",2348,4654],[6,"ReceiverRequirement",2348,4654],[5,"ReceiverRequirements",2348,4654],[6,"Era",2348,4654],[6,"DecodingError",2348,4654],[6,"DerivationError",2348,4654],[6,"Error",4730],[5,"AccountPubKey",4688],[5,"ExternalIvk",4688],[5,"IncomingViewingKey",4721],[5,"IncomingViewingKey",4717],[5,"SpendingKey",4717],[5,"Ufvk",4731],[5,"AccountPrivKey",4688],[5,"ChildIndex",4680],[5,"Diversifier",4720],[5,"ExpandedSpendingKey",4720],[6,"DecodingError",4720],[5,"FullViewingKey",4720],[10,"Read",4732],[5,"SaplingIvk",4720],[5,"NullifierDerivingKey",4720],[10,"Write",4732],[5,"ShieldedInputs",2722],[5,"Step",2722],[6,"StepOutputIndex",2722],[5,"StepOutput",2722],[5,"BTreeMap",4733],[15,"BalanceError",2889],[6,"ProposalDecodingError",2891],[6,"Zip321Error",4551,4718],[5,"CompactSaplingOutput",2935],[5,"CompactOrchardAction",2935],[5,"ChainMetadata",2935],[5,"CompactSaplingSpend",2935],[5,"ExtractedNoteCommitment",4734],[5,"ExtractedNoteCommitment",4735],[5,"EphemeralKeyBytes",4736],[5,"SpendDescription",4737],[10,"Authorization",4737],[5,"OutputDescription",4737],[5,"Action",4738],[5,"BlockHeader",4681],[5,"ProposalStep",3117],[6,"ValuePool",3117],[6,"FeeRule",3117],[5,"PriorStepChange",3117],[5,"Proposal",3117],[5,"PaymentOutputPool",3117],[5,"ReceivedOutput",3117],[5,"PriorStepOutput",3117],[5,"ProposedInput",3117],[5,"TransactionBalance",3117],[5,"ChangeValue",3117],[5,"MemoBytes",3117],[1,"i32"],[5,"TryFromSliceError",4739],[5,"UnknownEnumValue",4740],[6,"Value",3469],[10,"BufMut",4741],[6,"WireType",4742],[5,"DecodeContext",4743],[5,"DecodeError",4740],[10,"Buf",4744],[5,"TransparentAddressBlockFilter",3496],[5,"Address",3496],[5,"GetAddressUtxosReply",3496],[5,"GetAddressUtxosReplyList",3496],[5,"AddressList",3496],[5,"GetAddressUtxosArg",3496],[6,"ShieldedProtocol",3496],[5,"TxFilter",3496],[5,"LightdInfo",3496],[5,"BlockId",3496],[5,"BlockRange",3496],[5,"RawTransaction",3496],[5,"SendResponse",3496],[5,"ChainSpec",3496],[5,"Empty",3496],[5,"Duration",3496],[5,"PingResponse",3496],[5,"Balance",3496],[5,"Exclude",3496],[5,"GetSubtreeRootsArg",3496],[5,"SubtreeRoot",3496],[1,"i64"],[5,"CommitmentTree",4697],[8,"Result",4687,null,1],[5,"CompactTxStreamerClient",4095],[6,"CompressionEncoding",4745],[5,"Body",4746],[10,"GrpcService",4747],[5,"Response",4748],[5,"Status",4749],[10,"IntoRequest",4658],[5,"Streaming",4750],[17,"Message"],[10,"IntoStreamingRequest",4658],[5,"InterceptedService",4751],[5,"Request",4752],[17,"Response"],[5,"Response",4753],[10,"Service",4754],[10,"Interceptor",4751],[5,"Uri",4755],[10,"ScanningKeyOps",4141],[5,"ScanningKey",4141],[5,"ScanningKeys",4141],[5,"Nullifiers",4141],[5,"PreparedIncomingViewingKey",4717],[5,"PreparedIncomingViewingKey",4720],[15,"EncodingInvalid",4239],[15,"PrevHashMismatch",4239],[15,"TreeSizeMismatch",4239],[15,"TreeSizeUnknown",4239],[15,"TreeSizeInvalid",4239],[15,"BlockHeightDiscontinuity",4239],[8,"PrunableTree",4756],[10,"HashSer",4757],[6,"Error",4258],[5,"WalletSpend",4285],[5,"WalletOutput",4285],[5,"TxOut",4695],[8,"WalletSaplingSpend",4285],[8,"WalletSaplingOutput",4285],[8,"WalletOrchardOutput",4285],[8,"WalletOrchardSpend",4285],[15,"Custom",4541],[15,"EphemeralTransparent",4543],[15,"InternalAccount",4543],[15,"External",4543],[5,"Payment",4551,4718],[8,"ShieldedProtocol",0],[8,"PoolType",0],[5,"OrchardPoolTester",1598],[10,"ShieldedPoolTester",1629],[5,"SaplingPoolTester",1683]],"r":[[0,4650],[1,4650],[3,4650],[8,4650],[10,4650],[11,4650],[13,4650],[14,4650],[15,4650],[16,4650],[17,4650],[18,4650],[19,4650],[21,4650],[22,4650],[23,4650],[24,4650],[25,4650],[26,4650],[27,4650],[29,4650],[31,4650],[32,4650],[33,4650],[34,4650],[35,4650],[36,4650],[37,4650],[38,4650],[39,4650],[40,4650],[42,4650],[43,4650],[44,4650],[45,4650],[46,4650],[47,4650],[48,4650],[55,4650],[56,4650],[57,4650],[58,4650],[59,4650],[60,4650],[61,4650],[62,4650],[63,4650],[64,4650],[67,4666],[68,4666],[69,4666],[70,4666],[71,4666],[72,4666],[73,4666],[74,4666],[75,4666],[76,4666],[77,4666],[78,4666],[79,4666],[80,4666],[81,4666],[82,4666],[83,4666],[84,4666],[85,4666],[86,4666],[87,4666],[88,4666],[89,4666],[90,4666],[91,4666],[92,4666],[93,4666],[94,4666],[95,4666],[96,4666],[97,4666],[98,4666],[99,4666],[100,4666],[101,4666],[102,4666],[103,4666],[104,4666],[105,4666],[106,4666],[107,4666],[108,4666],[109,4666],[110,4666],[111,4666],[112,4666],[113,4666],[114,4666],[115,4666],[116,4666],[117,4666],[118,4666],[119,4666],[120,4666],[121,4666],[122,4666],[123,4666],[124,4666],[125,4666],[126,4666],[127,4666],[128,4666],[129,4666],[130,4666],[131,4666],[132,4666],[133,4666],[134,4666],[135,4666],[136,4666],[137,4666],[138,4666],[139,4666],[140,4666],[141,4666],[142,4666],[143,4666],[144,4666],[145,4666],[146,4666],[147,4666],[148,4666],[149,4666],[150,4666],[151,4666],[152,4666],[153,4666],[154,4666],[155,4666],[156,4666],[157,4666],[158,4666],[159,4666],[160,4666],[161,4758],[162,4758],[1955,4723],[1956,4723],[1957,4723],[1958,4723],[1959,4723],[1960,4723],[1961,4723],[1962,4723],[1963,4723],[1964,4723],[1965,4723],[1966,4723],[1967,4723],[1968,4723],[1969,4723],[1970,4723],[1971,4723],[1972,4723],[1973,4723],[1974,4723],[1975,4723],[1976,4723],[1977,4723],[1978,4723],[1979,4723],[1980,4723],[1981,4723],[1982,4723],[1983,4723],[1984,4723],[1985,4723],[1986,4723],[1987,4723],[1988,4723],[1989,4723],[1990,4723],[1991,4723],[1992,4723],[1993,4723],[1994,4723],[1995,4723],[1996,4723],[1997,4723],[1998,4723],[1999,4723],[2000,4723],[2001,4723],[2002,4723],[2003,4723],[2004,4723],[2005,4723],[2006,4723],[2007,4723],[2008,4723],[2009,4723],[2010,4723],[2011,4723],[2012,4723],[2013,4723],[2014,4723],[2015,4723],[2016,4723],[2017,4723],[2018,4723],[2348,4654],[2349,4654],[2350,4654],[2351,4654],[2352,4654],[2353,4654],[2354,4654],[2355,4654],[2356,4654],[2357,4654],[2358,4654],[2359,4654],[2360,4654],[2361,4654],[2362,4654],[2363,4654],[2364,4654],[2365,4654],[2366,4654],[2367,4654],[2368,4654],[2369,4654],[2370,4654],[2371,4654],[2372,4654],[2373,4654],[2374,4654],[2375,4654],[2376,4654],[2377,4654],[2378,4654],[2379,4654],[2380,4654],[2381,4654],[2382,4654],[2383,4654],[2384,4654],[2385,4654],[2386,4654],[2387,4654],[2388,4654],[2389,4654],[2390,4654],[2391,4654],[2392,4654],[2393,4654],[2394,4654],[2395,4654],[2396,4654],[2397,4654],[2398,4654],[2399,4654],[2400,4654],[2401,4654],[2402,4654],[2403,4654],[2404,4654],[2405,4654],[2406,4654],[2407,4654],[2408,4654],[2409,4654],[2410,4654],[2411,4654],[2412,4654],[2413,4654],[2414,4654],[2415,4654],[2416,4654],[2417,4654],[2418,4654],[2419,4654],[2420,4654],[2421,4654],[2422,4654],[2423,4654],[2424,4654],[2425,4654],[2426,4654],[2427,4654],[2428,4654],[2429,4654],[2430,4654],[2431,4654],[2432,4654],[2433,4654],[2434,4654],[2435,4654],[2436,4654],[2437,4654],[2438,4654],[2439,4654],[2440,4654],[2441,4654],[2442,4654],[2443,4654],[2444,4654],[2445,4654],[2446,4654],[2447,4654],[2448,4654],[2449,4654],[2450,4654],[2451,4654],[2452,4654],[2453,4654],[2454,4654],[2455,4654],[2456,4654],[2457,4654],[2458,4654],[2459,4654],[2460,4654],[2461,4654],[2462,4654],[2463,4654],[2464,4654],[2465,4654],[2466,4654],[2467,4654],[2468,4654],[2469,4654],[2470,4654],[2471,4654],[2472,4654],[2473,4654],[2474,4654],[2475,4654],[2476,4654],[2477,4654],[2478,4654],[2479,4654],[2480,4654],[2481,4654],[2482,4654],[2483,4654],[2484,4654],[2485,4654],[2486,4654],[2487,4654],[2488,4654],[2489,4654],[2490,4654],[2491,4654],[2492,4654],[2493,4654],[2494,4654],[2495,4654],[2496,4654],[2497,4654],[2498,4654],[2499,4654],[2500,4654],[2501,4654],[2502,4654],[2503,4654],[2504,4654],[2505,4654],[2506,4654],[2507,4654],[2508,4654],[2509,4654],[2510,4654],[2511,4654],[2512,4654],[2513,4654],[2514,4654],[2515,4654],[2516,4654],[2517,4654],[2518,4654],[2519,4654],[2520,4654],[2521,4654],[2522,4654],[2523,4654],[2524,4654],[2525,4654],[2526,4654],[2527,4654],[2528,4654],[2529,4654],[2530,4654],[2531,4654],[2532,4654],[2533,4654],[2534,4654],[2535,4654],[2536,4654],[2537,4654],[2538,4654],[2539,4654],[2540,4654],[2541,4654],[2542,4654],[2543,4654],[2544,4654],[2545,4654],[2546,4654],[2547,4654],[2548,4654],[2549,4654],[2550,4654],[2551,4654],[2552,4654],[2553,4654],[2554,4654],[2555,4654],[2556,4654],[2557,4654],[2558,4654],[2559,4654],[2560,4654],[2561,4654],[2562,4654],[2563,4654],[2564,4654],[2565,4654],[2566,4654],[2567,4654],[2568,4654],[2569,4654],[2570,4654],[2571,4654],[2572,4654],[2573,4654],[2574,4654],[2575,4654],[2576,4654],[2577,4654],[2578,4654],[2579,4654],[2580,4654],[2581,4654],[2582,4654],[2583,4654],[2584,4654],[2585,4654],[2586,4654],[2587,4654],[2588,4654],[2589,4654],[2590,4654],[2591,4654],[2592,4654],[2593,4654],[2594,4654],[2595,4654],[2596,4654],[2597,4654],[2598,4654],[2599,4654],[2600,4654],[2601,4654],[2602,4654],[2603,4654],[2604,4654],[2605,4654],[2606,4654],[2607,4654],[2608,4654],[2609,4654],[2610,4654],[2611,4654],[2612,4654],[2613,4654],[2614,4654],[2615,4654],[2616,4721],[2617,4721],[2618,4721],[2619,4721],[2620,4721],[2621,4721],[2622,4721],[2623,4721],[2624,4721],[2625,4721],[2626,4721],[2627,4721],[2628,4721],[2629,4721],[2630,4721],[2631,4721],[2632,4721],[2633,4721],[2634,4721],[2635,4721],[2636,4721],[2637,4721],[2638,4721],[2639,4721],[2640,4721],[2641,4721],[2642,4721],[2643,4721],[2644,4721],[2645,4721],[2646,4721],[2647,4721],[2648,4721],[2649,4721],[2650,4721],[2651,4721],[2652,4721],[2653,4721],[2654,4721],[2655,4721],[2656,4721],[2657,4721],[2658,4721],[2659,4721],[2660,4721],[2661,4721],[2662,4721],[2663,4721],[2664,4721],[2665,4721],[2666,4721],[2667,4721],[2668,4721],[2669,4721],[2670,4721],[2671,4721],[2672,4721],[2673,4721],[2674,4721],[2675,4721],[2676,4721],[2677,4721],[2678,4721],[2679,4721],[2680,4721],[2681,4721],[2682,4721],[2683,4721],[2684,4721],[2685,4721],[2686,4721],[2687,4721],[2688,4721],[2689,4721],[2690,4721],[2691,4721],[2692,4721],[2693,4759],[2694,4721],[2695,4721],[2696,4721],[2697,4721],[2698,4721],[2699,4721],[2700,4721],[2701,4721],[2702,4721],[2703,4721],[2704,4721],[2705,4721],[2706,4721],[2707,4721],[2708,4721],[2709,4721],[2710,4721],[2711,4721],[2712,4721],[2713,4721],[2714,4721],[2715,4721],[2716,4721],[2717,4721],[2718,4721],[2719,4721],[2720,4721],[2721,4760],[4551,4718],[4552,4718],[4553,4718],[4554,4718],[4555,4718],[4556,4718],[4557,4718],[4558,4718],[4559,4718],[4560,4718],[4561,4718],[4562,4718],[4563,4718],[4564,4718],[4565,4718],[4566,4718],[4567,4718],[4568,4718],[4569,4718],[4570,4718],[4571,4718],[4572,4718],[4573,4718],[4574,4718],[4575,4718],[4576,4718],[4577,4718],[4578,4718],[4579,4718],[4580,4718],[4581,4718],[4582,4718],[4583,4718],[4584,4718],[4585,4718],[4586,4718],[4587,4718],[4588,4718],[4589,4718],[4590,4718],[4591,4718],[4592,4718],[4593,4718],[4594,4718],[4595,4718],[4596,4718],[4597,4718],[4598,4718],[4599,4718],[4600,4718],[4601,4718],[4602,4718],[4603,4718],[4604,4718],[4605,4718],[4606,4718],[4607,4718],[4608,4718],[4609,4718],[4610,4718],[4611,4718],[4612,4718],[4613,4718],[4614,4718],[4615,4718],[4616,4718],[4617,4718],[4618,4718],[4619,4718],[4620,4718],[4621,4718],[4622,4718],[4623,4718],[4624,4718],[4625,4718],[4626,4718],[4627,4718],[4628,4718],[4629,4718],[4630,4718],[4631,4718],[4632,4718],[4633,4718],[4634,4718],[4635,4718],[4636,4718],[4637,4718],[4638,4718],[4639,4718],[4640,4718],[4641,4718],[4642,4718],[4643,4761],[4644,4761],[4645,4761],[4646,4761],[4647,4761],[4648,4761],[4649,4761]],"b":[[47,"impl-DecryptedOutput%3CNote,+A%3E"],[48,"impl-DecryptedOutput%3CNote,+A%3E"],[102,"impl-UnifiedAddress"],[103,"impl-AddressCodec%3CP%3E-for-UnifiedAddress"],[111,"impl-From%3CPaymentAddress%3E-for-Address"],[113,"impl-From%3CUnifiedAddress%3E-for-Address"],[114,"impl-From%3CTransparentAddress%3E-for-Address"],[537,"impl-From%3CTryFromIntError%3E-for-BirthdayError"],[538,"impl-From%3CError%3E-for-BirthdayError"],[1086,"impl-Debug-for-Error%3CWalletError,+BlockSourceError%3E"],[1087,"impl-Display-for-Error%3CWE,+BE%3E"],[1143,"impl-Display-for-Error%3CDE,+TE,+SE,+FE,+CE,+N%3E"],[1144,"impl-Debug-for-Error%3CDataSourceError,+CommitmentTreeError,+SelectionError,+FeeError,+ChangeErrT,+NoteRefT%3E"],[1145,"impl-From%3CInputSelectorError%3CDE,+SE,+CE,+N%3E%3E-for-Error%3CDE,+TE,+SE,+FE,+CE,+N%3E"],[1146,"impl-From%3CError%3E-for-Error%3CDE,+TE,+SE,+FE,+CE,+N%3E"],[1147,"impl-From%3CError%3CFE%3E%3E-for-Error%3CDE,+TE,+SE,+FE,+CE,+N%3E"],[1149,"impl-From%3CBalanceError%3E-for-Error%3CDE,+TE,+SE,+FE,+CE,+N%3E"],[1150,"impl-From%3CConversionError%3C%26str%3E%3E-for-Error%3CDE,+TE,+SE,+FE,+CE,+N%3E"],[1151,"impl-From%3CShardTreeError%3CTE%3E%3E-for-Error%3CDE,+TE,+SE,+FE,+CE,+N%3E"],[1152,"impl-From%3CProposalError%3E-for-Error%3CDE,+TE,+SE,+FE,+CE,+N%3E"],[1153,"impl-From%3CError%3E-for-Error%3CDE,+TE,+SE,+FE,+CE,+N%3E"],[1196,"impl-Display-for-ScanRange"],[1197,"impl-Debug-for-ScanRange"],[1909,"impl-Display-for-InputSelectorError%3CDE,+SE,+CE,+N%3E"],[1910,"impl-Debug-for-InputSelectorError%3CDbErrT,+SelectorErrT,+ChangeErrT,+N%3E"],[1911,"impl-Display-for-GreedyInputSelectorError"],[1912,"impl-Debug-for-GreedyInputSelectorError"],[1914,"impl-From%3CGreedyInputSelectorError%3E-for-InputSelectorError%3CDbErrT,+GreedyInputSelectorError,+ChangeErrT,+N%3E"],[1915,"impl-From%3CBalanceError%3E-for-InputSelectorError%3CDbErrT,+GreedyInputSelectorError,+ChangeErrT,+N%3E"],[1916,"impl-From%3CChangeError%3CC,+N%3E%3E-for-InputSelectorError%3CE,+S,+C,+N%3E"],[1917,"impl-From%3CConversionError%3C%26str%3E%3E-for-InputSelectorError%3CE,+S,+F,+N%3E"],[1992,"impl-Debug-for-Bech32DecodeError"],[1993,"impl-Display-for-Bech32DecodeError"],[1994,"impl-Display-for-TransparentCodecError"],[1995,"impl-Debug-for-TransparentCodecError"],[1996,"impl-From%3CDecodeError%3E-for-Bech32DecodeError"],[1998,"impl-From%3CCheckedHrpstringError%3E-for-Bech32DecodeError"],[2130,"impl-Debug-for-ChangeError%3CE,+NoteRefT%3E"],[2131,"impl-Display-for-ChangeError%3CCE,+N%3E"],[2469,"impl-Debug-for-DerivationError"],[2470,"impl-Display-for-DerivationError"],[2472,"impl-Display-for-DecodingError"],[2473,"impl-Debug-for-DecodingError"],[2475,"impl-Display-for-AddressGenerationError"],[2476,"impl-Debug-for-AddressGenerationError"],[2668,"impl-From%3CExtendedFullViewingKey%3E-for-DiversifiableFullViewingKey"],[2670,"impl-From%3C%26ExtendedFullViewingKey%3E-for-DiversifiableFullViewingKey"],[2801,"impl-Debug-for-ProposalError"],[2802,"impl-Display-for-ProposalError"],[2918,"impl-Debug-for-ProposalDecodingError%3CDbError%3E"],[2919,"impl-Display-for-ProposalDecodingError%3CE%3E"],[3309,"impl-From%3CPoolType%3E-for-ValuePool"],[3310,"impl-From%3CShieldedProtocol%3E-for-ValuePool"],[4153,"impl-ScanningKeyOps%3COrchardDomain,+AccountId,+Nullifier%3E-for-ScanningKey%3CIncomingViewingKey,+FullViewingKey,+AccountId%3E"],[4154,"impl-ScanningKeyOps%3CSaplingDomain,+AccountId,+Nullifier%3E-for-ScanningKey%3CSaplingIvk,+NullifierDerivingKey,+AccountId%3E"],[4181,"impl-Debug-for-ScanError"],[4182,"impl-Display-for-ScanError"],[4202,"impl-ScanningKeyOps%3CSaplingDomain,+AccountId,+Nullifier%3E-for-ScanningKey%3CSaplingIvk,+NullifierDerivingKey,+AccountId%3E"],[4203,"impl-ScanningKeyOps%3COrchardDomain,+AccountId,+Nullifier%3E-for-ScanningKey%3CIncomingViewingKey,+FullViewingKey,+AccountId%3E"],[4210,"impl-ScanningKeyOps%3CSaplingDomain,+AccountId,+Nullifier%3E-for-ScanningKey%3CSaplingIvk,+NullifierDerivingKey,+AccountId%3E"],[4211,"impl-ScanningKeyOps%3COrchardDomain,+AccountId,+Nullifier%3E-for-ScanningKey%3CIncomingViewingKey,+FullViewingKey,+AccountId%3E"],[4215,"impl-ScanningKeyOps%3COrchardDomain,+AccountId,+Nullifier%3E-for-ScanningKey%3CIncomingViewingKey,+FullViewingKey,+AccountId%3E"],[4216,"impl-ScanningKeyOps%3CSaplingDomain,+AccountId,+Nullifier%3E-for-ScanningKey%3CSaplingIvk,+NullifierDerivingKey,+AccountId%3E"],[4270,"impl-Debug-for-Error%3CCaErr,+DbErr,+TrErr%3E"],[4271,"impl-Display-for-Error%3CCaErr,+DbErr,+TrErr%3E"],[4273,"impl-From%3CStatus%3E-for-Error%3CCaErr,+DbErr,+TrErr%3E"],[4274,"impl-From%3CError%3CDbErr,+CaErr%3E%3E-for-Error%3CCaErr,+DbErr,+TrErr%3E"],[4467,"impl-InputView%3CNoteRef%3E-for-ReceivedNote%3CNoteRef,+Note%3E"],[4468,"impl-InputView%3CNoteRef%3E-for-ReceivedNote%3CNoteRef,+Note%3E"],[4469,"impl-ReceivedNote%3CNoteRef,+Note%3E"],[4470,"impl-ReceivedNote%3CNoteRef,+Note%3E"],[4473,"impl-InputView-for-WalletTransparentOutput"],[4474,"impl-WalletTransparentOutput"],[4529,"impl-InputView%3CNoteRef%3E-for-ReceivedNote%3CNoteRef,+Note%3E"],[4530,"impl-InputView%3CNoteRef%3E-for-ReceivedNote%3CNoteRef,+Note%3E"],[4590,"impl-Display-for-Zip321Error"],[4591,"impl-Debug-for-Zip321Error"]],"c":"OjAAAAEAAAAAAAoAEAAAAAUACAANAB0AKgBDAKcDiwryDPMMDQ8=","e":"OzAAAAEAAHQMTQEFAAAACAAAAA0ABwAXAAkAJAABACgAAgAsAAIAMAABADQAAAA2AAAAOAAAADoABwBDAAAARQAAAEcAAABKAAAATgAFAFUABQBcAAAAXgAIAGgAAABqAAMAcAAAAHIAAQB4AAIAfgAFAIcAAgCOAAgAmAAFAJ8ABACoAAAArwAAALgAAAC+AAAAwwAAAOgAAAAIATsASQE/AI4BOwDLAR0A6gENAPwBEwAaAgEAQAIAAFoCBQBlAh0AogIdAMgCHQACAwMALAMTAEkDOwCHAx0AsgMdANYDBwDoAwAA7AMLAPkDCAAGBAIADgQCABUEBQAlBAIAKQQLADoEBgBCBAEARQQNAFQEAABWBAYAcwQJAH4EBQCFBAkAmQQVALIEAQC2BAEAugQCAL4EAADABAIAxQQTANoEAQDdBA4A7QQBAPEEAAD1BAEA+gQAAA4FAgASBRMAKAUAACoFDAA4BR8AWwUBAHAFDQCABQAAggUBAIUFAwCKBQIAjgUAAJEFDACpBQkAtQUAALgFCgDEBQAAywUAAM8FAQDWBQAA2QUAAN0FAADhBQAA5gUAAOgFAQDsBQAA7gUBAPIFAgD5BQMA/wUBAAMGAAAFBhMAGwYMACkGCwA7BgAAPQYBAEAGBwBJBgIATQYUAGMGIQCGBg0AlQYHAJ4GAgCiBh0AwQYCAMUGBQDMBgMARQcJAGIHFwB7BwMAgQcCAIcHBQCPBwAAkQcSAKUHDwC7BwUAyAcFAM8HAADRBwEA1QcQAPEHAgD2BwAA/AcAAP4HKAAoCBgAQggBAEUIBwBQCAgAYQgIAHIIBwB7CAIAgAgHAJIIAACWCAgAoAgXALkIBwDOCAEA0QgDANYIAADYCAAA2ggBAN4IAwDkCAAA6wgBAO4IAwDzCAAA9QgAAPcIAQD7CAMAAQkAAAcJDwAaCQEAHgkBACEJAQAlCQcAMAkAADIJAAA0CQAANwkCAD4JAQBBCQAAQwkAAEkJAQBRCSkAfQkAAIAJHgChCQIApgkNAL8JAQDECQkA2gkTAPgJAAD9CQAA/wkGAAcKAwAPCh4ALwoJADoKAAA8CgIAQQoFAEgKCABVCgUAYAoFAGgKAgBtCgAAbwoAAHQKAwB7CgcAhAoBAIkKAgCRCg4AoQoBAKYKAACqCgAAugo2APIKBQAACwcADgsFABgLBQAhCwEAKQsGADILGQBeCwsAawsAAG0LCgB+CwwAjgsXAKoLHQDMCwUA0wsFANwLAADeCwAA4QsAAOoLBQD2CwwABwwAAAwMAAAODBEAIQwFACgMBQA/DAAARgyOANgMCwDuDAEA9wwOABMNCwAlDRAANw0BAEANAQBDDQsAUA0ZAGsNDgB7DQAAfw0BAIINFwCcDQEAnw0AAKENAACjDQgAsQ0AALMNAgC3DQAAug0AALwNAQDCDQQAyg0uAPoNVwBXDkEAmg5EAOAOFgAPDwIAFA8AABcPAAAZDxcARw8VAGAPFQB5DwAAfw8AAIMPAQCJD3QAABAAAAIQCAAMEAEAExAAABgQAQAdEAAAHxAAACIQAQAnEAYAOhABAD0QFgBWEAEAXRADAGUQAwBrEAUAcxABAHgQAQB9ECEAqhAGALIQAgC2EAEAuRAEAMAQAgDFEAAAyRAAANIQAADWEAAA2BAqAAQRHQAjEQsAOxEBAD8RCgBUEQkAYBEKAHERAABzEQQAehEBAH0RAQCBEQAAhREcAKQRIwDTERcA7BEGAPQRAAD5EQIA/xECAAcSAgAPEgUAFxILACQSBgA=","P":[[11,"Note,AccountId"],[13,"T"],[17,""],[18,"T"],[19,""],[21,"P,AccountId"],[22,"T"],[26,""],[32,"T"],[34,"Note,AccountId"],[35,""],[37,"U"],[39,"T"],[42,"Note,AccountId"],[43,"S"],[45,"Note,AccountId"],[47,"A"],[55,"T"],[56,"Note,AccountId"],[57,"U,T"],[59,"U"],[61,""],[63,"V"],[77,"T"],[83,""],[86,"T"],[88,""],[91,"P"],[93,"T"],[99,""],[102,"P"],[105,""],[109,"T"],[111,""],[112,"T"],[113,""],[122,"U"],[125,"T"],[128,"S"],[131,""],[135,"T"],[137,""],[139,"P"],[140,""],[141,"U,T"],[142,""],[143,"U,T"],[145,""],[150,"P"],[151,"U"],[154,""],[158,"V"],[161,""],[243,"AccountId"],[245,""],[256,"WalletRead::Error,WalletRead::AccountId,WalletRead::Account"],[257,"A"],[258,""],[260,"WalletRead::Error,WalletRead::AccountId,WalletRead::Account"],[262,"A"],[263,"T"],[324,"WalletRead::Error,WalletRead::AccountId,WalletRead::Account"],[325,"AccountId"],[326,""],[333,"T"],[334,""],[335,"AccountId"],[336,""],[345,"A"],[346,""],[348,"T"],[368,""],[393,"NoteCommitment,NF"],[394,"WalletWrite::UtxoRef,WalletRead::AccountId,WalletRead::Error"],[395,"AccountId"],[396,"T"],[457,""],[488,"NoteRef"],[489,""],[494,"T"],[495,""],[496,"AccountId"],[497,""],[502,"A"],[504,"AccountId"],[505,"NoteCommitment,NF"],[506,"WalletRead::Error,WalletRead::AccountId,WalletRead::Account"],[507,""],[512,"T"],[513,""],[514,"AccountId"],[515,""],[524,"A"],[525,""],[527,"T"],[537,""],[539,"T"],[559,"P"],[560,""],[561,"AccountId"],[562,""],[565,"P"],[566,""],[567,"AccountId"],[568,"WalletRead::Error,WalletRead::AccountId,WalletRead::Account"],[572,"InputSource::Error,InputSource::AccountId,InputSource::NoteRef"],[573,"WalletWrite::UtxoRef,WalletRead::AccountId,WalletRead::Error"],[574,"WalletRead::Error,WalletRead::AccountId,WalletRead::Account"],[575,"WalletRead::Error"],[576,"WalletRead::Error,WalletRead::AccountId,WalletRead::Account"],[581,"WalletWrite::UtxoRef,WalletRead::AccountId,WalletRead::Error"],[582,"InputSource::NoteRef,InputSource::Error"],[583,"WalletRead::Error,WalletRead::AccountId,WalletRead::Account"],[585,"WalletRead::Error"],[587,"InputSource::Error,InputSource::AccountId,InputSource::NoteRef"],[589,"WalletRead::Error,WalletRead::AccountId,WalletRead::Account"],[593,"InputSource::Error"],[594,"WalletRead::Error,WalletRead::AccountId,WalletRead::Account"],[596,"WalletRead::AccountId,WalletRead::Error"],[597,"WalletRead::Error,WalletRead::AccountId,WalletRead::Account"],[598,"InputSource::Error,InputSource::AccountId,InputSource::NoteRef"],[599,"WalletRead::Error,WalletRead::AccountId,WalletRead::Account"],[601,"__H"],[607,"A"],[608,""],[609,"Account::AccountId"],[610,"WalletWrite::UtxoRef,WalletRead::Account,WalletRead::Error"],[612,""],[642,"U"],[672,"A"],[673,"T"],[703,"NoteRef"],[704,"AccountId"],[705,""],[707,"WalletRead::Error,WalletRead::AccountId,WalletRead::Account"],[708,"AccountId"],[710,"Account::AccountId"],[711,"S"],[741,"NoteRef"],[742,"AccountId"],[744,""],[745,"T"],[746,""],[747,"AccountId"],[748,""],[752,"AccountId"],[754,""],[756,"NoteCommitment,NF"],[757,"T"],[758,"NoteRef"],[759,"A"],[760,""],[764,"AccountId"],[765,""],[766,"NoteRef"],[767,"AccountId"],[769,""],[773,"AccountId"],[774,"Account::AccountId"],[775,"WalletWrite::UtxoRef,WalletRead::AccountId,WalletRead::Error"],[776,"WalletCommitmentTrees::Error,WalletCommitmentTrees::SaplingShardStore,WalletCommitmentTrees::OrchardShardStore"],[777,"WalletWrite::UtxoRef,WalletRead::Error"],[778,"WalletCommitmentTrees::Error,WalletCommitmentTrees::SaplingShardStore,WalletCommitmentTrees::OrchardShardStore"],[779,"AccountId"],[780,""],[782,"WalletWrite::UtxoRef,WalletRead::AccountId,WalletRead::Error"],[783,"NoteRef"],[784,"A"],[785,""],[789,"AccountId"],[790,""],[791,"NoteRef"],[792,""],[795,"WalletRead::Error,WalletRead::AccountId,WalletRead::Account"],[796,"InputSource::Error,InputSource::AccountId,InputSource::NoteRef"],[797,"WalletWrite::UtxoRef,WalletRead::Error"],[798,"NoteRef"],[800,"Account::AccountId"],[801,""],[803,"WalletWrite::UtxoRef,WalletRead::AccountId,WalletRead::Error"],[805,"WalletRead::Error,WalletRead::AccountId,WalletRead::Account"],[806,"NoteRef"],[808,"AccountId"],[810,"A"],[811,"T"],[831,""],[834,"NoteRef"],[835,""],[836,"WalletRead::Error,WalletRead::AccountId,WalletRead::Account"],[837,"A"],[838,""],[839,"WalletWrite::UtxoRef,WalletRead::Error"],[840,"U,T"],[870,"U"],[900,"AccountId"],[902,""],[932,"Account::AccountId"],[934,""],[936,"WalletWrite::UtxoRef,WalletRead::Error"],[937,"WalletRead::Error,WalletRead::AccountId,WalletRead::Account"],[938,"AccountId"],[939,"WalletRead::Error,WalletRead::AccountId,WalletRead::Account"],[940,"AccountId"],[941,""],[945,"V"],[976,"A,E"],[977,"WalletCommitmentTrees::Error,WalletCommitmentTrees::SaplingShardStore,WalletCommitmentTrees::OrchardShardStore,A,E,F"],[978,"A,E"],[979,"WalletCommitmentTrees::Error,WalletCommitmentTrees::SaplingShardStore,WalletCommitmentTrees::OrchardShardStore,A,E,F"],[980,"A,E"],[981,""],[1003,"T"],[1009,""],[1011,"T"],[1013,""],[1016,"T"],[1022,""],[1029,"H"],[1030,""],[1032,"T"],[1035,"H"],[1036,"BlockSource::Error"],[1037,""],[1041,"U"],[1044,"T"],[1047,"S"],[1050,""],[1054,"H"],[1055,"ParamsT,BlockSourceT,DbT"],[1056,""],[1059,"H"],[1061,"T"],[1063,""],[1064,"U,T"],[1067,"U"],[1070,""],[1073,"V"],[1076,"BlockSource::Error,WalletErrT,F"],[1081,"T"],[1085,""],[1086,"WalletError,BlockSourceError"],[1087,"WE,BE"],[1088,"T"],[1089,"WE,BSE"],[1090,""],[1091,"U"],[1092,"T"],[1093,"S"],[1094,"WE,BE"],[1095,""],[1096,"U,T"],[1097,"U"],[1098,""],[1099,"V"],[1101,"T"],[1105,""],[1106,"T"],[1107,""],[1108,"U"],[1109,"T"],[1110,"S"],[1111,"U,T"],[1112,"U"],[1113,""],[1114,"V"],[1115,"DbErrT,F"],[1138,"T"],[1142,""],[1143,"DE,TE,SE,FE,CE,N"],[1144,"DataSourceError,CommitmentTreeError,SelectionError,FeeError,ChangeErrT,NoteRefT"],[1145,"DE,SE,CE,N,TE,FE"],[1146,"DE,TE,SE,FE,CE,N"],[1147,"FE,DE,TE,SE,CE,N"],[1148,"T"],[1149,"DE,TE,SE,FE,CE,N"],[1151,"TE,DE,SE,FE,CE,N"],[1152,"DE,TE,SE,FE,CE,N"],[1154,""],[1155,"U"],[1156,"T"],[1157,"S"],[1158,"DE,TE,SE,FE,CE,N"],[1159,""],[1160,"U,T"],[1161,"U"],[1162,""],[1163,"V"],[1164,""],[1176,"T"],[1180,""],[1182,"T"],[1184,""],[1187,"T"],[1191,""],[1198,"T"],[1200,""],[1203,"U"],[1205,"T"],[1207,""],[1209,"S"],[1211,""],[1215,"T"],[1217,""],[1220,"U,T"],[1222,"U"],[1224,""],[1226,"V"],[1231,"T"],[1233,""],[1234,"T"],[1235,""],[1236,"T"],[1238,""],[1240,"T"],[1241,""],[1243,"U"],[1244,"T"],[1245,""],[1246,"S"],[1248,"T"],[1249,"U,T"],[1250,"U"],[1251,""],[1252,"V"],[1253,""],[1285,"A"],[1286,"AccountId"],[1288,"TestFvk::Nullifier,P,R"],[1290,"TestFvk::Nullifier,R"],[1291,""],[1292,"A"],[1293,"WalletRead::Error"],[1296,"TestCache::BsError,TestCache::BlockSource,TestCache::InsertResult"],[1297,"T"],[1317,"Cache,DsFactory"],[1318,"Cache,DataStore,Network"],[1319,"WalletRead::Error"],[1320,""],[1322,"A"],[1323,""],[1324,"Fvk"],[1325,"T"],[1329,""],[1333,"WalletRead::AccountId,WalletRead::Error"],[1334,"Cache,AccountIdT,ErrT,DbT,ParamsT,FeeRuleT,InputsErrT,ChangeErrT"],[1335,"Cache,AccountIdT,ErrT,DbT,ParamsT"],[1336,""],[1337,"T"],[1357,""],[1367,"AccountId"],[1370,"WalletRead::AccountId,WalletRead::Error"],[1371,""],[1372,"T"],[1382,""],[1383,"AccountId"],[1384,"Cache,DataStore,Network,Fvk"],[1385,"Cache,DataStore,Network"],[1386,"Cache,DataStore,Network,Fvk"],[1387,"Cache,DataStore,Network"],[1389,"Cache,DataStore,Network,Fvk"],[1391,"WalletRead::AccountId,WalletRead::Account,WalletRead::Error"],[1392,"WalletRead::AccountId,WalletRead::Error"],[1393,"WalletRead::Account,WalletRead::Error"],[1394,"WalletRead::AccountId,WalletRead::Error"],[1395,"InputSource::AccountId,InputSource::NoteRef,InputSource::Error"],[1396,"WalletRead::AccountId,WalletRead::Error"],[1397,"WalletRead::Error"],[1398,"WalletRead::Account,WalletRead::Error"],[1399,"WalletRead::AccountId,WalletRead::Error"],[1401,"WalletRead::Error"],[1403,"WalletRead::AccountId,WalletRead::Error"],[1405,"Cache,AccountIdT,ErrT,DbT,ParamsT"],[1407,"WalletRead::AccountId,WalletRead::Error"],[1408,"Cache,AccountIdT,ErrT,DbT,ParamsT"],[1409,"InputSource::NoteRef,InputSource::Error"],[1410,"WalletRead::Error"],[1411,"Cache,AccountIdT,ErrT,DbT,ParamsT"],[1412,"WalletRead::Error"],[1413,"WalletRead::AccountId,WalletRead::Error"],[1416,"Cache,AccountIdT,ErrT,DbT,ParamsT"],[1417,"WalletRead::Error"],[1418,"WalletRead::AccountId,WalletRead::Error"],[1419,"WalletRead::Error"],[1420,"Cache,AccountIdT,ErrT,DbT,ParamsT"],[1421,"WalletRead::AccountId,WalletRead::Error"],[1422,"AccountId"],[1423,""],[1424,"A,Account::AccountId"],[1425,"WalletRead::Account,WalletRead::Error"],[1427,""],[1437,"TestCache::BsError,TestCache::BlockSource,TestCache::InsertResult"],[1438,"U"],[1448,"T"],[1458,"AccountId"],[1459,"Cache,DataStore,Network"],[1460,"WalletRead::AccountId,WalletRead::Error"],[1461,"AccountId"],[1463,"A"],[1464,"S"],[1474,"Cache,DataStore,Network"],[1475,""],[1478,"Fvk"],[1479,"DataStoreFactory::Error,DataStoreFactory::AccountId,DataStoreFactory::Account,DataStoreFactory::DsError,DataStoreFactory::DataStore"],[1480,""],[1481,"Cache,DataStore,Network"],[1483,""],[1485,"TestFvk::Nullifier"],[1486,""],[1490,"Cache,AccountIdT,ErrT,DbT,ParamsT,InputsT,ChangeT"],[1491,"Cache,AccountIdT,ErrT,DbT,ParamsT,CommitmentTreeErrT"],[1492,"Cache,AccountIdT,ErrT,DbT,ParamsT,InputsT,ChangeT"],[1493,"WalletRead::AccountId,WalletRead::Error"],[1494,"WalletCommitmentTrees::Error"],[1495,"WalletWrite::UtxoRef,WalletRead::Error"],[1496,"WalletCommitmentTrees::Error"],[1497,"Cache,DbT,ParamsT"],[1498,"R,Fvk"],[1499,"AccountId"],[1500,"WalletRead::AccountId,WalletRead::Error"],[1501,"C,Reset::Handle"],[1502,"Cache,DbT"],[1503,"Cache,DataStore,Network"],[1505,""],[1506,"Cache,DataStore,Network"],[1507,""],[1508,"TestFvk::Nullifier"],[1509,""],[1510,"Cache,DbT,ParamsT"],[1511,"WalletRead::AccountId,WalletRead::Error"],[1512,"InputSource::AccountId,InputSource::NoteRef,InputSource::Error"],[1513,"AccountId"],[1514,"Cache,DsFactory"],[1515,"WalletRead::Error"],[1516,"Cache,AccountIdT,ErrT,DbT,ParamsT,InputsT,ChangeT"],[1517,"DbT"],[1518,"A"],[1519,"Cache,AccountIdT,ErrT,DbT,ParamsT,InputsT,ChangeT"],[1520,"AccountId"],[1521,"WalletRead::AccountId,WalletRead::Error"],[1523,"WalletRead::Error"],[1524,"Cache,DataStore,Network"],[1528,"T"],[1532,"AccountId"],[1534,"WalletRead::Error"],[1536,"TestCache::BsError,TestCache::BlockSource,TestCache::InsertResult"],[1537,"Cache,DataStore,Network"],[1538,"WalletRead::Error"],[1539,"Cache,DataStore,Network"],[1540,"U,T"],[1550,"U"],[1560,"Cache,DbT,ParamsT"],[1561,"AccountId"],[1562,""],[1572,"A"],[1574,"WalletRead::Error"],[1575,"A"],[1576,"WalletRead::AccountId,WalletRead::Error"],[1578,"V"],[1588,"Cache,DataStore,Network"],[1590,"Cache,DsFactory"],[1592,"A,C"],[1593,"A,DsFactory"],[1594,"A,B"],[1595,"Cache,DsFactory"],[1596,"WalletCommitmentTrees::OrchardShardStore,A,WalletCommitmentTrees::Error,E,F"],[1597,"WalletCommitmentTrees::SaplingShardStore,A,E,F"],[1599,"T"],[1601,"A"],[1602,"T"],[1604,""],[1605,"ShieldedPoolTester::MerkleTreeHash"],[1607,"T"],[1608,"ShieldedPoolTester::Fvk"],[1610,""],[1611,"U"],[1612,"T"],[1613,"S"],[1614,"A"],[1615,"Cache,DbT,P,ShieldedPoolTester::MerkleTreeHash"],[1616,""],[1617,"Cache,DbT,P,ShieldedPoolTester::Note"],[1618,"ShieldedPoolTester::Sk"],[1620,"ShieldedPoolTester::Sk,ShieldedPoolTester::Fvk"],[1621,"Cache,DbT,P,ShieldedPoolTester::Fvk"],[1622,"U,T"],[1623,"U"],[1624,"P,ShieldedPoolTester::Fvk"],[1625,""],[1626,"ShieldedPoolTester::Sk"],[1627,"V"],[1628,"A"],[1635,""],[1637,"DSF"],[1640,"A"],[1641,"ShieldedPoolTester::MerkleTreeHash"],[1643,"DSF"],[1644,""],[1646,"ShieldedPoolTester::Fvk"],[1648,""],[1649,"DSF,TC"],[1650,""],[1652,"A"],[1653,"DSF"],[1654,""],[1655,"DSF"],[1657,"Cache,DbT,P,ShieldedPoolTester::MerkleTreeHash"],[1658,""],[1659,"ShieldedPoolTester::Fvk"],[1660,""],[1661,"DSF,C"],[1662,""],[1663,"DSF"],[1666,"Cache,DbT,P,ShieldedPoolTester::Note"],[1667,"DSF"],[1668,""],[1670,"DSF"],[1671,"ShieldedPoolTester::Sk"],[1673,"ShieldedPoolTester::Sk,ShieldedPoolTester::Fvk"],[1674,""],[1677,"Cache,DbT,P,ShieldedPoolTester::Fvk"],[1678,"P,ShieldedPoolTester::Fvk"],[1679,"ShieldedPoolTester::Sk"],[1680,""],[1681,"A"],[1682,"DSF"],[1684,"T"],[1686,"A"],[1687,"T"],[1689,""],[1690,"ShieldedPoolTester::MerkleTreeHash"],[1692,"T"],[1693,"ShieldedPoolTester::Fvk"],[1695,""],[1696,"U"],[1697,"T"],[1698,"S"],[1699,"A"],[1700,"Cache,DbT,P,ShieldedPoolTester::MerkleTreeHash"],[1701,""],[1702,"Cache,DbT,P,ShieldedPoolTester::Note"],[1703,"ShieldedPoolTester::Sk"],[1705,"ShieldedPoolTester::Sk,ShieldedPoolTester::Fvk"],[1706,"Cache,DbT,P,ShieldedPoolTester::Fvk"],[1707,"U,T"],[1708,"U"],[1709,"P,ShieldedPoolTester::Fvk"],[1710,""],[1711,"ShieldedPoolTester::Sk"],[1712,"V"],[1713,"A"],[1715,"T"],[1717,""],[1718,"T"],[1719,""],[1720,"T"],[1722,""],[1727,"T"],[1728,"DSF"],[1729,""],[1731,"U"],[1732,"T"],[1733,"S"],[1734,""],[1735,"DSF"],[1736,"T"],[1737,"DSF"],[1739,"U,T"],[1740,"U"],[1741,""],[1742,"V"],[1853,"DbT,ParamsT,FeeRuleT,N,InputsErrT,ChangeErrT"],[1854,"ParamsT,DbT"],[1856,"DbT,ParamsT,InputsT,ChangeT,CommitmentTreeErrT"],[1857,"DbT,ParamsT,CommitmentTreeErrT"],[1858,"DbT,ParamsT,InputsT,ChangeT,CommitmentTreeErrT"],[1859,"DbT,ParamsT,InputsT,ChangeT"],[1860,""],[1889,"T"],[1895,""],[1896,"T"],[1897,""],[1898,"DbT"],[1899,"T"],[1905,""],[1909,"DE,SE,CE,N"],[1910,"DbErrT,SelectorErrT,ChangeErrT,N"],[1911,""],[1913,"T"],[1914,"DbErrT,ChangeErrT,N"],[1916,"C,N,E,S"],[1917,"E,S,F,N"],[1918,"T"],[1920,""],[1923,"U"],[1926,"T"],[1929,"S"],[1932,"DbT"],[1933,"ShieldingSelector::Error,ShieldingSelector::InputSource,ParamsT,ChangeT"],[1934,"DbT,ParamsT,ShieldingSelector::InputSource,ChangeT,ShieldingSelector::Error"],[1935,"InputSelector::Error,InputSelector::InputSource,ParamsT,ChangeT"],[1936,"DbT,ParamsT,InputSelector::InputSource,ChangeT,InputSelector::Error"],[1937,"DE,SE,CE,N"],[1938,"T"],[1939,""],[1941,"U,T"],[1944,"U"],[1947,""],[1950,"V"],[1953,""],[1965,"T"],[1969,""],[1970,"T"],[1971,""],[1972,"P,AddressCodec::Error"],[1973,""],[1978,"T"],[1982,""],[1984,"AddressCodec::Error,P"],[1985,""],[1988,"P"],[1989,""],[1990,"P"],[1991,""],[1997,"T"],[1998,""],[1999,"T"],[2000,""],[2002,"U"],[2004,"T"],[2006,"S"],[2008,"T"],[2009,""],[2011,"U,T"],[2013,"U"],[2015,""],[2017,"V"],[2019,""],[2045,"T"],[2061,""],[2064,"E,NoteRefT"],[2065,""],[2069,"T"],[2077,""],[2086,"ChangeStrategy::FeeRule,ChangeStrategy::Error,ChangeStrategy::MetaSource,ChangeStrategy::AccountMetaT,P,NoteRefT"],[2087,""],[2088,"T"],[2104,""],[2119,"E,NoteRefT"],[2120,""],[2123,"P,FeeRule::Error"],[2124,""],[2125,"ChangeStrategy::FeeRule,ChangeStrategy::Error,ChangeStrategy::MetaSource,ChangeStrategy::AccountMetaT"],[2127,""],[2130,"E,NoteRefT"],[2131,"CE,N"],[2132,""],[2136,"T"],[2144,""],[2153,"U"],[2161,"T"],[2169,""],[2175,"S"],[2183,""],[2193,"E,N"],[2194,""],[2197,"T"],[2205,""],[2207,"U,T"],[2215,"U"],[2223,""],[2232,"V"],[2240,""],[2253,"T"],[2255,"BundleView::In,NoteRef,BundleView::Out"],[2256,""],[2257,"T"],[2259,""],[2260,"T"],[2261,""],[2262,"BundleView::In,NoteRef,BundleView::Out"],[2263,"BundleView::In"],[2264,"U"],[2265,"T"],[2266,"S"],[2267,"NoteRef"],[2268,"BundleView::In,NoteRef,BundleView::Out"],[2269,"BundleView::Out"],[2270,"U,T"],[2271,"U"],[2272,""],[2275,"V"],[2282,"T"],[2284,"BundleView::In,NoteRef,BundleView::Out"],[2285,""],[2286,"T"],[2288,""],[2289,"T"],[2290,""],[2291,"BundleView::In,NoteRef,BundleView::Out"],[2292,"BundleView::In"],[2293,"U"],[2294,"T"],[2295,"S"],[2296,"NoteRef"],[2297,"BundleView::In,NoteRef,BundleView::Out"],[2298,"BundleView::Out"],[2299,"U,T"],[2300,"U"],[2301,""],[2304,"V"],[2310,"T"],[2314,"R,I,P,NoteRefT,ChangeStrategy::AccountMetaT,ChangeStrategy::Error"],[2316,"T"],[2320,""],[2322,"R,I,ChangeStrategy::FeeRule"],[2324,"R,I,ChangeStrategy::MetaSource,ChangeStrategy::AccountMetaT"],[2326,"T"],[2328,""],[2331,"U"],[2333,"T"],[2335,""],[2336,"S"],[2338,"R,I"],[2340,"U,T"],[2342,"U"],[2344,""],[2346,"V"],[2382,""],[2384,"T"],[2404,""],[2411,"T"],[2418,""],[2426,"P"],[2428,""],[2432,"T"],[2452,""],[2462,"P"],[2464,""],[2483,"T"],[2493,""],[2495,"P"],[2496,""],[2511,"U"],[2521,"T"],[2531,"S"],[2541,""],[2558,"T"],[2565,""],[2574,"U,T"],[2584,"U"],[2594,""],[2606,"V"],[2619,"P,TestFvk::Nullifier,R"],[2620,"P,R,TestFvk::Nullifier"],[2621,"TestFvk::Nullifier,R"],[2622,""],[2624,"T"],[2630,""],[2634,"T"],[2637,""],[2644,"T"],[2650,""],[2666,"T"],[2668,""],[2669,"T"],[2670,""],[2679,"U"],[2682,"T"],[2685,""],[2686,"S"],[2689,""],[2690,"R"],[2692,""],[2704,"T"],[2707,"U,T"],[2710,"U"],[2713,""],[2716,"V"],[2719,"W"],[2721,""],[2743,"NoteRef"],[2745,"T"],[2757,""],[2758,"NoteRef"],[2759,"FeeRuleT,NoteRef"],[2760,""],[2762,"NoteRef"],[2763,"T"],[2769,""],[2777,"T"],[2789,""],[2795,"NoteRef"],[2796,"FeeRuleT,NoteRef"],[2797,""],[2799,"NoteRef"],[2800,"FeeRuleT,NoteRef"],[2801,""],[2803,"FeeRuleT,NoteRef"],[2804,""],[2806,"NoteRef"],[2807,"T"],[2813,"NoteRef"],[2815,"__H"],[2817,""],[2823,"U"],[2829,"T"],[2835,"NoteRef"],[2837,"FeeRuleT,NoteRef"],[2839,"S"],[2845,""],[2846,"NoteRef"],[2847,""],[2850,"NoteRef"],[2853,"NoteRef,FeeRuleT"],[2854,""],[2855,"FeeRuleT,NoteRef"],[2856,"T"],[2862,""],[2863,"NoteRef"],[2865,"U,T"],[2871,"U"],[2877,""],[2883,"V"],[2889,""],[2909,"T"],[2911,"DbError"],[2912,"T"],[2913,""],[2915,"T"],[2917,""],[2918,"DbError"],[2919,"E"],[2921,"T"],[2922,""],[2923,"U"],[2924,"T"],[2925,"S"],[2928,"E"],[2929,"T"],[2930,""],[2931,"U,T"],[2932,"U"],[2933,""],[2934,"V"],[2941,""],[2942,"T"],[2954,""],[2969,"T"],[2975,""],[2991,"T"],[3003,""],[3032,"T"],[3035,"A"],[3036,"T"],[3037,"Proof"],[3038,"T"],[3040,"SpendAuth"],[3041,""],[3055,"U"],[3061,"T"],[3067,"S"],[3073,""],[3085,"T"],[3091,"U,T"],[3097,"U"],[3103,""],[3111,"V"],[3137,""],[3141,"T"],[3165,""],[3188,"T"],[3200,""],[3226,"T"],[3250,""],[3299,"T"],[3309,""],[3311,"T"],[3313,""],[3315,"NoteRef"],[3316,""],[3318,"__H"],[3320,""],[3334,"U"],[3346,"T"],[3358,""],[3364,"S"],[3376,""],[3382,"T"],[3384,""],[3394,"T"],[3406,""],[3407,"U,T"],[3417,""],[3418,"U,T"],[3419,""],[3420,"U,T"],[3421,"U"],[3433,"DbError,DbT"],[3434,""],[3457,"V"],[3473,"T"],[3475,""],[3476,"T"],[3477,""],[3478,"T"],[3480,""],[3485,"T"],[3486,""],[3487,"U"],[3488,"T"],[3489,""],[3490,"S"],[3491,"T"],[3492,"U,T"],[3493,"U"],[3494,""],[3495,"V"],[3520,""],[3529,"T"],[3573,""],[3620,"T"],[3642,""],[3692,"T"],[3736,""],[3830,"T"],[3852,""],[3855,"__H"],[3856,""],[3888,"U"],[3910,"T"],[3932,""],[3935,"S"],[3957,""],[3976,"T"],[3998,"U,T"],[4020,""],[4021,"U"],[4043,""],[4071,"V"],[4093,""],[4096,"T"],[4101,""],[4102,"T"],[4104,""],[4105,"T"],[4124,""],[4125,"U"],[4126,"T"],[4129,"S"],[4130,"T"],[4135,"U,T"],[4136,"U"],[4137,""],[4138,"V"],[4139,"T,F"],[4140,"T"],[4152,"AccountId"],[4155,""],[4156,"T"],[4164,""],[4165,"T"],[4166,""],[4167,"T"],[4175,""],[4179,"AccountId,IvkTag"],[4180,"AccountId"],[4181,""],[4183,"T"],[4187,"AccountId"],[4188,""],[4192,"U"],[4196,"T"],[4200,""],[4202,"AccountId"],[4204,"S"],[4208,"IvkTag,AccountId"],[4209,"Nf"],[4210,"AccountId"],[4212,"AccountId,IvkTag"],[4213,"AccountId"],[4214,""],[4215,"AccountId"],[4217,"AccountId,IvkTag"],[4218,"AccountId"],[4219,"P,AccountId,IvkTag"],[4221,"T"],[4222,""],[4223,"U,T"],[4227,"U"],[4231,""],[4235,"V"],[4239,""],[4256,"R,H"],[4257,"W,H"],[4265,"T"],[4269,""],[4270,"CaErr,DbErr,TrErr"],[4272,"T"],[4273,"CaErr,DbErr,TrErr"],[4274,"DbErr,CaErr,TrErr"],[4275,""],[4276,"U"],[4277,"T"],[4278,"S"],[4279,"ChT,P,CaT,DbT"],[4280,""],[4281,"U,T"],[4282,"U"],[4283,""],[4284,"V"],[4307,"Nf,AccountId"],[4308,"Note,Nullifier,AccountId"],[4309,""],[4310,"AccountId"],[4311,"T"],[4331,""],[4332,"AccountId"],[4333,""],[4335,"NoteRef,NoteT"],[4336,""],[4338,"T"],[4345,""],[4355,"T"],[4375,""],[4385,"Note,Nullifier,AccountId"],[4386,""],[4389,"NoteRef,NoteT"],[4390,""],[4392,"AccountId"],[4393,""],[4395,"NoteRef,NoteT"],[4396,""],[4398,"T"],[4408,"Nf,AccountId"],[4409,"Note,Nullifier,AccountId"],[4410,""],[4411,"NoteRef,NoteT"],[4412,"Nf,AccountId"],[4413,"Note,Nullifier,AccountId"],[4414,""],[4424,"NoteRef,NoteT"],[4425,"U"],[4435,"T"],[4445,"Note,Nullifier,AccountId"],[4446,"NoteRef,NoteT,N,F"],[4447,""],[4448,"S"],[4458,"AccountId"],[4459,""],[4461,"Nf,AccountId"],[4462,"Note,Nullifier,AccountId"],[4464,"NoteRef,NoteT"],[4465,"Note,Nullifier,AccountId"],[4466,"NoteRef,NoteT"],[4467,"NoteRef"],[4471,"AccountId"],[4473,""],[4476,"NoteRef,NoteT"],[4477,""],[4481,"Note,Nullifier,AccountId"],[4482,"AccountId"],[4484,""],[4485,"NoteRef,NoteT"],[4486,"T"],[4493,"U,T"],[4503,"U"],[4513,"AccountId"],[4514,""],[4515,"NoteRef,NoteT"],[4516,""],[4529,"NoteRef"],[4531,"V"],[4541,""],[4562,"T"],[4568,""],[4571,"T"],[4574,""],[4577,"T"],[4583,""],[4594,"T"],[4595,"E"],[4596,"T"],[4598,""],[4603,"U"],[4606,"T"],[4609,""],[4614,"S"],[4617,""],[4624,"T"],[4627,""],[4630,"U,T"],[4633,"U"],[4636,""],[4639,"V"],[4642,""]]}],["zcash_client_sqlite",{"t":"FFPPPPFGFPPPPFFFFNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNCNNNNNNNNFNOONNNNNNNNNNNNNNNNOCNNNCNOONNNNNHHCHCSFNNNNNNNNNNNNNNNNNNNPPPPPPPPPPPPPPPPPPPPPPPPPGPPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOKFNNNNNNNNNNNNNMNCNNNNNFNNNNNNNNNNNNNNNNNNNNNFNNNNNCNNNNNNCNNNNNNCNNNNNNNPGPPFPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOPPPPPPPPPPGFNNNNNNNNNNNNNNNNNNNNNNNHNNNNCNNNNNNNNNNNNNNNSSSSSSSSSSSSS","n":["AccountUuid","BlockDb","CacheMiss","CorruptedData","Db","Fs","FsBlockDb","FsBlockDbError","GapLimits","InvalidBlockPath","InvalidBlockstoreRoot","MissingBlockPath","Protobuf","ReceivedNoteId","SqlTransaction","UtxoId","WalletDb","block_fully_scanned","block_max_scanned","block_metadata","borrow","","","","","","","","","","borrow_mut","","","","","","","","","chain","chain_height","check_witnesses","clone","","","","clone_into","","","","clone_to_uninit","","","","cmp","","compare","","conditional_select","create_account","default","","deref","","","","","","","","","deref_mut","","","","","","","","","drop","","","","","","","","","eq","","","","equivalent","","","","","","","","","","","","","","","","","","","","error","expose_uuid","find_account_for_ephemeral_address","find_block","fmt","","","","","","","for_path","","","from","","","","","","","","","","","","","from_connection","from_parts","from_uuid","get_account","get_account_birthday","get_account_for_ufvk","get_account_ids","get_account_metadata","get_address_for_index","get_block_hash","get_checkpoint_history","get_derived_account","get_known_ephemeral_addresses","get_last_generated_address_matching","get_max_cached_height","get_max_height_hash","get_memo","get_next_available_address","get_notes","get_orchard_nullifiers","get_sapling_nullifiers","get_sent_note_ids","get_sent_outputs","get_spendable_note","get_spendable_transparent_outputs","get_target_and_anchor_heights","get_transaction","get_transparent_address_metadata","get_transparent_balances","get_transparent_output","get_transparent_receivers","get_tx_height","get_tx_history","get_unified_full_viewing_keys","get_unspent_transparent_output","get_wallet_birthday","get_wallet_summary","hash","import_account_hd","import_account_ufvk","init","","","","","","","","","into","","","","","","","","","into_request","","","","","","","","","list_addresses","named_layer","","","","","","","","","partial_cmp","","put_blocks","put_orchard_subtree_roots","","put_received_transparent_utxo","put_sapling_subtree_roots","","queue_rescans","reserve_next_n_ephemeral_addresses","schedule_ephemeral_address_checks","seed_relevance_to_derived_accounts","select_spendable_notes","set_transaction_status","store_decrypted_tx","store_transactions_to_be_sent","suggest_scan_ranges","to_owned","","","","to_string","","transaction_data_requests","transactionally","truncate_to_height","","try_from","","","","","","","","","try_into","","","","","","","","","type_id","","","","","","","","","update_chain_tip","util","utxo_query_height","validate_seed","vzip","","","","","","","","","wallet","with_blocks","","with_gap_limits","with_orchard_tree_mut","","with_sapling_tree_mut","","write_block_metadata","BlockMeta","block_file_path","block_hash","block_time","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","drop","eq","equivalent","","","","","fmt","from","height","init","","into","into_request","migrations","named_layer","orchard_actions_count","sapling_outputs_count","to_owned","try_from","try_into","type_id","vzip","init_blockmeta_db","init_cache_database","blockmeta","all_migrations","init","MIGRATION_ID","Migration","borrow","borrow_mut","dependencies","deref","deref_mut","description","down","drop","from","id","init","into","into_request","named_layer","try_from","try_into","type_id","up","vzip","AccountCollision","AccountUnknown","AddressGeneration","AddressNotRecognized","AddressReuse","BadAccountData","BalanceError","BlockConflict","CacheMiss","ChainHeightUnknown","CommitmentTree","CorruptedData","DbError","DecodingError","DiversifierIndexReuse","InvalidMemo","InvalidNote","Io","KeyDerivationError","NonSequentialBlocks","NoteFilterInvalid","Protobuf","ReachedGapLimit","RequestedRewindInvalid","Scheduling","SqliteClientError","TableNotEmpty","TransparentAddress","TransparentDerivation","UnknownZip32Derivation","UnsupportedPoolType","Zip32AccountIndexOutOfRange","borrow","borrow_mut","deref","deref_mut","drop","fmt","","from","","","","","","","","","","","init","into","into_request","named_layer","source","to_string","try_from","try_into","type_id","vzip","requested_height","safe_rewind_height","Clock","SystemClock","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","drop","from","init","into","into_request","named_layer","now","","testing","to_owned","try_from","try_into","type_id","vzip","FixedClock","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","drop","from","init","into","into_request","named_layer","new","now","tick","to_owned","try_from","try_into","type_id","vzip","Account","borrow","borrow_mut","clone","clone_into","clone_to_uninit","commitment_tree","deref","deref_mut","drop","fmt","from","id","init","","into","into_request","name","named_layer","source","testing","to_owned","try_from","try_into","type_id","ufvk","uivk","vzip","CheckpointConflict","Error","Query","Serialization","SqliteShardStore","SubtreeDiscontinuity","add_checkpoint","","borrow","","borrow_mut","","checkpoint_count","","deref","","deref_mut","","drop","","fmt","","for_each_checkpoint","","from","","get_cap","","get_checkpoint","","get_checkpoint_at_depth","","get_shard","","get_shard_roots","","init","","into","","into_request","","last_shard","","max_checkpoint_id","","min_checkpoint_id","","named_layer","","put_cap","","put_shard","","remove_checkpoint","","source","to_string","truncate_checkpoints_retaining","","truncate_shards","","try_from","","try_into","","type_id","","update_checkpoint_with","","vzip","","with_checkpoints","","attempted_insertion_range","checkpoint","checkpoint_id","existing_range","extant_marks_removed","extant_tree_state","AddressGeneration","BalanceError","CannotRevert","CommitmentTree","CorruptedData","DatabaseNotSupported","DbError","Other","SeedNotRelevant","SeedRequired","WalletMigrationError","WalletMigrator","borrow","","borrow_mut","","default","deref","","deref_mut","","drop","","fmt","","from","","","","","","","init","","init_or_migrate","init_wallet_db","into","","into_request","","migrations","named_layer","","new","source","to_string","try_from","","try_into","","type_id","","vzip","","with_external_migrations","with_seed","V_0_10_0","V_0_10_3","V_0_11_0","V_0_11_1","V_0_11_2","V_0_12_0","V_0_13_0","V_0_14_0","V_0_15_0","V_0_4_0","V_0_6_0","V_0_8_0","V_0_9_0"],"q":[[0,"zcash_client_sqlite"],[293,"zcash_client_sqlite::chain"],[327,"zcash_client_sqlite::chain::init"],[329,"zcash_client_sqlite::chain::migrations"],[330,"zcash_client_sqlite::chain::migrations::blockmeta"],[332,"zcash_client_sqlite::chain::migrations::blockmeta::init"],[353,"zcash_client_sqlite::error"],[413,"zcash_client_sqlite::error::SqliteClientError"],[415,"zcash_client_sqlite::util"],[438,"zcash_client_sqlite::util::testing"],[460,"zcash_client_sqlite::wallet"],[488,"zcash_client_sqlite::wallet::commitment_tree"],[562,"zcash_client_sqlite::wallet::commitment_tree::Error"],[568,"zcash_client_sqlite::wallet::init"],[624,"zcash_client_sqlite::wallet::init::migrations"],[637,"zcash_client_backend::data_api"],[638,"core::option"],[639,"core::result"],[640,"rusqlite"],[641,"core::borrow"],[642,"zcash_protocol::consensus"],[643,"core::ops::range"],[644,"alloc::vec"],[645,"core::cmp"],[646,"subtle"],[647,"secrecy::vec"],[648,"zcash_keys::keys"],[649,"uuid"],[650,"zcash_transparent::address"],[651,"core::fmt"],[652,"rusqlite::error"],[653,"std::path"],[654,"core::convert"],[655,"zcash_client_backend::data_api::testing::transparent"],[656,"prost::error"],[657,"std::io::error"],[658,"zip32"],[659,"zcash_keys::address"],[660,"zcash_primitives::block"],[661,"zcash_protocol"],[662,"incrementalmerkletree"],[663,"zip32::fingerprint"],[664,"zcash_transparent::keys"],[665,"zcash_client_backend::wallet"],[666,"zcash_protocol::memo"],[667,"orchard::note::nullifier"],[668,"sapling_crypto::note::nullifier"],[669,"zcash_protocol::txid"],[670,"core::num::nonzero"],[671,"zcash_primitives::transaction"],[672,"zcash_protocol::value"],[673,"std::collections::hash::map"],[674,"zcash_transparent::bundle"],[675,"zcash_client_backend::data_api::testing"],[676,"core::hash"],[677,"tonic::request"],[678,"tonic::service::layered"],[679,"zcash_client_backend::data_api::chain"],[680,"orchard::tree"],[681,"shardtree::error"],[682,"sapling_crypto::tree"],[683,"nonempty"],[684,"zcash_client_backend::data_api::scanning"],[685,"rand_core"],[686,"alloc::string"],[687,"core::ops::function"],[688,"core::any"],[689,"zcash_client_backend::data_api::chain::error"],[690,"zcash_client_backend::proto::compact_formats"],[691,"rusqlite::transaction"],[692,"shardtree"],[693,"schemerz"],[694,"schemerz_rusqlite"],[695,"alloc::boxed"],[696,"std::collections::hash::set"],[697,"zcash_address::encoding"],[698,"bip32::error"],[699,"zcash_keys::encoding"],[700,"core::error"],[701,"std::time"],[702,"core::time"],[703,"shardtree::store"],[704,"zcash_primitives::merkle_tree"],[705,"shardtree::prunable"],[706,"core::clone"]],"i":"``Dh000```0000````b000Ad0EdDdB`BbBdBf8765432108`7732103210321032323730765432108765432108765432108321033333222221111100000`37432210887547654321008888703777777777774777777777777777777777737776543210876543210876543210877654321083277777777777777732102877747654321087654321087654321087`77765432108`54777774`Df0000000000000000000`000`00000000```````Nh000000000000000000Al000000000000000000000000`0000000000000000000000000000000000Oj0``Ol000000000000Cj1`11111`A@`00000000000000000000`A@d0000`000000`000000`0000000Mn`00`0Mj0010100010101110001000000000001010100000001000000110000010101000100AAfAAh0100AAn000000000``AAl1010010101110111111010`0101`010110101010100`````````````","f":"`````````````````{{{d{{b{cegi}}}}}{{j{{h{f}}k}}}{{n{l}}}A`{}{}{}}0{{{d{{b{cegi}}}}Ab}{{j{{h{f}}k}}}{{n{l}}}A`{}{}{}}{d{{d{c}}}{}}0{{{d{Ad}}}{{d{l}}}}1111111{{{d{Af}}}{{d{Afc}}}{}}00000000`{{{d{{b{cegi}}}}}{{j{{h{Ab}}k}}}{{n{l}}}A`{}{}{}}{{{d{Af{b{cegi}}}}}{{j{{Aj{{Ah{Ab}}}}Al}}}{{An{l}}}{}{}{}}{{{d{B`}}}B`}{{{d{Bb}}}Bb}{{{d{Bd}}}Bd}{{{d{Bf}}}Bf}{{d{d{Afc}}}Bh{}}000{{dBj}Bh}000{{{d{B`}}{d{B`}}}Bl}{{{d{Bb}}{d{Bb}}}Bl}{{d{d{c}}}Bl{}}0{{{d{B`}}{d{B`}}Bn}B`}{{{d{Af{b{cegi}}}}{d{C`}}{d{{Cb{Bj}}}}{d{Cd}}{h{{d{C`}}}}}{{j{{Ch{kCf}}m}}}{{An{l}}}A`Cj{}{}{}}{{}B`}{{}Bf}{Cl{{d{c}}}{}}00000000{Cl{{d{Afc}}}{}}00000000{ClBh}00000000{{{d{B`}}{d{B`}}}Cn}{{{d{Bb}}{d{Bb}}}Cn}{{{d{Bd}}{d{Bd}}}Cn}{{{d{Bf}}{d{Bf}}}Cn}{{d{d{c}}}Cn{}}0000000000000000000`{{{d{B`}}}D`}{{{d{{b{cegi}}}}{d{Db}}}{{j{{h{k}}m}}}{{n{l}}}A`{}{}{}{}}{{{d{Dd}}Ab}{{j{{h{Df}}Dh}}}}{{{d{B`}}{d{AfDj}}}Dl}{{{d{Bb}}{d{AfDj}}}Dl}0{{{d{Bd}}{d{AfDj}}}Dl}{{{d{Bf}}{d{AfDj}}}Dl}{{{d{Dh}}{d{AfDj}}}Dl}0{{cegi}{{j{{b{legi}}Dn}}}{{Eb{E`}}}{}{}{}}{c{{j{EdDn}}}{{Eb{E`}}}}{c{{j{DdDh}}}{{Eb{E`}}}}{cc{}}0000000{EfBf}1{EhDh}{DnDh}{EjDh}{{cegi}{{b{cegi}}}{{n{l}}}{}{}{}}{{ElElEl}Bf}{D`B`}{{{d{{b{cegi}}}}k}{{j{{h{m}}o}}}{{n{l}}}A`{}{}{}{}{}}{{{d{{b{cegi}}}}k}{{j{Abm}}}{{n{l}}}A`{}{}{}{}}{{{d{{b{cegi}}}}{d{En}}}{{j{{h{k}}m}}}{{n{l}}}A`{}{}{}{}}{{{d{{b{cegi}}}}}{{j{{Aj{k}}m}}}{{n{l}}}A`{}{}{}{}}{{{d{{b{cegi}}}}k{d{F`}}{d{{Fb{m}}}}}{{j{Fdo}}}{{n{l}}}A`{}{}{}{}{}}{{{d{Af{b{cegi}}}}kFfFh}{{j{{h{Fj}}m}}}{{An{l}}}A`Cj{}{}{}}{{{d{{b{cegi}}}}Ab}{{j{{h{Fl}}k}}}{{n{l}}}A`{}{}{}}{{{d{{b{cegi}}}}{d{Fn}}}{{j{{Aj{{Ch{Ab{h{G`}}}}}}k}}}{{n{l}}}A`{}{}{}}{{{d{{b{cegi}}}}{d{Gb}}Gd}{{j{{h{k}}m}}}{{n{l}}}A`{}{}{}{}}{{{d{{b{cegi}}}}k{h{{Ah{Gf}}}}}{{j{{Aj{{Ch{DbGh}}}}m}}}{{n{l}}}A`{}{}{}{}}{{{d{{b{cegi}}}}kFh}{{j{{h{Fj}}m}}}{{n{l}}}A`{}{}{}{}}{{{d{Dd}}}{{j{{h{Ab}}Dh}}}}{{{d{{b{cegi}}}}}{{j{{h{{Ch{AbFl}}}}k}}}{{n{l}}}A`{}{}{}}{{{d{{b{cegi}}}}Gj}{{j{{h{Gl}}k}}}{{n{l}}}A`{}{}{}}{{{d{Af{b{cegi}}}}kFh}{{j{{h{{Ch{FjFf}}}}m}}}{{An{l}}}A`Cj{}{}{}}{{{d{{b{cegi}}}}Fn}{{j{{Aj{{H`{kGn}}}}m}}}{{n{l}}}A`{}{}{}{}}{{{d{{b{cegi}}}}Hb}{{j{{Aj{{Ch{kHd}}}}m}}}{{n{l}}}A`{}{}{}{}}{{{d{{b{cegi}}}}Hb}{{j{{Aj{{Ch{kHf}}}}m}}}{{n{l}}}A`{}{}{}{}}{{{d{{b{cegi}}}}{d{Hh}}Fn}{{j{{Aj{Gj}}k}}}{{n{l}}}A`{}{}{}}{{{d{{b{cegi}}}}{d{Hh}}}{{j{{Aj{Hj}}k}}}{{n{l}}}A`{}{}{}}{{{d{{b{cegi}}}}{d{Hh}}FnEl}{{j{{h{{H`{kGn}}}}m}}}{{n{l}}}A`{}{}{}{}}{{{d{{b{cegi}}}}{d{Db}}AbEl}{{j{{Aj{Hl}}k}}}{{n{l}}}A`{}{}{}}{{{d{{b{cegi}}}}Hn}{{j{{h{{Ch{AbAb}}}}k}}}{{n{l}}}A`{}{}{}}{{{d{{b{cegi}}}}Hh}{{j{{h{I`}}k}}}{{n{l}}}A`{}{}{}}{{{d{{b{cegi}}}}k{d{Db}}}{{j{{h{Gh}}m}}}{{n{l}}}A`{}{}{}{}}{{{d{{b{cegi}}}}kAb}{{j{{Id{DbIb}}m}}}{{n{l}}}A`{}{}{}{}}{{{d{{b{cegi}}}}{d{If}}Cn}{{j{{h{Hl}}k}}}{{n{l}}}A`{}{}{}}{{{d{{b{cegi}}}}kCn}{{j{{Id{Db{h{Gh}}}}m}}}{{n{l}}}A`{}{}{}{}}{{{d{{b{cegi}}}}Hh}{{j{{h{Ab}}k}}}{{n{l}}}A`{}{}{}}{{{d{{b{cegi}}}}}{{j{{Aj{{Ih{k}}}}m}}}{{n{l}}}A`{}{}{}{}}{{{d{{b{cegi}}}}}{{j{{Id{kEn}}m}}}{{n{l}}}A`{}{}{}{}}{{{d{{b{cegi}}}}{d{If}}}{{j{{h{Hl}}k}}}{{n{l}}}A`{}{}{}}{{{d{{b{cegi}}}}}{{j{{h{Ab}}k}}}{{n{l}}}A`{}{}{}}{{{d{{b{cegi}}}}El}{{j{{h{{Ij{k}}}}m}}}{{n{l}}}A`{}{}{}{}}{{{d{B`}}{d{Afc}}}BhIl}{{{d{Af{b{cegi}}}}{d{C`}}{d{{Cb{Bj}}}}Gd{d{Cd}}{h{{d{C`}}}}}{{j{{Ch{kCf}}m}}}{{An{l}}}A`Cj{}{}{}}{{{d{Af{b{cegi}}}}{d{C`}}{d{En}}{d{Cd}}In{h{{d{C`}}}}}{{j{km}}}{{An{l}}}A`Cj{}{}{}}{{}Cl}00000000{{}c{}}00000000{{}{{J`{c}}}{}}00000000{{{d{{b{cegi}}}}k}{{j{{Aj{Jb}}m}}}{{n{l}}}A`{}{}{}{}}{{dc}{{Jd{c}}}{}}00000000{{{d{B`}}{d{B`}}}{{h{Bl}}}}{{{d{Bb}}{d{Bb}}}{{h{Bl}}}}{{{d{Af{b{cegi}}}}{d{Jf}}{Aj{{Jh{k}}}}}{{j{Bhm}}}{{An{l}}}A`Cj{}{}{}}{{{d{Af{b{cegi}}}}Jj{d{{Fb{{Jn{Jl}}}}}}}{{j{Bh{K`{k}}}}}{{An{l}}}A`{}{}{}}{{{d{Af{b{Adceg}}}}Jj{d{{Fb{{Jn{Jl}}}}}}}{{j{Bh{K`{i}}}}}A`{}{}{}}{{{d{Af{b{cegi}}}}{d{Hl}}}{{j{km}}}{{An{l}}}A`Cj{}{}{}}{{{d{Af{b{cegi}}}}Jj{d{{Fb{{Jn{Kb}}}}}}}{{j{Bh{K`{k}}}}}{{An{l}}}A`{}{}{}}{{{d{Af{b{Adceg}}}}Jj{d{{Fb{{Jn{Kb}}}}}}}{{j{Bh{K`{i}}}}}A`{}{}{}}{{{d{Af{b{cegi}}}}{Kd{{Ah{Ab}}}}Kf}{{j{BhAl}}}{{An{l}}}{}{}{}}{{{d{Af{b{cegi}}}}kCl}{{j{{Aj{{Ch{DbGh}}}}m}}}{{An{l}}}A`Cj{}{}{}}{{{d{Af{b{cegi}}}}}{{j{BhAl}}}{{An{l}}}{}CjKh}{{{d{{b{cegi}}}}{d{{Cb{Bj}}}}}{{j{{Kj{k}}m}}}{{n{l}}}A`{}{}{}{}}{{{d{{b{cegi}}}}kIb{d{{Fb{Fn}}}}Ab{d{{Fb{m}}}}}{{j{{Kl{m}}o}}}{{n{l}}}A`{}{}{}{}{}}{{{d{Af{b{cegi}}}}HhKn}{{j{Bhk}}}{{An{l}}}A`Cj{}{}}{{{d{Af{b{cegi}}}}{L`{k}}}{{j{Bhm}}}{{An{l}}}A`Cj{}{}{}}{{{d{Af{b{cegi}}}}{d{{Fb{{Lb{k}}}}}}}{{j{Bhm}}}{{An{l}}}A`Cj{}{}{}}{{{d{{b{cegi}}}}}{{j{{Aj{Ld}}k}}}{{n{l}}}A`{}{}{}}{dc{}}000{dLf}0{{{d{{b{cegi}}}}}{{j{{Aj{Lh}}k}}}{{n{l}}}A`{}{}{}}{{{d{Af{b{cegi}}}}o}{{j{km}}}{{An{l}}}{}{}{}{}{{Lj{Dn}}}{{Ln{{d{Af{b{Ad{d{e}}{d{g}}{d{Afi}}}}}}}{{Ll{{j{km}}}}}}}}{{{d{Af{b{cegi}}}}Ab}{{j{Abk}}}{{An{l}}}A`Cj{}{}}{{{d{Dd}}Ab}{{j{BhDh}}}}{c{{j{e}}}{}{}}00000000{{}{{j{c}}}{}}00000000{dM`}00000000{{{d{Af{b{cegi}}}}Ab}{{j{Bhk}}}{{An{l}}}A`Cj{}{}}`{{{d{{b{cegi}}}}k}{{j{Abm}}}{{n{l}}}A`{}{}{}{}}{{{d{{b{cegi}}}}k{d{{Cb{Bj}}}}}{{j{Cnm}}}{{n{l}}}A`{}{}{}{}}{{}c{}}00000000`{{{d{Ed}}{h{Ab}}{h{Cl}}g}{{j{Bh{Mb{ce}}}}}{}{}{{Mf{Md}{{Ll{{j{Bh{Mb{ce}}}}}}}}}}{{{d{Dd}}{h{Ab}}{h{Cl}}g}{{j{Bh{Mb{ce}}}}}{}{}{{Mf{Md}{{Ll{{j{Bh{Mb{ce}}}}}}}}}}{{{b{cegi}}Bf}{{b{cegi}}}{}{}{}{}}{{{d{Af{b{Adceg}}}}o}{{j{im}}}A`{}{}{}{}{{Lj{{K`{k}}}}}{{Mf{{d{Af{Ml{{Mj{{d{Mh}}Jl}}}}}}}{{Ll{{j{im}}}}}}}}{{{d{Af{b{cegi}}}}Aa}{{j{ko}}}{{An{l}}}A`{}{}{}{}{{Lj{{K`{m}}}}}{{Mf{{d{Af{Ml{{Mj{{d{Mh}}Jl}}}}}}}{{Ll{{j{ko}}}}}}}}{{{d{Af{b{Adceg}}}}m}{{j{ik}}}A`{}{}{}{{Lj{{K`{Mn}}}}}{{Mf{{d{Af{Ml{{Mj{{d{Mh}}Kb}}}}}}}{{Ll{{j{ik}}}}}}}}{{{d{Af{b{cegi}}}}Aa}{{j{ko}}}{{An{l}}}A`{}{}{}{}{{Lj{{K`{m}}}}}{{Mf{{d{Af{Ml{{Mj{{d{Mh}}Kb}}}}}}}{{Ll{{j{ko}}}}}}}}{{{d{Dd}}{d{{Fb{Df}}}}}{{j{BhDh}}}}`{{{d{Df}}{d{c}}}N`{{Eb{E`}}}}{DfFl}{DfEl}{d{{d{c}}}{}}{{{d{Af}}}{{d{Afc}}}{}}{{{d{Df}}}Df}{{d{d{Afc}}}Bh{}}{{dBj}Bh}{Cl{{d{c}}}{}}{Cl{{d{Afc}}}{}}{ClBh}{{{d{Df}}{d{Df}}}Cn}{{d{d{c}}}Cn{}}0000{{{d{Df}}{d{AfDj}}}Dl}{cc{}}{DfAb}`{{}Cl}{{}c{}}{{}{{J`{c}}}{}}`{{dc}{{Jd{c}}}{}}{DfEl}0{dc{}}{c{{j{e}}}{}{}}{{}{{j{c}}}{}}{dM`}{{}c{}}{{{d{AfDd}}}{{j{Bh{Nb{D`Dn}}}}}}{{{d{Ed}}}{{j{BhDn}}}}`{{}{{Aj{{Nf{Nd}}}}}}`{{}D`}`{d{{d{c}}}{}}{{{d{Af}}}{{d{Afc}}}{}}{{{d{Nh}}}{{Nj{D`}}}}{Cl{{d{c}}}{}}{Cl{{d{Afc}}}{}}{{{d{Nh}}}{{d{C`}}}}{{{d{Nh}}{d{Mh}}}{{j{Bhc}}}{}}{ClBh}{cc{}}{{{d{Nh}}}D`}{{}Cl}{{}c{}}{{}{{J`{c}}}{}}{{dc}{{Jd{c}}}{}}{c{{j{e}}}{}{}}{{}{{j{c}}}{}}{dM`}:{{}c{}}````````````````````````````````{d{{d{c}}}{}}{{{d{Af}}}{{d{Afc}}}{}}{Cl{{d{c}}}{}}{Cl{{d{Afc}}}{}}>{{{d{Al}}{d{AfDj}}}Dl}0{NlAl}{NnAl}{EjAl}{O`Al}{EhAl}{ObAl}{OdAl}{cc{}}{{{K`{Mn}}}Al}{OfAl}{DnAl}{{}Cl}{{}c{}}{{}{{J`{c}}}{}}{{dc}{{Jd{c}}}{}}{{{d{Al}}}{{h{{d{Oh}}}}}}{dLf}{c{{j{e}}}{}{}}{{}{{j{c}}}{}}{dM`}{{}c{}}{OjAb}{Ojh}``{d{{d{c}}}{}}{{{d{Af}}}{{d{Afc}}}{}}{{{d{Ol}}}Ol}{{d{d{Afc}}}Bh{}}{{dBj}Bh}{Cl{{d{c}}}{}}{Cl{{d{Afc}}}{}}{ClBh}{cc{}}{{}Cl}{{}c{}}{{}{{J`{c}}}{}}{{dc}{{Jd{c}}}{}}{{{d{Cj}}}On}{{{d{Ol}}}On}`{dc{}}{c{{j{e}}}{}{}}{{}{{j{c}}}{}}{dM`}{{}c{}}`{d{{d{c}}}{}}{{{d{Af}}}{{d{Afc}}}{}}{{{d{A@`}}}A@`}{{d{d{Afc}}}Bh{}}{{dBj}Bh}{Cl{{d{c}}}{}}{Cl{{d{Afc}}}{}}{ClBh}{cc{}}{{}Cl}{{}c{}}{{}{{J`{c}}}{}}{{dc}{{Jd{c}}}{}}{OnA@`}{{{d{A@`}}}On}{{{d{A@`}}A@b}Bh}{dc{}}{c{{j{e}}}{}{}}{{}{{j{c}}}{}}{dM`}{{}c{}}`{d{{d{c}}}{}}{{{d{Af}}}{{d{Afc}}}{}}{{{d{A@d}}}A@d}{{d{d{Afc}}}Bh{}}{{dBj}Bh}`{Cl{{d{c}}}{}}{Cl{{d{Afc}}}{}}{ClBh}{{{d{A@d}}{d{AfDj}}}Dl}{cc{}}{{{d{A@d}}}B`}`{{}Cl}{{}c{}}{{}{{J`{c}}}{}}{{{d{A@d}}}{{h{{d{C`}}}}}}{{dc}{{Jd{c}}}{}}{{{d{A@d}}}{{d{A@f}}}}`{dc{}}{c{{j{e}}}{}{}}{{}{{j{c}}}{}}{dM`}{{{d{A@d}}}{{h{{d{En}}}}}}{{{d{A@d}}}A@h}{{}c{}}``````{{{d{Af{Mj{{d{Mh}}c}}}}eA@j}{{j{Bhg}}}A@l{}{}}{{{d{Af{Mj{lc}}}}eA@j}{{j{Bhg}}}A@l{}{}}{d{{d{c}}}{}}0{{{d{Af}}}{{d{Afc}}}{}}0{{{d{{Mj{lc}}}}}{{j{Cle}}}A@l{}}{{{d{{Mj{{d{Mh}}c}}}}}{{j{Cle}}}A@l{}}{Cl{{d{c}}}{}}0{Cl{{d{Afc}}}{}}0{ClBh}0{{{d{Mn}}{d{AfDj}}}Dl}0{{{d{{Mj{{d{Mh}}c}}}}Cli}{{j{Bhg}}}A@l{}{}{{Mf{{d{e}}{d{A@j}}}{{Ll{{j{Bhg}}}}}}}}{{{d{{Mj{lc}}}}Cli}{{j{Bhg}}}A@l{}{}{{Mf{{d{e}}{d{A@j}}}{{Ll{{j{Bhg}}}}}}}}{cc{}}0{{{d{{Mj{{d{Mh}}c}}}}}{{j{{A@n{e}}g}}}A@l{}{}}{{{d{{Mj{lc}}}}}{{j{{A@n{e}}g}}}A@l{}{}}{{{d{{Mj{{d{Mh}}c}}}}{d{e}}}{{j{{h{A@j}}g}}}A@l{}{}}{{{d{{Mj{lc}}}}{d{e}}}{{j{{h{A@j}}g}}}A@l{}{}}{{{d{{Mj{{d{Mh}}c}}}}Cl}{{j{{h{{Ch{eA@j}}}}g}}}A@l{}{}}{{{d{{Mj{lc}}}}Cl}{{j{{h{{Ch{eA@j}}}}g}}}A@l{}{}}{{{d{{Mj{lc}}}}AA`}{{j{{h{{AAb{e}}}}g}}}A@l{}{}}{{{d{{Mj{{d{Mh}}c}}}}AA`}{{j{{h{{AAb{e}}}}g}}}A@l{}{}}{{{d{{Mj{lc}}}}}{{j{{Aj{AA`}}e}}}A@l{}}{{{d{{Mj{{d{Mh}}c}}}}}{{j{{Aj{AA`}}e}}}A@l{}}{{}Cl}0{{}c{}}0{{}{{J`{c}}}{}}0{{{d{{Mj{lc}}}}}{{j{{h{{AAb{e}}}}g}}}A@l{}{}}{{{d{{Mj{{d{Mh}}c}}}}}{{j{{h{{AAb{e}}}}g}}}A@l{}{}}{{{d{{Mj{lc}}}}}{{j{{h{e}}g}}}A@l{}{}}{{{d{{Mj{{d{Mh}}c}}}}}{{j{{h{e}}g}}}A@l{}{}}01{{dc}{{Jd{c}}}{}}0{{{d{Af{Mj{lc}}}}{A@n{e}}}{{j{Bhg}}}A@l{}{}}{{{d{Af{Mj{{d{Mh}}c}}}}{A@n{e}}}{{j{Bhg}}}A@l{}{}}{{{d{Af{Mj{lc}}}}{AAb{e}}}{{j{Bhg}}}A@l{}{}}{{{d{Af{Mj{{d{Mh}}c}}}}{AAb{e}}}{{j{Bhg}}}A@l{}{}}{{{d{Af{Mj{{d{Mh}}c}}}}{d{e}}}{{j{Bhg}}}A@l{}{}}{{{d{Af{Mj{lc}}}}{d{e}}}{{j{Bhg}}}A@l{}{}}{{{d{Mn}}}{{h{{d{Oh}}}}}}{dLf}23{{{d{Af{Mj{lc}}}}Jj}{{j{Bhe}}}A@l{}}{{{d{Af{Mj{{d{Mh}}c}}}}Jj}{{j{Bhe}}}A@l{}}{c{{j{e}}}{}{}}0{{}{{j{c}}}{}}0{dM`}0{{{d{Af{Mj{lc}}}}{d{e}}i}{{j{Cng}}}A@l{}{}{{AAd{{d{AfA@j}}}{{Ll{{j{Bhg}}}}}}}}{{{d{Af{Mj{{d{Mh}}c}}}}{d{e}}i}{{j{Cng}}}A@l{}{}{{AAd{{d{AfA@j}}}{{Ll{{j{Bhg}}}}}}}}{{}c{}}0{{{d{Af{Mj{lc}}}}Cli}{{j{Bhg}}}A@l{}{}{{Mf{{d{e}}{d{A@j}}}{{Ll{{j{Bhg}}}}}}}}{{{d{Af{Mj{{d{Mh}}c}}}}Cli}{{j{Bhg}}}A@l{}{}{{Mf{{d{e}}{d{A@j}}}{{Ll{{j{Bhg}}}}}}}}{AAfAh}{AAhA@j}{AAhAb}2{AAhh}{AAhAAj}````````````{d{{d{c}}}{}}0{{{d{Af}}}{{d{Afc}}}{}}0{{}AAl}{Cl{{d{c}}}{}}0{Cl{{d{Afc}}}{}}0{ClBh}0{{{d{AAn}}{d{AfDj}}}Dl}0{cc{}}{OfAAn}{AlAAn}{DnAAn}3{{{K`{Mn}}}AAn}{NnAAn}{{}Cl}0{{AAl{d{Af{b{cegi}}}}}{{j{Bh{Nb{D`AAn}}}}}{{An{l}}}A`{CjAB`}{KhAB`}}{{{d{Af{b{cegi}}}}{h{{Cb{Bj}}}}}{{j{Bh{Nb{D`AAn}}}}}{{An{l}}}A`{CjAB`}{KhAB`}}{{}c{}}0{{}{{J`{c}}}{}}0`{{dc}{{Jd{c}}}{}}0{{}AAl}{{{d{AAn}}}{{h{{d{Oh}}}}}}{dLf}{c{{j{e}}}{}{}}0{{}{{j{c}}}{}}0{dM`}0{{}c{}}0{{AAl{Aj{{Nf{Nd}}}}}AAl}{{AAl{Cb{Bj}}}AAl}{{}d}000000000000","D":"ABh","p":[[5,"WalletDb",0],[1,"reference",null,null,1],[5,"BlockMetadata",637],[6,"Option",638,null,1],[6,"Result",639,null,1],[5,"Connection",640],[10,"Borrow",641],[10,"Parameters",642],[5,"BlockHeight",642],[5,"SqlTransaction",0],[0,"mut"],[5,"Range",643],[5,"Vec",644],[6,"SqliteClientError",353],[10,"BorrowMut",641],[5,"AccountUuid",0],[5,"ReceivedNoteId",0],[5,"UtxoId",0],[5,"GapLimits",0],[1,"unit"],[1,"u8"],[6,"Ordering",645],[5,"Choice",646],[1,"str"],[8,"SecretVec",647],[5,"AccountBirthday",637],[5,"UnifiedSpendingKey",648],[1,"tuple",null,null,1],[10,"Clock",415],[1,"usize"],[1,"bool"],[5,"Uuid",649],[6,"TransparentAddress",650],[5,"FsBlockDb",0],[5,"BlockMeta",293],[6,"FsBlockDbError",0],[5,"Formatter",651],[8,"Result",651],[6,"Error",652],[5,"Path",653],[10,"AsRef",654],[5,"BlockDb",0],[5,"GapLimits",655],[5,"DecodeError",656],[5,"Error",657],[1,"u32"],[5,"UnifiedFullViewingKey",648],[6,"NoteFilter",637],[1,"slice"],[5,"AccountMeta",637],[5,"DiversifierIndex",658],[6,"UnifiedAddressRequest",648],[5,"UnifiedAddress",659],[5,"BlockHash",660],[6,"ShieldedProtocol",661],[5,"Position",662],[5,"SeedFingerprint",663],[5,"AccountId",658],[5,"NonHardenedChildIndex",664],[5,"TransparentAddressMetadata",665],[5,"NoteId",665],[6,"Memo",666],[6,"Note",665],[5,"ReceivedNote",665],[6,"NullifierQuery",637],[5,"Nullifier",667],[5,"Nullifier",668],[5,"TxId",669],[5,"OutputOfSentTx",637],[5,"WalletTransparentOutput",665],[8,"NonZeroU32",670],[5,"Transaction",671],[5,"Zatoshis",672],[5,"HashMap",673],[5,"OutPoint",674],[5,"TransactionSummary",675],[5,"WalletSummary",637],[10,"Hasher",676],[6,"AccountPurpose",637],[5,"Request",677],[5,"AddressInfo",637],[5,"Layered",678],[5,"ChainState",679],[5,"ScannedBlock",637],[1,"u64"],[5,"MerkleHashOrchard",680],[5,"CommitmentTreeRoot",679],[6,"ShardTreeError",681],[5,"Node",682],[5,"NonEmpty",683],[6,"ScanPriority",684],[10,"RngCore",685],[6,"SeedRelevance",637],[5,"SpendableNotes",637],[6,"TransactionStatus",637],[5,"DecryptedTransaction",637],[5,"SentTransaction",637],[5,"ScanRange",684],[5,"String",686],[6,"TransactionDataRequest",637],[10,"From",654,null,1],[17,"Output"],[10,"FnOnce",687],[5,"TypeId",688],[6,"Error",689],[5,"CompactBlock",690],[10,"FnMut",687],[5,"Transaction",691],[5,"SqliteShardStore",488],[5,"ShardTree",692],[6,"Error",488],[5,"PathBuf",653],[6,"MigratorError",693],[10,"RusqliteMigration",694],[5,"Box",695,null,1],[5,"Migration",332],[5,"HashSet",696],[6,"Error",666],[6,"AddressGenerationError",648],[6,"ParseError",697],[6,"Error",698],[6,"TransparentCodecError",699],[6,"BalanceError",672],[10,"Error",700],[15,"RequestedRewindInvalid",413],[5,"SystemClock",415],[5,"SystemTime",701],[5,"FixedClock",438],[5,"Duration",702],[5,"Account",460],[6,"AccountSource",637],[5,"UnifiedIncomingViewingKey",648],[5,"Checkpoint",703],[10,"HashSer",704],[8,"PrunableTree",705],[5,"Address",662],[8,"LocatedPrunableTree",705],[10,"Fn",687],[15,"SubtreeDiscontinuity",562],[15,"CheckpointConflict",562],[6,"TreeState",703],[5,"WalletMigrator",568],[6,"WalletMigrationError",568],[10,"Clone",706]],"r":[],"b":[[118,"impl-Debug-for-ReceivedNoteId"],[119,"impl-Display-for-ReceivedNoteId"],[122,"impl-Debug-for-FsBlockDbError"],[123,"impl-Display-for-FsBlockDbError"],[137,"impl-From%3CDecodeError%3E-for-FsBlockDbError"],[138,"impl-From%3CError%3E-for-FsBlockDbError"],[139,"impl-From%3CError%3E-for-FsBlockDbError"],[220,"impl-WalletCommitmentTrees-for-WalletDb%3CC,+P,+CL,+R%3E"],[221,"impl-WalletCommitmentTrees-for-WalletDb%3CSqlTransaction%3C\'_%3E,+P,+CL,+R%3E"],[223,"impl-WalletCommitmentTrees-for-WalletDb%3CC,+P,+CL,+R%3E"],[224,"impl-WalletCommitmentTrees-for-WalletDb%3CSqlTransaction%3C\'_%3E,+P,+CL,+R%3E"],[288,"impl-WalletCommitmentTrees-for-WalletDb%3CSqlTransaction%3C\'_%3E,+P,+CL,+R%3E"],[289,"impl-WalletCommitmentTrees-for-WalletDb%3CC,+P,+CL,+R%3E"],[290,"impl-WalletCommitmentTrees-for-WalletDb%3CSqlTransaction%3C\'_%3E,+P,+CL,+R%3E"],[291,"impl-WalletCommitmentTrees-for-WalletDb%3CC,+P,+CL,+R%3E"],[390,"impl-Debug-for-SqliteClientError"],[391,"impl-Display-for-SqliteClientError"],[392,"impl-From%3CError%3E-for-SqliteClientError"],[393,"impl-From%3CAddressGenerationError%3E-for-SqliteClientError"],[394,"impl-From%3CError%3E-for-SqliteClientError"],[395,"impl-From%3CParseError%3E-for-SqliteClientError"],[396,"impl-From%3CDecodeError%3E-for-SqliteClientError"],[397,"impl-From%3CError%3E-for-SqliteClientError"],[398,"impl-From%3CTransparentCodecError%3E-for-SqliteClientError"],[400,"impl-From%3CShardTreeError%3CError%3E%3E-for-SqliteClientError"],[401,"impl-From%3CBalanceError%3E-for-SqliteClientError"],[402,"impl-From%3CError%3E-for-SqliteClientError"],[494,"impl-ShardStore-for-SqliteShardStore%3C%26Transaction%3C\'conn%3E,+H,+SHARD_HEIGHT%3E"],[495,"impl-ShardStore-for-SqliteShardStore%3CConnection,+H,+SHARD_HEIGHT%3E"],[500,"impl-ShardStore-for-SqliteShardStore%3CConnection,+H,+SHARD_HEIGHT%3E"],[501,"impl-ShardStore-for-SqliteShardStore%3C%26Transaction%3C\'conn%3E,+H,+SHARD_HEIGHT%3E"],[508,"impl-Display-for-Error"],[509,"impl-Debug-for-Error"],[510,"impl-ShardStore-for-SqliteShardStore%3C%26Transaction%3C\'conn%3E,+H,+SHARD_HEIGHT%3E"],[511,"impl-ShardStore-for-SqliteShardStore%3CConnection,+H,+SHARD_HEIGHT%3E"],[514,"impl-ShardStore-for-SqliteShardStore%3C%26Transaction%3C\'conn%3E,+H,+SHARD_HEIGHT%3E"],[515,"impl-ShardStore-for-SqliteShardStore%3CConnection,+H,+SHARD_HEIGHT%3E"],[516,"impl-ShardStore-for-SqliteShardStore%3C%26Transaction%3C\'conn%3E,+H,+SHARD_HEIGHT%3E"],[517,"impl-ShardStore-for-SqliteShardStore%3CConnection,+H,+SHARD_HEIGHT%3E"],[518,"impl-ShardStore-for-SqliteShardStore%3C%26Transaction%3C\'conn%3E,+H,+SHARD_HEIGHT%3E"],[519,"impl-ShardStore-for-SqliteShardStore%3CConnection,+H,+SHARD_HEIGHT%3E"],[520,"impl-ShardStore-for-SqliteShardStore%3CConnection,+H,+SHARD_HEIGHT%3E"],[521,"impl-ShardStore-for-SqliteShardStore%3C%26Transaction%3C\'conn%3E,+H,+SHARD_HEIGHT%3E"],[522,"impl-ShardStore-for-SqliteShardStore%3CConnection,+H,+SHARD_HEIGHT%3E"],[523,"impl-ShardStore-for-SqliteShardStore%3C%26Transaction%3C\'conn%3E,+H,+SHARD_HEIGHT%3E"],[530,"impl-ShardStore-for-SqliteShardStore%3CConnection,+H,+SHARD_HEIGHT%3E"],[531,"impl-ShardStore-for-SqliteShardStore%3C%26Transaction%3C\'conn%3E,+H,+SHARD_HEIGHT%3E"],[532,"impl-ShardStore-for-SqliteShardStore%3CConnection,+H,+SHARD_HEIGHT%3E"],[533,"impl-ShardStore-for-SqliteShardStore%3C%26Transaction%3C\'conn%3E,+H,+SHARD_HEIGHT%3E"],[534,"impl-ShardStore-for-SqliteShardStore%3C%26Transaction%3C\'conn%3E,+H,+SHARD_HEIGHT%3E"],[535,"impl-ShardStore-for-SqliteShardStore%3CConnection,+H,+SHARD_HEIGHT%3E"],[538,"impl-ShardStore-for-SqliteShardStore%3CConnection,+H,+SHARD_HEIGHT%3E"],[539,"impl-ShardStore-for-SqliteShardStore%3C%26Transaction%3C\'conn%3E,+H,+SHARD_HEIGHT%3E"],[540,"impl-ShardStore-for-SqliteShardStore%3CConnection,+H,+SHARD_HEIGHT%3E"],[541,"impl-ShardStore-for-SqliteShardStore%3C%26Transaction%3C\'conn%3E,+H,+SHARD_HEIGHT%3E"],[542,"impl-ShardStore-for-SqliteShardStore%3C%26Transaction%3C\'conn%3E,+H,+SHARD_HEIGHT%3E"],[543,"impl-ShardStore-for-SqliteShardStore%3CConnection,+H,+SHARD_HEIGHT%3E"],[546,"impl-ShardStore-for-SqliteShardStore%3CConnection,+H,+SHARD_HEIGHT%3E"],[547,"impl-ShardStore-for-SqliteShardStore%3C%26Transaction%3C\'conn%3E,+H,+SHARD_HEIGHT%3E"],[548,"impl-ShardStore-for-SqliteShardStore%3CConnection,+H,+SHARD_HEIGHT%3E"],[549,"impl-ShardStore-for-SqliteShardStore%3C%26Transaction%3C\'conn%3E,+H,+SHARD_HEIGHT%3E"],[556,"impl-ShardStore-for-SqliteShardStore%3CConnection,+H,+SHARD_HEIGHT%3E"],[557,"impl-ShardStore-for-SqliteShardStore%3C%26Transaction%3C\'conn%3E,+H,+SHARD_HEIGHT%3E"],[560,"impl-ShardStore-for-SqliteShardStore%3CConnection,+H,+SHARD_HEIGHT%3E"],[561,"impl-ShardStore-for-SqliteShardStore%3C%26Transaction%3C\'conn%3E,+H,+SHARD_HEIGHT%3E"],[591,"impl-Display-for-WalletMigrationError"],[592,"impl-Debug-for-WalletMigrationError"],[594,"impl-From%3CBalanceError%3E-for-WalletMigrationError"],[595,"impl-From%3CSqliteClientError%3E-for-WalletMigrationError"],[596,"impl-From%3CError%3E-for-WalletMigrationError"],[598,"impl-From%3CShardTreeError%3CError%3E%3E-for-WalletMigrationError"],[599,"impl-From%3CAddressGenerationError%3E-for-WalletMigrationError"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAOkBNgADAAMACgADABIAFQApAAAAKwBGAHQAAAB2AAYAiAAAAIoAAgCQAAMAlQAFAJwAIQDHABoA4wAAAOUADgD1ABsAEgEKAB4BAQAhAQMAJwERADoBAAA8AQAAPgEJAEoBAgBOAQgAWAEBAFsBBgCCAQ0AkQEDAJYBCQCiAQcAqwEAAK0BAQCwAQYAuAEHAMEBAADDAQEAxgEAAMgBBADOAQkA2QEAANsBAADdAQsA7QEAAO8BEQADAgsAEQInAEMCAABFAgwAUwICAFcCAwBfAgEAYgIBAGUCCQA=","P":[[17,"C,P,CL,R,WalletRead::Error"],[20,"T"],[22,""],[23,"T"],[40,"C,P,CL,R,WalletRead::Error"],[41,"C,P,CL,R"],[42,""],[46,"T"],[50,""],[56,"K"],[58,""],[59,"C,P,CL,R,WalletRead::AccountId,WalletRead::Error"],[60,""],[62,"T"],[80,""],[93,"K"],[114,""],[115,"C,P,CL,R,WalletRead::AccountId,WalletRead::Error"],[116,""],[124,"F,P,CL,R"],[125,"P"],[127,"T"],[135,""],[136,"T"],[137,""],[140,"C,P,CL,R"],[141,""],[143,"C,P,CL,R,WalletRead::AccountId,WalletRead::Account,WalletRead::Error"],[144,"C,P,CL,R,WalletRead::AccountId,WalletRead::Error"],[145,"C,P,CL,R,WalletRead::Account,WalletRead::Error"],[146,"C,P,CL,R,WalletRead::AccountId,WalletRead::Error"],[147,"C,P,CL,R,InputSource::AccountId,InputSource::NoteRef,InputSource::Error"],[148,"C,P,CL,R,WalletRead::AccountId,WalletRead::Error"],[149,"C,P,CL,R,WalletRead::Error"],[151,"C,P,CL,R,WalletRead::Account,WalletRead::Error"],[152,"C,P,CL,R,WalletRead::AccountId,WalletRead::Error"],[154,""],[155,"C,P,CL,R,WalletRead::Error"],[157,"C,P,CL,R,WalletRead::AccountId,WalletRead::Error"],[158,"C,P,CL,R,InputSource::NoteRef,InputSource::Error"],[159,"C,P,CL,R,WalletRead::AccountId,WalletRead::Error"],[161,"C,P,CL,R,WalletRead::Error"],[163,"C,P,CL,R,InputSource::NoteRef,InputSource::Error"],[164,"C,P,CL,R,InputSource::Error"],[165,"C,P,CL,R,WalletRead::Error"],[167,"C,P,CL,R,WalletRead::AccountId,WalletRead::Error"],[169,"C,P,CL,R,InputSource::Error"],[170,"C,P,CL,R,WalletRead::AccountId,WalletRead::Error"],[171,"C,P,CL,R,WalletRead::Error"],[172,"C,P,CL,R,WalletRead::AccountId,WalletRead::Error"],[174,"C,P,CL,R,InputSource::Error"],[175,"C,P,CL,R,WalletRead::Error"],[176,"C,P,CL,R,WalletRead::AccountId,WalletRead::Error"],[177,"__H"],[178,"C,P,CL,R,WalletRead::Account,WalletRead::Error"],[180,""],[189,"U"],[198,"T"],[207,"C,P,CL,R,WalletRead::AccountId,WalletRead::Error"],[208,"S"],[217,""],[219,"C,P,CL,R,WalletRead::AccountId,WalletRead::Error"],[220,"C,P,CL,R,WalletCommitmentTrees::Error"],[221,"P,CL,R,WalletCommitmentTrees::Error"],[222,"C,P,CL,R,WalletWrite::UtxoRef,WalletRead::Error"],[223,"C,P,CL,R,WalletCommitmentTrees::Error"],[224,"P,CL,R,WalletCommitmentTrees::Error"],[225,"C,P,CL,R"],[226,"C,P,CL,R,WalletRead::AccountId,WalletRead::Error"],[227,"C,P,CL,R"],[228,"C,P,CL,R,WalletRead::AccountId,WalletRead::Error"],[229,"C,P,CL,R,InputSource::AccountId,InputSource::NoteRef,InputSource::Error"],[230,"C,P,CL,R,WalletRead::Error"],[231,"C,P,CL,R,WalletRead::AccountId,WalletRead::Error"],[233,"C,P,CL,R,WalletRead::Error"],[234,"T"],[238,""],[240,"C,P,CL,R,WalletRead::Error"],[241,"C,P,CL,R,A,E,F"],[242,"C,P,CL,R,WalletRead::Error"],[243,""],[244,"U,T"],[253,"U"],[262,""],[271,"C,P,CL,R,WalletRead::Error"],[273,"C,P,CL,R,WalletRead::AccountId,WalletRead::Error"],[275,"V"],[285,"DbErrT,BlockSource::Error,F"],[287,"C,P,CL,R"],[288,"P,CL,R,A,WalletCommitmentTrees::Error,E,F"],[289,"C,P,CL,R,A,WalletCommitmentTrees::Error,E,F"],[290,"P,CL,R,A,E,F"],[291,"C,P,CL,R,A,WalletCommitmentTrees::Error,E,F"],[292,""],[294,"P"],[295,""],[297,"T"],[299,""],[300,"T"],[301,""],[302,"T"],[304,""],[306,"K"],[311,""],[312,"T"],[313,""],[316,"U"],[317,"T"],[319,"S"],[320,""],[322,"T"],[323,"U,T"],[324,"U"],[325,""],[326,"V"],[327,""],[334,"T"],[336,""],[337,"T"],[339,""],[340,"RusqliteMigration::Error"],[341,""],[342,"T"],[343,""],[345,"U"],[346,"T"],[347,"S"],[348,"U,T"],[349,"U"],[350,""],[351,"RusqliteMigration::Error"],[352,"V"],[385,"T"],[389,""],[399,"T"],[400,""],[404,"U"],[405,"T"],[406,"S"],[407,""],[409,"U,T"],[410,"U"],[411,""],[412,"V"],[413,""],[417,"T"],[419,""],[420,"T"],[421,""],[422,"T"],[424,""],[425,"T"],[426,""],[427,"U"],[428,"T"],[429,"S"],[430,""],[433,"T"],[434,"U,T"],[435,"U"],[436,""],[437,"V"],[439,"T"],[441,""],[442,"T"],[443,""],[444,"T"],[446,""],[447,"T"],[448,""],[449,"U"],[450,"T"],[451,"S"],[452,""],[455,"T"],[456,"U,T"],[457,"U"],[458,""],[459,"V"],[461,"T"],[463,""],[464,"T"],[465,""],[467,"T"],[469,""],[471,"T"],[472,""],[475,"U"],[476,"T"],[477,""],[478,"S"],[479,""],[481,"T"],[482,"U,T"],[483,"U"],[484,""],[487,"V"],[494,"H,ShardStore::CheckpointId,ShardStore::Error"],[496,"T"],[500,"H,ShardStore::Error"],[502,"T"],[506,""],[510,"H,ShardStore::CheckpointId,ShardStore::Error,F"],[512,"T"],[514,"H,ShardStore::H,ShardStore::Error"],[516,"H,ShardStore::CheckpointId,ShardStore::Error"],[520,"H,ShardStore::H,ShardStore::Error"],[522,"H,ShardStore::Error"],[524,""],[526,"U"],[528,"T"],[530,"H,ShardStore::H,ShardStore::Error"],[532,"H,ShardStore::CheckpointId,ShardStore::Error"],[536,"S"],[538,"H,ShardStore::H,ShardStore::Error"],[542,"H,ShardStore::CheckpointId,ShardStore::Error"],[544,""],[546,"H,ShardStore::CheckpointId,ShardStore::Error"],[548,"H,ShardStore::Error"],[550,"U,T"],[552,"U"],[554,""],[556,"H,ShardStore::CheckpointId,ShardStore::Error,F"],[558,"V"],[560,"H,ShardStore::CheckpointId,ShardStore::Error,F"],[562,""],[580,"T"],[584,""],[585,"T"],[589,""],[593,"T"],[594,""],[597,"T"],[598,""],[602,"C,P,CL,R"],[604,"U"],[606,"T"],[609,"S"],[611,""],[614,"U,T"],[616,"U"],[618,""],[620,"V"],[622,""]]}],["zcash_encoding",{"t":"FFSFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["Array","CompactSize","MAX_COMPACT_SIZE","Optional","Vector","borrow","","","","borrow_mut","","","","from","","","","into","","","","read","","","","read_collected","","read_collected_mut","","read_t","serialized_size","serialized_size_of_u8_vec","try_from","","","","try_into","","","","type_id","","","","write","","","","write_nonempty","write_sized"],"q":[[0,"zcash_encoding"],[50,"std::io::error"],[51,"std::io"],[52,"alloc::vec"],[53,"core::ops::function"],[54,"core::option"],[55,"core::iter::traits::collect"],[56,"core::convert"],[57,"core::result"],[58,"core::any"],[59,"nonempty"],[60,"core::iter::traits::iterator"],[61,"core::iter::traits::exact_size"]],"i":"`````CdCfChCj32103210321032102121332321032103210321022","f":"``{{}b}``{d{{d{c}}}{}}000{{{d{f}}}{{d{fc}}}{}}000{cc{}}000{{}c{}}000{c{{j{h}}}l}{{cg}{{j{{n{e}}}}}l{}{{Ab{{d{fc}}}{{A`{{j{e}}}}}}}}{{cAdg}{{j{{n{e}}}}}l{}{{Ab{{d{fc}}}{{A`{{j{e}}}}}}}}{{cg}{{j{{Af{e}}}}}l{}{{Ab{c}{{A`{{j{e}}}}}}}}{{cg}{{j{i}}}l{}{{Ab{{d{fc}}}{{A`{{j{e}}}}}}}{{Ah{e}}}}{{cAdg}{{j{i}}}l{}{{Ab{{d{fc}}}{{A`{{j{e}}}}}}}{{Ah{e}}}}{{cg}{{j{i}}}l{}{{Aj{{d{fc}}}{{A`{{j{e}}}}}}}{{Ah{e}}}}{{cAdg}{{j{i}}}l{}{{Aj{{d{fc}}}{{A`{{j{e}}}}}}}{{Ah{e}}}}{c{{j{e}}}l{{Al{h}}}}{AdAd}{{{d{{B`{An}}}}}Ad}{c{{Bb{e}}}{}{}}000{{}{{Bb{c}}}{}}000{dBd}000{{cAd}{{j{Bf}}}Bh}{{c{d{{B`{e}}}}g}{{j{Bf}}}Bh{}{{Ab{{d{fc}}{d{e}}}{{A`{{j{Bf}}}}}}}}{{cgi}{{j{Bf}}}Bh{}{{Bl{}{{Bj{e}}}}}{{Ab{{d{fc}}{d{e}}}{{A`{{j{Bf}}}}}}}}{{c{Af{e}}g}{{j{Bf}}}Bh{}{{Ab{ce}{{A`{{j{Bf}}}}}}}}{{c{d{{Bn{e}}}}g}{{j{Bf}}}Bh{}{{Ab{{d{fc}}{d{e}}}{{A`{{j{Bf}}}}}}}}{{cgi}{{j{Bf}}}Bh{}{{C`{}{{Bj{e}}}}Cb}{{Ab{{d{fc}}e}{{A`{{j{Bf}}}}}}}}","D":"Cn","p":[[1,"u32"],[1,"reference",null,null,1],[0,"mut"],[1,"u64"],[8,"Result",50,null,1],[10,"Read",51],[5,"Vec",52],[17,"Output"],[10,"Fn",53],[1,"usize"],[6,"Option",54,null,1],[10,"FromIterator",55],[10,"FnMut",53],[10,"TryFrom",56],[1,"u8"],[1,"slice"],[6,"Result",57,null,1],[5,"TypeId",58],[1,"unit"],[10,"Write",51],[17,"Item"],[10,"IntoIterator",55],[5,"NonEmpty",59],[10,"Iterator",60],[10,"ExactSizeIterator",61],[5,"CompactSize",0],[5,"Vector",0],[5,"Array",0],[5,"Optional",0]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAABMAAgAGAAcAIQALAA==","P":[[5,"T"],[17,"U"],[21,"R"],[22,"R,E,F"],[24,"R,T,F"],[25,"R,E,F,O"],[29,"R,T"],[30,""],[32,"U,T"],[36,"U"],[40,""],[44,"W"],[45,"W,E,F"],[46,"W,E,I,F"],[47,"W,T,F"],[48,"W,E,F"],[49,"W,E,I,F"]]}],["zcash_extensions",{"t":"","n":[],"q":[],"i":"","f":"","D":"`","p":[],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OjAAAAEAAAAAAAAAEAAAAAAA","P":[]}],["zcash_history",{"t":"FGGGPPPPSSPFRPFGGKNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNMNNONMNNOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNOMNNOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNN","n":["Entry","EntryKind","EntryLink","Error","ExpectedInMemory","ExpectedNode","Generated","Leaf","MAX_ENTRY_SIZE","MAX_NODE_DATA_SIZE","Node","NodeData","","Stored","Tree","V1","V2","Version","append_leaf","borrow","","","","","","","","borrow_mut","","","","","","","","clone","","clone_into","","clone_to_uninit","","combine","","","combine_inner","","","complete","consensus_branch_id","","","","default","end_height","","","","end_sapling_root","end_target","end_time","fmt","","","","","","","","from","","","","","","","","from_bytes","","","","hash","","","into","","","","","","","","is_empty","leaf","leaf_count","left","len","link_node_expected","new","","new_leaf","node_expected","read","","","","","resolve_link","right","root","root_node","sapling_tx","start_height","","","","start_sapling_root","start_target","start_time","subtree_commitment","subtree_total_work","to_bytes","","","to_owned","","to_string","","","truncate_leaf","try_from","","","","","","","","try_into","","","","","","","","type_id","","","","","","","","vzip","","","","","","","","write","","","",""],"q":[[0,"zcash_history"],[166,"zcash_history::tree"],[167,"alloc::vec"],[168,"core::result"],[169,"zcash_history::version"],[170,"zcash_history::node_data"],[171,"zcash_history::entry"],[172,"core::fmt"],[173,"std::io::error"],[174,"core::convert"],[175,"std::io"],[176,"primitive_types"],[177,"alloc::string"],[178,"core::any"]],"i":"````n0jBj``0`Ab2````f0CnD`AlAd8764321087607070755053215320053200001108877643210876551055043210876411148411853210414405320000005500718744321087643210876432108764321087653210","f":"````````{{}b}0````````{{{h{d{f{c}}}}}{{A`{{l{j}}n}}}Ab}{h{{h{c}}}{}}0000000{{{h{d}}}{{h{dc}}}{}}0000000{{{h{Ad}}}Ad}{{{h{j}}}j}{{h{h{dc}}}Af{}}0{{hAh}Af}0{{{h{c}}{h{c}}}c{}}0{{{h{Ad}}{h{Ad}}}Ad}{{{Aj{Ah}}{h{c}}{h{c}}}c{}}00{{{h{{Al{c}}}}}AnAb}{{{h{c}}}B`{}}00{AdB`}{{}Ad}{{{h{c}}}Bb{}}00{AdBb}{AdAj}44{{{h{{Al{c}}}}{h{dBd}}}BfAb}{{{h{{Al{c}}}}{h{dBd}}}Bf{BhAb}}{{{h{Ad}}{h{dBd}}}Bf}{{{h{n}}{h{dBd}}}Bf}0{{{h{j}}{h{dBd}}}Bf}0{{{h{Bj}}{h{dBd}}}Bf}{cc{}}0000000{{B`c}{{Bl{e}}}{{C`{{Bn{Ah}}}}}{}}0{{B`c}{{Bl{{Al{e}}}}}{{C`{{Bn{Ah}}}}}Ab}{{B`c}{{Bl{Ad}}}{{C`{{Bn{Ah}}}}}}{{{h{c}}}{{Aj{Ah}}}{}}0{{{h{Ad}}}{{Aj{Ah}}}}{{}c{}}0000000{{{h{{f{c}}}}}AnAb}{{{h{{Al{c}}}}}AnAb}{{{h{{Al{c}}}}}BbAb}{{{h{{Al{c}}}}}{{A`{jn}}}Ab}{{{h{{f{c}}}}}B`Ab}{jn}{{B`{l{{Cb{B`{Al{c}}}}}}{l{{Cb{B`{Al{c}}}}}}}{{f{c}}}Ab}{{jj}{{Al{c}}}Ab}{{}{{Al{c}}}Ab}{{}n}{{B`{h{dc}}}{{Bl{e}}}Cd{}}00{{B`{h{dc}}}{{Bl{{Al{e}}}}}CdAb}{{B`{h{dc}}}{{Bl{Ad}}}Cd}{{{h{{f{c}}}}j}{{A`{{`{c}}n}}}Ab}:{{{h{{f{c}}}}}jAb}{{{h{{f{c}}}}}{{A`{{`{c}}n}}}Ab}{AdBb}{{{h{c}}}Bb{}}001{AdAj}{AdB`}01{AdCf}{{{h{c}}}{{l{Ah}}}{}}0{{{h{Ad}}}{{l{Ah}}}}{hc{}}0{hCh}00{{{h{d{f{c}}}}}{{A`{B`n}}}Ab}{c{{A`{e}}}{}{}}0000000{{}{{A`{c}}}{}}0000000{hCj}0000000{{}c{}}0000000{{{h{c}}{h{de}}}{{Bl{Af}}}{}Cl}00{{{h{{Al{c}}}}{h{de}}}{{Bl{Af}}}AbCl}{{{h{Ad}}{h{dc}}}{{Bl{Af}}}Cl}","D":"Jn","p":[[1,"usize"],[0,"mut"],[5,"Tree",0,166],[1,"reference",null,null,1],[6,"EntryLink",0],[5,"Vec",167],[6,"Error",0],[6,"Result",168,null,1],[10,"Version",0,169],[5,"NodeData",0,170],[1,"unit"],[1,"u8"],[1,"array"],[5,"Entry",0,171],[1,"bool"],[1,"u32"],[1,"u64"],[5,"Formatter",172],[8,"Result",172],[10,"Debug",172],[6,"EntryKind",0],[8,"Result",173,null,1],[1,"slice"],[10,"AsRef",174],[1,"tuple",null,null,1],[10,"Read",175],[5,"U256",176],[5,"String",177],[5,"TypeId",178],[10,"Write",175],[6,"V1",0],[6,"V2",0]],"r":[[0,171],[8,171],[9,170],[11,170],[12,169],[14,166],[15,169],[16,169],[17,169],[18,166],[19,166],[22,171],[23,170],[27,166],[30,171],[31,170],[35,170],[37,170],[39,170],[41,169],[42,169],[43,170],[44,169],[47,171],[48,169],[51,170],[52,170],[53,169],[56,170],[57,170],[58,170],[59,170],[60,171],[61,171],[62,170],[68,166],[71,171],[72,170],[76,169],[77,169],[78,171],[79,170],[80,169],[81,169],[82,170],[83,166],[86,171],[87,170],[91,166],[92,171],[93,171],[94,171],[95,166],[97,166],[98,171],[99,171],[101,169],[104,171],[105,170],[106,166],[107,171],[108,166],[109,166],[110,170],[111,169],[114,170],[115,170],[116,170],[117,170],[118,170],[119,170],[120,169],[121,169],[122,170],[123,170],[125,171],[128,166],[129,166],[132,171],[133,170],[137,166],[140,171],[141,170],[145,166],[148,171],[149,170],[153,166],[156,171],[157,170],[161,169],[164,171],[165,170]],"b":[[60,"impl-Display-for-Entry%3CV%3E"],[61,"impl-Debug-for-Entry%3CV%3E"],[63,"impl-Display-for-Error"],[64,"impl-Debug-for-Error"],[65,"impl-Display-for-EntryLink"],[66,"impl-Debug-for-EntryLink"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAE8ACwAUABUALgABADIAAQA1AAAANwABAD0ABwBnAAEAcQABAHwABACCAB8AowABAA==","P":[[18,"V"],[19,"T"],[35,""],[37,"T"],[39,""],[41,"Version::NodeData"],[43,""],[44,"Version::NodeData"],[47,"V"],[48,"Version::NodeData"],[51,""],[53,"Version::NodeData"],[56,""],[60,"V"],[62,""],[68,"T"],[76,"T,Version::NodeData"],[78,"T,V"],[79,"T"],[80,"Version::NodeData"],[82,""],[83,"U"],[91,"V"],[96,""],[97,"V"],[100,""],[101,"R,Version::NodeData"],[104,"R,V"],[105,"R"],[106,"V"],[110,""],[111,"Version::NodeData"],[114,""],[120,"Version::NodeData"],[122,""],[123,"T"],[125,""],[128,"V"],[129,"U,T"],[137,"U"],[145,""],[153,"V"],[161,"Version::NodeData,W"],[164,"V,W"],[165,"W"]]}],["zcash_keys",{"t":"CCCGPGPPPPPPFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNHHKPGPRPPPGPNNNNNNNMHHHHHNNNNNNMHHHHHHNNNNNNNNNNNNNNNNNNNNNNNNOOTTGPPPGGPGPPPPPPPPPPPPPGFPPPPPGFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNONNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNH","n":["address","encoding","keys","Address","Orchard","Receiver","Sapling","","Tex","Transparent","","Unified","UnifiedAddress","borrow","","","borrow_mut","","","can_receive_as","clone","","clone_into","","clone_to_uninit","","corresponds","decode","","deref","","","deref_mut","","","drop","","","encode","","","eq","","fmt","","from","","","","","","from_receivers","has_orchard","has_sapling","has_transparent","init","","","into","","","orchard","receiver_types","sapling","testing","to_owned","","to_transparent_address","to_zcash_address","","transparent","try_from","","","","try_from_raw_sapling","try_from_raw_tex","try_from_raw_transparent_p2pkh","try_from_raw_transparent_p2sh","try_from_raw_unified","try_from_zcash_address","try_into","","","type_id","","","unknown","vzip","","","arb_addr","arb_unified_addr","AddressCodec","Base58","Bech32DecodeError","Bech32Error","Error","Hrp","HrpMismatch","ReadError","TransparentCodecError","UnsupportedAddressType","borrow","","borrow_mut","","clone","clone_into","clone_to_uninit","decode","decode_extended_full_viewing_key","decode_extended_spending_key","decode_extfvk_with_network","decode_payment_address","decode_transparent_address","deref","","deref_mut","","drop","","encode","encode_extended_full_viewing_key","encode_extended_spending_key","encode_payment_address","encode_payment_address_p","encode_transparent_address","encode_transparent_address_p","eq","fmt","","","","from","","","","init","","into","","to_owned","to_string","","try_from","","try_into","","type_id","","vzip","","actual","expected","ALLOW_ALL","","AddressGenerationError","AllAvailableKeys","Allow","Custom","DecodingError","DerivationError","DiversifierSpaceExhausted","Era","EraInvalid","EraMismatch","InsufficientData","InvalidSaplingDiversifierIndex","InvalidTransparentChildIndex","KeyDataInvalid","KeyNotAvailable","LengthInvalid","LengthMismatch","Omit","Orchard","","ReadError","ReceiverRequirement","ReceiverRequirements","ReceiverTypeNotSupported","Require","ShieldedReceiverRequired","Transparent","TypecodeInvalid","UnifiedAddressRequest","UnifiedFullViewingKey","UnifiedIncomingViewingKey","UnifiedSpendingKey","address","","borrow","","","","","","","","","","borrow_mut","","","","","","","","","","clone","","","","","","","clone_into","","","","","","","clone_to_uninit","","","","","","","custom","decode","","default_address","","","default_transparent_address","deref","","","","","","","","","","deref_mut","","","","","","","","","","drop","","","","","","","","","","encode","","eq","","","find_address","","fmt","","","","","","","","","","","","","from","","","","","","","","","","","from_bytes","from_sapling_extended_full_viewing_key","from_seed","has_orchard","has_sapling","has_transparent","init","","","","","","","","","","intersect","","into","","","","","","","","","","new","","","orchard","","","","p2pkh","parse","receiver_requirements","sapling","","","","","testing","to_bytes","to_owned","","","","","","","to_receiver_requirements","to_string","","","to_unified_full_viewing_key","to_unified_incoming_viewing_key","transparent","","","try_from","","","","","","","","","","try_into","","","","","","","","","","type_id","","","","","","","","","","unsafe_custom","unsafe_new","vzip","","","","","","","","","","DiversifiableFullViewingKey","ExtendedFullViewingKey","ExtendedSpendingKey","address","","borrow","","","borrow_mut","","","change_address","clone","","","clone_into","","","clone_to_uninit","","","decrypt_diversifier","default_address","","","deref","","","deref_mut","","","derive_child","derive_internal","","diversified_address","diversified_change_address","drop","","","eq","","expsk","find_address","","fmt","","","from","","","","","from_bytes","","from_path","fvk","","init","","","into","","","master","read","","spending_key","to_bytes","","to_diversifiable_full_viewing_key","","to_extended_full_viewing_key","to_external_ivk","to_internal_fvk","to_ivk","to_nk","to_ovk","to_owned","","","try_from","","","try_into","","","type_id","","","vzip","","","write","","arb_unified_spending_key"],"q":[[0,"zcash_keys"],[3,"zcash_keys::address"],[91,"zcash_keys::address::testing"],[93,"zcash_keys::encoding"],[153,"zcash_keys::encoding::Bech32DecodeError"],[155,"zcash_keys::keys"],[403,"zcash_keys::keys::sapling"],[497,"zcash_keys::keys::testing"],[498,"zcash_protocol"],[499,"zcash_address"],[500,"alloc::string"],[501,"core::result"],[502,"zcash_protocol::consensus"],[503,"core::option"],[504,"core::fmt"],[505,"zcash_transparent::address"],[506,"sapling_crypto::address"],[507,"orchard::address"],[508,"zcash_address::kind::unified"],[509,"alloc::vec"],[510,"zcash_address::kind::unified::address"],[511,"zcash_address::convert"],[512,"core::any"],[513,"proptest::strategy::traits"],[514,"sapling_crypto::zip32"],[515,"bs58::decode"],[516,"bech32::primitives::decode"],[517,"bech32"],[518,"zip32"],[519,"zcash_transparent::keys"],[520,"bip32::error"],[521,"orchard::keys"],[522,"zcash_address::kind::unified::fvk"],[523,"sapling_crypto::keys"],[524,"std::io::error"],[525,"std::io"]],"i":"````Ab`0f0100`1l1201101010120120120120100101012011110000201201000`01121020011111112012010201```Ed`DhDl111`212121110`````1212120``````111221112121211212121212Ej0D`Fh`1Ff2``F``Fn001101002G`Fl2``34312````ElFb324Fd67982143506798210679821067982106798219210210435067982143506798214350679821213572144355066798214435067982102011143506798217843506798218210821821`0821`00679821145602021435067982143506798214350679821984350679821```DnGhE`210211021021021102102102100211021020210210211101012021021002`010201111102102102102102102`","f":"`````````````{b{{b{c}}}{}}00{{{b{d}}}{{b{dc}}}{}}00{{{b{f}}h}j}{{{b{l}}}l}{{{b{f}}}f}{{b{b{dc}}}n{}}0{{bA`}n}0{{{b{Ab}}{b{Ad}}}j}{{{b{c}}{b{Af}}}{{Aj{lAh}}}Al}{{{b{c}}{b{Af}}}{{An{f}}}Al}{B`{{b{c}}}{}}00{B`{{b{dc}}}{}}00{B`n}00{{{b{l}}{b{c}}}AhAl}0{{{b{f}}{b{c}}}AhAl}{{{b{l}}{b{l}}}j}{{{b{f}}{b{f}}}j}{{{b{l}}{b{dBb}}}Bd}{{{b{f}}{b{dBb}}}Bd}{cc{}}0{Bff}1{lf}{Bhf}{{{An{Bj}}{An{Bh}}{An{Bf}}}{{An{l}}}}{{{b{l}}}j}00{{}B`}00{{}c{}}00{{{b{l}}}{{An{{b{Bj}}}}}}{{{b{l}}}{{Bn{Bl}}}}{{{b{l}}}{{An{{b{Bh}}}}}}`{bc{}}0{{{b{f}}}{{An{Bf}}}}{{{b{Ab}}C`}Ad}{{{b{f}}{b{c}}}AdAl}{{{b{l}}}{{An{{b{Bf}}}}}}{c{{Aj{e}}}{}{}}{Cb{{Aj{lc}}}{}}11{{{Cd{A`}}}{{Aj{f{Cf{c}}}}}{}}000{Cb{{Aj{f{Cf{c}}}}}{}}{{{b{c}}Ad}{{Aj{f{Cf{{b{Af}}}}}}}Al}{{}{{Aj{c}}}{}}00{bCh}00{{{b{l}}}{{b{{Cn{{Cl{Cj{Bn{A`}}}}}}}}}}{{}c{}}00{D`{{`{{Dd{}{{Db{f}}}}}}}}{{DfD`}{{`{{Dd{}{{Db{l}}}}}}}}``````````{b{{b{c}}}{}}0{{{b{d}}}{{b{dc}}}{}}0{{{b{Dh}}}Dh}{{b{b{dc}}}n{}}{{bA`}n}{{{b{c}}{b{Af}}}{{Aj{{Dl{}{{Dj{e}}}}e}}}{}{}}{{{b{Af}}{b{Af}}}{{Aj{DnDh}}}}{{{b{Af}}{b{Af}}}{{Aj{E`Dh}}}}{{{b{Af}}}{{Aj{{Cl{C`Dn}}Dh}}}}{{{b{Af}}{b{Af}}}{{Aj{BhDh}}}}{{{b{{Cn{A`}}}}{b{{Cn{A`}}}}{b{Af}}}{{Aj{{An{Bf}}Eb}}}}{B`{{b{c}}}{}}0{B`{{b{dc}}}{}}0{B`n}0{{{b{{Dl{}{{Dj{c}}}}}}{b{e}}}Ah{}{}}{{{b{Af}}{b{Dn}}}Ah}{{{b{Af}}{b{E`}}}Ah}{{{b{Af}}{b{Bh}}}Ah}{{{b{c}}{b{Bh}}}AhAl}{{{b{{Cn{A`}}}}{b{{Cn{A`}}}}{b{Bf}}}Ah}{{{b{c}}{b{Bf}}}AhAl}{{{b{Dh}}{b{Dh}}}j}{{{b{Dh}}{b{dBb}}}Bd}0{{{b{Ed}}{b{dBb}}}Bd}0{cc{}}{EfDh}{EhDh}2{{}B`}0{{}c{}}0{bc{}}{bAh}0{c{{Aj{e}}}{}{}}0{{}{{Aj{c}}}{}}0{bCh}0{{}c{}}0{EjAh}0``````````````````````````````````{{{b{El}}EnD`}{{Aj{lF`}}}}{{{b{Fb}}EnD`}{{Aj{lF`}}}}{b{{b{c}}}{}}000000000{{{b{d}}}{{b{dc}}}{}}000000000{{{b{Fd}}}Fd}{{{b{F`}}}F`}{{{b{Ff}}}Ff}{{{b{D`}}}D`}{{{b{Fh}}}Fh}{{{b{El}}}El}{{{b{Fb}}}Fb}{{b{b{dc}}}n{}}000000{{bA`}n}000000{{FfFfFf}{{Aj{D`n}}}}{{{b{c}}{b{Af}}}{{Aj{ElAh}}}Al}{{{b{c}}{b{Af}}}{{Aj{FbAh}}}Al}{{{b{Fd}}D`}{{Cl{lEn}}}}{{{b{El}}D`}{{Aj{{Cl{lEn}}F`}}}}{{{b{Fb}}D`}{{Aj{{Cl{lEn}}F`}}}}{{{b{Fd}}}{{Cl{BfFj}}}}{B`{{b{c}}}{}}000000000{B`{{b{dc}}}{}}000000000{B`n}000000000{{{b{El}}{b{c}}}AhAl}{{{b{Fb}}{b{c}}}AhAl}{{{b{Fl}}{b{Fl}}}j}{{{b{Fn}}{b{Fn}}}j}{{{b{Ff}}{b{Ff}}}j}{{{b{El}}EnD`}{{Aj{{Cl{lEn}}F`}}}}{{{b{Fb}}EnD`}{{Aj{{Cl{lEn}}F`}}}}{{{b{G`}}{b{dBb}}}Bd}0{{{b{Fl}}{b{dBb}}}Bd}{{{b{Fn}}{b{dBb}}}Bd}0{{{b{Fd}}{b{dBb}}}Bd}{{{b{F`}}{b{dBb}}}Bd}0{{{b{Ff}}{b{dBb}}}Bd}{{{b{D`}}{b{dBb}}}Bd}{{{b{Fh}}{b{dBb}}}Bd}{{{b{El}}{b{dBb}}}Bd}{{{b{Fb}}{b{dBb}}}Bd}{cc{}}{GbG`}111111111{{Fl{b{{Cn{A`}}}}}{{Aj{FdFn}}}}{Dn{{Aj{ElG`}}}}{{{b{c}}{b{{Cn{A`}}}}Gd}{{Aj{FdG`}}}Al}{{{b{Fb}}}j}00{{}B`}000000000{{FfFf}{{Aj{Ffn}}}}{{{b{Fh}}{b{Fh}}}{{Aj{Fhn}}}}{{}c{}}000000000{{FfFfFf}{{Aj{Fhn}}}}{{{An{Gf}}{An{Gh}}{An{Gj}}}{{Aj{ElG`}}}}{{{An{Gl}}{An{Gn}}{An{H`}}}Fb}{{{b{Fd}}}{{b{Hb}}}}{{{b{Fh}}}Ff}{{{b{El}}}{{An{{b{Gj}}}}}}{{{b{Fb}}}{{b{{An{H`}}}}}}2{{{b{Hd}}}{{Aj{ElFn}}}}{{{b{Fb}}D`}{{Aj{FhF`}}}}`{{{b{Fd}}}{{b{E`}}}}5{{{b{El}}}{{An{{b{Gh}}}}}}{{{b{Fb}}}{{b{{An{Gn}}}}}}`{{{b{Fd}}Fl}{{Bn{A`}}}}{bc{}}000000{{{b{Fb}}}{{Aj{Fhn}}}}{bAh}00{{{b{Fd}}}El}{{{b{El}}}Fb}{{{b{Fd}}}{{b{Hf}}}}{{{b{El}}}{{An{{b{Gf}}}}}}{{{b{Fb}}}{{b{{An{Gl}}}}}}{c{{Aj{e}}}{}{}}000000000{{}{{Aj{c}}}{}}000000000{bCh}000000000{{FfFfFf}D`}{{FfFfFf}Fh}{{}c{}}000000000```{{{b{Dn}}En}{{An{Bh}}}}{{{b{Gh}}En}{{An{Bh}}}}{b{{b{c}}}{}}00{{{b{d}}}{{b{dc}}}{}}00{{{b{Gh}}}{{Cl{EnBh}}}}{{{b{E`}}}E`}{{{b{Dn}}}Dn}{{{b{Gh}}}Gh}{{b{b{dc}}}n{}}00{{bA`}n}00{{{b{Gh}}{b{Bh}}}{{An{{Cl{EnHh}}}}}}{{{b{E`}}}{{Cl{EnBh}}}}{{{b{Dn}}}{{Cl{EnBh}}}}8{B`{{b{c}}}{}}00{B`{{b{dc}}}{}}00{{{b{E`}}Hj}E`}:9{{{b{Gh}}Hl}{{An{Bh}}}}0{B`n}00{{{b{E`}}{b{E`}}}j}{{{b{Dn}}{b{Dn}}}j}{E`Hn}{{{b{Dn}}En}{{An{{Cl{EnBh}}}}}}{{{b{Gh}}En}{{An{{Cl{EnBh}}}}}}{{{b{E`}}{b{dBb}}}{{Aj{nI`}}}}{{{b{Dn}}{b{dBb}}}{{Aj{nI`}}}}{{{b{Gh}}{b{dBb}}}{{Aj{nI`}}}}{cc{}}0{DnGh}{{{b{Dn}}}Gh}2{{{b{{Cn{A`}}}}}{{Aj{E`Ib}}}}{{{b{{Cd{A`}}}}}{{An{Gh}}}}{{{b{E`}}{b{{Cn{Hj}}}}}E`}{{{b{Gh}}}{{b{Id}}}}{DnId}{{}B`}00{{}c{}}00{{{b{{Cn{A`}}}}}E`}{c{{Aj{E`If}}}Ih}{c{{Aj{DnIf}}}Ih}{{{b{{Cn{A`}}}}CjGd}E`}{{{b{E`}}}{{Cd{A`}}}}{{{b{Gh}}}{{Cd{A`}}}}{{{b{E`}}}Gh}>{{{b{E`}}}Dn}{{{b{Gh}}}Gn}{{{b{Gh}}}Id}{{{b{Gh}}Hh}Ij}{{{b{Gh}}Hh}Il}{{{b{Gh}}Hh}In}{bc{}}00{c{{Aj{e}}}{}{}}00{{}{{Aj{c}}}{}}00{bCh}00{{}c{}}00{{{b{E`}}c}{{Aj{nIf}}}J`}{{{b{Dn}}c}{{Aj{nIf}}}J`}{Df{{`{{Dd{}{{Db{Fd}}}}}}}}","D":"AE`","p":[[1,"reference",null,null,1],[0,"mut"],[6,"Address",3],[6,"PoolType",498],[1,"bool"],[5,"UnifiedAddress",3],[1,"unit"],[1,"u8"],[6,"Receiver",3],[5,"ZcashAddress",499],[1,"str"],[5,"String",500],[6,"Result",501,null,1],[10,"Parameters",502],[6,"Option",503,null,1],[1,"usize"],[5,"Formatter",504],[8,"Result",504],[6,"TransparentAddress",505],[5,"PaymentAddress",506],[5,"Address",507],[6,"Typecode",508],[5,"Vec",509],[6,"NetworkType",502],[5,"Address",510],[1,"array"],[6,"ConversionError",511],[5,"TypeId",512],[1,"u32"],[1,"tuple",null,null,1],[1,"slice"],[6,"UnifiedAddressRequest",155],[17,"Value"],[10,"Strategy",513],[6,"Network",502],[6,"Bech32DecodeError",93],[17,"Error"],[10,"AddressCodec",93],[5,"ExtendedFullViewingKey",403,514],[5,"ExtendedSpendingKey",403,514],[6,"Error",515],[6,"TransparentCodecError",93],[6,"CheckedHrpstringError",516],[6,"DecodeError",517],[15,"HrpMismatch",153],[5,"UnifiedFullViewingKey",155],[5,"DiversifierIndex",518],[6,"AddressGenerationError",155],[5,"UnifiedIncomingViewingKey",155],[5,"UnifiedSpendingKey",155],[6,"ReceiverRequirement",155],[5,"ReceiverRequirements",155],[5,"NonHardenedChildIndex",519],[6,"Era",155],[6,"DecodingError",155],[6,"DerivationError",155],[6,"Error",520],[5,"AccountId",518],[5,"AccountPubKey",519],[5,"DiversifiableFullViewingKey",403,514],[5,"FullViewingKey",521],[5,"ExternalIvk",519],[5,"IncomingViewingKey",514],[5,"IncomingViewingKey",521],[5,"SpendingKey",521],[5,"Ufvk",522],[5,"AccountPrivKey",519],[6,"Scope",518],[5,"ChildIndex",518],[5,"Diversifier",523],[5,"ExpandedSpendingKey",523],[5,"Error",504],[6,"DecodingError",523],[5,"FullViewingKey",523],[5,"Error",524],[10,"Read",525],[5,"SaplingIvk",523],[5,"NullifierDerivingKey",523],[5,"OutgoingViewingKey",523],[10,"Write",525]],"r":[[403,514],[404,514],[405,514],[406,514],[407,514],[408,514],[409,514],[410,514],[411,514],[412,514],[413,514],[414,514],[415,514],[416,514],[417,514],[418,514],[419,514],[420,514],[421,514],[422,514],[423,514],[424,514],[425,514],[426,514],[427,514],[428,514],[429,514],[430,514],[431,514],[432,514],[433,514],[434,514],[435,514],[436,514],[437,514],[438,514],[439,514],[440,514],[441,514],[442,514],[443,514],[444,514],[445,514],[446,514],[447,514],[448,514],[449,514],[450,514],[451,514],[452,514],[453,514],[454,514],[455,514],[456,514],[457,514],[458,514],[459,514],[460,514],[461,514],[462,514],[463,514],[464,514],[465,514],[466,514],[467,514],[468,514],[470,514],[471,514],[472,514],[473,514],[474,514],[475,514],[476,514],[477,514],[478,514],[479,514],[480,514],[481,514],[482,514],[483,514],[484,514],[485,514],[486,514],[487,514],[488,514],[489,514],[490,514],[491,514],[492,514],[493,514],[494,514],[495,514],[496,514]],"b":[[38,"impl-AddressCodec%3CP%3E-for-UnifiedAddress"],[39,"impl-UnifiedAddress"],[47,"impl-From%3CTransparentAddress%3E-for-Address"],[49,"impl-From%3CUnifiedAddress%3E-for-Address"],[50,"impl-From%3CPaymentAddress%3E-for-Address"],[130,"impl-Display-for-Bech32DecodeError"],[131,"impl-Debug-for-Bech32DecodeError"],[132,"impl-Debug-for-TransparentCodecError"],[133,"impl-Display-for-TransparentCodecError"],[135,"impl-From%3CCheckedHrpstringError%3E-for-Bech32DecodeError"],[136,"impl-From%3CDecodeError%3E-for-Bech32DecodeError"],[276,"impl-Display-for-DerivationError"],[277,"impl-Debug-for-DerivationError"],[279,"impl-Display-for-DecodingError"],[280,"impl-Debug-for-DecodingError"],[282,"impl-Display-for-AddressGenerationError"],[283,"impl-Debug-for-AddressGenerationError"],[452,"impl-From%3CExtendedFullViewingKey%3E-for-DiversifiableFullViewingKey"],[453,"impl-From%3C%26ExtendedFullViewingKey%3E-for-DiversifiableFullViewingKey"]],"c":"OjAAAAEAAAAAAAAAEAAAANsB","e":"OzAAAAEAAEoBOAAFAAAABwAAAAoAAAAOAAUAFQAFABwAAAAeAAkAKgADADAAAAAyAAEAOAACAEEAAgBIAAgAUgAFAFkABABfAA8AdQAFAIIABACIAAEAiwABAI8ADACfAAAAoQAAAKMAAACmAAIArQABALAAAACyAAAAuAABAMAAKQDsAAAA7wAeABABAgAVAQwAIwEAAC4BAQAzAQkAUwEAAFgBAABaAQYAYgEDAGoBHgCKAQkAlQEAAJkBBQCgAQgArQEFALgBBQDAAQIAxQEBAMwBAwDTAQAA1QEAANkBAgDhAQ4A8QEBAA==","P":[[13,"T"],[19,""],[22,"T"],[24,""],[27,"P"],[29,"T"],[35,""],[38,"P"],[41,""],[45,"T"],[47,""],[48,"T"],[49,""],[58,"U"],[61,""],[65,"T"],[67,""],[69,"P"],[70,""],[71,"U,T"],[72,"TryFrom::Error"],[73,"U,T"],[75,"TryFromRawAddress::Error"],[80,"P"],[81,"U"],[84,""],[88,"V"],[91,""],[103,"T"],[107,""],[108,"T"],[109,""],[110,"P,AddressCodec::Error"],[111,""],[116,"T"],[120,""],[122,"AddressCodec::Error,P"],[123,""],[126,"P"],[127,""],[128,"P"],[129,""],[134,"T"],[135,""],[137,"T"],[138,""],[140,"U"],[142,"T"],[143,""],[145,"U,T"],[147,"U"],[149,""],[151,"V"],[153,""],[191,"T"],[211,""],[218,"T"],[225,""],[233,"P"],[235,""],[239,"T"],[259,""],[269,"P"],[271,""],[289,"T"],[290,""],[291,"T"],[300,""],[302,"P"],[303,""],[318,"U"],[328,""],[345,"T"],[352,""],[361,"U,T"],[371,"U"],[381,""],[393,"V"],[406,""],[408,"T"],[414,""],[418,"T"],[421,""],[428,"T"],[434,""],[450,"T"],[452,""],[454,"T"],[455,""],[463,"U"],[466,""],[467,"R"],[469,""],[480,"T"],[483,"U,T"],[486,"U"],[489,""],[492,"V"],[495,"W"],[497,""]]}],["zcash_primitives",{"t":"CCCCCCCCFFFONNNNNNNNNNNNNNNNNNNNNNEONNNNNNNNNNNNNNNOOONOONNNNNNNNNNNNONNNNFPPGPPSPPSPFPGKGGPPPPPPKPPPPSPFPSMNNNNMNNNNMNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNMNNNNMNNNNMNNNNMNNNNMNNNNMNNNNNNNNNNNNNNNNNNNMNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHHCCCSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSPFPGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNCNNNNNNNNNNNNNFFTTFFFTKFFTFFFFTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHPPGPPGFPFPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKHMHHHHHHHHCMHHHHHHHKFRGRPRRPPRRPFFKRRFFFGFFPNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNMCNNNNNNNNNNNNNNNNNNNNNNNMMMMNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNONNNNNNNNNNNNNNNOOONOONNNNONOCCCNNNNCNNNNNNNONNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNPGFFPPPSGPGPPPPPPFFFPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNONNONOOONNNONNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNOOISEIIIIICCOCOOOCCOIISIPPCHHHSSSKMMHHHHHHHHHHCHHHHHHHHHKMMMMHHHHHHHCHHFFNNNNNNNNNNNNNNNNNNNNNNNNOOONNNNNNNNNNNNNNKFFFKFRFFNONNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNMNNNNCONNNNNOOOCNNNNNNNNNNNNNNNNNNNNNNNNNONOONNNNNNNNNGPPPFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFPPPPPPPPPFFGGGGFPPPFGGPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNSHHHHHRKMCCCFNNNNNNNNNNNNNNNNNNNNGKPKTPNNNNNMNNNNNNNNMMNNNNNNMNPGFSSSPSSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNSSSSSPIGFPNNNNNNNNNNNNNNNNNNHNNNNNNNNHHHHHHFFNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNCFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFFPPTGFTCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNTKFTNNNNNNNNNNNNNNNNNNNNNNPGFFPPNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["block","consensus","constants","legacy","memo","merkle_tree","transaction","zip32","BlockHash","BlockHeader","BlockHeaderData","bits","borrow","","","borrow_mut","","","clone","clone_into","clone_to_uninit","deref","","","","deref_mut","","","drop","","","dynamic_usage","dynamic_usage_bounds","eq","equihash","final_sapling_root","fmt","","freeze","from","","","from_slice","hash","","init","","","into","","","merkle_root","nonce","prev_block","read","solution","time","to_owned","to_string","try_from","","","try_from_slice","try_into","","","type_id","","","version","vzip","","","write","BlockHeight","Blossom","","BranchId","Canopy","","H0","Heartwood","","MAIN_NETWORK","Main","MainNetwork","","Network","NetworkConstants","NetworkType","NetworkUpgrade","Nu5","","Nu6","","Overwinter","","Parameters","Regtest","Sapling","","Sprout","TEST_NETWORK","Test","TestNetwork","","ZIP212_GRACE_PERIOD","activation_height","","","","add","b58_pubkey_address_prefix","","","","","b58_script_address_prefix","","","","","b58_sprout_address_prefix","","","","","borrow","","","","","","","borrow_mut","","","","","","","clone","","","","","","","clone_into","","","","","","","clone_to_uninit","","","","","","","cmp","coin_type","","","","","deref","","","","","","","deref_mut","","","","","","","drop","","","","","","","dynamic_usage","","","","","","","dynamic_usage_bounds","","","","","","","eq","","","","","","","fmt","","","","","","","","","for_height","from","","","","","","","","from_u32","from_u64","hash","","","height_bounds","height_range","hrp_sapling_extended_full_viewing_key","","","","","hrp_sapling_extended_spending_key","","","","","hrp_sapling_payment_address","","","","","hrp_tex_address","","","","","hrp_unified_address","","","","","hrp_unified_fvk","","","","","hrp_unified_ivk","","","","","init","","","","","","","into","","","","","","","is_nu_active","network_type","","","","partial_cmp","saturating_sub","sprout_uses_groth_proofs","sub","","testing","to_owned","","","","","","","to_string","","try_from","","","","","","","","","","","try_into","","","","","","","type_id","","","","","","","vzip","","","","","","","arb_branch_id","arb_height","mainnet","regtest","testnet","B58_PUBKEY_ADDRESS_PREFIX","B58_SCRIPT_ADDRESS_PREFIX","B58_SPROUT_ADDRESS_PREFIX","COIN_TYPE","HRP_SAPLING_EXTENDED_FULL_VIEWING_KEY","HRP_SAPLING_EXTENDED_SPENDING_KEY","HRP_SAPLING_PAYMENT_ADDRESS","HRP_TEX_ADDRESS","HRP_UNIFIED_ADDRESS","HRP_UNIFIED_FVK","HRP_UNIFIED_IVK","B58_PUBKEY_ADDRESS_PREFIX","B58_SCRIPT_ADDRESS_PREFIX","B58_SPROUT_ADDRESS_PREFIX","COIN_TYPE","HRP_SAPLING_EXTENDED_FULL_VIEWING_KEY","HRP_SAPLING_EXTENDED_SPENDING_KEY","HRP_SAPLING_PAYMENT_ADDRESS","HRP_TEX_ADDRESS","HRP_UNIFIED_ADDRESS","HRP_UNIFIED_FVK","HRP_UNIFIED_IVK","B58_PUBKEY_ADDRESS_PREFIX","B58_SCRIPT_ADDRESS_PREFIX","B58_SPROUT_ADDRESS_PREFIX","COIN_TYPE","HRP_SAPLING_EXTENDED_FULL_VIEWING_KEY","HRP_SAPLING_EXTENDED_SPENDING_KEY","HRP_SAPLING_PAYMENT_ADDRESS","HRP_TEX_ADDRESS","HRP_UNIFIED_ADDRESS","HRP_UNIFIED_FVK","HRP_UNIFIED_IVK","PublicKeyHash","Script","ScriptHash","TransparentAddress","address","borrow","","borrow_mut","","clone","","clone_into","","clone_to_uninit","","cmp","default","deref","","deref_mut","","drop","","eq","","fmt","","from","","hash","init","","into","","keys","partial_cmp","read","script","serialized_size","shl","","testing","to_owned","","try_from","","try_from_raw_transparent_p2pkh","try_from_raw_transparent_p2sh","try_into","","type_id","","vzip","","write","AccountPrivKey","AccountPubKey","EPHEMERAL","EXTERNAL","EphemeralIvk","ExternalIvk","ExternalOvk","INTERNAL","IncomingViewingKey","InternalIvk","InternalOvk","MAX","NonHardenedChildIndex","NonHardenedChildIter","NonHardenedChildRange","TransparentKeyScope","ZERO","as_bytes","","borrow","","","","","","","","","","","borrow_mut","","","","","","","","","","","clone","","","","","","","clone_into","","","","","","","clone_to_uninit","","","","","","","cmp","const_from_index","ct_eq","custom","default_address","deref","","","","","","","","","","","deref_mut","","","","","","","","","","","derive_address","derive_address_pubkey","derive_ephemeral_address","derive_ephemeral_ivk","derive_external_ivk","derive_external_secret_key","derive_internal_ivk","derive_internal_secret_key","derive_pubkey_at_bip32_path","derive_secret_key","deserialize","","drop","","","","","","","","","","","eq","","external_ovk","fmt","","","","","","","from","","","","","","","","","","","","","from_bytes","from_extended_privkey","from_index","from_seed","index","init","","","","","","","","","","","internal_ovk","into","","","","","","","","","","","into_iter","","next","","ovks_for_shielding","par_bridge","partial_cmp","pubkey_to_address","saturating_add","saturating_sub","serialize","","to_account_pubkey","to_bytes","to_owned","","","","","","","try_from","","","","","","","","","","","","","try_into","","","","","","","","","","","type_id","","","","","","","","","","","vzip","","","","","","","","","","","arb_transparent_addr","Arbitrary","Empty","Error","Future","InvalidUtf8","Memo","MemoBytes","Text","TextMemo","TooLong","as_array","as_slice","borrow","","","","borrow_mut","","","","clone","","","","clone_into","","","","clone_to_uninit","","","","cmp","default","deref","","","","","deref_mut","","","","drop","","","","empty","encode","eq","","","","fmt","","","","from","","","","","","from_bytes","","from_str","init","","","","into","","","","into_bytes","partial_cmp","to_owned","","","","to_string","try_from","","","","","","try_into","","","","type_id","","","","vzip","","","","HashSer","merkle_path_from_slice","read","read_address","read_commitment_tree","read_frontier_v0","read_frontier_v1","read_incremental_witness","read_leu64_usize","read_nonempty_frontier_v1","read_position","testing","write","write_address","write_commitment_tree","write_frontier_v1","write_incremental_witness","write_nonempty_frontier_v1","write_position","write_usize_leu64","Authorization","Authorized","Digest","DigestError","HeaderDigest","NotSigned","OrchardAuth","OrchardDigest","Overwinter","Sapling","SaplingAuth","SaplingDigest","Sprout","Transaction","TransactionData","TransactionDigest","TransparentAuth","TransparentDigest","TransparentDigests","TxDigests","TxId","TxVersion","TzeDigests","Unauthorized","Zip225","as_ref","auth_commitment","borrow","","","","","","","","","","borrow_mut","","","","","","","","","","builder","clone","","","","","clone_into","","","","","clone_to_uninit","","","","","cmp","combine","components","consensus_branch_id","deref","","","","","","","","","","","deref_mut","","","","","","","","","","digest","digest_header","digest_orchard","digest_sapling","digest_transparent","drop","","","","","","","","","","dynamic_usage","dynamic_usage_bounds","eq","","","expiry_height","fee_paid","fees","fmt","","","","","","","","","freeze","from","","","","","","","","","","from_bytes","from_parts","has_orchard","has_overwinter","has_sapling","has_sprout","hash","header","header_digest","init","","","","","","","","","","inputs_digest","into","","","","","","","","","","into_data","lock_time","map_authorization","map_bundles","orchard_bundle","orchard_digest","outputs_digest","","partial_cmp","per_input_digest","prevouts_digest","read","","","sapling_bundle","sapling_digest","sapling_value_balance","sequence_digest","sighash","sighash_v4","sighash_v5","sprout_bundle","suggested_for_branch","temporary_zcashd_read_v5_sapling","temporary_zcashd_write_v5_sapling","testing","to_owned","","","","","to_string","transparent_bundle","transparent_digests","try_from","","","","","","","","","","try_into","","","","","","","","","","try_map_bundles","txid","","type_id","","","","","","","","","","util","version","version_group_id","vzip","","","","","","","","","","write","","","write_transparent","write_v4","write_v5","write_v5_header","write_v5_sapling","Balance","BuildConfig","BuildResult","Builder","Bundle","ChangeRequired","Coinbase","DEFAULT_TX_EXPIRY_DELTA","Error","Fee","FeeError","FeeRule","InsufficientFunds","OrchardBuild","OrchardBuilderNotAvailable","OrchardRecipient","OrchardSpend","PcztParts","PcztResult","Progress","SaplingBuild","SaplingBuilderNotAvailable","Standard","TransparentBuild","add_orchard_output","add_orchard_spend","add_sapling_output","add_sapling_spend","add_transparent_input","add_transparent_output","borrow","","","","","","","","borrow_mut","","","","","","","","build","build_for_pczt","clone","clone_into","clone_to_uninit","consensus_branch_id","cur","deref","","","","","","","","deref_mut","","","","","","","","drop","","","","","","","","end","expiry_height","fmt","","","","","","","from","","","","","","","","","","","","","get_fee","init","","","","","","","","into","","","","","","","","lock_time","mock_build","new","orchard","orchard_builder_config","orchard_meta","","params","","pczt_parts","sapling","sapling_builder_config","sapling_inputs","sapling_meta","","sapling_outputs","target_height","to_owned","to_string","","transaction","transparent","transparent_inputs","transparent_outputs","try_from","","","","","","","","try_into","","","","","","","","type_id","","","","","","","","version","vzip","","","","","","","","with_progress_notifier","orchard_anchor","sapling_anchor","Amount","GROTH_PROOF_SIZE","JsDescription","OutPoint","OutputDescription","SpendDescription","TxIn","TxOut","amount","orchard","prevout","sapling","script_pubkey","script_sig","sequence","sprout","transparent","value","Amount","BalanceError","COIN","NonNegativeAmount","Overflow","Underflow","testing","arb_amount","arb_nonnegative_amount","arb_positive_amount","FLAGS_EXPECTED_UNSET","FLAG_OUTPUTS_ENABLED","FLAG_SPENDS_ENABLED","MapAuth","map_authorization","map_spend_auth","read_action_without_auth","read_anchor","read_cmx","read_flags","read_note_ciphertext","read_nullifier","read_signature","read_v5_bundle","read_value_commitment","read_verification_key","testing","write_action_without_auth","write_cmx","write_note_ciphertext","write_nullifier","write_v5_bundle","write_value_commitment","write_verification_key","arb_bundle","arb_bundle_for_version","MapAuth","map_auth_sig","map_authorization","map_output_proof","map_spend_proof","read_base","read_zkproof","temporary_zcashd_read_output_v4","temporary_zcashd_read_spend_v4","temporary_zcashd_read_v4_components","temporary_zcashd_write_output_v4","temporary_zcashd_write_v4_components","testing","zip212_enforcement","arb_bundle_for_version","Bundle","JsDescription","borrow","","borrow_mut","","clone","","clone_into","","clone_to_uninit","","deref","","deref_mut","","drop","","fmt","","from","","init","","into","","joinsplit_pubkey","joinsplit_sig","joinsplits","net_value","read","to_owned","","try_from","","try_into","","type_id","","value_balance","vzip","","write","Authorization","Authorized","Bundle","EffectsOnly","MapAuth","OutPoint","ScriptSig","TxIn","TxOut","apply_signatures","authorization","borrow","","","","","","borrow_mut","","","","","","builder","clone","","","","","clone_into","","","","","clone_to_uninit","","","","","cmp","deref","","","","","","deref_mut","","","","","","drop","","","","","","eq","","","","","fake","fmt","","","","","","from","","","","","","hash","init","","","","","","input_amounts","input_scriptpubkeys","into","","","","","","is_coinbase","map_authorization","","map_script_sig","n","new","","partial_cmp","pczt","prevout","read","","","recipient_address","script_pubkey","","script_sig","sequence","testing","to_owned","","","","","try_from","","","","","","try_into","","","","","","txid","type_id","","","","","","value","","value_balance","vin","vout","vzip","","","","","","write","","","Error","InvalidAddress","InvalidAmount","MissingSigningKey","TransparentBuilder","TransparentInputInfo","TransparentSigningSet","Unauthorized","add_input","add_key","add_output","borrow","","","","","borrow_mut","","","","","build","build_for_pczt","clone","","clone_into","","clone_to_uninit","","coin","","default","deref","","","","","deref_mut","","","","","drop","","","","","empty","eq","fmt","","","","from","","","","","init","","","","","input_amounts","input_scriptpubkeys","inputs","into","","","","","new","outpoint","","outputs","to_owned","","to_string","try_from","","","","","try_into","","","","","type_id","","","","","value_balance","vzip","","","","","Bip32Derivation","Bundle","Input","InputUpdater","InvalidIndex","InvalidRequiredHeightLocktime","InvalidRequiredTimeLocktime","InvalidSighashType","InvalidValue","MissingScriptSig","MissingSignature","NotP2sh","","Output","OutputUpdater","ParseError","SignerError","SpendFinalizerError","TxExtractorError","Unbound","UnexpectedSignatures","UnsupportedScriptPubkey","","Updater","UpdaterError","VerifyError","WrongRedeemScript","","WrongSpendingKey","bip32_derivation","","borrow","","","","","","","","","","","","","","borrow_mut","","","","","","","","","","","","","","bundle","deref","","","","","","","","","","","","","","deref_mut","","","","","","","","","","","","","","derivation_path","drop","","","","","","","","","","","","","","eq","extract","extract_bip_44_fields","extract_effects","finalize_spends","fmt","","","","","","","","","","","from","","","","","","","","","","","","","","hash160_preimages","hash256_preimages","init","","","","","","","","","","","","","","input_amounts","input_scriptpubkeys","inputs","inputs_mut","into","","","","","","","","","","","","","","outputs","parse","","","","partial_signatures","prevout_index","prevout_txid","proprietary","","redeem_script","","required_height_lock_time","required_time_lock_time","ripemd160_preimages","script_pubkey","","script_sig","seed_fingerprint","sequence","set_bip32_derivation","","set_hash160_preimage","set_hash256_preimage","set_proprietary","","set_redeem_script","","set_ripemd160_preimage","set_sha256_preimage","set_user_address","sha256_preimages","sighash_type","sign","try_from","","","","","","","","","","","","","","try_into","","","","","","","","","","","","","","type_id","","","","","","","","","","","","","","update_input_with","update_output_with","update_with","user_address","value","","verify","","vzip","","","","","","","","","","","","","","VALID_OPCODES","arb_bundle","arb_outpoint","arb_script","arb_txin","arb_txout","Error","FeeRule","fee_required","fixed","transparent","zip317","FeeRule","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","drop","fee_required","fixed_fee","fmt","from","init","into","non_standard","to_owned","try_from","try_into","type_id","vzip","InputSize","InputView","Known","OutputView","STANDARD_P2PKH","Unknown","borrow","borrow_mut","clone","clone_into","clone_to_uninit","coin","deref","deref_mut","drop","eq","fmt","from","init","into","outpoint","script_pubkey","serialized_size","","to_owned","try_from","try_into","type_id","value","vzip","Balance","FeeError","FeeRule","GRACE_ACTIONS","MARGINAL_FEE","MINIMUM_FEE","NonP2pkhInputs","P2PKH_STANDARD_INPUT_SIZE","P2PKH_STANDARD_OUTPUT_SIZE","borrow","","borrow_mut","","clone","","clone_into","","clone_to_uninit","","deref","","deref_mut","","drop","","eq","fee_required","fmt","","","from","","","grace_actions","init","","into","","marginal_fee","non_standard","p2pkh_standard_input_size","p2pkh_standard_output_size","standard","to_owned","","to_string","try_from","","try_into","","type_id","","vzip","","SIGHASH_ALL","SIGHASH_ANYONECANPAY","SIGHASH_MASK","SIGHASH_NONE","SIGHASH_SINGLE","Shielded","SighashType","SignableInput","SignatureHash","Transparent","as_ref","borrow","","borrow_mut","","deref","","deref_mut","","drop","","from","","hash_type","init","","into","","signature_hash","try_from","","try_into","","type_id","","vzip","","v4_signature_hash","v5_signature_hash","arb_tx","arb_tx_version","arb_txdata","arb_txid","BlockTxCommitmentDigester","TxIdDigester","borrow","","borrow_mut","","combine","","deref","","deref_mut","","digest_header","","digest_orchard","","digest_sapling","","digest_transparent","","drop","","from","","init","","into","","to_txid","try_from","","try_into","","type_id","","vzip","","sha256d","HashReader","HashWriter","borrow","","borrow_mut","","default","deref","","deref_mut","","drop","","flush","from","","init","","into","","into_base_reader","into_hash","","new","read","try_from","","try_into","","type_id","","vzip","","write","AccountId","ChainCode","ChildIndex","DiversifierIndex","DiversifierIndexOverflowError","External","Internal","PRIVATE_USE","Scope","TryFromIntError","ZERO","arbitrary","as_bytes","","borrow","","","","","","","borrow_mut","","","","","","","clone","","","","","","","clone_into","","","","","","","clone_to_uninit","","","","","","","cmp","","conditional_select","ct_eq","","default","","deref","","","","","","","deref_mut","","","","","","","drop","","","","","","","dynamic_usage","","dynamic_usage_bounds","","eq","","","","","fingerprint","fmt","","","","","","","","","from","","","","","","","","","","","","","from_index","hardened","hardened_only","hash","","","increment","index","init","","","","","","","into","","","","","","","new","","next","partial_cmp","","registered","to_owned","","","","","","","to_string","","try_from","","","","","","","","","try_into","","","","","","","type_id","","","","","","","vzip","","","","","","","SecretKey","borrow","borrow_mut","chain_code","data","deref","deref_mut","drop","from","from_path","init","into","into_full_width_key","try_from","try_into","type_id","vzip","SeedFingerprint","borrow","borrow_mut","clone","clone_into","clone_to_uninit","cmp","deref","deref_mut","drop","eq","fmt","from","from_bytes","from_seed","hash","init","into","partial_cmp","to_bytes","to_owned","try_from","try_into","type_id","vzip","CKD_DOMAIN","Context","HardenedOnlyKey","MKG_DOMAIN","borrow","borrow_mut","clone","clone_into","clone_to_uninit","ct_eq","deref","deref_mut","derive_child","derive_child_with_tag","drop","fmt","from","init","into","master","parts","to_owned","try_from","try_into","type_id","vzip","ContextStringInvalid","DerivationError","PathElement","SecretKey","SeedInvalid","SubpathEmpty","borrow","","","borrow_mut","","","chain_code","child_index","clone","clone_into","clone_to_uninit","cryptovalue_from_subpath","data","deref","","","deref_mut","","","derive_child","derive_child_cryptovalue","derive_child_with_tag","drop","","","eq","fmt","","from","","","from_parts","from_subpath","init","","","into","","","new","tag","to_owned","to_string","try_from","","","try_into","","","type_id","","","vzip","",""],"q":[[0,"zcash_primitives"],[8,"zcash_primitives::block"],[74,"zcash_primitives::consensus"],[336,"zcash_primitives::consensus::testing"],[338,"zcash_primitives::constants"],[341,"zcash_primitives::constants::mainnet"],[352,"zcash_primitives::constants::regtest"],[363,"zcash_primitives::constants::testnet"],[374,"zcash_primitives::legacy"],[429,"zcash_primitives::legacy::keys"],[659,"zcash_primitives::legacy::testing"],[660,"zcash_primitives::memo"],[759,"zcash_primitives::merkle_tree"],[779,"zcash_primitives::transaction"],[1028,"zcash_primitives::transaction::builder"],[1202,"zcash_primitives::transaction::builder::BuildConfig"],[1204,"zcash_primitives::transaction::components"],[1222,"zcash_primitives::transaction::components::amount"],[1229,"zcash_primitives::transaction::components::amount::testing"],[1232,"zcash_primitives::transaction::components::orchard"],[1256,"zcash_primitives::transaction::components::orchard::testing"],[1258,"zcash_primitives::transaction::components::sapling"],[1272,"zcash_primitives::transaction::components::sapling::testing"],[1273,"zcash_primitives::transaction::components::sprout"],[1316,"zcash_primitives::transaction::components::transparent"],[1464,"zcash_primitives::transaction::components::transparent::builder"],[1563,"zcash_primitives::transaction::components::transparent::pczt"],[1828,"zcash_primitives::transaction::components::transparent::testing"],[1834,"zcash_primitives::transaction::fees"],[1840,"zcash_primitives::transaction::fees::fixed"],[1861,"zcash_primitives::transaction::fees::transparent"],[1891,"zcash_primitives::transaction::fees::zip317"],[1945,"zcash_primitives::transaction::sighash"],[1982,"zcash_primitives::transaction::sighash_v4"],[1983,"zcash_primitives::transaction::sighash_v5"],[1984,"zcash_primitives::transaction::testing"],[1988,"zcash_primitives::transaction::txid"],[2025,"zcash_primitives::transaction::util"],[2026,"zcash_primitives::transaction::util::sha256d"],[2060,"zcash_primitives::zip32"],[2236,"zcash_primitives::zip32::arbitrary"],[2253,"zcash_primitives::zip32::fingerprint"],[2278,"zcash_primitives::zip32::hardened_only"],[2304,"zcash_primitives::zip32::registered"],[2365,"core::option"],[2366,"core::fmt"],[2367,"std::io::error"],[2368,"core::hash"],[2369,"std::io"],[2370,"alloc::vec"],[2371,"alloc::string"],[2372,"core::result"],[2373,"core::any"],[2374,"zcash_protocol::consensus"],[2375,"core::cmp"],[2376,"core::ops::range"],[2377,"proptest::strategy::traits"],[2378,"zcash_transparent::address"],[2379,"zcash_address::convert"],[2380,"zcash_transparent::keys"],[2381,"subtle"],[2382,"bip32::error"],[2383,"secp256k1::key"],[2384,"zip32"],[2385,"bip32::child_number"],[2386,"bip32::extended_key::private_key"],[2387,"rayon::iter::par_bridge"],[2388,"zcash_protocol::memo"],[2389,"incrementalmerkletree"],[2390,"incrementalmerkletree::frontier"],[2391,"core::clone"],[2392,"incrementalmerkletree::witness"],[2393,"zcash_protocol::txid"],[2394,"blake2b_simd"],[2395,"zcash_protocol::value"],[2396,"orchard::bundle"],[2397,"sapling_crypto::bundle"],[2398,"zcash_transparent::bundle"],[2399,"core::convert"],[2400,"core::ops::function"],[2401,"orchard::keys"],[2402,"orchard::address"],[2403,"sapling_crypto::builder"],[2404,"orchard::note"],[2405,"orchard::tree"],[2406,"sapling_crypto::keys"],[2407,"sapling_crypto::address"],[2408,"sapling_crypto::note"],[2409,"sapling_crypto::tree"],[2410,"zcash_transparent::builder"],[2411,"sapling_crypto::zip32"],[2412,"rand_core"],[2413,"sapling_crypto::prover"],[2414,"orchard::builder"],[2415,"std::sync::mpsc"],[2416,"orchard::action"],[2417,"orchard::note::commitment"],[2418,"orchard::note::nullifier"],[2419,"orchard::primitives::redpallas"],[2420,"orchard::value"],[2421,"jubjub"],[2422,"sapling_crypto::note_encryption"],[2423,"zcash_transparent::sighash"],[2424,"zcash_transparent::pczt"],[2425,"alloc::collections::btree::map"],[2426,"zcash_transparent::pczt::updater"],[2427,"zcash_transparent::pczt::tx_extractor"],[2428,"zip32::fingerprint"],[2429,"zcash_transparent::pczt::spend_finalizer"],[2430,"zcash_transparent::pczt::parse"],[2431,"zcash_transparent::pczt::verify"],[2432,"zcash_transparent::pczt::signer"],[2433,"secp256k1"],[2434,"secp256k1::context"],[2435,"core::iter::traits::collect"],[2436,"sha2"],[2437,"crypto_common"],[2438,"zip32::arbitrary"],[2439,"zip32::hardened_only"],[2440,"zip32::registered"],[2441,"zcash_protocol::consensus::testing"],[2442,"zcash_protocol::constants"],[2443,"zcash_protocol::constants::mainnet"],[2444,"zcash_protocol::constants::regtest"],[2445,"zcash_protocol::constants::testnet"],[2446,"zcash_transparent::address::testing"],[2447,"zcash_transparent::bundle::testing"]],"i":"```````````bA`1j1200001120120120000`200212001012012022212200120012012021201`ClDd`10`10`Db`Cn````323232`1322`1`0`CjCfCh3CdD`6325063250632516325871632587163258716325871632587106325163258716325871632587163258716325871632587116325887711632587111657706325063250632506325063250632506325163258716325874432511711`16325871811116325877163258716325871632587``````````````````````````````````````Eh`0`Ef01010101011001010101010110101`101000`0101110101010``Fd0```0```Ff````0F`FbHhHb3254FhFjFlFnG`6587:943210:943210:943210:943210999:Gd7698;:543217698;:543210414454545047698;:54321;:4;:5432176698;;:5432155:5:7698;:5432147698;:54321767:47:`::0455;:543217698;:::543217698;:543217698;:543217698;:54321`Id0`0I```1`0Hn010Ib321032103210321031321003210321031321032213211103133210321031121032210333210321032103``Ih`````````0`````````Lb`0ANhLf2K`0130```13``````0JjJl1ANj53Lh2LdKbKdKf75:8463210`7821078210782107;`375:8466321075:84632103;;;;75:84632107778633`778463210375:846321073888878075:8463210175:8463210633330217127863032```3866`7821073075:846321075:84632103`675:8463210`3875:846321078666666O````ABd1AAn``2`122222```2202Nj00000ABb1342AA`AAlAB`3467521044555033467521034675210346752103066772103346777775210434675210346752100440521401054214456720443467521034675210346752100346752104ADb0``````````ADd`ADf11``0````ANl0````````Nd0`````````````````````Nb000````````````MnAFl101010101010101010101011100101010101100``````AGf``M`0AGlAG`2MfAGhA@f435210`35210352103521024352104352104352103521024352104352102435210444352105N`603323`232111122`46321546321546321354632111666546321321`A@h00````AGnA@j1012ACnAFn23410331010101122341023410234103444102341023410003234102113104234102341023410323410````AIhAId000AHnAIbAIf4```````101```04AIjAHbAHhAHjAIlAIn96:578AHlAH`65AHd543<9=8:;217605543<9=8:;21760543<9=8:;217600543<9=8:;2176001011<9=8:;21760543<9=8:;2176077543<9=8:;217602211543<9=8:;217601176077776767777670743444343443777543<9=8:;21760543<9=8:;21760543<9=8:;2176055167676543<9=8:;21760``````AAj`0````AJn0000000000000000000``AJj`0000000AK`111111110AKb10222202ABl`````0``AKd10101010101010110011011001010000001101010101`````AKh```0AKf10101010101011010`10101010````````ALdALf101010101010101010101010`10101010```ALjALh100101010010101011011101010100`````Hd0AMd``Gl`AM`Hl2AMb421AMf641532064153206415320641532064245342415320641532064153206464645326`411532006415532222220655`426254153206415320632442`415320610441532206415320641532064153206`AMj000000000000000`AI`00000000000000000000000AMn``0AMl000000000000000000000ANd```00ANbAN`210201222`0102102000102222102001021021122102102102102","f":"```````````{bd}{f{{f{c}}}{}}00{{{f{h}}}{{f{hc}}}{}}00{{{f{j}}}j}{{f{f{hc}}}l{}}{{fn}l}{{{f{A`}}}{{f{b}}}}{Ab{{f{c}}}{}}00{Ab{{f{hc}}}{}}00{Abl}00{{{f{j}}}Ab}{{{f{j}}}{{Af{Ab{Ad{Ab}}}}}}{{{f{j}}{f{j}}}Ah}`{bAj}{{{f{j}}{f{hAl}}}An}0{b{{B`{A`}}}}{cc{}}00{{{f{{Bb{n}}}}}j}{{{f{A`}}}j}{{{f{j}}{f{hc}}}lBd}{{}Ab}00{{}c{}}0088{bj}{c{{B`{A`}}}Bf}{bBh}{bd}{fc{}}{fBj}{c{{Bl{e}}}{}{}}00{{{f{{Bb{n}}}}}{{Ad{j}}}}{{}{{Bl{c}}}{}}00{fBn}00{bC`}{{}c{}}00{{{f{A`}}c}{{B`{l}}}Cb}``````{{}Cd}``{{}Cf}``````````````````{{}Ch}```{{}d}{{{f{Cj}}Cl}{{Ad{Cd}}}}{{{f{Cf}}Cl}{{Ad{Cd}}}}{{{f{Ch}}Cl}{{Ad{Cd}}}}{{{f{Cn}}Cl}{{Ad{Cd}}}}{{Cdd}Cd}{{{f{D`}}}{{Aj{n}}}}{{{f{Db}}}{{Aj{n}}}}{f{{Aj{n}}}}002100021000{f{{f{c}}}{}}000000{{{f{h}}}{{f{hc}}}{}}000000{{{f{Cd}}}Cd}{{{f{Db}}}Db}{{{f{Cf}}}Cf}{{{f{Ch}}}Ch}{{{f{Cn}}}Cn}{{{f{Cl}}}Cl}{{{f{Dd}}}Dd}{{f{f{hc}}}l{}}000000{{fn}l}000000{{{f{Cd}}{f{Cd}}}Df}{{{f{D`}}}d}{{{f{Db}}}d}{fd}00{Ab{{f{c}}}{}}000000{Ab{{f{hc}}}{}}000000{Abl}000000{{{f{Cd}}}Ab}{{{f{Db}}}Ab}{{{f{Cf}}}Ab}{{{f{Ch}}}Ab}{{{f{Cn}}}Ab}{{{f{Cl}}}Ab}{{{f{Dd}}}Ab}{{{f{Cd}}}{{Af{Ab{Ad{Ab}}}}}}{{{f{Db}}}{{Af{Ab{Ad{Ab}}}}}}{{{f{Cf}}}{{Af{Ab{Ad{Ab}}}}}}{{{f{Ch}}}{{Af{Ab{Ad{Ab}}}}}}{{{f{Cn}}}{{Af{Ab{Ad{Ab}}}}}}{{{f{Cl}}}{{Af{Ab{Ad{Ab}}}}}}{{{f{Dd}}}{{Af{Ab{Ad{Ab}}}}}}{{{f{Cd}}{f{Cd}}}Ah}{{{f{Db}}{f{Db}}}Ah}{{{f{Cf}}{f{Cf}}}Ah}{{{f{Ch}}{f{Ch}}}Ah}{{{f{Cn}}{f{Cn}}}Ah}{{{f{Cl}}{f{Cl}}}Ah}{{{f{Dd}}{f{Dd}}}Ah}{{{f{Cd}}{f{hAl}}}{{Bl{lDh}}}}0{{{f{Db}}{f{hAl}}}{{Bl{lDh}}}}{{{f{Cf}}{f{hAl}}}{{Bl{lDh}}}}{{{f{Ch}}{f{hAl}}}{{Bl{lDh}}}}{{{f{Cn}}{f{hAl}}}{{Bl{lDh}}}}{{{f{Cl}}{f{hAl}}}{{Bl{lDh}}}}0{{{f{Dd}}{f{hAl}}}{{Bl{lDh}}}}{{{f{c}}Cd}DdCj}{cc{}}{dCd}1111110{DjCd}{{{f{Cd}}{f{hc}}}lBd}{{{f{Db}}{f{hc}}}lBd}{{{f{Cn}}{f{hc}}}lBd}{{{f{Dd}}{f{c}}}{{Ad{{Af{Cd{Ad{Cd}}}}}}}Cj}{{{f{Dd}}{f{c}}}{{Ad{{`{{Dl{Cd}}}}}}}Cj}{{{f{D`}}}{{f{Dn}}}}{{{f{Db}}}{{f{Dn}}}}{f{{f{Dn}}}}00210002100021000210002100021000{{}Ab}000000{{}c{}}000000{{{f{Cj}}ClCd}Ah}{{{f{Cj}}}Db}{{{f{Cf}}}Db}{{{f{Ch}}}Db}{{{f{Cn}}}Db}{{{f{Cd}}{f{Cd}}}{{Ad{Df}}}}{{Cdd}Cd}{{{f{Dd}}}Ah}{{CdCd}d}2`{fc{}}000000{fBj}0{c{{Bl{e}}}{}{}}{E`{{Bl{Cd}}}}{C`{{Bl{Cd}}}}{Dj{{Bl{Cd}}}}33333{d{{Bl{Dd}}}}4{{}{{Bl{c}}}{}}000000{fBn}000000{{}c{}}000000{{}{{`{{Ed{}{{Eb{Dd}}}}}}}}{{Dd{f{c}}}{{`{{Ed{}{{Eb{{Ad{Cd}}}}}}}}}Cj}```{{}Aj}00{{}d}{{}f}0000002221000000022210000000````{{{f{Ef}}}{{Ad{Eh}}}}{f{{f{c}}}{}}0{{{f{h}}}{{f{hc}}}{}}0{{{f{Ef}}}Ef}{{{f{Eh}}}Eh}{{f{f{hc}}}l{}}0{{fn}l}0{{{f{Eh}}{f{Eh}}}Df}{{}Ef}{Ab{{f{c}}}{}}0{Ab{{f{hc}}}{}}0{Abl}0{{{f{Ef}}{f{Ef}}}Ah}{{{f{Eh}}{f{Eh}}}Ah}{{{f{Ef}}{f{hAl}}}{{Bl{lDh}}}}{{{f{Eh}}{f{hAl}}}{{Bl{lDh}}}}{cc{}}0{{{f{Eh}}{f{hc}}}lBd}{{}Ab}0{{}c{}}0`{{{f{Eh}}{f{Eh}}}{{Ad{Df}}}}{c{{Bl{EfEj}}}Bf}{{{f{Eh}}}Ef}{{{f{Ef}}}Ab}{{Ef{f{{Bb{n}}}}}Ef}{{EfEl}Ef}`{fc{}}0{c{{Bl{e}}}{}{}}0{{{Aj{n}}}{{Bl{EhEn}}}}0{{}{{Bl{c}}}{}}0{fBn}0{{}c{}}0{{{f{Ef}}c}{{Bl{lEj}}}Cb}`````````````````{{{f{F`}}}{{Aj{n}}}}{{{f{Fb}}}{{Aj{n}}}}{f{{f{c}}}{}}0000000000{{{f{h}}}{{f{hc}}}{}}0000000000{{{f{Fd}}}Fd}{{{f{Ff}}}Ff}{{{f{Fh}}}Fh}{{{f{Fj}}}Fj}{{{f{Fl}}}Fl}{{{f{Fn}}}Fn}{{{f{G`}}}G`}{{f{f{hc}}}l{}}000000{{fn}l}000000{{{f{Ff}}{f{Ff}}}Df}{dFf}{{{f{Ff}}{f{Ff}}}Gb}{d{{Ad{Fd}}}}{{{f{Gd}}}{{Af{EhFf}}}}{Ab{{f{c}}}{}}0000000000{Ab{{f{hc}}}{}}0000000000{{{f{Gd}}Ff}{{Bl{EhGf}}}}{{{f{Fj}}FdFf}{{Bl{GhGf}}}}{{{f{G`}}Ff}{{Bl{EhGf}}}}{{{f{Fj}}}{{Bl{G`Gf}}}}{{{f{Fj}}}{{Bl{FlGf}}}}{{{f{Fh}}Ff}{{Bl{GjGf}}}}{{{f{Fj}}}{{Bl{FnGf}}}}1{{{f{Fj}}{f{c}}Gl{f{{Bb{Gn}}}}}{{Bl{GhGf}}}Cj}{{{f{Fh}}FdFf}{{Bl{GjGf}}}}{{{f{{Aj{n}}}}}{{Bl{GdGf}}}}{{{f{{Aj{n}}}}}{{Bl{FjGf}}}}{Abl}0000000000{{{f{Fd}}{f{Fd}}}Ah}{{{f{Ff}}{f{Ff}}}Ah}{{{f{Fj}}}Fb}{{{f{Fd}}{f{hAl}}}{{Bl{lDh}}}}{{{f{Ff}}{f{hAl}}}{{Bl{lDh}}}}{{{f{Fh}}{f{hAl}}}{{Bl{lDh}}}}{{{f{Fj}}{f{hAl}}}{{Bl{lDh}}}}{{{f{Fl}}{f{hAl}}}{{Bl{lDh}}}}{{{f{Fn}}{f{hAl}}}{{Bl{lDh}}}}{{{f{G`}}{f{hAl}}}{{Bl{lDh}}}}{cc{}}0{{{H`{Ff}}}Hb}11{HdFd}2222222{{{f{{Bb{n}}}}}{{Ad{Fh}}}}{{{Hf{Gj}}}Fh}{d{{Ad{Ff}}}}{{{f{c}}{f{{Bb{n}}}}Gl}{{Bl{FhGf}}}Cj}{{{f{Ff}}}d}{{}Ab}0000000000{{{f{Fj}}}F`}{{}c{}}0000000000{{}c{}}{Hb}{{{f{hHh}}}Ad}{{{f{Ff}}}{{Ad{Ff}}}}{{{f{Fj}}}{{Af{F`Fb}}}}{{}{{Hj{c}}}{}}{{{f{Ff}}{f{Ff}}}{{Ad{Df}}}}{{{f{Gh}}}Eh}{{{f{Ff}}d}Ff}0{{{f{Gd}}}{{Bh{n}}}}{{{f{Fj}}}{{Bh{n}}}}{{{f{Fh}}}Fj}{{{f{Fh}}}{{Bh{n}}}}{fc{}}000000{c{{Bl{e}}}{}{}}00000{Gn{{Bl{Ff}}}}{Hl{{Bl{Ff}}}}22222{{}{{Bl{c}}}{}}0000000000{fBn}0000000000{{}c{}}0000000000{{}{{`{{Ed{}{{Eb{Eh}}}}}}}}``````````{{{f{Hn}}}{{f{{Aj{n}}}}}}{{{f{Hn}}}{{f{{Bb{n}}}}}}{f{{f{c}}}{}}000{{{f{h}}}{{f{hc}}}{}}000{{{f{I`}}}I`}{{{f{Hn}}}Hn}{{{f{Ib}}}Ib}{{{f{Id}}}Id}{{f{f{hc}}}l{}}000{{fn}l}000{{{f{Hn}}{f{Hn}}}Df}{{}Id}{Ab{{f{c}}}{}}0{{{f{Ib}}}{{f{Dn}}}}11{Ab{{f{hc}}}{}}000{Abl}000{{}Hn}{{{f{Id}}}Hn}{{{f{I`}}{f{I`}}}Ah}{{{f{Hn}}{f{Hn}}}Ah}{{{f{Ib}}{f{Ib}}}Ah}{{{f{Id}}{f{Id}}}Ah}{{{f{I`}}{f{hAl}}}{{Bl{lDh}}}}0{{{f{Hn}}{f{hAl}}}{{Bl{lDh}}}}{{{f{Id}}{f{hAl}}}{{Bl{lDh}}}}{cc{}}08{IdHn}11{{{f{{Bb{n}}}}}{{Bl{HnI`}}}}{{{f{{Bb{n}}}}}{{Bl{IdI`}}}}{{{f{Dn}}}{{Bl{Id}}}}{{}Ab}000{{}c{}}000{Hn{{Aj{n}}}}{{{f{Hn}}{f{Hn}}}{{Ad{Df}}}}{fc{}}000{fBj}{c{{Bl{e}}}{}{}}00{Hn{{Bl{Id}}}}{{{f{Hn}}}{{Bl{Id}}}}2{{}{{Bl{c}}}{}}000{fBn}000{{}c{}}000`{{{f{{Bb{n}}}}}{{B`{{If{c}}}}}Ih}{c{{B`{Ih}}}Bf}{c{{B`{Ij}}}Bf}{c{{B`{{Il{e}}}}}BfIh}{c{{B`{{In{e}}}}}Bf{J`IhJb}}{c{{B`{{In{e}}}}}Bf{IhJb}}{c{{B`{{Jd{e}}}}}BfIh}{c{{B`{Ab}}}Bf}{c{{B`{{Jf{e}}}}}Bf{IhJb}}{c{{B`{Jh}}}Bf}`{{{f{Ih}}c}{{B`{l}}}Cb}{{cIj}{{B`{l}}}Cb}{{{f{{Il{c}}}}e}{{B`{l}}}IhCb}{{c{f{{In{e}}}}}{{B`{l}}}CbIh}{{{f{{Jd{c}}}}e}{{B`{l}}}IhCb}{{c{f{{Jf{e}}}}}{{B`{l}}}CbIh}{{cJh}{{B`{l}}}Cb}{{cAb}{{B`{l}}}Cb}`````````````````````````{{{f{Jj}}}{{f{{Aj{n}}}}}}{{{f{Jl}}}Jn}{f{{f{c}}}{}}000000000{{{f{h}}}{{f{hc}}}{}}000000000`{{{f{Jj}}}Jj}{{{f{K`}}}K`}{{{f{{Kb{c}}}}}{{Kb{c}}}Jb}{{{f{{Kd{c}}}}}{{Kd{c}}}Jb}{{{f{{Kf{c}}}}}{{Kf{c}}}Jb}{{f{f{hc}}}l{}}0000{{fn}l}0000{{{f{Jj}}{f{Jj}}}Df}{{{f{{Lb{}{{Kh{c}}{Kj{e}}{Kl{g}}{Kn{i}}{L`{k}}}}}}cegi}k{}{}{}{}{}}`{{{f{{Ld{c}}}}}DdLf}{Ab{{f{c}}}{}}0000{{{f{Jl}}}{{f{{Ld{Lh}}}}}}11111{Ab{{f{hc}}}{}}000000000{{{f{{Ld{c}}}}e}{}Lf{{Lb{c}}}}{{{f{{Lb{}{{Kh{c}}{Kj{e}}{Kl{g}}{Kn{i}}{L`{k}}}}}}K`DddCd}c{}{}{}{}{}}{{{f{{Lb{}{{Kh{c}}{Kj{e}}{Kl{g}}{Kn{i}}{L`{k}}}}}}{Ad{{f{{Ll{Lj}}}}}}}i{}{}{}{}{}}{{{f{{Lb{}{{Kh{c}}{Kj{e}}{Kl{g}}{Kn{i}}{L`{k}}}}}}{Ad{{f{{Ln{Lj}}}}}}}g{}{}{}{}{}}{{{f{{Lb{}{{Kh{c}}{Kj{e}}{Kl{g}}{Kn{i}}{L`{k}}}}}}{Ad{{f{M`}}}}}e{}{}{}{}{}}{Abl}000000000{{{f{Jj}}}Ab}{{{f{Jj}}}{{Af{Ab{Ad{Ab}}}}}}{{{f{Jj}}{f{Jj}}}Ah}{{{f{K`}}{f{K`}}}Ah}{{{f{Jl}}{f{Jl}}}Ah}{{{f{{Ld{c}}}}}CdLf}{{{f{{Ld{c}}}}g}{{Bl{Lje}}}Lf{{Md{Mb}}}{{Mj{{f{Mf}}}{{Mh{{Bl{Lje}}}}}}}}`{{{f{Jj}}{f{hAl}}}{{Bl{lDh}}}}0{{{f{K`}}{f{hAl}}}An}{{{f{Lh}}{f{hAl}}}An}{{{f{Jl}}{f{hAl}}}An}{{{f{{Ld{c}}}}{f{hAl}}}An{MlLf}}{{{f{{Kb{c}}}}{f{hAl}}}AnMl}{{{f{{Kd{c}}}}{f{hAl}}}AnMl}{{{f{{Kf{c}}}}{f{hAl}}}AnMl}{{{Ld{Lh}}}{{B`{Jl}}}}{cc{}}000000000{{{Aj{n}}}Jj}{{K`DddCd{Ad{M`}}{Ad{Mn}}{Ad{{Ln{Lj}}}}{Ad{{Ll{Lj}}}}}{{Ld{c}}}Lf}{{{f{K`}}}Ah}000{{{f{Jj}}{f{hc}}}lBd}{{{f{K`}}}d}{Kf}{{}Ab}000000000{Kd}{{}c{}}000000000{Jl{{Ld{Lh}}}}{{{f{{Ld{c}}}}}dLf}{{{Ld{c}}egi}{{Ld{k}}}LfN`NbNdLf}{{{Ld{c}}egi}{{Ld{k}}}Lf{{Nf{{Ad{M`}}}{{Mh{{Ad{M`}}}}}}}{{Nf{{Ad{{Ln{Lj}}}}}{{Mh{{Ad{{Ln{Lj}}}}}}}}}{{Nf{{Ad{{Ll{Lj}}}}}{{Mh{{Ad{{Ll{Lj}}}}}}}}}Lf}{{{f{{Ld{c}}}}}{{Ad{{f{{Ll{Lj}}}}}}}Lf}{KfAd}{Kb}8{{{f{Jj}}{f{Jj}}}{{Ad{Df}}}}{KdAd}2{c{{Bl{JjEj}}}Bf}{c{{B`{K`}}}Bf}{{cDd}{{B`{Jl}}}Bf}{{{f{{Ld{c}}}}}{{Ad{{f{{Ln{Lj}}}}}}}Lf}7{{{f{{Ld{c}}}}}LjLf}7```{{{f{{Ld{c}}}}}{{Ad{{f{Mn}}}}}Lf}{DdK`}{c{{B`{{Ad{{Ln{NhLj}}}}}}}Bf}{{{Ad{{f{{Ln{NhLj}}}}}}c}{{B`{l}}}Cb}`{fc{}}0000{fBj}{{{f{{Ld{c}}}}}{{Ad{{f{M`}}}}}Lf}?{c{{Bl{e}}}{}{}}000000000{{}{{Bl{c}}}{}}000000000{{{Ld{c}}gik}{{Bl{{Ld{m}}e}}}Lf{}{{Nf{{Ad{M`}}}{{Mh{{Bl{{Ad{M`}}e}}}}}}}{{Nf{{Ad{{Ln{Lj}}}}}{{Mh{{Bl{{Ad{{Ln{Lj}}}}e}}}}}}}{{Nf{{Ad{{Ll{Lj}}}}}{{Mh{{Bl{{Ad{{Ll{Lj}}}}e}}}}}}}Lf}`{{{f{Jl}}}Jj}{fBn}000000000`{{{f{{Ld{c}}}}}K`Lf}{{{f{K`}}}d}{{}c{}}000000000{{{f{Jj}}c}{{Bl{lEj}}}Cb}{{{f{K`}}c}{{B`{l}}}Cb}{{{f{Jl}}c}{{B`{l}}}Cb}00000```````{{}d}````````````````{{{f{h{Nj{ce}}}}{Ad{Nl}}NnDjHn}{{Bl{l{O`{g}}}}}CjOb{}}{{{f{h{Nj{ce}}}}OdOfOh}{{Bl{l{O`{g}}}}}CjOb{}}{{{f{h{Nj{ce}}}}{Ad{Oj}}OlOnHn}{{Bl{l{O`{g}}}}}CjOb{}}{{{f{h{Nj{ce}}}}A@`A@bA@d}{{Bl{l{O`{g}}}}}CjOb{}}{{{f{h{Nj{ce}}}}GhMfA@f}{{Bl{lA@h}}}CjOb}{{{f{h{Nj{ce}}}}{f{Eh}}On}{{Bl{lA@h}}}CjOb}{f{{f{c}}}{}}0000000{{{f{h}}}{{f{hc}}}{}}0000000{{{Nj{ce}}{f{A@j}}{f{{Bb{A@l}}}}{f{{Bb{A@n}}}}g{f{i}}{f{k}}{f{m}}}{{Bl{AA`O`}}}CjOb{AAbAAd}AAfAAhAAj}{{{Nj{ce}}g{f{i}}}{{Bl{{AAl{c}}O`}}}CjOb{AAbAAd}AAj}{{{f{AAn}}}AAn}{{f{f{hc}}}l{}}{{fn}l}{AB`Dd}{{{f{ABb}}}d}{Ab{{f{c}}}{}}0000000{Ab{{f{hc}}}{}}0000000{Abl}0000000{{{f{ABb}}}{{Ad{d}}}}{AB`Cd}{{{f{{ABd{c}}}}{f{hAl}}}AnMl}{{{f{{ABd{c}}}}{f{hAl}}}AnABf}{{{f{{O`{c}}}}{f{hAl}}}AnMl}{{{f{{O`{c}}}}{f{hAl}}}AnABf}{{{f{AA`}}{f{hAl}}}An}{{{f{{AAl{c}}}}{f{hAl}}}An{MlCj}}{{{f{{AB`{c}}}}{f{hAl}}}An{MlCj}}{{{Af{dd}}}ABb}{cc{}}00{{{ABd{c}}}{{O`{c}}}{}}{Mb{{O`{c}}}{}}2{ABh{{O`{c}}}{}}{ABj{{O`{c}}}{}}4444{{{f{{Nj{ce}}}}{f{g}}}{{Bl{OnABd}}}CjObAAj}{{}Ab}0000000{{}c{}}0000000{AB`d}{{{Nj{ce}}{f{A@j}}{f{{Bb{A@l}}}}{f{{Bb{A@n}}}}g}{{Bl{AA`{O`{ABl}}}}}CjObAAb}{{cCdAAn}{{Nj{cl}}}Cj}{AB`Ad}{{{f{AAn}}}{{Ad{{Af{ABnAC`}}}}}}{{{f{AA`}}}{{f{ACb}}}}{AAlACb}{{{f{{Nj{ce}}}}}{{f{c}}}{}Ob}{AB`}{AAlAB`}6{{{f{AAn}}}{{Ad{{Af{ACdACf}}}}}}{{{f{{Nj{ce}}}}}{{f{{Bb{ACh}}}}}{}Ob}{{{f{AA`}}}{{f{ACj}}}}{AAlACj}{{{f{{Nj{ce}}}}}{{f{{Bb{ACl}}}}}{}Ob}{{{f{{Nj{ce}}}}}Cd{}Ob}{fc{}}{fBj}0{{{f{AA`}}}{{f{Jl}}}}?{{{f{{Nj{ce}}}}}{{f{{Bb{ACn}}}}}{}Ob}{{{f{{Nj{ce}}}}}{{f{{Bb{A@f}}}}}{}Ob}{c{{Bl{e}}}{}{}}0000000{{}{{Bl{c}}}{}}0000000{fBn}0000000{AB`K`}{{}c{}}0000000{{{Nj{cl}}{AD`{ABb}}}{{Nj{c{AD`{ABb}}}}}Cj}{ADbAd}0`{{}Ab}````````{ADdMf}`{ADfEf}{ADd}{ADdd}``{ADfOn}``{{}Dj}````{{}{{`{{Ed{}{{Eb{Lj}}}}}}}}{{}{{`{{Ed{}{{Eb{On}}}}}}}}1{{}n}00`{{{f{Nd}}c}eADhADh}{{{f{Nd}}}}{c{{B`{{ADj{l}}}}}Bf}{c{{B`{AC`}}}Bf}{c{{B`{ADl}}}Bf}{c{{B`{ADn}}}Bf}{c{{B`{AE`}}}Bf}{c{{B`{AEb}}}Bf}{c{{B`{{AEd{e}}}}}BfAEf}{c{{B`{{Ad{{Ll{AEhLj}}}}}}}Bf}{c{{B`{AEj}}}Bf}{c{{B`{{AEn{AEl}}}}}Bf}`{{c{f{ADj}}}{{B`{l}}}Cb}{{c{f{ADl}}}{{B`{l}}}Cb}{{c{f{AE`}}}{{B`{l}}}Cb}{{c{f{AEb}}}{{B`{l}}}Cb}{{{Ad{{f{{Ll{AEhLj}}}}}}c}{{B`{l}}}Cb}{{c{f{AEj}}}{{B`{l}}}Cb}{{c{f{{AEn{AEl}}}}}{{B`{l}}}Cb}{Ab{{`{{Ed{}{{Eb{{Ll{AEhLj}}}}}}}}}}{K`{{`{{Ed{}{{Eb{{Ad{{Ll{AEhLj}}}}}}}}}}}}`{{{f{hNb}}}}{{{f{hNb}}c}eAF`AF`}11{{c{f{Dn}}}{{B`{AFb}}}Bf}{c{{B`{AFd}}}Bf}{c{{B`{{AFf{AFd}}}}}Bf}{c{{B`{{AFh{Nh}}}}}Bf}{{cAh}{{B`{{Af{Lj{Bh{{AFh{Nh}}}}{Bh{{AFf{AFd}}}}}}}}}Bf}{{c{f{{AFf{AFd}}}}}{{B`{l}}}Cb}{{c{Ad{{f{{Ln{NhLj}}}}}}Ah}{{B`{l}}}Cb}`{{{f{c}}Cd}AFjCj}{K`{{`{{Ed{}{{Eb{{Ad{{Ln{NhLj}}}}}}}}}}}}``{f{{f{c}}}{}}0{{{f{h}}}{{f{hc}}}{}}0{{{f{Mn}}}Mn}{{{f{AFl}}}AFl}{{f{f{hc}}}l{}}0{{fn}l}0{Ab{{f{c}}}{}}0{Ab{{f{hc}}}{}}0{Abl}0{{{f{Mn}}{f{hAl}}}An}{{{f{AFl}}{f{hAl}}}{{Bl{lDh}}}}{cc{}}0{{}Ab}0{{}c{}}0{MnAj}0{MnBh}{{{f{AFl}}}Lj}{{cAh}{{B`{AFl}}}Bf}{fc{}}0{c{{Bl{e}}}{}{}}0{{}{{Bl{c}}}{}}0{fBn}0{{{f{Mn}}}{{Ad{Lj}}}}{{}c{}}0{{{f{AFl}}c}{{B`{l}}}Cb}`````````{{{M`{AFn}}c{f{A@j}}}{{Bl{{M`{AG`}}A@h}}}{{AGd{AGb}{{Mh{{Aj{n}}}}}}}}{M`}{f{{f{c}}}{}}00000{{{f{h}}}{{f{hc}}}{}}00000`{{{f{AG`}}}AG`}{{{f{{M`{c}}}}}{{M`{c}}}{JbAGf}}{{{f{Mf}}}Mf}{{{f{{AGh{c}}}}}{{AGh{c}}}{JbAGf}}{{{f{A@f}}}A@f}{{f{f{hc}}}l{}}0000{{fn}l}0000{{{f{Mf}}{f{Mf}}}Df}{Ab{{f{c}}}{}}00000{Ab{{f{hc}}}{}}00000{Abl}00000{{{f{AG`}}{f{AG`}}}Ah}{{{f{{M`{c}}}}{f{{M`{c}}}}}Ah{AGjAGf}}{{{f{Mf}}{f{Mf}}}Ah}{{{f{{AGh{c}}}}{f{{AGh{c}}}}}Ah{AGjAGf}}{{{f{A@f}}{f{A@f}}}Ah}{{}Mf}{{{f{AGl}}{f{hAl}}}{{Bl{lDh}}}}{{{f{AG`}}{f{hAl}}}{{Bl{lDh}}}}{{{f{{M`{c}}}}{f{hAl}}}{{Bl{lDh}}}{MlAGf}}{{{f{Mf}}{f{hAl}}}{{Bl{lDh}}}}{{{f{{AGh{c}}}}{f{hAl}}}{{Bl{lDh}}}{MlAGf}}{{{f{A@f}}{f{hAl}}}{{Bl{lDh}}}}{cc{}}00000{{{f{Mf}}}{{f{{Aj{n}}}}}}{{}Ab}00000{{{f{AGl}}}{{Bh{On}}}}{{{f{AGl}}}{{Bh{Ef}}}}{{}c{}}00000{{{f{{M`{c}}}}}AhAGf}{{{f{N`}}c}eAGfAGf}{{{M`{c}}g}{{M`{e}}}AGfAGf{{N`{ce}}}}{{{f{N`}}}}{{{f{Mf}}}d}{{{Aj{n}}d}Mf}{Mf{{AGh{AFn}}}}{{{f{Mf}}{f{Mf}}}{{Ad{Df}}}}`{AGhMf}{c{{Bl{MfEj}}}Bf}{{{f{hc}}}{{Bl{{AGh{AG`}}Ej}}}Bf}{{{f{hc}}}{{Bl{A@fEj}}}Bf}{{{f{A@f}}}{{Ad{Eh}}}}{{{f{A@f}}}{{f{Ef}}}}{A@fEf}{AGh}{AGhd}`{fc{}}0000{c{{Bl{e}}}{}{}}00000{{}{{Bl{c}}}{}}00000{{{f{Mf}}}{{f{Jj}}}}{fBn}00000{{{f{A@f}}}On}{A@fOn}{{{f{{M`{c}}}}g}{{Bl{Lje}}}AGf{{Md{Mb}}}{{Mj{{f{Mf}}}{{Mh{{Bl{Lje}}}}}}}}{M`Bh}0{{}c{}}00000{{{f{Mf}}c}{{Bl{lEj}}}Cb}{{{f{{AGh{AG`}}}}c}{{Bl{lEj}}}Cb}{{{f{A@f}}c}{{Bl{lEj}}}Cb}````````{{{f{hAGn}}GhMfA@f}{{Bl{lA@h}}}}{{{f{hA@j}}Gj}Gh}{{{f{hAGn}}{f{Eh}}On}{{Bl{lA@h}}}}{f{{f{c}}}{}}0000{{{f{h}}}{{f{hc}}}{}}0000{AGn{{Ad{{M`{AFn}}}}}}{AGn{{Ad{AH`}}}}{{{f{ACn}}}ACn}{{{f{AFn}}}AFn}{{f{f{hc}}}l{}}0{{fn}l}0{{{f{ACn}}}{{f{A@f}}}}0{{}A@j}{Ab{{f{c}}}{}}0000{Ab{{f{hc}}}{}}0000{Abl}0000{{}AGn}{{{f{A@h}}{f{A@h}}}Ah}{{{f{A@h}}{f{hAl}}}{{Bl{lDh}}}}0{{{f{ACn}}{f{hAl}}}{{Bl{lDh}}}}{{{f{AFn}}{f{hAl}}}{{Bl{lDh}}}}{cc{}}0000{{}Ab}0000{{{f{AFn}}}{{Bh{On}}}}{{{f{AFn}}}{{Bh{Ef}}}}{{{f{AGn}}}{{f{{Bb{ACn}}}}}}{{}c{}}0000>{{{f{ACn}}}{{f{Mf}}}}0{{{f{AGn}}}{{f{{Bb{A@f}}}}}}{fc{}}0{fBj}{c{{Bl{e}}}{}{}}0000{{}{{Bl{c}}}{}}0000{fBn}0000{{{f{AGn}}}{{Bl{LjMb}}}}{{}c{}}0000`````````````````````````````{{{f{AHb}}}{{f{{AHf{{Aj{n}}AHd}}}}}}{{{f{AHh}}}{{f{{AHf{{Aj{n}}AHd}}}}}}{f{{f{c}}}{}}0000000000000{{{f{h}}}{{f{hc}}}{}}0000000000000{{{f{AHj}}}{{f{AH`}}}}{Ab{{f{c}}}{}}0000000000000{Ab{{f{hc}}}{}}0000000000000{{{f{AHd}}}{{f{{Bh{Gn}}}}}}{Abl}0000000000000{{{f{AHd}}{f{AHd}}}Ah}{AH`{{Bl{{Ad{{M`{AHl}}}}AHn}}}}{{{f{AHd}}{f{AI`}}Gn}{{Ad{{Af{GlFdFf}}}}}}{{{f{AH`}}}{{Bl{{Ad{{M`{AGl}}}}AHn}}}}{{{f{hAH`}}}{{Bl{lAIb}}}}{{{f{AId}}{f{hAl}}}{{Bl{lDh}}}}{{{f{AIf}}{f{hAl}}}{{Bl{lDh}}}}{{{f{AIh}}{f{hAl}}}{{Bl{lDh}}}}{{{f{AIj}}{f{hAl}}}{{Bl{lDh}}}}{{{f{AIb}}{f{hAl}}}{{Bl{lDh}}}}{{{f{AHn}}{f{hAl}}}{{Bl{lDh}}}}{{{f{AHl}}{f{hAl}}}{{Bl{lDh}}}}{{{f{AH`}}{f{hAl}}}{{Bl{lDh}}}}{{{f{AHb}}{f{hAl}}}{{Bl{lDh}}}}{{{f{AHh}}{f{hAl}}}{{Bl{lDh}}}}{{{f{AHd}}{f{hAl}}}{{Bl{lDh}}}}{cc{}}0000000000000{{{f{AHb}}}{{f{{AHf{{Aj{n}}{Bh{n}}}}}}}}0{{}Ab}0000000000000{{{f{AHl}}}{{Bh{On}}}}{{{f{AHl}}}{{Bh{Ef}}}}{{{f{AH`}}}{{f{{Bh{AHb}}}}}}{{{f{hAH`}}}{{f{h{Bb{AHb}}}}}}{{}c{}}0000000000000{{{f{AH`}}}{{f{{Bh{AHh}}}}}}{{{Bh{AHb}}{Bh{AHh}}}{{Bl{AH`AId}}}}{{{Aj{n}}d{Ad{d}}{Ad{d}}{Ad{d}}{Ad{{Bh{n}}}}Dj{Bh{n}}{Ad{{Bh{n}}}}{AHf{{Aj{n}}{Bh{n}}}}n{AHf{{Aj{n}}AHd}}{AHf{{Aj{n}}{Bh{n}}}}{AHf{{Aj{n}}{Bh{n}}}}{AHf{{Aj{n}}{Bh{n}}}}{AHf{{Aj{n}}{Bh{n}}}}{AHf{Bj{Bh{n}}}}}{{Bl{AHbAId}}}}{{Dj{Bh{n}}{Ad{{Bh{n}}}}{AHf{{Aj{n}}AHd}}{Ad{Bj}}{AHf{Bj{Bh{n}}}}}{{Bl{AHhAId}}}}{{{Aj{n}}{Bh{d}}}{{Bl{AHdAId}}}};{{{f{AHb}}}{{f{d}}}}{{{f{AHb}}}{{f{Jj}}}}{{{f{AHb}}}{{f{{AHf{Bj{Bh{n}}}}}}}}{{{f{AHh}}}{{f{{AHf{Bj{Bh{n}}}}}}}}{{{f{AHb}}}{{f{{Ad{Ef}}}}}}{{{f{AHh}}}{{f{{Ad{Ef}}}}}}{{{f{AHb}}}{{f{{Ad{d}}}}}}0{{{f{AHb}}}{{f{{AHf{{Aj{n}}{Bh{n}}}}}}}}{{{f{AHb}}}{{f{Ef}}}}{{{f{AHh}}}{{f{Ef}}}}5{{{f{AHd}}}{{f{{Aj{n}}}}}}4{{{f{hAIl}}{Aj{n}}AHd}l}{{{f{hAIn}}{Aj{n}}AHd}l}{{{f{hAIl}}{Bh{n}}}l}0{{{f{hAIl}}Bj{Bh{n}}}l}{{{f{hAIn}}Bj{Bh{n}}}l}{{{f{hAIl}}Ef}{{Bl{lAIh}}}}{{{f{hAIn}}Ef}{{Bl{lAIh}}}}44{{{f{hAIn}}Bj}l};{{{f{AHb}}}{{f{AJ`}}}}{{{f{hAHb}}Abc{f{Gj}}{f{{AJb{e}}}}}{{Bl{lAIj}}}{{Nf{AGb}{{Mh{{Aj{n}}}}}}}AJd}{c{{Bl{e}}}{}{}}0000000000000{{}{{Bl{c}}}{}}0000000000000{fBn}0000000000000{{{f{hAHj}}Abc}{{Bl{lAIh}}}{{Nf{AIl}{{Mh{{Bl{lAIh}}}}}}}}{{{f{hAHj}}Abc}{{Bl{lAIh}}}{{Nf{AIn}{{Mh{{Bl{lAIh}}}}}}}}{{{f{hAH`}}c}{{Bl{lAIh}}}{{Nf{AHj}{{Mh{{Bl{lAIh}}}}}}}}{{{f{AHh}}}{{f{{Ad{Bj}}}}}}{{{f{AHb}}}{{f{On}}}}{{{f{AHh}}}{{f{On}}}}{{{f{AHb}}}{{Bl{lAIf}}}}{{{f{AHh}}}{{Bl{lAIf}}}}{{}c{}}0000000000000{{}Aj}{{}{{`{{Ed{}{{Eb{{Ad{{M`{AG`}}}}}}}}}}}}{{}{{`{{Ed{}{{Eb{Mf}}}}}}}}{{}{{`{{Ed{}{{Eb{Ef}}}}}}}}{{}{{`{{Ed{}{{Eb{{AGh{AG`}}}}}}}}}}{{}{{`{{Ed{}{{Eb{A@f}}}}}}}}``{{{f{{AAj{}{{AJf{c}}}}}}{f{e}}CdgiAbAbAb}{{Bl{Onc}}}{}Cj{{AJl{}{{AJh{AJj}}}}}{{AJl{}{{AJh{Ab}}}}}}````{f{{f{c}}}{}}{{{f{h}}}{{f{hc}}}{}}{{{f{AJn}}}AJn}{{f{f{hc}}}l{}}{{fn}l}{Ab{{f{c}}}{}}{Ab{{f{hc}}}{}}{Abl}{{{f{AJn}}{f{c}}CdegAbAbAb}{{Bl{Oni}}}Cj{{AJl{}{{AJh{AJj}}}}}{{AJl{}{{AJh{Ab}}}}}{}}{{{f{AJn}}}On}{{{f{AJn}}{f{hAl}}}An}{cc{}}{{}Ab}{{}c{}}{OnAJn}{fc{}}{c{{Bl{e}}}{}{}}{{}{{Bl{c}}}{}}{fBn}{{}c{}}``````{f{{f{c}}}{}}{{{f{h}}}{{f{hc}}}{}}{{{f{AJj}}}AJj}{{f{f{hc}}}l{}}{{fn}l}{{{f{AK`}}}{{f{A@f}}}}{Ab{{f{c}}}{}}{Ab{{f{hc}}}{}}{Abl}{{{f{AJj}}{f{AJj}}}Ah}{{{f{AJj}}{f{hAl}}}An}{cc{}}{{}Ab}{{}c{}}{{{f{AK`}}}{{f{Mf}}}}{{{f{AKb}}}{{f{Ef}}}}{{{f{AK`}}}AJj}{{{f{AKb}}}Ab}{fc{}}{c{{Bl{e}}}{}{}}{{}{{Bl{c}}}{}}{fBn}{{{f{AKb}}}On}{{}c{}}```;{{}On}0`<<{f{{f{c}}}{}}0{{{f{h}}}{{f{hc}}}{}}0{{{f{AKd}}}AKd}{{{f{ABl}}}ABl}{{f{f{hc}}}l{}}0{{fn}l}0{Ab{{f{c}}}{}}0{Ab{{f{hc}}}{}}0{Abl}0{{{f{ABl}}{f{ABl}}}Ah}{{{f{AKd}}{f{c}}CdegAbAbAb}{{Bl{Oni}}}Cj{{AJl{}{{AJh{AJj}}}}}{{AJl{}{{AJh{Ab}}}}}{}}{{{f{AKd}}{f{hAl}}}An}{{{f{ABl}}{f{hAl}}}An}0{cc{}}{MbABl}1{{{f{AKd}}}Ab}{{}Ab}0{{}c{}}0{{{f{AKd}}}On}{{OnAbAbAb}{{Ad{AKd}}}}44{{}AKd}{fc{}}0{fBj}{c{{Bl{e}}}{}{}}0{{}{{Bl{c}}}{}}0{fBn}0{{}c{}}0{{}n}0000`````{{{f{AKf}}}{{f{{Aj{n}}}}}}{f{{f{c}}}{}}0{{{f{h}}}{{f{hc}}}{}}0{Ab{{f{c}}}{}}0{Ab{{f{hc}}}{}}0{Abl}0{cc{}}0{{{f{AKh}}}n}{{}Ab}0{{}c{}}0{{{f{{Ld{g}}}}{f{AKh}}{f{{Kf{Jn}}}}}AKf{{AF`{}{{AKj{AFd}}{AKl{AFd}}}}}AKn{{Lf{}{{AL`{c}}{ALb{e}}}}}}??>>==<<{{{f{{Ld{e}}}}{f{AKh}}}Jn{{AF`{}{{AKj{AFd}}{AKl{AFd}}}}}{{Lf{}{{AL`{c}}}}}}{{{f{{Ld{e}}}}{f{AKh}}{f{{Kf{Jn}}}}}JnAKn{{Lf{}{{ALb{c}}}}}}{Dd{{`{{Ed{}{{Eb{Jl}}}}}}}}{Dd{{`{{Ed{}{{Eb{K`}}}}}}}}{Dd{{`{{Ed{}{{Eb{{Ld{Lh}}}}}}}}}}{{}{{`{{Ed{}{{Eb{Jj}}}}}}}}``??>>{{{f{ALd}}cegi}k{}{}{}{}{}}{{{f{ALf}}cegi}k{}{}{}{}{}}??>>{{{f{ALd}}K`DddCd}c{}}{{{f{ALf}}K`DddCd}c{}}{{{f{ALd}}{Ad{{f{{Ll{Lj}}}}}}}c{}}{{{f{ALf}}{Ad{{f{{Ll{AEhLj}}}}}}}c{}}{{{f{ALd}}{Ad{{f{{Ln{Lj}}}}}}}c{}}{{{f{ALf}}{Ad{{f{{Ln{NhLj}}}}}}}Jn}{{{f{ALd}}{Ad{{f{M`}}}}}c{}}{{{f{ALf}}{Ad{{f{{M`{AG`}}}}}}}Jn}{Abl}0{cc{}}0{{}Ab}0{{}c{}}0{{K`Dd{f{{Kf{Jn}}}}}Jj}{c{{Bl{e}}}{}{}}0{{}{{Bl{c}}}{}}0{fBn}0{{}c{}}0```{f{{f{c}}}{}}0{{{f{h}}}{{f{hc}}}{}}0{{}ALh}{Ab{{f{c}}}{}}0{Ab{{f{hc}}}{}}0=={{{f{hALh}}}{{B`{l}}}}==<<;;{{{ALj{c}}}cBf}{{{ALj{c}}}{{ALn{ALl}}}Bf}{ALh{{ALn{ALl}}}}{c{{ALj{c}}}Bf}{{{f{h{ALj{c}}}}{f{h{Bb{n}}}}}{{B`{Ab}}}Bf}>>==<<;;{{{f{hALh}}{f{{Bb{n}}}}}{{B`{Ab}}}}````````````{{{f{AM`}}}{{f{{Aj{n}}}}}}{{{f{Hl}}}{{f{{Aj{n}}}}}}=======<<<<<<<{{{f{Gl}}}Gl}{{{f{AMb}}}AMb}{{{f{AMd}}}AMd}{{{f{AM`}}}AM`}{{{f{Hl}}}Hl}{{{f{AMf}}}AMf}{{{f{Hd}}}Hd}{{f{f{hc}}}l{}}000000{{fn}l}000000{{{f{Gl}}{f{Gl}}}Df}{{{f{Hl}}{f{Hl}}}Df}{{{f{Gl}}{f{Gl}}Gb}Gl}{{{f{AMd}}{f{AMd}}}Gb}{{{f{AM`}}{f{AM`}}}Gb}{{}Gl}{{}Hl}{Ab{{f{c}}}{}}000000{Ab{{f{hc}}}{}}000000{Abl}000000{{{f{Gl}}}Ab}{{{f{Hd}}}Ab}{{{f{Gl}}}{{Af{Ab{Ad{Ab}}}}}}{{{f{Hd}}}{{Af{Ab{Ad{Ab}}}}}}{{{f{Gl}}{f{Gl}}}Ah}{{{f{AMd}}{f{AMd}}}Ah}{{{f{AM`}}{f{AM`}}}Ah}{{{f{Hl}}{f{Hl}}}Ah}{{{f{Hd}}{f{Hd}}}Ah}`{{{f{Gl}}{f{hAl}}}{{Bl{lDh}}}}{{{f{AMb}}{f{hAl}}}{{Bl{lDh}}}}0{{{f{AMd}}{f{hAl}}}{{Bl{lDh}}}}{{{f{AM`}}{f{hAl}}}{{Bl{lDh}}}}{{{f{Hl}}{f{hAl}}}{{Bl{lDh}}}}{{{f{AMf}}{f{hAl}}}{{Bl{lDh}}}}0{{{f{Hd}}{f{hAl}}}{{Bl{lDh}}}}{cc{}}00{GlAMd}1{FfHl}2{dHl}{DjHl}{{{Aj{n}}}Hl}{AbHl}66{d{{Ad{AMd}}}}{dAMd}`{{{f{Gl}}{f{hc}}}lBd}{{{f{Hl}}{f{hc}}}lBd}{{{f{Hd}}{f{hc}}}lBd}{{{f{hHl}}}{{Bl{lAMf}}}}{{{f{AMd}}}d}{{}Ab}000000{{}c{}}000000{{{Aj{n}}}AM`}{{}Hl}{{{f{Gl}}}{{Ad{Gl}}}}{{{f{Gl}}{f{Gl}}}{{Ad{Df}}}}{{{f{Hl}}{f{Hl}}}{{Ad{Df}}}}`{fc{}}000000{fBj}0{c{{Bl{e}}}{}{}}{d{{Bl{Gl}}}}111{AMh{{Bl{Hl}}}}222{{}{{Bl{c}}}{}}000000{fBn}000000{{}c{}}000000`{f{{f{c}}}{}}{{{f{h}}}{{f{hc}}}{}}{{{f{AMj}}}{{f{AM`}}}}{{{f{AMj}}}{{f{{Aj{n}}}}}}{Ab{{f{c}}}{}}{Ab{{f{hc}}}{}}{Abl}{cc{}}{{{f{{Bb{n}}}}{f{{Bb{n}}}}{f{{Bb{AMd}}}}}AMj}{{}Ab}{{}c{}}{AMj{{Aj{n}}}}{c{{Bl{e}}}{}{}}?>=`<;{{{f{AI`}}}AI`}{{f{f{hc}}}l{}}{{fn}l}{{{f{AI`}}{f{AI`}}}Df}<;:{{{f{AI`}}{f{AI`}}}Ah}{{{f{AI`}}{f{hAl}}}{{Bl{lDh}}}};{{{Aj{n}}}AI`}{{{f{{Bb{n}}}}}{{Ad{AI`}}}}{{{f{AI`}}{f{hc}}}lBd}<;{{{f{AI`}}{f{AI`}}}{{Ad{Df}}}}{{{f{AI`}}}{{Aj{n}}}}{fc{}}<{{}{{Bl{c}}}{}}{fBn}{{}c{}}````{f{{f{c}}}{}}{{{f{h}}}{{f{hc}}}{}}{{{f{{AMl{c}}}}}{{AMl{c}}}{JbAMn}}{{f{f{hc}}}l{}}{{fn}l}{{{f{{AMl{c}}}}{f{{AMl{c}}}}}GbAMn}{Ab{{f{c}}}{}}{Ab{{f{hc}}}{}}{{{f{{AMl{c}}}}AMd}{{AMl{c}}}AMn}{{{f{{AMl{c}}}}AMd{f{{Bb{n}}}}}{{AMl{c}}}AMn}{Abl}{{{f{{AMl{c}}}}{f{hAl}}}{{Bl{lDh}}}{MlAMn}}{cc{}}{{}Ab}{{}c{}}{{{f{{Bb{{f{{Bb{n}}}}}}}}}{{AMl{c}}}AMn}{{{f{{AMl{c}}}}}{{Af{{f{{Aj{n}}}}{f{AM`}}}}}AMn}{fc{}}{c{{Bl{e}}}{}{}}{{}{{Bl{c}}}{}}{fBn}{{}c{}}``````{f{{f{c}}}{}}00{{{f{h}}}{{f{hc}}}{}}00{{{f{AN`}}}{{f{AM`}}}}{{{f{ANb}}}AMd}{{{f{ANd}}}ANd}{{f{f{hc}}}l{}}{{fn}l}{{{f{{Bb{n}}}}{f{{Bb{n}}}}ANf{f{{Bb{ANb}}}}}{{Bl{{Aj{n}}ANd}}}}{{{f{AN`}}}{{f{{Aj{n}}}}}}{Ab{{f{c}}}{}}00{Ab{{f{hc}}}{}}00{{{f{AN`}}AMd}AN`}{{{f{AN`}}AMd{f{{Bb{n}}}}}{{Aj{n}}}}{{{f{AN`}}AMd{f{{Bb{n}}}}}AN`}{Abl}00{{{f{ANd}}{f{ANd}}}Ah}{{{f{ANd}}{f{hAl}}}{{Bl{lDh}}}}0{cc{}}00{{{Aj{n}}AM`}AN`}{{{f{{Bb{n}}}}{f{{Bb{n}}}}ANf{f{{Bb{ANb}}}}}{{Bl{AN`ANd}}}}{{}Ab}00{{}c{}}00{{AMd{f{{Bb{n}}}}}ANb}{{{f{ANb}}}{{f{{Bb{n}}}}}}{fc{}}{fBj}{c{{Bl{e}}}{}{}}00{{}{{Bl{c}}}{}}00{fBn}00{{}c{}}00","D":"E@b","p":[[5,"BlockHeaderData",8],[1,"u32"],[1,"reference",null,null,1],[0,"mut"],[5,"BlockHash",8],[1,"unit"],[1,"u8"],[5,"BlockHeader",8],[1,"usize"],[6,"Option",2365,null,1],[1,"tuple",null,null,1],[1,"bool"],[1,"array"],[5,"Formatter",2366],[8,"Result",2366],[8,"Result",2367,null,1],[1,"slice"],[10,"Hasher",2368],[10,"Read",2369],[5,"Vec",2370],[5,"String",2371],[6,"Result",2372,null,1],[5,"TypeId",2373],[1,"i32"],[10,"Write",2369],[5,"BlockHeight",74,2374],[5,"MainNetwork",74,2374],[5,"TestNetwork",74,2374],[10,"Parameters",74,2374],[6,"NetworkUpgrade",74,2374],[6,"Network",74,2374],[10,"NetworkConstants",74,2374],[6,"NetworkType",74,2374],[6,"BranchId",74,2374],[6,"Ordering",2375],[5,"Error",2366],[1,"u64"],[10,"RangeBounds",2376],[1,"str"],[1,"i64"],[17,"Value"],[10,"Strategy",2377],[5,"Script",374,2378],[6,"TransparentAddress",374,2378],[5,"Error",2367],[6,"OpCode",2378],[6,"ConversionError",2379],[5,"InternalOvk",429,2380],[5,"ExternalOvk",429,2380],[5,"TransparentKeyScope",429,2380],[5,"NonHardenedChildIndex",429,2380],[5,"AccountPrivKey",429,2380],[5,"AccountPubKey",429,2380],[5,"ExternalIvk",429,2380],[5,"InternalIvk",429,2380],[5,"EphemeralIvk",429,2380],[5,"Choice",2381],[10,"IncomingViewingKey",429,2380],[6,"Error",2382],[5,"PublicKey",2383],[5,"SecretKey",2383],[5,"AccountId",2060,2384],[5,"ChildNumber",2385],[5,"Range",2376],[5,"NonHardenedChildRange",429,2380],[6,"Scope",2060,2384],[5,"ExtendedPrivateKey",2386],[5,"NonHardenedChildIter",429,2380],[5,"IterBridge",2387],[5,"DiversifierIndex",2060,2384],[5,"MemoBytes",660,2388],[6,"Error",660,2388],[5,"TextMemo",660,2388],[6,"Memo",660,2388],[5,"MerklePath",2389],[10,"HashSer",759],[5,"Address",2389],[5,"CommitmentTree",2390],[5,"Frontier",2390],[10,"Hashable",2389],[10,"Clone",2391],[5,"IncrementalWitness",2392],[5,"NonEmptyFrontier",2390],[5,"Position",2389],[5,"TxId",779,2393],[5,"Transaction",779],[5,"Hash",2394],[6,"TxVersion",779],[5,"TransparentDigests",779],[5,"TzeDigests",779],[5,"TxDigests",779],[17,"HeaderDigest"],[17,"TransparentDigest"],[17,"SaplingDigest"],[17,"OrchardDigest"],[17,"Digest"],[10,"TransactionDigest",779],[5,"TransactionData",779],[10,"Authorization",779],[5,"Authorized",779],[5,"ZatBalance",2395],[5,"Bundle",2396],[5,"Bundle",2397],[5,"Bundle",1316,2398],[6,"BalanceError",2395],[10,"From",2399,null,1],[5,"OutPoint",1316,2398],[17,"Output"],[10,"FnMut",2400],[10,"Debug",2366],[5,"Bundle",1273],[10,"MapAuth",1316,2398],[10,"MapAuth",1258],[10,"MapAuth",1232],[10,"FnOnce",2400],[5,"Authorized",2397],[5,"Builder",1028],[5,"OutgoingViewingKey",2401],[5,"Address",2402],[6,"Error",1028],[10,"ProverProgress",2403],[5,"FullViewingKey",2401],[5,"Note",2404],[5,"MerklePath",2405],[5,"OutgoingViewingKey",2406],[5,"PaymentAddress",2407],[5,"Zatoshis",2395],[5,"FullViewingKey",2406],[5,"Note",2408],[8,"MerklePath",2409],[5,"TxOut",1316,2398],[6,"Error",1464,2410],[5,"TransparentSigningSet",1464,2410],[5,"ExtendedSpendingKey",2411],[5,"SpendAuthorizingKey",2401],[5,"BuildResult",1028],[10,"RngCore",2412],[10,"CryptoRng",2412],[10,"SpendProver",2413],[10,"OutputProver",2413],[10,"FeeRule",1834],[5,"PcztResult",1028],[6,"BuildConfig",1028],[5,"PcztParts",1028],[5,"Progress",1028],[6,"FeeError",1028],[10,"Display",2366],[6,"Error",2403],[6,"SpendError",2414],[6,"FeeError",1891],[6,"BundleType",2414],[5,"Anchor",2405],[5,"BundleMetadata",2414],[6,"BundleType",2403],[5,"Anchor",2409],[5,"SpendInfo",2403],[5,"SaplingMetadata",2403],[5,"OutputInfo",2403],[5,"TransparentInputInfo",1464,2410],[5,"Sender",2415],[15,"Standard",1202],[8,"TxIn",1204],[8,"TxOut",1204],[10,"Authorization",2396],[5,"Action",2416],[5,"ExtractedNoteCommitment",2417],[5,"Flags",2396],[5,"TransmittedNoteCiphertext",2404],[5,"Nullifier",2418],[5,"Signature",2419],[10,"SigType",2419],[5,"Authorized",2396],[5,"ValueCommitment",2420],[8,"SpendAuth",2419],[5,"VerificationKey",2419],[10,"Authorization",2397],[8,"Base",2421],[8,"GrothProofBytes",2397],[5,"OutputDescription",2397],[5,"SpendDescription",2397],[6,"Zip212Enforcement",2422],[5,"JsDescription",1273],[5,"Unauthorized",1464,2410],[5,"Authorized",1316,2398],[5,"SignableInput",2423],[10,"Fn",2400],[10,"Authorization",1316,2398],[5,"TxIn",1316,2398],[10,"PartialEq",2375],[5,"EffectsOnly",1316,2398],[5,"TransparentBuilder",1464,2410],[5,"Bundle",1563,2424],[5,"Input",1563,2424],[5,"Bip32Derivation",1563,2424],[5,"BTreeMap",2425],[5,"Output",1563,2424],[5,"Updater",1563,2426],[5,"Unbound",1563,2427],[6,"TxExtractorError",1563,2427],[5,"SeedFingerprint",2253,2428],[6,"SpendFinalizerError",1563,2429],[6,"ParseError",1563,2430],[6,"VerifyError",1563,2431],[6,"UpdaterError",1563,2426],[6,"SignerError",1563,2432],[5,"InputUpdater",1563,2426],[5,"OutputUpdater",1563,2426],[5,"SighashType",2423],[5,"Secp256k1",2433],[10,"Signing",2434],[17,"Error"],[17,"Item"],[6,"InputSize",1861],[10,"IntoIterator",2435],[5,"FeeRule",1840],[10,"InputView",1861],[10,"OutputView",1861],[5,"FeeRule",1891],[5,"SignatureHash",1945],[6,"SignableInput",1945],[17,"SpendProof"],[17,"OutputProof"],[10,"TransparentAuthorizingContext",2423],[17,"SaplingAuth"],[17,"TransparentAuth"],[5,"TxIdDigester",1988],[5,"BlockTxCommitmentDigester",1988],[5,"HashWriter",2026],[5,"HashReader",2026],[8,"Sha256",2436],[8,"Output",2437],[5,"ChainCode",2060,2384],[5,"TryFromIntError",2060,2384],[5,"ChildIndex",2060,2384],[5,"DiversifierIndexOverflowError",2060,2384],[1,"u128"],[5,"SecretKey",2236,2438],[5,"HardenedOnlyKey",2278,2439],[10,"Context",2278,2439],[5,"SecretKey",2304,2440],[5,"PathElement",2304,2440],[6,"DerivationError",2304,2440],[1,"u16"],[6,"DigestError",779],[5,"Unauthorized",779],[8,"BalanceError",1222]],"r":[[74,2374],[75,2374],[76,2374],[77,2374],[78,2374],[79,2374],[80,2374],[81,2374],[82,2374],[83,2374],[84,2374],[85,2374],[86,2374],[87,2374],[88,2374],[89,2374],[90,2374],[91,2374],[92,2374],[93,2374],[94,2374],[95,2374],[96,2374],[97,2374],[98,2374],[99,2374],[100,2374],[101,2374],[102,2374],[103,2374],[104,2374],[105,2374],[106,2374],[107,2374],[108,2374],[109,2374],[110,2374],[111,2374],[112,2374],[113,2374],[114,2374],[115,2374],[116,2374],[117,2374],[118,2374],[119,2374],[120,2374],[121,2374],[122,2374],[123,2374],[124,2374],[125,2374],[126,2374],[127,2374],[128,2374],[129,2374],[130,2374],[131,2374],[132,2374],[133,2374],[134,2374],[135,2374],[136,2374],[137,2374],[138,2374],[139,2374],[140,2374],[141,2374],[142,2374],[143,2374],[144,2374],[145,2374],[146,2374],[147,2374],[148,2374],[149,2374],[150,2374],[151,2374],[152,2374],[153,2374],[154,2374],[155,2374],[156,2374],[157,2374],[158,2374],[159,2374],[160,2374],[161,2374],[162,2374],[163,2374],[164,2374],[165,2374],[166,2374],[167,2374],[168,2374],[169,2374],[170,2374],[171,2374],[172,2374],[173,2374],[174,2374],[175,2374],[176,2374],[177,2374],[178,2374],[179,2374],[180,2374],[181,2374],[182,2374],[183,2374],[184,2374],[185,2374],[186,2374],[187,2374],[188,2374],[189,2374],[190,2374],[191,2374],[192,2374],[193,2374],[194,2374],[195,2374],[196,2374],[197,2374],[198,2374],[199,2374],[200,2374],[201,2374],[202,2374],[203,2374],[204,2374],[205,2374],[206,2374],[207,2374],[208,2374],[209,2374],[210,2374],[211,2374],[212,2374],[213,2374],[214,2374],[215,2374],[216,2374],[217,2374],[218,2374],[219,2374],[220,2374],[221,2374],[222,2374],[223,2374],[224,2374],[225,2374],[226,2374],[227,2374],[228,2374],[229,2374],[230,2374],[231,2374],[232,2374],[233,2374],[234,2374],[235,2374],[236,2374],[237,2374],[238,2374],[239,2374],[240,2374],[241,2374],[242,2374],[243,2374],[244,2374],[245,2374],[246,2374],[247,2374],[248,2374],[249,2374],[250,2374],[251,2374],[252,2374],[253,2374],[254,2374],[255,2374],[256,2374],[257,2374],[258,2374],[259,2374],[260,2374],[261,2374],[262,2374],[263,2374],[264,2374],[265,2374],[266,2374],[267,2374],[268,2374],[269,2374],[270,2374],[271,2374],[272,2374],[273,2374],[274,2374],[275,2374],[276,2374],[277,2374],[278,2374],[279,2374],[280,2374],[281,2374],[282,2374],[283,2374],[284,2374],[285,2374],[286,2374],[287,2374],[288,2374],[289,2374],[290,2374],[291,2374],[292,2374],[293,2374],[294,2374],[295,2374],[296,2374],[297,2374],[298,2374],[299,2374],[300,2374],[301,2374],[302,2374],[303,2374],[304,2374],[305,2374],[306,2374],[307,2374],[308,2374],[309,2374],[310,2374],[311,2374],[312,2374],[313,2374],[314,2374],[315,2374],[316,2374],[317,2374],[318,2374],[319,2374],[320,2374],[321,2374],[322,2374],[323,2374],[324,2374],[325,2374],[326,2374],[327,2374],[328,2374],[329,2374],[330,2374],[331,2374],[332,2374],[333,2374],[334,2374],[335,2374],[336,2441],[337,2441],[338,2442],[339,2442],[340,2442],[341,2443],[342,2443],[343,2443],[344,2443],[345,2443],[346,2443],[347,2443],[348,2443],[349,2443],[350,2443],[351,2443],[352,2444],[353,2444],[354,2444],[355,2444],[356,2444],[357,2444],[358,2444],[359,2444],[360,2444],[361,2444],[362,2444],[363,2445],[364,2445],[365,2445],[366,2445],[367,2445],[368,2445],[369,2445],[370,2445],[371,2445],[372,2445],[373,2445],[374,2378],[375,2378],[376,2378],[377,2378],[378,2378],[379,2378],[380,2378],[381,2378],[382,2378],[383,2378],[384,2378],[385,2378],[386,2378],[387,2378],[388,2378],[389,2378],[390,2378],[391,2378],[392,2378],[393,2378],[394,2378],[395,2378],[396,2378],[397,2378],[398,2378],[399,2378],[400,2378],[401,2378],[402,2378],[403,2378],[404,2378],[405,2378],[406,2378],[407,2378],[409,2378],[410,2378],[411,2378],[412,2378],[413,2378],[414,2378],[415,2378],[416,2378],[417,2378],[418,2378],[419,2378],[420,2378],[421,2378],[422,2378],[423,2378],[424,2378],[425,2378],[426,2378],[427,2378],[428,2378],[429,2380],[430,2380],[431,2380],[432,2380],[433,2380],[434,2380],[435,2380],[436,2380],[437,2380],[438,2380],[439,2380],[440,2380],[441,2380],[442,2380],[443,2380],[444,2380],[445,2380],[446,2380],[447,2380],[448,2380],[449,2380],[450,2380],[451,2380],[452,2380],[453,2380],[454,2380],[455,2380],[456,2380],[457,2380],[458,2380],[459,2380],[460,2380],[461,2380],[462,2380],[463,2380],[464,2380],[465,2380],[466,2380],[467,2380],[468,2380],[469,2380],[470,2380],[471,2380],[472,2380],[473,2380],[474,2380],[475,2380],[476,2380],[477,2380],[478,2380],[479,2380],[480,2380],[481,2380],[482,2380],[483,2380],[484,2380],[485,2380],[486,2380],[487,2380],[488,2380],[489,2380],[490,2380],[491,2380],[492,2380],[493,2380],[494,2380],[495,2380],[496,2380],[497,2380],[498,2380],[499,2380],[500,2380],[501,2380],[502,2380],[503,2380],[504,2380],[505,2380],[506,2380],[507,2380],[508,2380],[509,2380],[510,2380],[511,2380],[512,2380],[513,2380],[514,2380],[515,2380],[516,2380],[517,2380],[518,2380],[519,2380],[520,2380],[521,2380],[522,2380],[523,2380],[524,2380],[525,2380],[526,2380],[527,2380],[528,2380],[529,2380],[530,2380],[531,2380],[532,2380],[533,2380],[534,2380],[535,2380],[536,2380],[537,2380],[538,2380],[539,2380],[540,2380],[541,2380],[542,2380],[543,2380],[544,2380],[545,2380],[546,2380],[547,2380],[548,2380],[549,2380],[550,2380],[551,2380],[552,2380],[553,2380],[554,2380],[555,2380],[556,2380],[557,2380],[558,2380],[559,2380],[560,2380],[561,2380],[562,2380],[563,2380],[564,2380],[565,2380],[566,2380],[567,2380],[568,2380],[569,2380],[570,2380],[571,2380],[572,2380],[573,2380],[574,2380],[575,2380],[576,2380],[577,2380],[578,2380],[579,2380],[580,2380],[581,2380],[582,2380],[583,2380],[584,2380],[585,2380],[586,2380],[587,2380],[588,2380],[589,2380],[590,2380],[591,2380],[592,2380],[593,2380],[594,2380],[595,2380],[596,2380],[597,2380],[598,2380],[599,2380],[600,2380],[601,2380],[602,2380],[603,2380],[604,2380],[605,2380],[606,2380],[607,2380],[608,2380],[609,2380],[610,2380],[611,2380],[612,2380],[613,2380],[614,2380],[615,2380],[616,2380],[617,2380],[618,2380],[619,2380],[620,2380],[621,2380],[622,2380],[623,2380],[624,2380],[625,2380],[626,2380],[627,2380],[628,2380],[629,2380],[630,2380],[631,2380],[632,2380],[633,2380],[634,2380],[635,2380],[636,2380],[637,2380],[638,2380],[639,2380],[640,2380],[641,2380],[642,2380],[643,2380],[644,2380],[645,2380],[646,2380],[647,2380],[648,2380],[649,2380],[650,2380],[651,2380],[652,2380],[653,2380],[654,2380],[655,2380],[656,2380],[657,2380],[658,2380],[659,2446],[660,2388],[661,2388],[662,2388],[663,2388],[664,2388],[665,2388],[666,2388],[667,2388],[668,2388],[669,2388],[670,2388],[671,2388],[672,2388],[673,2388],[674,2388],[675,2388],[676,2388],[677,2388],[678,2388],[679,2388],[680,2388],[681,2388],[682,2388],[683,2388],[684,2388],[685,2388],[686,2388],[687,2388],[688,2388],[689,2388],[690,2388],[691,2388],[692,2388],[693,2388],[694,2388],[695,2388],[696,2388],[697,2388],[698,2388],[699,2388],[700,2388],[701,2388],[702,2388],[703,2388],[704,2388],[705,2388],[706,2388],[707,2388],[708,2388],[709,2388],[710,2388],[711,2388],[712,2388],[713,2388],[714,2388],[715,2388],[716,2388],[717,2388],[718,2388],[719,2388],[720,2388],[721,2388],[722,2388],[723,2388],[724,2388],[725,2388],[726,2388],[727,2388],[728,2388],[729,2388],[730,2388],[731,2388],[732,2388],[733,2388],[734,2388],[735,2388],[736,2388],[737,2388],[738,2388],[739,2388],[740,2388],[741,2388],[742,2388],[743,2388],[744,2388],[745,2388],[746,2388],[747,2388],[748,2388],[749,2388],[750,2388],[751,2388],[752,2388],[753,2388],[754,2388],[755,2388],[756,2388],[757,2388],[758,2388],[799,2393],[804,2393],[806,2393],[816,2393],[827,2393],[832,2393],[837,2393],[842,2393],[846,2393],[857,2393],[872,2393],[882,2393],[883,2393],[884,2393],[890,2393],[891,2393],[900,2393],[910,2393],[916,2393],[919,2393],[930,2393],[948,2393],[951,2393],[966,2393],[971,2393],[974,2393],[984,2393],[997,2393],[1010,2393],[1020,2393],[1206,1273],[1316,2398],[1317,2398],[1318,2398],[1319,2398],[1320,2398],[1321,2398],[1322,2398],[1323,2398],[1324,2398],[1325,2398],[1326,2398],[1327,2398],[1328,2398],[1329,2398],[1330,2398],[1331,2398],[1332,2398],[1333,2398],[1334,2398],[1335,2398],[1336,2398],[1337,2398],[1338,2398],[1340,2398],[1341,2398],[1342,2398],[1343,2398],[1344,2398],[1345,2398],[1346,2398],[1347,2398],[1348,2398],[1349,2398],[1350,2398],[1351,2398],[1352,2398],[1353,2398],[1354,2398],[1355,2398],[1356,2398],[1357,2398],[1358,2398],[1359,2398],[1360,2398],[1361,2398],[1362,2398],[1363,2398],[1364,2398],[1365,2398],[1366,2398],[1367,2398],[1368,2398],[1369,2398],[1370,2398],[1371,2398],[1372,2398],[1373,2398],[1374,2398],[1375,2398],[1376,2398],[1377,2398],[1378,2398],[1379,2398],[1380,2398],[1381,2398],[1382,2398],[1383,2398],[1384,2398],[1385,2398],[1386,2398],[1387,2398],[1388,2398],[1389,2398],[1390,2398],[1391,2398],[1392,2398],[1393,2398],[1394,2398],[1395,2398],[1396,2398],[1397,2398],[1398,2398],[1399,2398],[1400,2398],[1401,2398],[1402,2398],[1403,2398],[1404,2398],[1405,2398],[1406,2398],[1407,2398],[1408,2398],[1409,2398],[1410,2398],[1411,2398],[1412,2398],[1413,2398],[1414,2398],[1416,2398],[1417,2398],[1418,2398],[1419,2398],[1420,2398],[1421,2398],[1422,2398],[1423,2398],[1424,2398],[1425,2398],[1426,2398],[1427,2398],[1428,2398],[1429,2398],[1430,2398],[1431,2398],[1432,2398],[1433,2398],[1434,2398],[1435,2398],[1436,2398],[1437,2398],[1438,2398],[1439,2398],[1440,2398],[1441,2398],[1442,2398],[1443,2398],[1444,2398],[1445,2398],[1446,2398],[1447,2398],[1448,2398],[1449,2398],[1450,2398],[1451,2398],[1452,2398],[1453,2398],[1454,2398],[1455,2398],[1456,2398],[1457,2398],[1458,2398],[1459,2398],[1460,2398],[1461,2398],[1462,2398],[1463,2398],[1464,2410],[1465,2410],[1466,2410],[1467,2410],[1468,2410],[1469,2410],[1470,2410],[1471,2410],[1472,2410],[1473,2410],[1474,2410],[1475,2410],[1476,2410],[1477,2410],[1478,2410],[1479,2410],[1480,2410],[1481,2410],[1482,2410],[1483,2410],[1484,2410],[1485,2410],[1486,2410],[1487,2410],[1488,2410],[1489,2410],[1490,2410],[1491,2410],[1492,2410],[1493,2410],[1494,2410],[1495,2410],[1496,2410],[1497,2410],[1498,2410],[1499,2410],[1500,2410],[1501,2410],[1502,2410],[1503,2410],[1504,2410],[1505,2410],[1506,2410],[1507,2410],[1508,2410],[1509,2410],[1510,2410],[1511,2410],[1512,2410],[1513,2410],[1514,2410],[1515,2410],[1516,2410],[1517,2410],[1518,2410],[1519,2410],[1520,2410],[1521,2410],[1522,2410],[1523,2410],[1524,2410],[1525,2410],[1526,2410],[1527,2410],[1528,2410],[1529,2410],[1530,2410],[1531,2410],[1532,2410],[1533,2410],[1534,2410],[1535,2410],[1536,2410],[1537,2410],[1538,2410],[1539,2410],[1540,2410],[1541,2410],[1542,2410],[1543,2410],[1544,2410],[1545,2410],[1546,2410],[1547,2410],[1548,2410],[1549,2410],[1550,2410],[1551,2410],[1552,2410],[1553,2410],[1554,2410],[1555,2410],[1556,2410],[1557,2410],[1558,2410],[1559,2410],[1560,2410],[1561,2410],[1562,2410],[1563,2424],[1564,2424],[1565,2424],[1566,2426],[1567,2426],[1568,2430],[1569,2430],[1570,2430],[1571,2430],[1572,2427],[1573,2429],[1574,2431],[1575,2426],[1576,2424],[1577,2426],[1578,2430],[1579,2432],[1580,2429],[1581,2427],[1582,2427],[1583,2429],[1584,2431],[1585,2429],[1586,2426],[1587,2426],[1588,2431],[1589,2431],[1590,2426],[1591,2432],[1592,2424],[1593,2424],[1594,2426],[1595,2426],[1596,2426],[1597,2430],[1598,2431],[1599,2426],[1600,2432],[1601,2429],[1602,2427],[1603,2427],[1604,2424],[1605,2424],[1606,2424],[1607,2424],[1608,2426],[1609,2426],[1610,2426],[1611,2430],[1612,2431],[1613,2426],[1614,2432],[1615,2429],[1616,2427],[1617,2427],[1618,2424],[1619,2424],[1620,2424],[1621,2424],[1622,2426],[1623,2426],[1624,2426],[1625,2426],[1626,2430],[1627,2431],[1628,2426],[1629,2432],[1630,2429],[1631,2427],[1632,2427],[1633,2424],[1634,2424],[1635,2424],[1636,2424],[1637,2426],[1638,2426],[1639,2426],[1640,2430],[1641,2431],[1642,2426],[1643,2432],[1644,2429],[1645,2427],[1646,2427],[1647,2424],[1648,2424],[1649,2424],[1650,2424],[1651,2424],[1652,2426],[1653,2426],[1654,2426],[1655,2430],[1656,2431],[1657,2426],[1658,2432],[1659,2429],[1660,2427],[1661,2427],[1662,2424],[1663,2424],[1664,2424],[1665,2424],[1666,2424],[1667,2424],[1668,2424],[1669,2424],[1670,2424],[1671,2430],[1672,2431],[1673,2426],[1674,2432],[1675,2429],[1676,2427],[1677,2427],[1678,2424],[1679,2424],[1680,2424],[1681,2424],[1682,2426],[1683,2426],[1684,2426],[1685,2430],[1686,2431],[1687,2426],[1688,2432],[1689,2429],[1690,2427],[1691,2427],[1692,2424],[1693,2424],[1694,2424],[1695,2424],[1696,2424],[1697,2424],[1698,2426],[1699,2426],[1700,2426],[1701,2430],[1702,2431],[1703,2426],[1704,2432],[1705,2429],[1706,2427],[1707,2427],[1708,2424],[1709,2424],[1710,2424],[1711,2424],[1712,2427],[1713,2427],[1714,2424],[1715,2424],[1716,2426],[1717,2426],[1718,2426],[1719,2430],[1720,2431],[1721,2426],[1722,2432],[1723,2429],[1724,2427],[1725,2427],[1726,2424],[1727,2424],[1728,2424],[1729,2424],[1730,2424],[1731,2424],[1732,2424],[1733,2424],[1734,2424],[1735,2424],[1736,2424],[1737,2424],[1738,2424],[1739,2424],[1740,2424],[1741,2424],[1742,2424],[1743,2424],[1744,2424],[1745,2424],[1746,2424],[1747,2424],[1748,2424],[1749,2424],[1750,2426],[1751,2426],[1752,2426],[1753,2426],[1754,2426],[1755,2426],[1756,2426],[1757,2426],[1758,2426],[1759,2426],[1760,2426],[1761,2424],[1762,2424],[1763,2424],[1764,2426],[1765,2426],[1766,2426],[1767,2430],[1768,2431],[1769,2426],[1770,2432],[1771,2429],[1772,2427],[1773,2427],[1774,2424],[1775,2424],[1776,2424],[1777,2424],[1778,2426],[1779,2426],[1780,2426],[1781,2430],[1782,2431],[1783,2426],[1784,2432],[1785,2429],[1786,2427],[1787,2427],[1788,2424],[1789,2424],[1790,2424],[1791,2424],[1792,2426],[1793,2426],[1794,2426],[1795,2430],[1796,2431],[1797,2426],[1798,2432],[1799,2429],[1800,2427],[1801,2427],[1802,2424],[1803,2424],[1804,2424],[1805,2424],[1806,2426],[1807,2426],[1808,2424],[1809,2424],[1810,2424],[1811,2424],[1812,2424],[1813,2424],[1814,2426],[1815,2426],[1816,2426],[1817,2430],[1818,2431],[1819,2426],[1820,2432],[1821,2429],[1822,2427],[1823,2427],[1824,2424],[1825,2424],[1826,2424],[1827,2424],[1828,2447],[1829,2447],[1830,2447],[1831,2447],[1832,2447],[1833,2447],[2060,2384],[2061,2384],[2062,2384],[2063,2384],[2064,2384],[2065,2384],[2066,2384],[2067,2384],[2068,2384],[2069,2384],[2070,2384],[2071,2384],[2072,2384],[2073,2384],[2074,2384],[2075,2384],[2076,2384],[2077,2384],[2078,2384],[2079,2384],[2080,2384],[2081,2384],[2082,2384],[2083,2384],[2084,2384],[2085,2384],[2086,2384],[2087,2384],[2088,2384],[2089,2384],[2090,2384],[2091,2384],[2092,2384],[2093,2384],[2094,2384],[2095,2384],[2096,2384],[2097,2384],[2098,2384],[2099,2384],[2100,2384],[2101,2384],[2102,2384],[2103,2384],[2104,2384],[2105,2384],[2106,2384],[2107,2384],[2108,2384],[2109,2384],[2110,2384],[2111,2384],[2112,2384],[2113,2384],[2114,2384],[2115,2384],[2116,2384],[2117,2384],[2118,2384],[2119,2384],[2120,2384],[2121,2384],[2122,2384],[2123,2384],[2124,2384],[2125,2384],[2126,2384],[2127,2384],[2128,2384],[2129,2384],[2130,2384],[2131,2384],[2132,2384],[2133,2384],[2134,2384],[2135,2384],[2136,2384],[2137,2384],[2138,2384],[2139,2384],[2140,2384],[2141,2384],[2142,2384],[2143,2384],[2144,2384],[2145,2384],[2146,2384],[2147,2384],[2148,2384],[2149,2384],[2150,2384],[2151,2384],[2152,2384],[2153,2384],[2154,2384],[2155,2384],[2156,2384],[2157,2384],[2158,2384],[2159,2384],[2160,2384],[2161,2384],[2162,2384],[2163,2384],[2164,2384],[2165,2384],[2166,2384],[2167,2384],[2168,2384],[2169,2384],[2170,2384],[2171,2384],[2172,2384],[2173,2384],[2174,2384],[2175,2384],[2176,2384],[2177,2384],[2178,2384],[2179,2384],[2180,2384],[2181,2384],[2182,2384],[2183,2384],[2184,2384],[2185,2384],[2186,2384],[2187,2384],[2188,2384],[2189,2384],[2190,2384],[2191,2384],[2192,2384],[2193,2384],[2194,2384],[2195,2384],[2196,2384],[2197,2384],[2198,2384],[2199,2384],[2200,2384],[2201,2384],[2202,2384],[2203,2384],[2204,2384],[2205,2384],[2206,2384],[2207,2384],[2208,2384],[2209,2384],[2210,2384],[2211,2384],[2212,2384],[2213,2384],[2214,2384],[2215,2384],[2216,2384],[2217,2384],[2218,2384],[2219,2384],[2220,2384],[2221,2384],[2222,2384],[2223,2384],[2224,2384],[2225,2384],[2226,2384],[2227,2384],[2228,2384],[2229,2384],[2230,2384],[2231,2384],[2232,2384],[2233,2384],[2234,2384],[2235,2384],[2236,2438],[2237,2438],[2238,2438],[2239,2438],[2240,2438],[2241,2438],[2242,2438],[2243,2438],[2244,2438],[2245,2438],[2246,2438],[2247,2438],[2248,2438],[2249,2438],[2250,2438],[2251,2438],[2252,2438],[2253,2428],[2254,2428],[2255,2428],[2256,2428],[2257,2428],[2258,2428],[2259,2428],[2260,2428],[2261,2428],[2262,2428],[2263,2428],[2264,2428],[2265,2428],[2266,2428],[2267,2428],[2268,2428],[2269,2428],[2270,2428],[2271,2428],[2272,2428],[2273,2428],[2274,2428],[2275,2428],[2276,2428],[2277,2428],[2278,2439],[2279,2439],[2280,2439],[2281,2439],[2282,2439],[2283,2439],[2284,2439],[2285,2439],[2286,2439],[2287,2439],[2288,2439],[2289,2439],[2290,2439],[2291,2439],[2292,2439],[2293,2439],[2294,2439],[2295,2439],[2296,2439],[2297,2439],[2298,2439],[2299,2439],[2300,2439],[2301,2439],[2302,2439],[2303,2439],[2304,2440],[2305,2440],[2306,2440],[2307,2440],[2308,2440],[2309,2440],[2310,2440],[2311,2440],[2312,2440],[2313,2440],[2314,2440],[2315,2440],[2316,2440],[2317,2440],[2318,2440],[2319,2440],[2320,2440],[2321,2440],[2322,2440],[2323,2440],[2324,2440],[2325,2440],[2326,2440],[2327,2440],[2328,2440],[2329,2440],[2330,2440],[2331,2440],[2332,2440],[2333,2440],[2334,2440],[2335,2440],[2336,2440],[2337,2440],[2338,2440],[2339,2440],[2340,2440],[2341,2440],[2342,2440],[2343,2440],[2344,2440],[2345,2440],[2346,2440],[2347,2440],[2348,2440],[2349,2440],[2350,2440],[2351,2440],[2352,2440],[2353,2440],[2354,2440],[2355,2440],[2356,2440],[2357,2440],[2358,2440],[2359,2440],[2360,2440],[2361,2440],[2362,2440],[2363,2440],[2364,2440]],"b":[[36,"impl-Debug-for-BlockHash"],[37,"impl-Display-for-BlockHash"],[210,"impl-Debug-for-BlockHeight"],[211,"impl-Display-for-BlockHeight"],[216,"impl-Debug-for-NetworkUpgrade"],[217,"impl-Display-for-NetworkUpgrade"],[292,"impl-Sub-for-BlockHeight"],[293,"impl-Sub%3Cu32%3E-for-BlockHeight"],[305,"impl-TryFrom%3Ci64%3E-for-BlockHeight"],[306,"impl-TryFrom%3Ci32%3E-for-BlockHeight"],[307,"impl-TryFrom%3Cu64%3E-for-BlockHeight"],[413,"impl-Shl%3C%26%5Bu8%5D%3E-for-Script"],[414,"impl-Shl%3COpCode%3E-for-Script"],[619,"impl-TryFrom%3CChildNumber%3E-for-NonHardenedChildIndex"],[620,"impl-TryFrom%3CDiversifierIndex%3E-for-NonHardenedChildIndex"],[713,"impl-Display-for-Error"],[714,"impl-Debug-for-Error"],[719,"impl-From%3C%26Memo%3E-for-MemoBytes"],[720,"impl-From%3CMemo%3E-for-MemoBytes"],[744,"impl-TryFrom%3CMemoBytes%3E-for-Memo"],[745,"impl-TryFrom%3C%26MemoBytes%3E-for-Memo"],[890,"impl-Debug-for-TxId"],[891,"impl-Display-for-TxId"],[1107,"impl-Debug-for-FeeError%3CFE%3E"],[1108,"impl-Display-for-FeeError%3CFE%3E"],[1109,"impl-Debug-for-Error%3CFE%3E"],[1110,"impl-Display-for-Error%3CFE%3E"],[1118,"impl-From%3CFeeError%3CFE%3E%3E-for-Error%3CFE%3E"],[1119,"impl-From%3CBalanceError%3E-for-Error%3CFE%3E"],[1121,"impl-From%3CError%3E-for-Error%3CFE%3E"],[1122,"impl-From%3CSpendError%3E-for-Error%3CFE%3E"],[1493,"impl-InputView-for-TransparentInputInfo"],[1494,"impl-TransparentInputInfo"],[1513,"impl-Debug-for-Error"],[1514,"impl-Display-for-Error"],[1536,"impl-InputView-for-TransparentInputInfo"],[1537,"impl-TransparentInputInfo"],[1919,"impl-Debug-for-FeeError"],[1920,"impl-Display-for-FeeError"],[2148,"impl-Display-for-TryFromIntError"],[2149,"impl-Debug-for-TryFromIntError"],[2153,"impl-Display-for-DiversifierIndexOverflowError"],[2154,"impl-Debug-for-DiversifierIndexOverflowError"],[2161,"impl-From%3CNonHardenedChildIndex%3E-for-DiversifierIndex"],[2163,"impl-From%3Cu32%3E-for-DiversifierIndex"],[2164,"impl-From%3Cu64%3E-for-DiversifierIndex"],[2165,"impl-From%3C%5Bu8;+11%5D%3E-for-DiversifierIndex"],[2166,"impl-From%3Cusize%3E-for-DiversifierIndex"],[2336,"impl-Display-for-DerivationError"],[2337,"impl-Debug-for-DerivationError"]],"c":"OzAAAAEAABwADgACAAMACAAAAJkBAABYAgAAtQQAALgEBQDFBAAAxwQDAM0EAAA8BQAAiAUAAJoHBACgBwAAyQgAAA==","e":"OzAAAAEAALwGsQACAAMACAAAAAwAGwAtAAMANAAKAEAACgBtAAMAcgADAHcAAwB8ACcApQA2AN4AAADlAAQA7QADAPIAAwD3AAMA/AADAAEBAwAGAQMACwEKAB8BAwAkAS4AdwEAAHkBAAB8ARUAlAECAJkBAgCeAQ8AvwEtAO4BAADxARUAEQIOACECBgAqAgAALQIAADYCAAA6AgoAUQICAFYCAQBbAgIAXwI1AJkCAACeAgAAoQIiAMYCBwDXAgMA4AIIAOsCDAD7AgAA/QIBAAEDAgAFAwAABwMAAAkDAQAOAwoAGwMEACIDAAAkAxYAPAMQAE8DKQB7AwkAjwMAAJIDAACVAw0ArQMCALEDEQDEAx4A5AMMAPIDEgAJBAAACwQAABAEAAAbBAAAIwQPADUEAwA6BBcAUwQIAF8EAQBiBAEAaQQHAHkEAAB8BAAAfwQAAIEEAgCHBAAAigQCAI4EAACRBCAAswQKAL8EBADFBBgA3wQGAOcEAwDsBAMA8gQBAPUEAAD3BAAA+QQUABAFAQAUBQIAGAUIACIFBQApBToAZQUFAHIFBwCBBQIAhgUGAI4FFQClBQcArgUNAL0FAQDABQAAwwULANAFFwDpBQQA8wUGAAEGAQAEBhcAIQYBADsGGwBYBhsAdQYOAIgGCgCjBg8A5QYpABcHFAAuBwAAMgcIADwHAAA+BwAAQQcEAEwHBABSBwQAWAcAAF4HAwBjBwAAbQcUAIMHAACGBwEAjwcfALEHAgC3BwgAwQcDAMcHEwDdBwEA4QcJAO0HCwD7BwEA/wcAAAMICQAbCEcAZAgIAHAIAAByCAAAdAgDAH0IAgCCCAYAkwgBAJYIJgC+CAEAwggCAMcIAADKCAMAzwgKAN0IAQDgCAAA4ggEAOsIBwD1CAEA+AgAAPwIBAAHCQUADwkCABQJBQAdCQUAKAkCADAJDQA=","P":[[12,"T"],[18,""],[19,"T"],[20,""],[22,"T"],[28,""],[39,"T"],[42,""],[44,"__H"],[45,""],[48,"U"],[51,""],[54,"R"],[55,""],[57,"T"],[58,""],[59,"U,T"],[62,""],[63,"U"],[66,""],[70,"V"],[73,"W"],[80,""],[127,"T"],[141,""],[148,"T"],[155,""],[168,"T"],[182,""],[219,"P"],[220,"T"],[221,""],[222,"T"],[228,""],[230,"__H"],[233,"P"],[235,""],[277,"U"],[284,""],[295,"T"],[302,""],[304,"U,T"],[305,""],[308,"U,T"],[313,""],[314,"U,T"],[315,"U"],[322,""],[329,"V"],[336,""],[337,"P"],[341,""],[379,"T"],[383,""],[385,"T"],[387,""],[391,"T"],[395,""],[401,"T"],[403,"__H"],[404,""],[406,"U"],[409,""],[410,"R"],[411,""],[416,"T"],[418,"U,T"],[420,""],[422,"U"],[424,""],[426,"V"],[428,"W"],[446,""],[448,"T"],[470,""],[477,"T"],[484,""],[496,"T"],[518,""],[526,"P"],[527,""],[551,"T"],[553,""],[554,"T"],[556,""],[557,"T"],[564,""],[567,"P"],[568,""],[581,"U"],[592,"I"],[593,""],[597,"T"],[598,""],[606,"T"],[613,"U,T"],[619,""],[621,"U,T"],[626,"U"],[637,""],[648,"V"],[659,""],[672,"T"],[680,""],[684,"T"],[688,""],[694,"T"],[696,""],[697,"T"],[703,""],[717,"T"],[719,""],[721,"T"],[723,""],[730,"U"],[734,""],[736,"T"],[740,""],[741,"U,T"],[744,""],[746,"U,T"],[747,"U"],[751,""],[755,"V"],[760,"Node"],[761,"R"],[763,"R,Node"],[764,"R,H"],[766,"R,Node"],[767,"R"],[768,"R,H"],[769,"R"],[771,"W"],[773,"Node,W"],[774,"W,H"],[775,"Node,W"],[776,"W,H"],[777,"W"],[804,""],[806,"T"],[827,""],[829,"A"],[832,"T"],[837,""],[843,"TransactionDigest::HeaderDigest,TransactionDigest::TransparentDigest,TransactionDigest::SaplingDigest,TransactionDigest::OrchardDigest,TransactionDigest::Digest"],[845,"A"],[846,"T"],[851,""],[852,"T"],[867,"A,D"],[868,"TransactionDigest::HeaderDigest,TransactionDigest::TransparentDigest,TransactionDigest::SaplingDigest,TransactionDigest::OrchardDigest,TransactionDigest::Digest"],[872,""],[887,"A"],[888,"A,E,F"],[890,""],[895,"A"],[899,""],[900,"T"],[910,""],[911,"A"],[912,""],[916,"__H"],[917,""],[930,"U"],[940,""],[941,"A"],[942,"A,B"],[944,"A"],[945,""],[951,"R"],[954,"A"],[955,""],[956,"A"],[957,""],[961,"A"],[962,""],[963,"R"],[964,"W"],[966,"T"],[971,""],[972,"A"],[973,""],[974,"U,T"],[984,"U"],[994,"A,E,B"],[996,""],[1008,"A"],[1009,""],[1010,"V"],[1020,"W"],[1035,""],[1052,"P,U,FE"],[1056,"P,U"],[1058,"T"],[1074,"P,U,R,SP,OP,FR"],[1075,"P,U,R,FR"],[1076,""],[1077,"T"],[1078,""],[1081,"T"],[1097,""],[1107,"FE"],[1111,""],[1112,"P"],[1114,""],[1115,"T"],[1118,"FE"],[1120,"T"],[1121,"FE"],[1123,"T"],[1127,"P,U,FR"],[1128,""],[1136,"U"],[1144,""],[1145,"P,U,R"],[1146,"P"],[1147,""],[1151,"P,U"],[1152,""],[1156,"P,U"],[1157,""],[1159,"P,U"],[1161,"T"],[1162,""],[1166,"P,U"],[1168,"U,T"],[1176,"U"],[1184,""],[1193,"V"],[1201,"P"],[1202,""],[1236,"A,B"],[1237,""],[1238,"R"],[1244,"R,T"],[1245,"R"],[1249,"W"],[1256,""],[1260,"A,B"],[1261,""],[1263,"R"],[1268,"W"],[1271,""],[1275,"T"],[1279,""],[1281,"T"],[1283,""],[1285,"T"],[1289,""],[1293,"T"],[1295,""],[1297,"U"],[1299,""],[1303,"R"],[1304,"T"],[1306,"U,T"],[1308,"U"],[1310,""],[1313,"V"],[1315,"W"],[1325,"F"],[1326,""],[1327,"T"],[1340,""],[1341,"A"],[1342,""],[1343,"A"],[1344,""],[1345,"T"],[1350,""],[1356,"T"],[1368,""],[1375,"A"],[1376,""],[1377,"A"],[1378,""],[1382,"A"],[1383,""],[1384,"A"],[1385,""],[1386,"T"],[1392,""],[1401,"U"],[1407,"A"],[1408,"A,B"],[1409,"A,B,F"],[1410,""],[1417,"R"],[1420,""],[1426,"T"],[1431,"U,T"],[1437,"U"],[1443,""],[1452,"A,E,F"],[1453,""],[1455,"V"],[1461,"W"],[1472,""],[1475,"T"],[1485,""],[1489,"T"],[1491,""],[1496,"T"],[1506,""],[1517,"T"],[1522,""],[1530,"U"],[1535,""],[1539,"T"],[1541,""],[1542,"U,T"],[1547,"U"],[1552,""],[1558,"V"],[1592,""],[1594,"T"],[1622,""],[1623,"T"],[1651,""],[1682,"T"],[1696,""],[1716,"U"],[1730,""],[1763,"F,C"],[1764,"U,T"],[1778,"U"],[1792,""],[1806,"F"],[1809,""],[1814,"V"],[1828,""],[1836,"FeeRule::Error,P"],[1841,"T"],[1843,""],[1844,"T"],[1845,""],[1846,"T"],[1848,""],[1849,"P,FeeRule::Error"],[1850,""],[1852,"T"],[1853,""],[1854,"U"],[1855,""],[1856,"T"],[1857,"U,T"],[1858,"U"],[1859,""],[1860,"V"],[1867,"T"],[1869,""],[1870,"T"],[1871,""],[1873,"T"],[1875,""],[1878,"T"],[1879,""],[1880,"U"],[1881,""],[1885,"T"],[1886,"U,T"],[1887,"U"],[1888,""],[1890,"V"],[1894,""],[1900,"T"],[1904,""],[1906,"T"],[1908,""],[1910,"T"],[1914,""],[1917,"P,FeeRule::Error"],[1918,""],[1921,"T"],[1922,""],[1923,"T"],[1924,""],[1927,"U"],[1929,""],[1934,"T"],[1936,""],[1937,"U,T"],[1939,"U"],[1941,""],[1943,"V"],[1945,""],[1956,"T"],[1964,""],[1966,"T"],[1968,""],[1971,"U"],[1973,"SA,TA,A"],[1974,"U,T"],[1976,"U"],[1978,""],[1980,"V"],[1982,"SA,A"],[1983,"TA,A"],[1984,""],[1990,"T"],[1994,"TransactionDigest::HeaderDigest,TransactionDigest::TransparentDigest,TransactionDigest::SaplingDigest,TransactionDigest::OrchardDigest,TransactionDigest::Digest"],[1996,"T"],[2000,"TransactionDigest::HeaderDigest"],[2002,"TransactionDigest::OrchardDigest"],[2004,"TransactionDigest::SaplingDigest"],[2005,""],[2006,"TransactionDigest::TransparentDigest"],[2007,""],[2010,"T"],[2012,""],[2014,"U"],[2016,""],[2017,"U,T"],[2019,"U"],[2021,""],[2023,"V"],[2028,"T"],[2032,""],[2033,"T"],[2037,""],[2040,"T"],[2042,""],[2044,"U"],[2046,"R"],[2048,""],[2049,"R"],[2051,"U,T"],[2053,"U"],[2055,""],[2057,"V"],[2059,""],[2074,"T"],[2088,""],[2095,"T"],[2102,""],[2116,"T"],[2130,""],[2156,"T"],[2159,""],[2160,"T"],[2161,""],[2162,"T"],[2163,""],[2167,"T"],[2169,""],[2172,"__H"],[2175,""],[2184,"U"],[2191,""],[2197,"T"],[2204,""],[2206,"U,T"],[2207,""],[2208,"U,T"],[2211,""],[2212,"U,T"],[2215,"U"],[2222,""],[2229,"V"],[2237,"T"],[2239,""],[2241,"T"],[2243,""],[2244,"T"],[2245,""],[2247,"U"],[2248,""],[2249,"U,T"],[2250,"U"],[2251,""],[2252,"V"],[2254,"T"],[2256,""],[2257,"T"],[2258,""],[2260,"T"],[2262,""],[2265,"T"],[2266,""],[2268,"__H"],[2269,""],[2270,"U"],[2271,""],[2273,"T"],[2274,"U,T"],[2275,"U"],[2276,""],[2277,"V"],[2282,"T"],[2284,"C"],[2285,"T"],[2286,""],[2287,"C"],[2288,"T"],[2290,"C"],[2292,""],[2293,"C"],[2294,"T"],[2295,""],[2296,"U"],[2297,"C"],[2299,"T"],[2300,"U,T"],[2301,"U"],[2302,""],[2303,"V"],[2310,"T"],[2316,""],[2319,"T"],[2320,""],[2323,"T"],[2329,""],[2338,"T"],[2341,""],[2346,"U"],[2349,""],[2351,"T"],[2352,""],[2353,"U,T"],[2356,"U"],[2359,""],[2362,"V"]]}],["zcash_proofs",{"t":"SSSFFNNNNCNNNHNNNNHHHNNNNNNNNNNHOOOHCOOOCONNNNNNNNNCFFFFFFFSFOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNONNNNNNNNOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNSHH","n":["SAPLING_OUTPUT_NAME","SAPLING_SPEND_NAME","SPROUT_NAME","SaplingParameterPaths","ZcashParameters","borrow","","borrow_mut","","circuit","clone","clone_into","clone_to_uninit","default_params_folder","deref","","deref_mut","","download_parameters","download_sapling_parameters","download_sprout_parameters","drop","","eq","fmt","from","","init","","into","","load_parameters","output","output_params","output_vk","parse_parameters","prover","spend","spend_params","spend_vk","sprout","sprout_vk","to_owned","try_from","","try_into","","type_id","","vzip","","sprout","CommitmentRandomness","JoinSplit","JsInput","JsOutput","NoteValue","PayingKey","SpendingKey","TREE_DEPTH","UniqueRandomness","a_pk","a_sk","auth_path","borrow","","","","","","","","borrow_mut","","","","","","","","deref","","","","","","","","deref_mut","","","","","","","","drop","","","","","","","","from","","","","","","","","h_sig","init","","","","","","","","inputs","into","","","","","","","","outputs","phi","r","","rho","rt","synthesize","try_from","","","","","","","","try_into","","","","","","","","type_id","","","","","","","","value","","vpub_new","vpub_old","vzip","","","","","","","","LocalTxProver","borrow","borrow_mut","bundled","create_proof","","deref","deref_mut","drop","encode_proof","","from","from_bytes","init","into","new","prepare_circuit","","try_from","try_into","type_id","verifying_keys","vzip","with_default_location","WITNESS_PATH_SIZE","create_proof","verify_proof"],"q":[[0,"zcash_proofs"],[51,"zcash_proofs::circuit"],[52,"zcash_proofs::circuit::sprout"],[173,"zcash_proofs::prover"],[197,"zcash_proofs::sprout"],[200,"std::path"],[201,"core::option"],[202,"minreq::error"],[203,"core::result"],[204,"core::fmt"],[205,"sapling_crypto::circuit"],[206,"std::io"],[207,"core::any"],[208,"alloc::vec"],[209,"bellman"],[210,"ff"],[211,"rand_core"],[212,"sapling_crypto::bundle"],[213,"sapling_crypto::keys"],[214,"sapling_crypto::note"],[215,"sapling_crypto::value"],[216,"jubjub::fr"],[217,"bls12_381::scalar"],[218,"sapling_crypto::tree"],[219,"sapling_crypto::address"],[220,"bls12_381::pairings"],[221,"bellman::groth16"]],"i":"`````B`f10`000`1010```1000101010`011``011`1010101010``````````BnC`0FlFnG`GbCd56Gd54321670543216705432167054321670543216701543216701543216701167611543216705432167054321670671154321670`Cn0000000000000000000000```","f":"{{}b}00``{b{{b{c}}}{}}0{{{b{d}}}{{b{dc}}}{}}0`{{{b{f}}}f}{{b{b{dc}}}h{}}{{bj}h}{{}{{n{l}}}}{A`{{b{c}}}{}}0{A`{{b{dc}}}{}}0{{}{{Ad{hAb}}}}{{{n{Af}}}{{Ad{fAb}}}}{{{n{Af}}}{{Ad{lAb}}}}{A`h}0{{{b{f}}{b{f}}}Ah}{{{b{f}}{b{dAj}}}Al}{cc{}}0{{}A`}0{{}c{}}0{{{b{An}}{b{An}}{n{{b{An}}}}}B`}{fl}{B`Bb}{B`Bd}{{cc{n{c}}}B`Bf}`3{B`Bh}{B`Bj}`{B`n}{bc{}}{c{{Ad{e}}}{}{}}0{{}{{Ad{c}}}{}}0{bBl}0{{}c{}}0````````>`{Bnn}{C`n}{C`Cb}{b{{b{c}}}{}}0000000{{{b{d}}}{{b{dc}}}{}}0000000{A`{{b{c}}}{}}0000000{A`{{b{dc}}}{}}0000000{A`h}0000000{cc{}}0000000{Cdn}{{}A`}0000000{CdCf}{{}c{}}000000013;<;3{{Cd{b{de}}}{{Ad{hCh}}}Cj{{Cl{c}}}}{c{{Ad{e}}}{}{}}0000000{{}{{Ad{c}}}{}}0000000{bBl}0000000?{Bnn}88{{}c{}}0000000`?>{{}Cn}{{{b{Cn}}D`{b{dc}}}eDb{}}{{{b{Cn}}Dd{b{dc}}}eDb{}}{A`{{b{c}}}{}}{A`{{b{dc}}}{}}{A`h}{cDf{}}{cDf{}}{cc{}}{{{b{{Dh{j}}}}{b{{Dh{j}}}}}Cn}{{}A`}{{}c{}}{{{b{An}}{b{An}}}Cn}{{DjDlDnE`EbEdEfEh}{{n{Dd}}}}{{{b{Ej}}ElEbE`Ed}D`}{c{{Ad{e}}}{}{}}{{}{{Ad{c}}}{}}{bBl}{{{b{Cn}}}{{Fb{EnF`}}}}{{}c{}}{{}{{n{Cn}}}}:{{{Cb{j}}{Cb{j}}{Cb{j}}{Cb{j}}Af{Cb{j}}{Cb{j}}{b{{Cb{j}}}}{Cb{j}}Af{Cb{j}}{Cb{j}}{b{{Cb{j}}}}{Cb{j}}Af{Cb{j}}{Cb{j}}Af{Cb{j}}AfAf{b{{Ff{Fd}}}}}{{Fh{Fd}}}}{{{b{{Cb{j}}}}{b{{Cb{j}}}}{b{{Cb{j}}}}{b{{Cb{j}}}}{b{{Cb{j}}}}{b{{Cb{j}}}}{b{{Cb{j}}}}{b{{Cb{j}}}}{b{{Cb{j}}}}AfAf{b{{Fj{Fd}}}}}Ah}","D":"F`","p":[[1,"reference",null,null,1],[0,"mut"],[5,"SaplingParameterPaths",0],[1,"unit"],[1,"u8"],[5,"PathBuf",200],[6,"Option",201,null,1],[1,"usize"],[6,"Error",202],[6,"Result",203,null,1],[1,"u64"],[1,"bool"],[5,"Formatter",204],[8,"Result",204],[5,"Path",200],[5,"ZcashParameters",0],[5,"OutputParameters",205],[5,"PreparedOutputVerifyingKey",205],[10,"Read",206],[5,"SpendParameters",205],[5,"PreparedSpendVerifyingKey",205],[5,"TypeId",207],[5,"JsOutput",52],[5,"JsInput",52],[1,"array"],[5,"JoinSplit",52],[5,"Vec",208],[6,"SynthesisError",209],[10,"PrimeField",210],[10,"ConstraintSystem",209],[5,"LocalTxProver",173],[5,"Output",205],[10,"RngCore",211],[5,"Spend",205],[8,"GrothProofBytes",212],[1,"slice"],[5,"ProofGenerationKey",213],[5,"Diversifier",213],[6,"Rseed",214],[5,"NoteValue",215],[5,"Fr",216],[5,"ValueCommitTrapdoor",215],[5,"Scalar",217],[8,"MerklePath",218],[5,"EphemeralSecretKey",213],[5,"PaymentAddress",219],[5,"SpendVerifyingKey",205],[5,"OutputVerifyingKey",205],[1,"tuple",null,null,1],[5,"Bls12",220],[5,"Parameters",221],[5,"Proof",221],[5,"PreparedVerifyingKey",221],[5,"SpendingKey",52],[5,"PayingKey",52],[5,"UniqueRandomness",52],[5,"CommitmentRandomness",52],[5,"NoteValue",52]],"r":[],"b":[[177,"impl-OutputProver-for-LocalTxProver"],[178,"impl-SpendProver-for-LocalTxProver"],[182,"impl-SpendProver-for-LocalTxProver"],[183,"impl-OutputProver-for-LocalTxProver"],[189,"impl-SpendProver-for-LocalTxProver"],[190,"impl-OutputProver-for-LocalTxProver"]],"c":"OjAAAAEAAAAAAAAAEAAAABMA","e":"OzAAAAEAAJgAEQAGAAMACwACAA8AAwAWAAMAHAABACIAAQAnAAEAKgAJADUAMwBxAAkAgwAqAK8AAQCyAAYAuwAAAL4ABADEAAAAxgAAAA==","P":[[5,"T"],[10,""],[11,"T"],[12,""],[14,"T"],[18,""],[25,"T"],[27,""],[29,"U"],[31,""],[35,"R"],[37,""],[42,"T"],[43,"U,T"],[45,"U"],[47,""],[49,"V"],[59,""],[64,"T"],[96,""],[104,"T"],[112,""],[122,"U"],[130,""],[136,"Scalar,CS"],[137,"U,T"],[145,"U"],[153,""],[165,"V"],[174,"T"],[176,""],[177,"R,OutputProver::Proof"],[178,"R,SpendProver::Proof"],[179,"T"],[181,""],[182,"SpendProver::Proof"],[183,"OutputProver::Proof"],[184,"T"],[185,""],[187,"U"],[188,""],[191,"U,T"],[192,"U"],[193,""],[195,"V"],[196,""]]}],["zcash_protocol",{"t":"TPGTPPGTPFNNNNNNNNNNNNNNNNNNNCCNNNNNNNNNNNNNNNNNNCCNNNNNNNNNNNNNNNNNNCNNNNFPPGPPSPPSPFPGKGGPPPPPPKPPPPSPFPSMNNNNMNNNNMNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNMNNNNMNNNNMNNNNMNNNNMNNNNMNNNNNNNNNNNNMNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHHCCCSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSFNNNNONNONNNNNNNNONNNNNNNNNOOOONNNNNPPGPPGFPFPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGSSSPFPTFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNHHHH","n":["ORCHARD","Orchard","PoolType","SAPLING","Sapling","Shielded","ShieldedProtocol","TRANSPARENT","Transparent","TxId","as_ref","borrow","","","borrow_mut","","","clone","","","clone_into","","","clone_to_uninit","","","cmp","","","consensus","constants","dynamic_usage","dynamic_usage_bounds","eq","","","fmt","","","","","from","","","from_bytes","hash","into","","","local_consensus","memo","partial_cmp","","","read","to_owned","","","to_string","","try_from","","","try_into","","","type_id","","","value","vzip","","","write","BlockHeight","Blossom","","BranchId","Canopy","","H0","Heartwood","","MAIN_NETWORK","Main","MainNetwork","","Network","NetworkConstants","NetworkType","NetworkUpgrade","Nu5","","Nu6","","Overwinter","","Parameters","Regtest","Sapling","","Sprout","TEST_NETWORK","Test","TestNetwork","","ZIP212_GRACE_PERIOD","activation_height","","","","add","b58_pubkey_address_prefix","","","","","b58_script_address_prefix","","","","","b58_sprout_address_prefix","","","","","borrow","","","","","","","borrow_mut","","","","","","","clone","","","","","","","clone_into","","","","","","","clone_to_uninit","","","","","","","cmp","coin_type","","","","","dynamic_usage","","","","","","","dynamic_usage_bounds","","","","","","","eq","","","","","","","fmt","","","","","","","","","for_height","from","","","","","","","","from_u32","from_u64","hash","","","height_bounds","height_range","hrp_sapling_extended_full_viewing_key","","","","","hrp_sapling_extended_spending_key","","","","","hrp_sapling_payment_address","","","","","hrp_tex_address","","","","","hrp_unified_address","","","","","hrp_unified_fvk","","","","","hrp_unified_ivk","","","","","into","","","","","","","is_nu_active","network_type","","","","partial_cmp","saturating_sub","sprout_uses_groth_proofs","sub","","testing","to_owned","","","","","","","to_string","","try_from","","","","","","","","","","","try_into","","","","","","","type_id","","","","","","","vzip","","","","","","","arb_branch_id","arb_height","mainnet","regtest","testnet","B58_PUBKEY_ADDRESS_PREFIX","B58_SCRIPT_ADDRESS_PREFIX","B58_SPROUT_ADDRESS_PREFIX","COIN_TYPE","HRP_SAPLING_EXTENDED_FULL_VIEWING_KEY","HRP_SAPLING_EXTENDED_SPENDING_KEY","HRP_SAPLING_PAYMENT_ADDRESS","HRP_TEX_ADDRESS","HRP_UNIFIED_ADDRESS","HRP_UNIFIED_FVK","HRP_UNIFIED_IVK","B58_PUBKEY_ADDRESS_PREFIX","B58_SCRIPT_ADDRESS_PREFIX","B58_SPROUT_ADDRESS_PREFIX","COIN_TYPE","HRP_SAPLING_EXTENDED_FULL_VIEWING_KEY","HRP_SAPLING_EXTENDED_SPENDING_KEY","HRP_SAPLING_PAYMENT_ADDRESS","HRP_TEX_ADDRESS","HRP_UNIFIED_ADDRESS","HRP_UNIFIED_FVK","HRP_UNIFIED_IVK","B58_PUBKEY_ADDRESS_PREFIX","B58_SCRIPT_ADDRESS_PREFIX","B58_SPROUT_ADDRESS_PREFIX","COIN_TYPE","HRP_SAPLING_EXTENDED_FULL_VIEWING_KEY","HRP_SAPLING_EXTENDED_SPENDING_KEY","HRP_SAPLING_PAYMENT_ADDRESS","HRP_TEX_ADDRESS","HRP_UNIFIED_ADDRESS","HRP_UNIFIED_FVK","HRP_UNIFIED_IVK","LocalNetwork","activation_height","b58_pubkey_address_prefix","b58_script_address_prefix","b58_sprout_address_prefix","blossom","borrow","borrow_mut","canopy","clone","clone_into","clone_to_uninit","coin_type","eq","fmt","from","hash","heartwood","hrp_sapling_extended_full_viewing_key","hrp_sapling_extended_spending_key","hrp_sapling_payment_address","hrp_tex_address","hrp_unified_address","hrp_unified_fvk","hrp_unified_ivk","into","network_type","nu5","nu6","overwinter","sapling","to_owned","try_from","try_into","type_id","vzip","Arbitrary","Empty","Error","Future","InvalidUtf8","Memo","MemoBytes","Text","TextMemo","TooLong","as_array","as_slice","borrow","","","","borrow_mut","","","","clone","","","","clone_into","","","","clone_to_uninit","","","","cmp","default","deref","empty","encode","eq","","","","fmt","","","","from","","","","","","from_bytes","","from_str","into","","","","into_bytes","partial_cmp","to_owned","","","","to_string","try_from","","","","","","try_into","","","","type_id","","","","vzip","","","","BalanceError","COIN","MAX_BALANCE","MAX_MONEY","Overflow","QuotRem","Underflow","ZERO","ZatBalance","Zatoshis","add","","borrow","","","","borrow_mut","","","","clone","","","clone_into","","","clone_to_uninit","","","cmp","","const_from_i64","const_from_u64","","div","div_with_remainder","dynamic_usage","dynamic_usage_bounds","eq","","","fmt","","","","from","","","","","","","from_i64","from_i64_le_bytes","from_nonnegative_i64","","from_nonnegative_i64_le_bytes","","from_u64","","from_u64_le_bytes","","into","","","","into_u64","is_negative","is_positive","","is_zero","mul","","","neg","partial_cmp","","quotient","remainder","sub","","sum","testing","to_i64_le_bytes","","to_owned","","","to_string","try_from","","","","","","","try_into","","","","type_id","","","","vzip","","","","zero","arb_nonnegative_zat_balance","arb_positive_zat_balance","arb_zat_balance","arb_zatoshis"],"q":[[0,"zcash_protocol"],[74,"zcash_protocol::consensus"],[308,"zcash_protocol::consensus::testing"],[310,"zcash_protocol::constants"],[313,"zcash_protocol::constants::mainnet"],[324,"zcash_protocol::constants::regtest"],[335,"zcash_protocol::constants::testnet"],[346,"zcash_protocol::local_consensus"],[382,"zcash_protocol::memo"],[465,"zcash_protocol::value"],[574,"zcash_protocol::value::testing"],[578,"zcash_protocol::txid"],[579,"core::cmp"],[580,"core::option"],[581,"core::fmt"],[582,"core::hash"],[583,"std::io::error"],[584,"std::io"],[585,"alloc::string"],[586,"core::result"],[587,"core::any"],[588,"core::ops::range"],[589,"proptest::strategy::traits"],[590,"core::num::nonzero"],[591,"core::convert"],[592,"core::iter::traits::collect"]],"i":"nl`101`11`b012012012012012012``000120012201200012``012001202012012012`0120`ChD``10`10`Cn`Cj````323232`1322`1`0`CfC`Cb3BnCl632506325063251632587163258716325871632587163258710632516325871632587163258711632588771163258711165770632506325063250632506325063250632516325874432511711`16325871811116325877163258716325871632587```````````````````````````````````````E`0000000000000000000000000000000000Ej0`0Ef``1`0Eb010Eh32103210321032103130132103221321110313321031121032210333210321032103````F``0En``El1Fd123012312312312312112221112312330111233111212121201232112212211200121`12123301122230123012301231````","f":"``````````{{{d{b}}}{{d{{h{f}}}}}}{d{{d{c}}}{}}00{{{d{j}}}{{d{jc}}}{}}00{{{d{b}}}b}{{{d{l}}}l}{{{d{n}}}n}{{d{d{jc}}}A`{}}00{{df}A`}00{{{d{b}}{d{b}}}Ab}{{{d{l}}{d{l}}}Ab}{{{d{n}}{d{n}}}Ab}``{{{d{b}}}Ad}{{{d{b}}}{{Ah{Ad{Af{Ad}}}}}}{{{d{b}}{d{b}}}Aj}{{{d{l}}{d{l}}}Aj}{{{d{n}}{d{n}}}Aj}{{{d{b}}{d{jAl}}}An}0{{{d{l}}{d{jAl}}}An}{{{d{n}}{d{jAl}}}An}0{cc{}}00{{{h{f}}}b}{{{d{b}}{d{jc}}}A`B`}{{}c{}}00``{{{d{b}}{d{b}}}{{Af{Ab}}}}{{{d{l}}{d{l}}}{{Af{Ab}}}}{{{d{n}}{d{n}}}{{Af{Ab}}}}{c{{Bb{b}}}Bd}{dc{}}00{dBf}0{c{{Bh{e}}}{}{}}00{{}{{Bh{c}}}{}}00{dBj}00`{{}c{}}00{{{d{b}}c}{{Bb{A`}}}Bl}``````{{}Bn}``{{}C`}``````````````````{{}Cb}```{{}Cd}{{{d{Cf}}Ch}{{Af{Bn}}}}{{{d{C`}}Ch}{{Af{Bn}}}}{{{d{Cb}}Ch}{{Af{Bn}}}}{{{d{Cj}}Ch}{{Af{Bn}}}}{{BnCd}Bn}{{{d{Cl}}}{{h{f}}}}{{{d{Cn}}}{{h{f}}}}{d{{h{f}}}}002100021000{d{{d{c}}}{}}000000{{{d{j}}}{{d{jc}}}{}}000000{{{d{Bn}}}Bn}{{{d{Cn}}}Cn}{{{d{C`}}}C`}{{{d{Cb}}}Cb}{{{d{Cj}}}Cj}{{{d{Ch}}}Ch}{{{d{D`}}}D`}{{d{d{jc}}}A`{}}000000{{df}A`}000000{{{d{Bn}}{d{Bn}}}Ab}{{{d{Cl}}}Cd}{{{d{Cn}}}Cd}{dCd}00{{{d{Bn}}}Ad}{{{d{Cn}}}Ad}{{{d{C`}}}Ad}{{{d{Cb}}}Ad}{{{d{Cj}}}Ad}{{{d{Ch}}}Ad}{{{d{D`}}}Ad}{{{d{Bn}}}{{Ah{Ad{Af{Ad}}}}}}{{{d{Cn}}}{{Ah{Ad{Af{Ad}}}}}}{{{d{C`}}}{{Ah{Ad{Af{Ad}}}}}}{{{d{Cb}}}{{Ah{Ad{Af{Ad}}}}}}{{{d{Cj}}}{{Ah{Ad{Af{Ad}}}}}}{{{d{Ch}}}{{Ah{Ad{Af{Ad}}}}}}{{{d{D`}}}{{Ah{Ad{Af{Ad}}}}}}{{{d{Bn}}{d{Bn}}}Aj}{{{d{Cn}}{d{Cn}}}Aj}{{{d{C`}}{d{C`}}}Aj}{{{d{Cb}}{d{Cb}}}Aj}{{{d{Cj}}{d{Cj}}}Aj}{{{d{Ch}}{d{Ch}}}Aj}{{{d{D`}}{d{D`}}}Aj}{{{d{Bn}}{d{jAl}}}An}0{{{d{Cn}}{d{jAl}}}An}{{{d{C`}}{d{jAl}}}An}{{{d{Cb}}{d{jAl}}}An}{{{d{Cj}}{d{jAl}}}An}{{{d{Ch}}{d{jAl}}}An}0{{{d{D`}}{d{jAl}}}An}{{{d{c}}Bn}D`Cf}{CdBn}{cc{}}0000001{DbBn}{{{d{Bn}}{d{jc}}}A`B`}{{{d{Cn}}{d{jc}}}A`B`}{{{d{Cj}}{d{jc}}}A`B`}{{{d{D`}}{d{c}}}{{Af{{Ah{Bn{Af{Bn}}}}}}}Cf}{{{d{D`}}{d{c}}}{{Af{{`{{Dd{Bn}}}}}}}Cf}{{{d{Cl}}}{{d{Df}}}}{{{d{Cn}}}{{d{Df}}}}{d{{d{Df}}}}00210002100021000210002100021000{{}c{}}000000{{{d{Cf}}ChBn}Aj}{{{d{Cf}}}Cn}{{{d{C`}}}Cn}{{{d{Cb}}}Cn}{{{d{Cj}}}Cn}{{{d{Bn}}{d{Bn}}}{{Af{Ab}}}}{{BnCd}Bn}{{{d{D`}}}Aj}{{BnBn}Cd}2`{dc{}}000000{dBf}0{Db{{Bh{Bnc}}}{}}{c{{Bh{e}}}{}{}}{Dh{{Bh{Bnc}}}{}}{Dj{{Bh{Bnc}}}{}}22222{Cd{{Bh{D`c}}}{}}3{{}{{Bh{c}}}{}}000000{dBj}000000{{}c{}}000000{{}{{`{{Dn{}{{Dl{D`}}}}}}}}{{D`{d{c}}}{{`{{Dn{}{{Dl{{Af{Bn}}}}}}}}}Cf}```{{}h}00{{}Cd}{{}d}0000002221000000022210000000`{{{d{E`}}Ch}{{Af{Bn}}}}{d{{h{f}}}}00{E`Af}{d{{d{c}}}{}}{{{d{j}}}{{d{jc}}}{}}2{{{d{E`}}}E`}{{d{d{jc}}}A`{}}{{df}A`}{dCd}{{{d{E`}}{d{E`}}}Aj}{{{d{E`}}{d{jAl}}}An}{cc{}}{{{d{E`}}{d{jc}}}A`B`}:{d{{d{Df}}}}000000{{}c{}}{{{d{E`}}}Cn}===={dc{}}{c{{Bh{e}}}{}{}}{{}{{Bh{c}}}{}}{dBj}{{}c{}}``````````{{{d{Eb}}}{{d{{h{f}}}}}}{{{d{Eb}}}{{d{{Ed{f}}}}}}{d{{d{c}}}{}}000{{{d{j}}}{{d{jc}}}{}}000{{{d{Ef}}}Ef}{{{d{Eb}}}Eb}{{{d{Eh}}}Eh}{{{d{Ej}}}Ej}{{d{d{jc}}}A`{}}000{{df}A`}000{{{d{Eb}}{d{Eb}}}Ab}{{}Ej}{{{d{Eh}}}{{d{Df}}}}{{}Eb}{{{d{Ej}}}Eb}{{{d{Ef}}{d{Ef}}}Aj}{{{d{Eb}}{d{Eb}}}Aj}{{{d{Eh}}{d{Eh}}}Aj}{{{d{Ej}}{d{Ej}}}Aj}{{{d{Ef}}{d{jAl}}}An}0{{{d{Eb}}{d{jAl}}}An}{{{d{Ej}}{d{jAl}}}An}{cc{}}{EjEb}9111{{{d{{Ed{f}}}}}{{Bh{EbEf}}}}{{{d{{Ed{f}}}}}{{Bh{EjEf}}}}{{{d{Df}}}{{Bh{Ejc}}}{}}{{}c{}}000{Eb{{h{f}}}}{{{d{Eb}}{d{Eb}}}{{Af{Ab}}}}{dc{}}000{dBf}{c{{Bh{e}}}{}{}}00{{{d{Eb}}}{{Bh{Ejc}}}{}}{Eb{{Bh{Ejc}}}{}}2{{}{{Bh{c}}}{}}000{dBj}000{{}c{}}000`{{}Db}{{}Dh}1``````{{ElEl}{{Af{El}}}}{{EnEn}{{Af{En}}}}{d{{d{c}}}{}}000{{{d{j}}}{{d{jc}}}{}}000{{{d{El}}}El}{{{d{En}}}En}{{{d{F`}}}F`}{{d{d{jc}}}A`{}}00{{df}A`}00{{{d{El}}{d{El}}}Ab}{{{d{En}}{d{En}}}Ab}{DhEl}{DbEl}{DbEn}{{EnFb}En}{{{d{En}}Fb}{{Fd{En}}}}{{{d{El}}}Ad}{{{d{El}}}{{Ah{Ad{Af{Ad}}}}}}{{{d{El}}{d{El}}}Aj}{{{d{En}}{d{En}}}Aj}{{{d{F`}}{d{F`}}}Aj}{{{d{El}}{d{jAl}}}An}{{{d{En}}{d{jAl}}}An}{{{d{F`}}{d{jAl}}}An}0{cc{}}{{{d{En}}}El}1{EnEl}22{FfF`}{Dh{{Bh{ElF`}}}}{{{h{f}}}{{Bh{ElF`}}}}1{Dh{{Bh{EnF`}}}}1{{{h{f}}}{{Bh{EnF`}}}}{Db{{Bh{ElF`}}}}{Db{{Bh{EnF`}}}}42{{}c{}}000{EnDb}{ElAj}0{{{d{En}}}Aj}0{{ElAd}{{Af{El}}}}{{EnAd}{{Af{En}}}}{{EnDb}{{Af{En}}}}{ElEl}{{{d{El}}{d{El}}}{{Af{Ab}}}}{{{d{En}}{d{En}}}{{Af{Ab}}}}{{{d{{Fd{c}}}}}{{d{c}}}{}}0{{ElEl}{{Af{El}}}}{{EnEn}{{Af{En}}}}{c{{Af{El}}}{{Fj{}{{Fh{El}}}}}}`{El{{h{f}}}}{En{{h{f}}}}{dc{}}00{dBf}{c{{Bh{e}}}{}{}}{Dh{{Bh{ElF`}}}}1{El{{Bh{Enc}}}{}}{Db{{Bh{Enc}}}{}}33{{}{{Bh{c}}}{}}000{dBj}000{{}c{}}000{{}El}{{}{{`{{Dn{}{{Dl{El}}}}}}}}00{{}{{`{{Dn{}{{Dl{En}}}}}}}}","D":"AGd","p":[[5,"TxId",0,578],[1,"reference",null,null,1],[1,"u8"],[1,"array"],[0,"mut"],[6,"ShieldedProtocol",0],[6,"PoolType",0],[1,"unit"],[6,"Ordering",579],[1,"usize"],[6,"Option",580,null,1],[1,"tuple",null,null,1],[1,"bool"],[5,"Formatter",581],[8,"Result",581],[10,"Hasher",582],[8,"Result",583,null,1],[10,"Read",584],[5,"String",585],[6,"Result",586,null,1],[5,"TypeId",587],[10,"Write",584],[5,"BlockHeight",74],[5,"MainNetwork",74],[5,"TestNetwork",74],[1,"u32"],[10,"Parameters",74],[6,"NetworkUpgrade",74],[6,"Network",74],[10,"NetworkConstants",74],[6,"NetworkType",74],[6,"BranchId",74],[1,"u64"],[10,"RangeBounds",588],[1,"str"],[1,"i64"],[1,"i32"],[17,"Value"],[10,"Strategy",589],[5,"LocalNetwork",346],[5,"MemoBytes",382],[1,"slice"],[6,"Error",382],[5,"TextMemo",382],[6,"Memo",382],[5,"ZatBalance",465],[5,"Zatoshis",465],[6,"BalanceError",465],[8,"NonZeroU64",590],[5,"QuotRem",465],[6,"Infallible",591],[17,"Item"],[10,"IntoIterator",592]],"r":[[9,578],[10,578],[11,578],[14,578],[17,578],[20,578],[23,578],[26,578],[31,578],[32,578],[33,578],[36,578],[37,578],[41,578],[44,578],[45,578],[46,578],[51,578],[54,578],[55,578],[58,578],[60,578],[63,578],[66,578],[70,578],[73,578]],"b":[[36,"impl-Debug-for-TxId"],[37,"impl-Display-for-TxId"],[39,"impl-Debug-for-PoolType"],[40,"impl-Display-for-PoolType"],[189,"impl-Display-for-BlockHeight"],[190,"impl-Debug-for-BlockHeight"],[195,"impl-Debug-for-NetworkUpgrade"],[196,"impl-Display-for-NetworkUpgrade"],[264,"impl-Sub-for-BlockHeight"],[265,"impl-Sub%3Cu32%3E-for-BlockHeight"],[276,"impl-TryFrom%3Cu64%3E-for-BlockHeight"],[278,"impl-TryFrom%3Ci64%3E-for-BlockHeight"],[279,"impl-TryFrom%3Ci32%3E-for-BlockHeight"],[423,"impl-Debug-for-Error"],[424,"impl-Display-for-Error"],[428,"impl-From%3CMemo%3E-for-MemoBytes"],[429,"impl-From%3C%26Memo%3E-for-MemoBytes"],[450,"impl-TryFrom%3C%26MemoBytes%3E-for-Memo"],[451,"impl-TryFrom%3CMemoBytes%3E-for-Memo"],[508,"impl-Display-for-BalanceError"],[509,"impl-Debug-for-BalanceError"],[511,"impl-From%3C%26Zatoshis%3E-for-ZatBalance"],[513,"impl-From%3CZatoshis%3E-for-ZatBalance"],[537,"impl-Mul%3Cusize%3E-for-Zatoshis"],[538,"impl-Mul%3Cu64%3E-for-Zatoshis"],[557,"impl-TryFrom%3CZatBalance%3E-for-Zatoshis"],[558,"impl-TryFrom%3Cu64%3E-for-Zatoshis"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAIgBLQABAAAABAAAAAgAAAALABIAIAAJAC0AAQAyAAAANAAWAG0AAwByAAMAdwADAHwAJwClACEAyAAAANAABADYAAMA3QADAOIAAwDnAAMA7AADAPEAAwD2AAMAAwEDAAgBLgBcAQ0AawEIAHUBCQCDAQAAiAEAAIsBFgCkAQcAugEIAMUBDADTAQMA2AEAANwBFAD0AQAA9gEIAAACAAACAgAABQIAABkCBQAhAgMAJwIWAD8CAwA=","P":[[11,"T"],[17,""],[20,"T"],[23,""],[41,"T"],[44,""],[45,"__H"],[46,"U"],[51,""],[54,"R"],[55,"T"],[58,""],[60,"U,T"],[63,"U"],[66,""],[70,"V"],[73,"W"],[80,""],[127,"T"],[141,""],[148,"T"],[155,""],[198,"P"],[199,""],[200,"T"],[207,""],[209,"__H"],[212,"P"],[214,""],[249,"U"],[256,""],[267,"T"],[274,""],[276,"TryFrom::Error"],[277,"U,T"],[278,"TryFrom::Error"],[280,"U,T"],[285,"TryFrom::Error"],[286,"U,T"],[287,"U"],[294,""],[301,"V"],[308,""],[309,"P"],[313,""],[352,"T"],[354,""],[356,"T"],[357,""],[361,"T"],[362,"__H"],[363,""],[371,"U"],[372,""],[377,"T"],[378,"U,T"],[379,"U"],[380,""],[381,"V"],[392,""],[394,"T"],[402,""],[406,"T"],[410,""],[427,"T"],[428,""],[430,"T"],[433,""],[435,"FromStr::Err"],[436,"U"],[440,""],[442,"T"],[446,""],[447,"U,T"],[450,"TryFrom::Error"],[452,"U,T"],[453,"U"],[457,""],[461,"V"],[466,""],[477,"T"],[485,""],[488,"T"],[491,""],[510,"T"],[511,""],[512,"T"],[513,""],[514,"T"],[516,""],[527,"U"],[531,""],[542,"A"],[544,""],[546,"I"],[548,""],[550,"T"],[553,""],[554,"U,T"],[555,""],[556,"U,T"],[557,"TryFrom::Error"],[559,"U,T"],[561,"U"],[565,""],[569,"V"],[573,""]]}],["zcash_transparent",{"t":"CCCCCCPFPGNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNHGPPPFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKFFFKFRFFNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNMNNNNONNNNOOOCNNNNNNNNNNNNNNNNNNNNNNNNONOONNNNNNNNNSHHHHHFFTTFFFTKFFTFFFFTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFPPPPPPPPPFFGGGGFPPPFGGPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTTTTSSSSSTTFFKNNNNNNNNNNNNNNNNMMNNNNNNNNNNNNNNN","n":["address","builder","bundle","keys","pczt","sighash","PublicKeyHash","Script","ScriptHash","TransparentAddress","address","borrow","","borrow_mut","","clone","","clone_into","","clone_to_uninit","","cmp","default","eq","","fmt","","from","","hash","into","","partial_cmp","read","script","serialized_size","shl","testing","to_owned","","try_from","","try_from_raw_transparent_p2pkh","try_from_raw_transparent_p2sh","try_into","","type_id","","vzip","","write","arb_transparent_addr","Error","InvalidAddress","InvalidAmount","MissingSigningKey","TransparentBuilder","TransparentInputInfo","TransparentSigningSet","Unauthorized","add_input","add_key","add_output","borrow","","","","","borrow_mut","","","","","build","build_for_pczt","clone","","clone_into","","clone_to_uninit","","coin","default","empty","eq","fmt","","","","from","","","","","input_amounts","input_scriptpubkeys","inputs","into","","","","","new","outpoint","outputs","to_owned","","to_string","try_from","","","","","try_into","","","","","type_id","","","","","value_balance","vzip","","","","","Authorization","Authorized","Bundle","EffectsOnly","MapAuth","OutPoint","ScriptSig","TxIn","TxOut","apply_signatures","authorization","borrow","","","","","","borrow_mut","","","","","","clone","","","","","clone_into","","","","","clone_to_uninit","","","","","cmp","eq","","","","","fake","fmt","","","","","","from","","","","","","hash","input_amounts","input_scriptpubkeys","into","","","","","","is_coinbase","map_authorization","","map_script_sig","n","new","","partial_cmp","prevout","read","","","recipient_address","script_pubkey","script_sig","sequence","testing","to_owned","","","","","try_from","","","","","","try_into","","","","","","txid","type_id","","","","","","value","value_balance","vin","vout","vzip","","","","","","write","","","VALID_OPCODES","arb_bundle","arb_outpoint","arb_script","arb_txin","arb_txout","AccountPrivKey","AccountPubKey","EPHEMERAL","EXTERNAL","EphemeralIvk","ExternalIvk","ExternalOvk","INTERNAL","IncomingViewingKey","InternalIvk","InternalOvk","MAX","NonHardenedChildIndex","NonHardenedChildIter","NonHardenedChildRange","TransparentKeyScope","ZERO","as_bytes","","borrow","","","","","","","","","","","borrow_mut","","","","","","","","","","","clone","","","","","","","clone_into","","","","","","","clone_to_uninit","","","","","","","cmp","const_from_index","ct_eq","custom","default_address","derive_address","derive_address_pubkey","derive_ephemeral_address","derive_ephemeral_ivk","derive_external_ivk","derive_external_secret_key","derive_internal_ivk","derive_internal_secret_key","derive_pubkey_at_bip32_path","derive_secret_key","deserialize","","eq","","external_ovk","fmt","","","","","","","from","","","","","","","","","","","","","from_bytes","from_extended_privkey","from_index","from_seed","index","internal_ovk","into","","","","","","","","","","","into_iter","","next","","ovks_for_shielding","partial_cmp","pubkey_to_address","saturating_add","saturating_sub","serialize","","to_account_pubkey","to_bytes","to_owned","","","","","","","try_from","","","","","","","","","","","","","try_into","","","","","","","","","","","type_id","","","","","","","","","","","vzip","","","","","","","","","","","Bip32Derivation","Bundle","Input","InputUpdater","InvalidIndex","InvalidRequiredHeightLocktime","InvalidRequiredTimeLocktime","InvalidSighashType","InvalidValue","MissingScriptSig","MissingSignature","NotP2sh","","Output","OutputUpdater","ParseError","SignerError","SpendFinalizerError","TxExtractorError","Unbound","UnexpectedSignatures","UnsupportedScriptPubkey","","Updater","UpdaterError","VerifyError","WrongRedeemScript","","WrongSpendingKey","bip32_derivation","","borrow","","","","","","","","","","","","","","borrow_mut","","","","","","","","","","","","","","bundle","derivation_path","eq","extract","extract_bip_44_fields","extract_effects","finalize_spends","fmt","","","","","","","","","","","from","","","","","","","","","","","","","","hash160_preimages","hash256_preimages","input_amounts","input_scriptpubkeys","inputs","inputs_mut","into","","","","","","","","","","","","","","outputs","parse","","","","partial_signatures","prevout_index","prevout_txid","proprietary","","redeem_script","","required_height_lock_time","required_time_lock_time","ripemd160_preimages","script_pubkey","","script_sig","seed_fingerprint","sequence","set_bip32_derivation","","set_hash160_preimage","set_hash256_preimage","set_proprietary","","set_redeem_script","","set_ripemd160_preimage","set_sha256_preimage","set_user_address","sha256_preimages","sighash_type","sign","try_from","","","","","","","","","","","","","","try_into","","","","","","","","","","","","","","type_id","","","","","","","","","","","","","","update_input_with","update_output_with","update_with","user_address","value","","verify","","vzip","","","","","","","","","","","","","","ALL","ALL_ANYONECANPAY","NONE","NONE_ANYONECANPAY","SIGHASH_ALL","SIGHASH_ANYONECANPAY","SIGHASH_MASK","SIGHASH_NONE","SIGHASH_SINGLE","SINGLE","SINGLE_ANYONECANPAY","SighashType","SignableInput","TransparentAuthorizingContext","borrow","","borrow_mut","","clone","clone_into","clone_to_uninit","encode","eq","fmt","","from","","from_parts","hash_type","index","input_amounts","input_scriptpubkeys","into","","parse","script_code","script_pubkey","to_owned","try_from","","try_into","","type_id","","value","vzip",""],"q":[[0,"zcash_transparent"],[6,"zcash_transparent::address"],[51,"zcash_transparent::address::testing"],[52,"zcash_transparent::builder"],[129,"zcash_transparent::bundle"],[249,"zcash_transparent::bundle::testing"],[255,"zcash_transparent::keys"],[440,"zcash_transparent::pczt"],[649,"zcash_transparent::sighash"],[696,"core::option"],[697,"core::cmp"],[698,"core::fmt"],[699,"core::hash"],[700,"std::io::error"],[701,"std::io"],[702,"core::result"],[703,"zcash_address::convert"],[704,"core::any"],[705,"proptest::strategy::traits"],[706,"secp256k1::key"],[707,"zcash_protocol::value"],[708,"alloc::vec"],[709,"alloc::string"],[710,"core::ops::function"],[711,"core::clone"],[712,"zcash_protocol::txid"],[713,"core::convert"],[714,"subtle"],[715,"bip32::error"],[716,"zip32"],[717,"bip32::child_number"],[718,"zcash_protocol::consensus"],[719,"core::ops::range"],[720,"bip32::extended_key::private_key"],[721,"alloc::collections::btree::map"],[722,"zcash_transparent::pczt::updater"],[723,"zcash_transparent::pczt::tx_extractor"],[724,"zip32::fingerprint"],[725,"zcash_transparent::pczt::spend_finalizer"],[726,"zcash_transparent::pczt::parse"],[727,"zcash_transparent::pczt::verify"],[728,"zcash_transparent::pczt::signer"],[729,"secp256k1"],[730,"secp256k1::context"]],"i":"``````f`0`b01010101011001010110110100`0101110101010``Ch00````C`Cj1012DfD`2341033101010123444102341000323410213104234102341023410323410``````Ej``Db0F`E`2CdElCf43521035210352103521023521024352104352102444352105Fd60332323211122`4632154632154632135463211666546321321````````Gb0```0```Gd````0FnG`IfI`3254GfGhGjGlGn6587:943210:943210:943210:943210999:Hb041445454504;:4;:5432176698;;:5432155:5:47698;:54321767:4:`::0455;:543217698;:::543217698;:543217698;:543217698;:54321````K`Jl000JfJjJn4```````101```04KbIjJ`JbKfKh96:578JdDd65Il543<9=8:;217605001011<9=8:;21760543<9=8:;21760772211543<9=8:;217601176077776767777670743444343443777543<9=8:;21760543<9=8:;21760543<9=8:;2176055167676543<9=8:;21760Kj000`````00```0Eb10111111010000Lb0212112212121121","f":"``````````{{{d{b}}}{{h{f}}}}{d{{d{c}}}{}}0{{{d{j}}}{{d{jc}}}{}}0{{{d{b}}}b}{{{d{f}}}f}{{d{d{jc}}}l{}}0{{dn}l}0{{{d{f}}{d{f}}}A`}{{}b}{{{d{b}}{d{b}}}Ab}{{{d{f}}{d{f}}}Ab}{{{d{b}}{d{jAd}}}Af}{{{d{f}}{d{jAd}}}Af}{cc{}}0{{{d{f}}{d{jc}}}lAh}{{}c{}}0{{{d{f}}{d{f}}}{{h{A`}}}}{c{{Aj{b}}}Al}{{{d{f}}}b}{{{d{b}}}An}{{b{d{{B`{n}}}}}b}`{dc{}}0{c{{Bb{e}}}{}{}}0{{{Bd{n}}}{{Bb{f{Bf{c}}}}}{}}0{{}{{Bb{c}}}{}}0{dBh}0{{}c{}}0{{{d{b}}c}{{Aj{l}}}Bj}{{}{{`{{Bn{}{{Bl{f}}}}}}}}````````{{{d{jC`}}CbCdCf}{{Bb{lCh}}}}{{{d{jCj}}Cl}Cb}{{{d{jC`}}{d{f}}Cn}{{Bb{lCh}}}}{d{{d{c}}}{}}0000{{{d{j}}}{{d{jc}}}{}}0000{C`{{h{{Db{D`}}}}}}{C`{{h{Dd}}}}{{{d{Df}}}Df}{{{d{D`}}}D`}{{d{d{jc}}}l{}}0{{dn}l}0{{{d{Df}}}{{d{Cf}}}}{{}Cj}{{}C`}{{{d{Ch}}{d{Ch}}}Ab}{{{d{Ch}}{d{jAd}}}Af}0{{{d{Df}}{d{jAd}}}Af}{{{d{D`}}{d{jAd}}}Af}{cc{}}0000{{{d{D`}}}{{Dh{Cn}}}}{{{d{D`}}}{{Dh{b}}}}{{{d{C`}}}{{d{{B`{Df}}}}}}{{}c{}}0000:{{{d{Df}}}{{d{Cd}}}}{{{d{C`}}}{{d{{B`{Cf}}}}}}{dc{}}0{dDj}{c{{Bb{e}}}{}{}}0000{{}{{Bb{c}}}{}}0000{dBh}0000{{{d{C`}}}{{Bb{DlDn}}}}{{}c{}}0000`````````{{{Db{D`}}c{d{Cj}}}{{Bb{{Db{E`}}Ch}}}{{Ef{Eb}{{Ed{{Bd{n}}}}}}}}{Db}{d{{d{c}}}{}}00000{{{d{j}}}{{d{jc}}}{}}00000{{{d{E`}}}E`}{{{d{{Db{c}}}}}{{Db{c}}}{EhEj}}{{{d{Cd}}}Cd}{{{d{{El{c}}}}}{{El{c}}}{EhEj}}{{{d{Cf}}}Cf}{{d{d{jc}}}l{}}0000{{dn}l}0000{{{d{Cd}}{d{Cd}}}A`}{{{d{E`}}{d{E`}}}Ab}{{{d{{Db{c}}}}{d{{Db{c}}}}}Ab{EnEj}}{{{d{Cd}}{d{Cd}}}Ab}{{{d{{El{c}}}}{d{{El{c}}}}}Ab{EnEj}}{{{d{Cf}}{d{Cf}}}Ab}{{}Cd}{{{d{F`}}{d{jAd}}}Af}{{{d{E`}}{d{jAd}}}Af}{{{d{{Db{c}}}}{d{jAd}}}Af{FbEj}}{{{d{Cd}}{d{jAd}}}Af}{{{d{{El{c}}}}{d{jAd}}}Af{FbEj}}{{{d{Cf}}{d{jAd}}}Af}{cc{}}00000{{{d{Cd}}}{{d{{Bd{n}}}}}}{{{d{F`}}}{{Dh{Cn}}}}{{{d{F`}}}{{Dh{b}}}}{{}c{}}00000{{{d{{Db{c}}}}}AbEj}{{{d{Fd}}c}eEjEj}{{{Db{c}}g}{{Db{e}}}EjEj{{Fd{ce}}}}{{{d{Fd}}}}{{{d{Cd}}}Ff}{{{Bd{n}}Ff}Cd}{Cd{{El{D`}}}}{{{d{Cd}}{d{Cd}}}{{h{A`}}}}{ElCd}{c{{Aj{Cd}}}Al}{{{d{jc}}}{{Aj{{El{E`}}}}}Al}{{{d{jc}}}{{Aj{Cf}}}Al}{{{d{Cf}}}{{h{f}}}}{Cfb}{El}{ElFf}`{dc{}}0000{c{{Bb{e}}}{}{}}00000{{}{{Bb{c}}}{}}00000{{{d{Cd}}}{{d{Fh}}}}{dBh}00000{CfCn}{{{d{{Db{c}}}}g}{{Bb{Dle}}}Ej{{Fj{Dn}}}{{Fl{{d{Cd}}}{{Ed{{Bb{Dle}}}}}}}}{DbDh}0{{}c{}}00000{{{d{Cd}}c}{{Aj{l}}}Bj}{{{d{{El{E`}}}}c}{{Aj{l}}}Bj}{{{d{Cf}}c}{{Aj{l}}}Bj}{{}Bd}{{}{{`{{Bn{}{{Bl{{h{{Db{E`}}}}}}}}}}}}{{}{{`{{Bn{}{{Bl{Cd}}}}}}}}{{}{{`{{Bn{}{{Bl{b}}}}}}}}{{}{{`{{Bn{}{{Bl{{El{E`}}}}}}}}}}{{}{{`{{Bn{}{{Bl{Cf}}}}}}}}`````````````````{{{d{Fn}}}{{Bd{n}}}}{{{d{G`}}}{{Bd{n}}}}{d{{d{c}}}{}}0000000000{{{d{j}}}{{d{jc}}}{}}0000000000{{{d{Gb}}}Gb}{{{d{Gd}}}Gd}{{{d{Gf}}}Gf}{{{d{Gh}}}Gh}{{{d{Gj}}}Gj}{{{d{Gl}}}Gl}{{{d{Gn}}}Gn}{{d{d{jc}}}l{}}000000{{dn}l}000000{{{d{Gd}}{d{Gd}}}A`}{FfGd}{{{d{Gd}}{d{Gd}}}H`}{Ff{{h{Gb}}}}{{{d{Hb}}}{{Hd{fGd}}}}{{{d{Hb}}Gd}{{Bb{fHf}}}}{{{d{Gh}}GbGd}{{Bb{CbHf}}}}{{{d{Gn}}Gd}{{Bb{fHf}}}}{{{d{Gh}}}{{Bb{GnHf}}}}{{{d{Gh}}}{{Bb{GjHf}}}}{{{d{Gf}}Gd}{{Bb{ClHf}}}}{{{d{Gh}}}{{Bb{GlHf}}}}1{{{d{Gh}}{d{c}}Hh{d{{B`{Hj}}}}}{{Bb{CbHf}}}Hl}{{{d{Gf}}GbGd}{{Bb{ClHf}}}}{{{d{{Bd{n}}}}}{{Bb{HbHf}}}}{{{d{{Bd{n}}}}}{{Bb{GhHf}}}}{{{d{Gb}}{d{Gb}}}Ab}{{{d{Gd}}{d{Gd}}}Ab}{{{d{Gh}}}G`}{{{d{Gb}}{d{jAd}}}Af}{{{d{Gd}}{d{jAd}}}Af}{{{d{Gf}}{d{jAd}}}Af}{{{d{Gh}}{d{jAd}}}Af}{{{d{Gj}}{d{jAd}}}Af}{{{d{Gl}}{d{jAd}}}Af}{{{d{Gn}}{d{jAd}}}Af}{cc{}}0{{{Hn{Gd}}}I`}111{IbGb}222222{{{d{{B`{n}}}}}{{h{Gf}}}}{{{Id{Cl}}}Gf}{Ff{{h{Gd}}}}{{{d{c}}{d{{B`{n}}}}Hh}{{Bb{GfHf}}}Hl}{{{d{Gd}}}Ff}{{{d{Gh}}}Fn}{{}c{}}0000000000{{}c{}}{I`c{}}{{{d{jIf}}}{{h{c}}}{}}{{{d{Gd}}}{{h{Gd}}}}{{{d{Gh}}}{{Hd{FnG`}}}}{{{d{Gd}}{d{Gd}}}{{h{A`}}}}{{{d{Cb}}}f}{{{d{Gd}}Ff}Gd}0{{{d{Hb}}}{{Dh{n}}}}{{{d{Gh}}}{{Dh{n}}}}{{{d{Gf}}}Gh}{{{d{Gf}}}{{Dh{n}}}}{dc{}}000000{c{{Bb{e}}}{}{}}0000{Hj{{Bb{Gdc}}}{}}{Ih{{Bb{Gdc}}}{}}222222{{}{{Bb{c}}}{}}0000000000{dBh}0000000000{{}c{}}0000000000`````````````````````````````{{{d{Ij}}}{{d{{In{{Bd{n}}Il}}}}}}{{{d{J`}}}{{d{{In{{Bd{n}}Il}}}}}}{d{{d{c}}}{}}0000000000000{{{d{j}}}{{d{jc}}}{}}0000000000000{{{d{Jb}}}{{d{Dd}}}}{{{d{Il}}}{{d{{Dh{Hj}}}}}}{{{d{Il}}{d{Il}}}Ab}{Dd{{Bb{{h{{Db{Jd}}}}Jf}}}}{{{d{Il}}{d{Jh}}Hj}{{h{{Hd{HhGbGd}}}}}}{{{d{Dd}}}{{Bb{{h{{Db{F`}}}}Jf}}}}{{{d{jDd}}}{{Bb{lJj}}}}{{{d{Jl}}{d{jAd}}}Af}{{{d{Jn}}{d{jAd}}}Af}{{{d{K`}}{d{jAd}}}Af}{{{d{Kb}}{d{jAd}}}Af}{{{d{Jj}}{d{jAd}}}Af}{{{d{Jf}}{d{jAd}}}Af}{{{d{Jd}}{d{jAd}}}Af}{{{d{Dd}}{d{jAd}}}Af}{{{d{Ij}}{d{jAd}}}Af}{{{d{J`}}{d{jAd}}}Af}{{{d{Il}}{d{jAd}}}Af}{cc{}}0000000000000{{{d{Ij}}}{{d{{In{{Bd{n}}{Dh{n}}}}}}}}0{{{d{Jd}}}{{Dh{Cn}}}}{{{d{Jd}}}{{Dh{b}}}}{{{d{Dd}}}{{d{{Dh{Ij}}}}}}{{{d{jDd}}}{{d{j{B`{Ij}}}}}}{{}c{}}0000000000000{{{d{Dd}}}{{d{{Dh{J`}}}}}}{{{Dh{Ij}}{Dh{J`}}}{{Bb{DdJl}}}}{{{Bd{n}}Ff{h{Ff}}{h{Ff}}{h{Ff}}{h{{Dh{n}}}}Kd{Dh{n}}{h{{Dh{n}}}}{In{{Bd{n}}{Dh{n}}}}n{In{{Bd{n}}Il}}{In{{Bd{n}}{Dh{n}}}}{In{{Bd{n}}{Dh{n}}}}{In{{Bd{n}}{Dh{n}}}}{In{{Bd{n}}{Dh{n}}}}{In{Dj{Dh{n}}}}}{{Bb{IjJl}}}}{{Kd{Dh{n}}{h{{Dh{n}}}}{In{{Bd{n}}Il}}{h{Dj}}{In{Dj{Dh{n}}}}}{{Bb{J`Jl}}}}{{{Bd{n}}{Dh{Ff}}}{{Bb{IlJl}}}}:{{{d{Ij}}}{{d{Ff}}}}{{{d{Ij}}}{{d{Fh}}}}{{{d{Ij}}}{{d{{In{Dj{Dh{n}}}}}}}}{{{d{J`}}}{{d{{In{Dj{Dh{n}}}}}}}}{{{d{Ij}}}{{d{{h{b}}}}}}{{{d{J`}}}{{d{{h{b}}}}}}{{{d{Ij}}}{{d{{h{Ff}}}}}}0{{{d{Ij}}}{{d{{In{{Bd{n}}{Dh{n}}}}}}}}{{{d{Ij}}}{{d{b}}}}{{{d{J`}}}{{d{b}}}}5{{{d{Il}}}{{d{{Bd{n}}}}}}4{{{d{jKf}}{Bd{n}}Il}l}{{{d{jKh}}{Bd{n}}Il}l}{{{d{jKf}}{Dh{n}}}l}0{{{d{jKf}}Dj{Dh{n}}}l}{{{d{jKh}}Dj{Dh{n}}}l}{{{d{jKf}}b}{{Bb{lK`}}}}{{{d{jKh}}b}{{Bb{lK`}}}}44{{{d{jKh}}Dj}l};{{{d{Ij}}}{{d{Kj}}}}{{{d{jIj}}Anc{d{Cl}}{d{{Kl{e}}}}}{{Bb{lKb}}}{{Kn{Eb}{{Ed{{Bd{n}}}}}}}L`}{c{{Bb{e}}}{}{}}0000000000000{{}{{Bb{c}}}{}}0000000000000{dBh}0000000000000{{{d{jJb}}Anc}{{Bb{lK`}}}{{Kn{Kf}{{Ed{{Bb{lK`}}}}}}}}{{{d{jJb}}Anc}{{Bb{lK`}}}{{Kn{Kh}{{Ed{{Bb{lK`}}}}}}}}{{{d{jDd}}c}{{Bb{lK`}}}{{Kn{Jb}{{Ed{{Bb{lK`}}}}}}}}{{{d{J`}}}{{d{{h{Dj}}}}}}{{{d{Ij}}}{{d{Cn}}}}{{{d{J`}}}{{d{Cn}}}}{{{d{Ij}}}{{Bb{lJn}}}}{{{d{J`}}}{{Bb{lJn}}}}{{}c{}}0000000000000````{{}n}0000`````{d{{d{c}}}{}}0{{{d{j}}}{{d{jc}}}{}}0{{{d{Kj}}}Kj}{{d{d{jc}}}l{}}{{dn}l}{{{d{Kj}}}n}{{{d{Kj}}{d{Kj}}}Ab}{{{d{Kj}}{d{jAd}}}Af}{{{d{Eb}}{d{jAd}}}Af}{cc{}}0{{KjAn{d{b}}{d{b}}Cn}Eb}{{{d{Eb}}}{{d{Kj}}}}{{{d{Eb}}}{{d{An}}}}{{{d{Lb}}}{{Dh{Cn}}}}{{{d{Lb}}}{{Dh{b}}}}{{}c{}}0{n{{h{Kj}}}}{{{d{Eb}}}{{d{{d{b}}}}}}0{dc{}}{c{{Bb{e}}}{}{}}0{{}{{Bb{c}}}{}}0{dBh}0{{{d{Eb}}}{{d{Cn}}}}{{}c{}}0","D":"AN`","p":[[5,"Script",6],[1,"reference",null,null,1],[6,"TransparentAddress",6],[6,"Option",696,null,1],[0,"mut"],[1,"unit"],[1,"u8"],[6,"Ordering",697],[1,"bool"],[5,"Formatter",698],[8,"Result",698],[10,"Hasher",699],[8,"Result",700,null,1],[10,"Read",701],[1,"usize"],[1,"slice"],[6,"Result",702,null,1],[1,"array"],[6,"ConversionError",703],[5,"TypeId",704],[10,"Write",701],[17,"Value"],[10,"Strategy",705],[5,"TransparentBuilder",52],[5,"PublicKey",706],[5,"OutPoint",129],[5,"TxOut",129],[6,"Error",52],[5,"TransparentSigningSet",52],[5,"SecretKey",706],[5,"Zatoshis",707],[5,"Unauthorized",52],[5,"Bundle",129],[5,"Bundle",440],[5,"TransparentInputInfo",52],[5,"Vec",708],[5,"String",709],[5,"ZatBalance",707],[6,"BalanceError",707],[5,"Authorized",129],[5,"SignableInput",649],[17,"Output"],[10,"Fn",710],[10,"Clone",711],[10,"Authorization",129],[5,"TxIn",129],[10,"PartialEq",697],[5,"EffectsOnly",129],[10,"Debug",698],[10,"MapAuth",129],[1,"u32"],[5,"TxId",712],[10,"From",713,null,1],[10,"FnMut",710],[5,"InternalOvk",255],[5,"ExternalOvk",255],[5,"TransparentKeyScope",255],[5,"NonHardenedChildIndex",255],[5,"AccountPrivKey",255],[5,"AccountPubKey",255],[5,"ExternalIvk",255],[5,"InternalIvk",255],[5,"EphemeralIvk",255],[5,"Choice",714],[10,"IncomingViewingKey",255],[1,"tuple",null,null,1],[6,"Error",715],[5,"AccountId",716],[5,"ChildNumber",717],[10,"Parameters",718],[5,"Range",719],[5,"NonHardenedChildRange",255],[6,"Scope",716],[5,"ExtendedPrivateKey",720],[5,"NonHardenedChildIter",255],[5,"DiversifierIndex",716],[5,"Input",440],[5,"Bip32Derivation",440],[5,"BTreeMap",721],[5,"Output",440],[5,"Updater",440,722],[5,"Unbound",440,723],[6,"TxExtractorError",440,723],[5,"SeedFingerprint",724],[6,"SpendFinalizerError",440,725],[6,"ParseError",440,726],[6,"VerifyError",440,727],[6,"UpdaterError",440,722],[6,"SignerError",440,728],[1,"u64"],[5,"InputUpdater",440,722],[5,"OutputUpdater",440,722],[5,"SighashType",649],[5,"Secp256k1",729],[10,"FnOnce",710],[10,"Signing",730],[10,"TransparentAuthorizingContext",649]],"r":[[443,722],[444,722],[445,726],[446,726],[447,726],[448,726],[449,723],[450,725],[451,727],[452,722],[454,722],[455,726],[456,728],[457,725],[458,723],[459,723],[460,725],[461,727],[462,725],[463,722],[464,722],[465,727],[466,727],[467,722],[468,728],[471,722],[472,722],[473,722],[474,726],[475,727],[476,722],[477,728],[478,725],[479,723],[480,723],[485,722],[486,722],[487,722],[488,726],[489,727],[490,722],[491,728],[492,725],[493,723],[494,723],[499,722],[506,726],[507,727],[508,722],[509,728],[510,725],[511,723],[512,723],[517,722],[518,722],[519,722],[520,726],[521,727],[522,722],[523,728],[524,725],[525,723],[526,723],[533,723],[534,723],[537,722],[538,722],[539,722],[540,726],[541,727],[542,722],[543,728],[544,725],[545,723],[546,723],[571,722],[572,722],[573,722],[574,722],[575,722],[576,722],[577,722],[578,722],[579,722],[580,722],[581,722],[585,722],[586,722],[587,722],[588,726],[589,727],[590,722],[591,728],[592,725],[593,723],[594,723],[599,722],[600,722],[601,722],[602,726],[603,727],[604,722],[605,728],[606,725],[607,723],[608,723],[613,722],[614,722],[615,722],[616,726],[617,727],[618,722],[619,728],[620,725],[621,723],[622,723],[627,722],[628,722],[635,722],[636,722],[637,722],[638,726],[639,727],[640,722],[641,728],[642,725],[643,723],[644,723]],"b":[[85,"impl-Display-for-Error"],[86,"impl-Debug-for-Error"],[399,"impl-TryFrom%3CChildNumber%3E-for-NonHardenedChildIndex"],[400,"impl-TryFrom%3CDiversifierIndex%3E-for-NonHardenedChildIndex"]],"c":"OjAAAAEAAAAAAAAAEAAAAH0B","e":"OzAAAAEAAMgBLAAGAAEACQAAAAwADwAeAAAAIQABACUAEgA5AAEAPAAAAD8ACwBMAAcAVQAEAF8AAQBoAAAAagAaAIYAJwCvAAUAvAABAMUAAgDKAAUA0QAUAOcABgDvABAAEQEtAEABAABNAQMAUgEGAFsBAABfAQAAZwEAAHcBAgB8AQAAgAECAIQBNAC+AQEA2AEbAPYBAAD7AQoAFgIBAEoCKQB8AhgAmAIGAKACAgCmAgEArQILAA==","P":[[11,"T"],[15,""],[17,"T"],[19,""],[27,"T"],[29,"__H"],[30,"U"],[32,""],[33,"R"],[34,""],[38,"T"],[40,"U,T"],[42,"TryFromRawAddress::Error"],[44,"U"],[46,""],[48,"V"],[50,"W"],[51,""],[63,"T"],[73,""],[77,"T"],[79,""],[89,"T"],[94,""],[97,"U"],[102,""],[105,"T"],[107,""],[108,"U,T"],[113,"U"],[118,""],[124,"V"],[138,"F"],[139,""],[140,"T"],[152,""],[153,"A"],[154,""],[155,"A"],[156,""],[157,"T"],[162,""],[169,"A"],[170,""],[171,"A"],[172,""],[176,"A"],[177,""],[178,"A"],[179,""],[180,"T"],[186,""],[189,"U"],[195,"A"],[196,"A,B"],[197,"A,B,F"],[198,""],[204,"R"],[207,""],[212,"T"],[217,"U,T"],[223,"U"],[229,""],[237,"A,E,F"],[238,""],[240,"V"],[246,"W"],[249,""],[274,"T"],[296,""],[303,"T"],[310,""],[330,"P"],[331,""],[344,"T"],[346,""],[347,"T"],[350,""],[351,"T"],[357,""],[360,"P"],[361,""],[363,"U"],[374,"I"],[375,"IntoIterator::IntoIter"],[376,"Iterator::Item"],[377,""],[387,"T"],[394,"U,T"],[399,"TryFrom::Error"],[401,"U,T"],[407,"U"],[418,""],[429,"V"],[469,""],[471,"T"],[499,""],[517,"T"],[531,""],[537,"U"],[551,""],[584,"F,C"],[585,"U,T"],[599,"U"],[613,""],[627,"F"],[630,""],[635,"V"],[653,""],[663,"T"],[667,""],[668,"T"],[669,""],[674,"T"],[676,""],[681,"U"],[683,""],[686,"T"],[687,"U,T"],[689,"U"],[691,""],[694,"V"]]}],["zip321",{"t":"PPPPFPPFPGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHHNNNNNNNCNNNNNNNNNNNNNNNNNNNSHHHHHH","n":["DuplicateParameter","InvalidBase64","MemoBytesError","ParseError","Payment","RecipientMissing","TooManyPayments","TransactionRequest","TransparentMemo","Zip321Error","amount","borrow","","","borrow_mut","","","clone","","","clone_into","","","clone_to_uninit","","","empty","eq","","","fmt","","","","from","","","","from_indexed","from_uri","into","","","label","memo","memo_from_base64","memo_to_base64","message","new","","other_params","payments","recipient_address","source","testing","to_owned","","","to_string","to_uri","total","try_from","","","try_into","","","type_id","","","vzip","","","without_memo","VALID_PARAMNAME","arb_addr_str","arb_valid_memo","arb_zip321_payment","arb_zip321_request","arb_zip321_request_sequential","arb_zip321_uri"],"q":[[0,"zip321"],[74,"zip321::testing"],[81,"zcash_protocol::value"],[82,"core::fmt"],[83,"zcash_address::convert"],[84,"alloc::collections::btree::map"],[85,"core::result"],[86,"alloc::string"],[87,"core::option"],[88,"zcash_protocol::memo"],[89,"zcash_address"],[90,"alloc::vec"],[91,"core::error"],[92,"core::any"],[93,"zcash_protocol::consensus"],[94,"proptest::strategy::traits"]],"i":"j000`00`0`b10l2102102102100210221022100021011``1101012`2102002102102102101```````","f":"``````````{{{d{b}}}f}{d{{d{c}}}{}}00{{{d{h}}}{{d{hc}}}{}}00{{{d{j}}}j}{{{d{b}}}b}{{{d{l}}}l}{{d{d{hc}}}n{}}00{{dA`}n}00{{}l}{{{d{j}}{d{j}}}Ab}{{{d{b}}{d{b}}}Ab}{{{d{l}}{d{l}}}Ab}{{{d{j}}{d{hAd}}}Af}0{{{d{b}}{d{hAd}}}Af}{{{d{l}}{d{hAd}}}Af}{cc{}}{{{Ah{c}}}jAj}11{{{An{Alb}}}{{B`{lj}}}}{{{d{Bb}}}{{B`{lj}}}}{{}c{}}00{{{d{b}}}{{Bf{{d{Bd}}}}}}{{{d{b}}}{{Bf{{d{Bh}}}}}}{{{d{Bb}}}{{B`{Bhj}}}}{{{d{Bh}}}Bd}3{{Bjf{Bf{Bh}}{Bf{Bd}}{Bf{Bd}}{Bn{{Bl{BdBd}}}}}{{Bf{b}}}}{{{Bn{b}}}{{B`{lj}}}}{{{d{b}}}{{d{{C`{{Bl{BdBd}}}}}}}}{{{d{l}}}{{d{{An{Alb}}}}}}{{{d{b}}}{{d{Bj}}}}{{{d{j}}}{{Bf{{d{Cb}}}}}}`{dc{}}00{dBd}{{{d{l}}}Bd}{{{d{l}}}{{B`{fCd}}}}{c{{B`{e}}}{}{}}00{{}{{B`{c}}}{}}00{dCf}00{{}c{}}00{{Bjf}b}{{}d}{Ch{{`{{Cl{}{{Cj{Bd}}}}}}}}{{}{{`{{Cl{}{{Cj{Bh}}}}}}}}{Ch{{`{{Cl{}{{Cj{b}}}}}}}}{Ch{{`{{Cl{}{{Cj{l}}}}}}}}03","D":"Dd","p":[[5,"Payment",0],[1,"reference",null,null,1],[5,"Zatoshis",81],[0,"mut"],[6,"Zip321Error",0],[5,"TransactionRequest",0],[1,"unit"],[1,"u8"],[1,"bool"],[5,"Formatter",82],[8,"Result",82],[6,"ConversionError",83],[10,"Display",82],[1,"usize"],[5,"BTreeMap",84],[6,"Result",85,null,1],[1,"str"],[5,"String",86],[6,"Option",87,null,1],[5,"MemoBytes",88],[5,"ZcashAddress",89],[1,"tuple",null,null,1],[5,"Vec",90],[1,"slice"],[10,"Error",91],[6,"BalanceError",81],[5,"TypeId",92],[6,"NetworkType",93],[17,"Value"],[10,"Strategy",94]],"r":[],"b":[[30,"impl-Debug-for-Zip321Error"],[31,"impl-Display-for-Zip321Error"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAC8ABgAMAA4AHAAGACQAAAA2AAUAPgALAEsABgA=","P":[[11,"T"],[17,""],[20,"T"],[23,""],[34,"T"],[35,"E"],[36,"T"],[38,""],[40,"U"],[43,""],[55,"T"],[58,""],[61,"U,T"],[64,"U"],[67,""],[70,"V"],[73,""]]}]]')); +var searchIndex = new Map(JSON.parse('[["equihash",{"t":"FNNNNNNHNNNN","n":["Error","borrow","borrow_mut","fmt","","from","into","is_valid_solution","to_string","try_from","try_into","type_id"],"q":[[0,"equihash"],[12,"equihash::verify"],[13,"core::fmt"],[14,"core::result"],[15,"alloc::string"],[16,"core::any"]],"i":"`f00000`0000","f":"`{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{{{b{f}}{b{dh}}}j}0{cc{}}{{}c{}}{{ll{b{{A`{n}}}}{b{{A`{n}}}}{b{{A`{n}}}}}{{Ad{Abf}}}}{bAf}{c{{Ad{e}}}{}{}}{{}{{Ad{c}}}{}}{bAh}","D":"j","p":[[1,"reference",null,null,1],[0,"mut"],[5,"Error",0,12],[5,"Formatter",13],[8,"Result",13],[1,"u32"],[1,"u8"],[1,"slice"],[1,"unit"],[6,"Result",14,null,1],[5,"String",15],[5,"TypeId",16]],"r":[[0,12],[1,12],[2,12],[3,12],[4,12],[5,12],[6,12],[7,12],[8,12],[9,12],[10,12],[11,12]],"b":[[3,"impl-Debug-for-Error"],[4,"impl-Display-for-Error"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAAcAAgACAAMACQADAA==","P":[[1,"T"],[3,""],[5,"T"],[6,"U"],[7,""],[9,"U,T"],[10,"U"],[11,""]]}],["f4jumble",{"t":"GPSNNHHHHNNNNNNNN","n":["Error","InvalidLength","VALID_LENGTH","borrow","borrow_mut","f4jumble","f4jumble_inv","f4jumble_inv_mut","f4jumble_mut","fmt","","from","into","to_string","try_from","try_into","type_id"],"q":[[0,"f4jumble"],[17,"core::ops::range"],[18,"alloc::vec"],[19,"core::result"],[20,"core::fmt"],[21,"alloc::string"],[22,"core::any"]],"i":"`n`00````00000000","f":"``{{}b}{d{{d{c}}}{}}{{{d{f}}}{{d{fc}}}{}}{{{d{{j{h}}}}}{{A`{{l{h}}n}}}}0{{{d{f{j{h}}}}}{{A`{Abn}}}}0{{{d{n}}{d{fAd}}}Af}0{cc{}}{{}c{}}{dAh}{c{{A`{e}}}{}{}}{{}{{A`{c}}}{}}{dAj}","D":"Ad","p":[[5,"RangeInclusive",17],[1,"reference",null,null,1],[0,"mut"],[1,"u8"],[1,"slice"],[5,"Vec",18],[6,"Error",0],[6,"Result",19,null,1],[1,"unit"],[5,"Formatter",20],[8,"Result",20],[5,"String",21],[5,"TypeId",22]],"r":[],"b":[[9,"impl-Debug-for-Error"],[10,"impl-Display-for-Error"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAAcAAwAEAAEACgABAA4AAwA=","P":[[3,"T"],[5,""],[11,"T"],[12,"U"],[13,""],[14,"U,T"],[15,"U"],[16,""]]}],["pczt",{"t":"PPGFPPNNNNNNNCNNNNNNNNNNNNNNNNCNNCCNNNNCNNNNNNNNNFKNNNNNNNNNHNNNNNNNNNNMMNNNNNNNNNFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCCCCCCFPGPNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNCNNNNNCCNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFGPFPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPGPFPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["Invalid","NotPczt","ParseError","Pczt","TooShort","UnknownVersion","borrow","","borrow_mut","","clone","clone_into","clone_to_uninit","common","deref","","deref_mut","","deserialize","drop","","fmt","","from","","global","init","","into","","orchard","","parse","roles","sapling","","serialize","","to_owned","transparent","","try_from","","try_into","","type_id","","vzip","","Global","LockTimeInput","borrow","borrow_mut","clone","clone_into","clone_to_uninit","consensus_branch_id","deref","deref_mut","deserialize","determine_lock_time","drop","expiry_height","fmt","from","has_sighash_single","init","inputs_modifiable","into","outputs_modifiable","proprietary","required_height_lock_time","required_time_lock_time","serialize","shielded_modifiable","to_owned","try_from","try_into","tx_version","type_id","version_group_id","vzip","Action","Bundle","Output","Spend","actions","anchor","borrow","","","","borrow_mut","","","","clone","","","","clone_into","","","","clone_to_uninit","","","","cmx","cv_net","deref","","","","deref_mut","","","","deserialize","","","","drop","","","","enc_ciphertext","ephemeral_key","flags","fmt","","","","from","","","","init","","","","into","","","","nullifier","out_ciphertext","output","proprietary","","recipient","rk","rseed","serialize","","","","spend","to_owned","","","","try_from","","","","try_into","","","","type_id","","","","user_address","value","value_sum","vzip","","","","combiner","creator","low_level_signer","redactor","updater","verifier","Combiner","DataMismatch","Error","NoPczts","borrow","","borrow_mut","","combine","deref","","deref_mut","","drop","","fmt","from","","init","","into","","new","try_from","","try_into","","type_id","","vzip","","Creator","borrow","borrow_mut","build","deref","deref_mut","drop","from","init","into","new","try_from","try_into","type_id","vzip","with_fallback_lock_time","with_orchard_flags","Signer","borrow","borrow_mut","deref","deref_mut","drop","finish","from","init","into","new","sign_orchard_with","try_from","try_into","type_id","vzip","GlobalRedactor","Redactor","borrow","","borrow_mut","","clear_proprietary","deref","","deref_mut","","drop","","finish","from","","init","","into","","new","orchard","redact_global_with","redact_orchard_with","redact_proprietary","redact_sapling_with","redact_transparent_with","sapling","transparent","try_from","","try_into","","type_id","","vzip","","ActionRedactor","OrchardRedactor","borrow","","borrow_mut","","clear_bsk","clear_output_ock","clear_output_proprietary","clear_output_recipient","clear_output_rseed","clear_output_user_address","clear_output_value","clear_output_zip32_derivation","clear_rcv","clear_spend_alpha","clear_spend_auth_sig","clear_spend_dummy_sk","clear_spend_fvk","clear_spend_proprietary","clear_spend_recipient","clear_spend_rho","clear_spend_rseed","clear_spend_value","clear_spend_witness","clear_spend_zip32_derivation","clear_zkproof","deref","","deref_mut","","drop","","from","","init","","into","","redact_action","redact_actions","redact_output_proprietary","redact_spend_proprietary","try_from","","try_into","","type_id","","vzip","","OutputRedactor","SaplingRedactor","SpendRedactor","borrow","","","borrow_mut","","","clear_alpha","clear_bsk","clear_dummy_ask","clear_ock","clear_proof_generation_key","clear_proprietary","","clear_rcm","clear_rcv","","clear_recipient","","clear_rseed","","clear_spend_auth_sig","clear_user_address","clear_value","","clear_witness","clear_zip32_derivation","","clear_zkproof","","deref","","","deref_mut","","","drop","","","from","","","init","","","into","","","redact_output","redact_outputs","redact_proprietary","","redact_spend","redact_spends","try_from","","","try_into","","","type_id","","","vzip","","","InputRedactor","OutputRedactor","TransparentRedactor","borrow","","","borrow_mut","","","clear_bip32_derivation","","clear_hash160_preimages","clear_hash256_preimages","clear_partial_signatures","clear_proprietary","","clear_redeem_script","","clear_ripemd160_preimages","clear_script_sig","clear_sha256_preimages","clear_user_address","deref","","","deref_mut","","","drop","","","from","","","init","","","into","","","redact_bip32_derivation","","redact_hash160_preimage","redact_hash256_preimage","redact_input","redact_inputs","redact_output","redact_outputs","redact_partial_signature","redact_proprietary","","redact_ripemd160_preimage","redact_sha256_preimage","try_from","","","try_into","","","type_id","","","vzip","","","GlobalUpdater","OrchardError","Parser","Updater","","borrow","","","borrow_mut","","","deref","","","deref_mut","","","drop","","","finish","fmt","from","","","init","","","into","","","new","set_proprietary","try_from","","","try_into","","","type_id","","","update_global_with","update_orchard_with","vzip","","","Custom","OrchardError","Parse","Verifier","Verify","borrow","","borrow_mut","","deref","","deref_mut","","drop","","finish","fmt","from","","","init","","into","","new","try_from","","try_into","","type_id","","vzip","","with_orchard","Bundle","Output","Spend","anchor","borrow","","","borrow_mut","","","clone","","","clone_into","","","clone_to_uninit","","","cmu","cv","","deref","","","deref_mut","","","deserialize","","","drop","","","enc_ciphertext","ephemeral_key","fmt","","","from","","","init","","","into","","","nullifier","out_ciphertext","outputs","proprietary","","recipient","rk","rseed","serialize","","","spends","to_owned","","","try_from","","","try_into","","","type_id","","","user_address","value","value_sum","vzip","","","Bundle","Input","Output","borrow","","","borrow_mut","","","clone","","","clone_into","","","clone_to_uninit","","","deref","","","deref_mut","","","deserialize","","","drop","","","fmt","","","from","","","init","","","inputs","into","","","outputs","prevout_index","prevout_txid","proprietary","","required_height_lock_time","required_time_lock_time","script_pubkey","","sequence","serialize","","","to_owned","","","try_from","","","try_into","","","type_id","","","user_address","value","","vzip","",""],"q":[[0,"pczt"],[49,"pczt::common"],[82,"pczt::orchard"],[181,"pczt::roles"],[187,"pczt::roles::combiner"],[218,"pczt::roles::creator"],[235,"pczt::roles::low_level_signer"],[251,"pczt::roles::redactor"],[288,"pczt::roles::redactor::orchard"],[339,"pczt::roles::redactor::sapling"],[407,"pczt::roles::redactor::transparent"],[472,"pczt::roles::updater"],[519,"pczt::roles::verifier"],[553,"pczt::sapling"],[631,"pczt::transparent"],[705,"core::result"],[706,"serde::de"],[707,"core::fmt"],[708,"alloc::vec"],[709,"serde::ser"],[710,"core::any"],[711,"core::option"],[712,"alloc::string"],[713,"alloc::collections::btree::map"],[714,"orchard::bundle"],[715,"orchard::pczt::parse"],[716,"core::convert"],[717,"orchard::pczt"],[718,"core::ops::function"],[719,"pczt::roles::updater::orchard"],[720,"orchard::pczt::updater"],[721,"pczt::roles::verifier::orchard"],[722,"orchard::pczt::verify"]],"i":"Af0``00f101000`0101001010100101`00``0000`001010101``Ah00000000`0000000000Bl0111111111````Aj00CdChCj32103210321032100232103210321032100033210321032103210102100103210232103210321032100033210```````Db`0D`10100101011010101001010101`Dd000000000000000`Dh00000000000000``EfEd10010101011010101`11011``10101010``EhF`10100000000000000000001101010101010110010101010```ElFbFd21012101101101010101011010210210210210210210221022210210210210```EnFfFh21010111101011102102102102102102101011222211011210210210210``Fl`0FjFn2102102102102121021021021010210210211102Gf`0`0Gd1010101010101101010010101010```An0GlGn21021021021001021021021021000210210210210102100102102210210210210002210```BdHbHd21021021021021021021021021021021022102111011101210210210210210010210","f":"``````{b{{b{c}}}{}}0{{{b{d}}}{{b{dc}}}{}}0{{{b{f}}}f}{{b{b{dc}}}h{}}{{bj}h}`{l{{b{c}}}{}}0{l{{b{dc}}}{}}0{c{{n{f}}}A`}{lh}0{{{b{f}}{b{dAb}}}Ad}{{{b{Af}}{b{dAb}}}Ad}{cc{}}0{{{b{f}}}{{b{Ah}}}}{{}l}0{{}c{}}0`{{{b{f}}}{{b{Aj}}}}{{{b{{Al{j}}}}}{{n{fAf}}}}``{{{b{f}}}{{b{An}}}}{{{b{f}}}{{B`{j}}}}{{{b{f}}c}nBb}{bc{}}`{{{b{f}}}{{b{Bd}}}}{c{{n{e}}}{}{}}0{{}{{n{c}}}{}}0{bBf}0{{}c{}}0``{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{{{b{Ah}}}Ah}{{b{b{dc}}}h{}}{{bj}h}{{{b{Ah}}}{{b{Bh}}}}{l{{b{c}}}{}}{l{{b{dc}}}{}}{c{{n{Ah}}}A`}{{{b{Ah}}{b{{Al{c}}}}}{{Bj{Bh}}}Bl}{lh}5{{{b{Ah}}{b{dAb}}}Ad}{cc{}}{{{b{Ah}}}Bn}{{}l}1{{}c{}}2{{{b{Ah}}}{{b{{Cb{C`{B`{j}}}}}}}}{{{b{Bl}}}{{Bj{Bh}}}}0{{{b{Ah}}c}nBb}5{bc{}}{c{{n{e}}}{}{}}{{}{{n{c}}}{}}{{{b{Ah}}}{{b{Bh}}}}{bBf}1{{}c{}}````{{{b{Aj}}}{{b{{B`{Cd}}}}}}{{{b{Aj}}}{{b{{Cf{j}}}}}}{b{{b{c}}}{}}000{{{b{d}}}{{b{dc}}}{}}000{{{b{Aj}}}Aj}{{{b{Cd}}}Cd}{{{b{Ch}}}Ch}{{{b{Cj}}}Cj}{{b{b{dc}}}h{}}000{{bj}h}000{{{b{Cj}}}{{b{{Cf{j}}}}}}{{{b{Cd}}}{{b{{Cf{j}}}}}}{l{{b{c}}}{}}000{l{{b{dc}}}{}}000{c{{n{Aj}}}A`}{c{{n{Cd}}}A`}{c{{n{Ch}}}A`}{c{{n{Cj}}}A`}{lh}000{{{b{Cj}}}{{b{{B`{j}}}}}}9{{{b{Aj}}}{{b{j}}}}{{{b{Aj}}{b{dAb}}}Ad}{{{b{Cd}}{b{dAb}}}Ad}{{{b{Ch}}{b{dAb}}}Ad}{{{b{Cj}}{b{dAb}}}Ad}{cc{}}000{{}l}000{{}c{}}000{{{b{Ch}}}{{b{{Cf{j}}}}}}9{{{b{Cd}}}{{b{Cj}}}}{{{b{Ch}}}{{b{{Cb{C`{B`{j}}}}}}}}{{{b{Cj}}}{{b{{Cb{C`{B`{j}}}}}}}}{{{b{Cj}}}{{b{{Bj{{Cf{j}}}}}}}}40{{{b{Aj}}c}nBb}{{{b{Cd}}c}nBb}{{{b{Ch}}c}nBb}{{{b{Cj}}c}nBb}{{{b{Cd}}}{{b{Ch}}}}{bc{}}000{c{{n{e}}}{}{}}000{{}{{n{c}}}{}}000{bBf}000{{{b{Cj}}}{{b{{Bj{C`}}}}}}{{{b{Cj}}}{{b{{Bj{Cl}}}}}}{{{b{Aj}}}{{b{{Cn{ClBn}}}}}}{{}c{}}000``````````{b{{b{c}}}{}}0{{{b{d}}}{{b{dc}}}{}}0{D`{{n{fDb}}}}{l{{b{c}}}{}}0{l{{b{dc}}}{}}0{lh}0{{{b{Db}}{b{dAb}}}Ad}{cc{}}0{{}l}0{{}c{}}0{{{B`{f}}}D`}{c{{n{e}}}{}{}}0{{}{{n{c}}}{}}0{bBf}0>>`=<{Ddf};:9765{{BhBhBh{Cf{j}}{Cf{j}}}Dd}432{{}c{}}{{DdBh}Dd}{{DdDf}Dd}`{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{l{{b{c}}}{}}{l{{b{dc}}}{}}{lh}{Dhf}{cc{}}{{}l}{{}c{}}{fDh}{{Dhe}{{n{Dhc}}}{{Dl{Dj}}}{{Eb{{b{f}}{b{dDn}}{b{dj}}}{{E`{{n{hc}}}}}}}}{c{{n{e}}}{}{}}{{}{{n{c}}}{}}{bBf}{{}c{}}``>>=={{{b{dEd}}}h}==<<;;{Eff}::9988{fEf}`{{Efc}Ef{{Eb{Ed}}}}{{Efc}Ef{{Eb{Eh}}}}{{{b{dEd}}{b{Ej}}}h}{{Efc}Ef{{Eb{El}}}}{{Efc}Ef{{Eb{En}}}}``;;::9988``{b{{b{c}}}{}}0{{{b{d}}}{{b{dc}}}{}}0{{{b{dEh}}}h}{{{b{dF`}}}h}0000000000000000001{l{{b{c}}}{}}0{l{{b{dc}}}{}}0{lh}0{cc{}}0{{}l}0{{}c{}}0{{{b{dEh}}lc}h{{Eb{F`}}}}{{{b{dEh}}c}h{{Eb{F`}}}}{{{b{dF`}}{b{Ej}}}h}0{c{{n{e}}}{}{}}0{{}{{n{c}}}{}}0{bBf}0{{}c{}}0```{b{{b{c}}}{}}00{{{b{d}}}{{b{dc}}}{}}00{{{b{dFb}}}h}{{{b{dEl}}}h}1{{{b{dFd}}}h}2202202020202022020{l{{b{c}}}{}}00{l{{b{dc}}}{}}00{lh}00{cc{}}00{{}l}00{{}c{}}00{{{b{dEl}}lc}h{{Eb{Fd}}}}{{{b{dEl}}c}h{{Eb{Fd}}}}{{{b{dFb}}{b{Ej}}}h}{{{b{dFd}}{b{Ej}}}h}{{{b{dEl}}lc}h{{Eb{Fb}}}}{{{b{dEl}}c}h{{Eb{Fb}}}}{c{{n{e}}}{}{}}00{{}{{n{c}}}{}}00{bBf}00{{}c{}}00```{b{{b{c}}}{}}00{{{b{d}}}{{b{dc}}}{}}00{{{b{dFf}}}h}{{{b{dFh}}}h}11110101110{l{{b{c}}}{}}00{l{{b{dc}}}{}}00{lh}00{cc{}}00{{}l}00{{}c{}}00{{{b{dFf}}{Cf{j}}}h}{{{b{dFh}}{Cf{j}}}h}11{{{b{dEn}}lc}h{{Eb{Ff}}}}{{{b{dEn}}c}h{{Eb{Ff}}}}{{{b{dEn}}lc}h{{Eb{Fh}}}}{{{b{dEn}}c}h{{Eb{Fh}}}}5{{{b{dFf}}{b{Ej}}}h}{{{b{dFh}}{b{Ej}}}h}77{c{{n{e}}}{}{}}00{{}{{n{c}}}{}}00{bBf}00{{}c{}}00`````{b{{b{c}}}{}}00{{{b{d}}}{{b{dc}}}{}}00{l{{b{c}}}{}}00{l{{b{dc}}}{}}00{lh}00{Fjf}{{{b{Fl}}{b{dAb}}}Ad}{cc{}}00{{}l}00{{}c{}}00{fFj}{{{b{dFn}}C`{B`{j}}}h}???>>>==={{Fjc}Fj{{Eb{Fn}}}}{{Fjc}{{n{FjFl}}}{{Eb{G`}{{E`{{n{hGb}}}}}}}}>>>`````==<<;;::99{Gdf}{{{b{{Gf{c}}}}{b{dAb}}}AdGh}8{Gj{{Gf{c}}}{}}98877{fGd}{c{{n{e}}}{}{}}0{{}{{n{c}}}{}}0{bBf}0{{}c{}}0{{Gde}{{n{Gd{Gf{c}}}}}{}{{Eb{{b{Dn}}}{{E`{{n{h{Gf{c}}}}}}}}}}```{{{b{An}}}{{b{{Cf{j}}}}}}{b{{b{c}}}{}}00{{{b{d}}}{{b{dc}}}{}}00{{{b{An}}}An}{{{b{Gl}}}Gl}{{{b{Gn}}}Gn}{{b{b{dc}}}h{}}00{{bj}h}00{{{b{Gn}}}{{b{{Cf{j}}}}}}{{{b{Gl}}}{{b{{Cf{j}}}}}}1{l{{b{c}}}{}}00{l{{b{dc}}}{}}00{c{{n{An}}}A`}{c{{n{Gl}}}A`}{c{{n{Gn}}}A`}{lh}00{{{b{Gn}}}{{b{{B`{j}}}}}}8{{{b{An}}{b{dAb}}}Ad}{{{b{Gl}}{b{dAb}}}Ad}{{{b{Gn}}{b{dAb}}}Ad}{cc{}}00{{}l}00{{}c{}}00=6{{{b{An}}}{{b{{B`{Gn}}}}}}{{{b{Gl}}}{{b{{Cb{C`{B`{j}}}}}}}}{{{b{Gn}}}{{b{{Cb{C`{B`{j}}}}}}}}{{{b{Gn}}}{{b{{Bj{{Cf{j}}}}}}}}{{{b{Gl}}}{{b{{Cf{j}}}}}}1{{{b{An}}c}nBb}{{{b{Gl}}c}nBb}{{{b{Gn}}c}nBb}{{{b{An}}}{{b{{B`{Gl}}}}}}{bc{}}00{c{{n{e}}}{}{}}00{{}{{n{c}}}{}}00{bBf}00{{{b{Gn}}}{{b{{Bj{C`}}}}}}{{{b{Gn}}}{{b{{Bj{Cl}}}}}}{{{b{An}}}{{b{H`}}}}{{}c{}}00```{b{{b{c}}}{}}00{{{b{d}}}{{b{dc}}}{}}00{{{b{Bd}}}Bd}{{{b{Hb}}}Hb}{{{b{Hd}}}Hd}{{b{b{dc}}}h{}}00{{bj}h}00{l{{b{c}}}{}}00{l{{b{dc}}}{}}00{c{{n{Bd}}}A`}{c{{n{Hb}}}A`}{c{{n{Hd}}}A`}{lh}00{{{b{Bd}}{b{dAb}}}Ad}{{{b{Hb}}{b{dAb}}}Ad}{{{b{Hd}}{b{dAb}}}Ad}{cc{}}00{{}l}00{{{b{Bd}}}{{b{{B`{Hb}}}}}}{{}c{}}00{{{b{Bd}}}{{b{{B`{Hd}}}}}}{{{b{Hb}}}{{b{Bh}}}}{{{b{Hb}}}{{b{{Cf{j}}}}}}{{{b{Hb}}}{{b{{Cb{C`{B`{j}}}}}}}}{{{b{Hd}}}{{b{{Cb{C`{B`{j}}}}}}}}{{{b{Hb}}}{{Bj{Bh}}}}0{{{b{Hb}}}{{b{{B`{j}}}}}}{{{b{Hd}}}{{b{{B`{j}}}}}}{{{b{Hb}}}{{b{{Bj{Bh}}}}}}{{{b{Bd}}c}nBb}{{{b{Hb}}c}nBb}{{{b{Hd}}c}nBb}{bc{}}00{c{{n{e}}}{}{}}00{{}{{n{c}}}{}}00{bBf}00{{{b{Hd}}}{{b{{Bj{C`}}}}}}{{{b{Hb}}}{{b{Cl}}}}{{{b{Hd}}}{{b{Cl}}}}{{}c{}}00","D":"ANf","p":[[1,"reference",null,null,1],[0,"mut"],[5,"Pczt",0],[1,"unit"],[1,"u8"],[1,"usize"],[6,"Result",705,null,1],[10,"Deserializer",706],[5,"Formatter",707],[8,"Result",707],[6,"ParseError",0],[5,"Global",49],[5,"Bundle",82],[1,"slice"],[5,"Bundle",553],[5,"Vec",708],[10,"Serializer",709],[5,"Bundle",631],[5,"TypeId",710],[1,"u32"],[6,"Option",711,null,1],[10,"LockTimeInput",49],[1,"bool"],[5,"String",712],[5,"BTreeMap",713],[5,"Action",82],[1,"array"],[5,"Spend",82],[5,"Output",82],[1,"u64"],[1,"tuple",null,null,1],[5,"Combiner",187],[6,"Error",187],[5,"Creator",218],[5,"Flags",714],[5,"Signer",235],[6,"ParseError",715],[10,"From",716,null,1],[5,"Bundle",717],[17,"Output"],[10,"FnOnce",718],[5,"GlobalRedactor",251],[5,"Redactor",251],[5,"OrchardRedactor",288],[1,"str"],[5,"SaplingRedactor",339],[5,"TransparentRedactor",407],[5,"ActionRedactor",288],[5,"SpendRedactor",339],[5,"OutputRedactor",339],[5,"InputRedactor",407],[5,"OutputRedactor",407],[5,"Updater",472],[6,"OrchardError",472,719],[5,"GlobalUpdater",472],[5,"Updater",720],[6,"UpdaterError",720],[5,"Verifier",519],[6,"OrchardError",519,721],[10,"Debug",707],[6,"VerifyError",722],[5,"Spend",553],[5,"Output",553],[1,"i128"],[5,"Input",631],[5,"Output",631]],"r":[[473,719],[474,719],[476,719],[479,719],[482,719],[485,719],[488,719],[491,719],[493,719],[496,719],[499,719],[502,719],[507,719],[510,719],[513,719],[518,719],[519,721],[520,721],[521,721],[523,721],[525,721],[527,721],[529,721],[531,721],[533,721],[535,721],[537,721],[538,721],[540,721],[542,721],[545,721],[547,721],[549,721],[551,721]],"b":[[36,"impl-Pczt"],[37,"impl-Serialize-for-Pczt"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAM4BSAAHAAYADwAIABsAAQAgAAAAJAAAACYAAQApAAgAMwAFADoAAgA+AAIAQwAAAEgAAgBMAAYAWQAlAIAAAACCAAMAigADAJIAAACUAAAAmAAAAJoAFACyAAMAvAABAL8ABADFAAYAzgABANMADgDjAAAA5QAMAPQAAAD4AAMA/QAEAAMBBQAMAQEAEQEAABcBCQAjAQMAPAEFAEQBAQBMAQcAVwEFAHQBCACAAQIAjAELAJsBBQCuAQgAugECAM0BCwDbAREA7gEAAPIBAgD6AQgABQIDAAoCDAAYAgAAGgIAABwCAQAhAgcALgIdAE0CAwBUAgIAWgIAAFwCAABgAgAAYgIPAHUCAgB7Ah0AnAIDAKMCAgCoAgMArQIOAL0CBAA=","P":[[6,"T"],[10,""],[11,"T"],[12,""],[14,"T"],[18,"__D"],[19,""],[23,"T"],[25,""],[28,"U"],[31,""],[37,"__S"],[38,"T"],[40,""],[41,"U,T"],[43,"U"],[45,""],[47,"V"],[51,"T"],[53,""],[54,"T"],[55,""],[57,"T"],[59,"__D"],[60,"L"],[61,""],[64,"T"],[65,""],[68,"U"],[69,""],[73,"__S"],[74,""],[75,"T"],[76,"U,T"],[77,"U"],[78,""],[81,"V"],[86,""],[88,"T"],[96,""],[100,"T"],[104,""],[110,"T"],[118,"__D"],[122,""],[133,"T"],[137,""],[141,"U"],[145,""],[153,"__S"],[157,""],[158,"T"],[162,"U,T"],[166,"U"],[170,""],[177,"V"],[191,"T"],[195,""],[196,"T"],[200,""],[203,"T"],[205,""],[207,"U"],[209,""],[210,"U,T"],[212,"U"],[214,""],[216,"V"],[219,"T"],[221,""],[222,"T"],[224,""],[225,"T"],[226,""],[227,"U"],[228,""],[229,"U,T"],[230,"U"],[231,""],[232,"V"],[233,""],[236,"T"],[240,""],[242,"T"],[243,""],[244,"U"],[245,""],[246,"E,F"],[247,"U,T"],[248,"U"],[249,""],[250,"V"],[253,"T"],[257,""],[258,"T"],[262,""],[265,"T"],[267,""],[269,"U"],[271,""],[273,"F"],[275,""],[276,"F"],[280,"U,T"],[282,"U"],[284,""],[286,"V"],[290,"T"],[294,""],[315,"T"],[319,""],[321,"T"],[323,""],[325,"U"],[327,"F"],[329,""],[331,"U,T"],[333,"U"],[335,""],[337,"V"],[342,"T"],[348,""],[371,"T"],[377,""],[380,"T"],[383,""],[386,"U"],[389,"F"],[391,""],[393,"F"],[395,"U,T"],[398,"U"],[401,""],[404,"V"],[410,"T"],[416,""],[429,"T"],[435,""],[438,"T"],[441,""],[444,"U"],[447,""],[451,"F"],[455,""],[460,"U,T"],[463,"U"],[466,""],[469,"V"],[477,"T"],[489,""],[494,"T"],[497,""],[500,"U"],[503,""],[505,"U,T"],[508,"U"],[511,""],[514,"F"],[516,"V"],[524,"T"],[532,""],[535,"E"],[536,"T"],[537,"E"],[538,"T"],[539,""],[541,"U"],[543,""],[544,"U,T"],[546,"U"],[548,""],[550,"V"],[552,"E,F"],[556,""],[557,"T"],[563,""],[566,"T"],[569,""],[575,"T"],[581,"__D"],[584,""],[592,"T"],[595,""],[598,"U"],[601,""],[609,"__S"],[612,""],[613,"T"],[616,"U,T"],[619,"U"],[622,""],[628,"V"],[634,"T"],[640,""],[643,"T"],[646,""],[649,"T"],[655,"__D"],[658,""],[664,"T"],[667,""],[671,"U"],[674,""],[684,"__S"],[687,"T"],[690,"U,T"],[693,"U"],[696,""],[702,"V"]]}],["zcash",{"t":"E","n":["primitives"],"q":[[0,"zcash"]],"i":"`","f":"`","D":"b","p":[],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OjAAAAEAAAAAAAAAEAAAAAEA","P":[]}],["zcash_address",{"t":"GRRPPPIPGPPKKKPPFPFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNMNNMNMNMNMNNNNNNNNCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNOOSHFGPKPKGPPPKRGPPPPPPPPPPPPGGPPPPGFFPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOO","n":["ConversionError","Error","","IncorrectNetwork","InvalidEncoding","Main","Network","NotZcash","ParseError","Regtest","Test","ToAddress","TryFromAddress","TryFromRawAddress","Unified","Unsupported","UnsupportedAddress","User","ZcashAddress","borrow","","","","borrow_mut","","","","can_receive_as","can_receive_memo","clone","clone_into","clone_to_uninit","convert","convert_if_network","encode","eq","","fmt","","","","","","","","from","","","","","","","from_sapling","","from_sprout","","from_str","from_tex","","from_transparent_p2pkh","","from_transparent_p2sh","","from_unified","","hash","into","","","","matches_receiver","source","test_vectors","testing","to_owned","to_string","","","","try_from","","","","try_from_encoded","try_from_raw_sapling","","try_from_raw_sprout","","try_from_raw_tex","","try_from_raw_transparent_p2pkh","","try_from_raw_transparent_p2sh","","try_from_raw_unified","","try_from_sapling","","try_from_sprout","","try_from_tex","","try_from_transparent_p2pkh","","try_from_transparent_p2sh","","try_from_unified","","try_into","","","","type_id","","","","unified","vzip","","","","actual","expected","UNIFIED","arb_address","Address","Bech32mZip316","BothP2phkAndP2sh","Container","DuplicateTypecode","Encoding","Fvk","InvalidEncoding","InvalidTypecodeOrder","InvalidTypecodeValue","Item","","Ivk","NotUnified","OnlyTransparent","Orchard","","","","P2pkh","","","","P2sh","","ParseError","Receiver","Sapling","","","","Typecode","Ufvk","Uivk","Unknown","","","","UnknownPrefix","borrow","","","","","","","","","borrow_mut","","","","","","","","","can_receive_memo","clone","","","","","","","","clone_into","","","","","","","","clone_to_uninit","","","","","","","","cmp","contains_receiver","decode","","encode","","encoding_order","eq","","","","","","","","","fmt","","","","","","","","","from","","","","","","","","","has_receiver_of_type","hash","","","","","","","","into","","","","","","","","","items","","items_as_parsed","","","","partial_cmp","preference_order","to_owned","","","","","","","","to_string","try_from","","","","","","","","","","","","","try_from_items","","try_into","","","","","","","","","type_id","","","","","","","","","typed_encoding","","vzip","","","","","","","","","data","typecode","data","typecode","data","typecode"],"q":[[0,"zcash_address"],[121,"zcash_address::ConversionError"],[123,"zcash_address::test_vectors"],[124,"zcash_address::testing"],[125,"zcash_address::unified"],[320,"zcash_address::unified::Fvk"],[322,"zcash_address::unified::Ivk"],[324,"zcash_address::unified::Receiver"],[326,"zcash_protocol"],[327,"zcash_address::convert"],[328,"core::result"],[329,"zcash_protocol::consensus"],[330,"alloc::string"],[331,"zcash_address::encoding"],[332,"core::fmt"],[333,"zcash_address::kind::unified"],[334,"zcash_address::kind::unified::address"],[335,"core::hash"],[336,"core::error"],[337,"core::option"],[338,"core::any"],[339,"proptest::strategy::traits"],[340,"zcash_address::kind::unified::fvk"],[341,"zcash_address::kind::unified::ivk"],[342,"core::cmp"],[343,"alloc::vec"],[344,"zcash_address::kind"]],"i":"`AhAdA`AlFj`1`00```12`2`An32f14300000000030114433001444330Bn1011010101011254115``125412541177777777777766666666666625412541`2541D`0````Bj`0``000`Ej`11CfDfDjDn321030``3210```321053Cb3Dh3Dl38E`736251490373625140736251407362514003Ed00058473625:18473625::8473625:14847362518473625:19994321584736251:88477366255:1008473625:18473625:1En09584736;2Fd0Ff0Fh0","f":"```````````````````{b{{b{c}}}{}}000{{{b{d}}}{{b{dc}}}{}}000{{{b{f}}h}j}{{{b{f}}}j}{{{b{f}}}f}{{b{b{dc}}}l{}}{{bn}l}{f{{Ab{cA`}}}Ad}{{fAf}{{Ab{cA`}}}Ah}{{{b{f}}}Aj}{{{b{Al}}{b{Al}}}j}{{{b{f}}{b{f}}}j}{{{b{An}}{b{dB`}}}Bb}0{{{b{{A`{c}}}}{b{dB`}}}BbBd}{{{b{{A`{c}}}}{b{dB`}}}BbBf}{{{b{Al}}{b{dB`}}}Bb}0{{{b{f}}{b{dB`}}}Bb}0{cc{}}0{c{{A`{c}}}{}}{Bhc{}}2{BjAl}3{{Af{Bl{n}}}Bn}{{Af{Bl{n}}}f}10{{{b{C`}}}{{Ab{fc}}}{}}212121{{AfCb}Bn}{{AfCb}f}{{{b{f}}{b{dc}}}lCd}{{}c{}}000{{{b{f}}{b{Cf}}}j}{{{b{{A`{c}}}}}{{Cj{{b{Ch}}}}}Ch}``{bc{}}{bAj}000{c{{Ab{e}}}{}{}}000{{{b{C`}}}{{Ab{fAl}}}}{{{Bl{n}}}{{Ab{{Ah{}{{Cl{c}}}}{A`{c}}}}}{}}000000000{Cb{{Ab{{Ah{}{{Cl{c}}}}{A`{c}}}}}{}}0{{Af{Bl{n}}}{{Ab{{Ad{}{{Cl{c}}}}{A`{c}}}}}{}}000000000{{AfCb}{{Ab{{Ad{}{{Cl{c}}}}{A`{c}}}}}{}}0{{}{{Ab{c}}}{}}000{bCn}000`{{}c{}}000{D`Af}0{{}b}{Af{{`{{Dd{}{{Db{f}}}}}}}}```````````````````````````````````````{b{{b{c}}}{}}00000000{{{b{d}}}{{b{dc}}}{}}00000000{{{b{Cb}}}j}{{{b{Cf}}}Cf}{{{b{Cb}}}Cb}{{{b{Df}}}Df}{{{b{Dh}}}Dh}{{{b{Dj}}}Dj}{{{b{Dl}}}Dl}{{{b{Dn}}}Dn}{{{b{E`}}}E`}{{b{b{dc}}}l{}}0000000{{bn}l}0000000{{{b{E`}}{b{E`}}}Eb}{{{b{Cb}}{b{Cf}}}j}{{{b{C`}}}{{Ab{{Ef{AfEd}}Bj}}}}0{{{b{Ed}}{b{Af}}}Aj}0{{{b{Dn}}{b{Dn}}}Eb}{{{b{Cf}}{b{Cf}}}j}{{{b{Cb}}{b{Cb}}}j}{{{b{Df}}{b{Df}}}j}{{{b{Dh}}{b{Dh}}}j}{{{b{Dj}}{b{Dj}}}j}{{{b{Dl}}{b{Dl}}}j}{{{b{Dn}}{b{Dn}}}j}{{{b{Bj}}{b{Bj}}}j}{{{b{E`}}{b{E`}}}j}{{{b{Cf}}{b{dB`}}}Bb}{{{b{Cb}}{b{dB`}}}Bb}{{{b{Df}}{b{dB`}}}Bb}{{{b{Dh}}{b{dB`}}}Bb}{{{b{Dj}}{b{dB`}}}Bb}{{{b{Dl}}{b{dB`}}}Bb}{{{b{Dn}}{b{dB`}}}Bb}{{{b{Bj}}{b{dB`}}}Bb}0{cc{}}00000000{{{b{Cb}}h}j}{{{b{Cf}}{b{dc}}}lCd}{{{b{Cb}}{b{dc}}}lCd}{{{b{Df}}{b{dc}}}lCd}{{{b{Dh}}{b{dc}}}lCd}{{{b{Dj}}{b{dc}}}lCd}{{{b{Dl}}{b{dc}}}lCd}{{{b{Dn}}{b{dc}}}lCd}{{{b{E`}}{b{dc}}}lCd}{{}c{}}00000000{{{b{{Ej{}{{Eh{c}}}}}}}{{El{c}}}En}0{{{b{{Ej{}{{Eh{c}}}}}}}{{b{{F`{c}}}}}En}{{{b{Cb}}}{{b{{F`{Cf}}}}}}{{{b{Dh}}}{{b{{F`{Df}}}}}}{{{b{Dl}}}{{b{{F`{Dj}}}}}}{{{b{E`}}{b{E`}}}{{Cj{Eb}}}}{{{b{Dn}}{b{Dn}}}Eb}{bc{}}0000000{bAj}{c{{Ab{e}}}{}{}}{{{Ef{Fb{b{{F`{n}}}}}}}{{Ab{Cfc}}}{}}1{{{Ef{Fb{b{{F`{n}}}}}}}{{Ab{Dfc}}}{}}222{{{Ef{Fb{b{{F`{n}}}}}}}{{Ab{Djc}}}{}}3{Fb{{Ab{Dnc}}}{}}444{{{El{c}}}{{Ab{EdBj}}}{}}0{{}{{Ab{c}}}{}}00000000{bCn}00000000{{{b{En}}}{{El{n}}}}0{{}c{}}00000000{FdEl}{FdFb}{FfEl}{FfFb}{FhEl}{FhFb}","D":"M`","p":[[1,"reference",null,null,1],[0,"mut"],[5,"ZcashAddress",0],[6,"PoolType",326],[1,"bool"],[1,"unit"],[1,"u8"],[6,"ConversionError",0,327],[6,"Result",328,null,1],[10,"TryFromAddress",0,327],[6,"NetworkType",329],[10,"TryFromRawAddress",0,327],[5,"String",330],[6,"ParseError",0,331],[5,"UnsupportedAddress",0,327],[5,"Formatter",332],[8,"Result",332],[10,"Debug",332],[10,"Display",332],[1,"never"],[6,"ParseError",125,333],[1,"array"],[10,"ToAddress",0,327],[1,"str"],[5,"Address",125,334],[10,"Hasher",335],[6,"Receiver",125,334],[10,"Error",336],[6,"Option",337,null,1],[17,"Error"],[5,"TypeId",338],[15,"IncorrectNetwork",121],[17,"Value"],[10,"Strategy",339],[6,"Fvk",125,340],[5,"Ufvk",125,340],[6,"Ivk",125,341],[5,"Uivk",125,341],[6,"Typecode",125,333],[6,"Bech32mZip316",125,333],[6,"Ordering",342],[10,"Encoding",125,333],[1,"tuple",null,null,1],[17,"Item"],[10,"Container",125,333],[5,"Vec",343],[10,"Item",125,333],[1,"slice"],[1,"u32"],[15,"Unknown",320],[15,"Unknown",322],[15,"Unknown",324],[8,"Network",0]],"r":[[0,327],[1,327],[2,327],[3,327],[4,331],[7,331],[8,331],[11,327],[12,327],[13,327],[14,331],[15,327],[16,327],[17,327],[19,327],[20,327],[21,331],[23,327],[24,327],[25,331],[35,331],[37,327],[38,327],[39,327],[40,327],[41,331],[42,331],[45,327],[46,327],[47,327],[48,327],[49,331],[50,331],[52,327],[54,327],[57,327],[59,327],[61,327],[63,327],[66,327],[67,327],[68,331],[71,327],[75,327],[76,327],[77,331],[79,327],[80,327],[81,331],[84,327],[85,327],[86,327],[87,327],[88,327],[89,327],[90,327],[91,327],[92,327],[93,327],[94,327],[95,327],[96,327],[97,327],[98,327],[99,327],[100,327],[101,327],[102,327],[103,327],[104,327],[105,327],[106,327],[107,327],[108,327],[109,327],[110,331],[112,327],[113,327],[114,331],[116,344],[117,327],[118,327],[119,331],[125,334],[126,333],[127,333],[128,333],[129,333],[130,333],[131,340],[132,333],[133,333],[134,333],[135,333],[136,333],[137,341],[138,333],[139,333],[140,334],[141,340],[142,341],[143,333],[144,334],[145,340],[146,341],[147,333],[148,334],[149,333],[150,333],[151,334],[152,334],[153,340],[154,341],[155,333],[156,333],[157,340],[158,341],[159,334],[160,340],[161,341],[162,333],[163,333],[164,334],[165,334],[166,340],[167,340],[168,341],[169,341],[170,333],[171,333],[172,333],[173,334],[174,334],[175,340],[176,340],[177,341],[178,341],[179,333],[180,333],[181,333],[182,334],[183,334],[184,334],[185,340],[186,340],[187,341],[188,341],[189,333],[190,333],[191,334],[192,334],[193,340],[194,340],[195,341],[196,341],[197,333],[198,333],[199,334],[200,334],[201,340],[202,340],[203,341],[204,341],[205,333],[206,333],[207,333],[208,334],[209,333],[210,333],[211,333],[212,333],[213,333],[214,334],[215,334],[216,340],[217,340],[218,341],[219,341],[220,333],[221,333],[222,333],[223,334],[224,334],[225,340],[226,340],[227,341],[228,341],[229,333],[230,333],[231,333],[232,334],[233,334],[234,340],[235,340],[236,341],[237,341],[238,333],[239,333],[240,333],[241,334],[242,334],[243,334],[244,340],[245,340],[246,341],[247,341],[248,333],[249,333],[250,334],[251,334],[252,340],[253,340],[254,341],[255,341],[256,333],[257,333],[258,333],[259,333],[260,333],[261,333],[262,334],[263,340],[264,341],[265,333],[266,333],[267,334],[268,334],[269,340],[270,340],[271,341],[272,341],[273,333],[274,333],[275,333],[276,334],[277,334],[278,334],[279,340],[280,340],[281,340],[282,341],[283,341],[284,341],[285,333],[286,333],[287,333],[288,333],[289,333],[290,333],[291,334],[292,334],[293,340],[294,340],[295,341],[296,341],[297,333],[298,333],[299,333],[300,334],[301,334],[302,340],[303,340],[304,341],[305,341],[306,333],[307,333],[308,333],[309,333],[310,333],[311,334],[312,334],[313,340],[314,340],[315,341],[316,341],[317,333],[318,333],[319,333]],"b":[[37,"impl-Display-for-UnsupportedAddress"],[38,"impl-Debug-for-UnsupportedAddress"],[39,"impl-Debug-for-ConversionError%3CE%3E"],[40,"impl-Display-for-ConversionError%3CE%3E"],[41,"impl-Debug-for-ParseError"],[42,"impl-Display-for-ParseError"],[43,"impl-Debug-for-ZcashAddress"],[44,"impl-Display-for-ZcashAddress"],[230,"impl-Display-for-ParseError"],[231,"impl-Debug-for-ParseError"]],"c":"OjAAAAEAAAAAAAAAEAAAAAcA","e":"OzAAAAEAAN4AGAAHAAAAFAAHAB4AAgAkAAkAMAABADMAAAA1AAMAOgAIAEgACwBVAB8AdgAFAI0AAACRAAAAlQAAAJkAAACgAAIApQARALgAGADWABIA8wAHAAcBAAAKARcAJAERADgBDgA=","P":[[19,"T"],[27,""],[30,"T"],[31,""],[32,"T"],[34,""],[39,"E"],[41,""],[45,"T"],[47,"E"],[48,"T"],[50,""],[51,"T"],[52,""],[56,"FromStr::Err"],[57,""],[65,"__H"],[66,"U"],[70,""],[71,"E"],[74,"T"],[75,""],[79,"U,T"],[83,""],[84,"TryFromRawAddress::Error"],[96,"TryFromAddress::Error"],[108,"U"],[112,""],[117,"V"],[121,""],[164,"T"],[182,""],[191,"T"],[199,""],[232,"T"],[241,""],[242,"__H"],[250,"U"],[259,"Container::Item"],[262,""],[267,"T"],[275,""],[276,"U,T"],[277,"TryFrom::Error"],[278,"U,T"],[279,"TryFrom::Error"],[280,"U,T"],[283,"TryFrom::Error"],[284,"U,T"],[285,"TryFrom::Error"],[286,"U,T"],[289,"Container::Item"],[291,"U"],[300,""],[311,"V"],[320,""]]}],["zcash_client_backend",{"t":"FPPPIPPIGPPNCNNNNNNNCHNNNNNNCNCNNNNNNNNNNCNNNNNNNCCCCCCNNNNNNNNNNCCGPGPPPPPPFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNHHKRFFRRRFGGFPPPPFGFFPPFPPRRRPPPPPPKPPPPPPPGRKGSRFGFFFPSRFFFGFFFPGGGPPPPRPKKFKKTTFNNNNNNNQQQQQNMNNNMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMMMMMMMNMMMMMMMMMMNMMNNMNMMMNMMNNNNNNNNMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNMMMMNNNNNNNONNNNNNCNMMMMMMNNMMMNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNMNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMNNMMNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNMNMNOOOOOOOOOOOOOOKKFFRFNNNNNNNNNNNNNNMNNNNNNNNNNCNNNNNNNNNMNNNMNNNNNNNNNNMNNNHNNNNCNNNNNNNNNNNNNNNMPGPPNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNPPPPPPPPPGPPPPPPPPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNOOPPPPPGFPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNPPGNNNNNNNNNNNNNNNNCNNNNNOOOHRRGRRFTRKPPRRFRFRPFFRKFFKKFFNNNMMMNNNNNMNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNMNNCNNMOCOONNNNNNNNNNNMNNCNNNMONNNNNNNHNNNNNNNNNNNNNNNNNCMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNRRRTKRHHHHHMMMHHHMMHHHHMHHHHMNNMHHHHHMHHHHMMMHHHMMMHMHFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNHNNNNNNHNHHNNNNPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPIPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPIIPPPPPIIPPPPPHHCHHHHOOOOOOOOOOPPPPRRFGKGRRPPPKPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNMNNNNNNNNNNNNNNNNNOOKPGPRPPPGPNNNNNNNMHHHHHNNNNNNMHHHHHHNNNNNNNNNNNNNNNNNNNNNNNNNNNNOORPPPGKFGPFGRRPPRPPFGPFPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNCNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCOOOOOKFRKRKNNMNNNNNNMNNNNMMNNNNMMNKFRKRKNNMNNNNNNMNNNNMMNNNNMMNIIFFKNNNNNNNNNNNNNNNNNNMNNNNNNMNNNNNNNNNNNNTTGPPPGGPGPPPPPPPPPPPPPGFPPPPPGFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNHPPPPPPPPPPFGPPFPPFPFGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOPPPPPPPPPPSGPPPPPPNNNNNCNNNNNNNNNNNCCNNNNNNNFFFFFFONNNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNONONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNONNNNNNNNNNNNNNNNOONONOONNNNNNNNNNNNNNNNNNNNNNNNNNOOOONOOOOONNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNFGFPPFPPFFFFFFPFPGPPONNONNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNOONNOONNNNNNNNNNNNNNNOOONNOCONNNNOOONNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNOOOONNNOOONNNNNNNNNNNNPPPGNNNNNNNNNNNNNNNNNNNNNNNFFFFFFFFFFFFFFPFFPFGFFFFOOOOOONOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNONONOOONOONNOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNNNNNNNNNNNNNNNOOFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPFPGFKFPPPMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNMNNNNMNNNNHCNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOHCHHPGPPPPPNNNNNNNNNNNNNNHNNNNNPPPPPGFPGFGPPFIIFIIFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOPPPPFPPFPGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHHNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNSHHHHHH","n":["DecryptedOutput","Incoming","Orchard","Outgoing","PoolType","Sapling","Shielded","ShieldedProtocol","TransferType","Transparent","WalletInternal","account","address","borrow","","borrow_mut","","clone","clone_into","clone_to_uninit","data_api","decrypt_transaction","deref","","deref_mut","","drop","","encoding","eq","fees","fmt","from","","index","init","","into","","into_request","","keys","memo","named_layer","","new","note","note_value","","proposal","proto","scan","scanning","serialization","sync","to_owned","transfer_type","try_from","","try_into","","type_id","","vzip","","wallet","zip321","Address","Orchard","Receiver","Sapling","","Tex","Transparent","","Unified","UnifiedAddress","borrow","","","borrow_mut","","","can_receive_as","clone","","clone_into","","clone_to_uninit","","corresponds","decode","","deref","","","deref_mut","","","drop","","","encode","","","eq","","fmt","","from","","","","","","from_receivers","has_orchard","has_sapling","has_transparent","init","","","into","","","into_request","","","named_layer","","","orchard","receiver_types","sapling","testing","to_owned","","to_transparent_address","to_zcash_address","","transparent","try_from","","","","try_from_raw_sapling","try_from_raw_tex","try_from_raw_transparent_p2pkh","try_from_raw_transparent_p2sh","try_from_raw_unified","try_from_zcash_address","try_into","","","type_id","","","unknown","vzip","","","arb_addr","arb_unified_addr","Account","","AccountBalance","AccountBirthday","AccountId","","","AccountMeta","AccountPurpose","AccountSource","AddressInfo","All","","","Attempt","Balance","BirthdayError","BlockMetadata","BoundedU8","Combine","Decode","DecryptedTransaction","Derived","Enhancement","Error","","","ExceedsBalancePercentage","ExceedsMinValue","ExceedsPriorSendPercentile","GetStatus","HeightInvalid","Imported","InputSource","Mempool","Mined","","NoAccounts","NoDerivedAccounts","NotInMainChain","NotRelevant","NoteFilter","NoteRef","NoteRetention","NullifierQuery","ORCHARD_SHARD_HEIGHT","OrchardShardStore","OutputOfSentTx","OutputStatusFilter","PoolMeta","Progress","Ratio","Relevant","SAPLING_SHARD_HEIGHT","SaplingShardStore","ScannedBlock","ScannedBlockCommitments","ScannedBundles","SeedRelevance","SentTransaction","SentTransactionOutput","SpendableNotes","Spending","TransactionDataRequest","TransactionStatus","TransactionStatusFilter","TransactionsInvolvingAddress","TxidNotRecognized","Unspent","","UtxoRef","ViewOnly","WalletCommitmentTrees","WalletRead","WalletSummary","WalletTest","WalletWrite","ZERO","","Zip32Derivation","account_balances","account_id","account_index","add_pending_change_value","add_pending_spendable_value","add_spendable_value","address","ambassador_impl_InputSource","ambassador_impl_WalletCommitmentTrees","ambassador_impl_WalletRead","ambassador_impl_WalletTest","ambassador_impl_WalletWrite","attempt","block_fully_scanned","block_hash","","block_height","block_max_scanned","block_metadata","block_time","borrow","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","borrow_mut","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","chain","chain_height","chain_tip_height","change_pending_confirmation","","clone","","","","","","","","","","","","","","","","","","","","clone_into","","","","","","","","","","","","","","","","","","","","clone_to_uninit","","","","","","","","","","","","","","","","","","","","cmp","","","","combine","commitments","create_account","created","denominator","deref","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","deref_mut","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","diversifier_index","drop","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","empty","eq","","","","","","","","","","","","","","error","fee_amount","final_tree_size","find_account_for_ephemeral_address","fmt","","","","","","","","","","","","","","","","","","","","from","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","from_activation","from_parts","","","","","from_sapling_activation","from_treestate","fully_scanned_height","get_account","get_account_birthday","get_account_for_ufvk","get_account_ids","get_account_metadata","get_address_for_index","get_block_hash","get_checkpoint_history","get_derived_account","get_known_ephemeral_addresses","get_last_generated_address_matching","get_max_height_hash","get_memo","get_next_available_address","get_notes","get_orchard_nullifiers","get_sapling_nullifiers","get_sent_note_ids","get_sent_outputs","get_spendable_note","get_spendable_transparent_outputs","get_target_and_anchor_heights","get_transaction","get_transparent_address_metadata","get_transparent_balances","get_transparent_output","get_transparent_receivers","get_tx_height","get_tx_history","get_unified_full_viewing_keys","get_unspent_transparent_output","get_wallet_birthday","get_wallet_summary","hash","","","","","","height","","id","import_account_hd","import_account_ufvk","init","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","into","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","into_commitments","into_request","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","into_vec","is_synced","key_derivation","key_source","list_addresses","memo","mined_height","name","named_layer","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","new","","","","","","","","","","new_const","next_orchard_subtree_index","next_sapling_subtree_index","note_count","","nullifier_map","numerator","orchard","","","","orchard_balance","orchard_frontier","orchard_outputs","orchard_tree_size","orchard_value","output_index","outputs","partial_cmp","","","","progress","purpose","put_blocks","put_orchard_subtree_roots","put_received_transparent_utxo","put_sapling_subtree_roots","recipient","recover_until","recovery","reserve_next_n_ephemeral_addresses","sapling","","","","sapling_balance","sapling_frontier","sapling_outputs","sapling_tree_size","sapling_value","scan","scanning","seed_fingerprint","seed_relevance_to_derived_accounts","select_spendable_notes","set_transaction_status","should_retain_orchard","should_retain_sapling","source","spendable_value","","store_decrypted_tx","store_transactions_to_be_sent","suggest_scan_ranges","take_orchard","take_sapling","target_height","testing","to_block_metadata","to_owned","","","","","","","","","","","","","","","","","","","","total","","total_note_count","total_value","","transaction_data_requests","transactions","transparent_key_scope","truncate_to_height","try_from","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","try_into","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","tx","","type_id","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","ufvk","uivk","unshielded","unshielded_balance","update_chain_tip","utxo_query_height","utxos_spent","validate_seed","value","","","value_pending_spendability","","vzip","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","wallet","with_orchard_balance_mut","with_orchard_tree_mut","with_sapling_balance_mut","with_sapling_tree_mut","with_unshielded_balance_mut","derivation","","key_source","","purpose","condition","fallback","account_ids","address","block_range_end","block_range_start","output_status_filter","request_at","tx_status_filter","BlockCache","BlockSource","ChainState","CommitmentTreeRoot","Error","ScanSummary","block_hash","block_height","borrow","","","borrow_mut","","","clone","","clone_into","","clone_to_uninit","","delete","deref","","","deref_mut","","","drop","","","empty","error","final_orchard_tree","final_sapling_tree","fmt","","","from","","","from_parts","get_tip_height","init","","","insert","into","","","into_request","","","named_layer","","","new","read","received_orchard_note_count","received_sapling_note_count","root_hash","scan_cached_blocks","scanned_range","spent_orchard_note_count","spent_sapling_note_count","subtree_end_height","testing","to_owned","","truncate","try_from","","","try_into","","","type_id","","","vzip","","","with_blocks","BlockSource","Error","Scan","Wallet","borrow","borrow_mut","deref","deref_mut","drop","fmt","","from","","init","into","into_request","named_layer","source","to_string","try_from","try_into","type_id","vzip","MockBlockSource","borrow","borrow_mut","deref","deref_mut","drop","from","init","into","into_request","named_layer","try_from","try_into","type_id","vzip","with_blocks","AccountCannotSpend","AccountIdNotRecognized","Address","AddressNotRecognized","BalanceError","Builder","Change","CommitmentTree","DataSource","Error","InsufficientFunds","KeyNotAvailable","KeyNotRecognized","MemoForbidden","NoSupportedReceivers","NoteMismatch","NoteSelection","PaysEphemeralTransparentAddress","Proposal","ProposalNotSupported","ScanRequired","UnsupportedChangeType","borrow","borrow_mut","deref","deref_mut","drop","fmt","","from","","","","","","","","","init","into","into_request","named_layer","source","to_string","try_from","try_into","type_id","vzip","available","required","ChainTip","FoundNote","Historic","Ignored","OpenAdjacent","ScanPriority","ScanRange","Scanned","Verify","block_range","borrow","","borrow_mut","","clone","","clone_into","","clone_to_uninit","","cmp","deref","","deref_mut","","drop","","eq","","fmt","","","from","","from_parts","init","","into","","into_request","","is_empty","len","named_layer","","partial_cmp","priority","spanning_tree","split_at","to_owned","","to_string","truncate_end","truncate_start","try_from","","try_into","","type_id","","vzip","","Leaf","Parent","SpanningTree","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","drop","fmt","from","init","insert","into","into_request","into_vec","named_layer","testing","to_owned","try_from","try_into","type_id","vzip","left","right","span","scan_range","Account","AccountId","AddressType","BlockSource","BsError","CachedBlock","DEFAULT_NETWORK","DataStore","DataStoreFactory","DefaultExternal","DiversifiedExternal","DsError","Error","FakeCompactOutput","Handle","InitialChainState","InsertResult","Internal","MockWalletDb","NoteCommitments","Nullifier","Reset","TestAccount","TestBuilder","TestCache","TestFvk","TestState","TransactionSummary","account","account_id","account_value_delta","add_logical_action","add_output","add_spend","at","birthday","block_fully_scanned","block_max_scanned","block_metadata","block_source","borrow","","","","","","","","","","borrow_mut","","","","","","","","","","build","cache","chain_height","chain_state","clone","","","","clone_into","","","","clone_to_uninit","","","","create_account","create_proposed_transactions","create_standard_transaction","default","deref","","","","","","","","","","deref_mut","","","","","","","","","","drop","","","","","","","","","","expired_unmined","expiry_height","fee_paid","find_account_for_ephemeral_address","fmt","from","","","","","","","","","","from_compact_block","from_parts","generate_block_at","generate_empty_block","generate_next_block","generate_next_block_from_tx","generate_next_block_including","generate_next_block_multi","generate_next_block_spending","get_account","get_account_birthday","get_account_for_ufvk","get_account_ids","get_account_metadata","get_address_for_index","get_block_hash","get_derived_account","get_known_ephemeral_addresses","get_last_generated_address_matching","get_max_height_hash","get_memo","get_next_available_address","get_orchard_nullifiers","get_pending_change","get_pending_shielded_balance","get_sapling_nullifiers","get_spendable_balance","get_spendable_note","get_target_and_anchor_heights","get_total_balance","get_transaction","get_transparent_address_metadata","get_transparent_balances","get_transparent_receivers","get_tx_from_history","get_tx_height","get_unified_full_viewing_keys","get_wallet_birthday","get_wallet_summary","","has_change","height","id","import_account_hd","import_account_ufvk","init","","","","","","","","","","insert","into","","","","","","","","","","into_request","","","","","","","","","","is_shielding","latest_cached_block","list_addresses","memo_count","mined_height","name","named_layer","","","","","","","","","","network","","new","","","new_data_store","none","nu5_activation_height","orchard","","orchard_end_size","orchard_ovk","orchard_tree","pool","prior_orchard_roots","prior_sapling_roots","propose_shielding","propose_standard_transfer","propose_transfer","put_blocks","put_orchard_subtree_roots","put_received_transparent_utxo","put_sapling_subtree_roots","put_subtree_roots","random","received_note_count","reserve_next_n_ephemeral_addresses","reset","","rng_mut","sapling","","sapling_activation_height","sapling_end_size","sapling_ovk","sapling_tree","scan_cached_blocks","seed_relevance_to_derived_accounts","select_spendable_notes","sent_note_count","set_account_index","set_transaction_status","shield_transparent_funds","single_output_change_strategy","source","spend","spent_note_count","store_decrypted_tx","store_transactions_to_be_sent","suggest_scan_ranges","test_account","test_account_orchard","test_account_sapling","test_seed","to_owned","","","","total_received","total_spent","transaction_data_requests","transparent","truncate_to_height","","","truncate_to_height_retaining_cache","try_from","","","","","","","","","","try_into","","","","","","","","","","try_scan_cached_blocks","txid","type_id","","","","","","","","","","ufvk","uivk","update_chain_tip","usk","utxo_query_height","validate_seed","vzip","","","","","","","","","","wallet","wallet_mut","with_account_from_sapling_activation","with_account_having_current_birthday","with_block_cache","with_data_store_factory","with_gap_limits","with_initial_chain_state","with_orchard_tree_mut","with_sapling_tree_mut","OrchardPoolTester","borrow","borrow_mut","decrypted_pool_outputs_count","deref","deref_mut","drop","empty_tree_leaf","empty_tree_root","from","fvk_default_address","fvks_equal","init","into","into_request","named_layer","next_subtree_index","put_subtree_roots","received_note_count","select_spendable_notes","sk","sk_default_address","sk_to_fvk","test_account_fvk","try_from","try_into","try_output_recovery","type_id","usk_to_sk","vzip","with_decrypted_pool_memos","Fvk","MerkleTreeHash","Note","SHIELDED_PROTOCOL","ShieldedPoolTester","Sk","birthday_in_anchor_shard","change_note_spends_succeed","checkpoint_gaps","create_to_address_fails_on_incorrect_usk","data_db_truncation","decrypted_pool_outputs_count","empty_tree_leaf","empty_tree_root","external_address_change_spends_detected_in_restore_from_seed","fully_funded_fully_private","fully_funded_send_to_t","fvk_default_address","fvks_equal","invalid_chain_cache_disconnected","metadata_queries_exclude_unwanted_notes","multi_pool_checkpoint","multi_pool_checkpoints_with_pruning","next_subtree_index","ovk_policy_prevents_recovery_from_chain","pool_crossing_required","proposal_fails_if_not_all_ephemeral_outputs_consumed","proposal_fails_with_no_blocks","put_subtree_roots","random_address","random_fvk","received_note_count","reorg_to_checkpoint","scan_cached_blocks_allows_blocks_out_of_order","scan_cached_blocks_detects_spends_out_of_order","scan_cached_blocks_finds_change_notes","scan_cached_blocks_finds_received_notes","select_spendable_notes","send_multi_step_proposed_transfer","send_single_step_proposed_transfer","send_with_multiple_change_outputs","shield_transparent","sk","sk_default_address","sk_to_fvk","spend_fails_on_locked_notes","spend_fails_on_unverified_notes","spend_succeeds_to_t_addr_zero_change","test_account_fvk","try_output_recovery","usk_to_sk","valid_chain_states","with_decrypted_pool_memos","zip317_spend","SaplingPoolTester","borrow","borrow_mut","decrypted_pool_outputs_count","deref","deref_mut","drop","empty_tree_leaf","empty_tree_root","from","fvk_default_address","fvks_equal","init","into","into_request","named_layer","next_subtree_index","put_subtree_roots","received_note_count","select_spendable_notes","sk","sk_default_address","sk_to_fvk","test_account_fvk","try_from","try_into","try_output_recovery","type_id","usk_to_sk","vzip","with_decrypted_pool_memos","GapLimits","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","drop","ephemeral","eq","external","fmt","from","gap_limits","init","internal","into","into_request","named_layer","new","put_received_transparent_utxo","to_owned","transparent_balance_across_shielding","transparent_balance_spendability","try_from","try_into","type_id","vzip","AccountCannotSpend","","","","","AccountIdNotRecognized","","","","","Address","","","","","AddressNotRecognized","","","","","BalanceError","","","","","Builder","","","","","Change","","","","","CommitmentTree","","","","","CreateErrT","DataSource","","","","","InsufficientFunds","","","","","KeyNotAvailable","","","","","KeyNotRecognized","","","","","MemoForbidden","","","","","NoSupportedReceivers","","","","","NoteMismatch","","","","","NoteSelection","","","","","PaysEphemeralTransparentAddress","","","","","Proposal","","","","","ProposalNotSupported","","","","","ProposeShieldingErrT","ProposeTransferErrT","ScanRequired","","","","","ShieldErrT","TransferErrT","UnsupportedChangeType","","","","","create_proposed_transactions","decrypt_and_store_transaction","input_selection","propose_shielding","propose_standard_transfer_to_address","propose_transfer","shield_transparent_funds","available","required","available","required","available","required","available","required","available","required","Address","Balance","Change","DataSource","Error","","GreedyInputSelector","GreedyInputSelectorError","InputSelector","InputSelectorError","InputSource","","InsufficientFunds","Proposal","Selection","ShieldingSelector","SyncRequired","UnsupportedAddress","UnsupportedTexAddress","borrow","","","borrow_mut","","","clone","clone_into","clone_to_uninit","default","deref","","","deref_mut","","","drop","","","eq","fmt","","","","from","","","","","","","init","","","into","","","into_request","","","named_layer","","","new","propose_shielding","","propose_transaction","","source","to_owned","to_string","","try_from","","","try_into","","","type_id","","","vzip","","","available","required","AddressCodec","Base58","Bech32DecodeError","Bech32Error","Error","Hrp","HrpMismatch","ReadError","TransparentCodecError","UnsupportedAddressType","borrow","","borrow_mut","","clone","clone_into","clone_to_uninit","decode","decode_extended_full_viewing_key","decode_extended_spending_key","decode_extfvk_with_network","decode_payment_address","decode_transparent_address","deref","","deref_mut","","drop","","encode","encode_extended_full_viewing_key","encode_extended_spending_key","encode_payment_address","encode_payment_address_p","encode_transparent_address","encode_transparent_address_p","eq","fmt","","","","from","","","","init","","into","","into_request","","named_layer","","to_owned","to_string","","try_from","","try_into","","type_id","","vzip","","actual","expected","AccountMetaT","AddDustToFee","AllowDustChange","BundleError","ChangeError","ChangeStrategy","ChangeValue","DustAction","DustInputs","DustOutputPolicy","EphemeralBalance","Error","FeeRule","Input","InsufficientFunds","MetaSource","Output","Reject","SplitPolicy","StandardFeeRule","StrategyError","TransactionBalance","Zip317","action","borrow","","","","","","","","borrow_mut","","","","","","","","clone","","","","","","","","clone_into","","","","","","","","clone_to_uninit","","","","","","","","common","compute_balance","default","deref","","","","","","","","deref_mut","","","","","","","","drop","","","","","","","","dust_threshold","ephemeral_input_amount","ephemeral_output_amount","ephemeral_transparent","eq","","","","","","","fee_required","","fee_rule","fetch_wallet_meta","fmt","","","","","","","","","from","","","","","","","","grace_actions","init","","","","","","","","into","","","","","","","","into_request","","","","","","","","is_ephemeral","is_input","is_output","marginal_fee","memo","min_split_output_value","named_layer","","","","","","","","new","","orchard","","output_pool","proposed_change","sapling","","shielded","single_output","source","split_count","standard","target_output_count","to_owned","","","","","","","","to_string","total","try_from","","","","","","","","try_into","","","","","","","","type_id","","","","","","","","value","vzip","","","","","","","","with_min_output_value","zip317","available","orchard","required","sapling","transparent","BundleView","EmptyBundleView","In","InputView","Out","OutputView","borrow","borrow_mut","bundle_type","","deref","deref_mut","drop","from","init","inputs","","into","into_request","named_layer","note_id","outputs","","try_from","try_into","type_id","value","","vzip","BundleView","EmptyBundleView","In","InputView","Out","OutputView","borrow","borrow_mut","bundle_type","","deref","deref_mut","drop","from","init","inputs","","into","into_request","named_layer","note_id","outputs","","try_from","try_into","type_id","value","","vzip","MultiOutputChangeStrategy","SingleOutputChangeStrategy","MultiOutputChangeStrategy","SingleOutputChangeStrategy","Zip317FeeRule","borrow","","borrow_mut","","compute_balance","","deref","","deref_mut","","drop","","fee_rule","","fetch_wallet_meta","","from","","grace_actions","init","","into","","into_request","","marginal_fee","named_layer","","new","","try_from","","try_into","","type_id","","vzip","","ALLOW_ALL","","AddressGenerationError","AllAvailableKeys","Allow","Custom","DecodingError","DerivationError","DiversifierSpaceExhausted","Era","EraInvalid","EraMismatch","InsufficientData","InvalidSaplingDiversifierIndex","InvalidTransparentChildIndex","KeyDataInvalid","KeyNotAvailable","LengthInvalid","LengthMismatch","Omit","Orchard","","ReadError","ReceiverRequirement","ReceiverRequirements","ReceiverTypeNotSupported","Require","ShieldedReceiverRequired","Transparent","TypecodeInvalid","UnifiedAddressRequest","UnifiedFullViewingKey","UnifiedIncomingViewingKey","UnifiedSpendingKey","address","","borrow","","","","","","","","","","borrow_mut","","","","","","","","","","clone","","","","","","","clone_into","","","","","","","clone_to_uninit","","","","","","","custom","decode","","default_address","","","default_transparent_address","deref","","","","","","","","","","deref_mut","","","","","","","","","","drop","","","","","","","","","","encode","","eq","","","find_address","","fmt","","","","","","","","","","","","","from","","","","","","","","","","","from_bytes","from_sapling_extended_full_viewing_key","from_seed","has_orchard","has_sapling","has_transparent","init","","","","","","","","","","intersect","","into","","","","","","","","","","into_request","","","","","","","","","","named_layer","","","","","","","","","","new","","","orchard","","","","p2pkh","parse","receiver_requirements","sapling","","","","","testing","to_bytes","to_owned","","","","","","","to_receiver_requirements","to_string","","","to_unified_full_viewing_key","to_unified_incoming_viewing_key","transparent","","","try_from","","","","","","","","","","try_into","","","","","","","","","","type_id","","","","","","","","","","unsafe_custom","unsafe_new","vzip","","","","","","","","","","DiversifiableFullViewingKey","ExtendedFullViewingKey","ExtendedSpendingKey","add_logical_action","add_output","add_spend","address","","borrow","","","borrow_mut","","","change_address","clone","","","clone_into","","","clone_to_uninit","","","decrypt_diversifier","default_address","","","deref","","","deref_mut","","","derive_child","derive_internal","","diversified_address","diversified_change_address","drop","","","eq","","expsk","find_address","","fmt","","","from","","","","","from_bytes","","from_path","fvk","","init","","","into","","","into_request","","","master","named_layer","","","orchard_ovk","read","","sapling_ovk","spending_key","to_bytes","","to_diversifiable_full_viewing_key","","to_extended_full_viewing_key","to_external_ivk","to_internal_fvk","to_ivk","to_nk","to_ovk","to_owned","","","try_from","","","try_into","","","type_id","","","vzip","","","write","","arb_unified_spending_key","AnchorNotFound","BalanceError","ChainDoubleSpend","Change","EphemeralOutputLeftUnspent","EphemeralOutputsInvalid","Overflow","Payment","PaymentPoolsMismatch","PaysTexFromShielded","Proposal","ProposalError","ReferenceError","RequestTotalInvalid","ShieldedInputs","ShieldingInvalid","SpendsChange","Step","StepDoubleSpend","StepOutput","StepOutputIndex","anchor_height","balance","borrow","","","","","","borrow_mut","","","","","","clone","","","","","","clone_into","","","","","","clone_to_uninit","","","","","","cmp","","deref","","","","","","deref_mut","","","","","","drop","","","","","","eq","","","","","fee_rule","fmt","","","","","","from","","","","","","from_parts","","hash","","init","","","","","","into","","","","","","into_request","","","","","","involves","is_shielding","min_target_height","multi_step","named_layer","","","","","","new","notes","output_index","partial_cmp","","payment_pools","prior_step_inputs","shielded_inputs","single_step","step_index","steps","to_owned","","","","","","to_string","transaction_request","transparent_inputs","try_from","","","","","","try_into","","","","","","type_id","","","","","","vzip","","","","","","input_total","output_total","BalanceInvalid","EmptyShieldedInputs","FeeRuleNotSupported","InputNotFound","InputRetrieval","InvalidChangeRecipient","InvalidEphemeralRecipient","MemoInvalid","NoSteps","NullInput","PROPOSAL_SER_V1","ProposalDecodingError","ProposalInvalid","TransparentMemo","TxIdInvalid","ValuePoolNotSupported","VersionInvalid","Zip321","borrow","borrow_mut","clone","clone_into","clone_to_uninit","compact_formats","deref","deref_mut","drop","fmt","","from","","init","into","into_request","named_layer","proposal","service","source","to_owned","to_string","try_from","try_into","type_id","vzip","ChainMetadata","CompactBlock","CompactOrchardAction","CompactSaplingOutput","CompactSaplingSpend","CompactTx","actions","borrow","","","","","","borrow_mut","","","","","","chain_metadata","ciphertext","","clear","","","","","","clone","","","","","","clone_into","","","","","","clone_to_uninit","","","","","","cmu","","cmx","","default","","","","","","deref","","","","","","deref_mut","","","","","","drop","","","","","","encoded_len","","","","","","ephemeral_key","","","","eq","","","","","","fee","fmt","","","","","","from","","","","","","","","","hash","","","header","","height","","index","init","","","","","","into","","","","","","into_request","","","","","","named_layer","","","","","","nf","","","nullifier","orchard_commitment_tree_size","outputs","prev_hash","","proto_version","sapling_commitment_tree_size","spends","time","to_owned","","","","","","try_from","","","","","","try_into","","","","","","txid","type_id","","","","","","vtx","vzip","","","","","","ChangeValue","FeeRule","MemoBytes","NotSpecified","Orchard","PaymentOutputPool","PoolNotSpecified","PreZip313","PriorStepChange","PriorStepOutput","Proposal","ProposalStep","ProposedInput","ReceivedOutput","Sapling","TransactionBalance","Transparent","ValuePool","Zip313","Zip317","anchor_height","as_str_name","","balance","borrow","","","","","","","","","","","","borrow_mut","","","","","","","","","","","","change_index","clear","","","","","","","","","","clone","","","","","","","","","","","","clone_into","","","","","","","","","","","","clone_to_uninit","","","","","","","","","","","","cmp","","default","","","","","","","","","","","","deref","","","","","","","","","","","","deref_mut","","","","","","","","","","","","drop","","","","","","","","","","","","encoded_len","","","","","","","","","","eq","","","","","","","","","","","","fee_required","fee_rule","","fmt","","","","","","","","","","","","from","","","","","","","","","","","","","","from_i32","","from_standard_proposal","from_str_name","","hash","","index","init","","","","","","","","","","","","inputs","into","","","","","","","","","","","","into_request","","","","","","","","","","","","is_ephemeral","is_shielding","is_valid","","memo","min_target_height","named_layer","","","","","","","","","","","","parse_txid","partial_cmp","","payment_index","","payment_output_pools","pool_type","","proposed_change","proposed_input","proto_version","set_fee_rule","set_value_pool","","","step_index","","steps","to_owned","","","","","","","","","","","","transaction_request","try_from","","","","","","","","","","","","","","try_into","","","","","","","","","","","","try_into_standard_proposal","txid","type_id","","","","","","","","","","","","value","","","","value_pool","","","","","","vzip","","","","","","","","","","","","PriorStepChange","PriorStepOutput","ReceivedOutput","Value","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","drop","encode","encoded_len","eq","fmt","from","init","into","into_request","merge","named_layer","to_owned","try_from","try_into","type_id","vzip","Address","AddressList","Balance","BlockId","BlockRange","ChainSpec","Duration","Empty","Exclude","GetAddressUtxosArg","GetAddressUtxosReply","GetAddressUtxosReplyList","GetSubtreeRootsArg","LightdInfo","Orchard","PingResponse","RawTransaction","Sapling","SendResponse","ShieldedProtocol","SubtreeRoot","TransparentAddressBlockFilter","TreeState","TxFilter","address","","","address_utxos","addresses","","as_str_name","block","block_height","borrow","","","","","","","","","","","","","","","","","","","","","","borrow_mut","","","","","","","","","","","","","","","","","","","","","","branch","build_date","build_user","chain_name","clear","","","","","","","","","","","","","","","","","","","","","clone","","","","","","","","","","","","","","","","","","","","","","clone_into","","","","","","","","","","","","","","","","","","","","","","clone_to_uninit","","","","","","","","","","","","","","","","","","","","","","cmp","compact_tx_streamer_client","completing_block_hash","completing_block_height","consensus_branch_id","data","default","","","","","","","","","","","","","","","","","","","","","","deref","","","","","","","","","","","","","","","","","","","","","","deref_mut","","","","","","","","","","","","","","","","","","","","","","donation_address","drop","","","","","","","","","","","","","","","","","","","","","","encoded_len","","","","","","","","","","","","","","","","","","","","","end","entry","eq","","","","","","","","","","","","","","","","","","","","","","error_code","error_message","estimated_height","exit","fmt","","","","","","","","","","","","","","","","","","","","","","from","","","","","","","","","","","","","","","","","","","","","","from_i32","from_str_name","git_commit","hash","","","","height","","","","index","","init","","","","","","","","","","","","","","","","","","","","","","interval_us","into","","","","","","","","","","","","","","","","","","","","","","into_request","","","","","","","","","","","","","","","","","","","","","","is_valid","max_entries","","named_layer","","","","","","","","","","","","","","","","","","","","","","network","orchard_tree","","partial_cmp","range","root_hash","sapling_activation_height","sapling_tree","","script","set_shielded_protocol","shielded_protocol","","start","start_height","start_index","taddr_support","time","to_chain_state","to_owned","","","","","","","","","","","","","","","","","","","","","","try_from","","","","","","","","","","","","","","","","","","","","","","","try_into","","","","","","","","","","","","","","","","","","","","","","txid","","type_id","","","","","","","","","","","","","","","","","","","","","","value_zat","","vendor","version","vzip","","","","","","","","","","","","","","","","","","","","","","zcashd_build","zcashd_subversion","CompactTxStreamerClient","accept_compressed","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","drop","fmt","from","get_address_utxos","get_address_utxos_stream","get_block","get_block_nullifiers","get_block_range","get_block_range_nullifiers","get_latest_block","get_latest_tree_state","get_lightd_info","get_mempool_stream","get_mempool_tx","get_subtree_roots","get_taddress_balance","get_taddress_balance_stream","get_taddress_txids","get_transaction","get_tree_state","init","into","into_request","max_decoding_message_size","max_encoding_message_size","named_layer","new","ping","send_compressed","send_transaction","to_owned","try_from","try_into","type_id","vzip","with_interceptor","with_origin","BlockHeightDiscontinuity","EncodingInvalid","Nullifiers","PrevHashMismatch","ScanError","ScanningKey","ScanningKeyOps","ScanningKeys","TreeSizeInvalid","TreeSizeMismatch","TreeSizeUnknown","account_id","","","at_height","borrow","","","","borrow_mut","","","","clone","clone_into","clone_to_uninit","deref","","","","deref_mut","","","","drop","","","","empty","","fmt","","from","","","","from_account_ufvks","init","","","","into","","","","into_request","","","","is_continuity_error","key_scope","","","named_layer","","","","new","nf","","","orchard","","prepare","","","sapling","","scan_block","testing","to_owned","to_string","try_from","","","","try_into","","","","type_id","","","","vzip","","","","at_height","","","","","computed","given","index","new_height","pool_type","prev_height","protocol","","","txid","fake_compact_block","shardtree","read_shard","write_shard","Cache","Error","MisbehavingServer","Scan","Server","Wallet","WalletTrees","borrow","borrow_mut","deref","deref_mut","drop","fmt","","from","","","init","into","into_request","named_layer","run","to_string","try_from","try_into","type_id","vzip","Custom","Discard","EphemeralTransparent","External","InternalAccount","Note","NoteId","Orchard","OvkPolicy","ReceivedNote","Recipient","Sapling","Sender","TransparentAddressMetadata","WalletOrchardOutput","WalletOrchardSpend","WalletOutput","WalletSaplingOutput","WalletSaplingSpend","WalletSpend","WalletTransparentOutput","WalletTx","account_id","","address_index","block_index","borrow","","","","","","","","","","borrow_mut","","","","","","","","","","clone","","","","","","","clone_into","","","","","","","clone_to_uninit","","","","","","","cmp","coin","custom_from_common_bytes","deref","","","","","","","","","","deref_mut","","","","","","","","","","drop","","","","","","","","","","ephemeral_key","eq","","","","","fmt","","","","","","","from","","","","","","","","","","from_parts","","","","index","","init","","","","","","","","","","internal_note_id","into","","","","","","","","","","into_request","","","","","","","","","","is_change","map_note","mined_height","named_layer","","","","","","","","","","new","","","nf","","note","","note_commitment_tree_position","","note_id","","note_value","","orchard_outputs","orchard_spends","outpoint","","output_index","","partial_cmp","protocol","","recipient_address","recipient_key_scope","sapling_outputs","sapling_spends","scope","spending_key_scope","to_owned","","","","","","","try_from","","","","","","","","","","try_into","","","","","","","","","","txid","","","txout","type_id","","","","","","","","","","value","","","","vzip","","","","","","","","","","orchard","sapling","ephemeral_address","external_address","note","outpoint","output_pool","receiving_account","","recipient_address","DuplicateParameter","InvalidBase64","MemoBytesError","ParseError","Payment","RecipientMissing","TooManyPayments","TransactionRequest","TransparentMemo","Zip321Error","amount","borrow","","","borrow_mut","","","clone","","","clone_into","","","clone_to_uninit","","","deref","","","deref_mut","","","drop","","","empty","eq","","","fmt","","","","from","","","","from_indexed","from_uri","init","","","into","","","into_request","","","label","memo","memo_from_base64","memo_to_base64","message","named_layer","","","new","","other_params","payments","recipient_address","source","testing","to_owned","","","to_string","to_uri","total","try_from","","","try_into","","","type_id","","","vzip","","","without_memo","VALID_PARAMNAME","arb_addr_str","arb_valid_memo","arb_zip321_payment","arb_zip321_request","arb_zip321_request_sequential","arb_zip321_uri"],"q":[[0,"zcash_client_backend"],[67,"zcash_client_backend::address"],[161,"zcash_client_backend::address::testing"],[163,"zcash_client_backend::data_api"],[981,"zcash_client_backend::data_api::AccountPurpose"],[982,"zcash_client_backend::data_api::AccountSource"],[986,"zcash_client_backend::data_api::NoteFilter"],[988,"zcash_client_backend::data_api::SeedRelevance"],[989,"zcash_client_backend::data_api::TransactionDataRequest"],[995,"zcash_client_backend::data_api::chain"],[1077,"zcash_client_backend::data_api::chain::error"],[1100,"zcash_client_backend::data_api::chain::testing"],[1116,"zcash_client_backend::data_api::error"],[1164,"zcash_client_backend::data_api::error::Error"],[1166,"zcash_client_backend::data_api::scanning"],[1228,"zcash_client_backend::data_api::scanning::spanning_tree"],[1253,"zcash_client_backend::data_api::scanning::spanning_tree::SpanningTree"],[1256,"zcash_client_backend::data_api::scanning::spanning_tree::testing"],[1257,"zcash_client_backend::data_api::testing"],[1598,"zcash_client_backend::data_api::testing::orchard"],[1629,"zcash_client_backend::data_api::testing::pool"],[1683,"zcash_client_backend::data_api::testing::sapling"],[1714,"zcash_client_backend::data_api::testing::transparent"],[1743,"zcash_client_backend::data_api::wallet"],[1860,"zcash_client_backend::data_api::error::Error"],[1870,"zcash_client_backend::data_api::wallet::input_selection"],[1953,"zcash_client_backend::data_api::wallet::input_selection::InputSelectorError"],[1955,"zcash_client_backend::encoding"],[2019,"zcash_client_backend::encoding::Bech32DecodeError"],[2021,"zcash_client_backend::fees"],[2242,"zcash_client_backend::fees::ChangeError"],[2247,"zcash_client_backend::fees::orchard"],[2276,"zcash_client_backend::fees::sapling"],[2305,"zcash_client_backend::fees::standard"],[2307,"zcash_client_backend::fees::zip317"],[2348,"zcash_client_backend::keys"],[2616,"zcash_client_backend::keys::sapling"],[2721,"zcash_client_backend::keys::testing"],[2722,"zcash_client_backend::proposal"],[2889,"zcash_client_backend::proposal::ProposalError"],[2891,"zcash_client_backend::proto"],[2935,"zcash_client_backend::proto::compact_formats"],[3117,"zcash_client_backend::proto::proposal"],[3469,"zcash_client_backend::proto::proposal::proposed_input"],[3496,"zcash_client_backend::proto::service"],[4095,"zcash_client_backend::proto::service::compact_tx_streamer_client"],[4141,"zcash_client_backend::scanning"],[4239,"zcash_client_backend::scanning::ScanError"],[4254,"zcash_client_backend::scanning::testing"],[4255,"zcash_client_backend::serialization"],[4256,"zcash_client_backend::serialization::shardtree"],[4258,"zcash_client_backend::sync"],[4285,"zcash_client_backend::wallet"],[4541,"zcash_client_backend::wallet::OvkPolicy"],[4543,"zcash_client_backend::wallet::Recipient"],[4551,"zcash_client_backend::zip321"],[4643,"zcash_client_backend::zip321::testing"],[4650,"zcash_client_backend::decrypt"],[4651,"zcash_protocol::consensus"],[4652,"core::option"],[4653,"zcash_primitives::transaction"],[4654,"zcash_keys::keys"],[4655,"std::collections::hash::map"],[4656,"core::marker"],[4657,"core::fmt"],[4658,"tonic::request"],[4659,"zcash_protocol::memo"],[4660,"tonic::service::layered"],[4661,"sapling_crypto::note"],[4662,"zcash_protocol::value"],[4663,"orchard::note"],[4664,"core::result"],[4665,"core::any"],[4666,"zcash_keys::address"],[4667,"zcash_protocol"],[4668,"zcash_address"],[4669,"alloc::string"],[4670,"sapling_crypto::address"],[4671,"zcash_transparent::address"],[4672,"orchard::address"],[4673,"zcash_address::kind::unified"],[4674,"alloc::vec"],[4675,"zcash_address::kind::unified::address"],[4676,"zcash_address::convert"],[4677,"proptest::strategy::traits"],[4678,"core::cmp"],[4679,"core::hash"],[4680,"zip32"],[4681,"zcash_primitives::block"],[4682,"core::clone"],[4683,"incrementalmerkletree"],[4684,"secrecy::vec"],[4685,"time::offset_date_time"],[4686,"core::num::error"],[4687,"std::io::error"],[4688,"zcash_transparent::keys"],[4689,"zip32::fingerprint"],[4690,"core::ops::range"],[4691,"orchard::note::nullifier"],[4692,"sapling_crypto::note::nullifier"],[4693,"zcash_protocol::txid"],[4694,"core::num::nonzero"],[4695,"zcash_transparent::bundle"],[4696,"orchard::tree"],[4697,"incrementalmerkletree::frontier"],[4698,"shardtree::error"],[4699,"sapling_crypto::tree"],[4700,"shardtree::store"],[4701,"core::convert"],[4702,"core::ops::function"],[4703,"shardtree"],[4704,"alloc::boxed"],[4705,"nonempty"],[4706,"core::future::future"],[4707,"core::pin"],[4708,"core::error"],[4709,"sapling_crypto::builder"],[4710,"zcash_primitives::transaction::builder"],[4711,"zcash_transparent::builder"],[4712,"rand_core"],[4713,"zcash_protocol::local_consensus"],[4714,"zcash_primitives::transaction::fees"],[4715,"subtle"],[4716,"core::default"],[4717,"orchard::keys"],[4718,"zip321"],[4719,"rand_chacha"],[4720,"sapling_crypto::keys"],[4721,"sapling_crypto::zip32"],[4722,"sapling_crypto::prover"],[4723,"zcash_keys::encoding"],[4724,"bs58::decode"],[4725,"bech32"],[4726,"bech32::primitives::decode"],[4727,"zcash_primitives::transaction::fees::transparent"],[4728,"core::iter::traits::collect"],[4729,"orchard::builder"],[4730,"bip32::error"],[4731,"zcash_address::kind::unified::fvk"],[4732,"std::io"],[4733,"alloc::collections::btree::map"],[4734,"sapling_crypto::note::commitment"],[4735,"orchard::note::commitment"],[4736,"zcash_note_encryption"],[4737,"sapling_crypto::bundle"],[4738,"orchard::action"],[4739,"core::array"],[4740,"prost::error"],[4741,"bytes::buf::buf_mut"],[4742,"prost::encoding::wire_type"],[4743,"prost::encoding"],[4744,"bytes::buf::buf_impl"],[4745,"tonic::codec::compression"],[4746,"tonic::body"],[4747,"tonic::client::service"],[4748,"tonic::response"],[4749,"tonic::status"],[4750,"tonic::codec::decode"],[4751,"tonic::service::interceptor"],[4752,"http::request"],[4753,"http::response"],[4754,"tower_service"],[4755,"http::uri"],[4756,"shardtree::prunable"],[4757,"zcash_primitives::merkle_tree"],[4758,"zcash_keys::address::testing"],[4759,"zcash_keys::keys::sapling"],[4760,"zcash_keys::keys::testing"],[4761,"zip321::testing"]],"i":"`hCCn1`0CD```02b`0303333``030303`3`3030030303`0030000``````3003030303```Cl`0Cf0100`1Cj1201101010120120120120100101012011110000201201201201000`01121020011111112012010201```Hb``HhMf2````O`IhIjGj````0Ld`I`Il79AAb444132`66InJh010`:```2`````0`2```````Hn```42:8Kd1`````GdFh`FfFnG`444Gh`````>HbHjHd0221O`4KnJnA@b5Ah:LnLd?>;HnI`IbIfFfIhIjIlInJ`JbJdGjJfJhHdJjO`GhKnJnA@bHjAhFnLnLdGdFhG`HnI`IbIfFfIhIjIlInJ`JbJdGjJfJhHdJj`Hb=GdFh10G`HnI`IbIfFfIhIjIlInJ`JbJdGjJfJhHdJjGdFhG`HnI`IbIfFfIhIjIlInJ`JbJdGjJfJhHdJjGdFhG`HnI`IbIfFfIhIjIlInJ`JbJdGjJfJhHdJj;:954JnKdFnIbO`GhKn6A@bHjAh7LnLdGdFhG`HnI`=IfFfIhIjIlInJ`JbJdGjJfJhHdJjO`GhKnJnA@bHjAhFnLnLdGdFhG`HnI`IbIfFfIhIjIlInJ`JbJdGjJfJhHdJjGhO`1KnJnA@bHjAhFnLnLdGdFhG`HnI`IbIfFfIhIjIlInJ`JbJdGjJfJhHdJjKnGdFhG`HnI`IbIfFfIhIjIlJdGjJh`FnJnHbGdFhG`HnI`IbIfFfIhIjIlInJ`JbJdGjJfJhHdJjO`GhKnJnA@bHjAhFnLnLd00GdFhG`HnI`IbIfFfIhIjIlInJ`JbJdGjJfJhHdJj0GhLn53222>Hb000MfKd2Mj3333310330022333303303233G`HnI`IhIjIlHj=Hh99O`>KnJnA@b5AhFnLnLdGdFhG`HnI`IbIfFfIhIjIlInJ`JbJdGjJfJhHdJjO`GhKnJnA@bHjAhFnLnLdGdFhG`HnI`IbIfFfIhIjIlInJ`JbJdGjJfJhHdJjHjO`GhKnJnA@b5AhFnLnLdGdFhG`HnI`IbIfFfIhIjIlInJ`JbJdGjJfJhHdJjKn=I`0HbLnAhHhO`Gh7JnA@bHj6Fn8LdGdFhG`Hn?IbIfFfIhIjIlInJ`JbJdGjJfJhHdJjKnAhFnG`IbIfFf>=<<00>=Jn37Hj?A@bFh;9<:Ln9IhIjIlJd9HhKdAAb107Jj>2Kn;BMhBMjMbBMlBMn?BKjBKlBLb?>BLd>=<;BLfBKf<;BKhBKn<;:98BL`8764444BLhBLj7BLlBLnBM`BMb:9BMdBMf:9BMhBMjMbBMlBMn=BKjBKl>=BLd=<;:BLfBKf;:BKhBKn;:987BL`76BLbBLhBLj8BLlBLnBM`BMb;:BMdBMf;:BMhBMjMbBMlBMn>BKjBKl?>=BLd=<;:BLfBKf;:BKhBKn;:987BL`76BLb0`995BLlBLhBLj92BLnBM`BMb;:BMdBMf;:BMhBMjMbBMlBMn>BKjBKl?=BKjBKl?BLf?>BLd>=<;1BKf;:BKhBKn;:987BL`76BLbBLhBLj7BLlBLnBM`BMb<:BMdBMf;:BMhBMjMbBMlBMn>BKjBKl=7>=BLd=<;:BLfBKf;:BKhBKn;:987BL`76BLbBLn06?BLhBLj9BLl3BM`BMb;:BMdBMf;:BMhBMjMbBMlBMn>BKjBKl?=BKjBKl?8><;:BLfBKf;:BKhBKn;:987BL`76BLbBLhBLj8BLlBLnBM`BMb;:BMdBMf;:BMhBMjMbBMlBMn>BKjBKl??3BL`?>BLd>=<;BLfBKf<;BKhBKn<;:98576BLb;;;0394;;8:::BLj7;5<>BLhBLjBLdBLlBLnBM`BMbBLfBKfBMdBMfBKhBKnBMhBMjMbBMlBMnBL`BKjBKlBLb>>`BNf00000000000000000000000000000000000000000000AEb0`0````000C@hC@j020C@lC@n421044442104210421041044210412104210421044322210413221032210``442104210421042104CAdCAfCAhCAjCAl224CAn503215````CBd`0000000000000000000`00000AIf0Ll00``Nl```02`````````CBfCBhNfABb032Nh6Oh6Nn943652817094281709428170942817094219365281709436528170943652817094521704281709436528170946510653652817094036528170943652817094501365281709432465505000003311202271533402817094365281709436528170943201365281709417003652817094CCd0CCfCCh01CCj210BGb000`00`0`CCl10ALf2102102102102102102100210221022100021021021011``1210101012`2102002102102102101```````","f":"```````````{{{d{{b{ce}}}}}{{d{e}}}{}{}}`{d{{d{c}}}{}}0{{{d{f}}}{{d{fc}}}{}}0{{{d{h}}}h}{{d{d{fc}}}j{}}{{dl}j}`{{{d{c}}{A`{n}}{A`{n}}{d{Ab}}{d{{Af{eAd}}}}}{{Ah{e}}}AjAl}{An{{d{c}}}{}}0{An{{d{fc}}}{}}0{Anj}0`{{{d{h}}{d{h}}}B`}`{{{d{h}}{d{fBb}}}Bd}{cc{}}0{{{d{{b{ce}}}}}An{}{}}{{}An}0{{}c{}}0{{}{{Bf{c}}}{}}0`{{{d{{b{ce}}}}}{{d{Bh}}}{}{}}{{dc}{{Bj{c}}}{}}0{{AnceBhh}{{b{ce}}}{}{}}{{{d{{b{ce}}}}}{{d{c}}}{}{}}{{{d{{b{Blc}}}}}Bn{}}{{{d{{b{C`c}}}}}Bn{}}``````{dc{}}{{{d{{b{ce}}}}}h{}{}}{c{{Cb{e}}}{}{}}0{{}{{Cb{c}}}{}}0{dCd}0{{}c{}}0````````````{d{{d{c}}}{}}00{{{d{f}}}{{d{fc}}}{}}00{{{d{Cf}}Ch}B`}{{{d{Cj}}}Cj}{{{d{Cf}}}Cf}{{d{d{fc}}}j{}}0{{dl}j}0{{{d{Cl}}{d{Cn}}}B`}{{{d{c}}{d{D`}}}{{Cb{CjDb}}}Aj}{{{d{c}}{d{D`}}}{{A`{Cf}}}Aj}{An{{d{c}}}{}}00{An{{d{fc}}}{}}00{Anj}00{{{d{Cj}}{d{c}}}DbAj}0{{{d{Cf}}{d{c}}}DbAj}{{{d{Cj}}{d{Cj}}}B`}{{{d{Cf}}{d{Cf}}}B`}{{{d{Cj}}{d{fBb}}}{{Cb{jDd}}}}{{{d{Cf}}{d{fBb}}}{{Cb{jDd}}}}{cc{}}0{DfCf}1{CjCf}{DhCf}{{{A`{Dj}}{A`{Df}}{A`{Dh}}}{{A`{Cj}}}}{{{d{Cj}}}B`}00{{}An}00{{}c{}}00{{}{{Bf{c}}}{}}00{{dc}{{Bj{c}}}{}}00{{{d{Cj}}}{{A`{{d{Dj}}}}}}{{{d{Cj}}}{{Dn{Dl}}}}{{{d{Cj}}}{{A`{{d{Df}}}}}}`{dc{}}0{{{d{Cf}}}{{A`{Dh}}}}{{{d{Cl}}E`}Cn}{{{d{Cf}}{d{c}}}CnAj}{{{d{Cj}}}{{A`{{d{Dh}}}}}}{c{{Cb{e}}}{}{}}{Eb{{Cb{Cj}}}}11{{{Ed{l}}}{{Cb{CfEf}}}}000{Eb{{Cb{CfEf}}}}{{{d{c}}Cn}{{Cb{Cf{Ef{{d{D`}}}}}}}Aj}{{}{{Cb{c}}}{}}00{dCd}00{{{d{Cj}}}{{d{{El{{Ej{Eh{Dn{l}}}}}}}}}}{{}c{}}00{En{{`{{Fb{}{{F`{Cf}}}}}}}}{{FdEn}{{`{{Fb{}{{F`{Cj}}}}}}}}`````````````````````````````````````````````{{}l}```````0``````````````````````````{{{d{{Ff{c}}}}}{{d{{Af{cFh}}}}}{FjFl}}{{{d{{Fn{c}}}}}{{d{c}}}{}}{{{d{G`}}}Gb}{{{d{fGd}}Bn}{{Cb{jGf}}}}00{{{d{Gh}}}{{d{Cf}}}}`````{{GjGj}Gj}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}}{{Cb{{A`{Hd}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{{Hj{c}}}}}Hl{}}{{{d{Hd}}}Hl}{{{d{Hd}}}n}3{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}n}{{Cb{{A`{Hd}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{{Hj{c}}}}}Eh{}}{d{{d{c}}}{}}00000000000000000000000000000{{{d{f}}}{{d{fc}}}{}}00000000000000000000000000000`{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}}{{Cb{{A`{n}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{{Ff{c}}}}}n{FjFl}}{{{d{Gd}}}Bn}{{{d{Fh}}}Bn}{{{d{Gd}}}Gd}{{{d{Fh}}}Fh}{{{d{G`}}}G`}{{{d{Hn}}}Hn}{{{d{I`}}}I`}{{{d{{Ib{c}}}}}{{Ib{c}}}Id}{{{d{If}}}If}{{{d{{Ff{c}}}}}{{Ff{c}}}{IdFjFl}}{{{d{Ih}}}Ih}{{{d{Ij}}}Ij}{{{d{Il}}}Il}{{{d{In}}}In}{{{d{J`}}}J`}{{{d{Jb}}}Jb}{{{d{Jd}}}Jd}{{{d{Gj}}}Gj}{{{d{Jf}}}Jf}{{{d{{Jh{c}}}}}{{Jh{c}}}{IdAl}}{{{d{Hd}}}Hd}{{{d{Jj}}}Jj}{{d{d{fc}}}j{}}0000000000000000000{{dl}j}0000000000000000000{{{d{Ih}}{d{Ih}}}Jl}{{{d{Ij}}{d{Ij}}}Jl}{{{d{Il}}{d{Il}}}Jl}{{{d{Jd}}{d{Jd}}}Jl}{{GjGj}Gj}{{{d{{Jn{ce}}}}}{{d{{El{{Ej{c{K`{n}}}}}}}}}{}{}}{{{d{f{Kd{}{{Kb{c}}}}}}{d{D`}}{d{{Kf{l}}}}{d{Jj}}{A`{{d{D`}}}}}{{Cb{{Ej{eKh}}g}}}{}{}{}}{{{d{{Fn{c}}}}}Kj{}}{{{d{{Ib{c}}}}}{{d{c}}}{}}{An{{d{c}}}{}}00000000000000000000000000000{An{{d{fc}}}{}}00000000000000000000000000000{{{d{Gh}}}Kl}{Anj}00000000000000000000000000000{{}{{Kn{c}}}{}}{{{d{Gd}}{d{Gd}}}B`}{{{d{Fh}}{d{Fh}}}B`}{{{d{G`}}{d{G`}}}B`}{{{d{Hn}}{d{Hn}}}B`}{{{d{I`}}{d{I`}}}B`}{{{d{{Ib{c}}}}{d{{Ib{c}}}}}B`L`}{{{d{If}}{d{If}}}B`}{{{d{{Ff{c}}}}{d{{Ff{c}}}}}B`{L`FjFl}}{{{d{Ih}}{d{Ih}}}B`}{{{d{Ij}}{d{Ij}}}B`}{{{d{Il}}{d{Il}}}B`}{{{d{Jd}}{d{Jd}}}B`}{{{d{Gj}}{d{Gj}}}B`}{{{d{{Jh{c}}}}{d{{Jh{c}}}}}B`{L`Al}}`{{{d{{Fn{c}}}}}Bn{}}{{{d{{Jn{ce}}}}}Eh{}{}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}{d{Dh}}}{{Cb{{A`{e}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{Gd}}{d{fBb}}}Bd}{{{d{Fh}}{d{fBb}}}Bd}{{{d{G`}}{d{fBb}}}Bd}{{{d{Hn}}{d{fBb}}}Bd}{{{d{I`}}{d{fBb}}}Bd}{{{d{{Ib{c}}}}{d{fBb}}}BdHf}{{{d{If}}{d{fBb}}}Bd}{{{d{{Ff{c}}}}{d{fBb}}}Bd{HfFjFl}}{{{d{Ih}}{d{fBb}}}Bd}{{{d{Ij}}{d{fBb}}}Bd}{{{d{Il}}{d{fBb}}}Bd}{{{d{In}}{d{fBb}}}Bd}{{{d{J`}}{d{fBb}}}Bd}{{{d{Jb}}{d{fBb}}}Bd}{{{d{Jd}}{d{fBb}}}Bd}{{{d{Gj}}{d{fBb}}}Bd}{{{d{Jf}}{d{fBb}}}Bd}{{{d{{Jh{c}}}}{d{fBb}}}Bd{HfAl}}{{{d{Hd}}{d{fBb}}}Bd}{{{d{Jj}}{d{fBb}}}Bd}{cc{}}000000000{LbLd}{LfLd}22222222222222222222{{{d{c}}LhHl}JjAj}{{CfKl{A`{Lj}}}{{A`{Gh}}}}{{An{Ll{c}}Bn{A`{Bh}}}{{Ln{c}}}{}}{{Bn{A`{Cf}}{A`{{Ej{CfEh}}}}}Jf}{{nHl{A`{Eh}}{A`{Eh}}}Hd}{{M`{A`{n}}}Jj}{{{d{c}}Hl}JjAj}{{Mb{A`{n}}}{{Cb{JjLd}}}}{{{d{{Ff{c}}}}}n{FjFl}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}e}{{Cb{{A`{g}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}e}{{Cb{nc}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}{d{Ad}}}{{Cb{{A`{g}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}}{{Cb{{Dn{e}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{{Mf{}{{Gl{c}}{Gn{e}}{Md{g}}}}}}e{d{Gj}}{d{{El{g}}}}}{{Cb{Jbc}}}Hf{AlHfFjFl}{AlHfFjMh}}{{{d{f{Kd{}{{Kb{c}}}}}}eKlEn}{{Cb{{A`{Cj}}g}}}{}{}{}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}n}{{Cb{{A`{Hl}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{Mj}}{d{Ml}}}{{Cb{{Dn{{Ej{n{A`{Mn}}}}}}c}}}{}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}{d{N`}}Gb}{{Cb{{A`{g}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}e{A`{{Nd{Nb}}}}}{{Cb{{Dn{{Ej{DhNf}}}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}eEn}{{Cb{{A`{Cj}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}}{{Cb{{A`{{Ej{nHl}}}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}Nh}{{Cb{{A`{Nj}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{f{Kd{}{{Kb{c}}}}}}eEn}{{Cb{{A`{{Ej{CjKl}}}}g}}}{}{}{}}{{{d{Mj}}Ml}{{Cb{{Dn{{Nn{cNl}}}}e}}}{}{}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}O`}{{Cb{{Dn{{Ej{eOb}}}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}O`}{{Cb{{Dn{{Ej{eOd}}}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{Mj}}{d{Of}}Ml}{{Cb{{Dn{Nh}}c}}}{}}{{{d{Mj}}{d{Of}}}{{Cb{{Dn{Jf}}c}}}{}}{{{d{{Mf{}{{Gl{c}}{Gn{e}}{Md{g}}}}}}{d{Of}}MlEh}{{Cb{{A`{{Nn{gNl}}}}c}}}Hf{AlHfFjFl}{AlHfFjMh}}{{{d{{Mf{}{{Gl{c}}{Gn{e}}{Md{g}}}}}}{d{Dh}}nEh}{{Cb{{Dn{Oh}}c}}}Hf{AlHfFjFl}{AlHfFjMh}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}Oj}{{Cb{{A`{{Ej{nn}}}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}Of}{{Cb{{A`{Ab}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}e{d{Dh}}}{{Cb{{A`{Nf}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}en}{{Cb{{Af{DhBn}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{Mj}}{d{Ol}}B`}{{Cb{{A`{Oh}}c}}}{}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}eB`}{{Cb{{Af{Dh{A`{Nf}}}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}Of}{{Cb{{A`{n}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{Mj}}}{{Cb{{Dn{{On{c}}}}e}}}{}{}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}}{{Cb{{Af{eAd}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{{Mf{}{{Gl{c}}{Gn{e}}{Md{g}}}}}}{d{Ol}}}{{Cb{{A`{Oh}}c}}}Hf{AlHfFjFl}{AlHfFjMh}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}}{{Cb{{A`{n}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}Eh}{{Cb{{A`{{Ff{e}}}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{G`}}{d{fc}}}jA@`}{{{d{Hn}}{d{fc}}}jA@`}{{{d{I`}}{d{fc}}}jA@`}{{{d{Ih}}{d{fc}}}jA@`}{{{d{Ij}}{d{fc}}}jA@`}{{{d{Il}}{d{fc}}}jA@`}{{{d{{Hj{c}}}}}n{}}{{{d{Jj}}}n}{{{d{{Hh{}{{Gn{c}}}}}}}cAl}{{{d{f{Kd{}{{Kb{c}}}}}}{d{D`}}{d{{Kf{l}}}}Gb{d{Jj}}{A`{{d{D`}}}}}{{Cb{{Ej{eKh}}g}}}{}{}{}}{{{d{f{Kd{}{{Kb{c}}}}}}{d{D`}}{d{Ad}}{d{Jj}}Hn{A`{{d{D`}}}}}{{Cb{eg}}}{}{}{}}{{}An}00000000000000000000000000000{{}c{}}00000000000000000000000000000{{{Hj{c}}}A@b{}}{{}{{Bf{c}}}{}}00000000000000000000000000000{{{Kn{c}}{d{e}}}{{Dn{{Nn{cNl}}}}}{}{{A@d{c}}}}{{{d{{Ff{c}}}}}B`{FjFl}}{{{d{I`}}}{{A`{{d{G`}}}}}}{{{d{I`}}}{{A`{{d{D`}}}}}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}e}{{Cb{{Dn{Gh}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{{Ln{c}}}}}{{A`{{d{Bh}}}}}{}}{{{d{{Ah{c}}}}}{{A`{n}}}{}}{{{d{{Hh{}{{Gn{c}}}}}}}{{A`{{d{D`}}}}}Al}{{dc}{{Bj{c}}}{}}00000000000000000000000000000{{{Dn{{Nn{cBl}}}}{Dn{{Nn{cC`}}}}}{{Kn{c}}}{}}{{{A`{n}}{d{Ab}}{Dn{{b{Blc}}}}{Dn{{b{C`c}}}}}{{Ah{c}}}{}}{{{d{Ab}}Kjnc{d{{El{{Ln{c}}}}}}Bn{d{{El{Ol}}}}}{{Fn{c}}}{}}{{N`Gb}G`}{{cc}{{Ib{c}}}{}}{{{Ib{A@f}}{A`{{Ib{A@f}}}}}If}{{{Af{cFh}}nnIfA@fA@f}{{Ff{c}}}{FjFl}}{{AnBn}J`}{{{A`{J`}}{A`{J`}}}Jb}{l{{A`{Jd}}}}{lJd}{{{d{{Ff{c}}}}}A@f{FjFl}}0{{{d{J`}}}An}{{{d{Jb}}Ml}{{A`{An}}}}{{{d{{Jn{ce}}}}}{{d{{El{{Ej{OfA@h{Dn{e}}}}}}}}}{}{}}{{{d{{Ib{c}}}}}{{d{c}}}{}}{{{d{{Kn{c}}}}}{{d{{El{{Nn{cC`}}}}}}}{}}{{{d{{Hj{c}}}}}{{d{{Jn{A@jOb}}}}}{}}{{{d{Jb}}}{{A`{{d{J`}}}}}}{A@bDn}{{{d{Fh}}}{{d{Gd}}}}{{{d{Jj}}}{{d{{A@l{A@j}}}}}}{{{d{{Ah{c}}}}}{{d{{El{{b{C`c}}}}}}}{}}{{{d{Hd}}}{{A`{Eh}}}}{{{d{{Kn{c}}}}}{{Cb{BnGf}}}{}}{{{d{{Ln{c}}}}}An{}}{{{d{{Fn{c}}}}}{{d{{El{{Ln{c}}}}}}}{}}{{{d{Ih}}{d{Ih}}}{{A`{Jl}}}}{{{d{Ij}}{d{Ij}}}{{A`{Jl}}}}{{{d{Il}}{d{Il}}}{{A`{Jl}}}}{{{d{Jd}}{d{Jd}}}{{A`{Jl}}}}{{{d{{Ff{c}}}}}If{FjFl}}{{{d{{Hh{}{{Gn{c}}}}}}}HnAl}{{{d{f{Kd{}{{Kb{c}}}}}}{d{M`}}{Dn{{Hj{e}}}}}{{Cb{jg}}}{}{}{}}{{{d{f{AAb{}{{Gl{c}}{A@n{e}}{AA`{g}}}}}}A@f{d{{El{{AAd{A@j}}}}}}}{{Cb{j{AAf{c}}}}}Hf{{AAn{}{{AAh{AAj}}{AAl{n}}{Gl{c}}}}}{{AAn{}{{AAh{A@j}}{AAl{n}}{Gl{c}}}}}}{{{d{f{Kd{}{{Kb{c}}}}}}{d{Oh}}}{{Cb{ce}}}{}{}}{{{d{f{AAb{}{{Gl{c}}{A@n{e}}{AA`{g}}}}}}A@f{d{{El{{AAd{AAj}}}}}}}{{Cb{j{AAf{c}}}}}Hf{{AAn{}{{AAh{AAj}}{AAl{n}}{Gl{c}}}}}{{AAn{}{{AAh{A@j}}{AAl{n}}{Gl{c}}}}}}{{{d{{Ln{c}}}}}{{d{{Ll{c}}}}}{}}{{{d{Jj}}}{{A`{n}}}}{{{d{If}}}{{A`{{Ib{A@f}}}}}}{{{d{f{Kd{}{{Kb{c}}}}}}eAn}{{Cb{{Dn{{Ej{DhNf}}}}g}}}{}{}{}}{{{d{{Kn{c}}}}}{{d{{El{{Nn{cBl}}}}}}}{}}{{{d{{Hj{c}}}}}{{d{{Jn{AAjOd}}}}}{}}{{{d{Jb}}}{{A`{{d{J`}}}}}}{A@bDn}{{{d{Fh}}}{{d{Gd}}}}{{{d{Jj}}}{{d{{A@l{AAj}}}}}}{{{d{{Ah{c}}}}}{{d{{El{{b{Blc}}}}}}}{}}{{{d{Hd}}}{{A`{Eh}}}}{{{d{{Kn{c}}}}}{{Cb{BnGf}}}{}}{{{d{If}}}{{Ib{A@f}}}}`{{{d{G`}}}{{d{N`}}}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}{d{{Kf{l}}}}}{{Cb{{Jh{e}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{{Mf{}{{Gl{c}}{Gn{e}}{Md{g}}}}}}eBn{d{{El{Ml}}}}n{d{{El{g}}}}}{{Cb{{Kn{g}}c}}}Hf{AlHfFjFl}{AlHfFjMh}}{{{d{f{Kd{}{{Kb{c}}}}}}OfIn}{{Cb{je}}}{}{}}{{{d{A@d}}{d{{Nn{cC`}}}}}B`{}}{{{d{A@d}}{d{{Nn{cBl}}}}}B`{}}{{{d{{Hh{}{{Gn{c}}}}}}}{{d{I`}}}Al}{{{d{Gd}}}Bn}{{{d{Fh}}}Bn}{{{d{f{Kd{}{{Kb{c}}}}}}{Ah{e}}}{{Cb{jg}}}{}{}{}}{{{d{f{Kd{}{{Kb{c}}}}}}{d{{El{{Fn{e}}}}}}}{{Cb{jg}}}{}{}{}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}}{{Cb{{Dn{AB`}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{Kn{c}}}{{Dn{{Nn{cC`}}}}}{}}{{{Kn{c}}}{{Dn{{Nn{cBl}}}}}{}}{{{d{{Fn{c}}}}}n{}}`{{{d{{Hj{c}}}}}Hd{}}{dc{}}000000000000000000098{{{d{Jb}}}{{A`{An}}}}{{{d{{Kn{c}}}}}{{Cb{BnGf}}}{}}{{{d{Jb}}}{{A`{Bn}}}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}}{{Cb{{Dn{Il}}c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{{Hj{c}}}}}{{d{{El{{ABb{c}}}}}}}{}}{{{d{Gh}}}{{A`{Lj}}}}{{{d{f{Kd{}{{Kb{c}}}}}}n}{{Cb{ne}}}{}{}}{c{{Cb{e}}}{}{}}00000000000000000000000000000{{}{{Cb{c}}}{}}00000000000000000000000000000{{{d{{Ah{c}}}}}{{d{Ab}}}{}}{{{d{{Fn{c}}}}}{{d{Ab}}}{}}{dCd}00000000000000000000000000000{{{d{{Hh{}{{Gn{c}}}}}}}{{A`{{d{Ad}}}}}Al}{{{d{{Hh{}{{Gn{c}}}}}}}ABdAl}{{{d{Fh}}}Bn}{{{d{Fh}}}{{d{Gd}}}}{{{d{f{Kd{}{{Kb{c}}}}}}n}{{Cb{je}}}{}{}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}e}{{Cb{nc}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{{Fn{c}}}}}{{d{{El{Ol}}}}}{}}{{{d{{Hb{}{{Gl{c}}{Gn{e}}{H`{g}}}}}}e{d{{Kf{l}}}}}{{Cb{B`c}}}Hf{AlHfFjFl}{{Hh{}{{Gn{e}}}}}}{{{d{{Ln{c}}}}}Bn{}}{{{d{J`}}}Bn}{{{d{Jd}}}l}{{{d{Gd}}}Bn}9{{}c{}}00000000000000000000000000000`{{{d{fFh}}g}{{Cb{ce}}}{}{{ABf{Gf}}}{{ABj{{d{fGd}}}{{ABh{{Cb{ce}}}}}}}}{{{d{f{AAb{}{{Gl{c}}{A@n{e}}{AA`{g}}}}}}m}{{Cb{ik}}}Hf{{AAn{}{{AAh{AAj}}{AAl{n}}{Gl{c}}}}}{{AAn{}{{AAh{A@j}}{AAl{n}}{Gl{c}}}}}{}{{ABf{{AAf{c}}}}}{{ABn{{d{f{ABl{g}}}}}{{ABh{{Cb{ik}}}}}}}}1{{{d{f{AAb{}{{Gl{c}}{A@n{e}}{AA`{g}}}}}}m}{{Cb{ik}}}Hf{{AAn{}{{AAh{AAj}}{AAl{n}}{Gl{c}}}}}{{AAn{}{{AAh{A@j}}{AAl{n}}{Gl{c}}}}}{}{{ABf{{AAf{c}}}}}{{ABn{{d{f{ABl{e}}}}}{{ABh{{Cb{ik}}}}}}}}2{AC`A`}{ACbG`}{ACbA`}{ACdA`}{ACdHn}{ACfACh}0{ACjACl}{ACnDh}{ACnA`}{ACnn}{ACnIj}2{ACnIh}``````{{{d{M`}}}Hl}{{{d{M`}}}n}{d{{d{c}}}{}}00{{{d{f}}}{{d{fc}}}{}}00{{{d{AD`}}}AD`}{{{d{M`}}}M`}{{d{d{fc}}}j{}}0{{dl}j}0{{{d{ADb}}AB`}{{ADf{{ACh{ADd}}}}}}{An{{d{c}}}{}}00{An{{d{fc}}}{}}00{Anj}00{{nHl}M`}`{{{d{M`}}}{{d{{A@l{A@j}}}}}}{{{d{M`}}}{{d{{A@l{AAj}}}}}}{{{d{{AAd{c}}}}{d{fBb}}}BdHf}{{{d{AD`}}{d{fBb}}}Bd}{{{d{M`}}{d{fBb}}}Bd}{cc{}}00{{nc}{{AAd{c}}}{}}{{{d{ADb}}{A`{{d{AB`}}}}}{{Cb{{A`{n}}c}}}{}}{{}An}00{{{d{ADb}}{Dn{ADh}}}{{ADf{{ACh{ADd}}}}}}{{}c{}}00{{}{{Bf{c}}}{}}00{{dc}{{Bj{c}}}{}}00{{nHl{A@l{AAj}}{A@l{A@j}}}M`}{{{d{ADb}}{d{AB`}}}{{ADf{{ACh{ADd}}}}}}{{{d{AD`}}}An}0{{{d{{AAd{c}}}}}{{d{c}}}{}}{{{d{c}}{d{e}}{d{fg}}n{d{M`}}An}{{Cb{AD`ADj}}}{AjADl}ADnKd}{{{d{AD`}}}{{Nd{n}}}}33{{{d{{AAd{c}}}}}n{}}`{dc{}}0{{{d{ADb}}n}{{ADf{{ACh{ADd}}}}}}{c{{Cb{e}}}{}{}}00{{}{{Cb{c}}}{}}00{dCd}00{{}c{}}00{{{d{{ADn{}{{Gl{c}}}}}}{A`{n}}{A`{An}}g}{{Cb{j{ADj{ec}}}}}{}{}{{ABn{ADh}{{ABh{{Cb{j{ADj{ec}}}}}}}}}}````{d{{d{c}}}{}}{{{d{f}}}{{d{fc}}}{}}{An{{d{c}}}{}}{An{{d{fc}}}{}}{Anj}{{{d{{ADj{ce}}}}{d{fBb}}}BdHfHf}{{{d{{ADj{ce}}}}{d{fBb}}}BdAE`AE`}{cc{}}{AEb{{ADj{ce}}}{}{}}{{}An}{{}c{}}{{}{{Bf{c}}}{}}{{dc}{{Bj{c}}}{}}{{{d{{ADj{ce}}}}}{{A`{{d{AEd}}}}}{HfAE`AEd}{HfAE`AEd}}{dDb}{c{{Cb{e}}}{}{}}{{}{{Cb{c}}}{}}{dCd}{{}c{}}`{d{{d{c}}}{}}{{{d{f}}}{{d{fc}}}{}}{An{{d{c}}}{}}{An{{d{fc}}}{}}{Anj}{cc{}}?>=<9876{{{d{AEf}}{A`{n}}{A`{An}}e}{{Cb{j{ADj{cAEh}}}}}{}{{ABn{ADh}{{ABh{{Cb{j{ADj{cAEh}}}}}}}}}}``````````````````````65432{{{d{{AEj{cegikm}}}}{d{fBb}}}BdAE`AE`AE`AE`AE`AE`}{{{d{{AEj{cegikm}}}}{d{fBb}}}BdHfHfHfHfHfHf}{{{AEl{cegi}}}{{AEj{ckemgi}}}{}{}{}{}{}{}}{AEn{{AEj{cegikm}}}{}{}{}{}{}{}}{{{AF`{c}}}{{AEj{egickm}}}{}{}{}{}{}{}}6{Gf{{AEj{cegikm}}}{}{}{}{}{}{}}{{{Ef{{d{D`}}}}}{{AEj{cegikm}}}{}{}{}{}{}{}}{{{AAf{c}}}{{AEj{ecgikm}}}{}{}{}{}{}{}}{AFb{{AEj{cegikm}}}{}{}{}{}{}{}}{AFd{{AEj{cegikm}}}{}{}{}{}{}{}}{{}An}{{}c{}}{{}{{Bf{c}}}{}}{{dc}{{Bj{c}}}{}}{{{d{{AEj{cegikm}}}}}{{A`{{d{AEd}}}}}{HfAE`AEd}{HfAE`AEd}{HfAE`AEd}{HfAE`}{HfAE`AEd}{HfAE`}}{dDb}{c{{Cb{e}}}{}{}}{{}{{Cb{c}}}{}}{dCd}{{}c{}}{AFfBn}0`````````{{{d{AB`}}}{{d{{Nd{n}}}}}}{d{{d{c}}}{}}0{{{d{f}}}{{d{fc}}}{}}0{{{d{AFh}}}AFh}{{{d{AB`}}}AB`}{{d{d{fc}}}j{}}0{{dl}j}0{{{d{AFh}}{d{AFh}}}Jl}{An{{d{c}}}{}}0{An{{d{fc}}}{}}0{Anj}0{{{d{AFh}}{d{AFh}}}B`}{{{d{AB`}}{d{AB`}}}B`}{{{d{AFh}}{d{fBb}}}Bd}{{{d{AB`}}{d{fBb}}}Bd}0{cc{}}0{{{Nd{n}}AFh}AB`}{{}An}0{{}c{}}0{{}{{Bf{c}}}{}}0{{{d{AB`}}}B`}{{{d{AB`}}}An}{{dc}{{Bj{c}}}{}}0{{{d{AFh}}{d{AFh}}}{{A`{Jl}}}}{{{d{AB`}}}AFh}`{{{d{AB`}}n}{{A`{{Ej{AB`AB`}}}}}}{dc{}}0{dDb}{{{d{AB`}}n}{{A`{AB`}}}}0{c{{Cb{e}}}{}{}}0{{}{{Cb{c}}}{}}0{dCd}0{{}c{}}0```{d{{d{c}}}{}}{{{d{f}}}{{d{fc}}}{}}{{{d{AFj}}}AFj}{{d{d{fc}}}j{}}{{dl}j}{An{{d{c}}}{}}{An{{d{fc}}}{}}{Anj}{{{d{AFj}}{d{fBb}}}Bd}{cc{}}{{}An}{{AFjAB`B`}AFj}{{}c{}}{{}{{Bf{c}}}{}}{AFj{{Dn{AB`}}}}{{dc}{{Bj{c}}}{}}`{dc{}}{c{{Cb{e}}}{}{}}{{}{{Cb{c}}}{}}{dCd}{{}c{}}{AFlACh}0{AFlNd}{{{Nd{Eh}}AFh}AB`}````````````````````````````{{{d{{AFn{c}}}}}{{d{c}}}{}}{{{d{{On{c}}}}}{{d{c}}}{}}{{{d{{On{c}}}}}AG`{}}{{{d{{AGd{}{{AGb{c}}}}}}{d{fAGf}}{d{e}}ncAGhBnEh{d{fg}}}cAlAj{AGjAGl}}{{{d{{AGd{}{{AGb{c}}}}}}{d{fAGf}}{d{e}}nAGhBnEh{d{fg}}}cAlAj{AGjAGl}}{{{d{{AGd{}{{AGb{c}}}}}}{d{fAGf}}c{d{fe}}}jAl{AGjAGl}}{{M`EhEh}AGn}{{{d{{AFn{c}}}}}{{d{Jj}}}{}}{{{d{AH`}}}{{Cb{{A`{Hd}}c}}}{}}0{{{d{AH`}}n}{{Cb{{A`{Hd}}c}}}{}}{{{d{{AHh{}{{AHb{c}}{AHd{e}}{AHf{g}}}}}}}{{d{e}}}Hf{{ADn{}{{Gl{c}}}}}{}}{d{{d{c}}}{}}000000000{{{d{f}}}{{d{fc}}}{}}000000000{{{AHj{ce}}}{{AHn{cAHl}}}{}AI`}{{{d{{AHn{ceg}}}}}dAHh{MjKd}Aj}{{{d{AH`}}}{{Cb{{A`{n}}c}}}{}}{AIbM`}{{{d{AGn}}}AGn}{{{d{{AFn{c}}}}}{{AFn{c}}}Id}{{{d{AGh}}}AGh}{{{d{{AId{c}}}}}{{AId{c}}}Id}{{d{d{fc}}}j{}}000{{dl}j}000{{{d{fAH`}}{d{D`}}{d{{Kf{l}}}}{d{Jj}}{A`{{d{D`}}}}}{{Cb{{Ej{cKh}}e}}}{}{}}{{{d{f{AHn{cik}}}}{d{Kh}}AIf{d{{AIh{m}}}}}{{Cb{{ACl{Of}}{AIj{iomAa}}}}}{}{HfFjFl}Hf{{Mf{}{{Gn{e}}{Gl{g}}}}Mj{Kd{}{{Gn{e}}{Gl{g}}}}AAb}{AjADl}AIl{}{}}{{{d{f{AHn{cik}}}}{d{AFn}}CnBn}{{Cb{{ACl{Of}}{AJb{i{AIn{i}}{AJ`{i}}}}}}}{}{HfFjFl}Hf{{Mf{}{{Gn{e}}{Gl{g}}}}Mj{Kd{}{{Gn{e}}{Gl{g}}}}AAb}{AjADl}}{{}{{AHj{jj}}}}{An{{d{c}}}{}}000000000{An{{d{fc}}}{}}000000000{Anj}000000000{{{d{{On{c}}}}}B`{}}{{{d{{On{c}}}}}{{A`{n}}}{}}{{{d{{On{c}}}}}{{A`{Bn}}}{}}{{{d{AH`}}{d{Dh}}}{{Cb{{A`{c}}e}}}{}{}}{{{d{AGn}}{d{fBb}}}Bd}{cc{}}000000000{{{d{ADh}}}AJd}{{cOf{A`{n}}{A`{n}}AG`BnBn{A`{Bn}}AnB`AnAnAnB`B`}{{On{c}}}{}}{{{d{f{AHn{ceg}}}}nHl{d{{El{{AId{i}}}}}}EhEhB`}{{Ej{Dn}}}AHh{MjKd}AjAGd}{{{d{f{AHn{ceg}}}}}{{Ej{n}}}AHh{MjKd}Aj}{{{d{f{AHn{ceg}}}}{d{i}}AGhBn}{{Ej{n}}}AHh{MjKd}AjAGd}{{{d{f{AHn{ceg}}}}An{d{Ab}}}{{Ej{n}}}AHh{MjKd}Aj}{{{d{f{AHn{ceg}}}}Of}{{Ej{n}}}AHh{MjKd}Aj}{{{d{f{AHn{ceg}}}}{d{{El{{AId{i}}}}}}}{{Ej{nDn}}}AHh{MjKd}AjAGd}{{{d{f{AHn{ceg}}}}{d{i}}{Ej{Bn}}kBn}{{Ej{n}}}AHh{MjKd}AjAGd{{AJf{Cf}}}}{{{d{AH`}}c}{{Cb{{A`{e}}g}}}{}{}{}}{{{d{AH`}}c}{{Cb{ne}}}{}{}}{{{d{AH`}}{d{Ad}}}{{Cb{{A`{c}}e}}}{}{}}{{{d{AH`}}}{{Cb{{Dn{c}}e}}}{}{}}{{{d{AH`}}c{d{Gj}}{d{{El{e}}}}}{{Cb{Jbg}}}{}{}{}}{{{d{fAH`}}cKlEn}{{Cb{{A`{Cj}}e}}}{}{}}{{{d{AH`}}n}{{Cb{{A`{Hl}}c}}}{}}{{{d{AH`}}{d{N`}}Gb}{{Cb{{A`{c}}e}}}{}{}}{{{d{AH`}}c{A`{{Nd{Nb}}}}}{{Cb{{Dn{{Ej{DhNf}}}}e}}}{}{}}{{{d{AH`}}cEn}{{Cb{{A`{Cj}}e}}}{}{}}{{{d{AH`}}}{{Cb{{A`{{Ej{nHl}}}}c}}}{}}{{{d{AH`}}Nh}{{Cb{{A`{Nj}}c}}}{}}{{{d{fAH`}}cEn}{{Cb{{A`{{Ej{CjKl}}}}e}}}{}{}}{{{d{AH`}}O`}{{Cb{{Dn{{Ej{cOb}}}}e}}}{}{}}{{{d{{AHn{cik}}}}eEh}Bn{}{HfFjFl}Hf{{Mf{}{{Gn{e}}{Gl{g}}}}Mj{Kd{}{{Gn{e}}{Gl{g}}}}AAb}{AjADl}}0{{{d{AH`}}O`}{{Cb{{Dn{{Ej{cOd}}}}e}}}{}{}}1{{{d{AH`}}{d{Of}}MlEh}{{Cb{{A`{{Nn{cNl}}}}e}}}{}{}}{{{d{AH`}}Oj}{{Cb{{A`{{Ej{nn}}}}c}}}{}}{{{d{{AHn{cik}}}}e}Bn{}{HfFjFl}Hf{{Mf{}{{Gn{e}}{Gl{g}}}}Mj{Kd{}{{Gn{e}}{Gl{g}}}}AAb}{AjADl}}{{{d{AH`}}Of}{{Cb{{A`{Ab}}c}}}{}}{{{d{AH`}}c{d{Dh}}}{{Cb{{A`{Nf}}e}}}{}{}}{{{d{AH`}}cn}{{Cb{{Af{DhBn}}e}}}{}{}}{{{d{AH`}}cB`}{{Cb{{Af{Dh{A`{Nf}}}}e}}}{}{}}{{{d{{AHn{cik}}}}Of}{{Cb{{A`{{On{e}}}}g}}}{}{FjFl}Hf{{Mf{}{{Gn{e}}{Gl{g}}}}Mj{Kd{}{{Gn{e}}{Gl{g}}}}AAb}{AjADl}}{{{d{AH`}}Of}{{Cb{{A`{n}}c}}}{}}{{{d{AH`}}}{{Cb{{Af{cAd}}e}}}{}{}}{{{d{AH`}}}{{Cb{{A`{n}}c}}}{}}{{{d{{AHn{cik}}}}Eh}{{A`{{Ff{e}}}}}{}{HfFjFl}Hf{{Mf{}{{Gn{e}}{Gl{g}}}}Mj{Kd{}{{Gn{e}}{Gl{g}}}}AAb}{AjADl}}{{{d{AH`}}Eh}{{Cb{{A`{{Ff{c}}}}e}}}{}{}}{{{d{{On{c}}}}}B`{}}{{{d{AGn}}}n}{{{d{{AFn{c}}}}}eHh{}}{{{d{fAH`}}{d{D`}}{d{{Kf{l}}}}Gb{d{Jj}}{A`{{d{D`}}}}}{{Cb{{Ej{cKh}}e}}}{}{}}{{{d{fAH`}}{d{D`}}{d{Ad}}{d{Jj}}Hn{A`{{d{D`}}}}}{{Cb{ce}}}{}{}}{{}An}000000000{{{d{f{AHh{}{{AHb{c}}{AHd{e}}{AHf{g}}}}}}{d{ADh}}}gHf{{ADn{}{{Gl{c}}}}}{}}{{}c{}}000000000{{}{{Bf{c}}}{}}0000000008{{{d{{AHn{ceg}}}}}{{A`{{d{AGn}}}}}AHh{MjKd}Aj}{{{d{AH`}}c}{{Cb{{Dn{Gh}}e}}}{}{}}{{{d{{On{c}}}}}An{}}{{{d{{On{c}}}}}{{A`{n}}}{}}{{{d{{AFn{c}}}}}{{A`{{d{D`}}}}}Hh}{{dc}{{Bj{c}}}{}}000000000{{{d{{AHn{ceg}}}}}{{d{g}}}{}Mj{}}{AH`Fd}{{}{{AHj{jj}}}}{FdAH`}{{cAGhBn}{{AId{c}}}{}}{{{d{{AI`{}{{Gl{c}}{Gn{e}}{H`{g}}{AJh{i}}{AJj{k}}}}}}AHlAJl}{{Cb{kc}}}Hf{HfAJnAK`FlFjADl}{{Hh{}{{Gn{e}}}}Id}Hf{{Mf{}{{Gn{e}}{Gl{i}}}}{Hb{}{{Gn{e}}{H`{g}}{Gl{i}}}}MjKdAAb}}{nAGn}{{{d{{AHn{ceg}}}}}n{}MjAj}`{{{d{AJd}}}{{d{{El{A@j}}}}}}{{{d{AGn}}}Eh}{{{d{{AGd{}{{AGb{c}}}}}}AKb}{{A`{AKd}}}Al}{AH`ABl}`{AIbDn}0{{{d{f{AHn{cik}}}}{d{m}}{d{o}}Bn{d{{El{Dh}}}}Eh}{{Cb{{AIh{AEh}}{AKf{iAEhmo}}}}}{}{HfFjFl}Hf{{Mf{}{{Gn{e}}{Gl{g}}}}Mj{Kd{}{{Gn{e}}{Gl{g}}}}AAb}{AjADl}{{AKj{}{{AKh{i}}}}}{{AKn{}{{AKl{i}}}}}}{{{d{f{AHn{cik}}}}AL`Oj{d{Cf}}Bn{A`{Bh}}{A`{Bh}}Ml}{{Cb{{AIh{AL`}}{ALd{im{AIn{i}}{ALb{i}}}}}}}{}{HfFjFl}Hf{{Mf{}{{Gn{e}}{Gl{g}}}}Mj{Kd{}{{Gn{e}}{Gl{g}}}}AAb}{AjADl}{}}{{{d{f{AHn{cik}}}}{d{m}}{d{o}}ALfOj}{{Cb{AIh{ALd{iAEhmo}}}}}{}{HfFjFl}Hf{{Mf{}{{Gn{e}}{Gl{g}}}}Mj{Kd{}{{Gn{e}}{Gl{g}}}}AAb}{AjADl}{{ALh{}{{AKh{i}}}}}{{AKn{}{{AKl{i}}}}}}{{{d{fAH`}}{d{M`}}{Dn{{Hj{c}}}}}{{Cb{je}}}{}{}}{{{d{fAH`}}A@f{d{{El{{AAd{A@j}}}}}}}{{Cb{j{AAf{c}}}}}{}}{{{d{fAH`}}{d{Oh}}}{{Cb{ce}}}{}{}}{{{d{fAH`}}A@f{d{{El{{AAd{AAj}}}}}}}{{Cb{j{AAf{c}}}}}{}}{{{d{f{AHn{ceg}}}}A@f{d{{El{{AAd{AAj}}}}}}A@f{d{{El{{AAd{A@j}}}}}}}{{Cb{jAAf}}}AHh{MfMjKdAAb}{AjADl}}{{{d{fc}}e}{{AId{e}}}AGj{}}{{{d{{On{c}}}}}An{}}{{{d{fAH`}}cAn}{{Cb{{Dn{{Ej{DhNf}}}}e}}}{}{}}{{{d{f{AHn{c{ALl{}{{ALj{e}}}}AHl}}}}}e{}{}}{{{d{f{AHn{ceAHl}}}}}{}{}{HbALl}}{{{d{f{AHn{ceg}}}}}{{d{fALn}}}{}Mj{}}`{{{d{AJd}}}{{d{{El{AAj}}}}}}{{{d{{AHn{ceg}}}}}n{}MjAj}{{{d{AGn}}}Eh}{{{d{{AGd{}{{AGb{c}}}}}}}{{A`{AM`}}}Al}{AH`ABl}{{{d{f{AHn{ceg}}}}nAn}AD`AHh{MfMjKdAAb}{AjADl}}{{{d{AH`}}{d{{Kf{l}}}}}{{Cb{{Jh{c}}e}}}{}{}}{{{d{AH`}}cBn{d{{El{Ml}}}}n{d{{El{e}}}}}{{Cb{{Kn{e}}g}}}{}{}{}}<{{{AHj{ce}}Gb}{{AHj{ce}}}{}{}}{{{d{fAH`}}OfIn}{{Cb{jc}}}{}}{{{d{f{AHn{cik}}}}{d{m}}{d{o}}Bn{d{Kh}}{d{{El{Dh}}}}Eh}{{Cb{{ACl{Of}}{AMb{imo}}}}}{}{HfFjFl}Hf{{Mf{}{{Gn{e}}{Gl{g}}}}Mj{Kd{}{{Gn{e}}{Gl{g}}}}AAb}{AjADl}{{AKj{}{{AKh{i}}}}}{{AKn{}{{AKl{i}}}}}}{{AL`{A`{{d{D`}}}}Ml}{{ALb{c}}}Mf}{{{d{{AFn{c}}}}}{{d{I`}}}Hh}{{{d{f{AHn{cik}}}}{d{m}}{d{o}}{d{Kh}}ALfAIfOj}{{Cb{{ACl{Of}}{AJb{imo}}}}}{}{HfFjFl}Hf{{Mf{}{{Gn{e}}{Gl{g}}}}Mj{Kd{}{{Gn{e}}{Gl{g}}}}AAb}{AjADl}{{ALh{}{{AKh{i}}}}}{{AKn{}{{AKl{i}}}}}}{{{d{{On{c}}}}}An{}}{{{d{fAH`}}{Ah{c}}}{{Cb{je}}}{}{}}{{{d{fAH`}}{d{{El{{Fn{c}}}}}}}{{Cb{je}}}{}{}}{{{d{AH`}}}{{Cb{{Dn{AB`}}c}}}{}}{{{d{{AHn{ceg}}}}}{{A`{{d{AFn}}}}}{}MjAj}{{{d{{AHn{ceg}}}}}{{A`{{d{AMd}}}}}{}MjAj}{{{d{{AHn{ceg}}}}}{{A`{{d{AMf}}}}}{}MjAj}{{{d{{AHn{ceg}}}}}{{A`{{d{{Kf{l}}}}}}}{}MjAj}{dc{}}000{{{d{{On{c}}}}}Bn{}}0{{{d{AH`}}}{{Cb{{Dn{Il}}c}}}{}}`{{{d{f{AHh{}{{AHb{c}}{AHd{e}}{AHf{g}}}}}}n}jHf{{ADn{}{{Gl{c}}}}}{}}{{{d{f{AHn{ceg}}}}n}jAHh{MjKd}Aj}{{{d{fAH`}}n}{{Cb{nc}}}{}}1{c{{Cb{e}}}{}{}}000000000{{}{{Cb{c}}}{}}000000000{{{d{f{AHn{ceg}}}}nAn}{{Cb{AD`ADj}}}AHh{MfMjKdAAb}{AjADl}}{{{d{{On{c}}}}}Of{}}{dCd}000000000{{{d{{AFn{c}}}}}{{A`{{d{Ad}}}}}Hh}{{{d{{AFn{c}}}}}ABdHh}{{{d{fAH`}}n}{{Cb{jc}}}{}}{{{d{{AFn{c}}}}}{{d{Kh}}}{}}{{{d{AH`}}c}{{Cb{ne}}}{}{}}{{{d{AH`}}c{d{{Kf{l}}}}}{{Cb{B`e}}}{}{}}{{}c{}}000000000{{{d{{AHn{ceg}}}}}{{d{e}}}{}Mj{}}{{{d{f{AHn{ceg}}}}}{{d{fe}}}{}Mj{}}{{{AHj{ce}}Hl}{{AHj{ce}}}{}{}}{{{AHj{ce}}}{{AHj{ce}}}{}{}}{{{AHj{jc}}e}{{AHj{ec}}}{}AHh}{{{AHj{cj}}e}{{AHj{ce}}}{}{}}{{{AHj{ce}}AJl}{{AHj{ce}}}{}{}}{{{AHj{ce}}g}{{AHj{ce}}}{}{}{{ABj{{d{fALn}}{d{AHl}}}{{ABh{AIb}}}}}}{{{d{fAH`}}k}{{Cb{ei}}}{}{}{}{{ABf{{AAf{g}}}}}{{ABn{{d{f{ABl{c}}}}}{{ABh{{Cb{ei}}}}}}}}{{{d{fAH`}}i}{{Cb{eg}}}{}{}{{ABf{{AAf{AEh}}}}}{{ABn{{d{f{ABl{c}}}}}{{ABh{{Cb{eg}}}}}}}}`{d{{d{c}}}{}}{{{d{f}}}{{d{fc}}}{}}{{{d{{Ah{c}}}}}An{}}{An{{d{c}}}{}}{An{{d{fc}}}{}}{Anj}{{}c{}}{AMhc{}}{cc{}}{{{d{c}}}Cf{}}{{{d{c}}{d{c}}}B`{}}{{}An}{{}c{}}{{}{{Bf{c}}}{}}{{dc}{{Bj{c}}}{}}{{{d{{Ff{c}}}}}A@f{FlFj}}{{{d{f{AHn{ceg}}}}A@f{d{{El{{AAd{i}}}}}}}{{Cb{jAAf}}}{}{MjAAb}{}{}}{{{d{AD`}}}An}{{{d{{AHn{ceg}}}}Bnn{d{El}}}{{Cb{{Dn{{Nn{i}}}}}}}{}{MfMj}{}{}}{{{d{{El{l}}}}}c{}}{{{d{c}}}Cf{}}{{{d{c}}}e{}{}}{{{d{{AHn{ceg}}}}}i{}MjAj{}}{c{{Cb{e}}}{}{}}{{}{{Cb{c}}}{}}{{{d{c}}n{d{Ab}}{d{e}}}{{A`{{Ej{NlCfBh}}}}}Aj{}}{dCd}{{{d{Kh}}}{{d{c}}}{}}{{}c{}}{{{d{{Ah{c}}}}e}j{}{{ABn{{d{Bh}}}}}}``````{{ce}jAI`AHh}0{{ce}jAI`AHh}{cjAI`}1{{{d{{Ah{c}}}}}An{}}{{}c{}}{AMhc{}}455{{{d{c}}}Cf{}}{{{d{c}}{d{c}}}B`{}}7{{ce}jAI`AHh}88{{{d{{Ff{c}}}}}A@f{FlFj}}8987{{{d{f{AHn{ceg}}}}A@f{d{{El{{AAd{i}}}}}}}{{Cb{jAAf}}}{}{MjAAb}{}{}}{cCfAGj}{ceAGj{}}{{{d{AD`}}}An}{{ce}jAI`AHh}>==={{{d{{AHn{ceg}}}}Bnn{d{El}}}{{Cb{{Dn{{Nn{i}}}}}}}{}{MfMj}{}{}}{{ceg}jAI`AHh{{AMj{dEh}{{ABh{B`}}}}}}{{ce}jAI`AHh}0{{ce}jAI`AHh}{{{d{{El{l}}}}}c{}}{{{d{c}}}Cf{}}{{{d{c}}}e{}{}}444{{{d{{AHn{ceg}}}}}i{}MjAj{}}{{{d{c}}n{d{Ab}}{d{e}}}{{A`{{Ej{NlCfBh}}}}}Aj{}}{{{d{Kh}}}{{d{c}}}{}}7{{{d{{Ah{c}}}}e}j{}{{ABn{{d{Bh}}}}}}7`{d{{d{c}}}{}}{{{d{f}}}{{d{fc}}}{}}{{{d{{Ah{c}}}}}An{}}{An{{d{c}}}{}}{An{{d{fc}}}{}}{Anj}{{}c{}}{AMhc{}}{cc{}}{{{d{c}}}Cf{}}{{{d{c}}{d{c}}}B`{}}{{}An}{{}c{}}{{}{{Bf{c}}}{}}{{dc}{{Bj{c}}}{}}{{{d{{Ff{c}}}}}A@f{FlFj}}{{{d{f{AHn{ceg}}}}A@f{d{{El{{AAd{i}}}}}}}{{Cb{jAAf}}}{}{MjAAb}{}{}}{{{d{AD`}}}An}{{{d{{AHn{ceg}}}}Bnn{d{El}}}{{Cb{{Dn{{Nn{i}}}}}}}{}{MfMj}{}{}}{{{d{{El{l}}}}}c{}}{{{d{c}}}Cf{}}{{{d{c}}}e{}{}}{{{d{{AHn{ceg}}}}}i{}MjAj{}}{c{{Cb{e}}}{}{}}{{}{{Cb{c}}}{}}{{{d{c}}n{d{Ab}}{d{e}}}{{A`{{Ej{NlCfBh}}}}}Aj{}}{dCd}{{{d{Kh}}}{{d{c}}}{}}{{}c{}}{{{d{{Ah{c}}}}e}j{}{{ABn{{d{Bh}}}}}}`{d{{d{c}}}{}}{{{d{f}}}{{d{fc}}}{}}{{{d{AJl}}}AJl}{{d{d{fc}}}j{}}{{dl}j}{An{{d{c}}}{}}{An{{d{fc}}}{}}{Anj}{{{d{AJl}}}Eh}{{{d{AJl}}{d{AJl}}}B`}1{{{d{AJl}}{d{fBb}}}Bd}{cc{}}{{ceAJl}jAI`AHh}{{}An}5{{}c{}}{{}{{Bf{c}}}{}}{{dc}{{Bj{c}}}{}}{{EhEhEh}AJl}{cjAI`}{dc{}}{{ce}jAI`AHh}0{c{{Cb{e}}}{}{}}{{}{{Cb{c}}}{}}{dCd}{{}c{}}``````````````````````````````````````````````````````````````````````````````````````````````````````````````{{{d{fc}}{d{e}}{d{g}}{d{i}}{d{Kh}}AIf{d{{AIh{km}}}}}{{Cb{{ACl{Of}}{AIj{cokAam}}}}}{KdAAb}{AjId}AMlAMnAIl{}{}{}}{{{d{c}}{d{fe}}{d{Ab}}{A`{n}}}{{Cb{j}}}AjKd}`{{{d{fc}}{d{e}}{d{g}}{d{i}}Bn{d{{El{Dh}}}}Eh}{{Cb{{AIh{AEh}}{AKf{ckgi}}}}}{Hb{Mf{}{{Gl{}}}}}Aj{{AKj{}{{AKh{c}}}}}{{AKn{}{{AKl{c}}}}}{}}{{{d{fc}}{d{e}}AL`Oj{d{Cf}}Bn{A`{Bh}}{A`{Bh}}Ml}{{Cb{{AIh{AL`}}{ALd{cg{AIn{c}}{ALb{c}}}}}}}{Mf{Hb{}{{Gl{}}{Gn{}}}}}{AjId}{}}{{{d{fc}}{d{e}}{d{g}}{d{i}}ALfOj}{{Cb{AIh{ALd{ckgi}}}}}{Hb{Mf{}{{Gl{}}}}}{AjId}{{ALh{}{{AKh{c}}}}}{{AKn{}{{AKl{c}}}}}{}}{{{d{fc}}{d{e}}{d{g}}{d{i}}{d{k}}{d{m}}Bn{d{Kh}}{d{{El{Dh}}}}Eh}{{Cb{{ACl{Of}}{AMb{ckm}}}}}{KdAAb{Mf{}{{Gl{}}}}}AjAMlAMn{{AKj{}{{AKh{c}}}}}{{AKn{}{{AKl{c}}}}}}{AFfBn}000000000```````````````````{d{{d{c}}}{}}00{{{d{f}}}{{d{fc}}}{}}00{{{d{AN`}}}AN`}{{d{d{fc}}}j{}}{{dl}j}{{}{{AIn{c}}}{}}{An{{d{c}}}{}}00{An{{d{fc}}}{}}00{Anj}00{{{d{AN`}}{d{AN`}}}B`}{{{d{{AEl{cegi}}}}{d{fBb}}}BdAE`AE`AE`AE`}{{{d{{AEl{cegi}}}}{d{fBb}}}BdHfHfHfHf}{{{d{AN`}}{d{fBb}}}Bd}0{cc{}}{AN`{{AEl{cAN`eg}}}{}{}{}}{Gf{{AEl{cAN`eg}}}{}{}{}}{{{ANb{ce}}}{{AEl{gice}}}{}{}{}{}}{{{Ef{{d{D`}}}}}{{AEl{cegi}}}{}{}{}{}}44{{}An}00{{}c{}}00{{}{{Bf{c}}}{}}00{{dc}{{Bj{c}}}{}}00{{}{{AIn{c}}}{}}{{{d{{AKj{}{{Gl{c}}{AKh{e}}}}}}{d{g}}{d{e}}{d{i}}Bn{d{{El{Dh}}}}nEh}{{Cb{{AIh{AEh}}{AEl{cAEh}}}}}{}MfAj{{AKn{}{{AKl{e}}}}}}{{{d{{AIn{c}}}}{d{e}}{d{g}}{d{i}}Bn{d{{El{Dh}}}}nEh}{{Cb{{AIh{AEh}}{AEl{kAEh}}}}}MfAj{}{{AKn{}{{AKl{g}}}}}{}}{{{d{{ALh{}{{Gl{c}}{AKh{e}}}}}}{d{g}}{d{e}}nnALf{d{i}}}{{Cb{AIh{AEl{c}}}}}{}MfAj{{AKn{}{{AKl{e}}}}}}{{{d{{AIn{c}}}}{d{e}}{d{g}}nnALf{d{i}}}{{Cb{AIh{AEl{k}}}}}MfAj{}{{AKn{}{{AKl{c}}}}}{}}{{{d{{AEl{cegi}}}}}{{A`{{d{AEd}}}}}{HfAE`AEd}{HfAE`AEd}{HfAE`AEd}{HfAE`}}{dc{}}{dDb}0{c{{Cb{e}}}{}{}}00{{}{{Cb{c}}}{}}00{dCd}00{{}c{}}00{ANdBn}0``````````{d{{d{c}}}{}}0{{{d{f}}}{{d{fc}}}{}}0{{{d{ANf}}}ANf}{{d{d{fc}}}j{}}{{dl}j}{{{d{c}}{d{D`}}}{{Cb{{ANh{}{{Gl{e}}}}e}}}{}{}}{{{d{D`}}{d{D`}}}{{Cb{ANjANf}}}}{{{d{D`}}{d{D`}}}{{Cb{ANlANf}}}}{{{d{D`}}}{{Cb{{Ej{E`ANj}}ANf}}}}{{{d{D`}}{d{D`}}}{{Cb{DfANf}}}}{{{d{{El{l}}}}{d{{El{l}}}}{d{D`}}}{{Cb{{A`{Dh}}ANn}}}}{An{{d{c}}}{}}0{An{{d{fc}}}{}}0{Anj}0{{{d{{ANh{}{{Gl{c}}}}}}{d{e}}}Db{}{}}{{{d{D`}}{d{ANj}}}Db}{{{d{D`}}{d{ANl}}}Db}{{{d{D`}}{d{Df}}}Db}{{{d{c}}{d{Df}}}DbAj}{{{d{{El{l}}}}{d{{El{l}}}}{d{Dh}}}Db}{{{d{c}}{d{Dh}}}DbAj}{{{d{ANf}}{d{ANf}}}B`}{{{d{ANf}}{d{fBb}}}{{Cb{jDd}}}}0{{{d{AO`}}{d{fBb}}}{{Cb{jDd}}}}0{AObANf}{cc{}}{AOdANf}1{{}An}0{{}c{}}0{{}{{Bf{c}}}{}}0{{dc}{{Bj{c}}}{}}0{dc{}}{dDb}0{c{{Cb{e}}}{}{}}0{{}{{Cb{c}}}{}}0{dCd}0{{}c{}}0{AOfDb}0```````````````````````{{{d{AOh}}}AOj}{d{{d{c}}}{}}0000000{{{d{f}}}{{d{fc}}}{}}0000000{{{d{AL`}}}AL`}{{{d{AOl}}}AOl}{{{d{AOn}}}AOn}{{{d{{ANb{ce}}}}}{{ANb{ce}}}IdId}{{{d{AOj}}}AOj}{{{d{AOh}}}AOh}{{{d{B@`}}}B@`}{{{d{B@b}}}B@b}{{d{d{fc}}}j{}}0000000{{dl}j}0000000`{{{d{{AKn{}{{B@d{c}}{Gl{e}}{AKl{g}}{B@f{i}}}}}}{d{k}}n{d{{El{m}}}}{d{{El{o}}}}{d{Ac}}{d{Ae}}{A`{{d{B@b}}}}{d{i}}}{{Cb{AOn{ANb{eAa}}}}}{AIlId}{}Mf{}AjB@hB@jId{{B@l{Aa}}}{{B@n{Aa}}}}{{}AOh}{An{{d{c}}}{}}0000000{An{{d{fc}}}{}}0000000{Anj}0000000{{{d{AOh}}}{{A`{Bn}}}}{{{d{B@b}}}{{A`{Bn}}}}0{BnAOl}{{{d{AL`}}{d{AL`}}}B`}{{{d{AOl}}{d{AOl}}}B`}{{{d{AOn}}{d{AOn}}}B`}{{{d{{ANb{ce}}}}{d{{ANb{ce}}}}}B`L`L`}{{{d{AOj}}{d{AOj}}}B`}{{{d{AOh}}{d{AOh}}}B`}{{{d{B@b}}{d{B@b}}}B`}{{{d{AL`}}{d{c}}negAnAnAn}{{Cb{Bni}}}Aj{{BAd{}{{BA`{BAb}}}}}{{BAd{}{{BA`{An}}}}}{}}{{{d{AOn}}}Bn}{{{d{{AKn{}{{B@d{c}}{Gl{e}}{AKl{g}}{B@f{i}}}}}}}{{d{c}}}{AIlId}{}Mf{}}{{{d{{AKn{}{{B@d{c}}{Gl{e}}{AKl{g}}{B@f{i}}}}}}{d{g}}{d{El}}}{{Cb{i}}}{AIlId}{}Mf{}}{{{d{AL`}}{d{fBb}}}Bd}{{{d{AOl}}{d{fBb}}}Bd}{{{d{AOn}}{d{fBb}}}Bd}{{{d{{ANb{ce}}}}{d{fBb}}}BdHfHf}{{{d{{ANb{ce}}}}{d{fBb}}}BdAE`AE`}{{{d{AOj}}{d{fBb}}}Bd}{{{d{AOh}}{d{fBb}}}Bd}{{{d{B@`}}{d{fBb}}}Bd}{{{d{B@b}}{d{fBb}}}Bd}{cc{}}0000000{{{d{AL`}}}An}{{}An}0000000{{}c{}}0000000{{}{{Bf{c}}}{}}0000000{{{d{AOl}}}B`}{{{d{B@b}}}B`}0{{{d{AL`}}}Bn}{{{d{AOl}}}{{A`{{d{Bh}}}}}}{{{d{B@`}}}{{A`{Bn}}}}{{dc}{{Bj{c}}}{}}0000000{{{Dn{AOl}}Bn}{{Cb{AOnj}}}}{{AOj{A`{Bn}}}AOh}`{{Bn{A`{Bh}}}AOl}{{{d{AOl}}}Ch}{{{d{AOn}}}{{d{{El{AOl}}}}}}`2{{MlBn{A`{Bh}}}AOl}{{}B@`}{{{d{{ANb{ce}}}}}{{A`{{d{AEd}}}}}{HfAE`AEd}{HfAE`}}{{{d{B@`}}{A`{An}}{A`{Bn}}Bn}BAf}`{{{d{B@`}}}BAf}{dc{}}0000000{dDb}{{{d{AOn}}}Bn}{c{{Cb{e}}}{}{}}0000000{{}{{Cb{c}}}{}}0000000{dCd}0000000{{{d{AOl}}}Bn}{{}c{}}0000000{{BAfBn}B@`}`{BAhBn}{BAjDn}100``````{d{{d{c}}}{}}{{{d{f}}}{{d{fc}}}{}}{{{d{{B@n{}{{BAl{c}}{BAn{g}}}}}}}BB`{{BBb{e}}}{}BBd}{{{d{BBf}}}BB`}{An{{d{c}}}{}}{An{{d{fc}}}{}}{Anj}{cc{}}{{}An}{{{d{{B@n{}{{BAl{c}}{BAn{g}}}}}}}{{d{{El{c}}}}}{{BBb{e}}}{}BBd}{{{d{BBf}}}{{d{{El{c}}}}}{}}{{}c{}}{{}{{Bf{c}}}{}}{{dc}{{Bj{c}}}{}}{{{d{BBb}}}{{d{c}}}{}}{{{d{{B@n{}{{BAl{c}}{BAn{g}}}}}}}{{d{{El{g}}}}}{{BBb{e}}}{}BBd}{{{d{BBf}}}{{d{{El{c}}}}}{}}{c{{Cb{e}}}{}{}}{{}{{Cb{c}}}{}}{dCd}{{{d{BBb}}}Bn}{{{d{BBd}}}Bn}{{}c{}}``````{d{{d{c}}}{}}{{{d{f}}}{{d{fc}}}{}}{{{d{{B@l{}{{BAl{c}}{BAn{g}}}}}}}BBh{{BBj{e}}}{}BBl}{{{d{BBn}}}BBh}{An{{d{c}}}{}}{An{{d{fc}}}{}}{Anj}{cc{}}{{}An}{{{d{{B@l{}{{BAl{c}}{BAn{g}}}}}}}{{d{{El{c}}}}}{{BBj{e}}}{}BBl}{{{d{BBn}}}{{d{{El{c}}}}}{}}{{}c{}}{{}{{Bf{c}}}{}}{{dc}{{Bj{c}}}{}}{{{d{BBj}}}{{d{c}}}{}}{{{d{{B@l{}{{BAl{c}}{BAn{g}}}}}}}{{d{{El{g}}}}}{{BBj{e}}}{}BBl}{{{d{BBn}}}{{d{{El{c}}}}}{}}{c{{Cb{e}}}{}{}}{{}{{Cb{c}}}{}}{dCd}{{{d{BBj}}}Bn}{{{d{BBl}}}Bn}{{}c{}}`````{d{{d{c}}}{}}0{{{d{f}}}{{d{fc}}}{}}0{{{d{{BC`{ce}}}}{d{g}}n{d{{El{i}}}}{d{{El{k}}}}{d{o}}{d{Aa}}{A`{{d{B@b}}}}{d{Ac}}}{{Cb{AOn{ANb{Aem}}}}}{BCbId}MfAjB@hB@jId{{B@l{m}}}{{B@n{m}}}{}{}}{{{d{{BCd{ce}}}}{d{g}}n{d{{El{i}}}}{d{{El{k}}}}{d{o}}{d{Aa}}{A`{{d{B@b}}}}{d{Ac}}}{{Cb{AOn{ANb{Aem}}}}}{BCbId}MfAjB@hB@jId{{B@l{m}}}{{B@n{m}}}{}{}}{An{{d{c}}}{}}0{An{{d{fc}}}{}}0{Anj}0{{{d{{BC`{ce}}}}}{{d{g}}}{BCbId}Mf{}}{{{d{{BCd{ce}}}}}{{d{g}}}{BCbId}Mf{}}{{{d{{BC`{ce}}}}{d{g}}{d{El}}}{{Cb{i}}}{BCbId}Mf{}{}}{{{d{{BCd{ce}}}}{d{g}}{d{El}}}{{Cb{i}}}{BCbId}Mf{}{}}{cc{}}0{{{d{BCb}}}An}{{}An}0{{}c{}}0{{}{{Bf{c}}}{}}0{{{d{BCb}}}Bn}{{dc}{{Bj{c}}}{}}0{{c{A`{Bh}}MlAOh}{{BC`{ce}}}{}{}}{{c{A`{Bh}}MlAOhB@`}{{BCd{ce}}}{}{}}{c{{Cb{e}}}{}{}}0{{}{{Cb{c}}}{}}0{dCd}0{{}c{}}0``````````````````````````````````{{{d{Ad}}KlEn}{{Cb{CjBCf}}}}{{{d{ABd}}KlEn}{{Cb{CjBCf}}}}{d{{d{c}}}{}}000000000{{{d{f}}}{{d{fc}}}{}}000000000{{{d{Kh}}}Kh}{{{d{BCf}}}BCf}{{{d{BCh}}}BCh}{{{d{En}}}En}{{{d{BCj}}}BCj}{{{d{Ad}}}Ad}{{{d{ABd}}}ABd}{{d{d{fc}}}j{}}000000{{dl}j}000000{{BChBChBCh}{{Cb{Enj}}}}{{{d{c}}{d{D`}}}{{Cb{AdDb}}}Aj}{{{d{c}}{d{D`}}}{{Cb{ABdDb}}}Aj}{{{d{Kh}}En}{{Ej{CjKl}}}}{{{d{Ad}}En}{{Cb{{Ej{CjKl}}BCf}}}}{{{d{ABd}}En}{{Cb{{Ej{CjKl}}BCf}}}}{{{d{Kh}}}{{Ej{DhNb}}}}{An{{d{c}}}{}}000000000{An{{d{fc}}}{}}000000000{Anj}000000000{{{d{Ad}}{d{c}}}DbAj}{{{d{ABd}}{d{c}}}DbAj}{{{d{BCl}}{d{BCl}}}B`}{{{d{BCn}}{d{BCn}}}B`}{{{d{BCh}}{d{BCh}}}B`}{{{d{Ad}}KlEn}{{Cb{{Ej{CjKl}}BCf}}}}{{{d{ABd}}KlEn}{{Cb{{Ej{CjKl}}BCf}}}}{{{d{BD`}}{d{fBb}}}{{Cb{jDd}}}}0{{{d{BCl}}{d{fBb}}}{{Cb{jDd}}}}{{{d{BCn}}{d{fBb}}}{{Cb{jDd}}}}0{{{d{Kh}}{d{fBb}}}{{Cb{jDd}}}}{{{d{BCf}}{d{fBb}}}{{Cb{jDd}}}}0{{{d{BCh}}{d{fBb}}}{{Cb{jDd}}}}{{{d{En}}{d{fBb}}}{{Cb{jDd}}}}{{{d{BCj}}{d{fBb}}}{{Cb{jDd}}}}{{{d{Ad}}{d{fBb}}}{{Cb{jDd}}}}{{{d{ABd}}{d{fBb}}}{{Cb{jDd}}}}{BDbBD`}{cc{}}000000000{{BCl{d{{El{l}}}}}{{Cb{KhBCn}}}}{ANj{{Cb{AdBD`}}}}{{{d{c}}{d{{El{l}}}}Gb}{{Cb{KhBD`}}}Aj}{{{d{ABd}}}B`}00{{}An}000000000{{BChBCh}{{Cb{BChj}}}}{{{d{BCj}}{d{BCj}}}{{Cb{BCjj}}}}{{}c{}}000000000{{}{{Bf{c}}}{}}000000000{{dc}{{Bj{c}}}{}}000000000{{BChBChBCh}{{Cb{BCjj}}}}{{{A`{BDd}}{A`{AMf}}{A`{AMd}}}{{Cb{AdBD`}}}}{{{A`{BDf}}{A`{BDh}}{A`{BDj}}}ABd}{{{d{Kh}}}{{d{BDl}}}}{{{d{BCj}}}BCh}{{{d{Ad}}}{{A`{{d{AMd}}}}}}{{{d{ABd}}}{{d{{A`{BDj}}}}}}2{{{d{BDn}}}{{Cb{AdBCn}}}}{{{d{ABd}}En}{{Cb{BCjBCf}}}}`{{{d{Kh}}}{{d{ANl}}}}5{{{d{Ad}}}{{A`{{d{AMf}}}}}}{{{d{ABd}}}{{d{{A`{BDh}}}}}}`{{{d{Kh}}BCl}{{Dn{l}}}}{dc{}}000000{{{d{ABd}}}{{Cb{BCjj}}}}{dDb}00{{{d{Kh}}}Ad}{{{d{Ad}}}ABd}{{{d{Kh}}}{{d{BE`}}}}{{{d{Ad}}}{{A`{{d{BDd}}}}}}{{{d{ABd}}}{{d{{A`{BDf}}}}}}{c{{Cb{e}}}{}{}}000000000{{}{{Cb{c}}}{}}000000000{dCd}000000000{{BChBChBCh}En}{{BChBChBCh}BCj}{{}c{}}000000000```{{{d{AMf}}{d{fAGf}}{d{c}}neAGhBnEh{d{fg}}}eAj{}{AGjAGl}}{{{d{AMf}}{d{fAGf}}{d{c}}nAGhBnEh{d{fe}}}gAj{AGjAGl}{}}{{{d{AMf}}{d{fAGf}}c{d{fe}}}j{}{AGjAGl}}{{{d{ANj}}Kl}{{A`{Df}}}}{{{d{AMf}}Kl}{{A`{Df}}}}{d{{d{c}}}{}}00{{{d{f}}}{{d{fc}}}{}}00{{{d{AMf}}}{{Ej{KlDf}}}}{{{d{ANl}}}ANl}{{{d{ANj}}}ANj}{{{d{AMf}}}AMf}{{d{d{fc}}}j{}}00{{dl}j}00{{{d{AMf}}{d{Df}}}{{A`{{Ej{KlAKb}}}}}}{{{d{ANl}}}{{Ej{KlDf}}}}{{{d{ANj}}}{{Ej{KlDf}}}}8{An{{d{c}}}{}}00{An{{d{fc}}}{}}00{{{d{ANl}}BEb}ANl}:9{{{d{AMf}}BEd}{{A`{Df}}}}0{Anj}00{{{d{ANl}}{d{ANl}}}B`}{{{d{ANj}}{d{ANj}}}B`}{ANlBEf}{{{d{ANj}}Kl}{{A`{{Ej{KlDf}}}}}}{{{d{AMf}}Kl}{{A`{{Ej{KlDf}}}}}}{{{d{ANl}}{d{fBb}}}{{Cb{jDd}}}}{{{d{ANj}}{d{fBb}}}{{Cb{jDd}}}}{{{d{AMf}}{d{fBb}}}{{Cb{jDd}}}}{cc{}}0{ANjAMf}1{{{d{ANj}}}AMf}{{{d{{El{l}}}}}{{Cb{ANlBEh}}}}{{{d{{Ed{l}}}}}{{A`{AMf}}}}{{{d{ANl}}{d{{El{BEb}}}}}ANl}{{{d{AMf}}}{{d{BEj}}}}{ANjBEj}{{}An}00{{}c{}}00{{}{{Bf{c}}}{}}00{{{d{{El{l}}}}}ANl}{{dc}{{Bj{c}}}{}}00{{{d{AMf}}AKb}{{A`{AKd}}}}{c{{Cb{ANlLf}}}BEl}{c{{Cb{ANjLf}}}BEl}{{{d{AMf}}}{{A`{AM`}}}}{{{d{{El{l}}}}EhGb}ANl}{{{d{ANl}}}{{Ed{l}}}}{{{d{AMf}}}{{Ed{l}}}}{{{d{ANl}}}AMf}{{{d{ANj}}}AMf}{{{d{ANl}}}ANj}{{{d{AMf}}}BDh}{{{d{AMf}}}BEj}{{{d{AMf}}AKb}BEn}{{{d{AMf}}AKb}BF`}{{{d{AMf}}AKb}AM`}{dc{}}00{c{{Cb{e}}}{}{}}00{{}{{Cb{c}}}{}}00{dCd}00{{}c{}}00{{{d{ANl}}c}{{Cb{jLf}}}BFb}{{{d{ANj}}c}{{Cb{jLf}}}BFb}{Fd{{`{{Fb{}{{F`{Kh}}}}}}}}`````````````````````{{{d{{BFd{c}}}}}n{}}{{{d{{BFf{c}}}}}{{d{AOn}}}{}}{d{{d{c}}}{}}00000{{{d{f}}}{{d{fc}}}{}}00000{{{d{AFb}}}AFb}{{{d{{BFd{c}}}}}{{BFd{c}}}Id}{{{d{{AIh{ce}}}}}{{AIh{ce}}}IdId}{{{d{BFh}}}BFh}{{{d{BFj}}}BFj}{{{d{{BFf{c}}}}}{{BFf{c}}}Id}{{d{d{fc}}}j{}}00000{{dl}j}00000{{{d{BFh}}{d{BFh}}}Jl}{{{d{BFj}}{d{BFj}}}Jl}{An{{d{c}}}{}}00000{An{{d{fc}}}{}}00000{Anj}00000{{{d{{BFd{c}}}}{d{{BFd{c}}}}}B`L`}{{{d{{AIh{ce}}}}{d{{AIh{ce}}}}}B`L`L`}{{{d{BFh}}{d{BFh}}}B`}{{{d{BFj}}{d{BFj}}}B`}{{{d{{BFf{c}}}}{d{{BFf{c}}}}}B`L`}{{{d{{AIh{ce}}}}}{{d{c}}}{}{}}{{{d{AFb}}{d{fBb}}}Bd}0{{{d{{AIh{ce}}}}{d{fBb}}}BdHf{}}{{{d{BFh}}{d{fBb}}}Bd}{{{d{BFj}}{d{fBb}}}Bd}{{{d{{BFf{c}}}}{d{fBb}}}Bd{}}{cc{}}00000{{n{ACl{{Nn{cNl}}}}}{{BFd{c}}}{}}{{{d{{El{{BFf{c}}}}}}ALf{BFl{AnCh}}{Dn{Oh}}{A`{{BFd{c}}}}{Dn{BFj}}AOnB`}{{Cb{{BFf{c}}AFb}}}{}}{{{d{BFh}}{d{fc}}}jA@`}{{{d{BFj}}{d{fc}}}jA@`}{{}An}00000{{}c{}}00000{{}{{Bf{c}}}{}}00000{{{d{{BFf{c}}}}Ch}B`{}}{{{d{{BFf{c}}}}}B`{}}{{{d{{AIh{ce}}}}}n{}{}}{{cn{ACl{{BFf{e}}}}}{{Cb{{AIh{ce}}AFb}}}{}{}}{{dc}{{Bj{c}}}{}}00000{{AnBFh}BFj}{{{d{{BFd{c}}}}}{{d{{ACl{{Nn{cNl}}}}}}}{}}{{{d{BFj}}}BFh}{{{d{BFh}}{d{BFh}}}{{A`{Jl}}}}{{{d{BFj}}{d{BFj}}}{{A`{Jl}}}}{{{d{{BFf{c}}}}}{{d{{BFl{AnCh}}}}}{}}{{{d{{BFf{c}}}}}{{d{{El{BFj}}}}}{}}{{{d{{BFf{c}}}}}{{A`{{d{{BFd{c}}}}}}}{}}{{ALf{BFl{AnCh}}{Dn{Oh}}{A`{{BFd{c}}}}AOnenB`}{{Cb{{AIh{ec}}AFb}}}{}{}}{{{d{BFj}}}An}{{{d{{AIh{ce}}}}}{{d{{ACl{{BFf{e}}}}}}}{}{}}{dc{}}00000{dDb}{{{d{{BFf{c}}}}}{{d{ALf}}}{}}{{{d{{BFf{c}}}}}{{d{{El{Oh}}}}}{}}{c{{Cb{e}}}{}{}}00000{{}{{Cb{c}}}{}}00000{dCd}00000{{}c{}}00000{BFnBn}0``````````{{}Eh}```````{d{{d{c}}}{}}{{{d{f}}}{{d{fc}}}{}}{{{d{{BG`{c}}}}}{{BG`{c}}}Id}{{d{d{fc}}}j{}}{{dl}j}`{An{{d{c}}}{}}{An{{d{fc}}}{}}{Anj}{{{d{{BG`{c}}}}{d{fBb}}}BdHf}{{{d{{BG`{c}}}}{d{fBb}}}BdAE`}{BGb{{BG`{c}}}{}}{cc{}}{{}An}{{}c{}}{{}{{Bf{c}}}{}}{{dc}{{Bj{c}}}{}}``{{{d{{BG`{c}}}}}{{A`{{d{AEd}}}}}AEd}{dc{}}{dDb}{c{{Cb{e}}}{}{}}{{}{{Cb{c}}}{}}{dCd}{{}c{}}``````{AGfDn}{d{{d{c}}}{}}00000{{{d{f}}}{{d{fc}}}{}}00000{ADhA`}{BGdDn}{BGfDn}{{{d{fBGh}}}j}{{{d{fADh}}}j}{{{d{fAGf}}}j}{{{d{fBGj}}}j}{{{d{fBGd}}}j}{{{d{fBGf}}}j}{{{d{BGh}}}BGh}{{{d{ADh}}}ADh}{{{d{AGf}}}AGf}{{{d{BGj}}}BGj}{{{d{BGd}}}BGd}{{{d{BGf}}}BGf}{{d{d{fc}}}j{}}00000{{dl}j}00000{{{d{BGd}}}{{Cb{BGlj}}}}{BGdDn}{{{d{BGf}}}{{Cb{BGnj}}}}{BGfDn}{{}BGh}{{}ADh}{{}AGf}{{}BGj}{{}BGd}{{}BGf}{An{{d{c}}}{}}00000{An{{d{fc}}}{}}00000{Anj}00000{{{d{BGh}}}An}{{{d{ADh}}}An}{{{d{AGf}}}An}{{{d{BGj}}}An}{{{d{BGd}}}An}{{{d{BGf}}}An}{{{d{BGd}}}{{Cb{BH`j}}}}{{{d{BGf}}}{{Cb{BH`j}}}}{BGdDn}{BGfDn}{{{d{BGh}}{d{BGh}}}B`}{{{d{ADh}}{d{ADh}}}B`}{{{d{AGf}}{d{AGf}}}B`}{{{d{BGj}}{d{BGj}}}B`}{{{d{BGd}}{d{BGd}}}B`}{{{d{BGf}}{d{BGf}}}B`}{AGfEh}{{{d{BGh}}{d{fBb}}}Bd}{{{d{ADh}}{d{fBb}}}Bd}{{{d{AGf}}{d{fBb}}}Bd}{{{d{BGj}}{d{fBb}}}Bd}{{{d{BGd}}{d{fBb}}}Bd}{{{d{BGf}}{d{fBb}}}Bd}{cc{}}00{{{d{{BHb{c}}}}}BGjBHd}1{{{d{{BHf{c}}}}}BGd{}}22{{{d{{BHh{c}}}}}BGf{}}{{{d{ADh}}}Hl}{ADhDn}{AGfDn}{{{d{ADh}}}{{A`{BHj}}}}2{{{d{ADh}}}n}{ADhA@f}{AGfA@f}{{}An}00000{{}c{}}00000{{}{{Bf{c}}}{}}00000{{dc}{{Bj{c}}}{}}00000{{{d{BGj}}}{{Cb{Odj}}}}{{{d{BGf}}}{{Cb{Obj}}}}{BGjDn}{BGfDn}{BGhEh}=?>{ADhEh}1>0{dc{}}00000{c{{Cb{e}}}{}{}}00000{{}{{Cb{c}}}{}}00000{{{d{AGf}}}Of}{dCd}00000{ADhDn}{{}c{}}00000````````````````````{BHlEh}{{{d{BHn}}}{{d{D`}}}}{{{d{BI`}}}{{d{D`}}}}{BHlA`}{d{{d{c}}}{}}00000000000{{{d{f}}}{{d{fc}}}{}}00000000000{BIbEh}{{{d{fBId}}}j}{{{d{fBHl}}}j}{{{d{fBIf}}}j}{{{d{fBIh}}}j}{{{d{fBIj}}}j}{{{d{fBIb}}}j}{{{d{fBIl}}}j}{{{d{fBIn}}}j}{{{d{fBJ`}}}j}{{{d{fBJb}}}j}{{{d{BId}}}BId}{{{d{BHl}}}BHl}{{{d{BIf}}}BIf}{{{d{BIh}}}BIh}{{{d{BIj}}}BIj}{{{d{BIb}}}BIb}{{{d{BIl}}}BIl}{{{d{BIn}}}BIn}{{{d{BJ`}}}BJ`}{{{d{BJb}}}BJb}{{{d{BHn}}}BHn}{{{d{BI`}}}BI`}{{d{d{fc}}}j{}}00000000000{{dl}j}00000000000{{{d{BHn}}{d{BHn}}}Jl}{{{d{BI`}}{d{BI`}}}Jl}{{}BId}{{}BHl}{{}BIf}{{}BIh}{{}BIj}{{}BIb}{{}BIl}{{}BIn}{{}BJ`}{{}BJb}{{}BHn}{{}BI`}{An{{d{c}}}{}}00000000000{An{{d{fc}}}{}}00000000000{Anj}00000000000{{{d{BId}}}An}{{{d{BHl}}}An}{{{d{BIf}}}An}{{{d{BIh}}}An}{{{d{BIj}}}An}{{{d{BIb}}}An}{{{d{BIl}}}An}{{{d{BIn}}}An}{{{d{BJ`}}}An}{{{d{BJb}}}An}{{{d{BId}}{d{BId}}}B`}{{{d{BHl}}{d{BHl}}}B`}{{{d{BIf}}{d{BIf}}}B`}{{{d{BIh}}{d{BIh}}}B`}{{{d{BIj}}{d{BIj}}}B`}{{{d{BIb}}{d{BIb}}}B`}{{{d{BIl}}{d{BIl}}}B`}{{{d{BIn}}{d{BIn}}}B`}{{{d{BJ`}}{d{BJ`}}}B`}{{{d{BJb}}{d{BJb}}}B`}{{{d{BHn}}{d{BHn}}}B`}{{{d{BI`}}{d{BI`}}}B`}{BInA@f}{{{d{BId}}}BI`}{BIdBJd}{{{d{BId}}{d{fBb}}}Bd}{{{d{BHl}}{d{fBb}}}Bd}{{{d{BIf}}{d{fBb}}}Bd}{{{d{BIh}}{d{fBb}}}Bd}{{{d{BIj}}{d{fBb}}}Bd}{{{d{BIb}}{d{fBb}}}Bd}{{{d{BIl}}{d{fBb}}}Bd}{{{d{BIn}}{d{fBb}}}Bd}{{{d{BJ`}}{d{fBb}}}Bd}{{{d{BJb}}{d{fBb}}}Bd}{{{d{BHn}}{d{fBb}}}Bd}{{{d{BI`}}{d{fBb}}}Bd}{cc{}}000000000{ChBHn}{MlBHn}22{BJd{{A`{BHn}}}}{BJd{{A`{BI`}}}}{{{d{{AIh{AL`c}}}}}BId{}}{{{d{D`}}}{{A`{BHn}}}}{{{d{D`}}}{{A`{BI`}}}}{{{d{BHn}}{d{fc}}}jA@`}{{{d{BI`}}{d{fc}}}jA@`}{BIhEh}{{}An}00000000000{BHlDn}{{}c{}}00000000000{{}{{Bf{c}}}{}}00000000000{BJ`B`}{BHlB`}{BJdB`}0{BJ`A`}{BIdEh}{{dc}{{Bj{c}}}{}}00000000000{{{d{BIh}}}{{Cb{OfBJf}}}}{{{d{BHn}}{d{BHn}}}{{A`{Jl}}}}{{{d{BI`}}{d{BI`}}}{{A`{Jl}}}}{BIfEh}{BIjEh}={{{d{BIh}}}{{Cb{Ch{BG`{c}}}}}{}}{{{d{BJ`}}}{{Cb{Ch{BG`{c}}}}}{}}{BInDn}`9{{{d{fBId}}BI`}j}{{{d{fBIf}}BHn}j}{{{d{fBIh}}BHn}j}{{{d{fBJ`}}BHn}j}7{BIbEh}{BIdDn}{dc{}}00000000000{BHlDb}{c{{Cb{e}}}{}{}}000000000{BJd{{Cb{BHnBJh}}}}1{BJd{{Cb{BI`BJh}}}}2{{}{{Cb{c}}}{}}00000000000{{{d{BId}}{d{e}}}{{Cb{{AIh{AL`}}{BG`{c}}}}}{}{{Mf{}{{Gl{c}}}}}}{BIhDn}{dCd}00000000000{BIhA@f}{BIlA`}{BJ`A@f}{BJbDn}{{{d{BIf}}}BHn}{{{d{BIh}}}BHn}{{{d{BJ`}}}BHn}{BIfBJd}{BIhBJd}{BJ`BJd}{{}c{}}00000000000````{d{{d{c}}}{}}{{{d{f}}}{{d{fc}}}{}}{{{d{BJj}}}BJj}{{d{d{fc}}}j{}}{{dl}j}{An{{d{c}}}{}}{An{{d{fc}}}{}}{Anj}{{{d{BJj}}{d{fc}}}jBJl}{{{d{BJj}}}An}{{{d{BJj}}{d{BJj}}}B`}{{{d{BJj}}{d{fBb}}}Bd}{cc{}}{{}An}{{}c{}}{{}{{Bf{c}}}{}}{{{d{f{A`{BJj}}}}EhBJn{d{fc}}BK`}{{Cb{jBKb}}}BKd}{{dc}{{Bj{c}}}{}}{dc{}}{c{{Cb{e}}}{}{}}{{}{{Cb{c}}}{}}{dCd}{{}c{}}````````````````````````{BKfDb}{BKhDb}{BKjDb}{BKlDn}{BKnDn}{BL`Dn}{{{d{BLb}}}{{d{D`}}}}{BLdA`}{BLfA@f}{d{{d{c}}}{}}000000000000000000000{{{d{f}}}{{d{fc}}}{}}000000000000000000000{BLfDb}000{{{d{fBLh}}}j}{{{d{fBLj}}}j}{{{d{fBLd}}}j}{{{d{fBLl}}}j}{{{d{fBLn}}}j}{{{d{fBM`}}}j}{{{d{fBMb}}}j}{{{d{fBLf}}}j}{{{d{fBKf}}}j}{{{d{fBMd}}}j}{{{d{fBMf}}}j}{{{d{fBKh}}}j}{{{d{fBKn}}}j}{{{d{fBMh}}}j}{{{d{fBMj}}}j}{{{d{fMb}}}j}{{{d{fBMl}}}j}{{{d{fBMn}}}j}{{{d{fBL`}}}j}{{{d{fBKj}}}j}{{{d{fBKl}}}j}{{{d{BLh}}}BLh}{{{d{BLj}}}BLj}{{{d{BLd}}}BLd}{{{d{BLl}}}BLl}{{{d{BLn}}}BLn}{{{d{BM`}}}BM`}{{{d{BMb}}}BMb}{{{d{BLf}}}BLf}{{{d{BKf}}}BKf}{{{d{BMd}}}BMd}{{{d{BMf}}}BMf}{{{d{BKh}}}BKh}{{{d{BKn}}}BKn}{{{d{BMh}}}BMh}{{{d{BMj}}}BMj}{{{d{Mb}}}Mb}{{{d{BMl}}}BMl}{{{d{BMn}}}BMn}{{{d{BL`}}}BL`}{{{d{BKj}}}BKj}{{{d{BKl}}}BKl}{{{d{BLb}}}BLb}{{d{d{fc}}}j{}}000000000000000000000{{dl}j}000000000000000000000{{{d{BLb}}{d{BLb}}}Jl}`{BMnDn}{BMnA@f}{BLfDb}{BLlDn}{{}BLh}{{}BLj}{{}BLd}{{}BLl}{{}BLn}{{}BM`}{{}BMb}{{}BLf}{{}BKf}{{}BMd}{{}BMf}{{}BKh}{{}BKn}{{}BMh}{{}BMj}{{}Mb}{{}BMl}{{}BMn}{{}BL`}{{}BKj}{{}BKl}{{}BLb}{An{{d{c}}}{}}000000000000000000000{An{{d{fc}}}{}}000000000000000000000{BLfDb}{Anj}000000000000000000000{{{d{BLh}}}An}{{{d{BLj}}}An}{{{d{BLd}}}An}{{{d{BLl}}}An}{{{d{BLn}}}An}{{{d{BM`}}}An}{{{d{BMb}}}An}{{{d{BLf}}}An}{{{d{BKf}}}An}{{{d{BMd}}}An}{{{d{BMf}}}An}{{{d{BKh}}}An}{{{d{BKn}}}An}{{{d{BMh}}}An}{{{d{BMj}}}An}{{{d{Mb}}}An}{{{d{BMl}}}An}{{{d{BMn}}}An}{{{d{BL`}}}An}{{{d{BKj}}}An}{{{d{BKl}}}An}{BLjA`}{BMfBN`}{{{d{BLh}}{d{BLh}}}B`}{{{d{BLj}}{d{BLj}}}B`}{{{d{BLd}}{d{BLd}}}B`}{{{d{BLl}}{d{BLl}}}B`}{{{d{BLn}}{d{BLn}}}B`}{{{d{BM`}}{d{BM`}}}B`}{{{d{BMb}}{d{BMb}}}B`}{{{d{BLf}}{d{BLf}}}B`}{{{d{BKf}}{d{BKf}}}B`}{{{d{BMd}}{d{BMd}}}B`}{{{d{BMf}}{d{BMf}}}B`}{{{d{BKh}}{d{BKh}}}B`}{{{d{BKn}}{d{BKn}}}B`}{{{d{BMh}}{d{BMh}}}B`}{{{d{BMj}}{d{BMj}}}B`}{{{d{Mb}}{d{Mb}}}B`}{{{d{BMl}}{d{BMl}}}B`}{{{d{BMn}}{d{BMn}}}B`}{{{d{BL`}}{d{BL`}}}B`}{{{d{BKj}}{d{BKj}}}B`}{{{d{BKl}}{d{BKl}}}B`}{{{d{BLb}}{d{BLb}}}B`}{BLnBJd}{BLnDb}{BLfA@f}{BMfBN`}{{{d{BLh}}{d{fBb}}}Bd}{{{d{BLj}}{d{fBb}}}Bd}{{{d{BLd}}{d{fBb}}}Bd}{{{d{BLl}}{d{fBb}}}Bd}{{{d{BLn}}{d{fBb}}}Bd}{{{d{BM`}}{d{fBb}}}Bd}{{{d{BMb}}{d{fBb}}}Bd}{{{d{BLf}}{d{fBb}}}Bd}{{{d{BKf}}{d{fBb}}}Bd}{{{d{BMd}}{d{fBb}}}Bd}{{{d{BMf}}{d{fBb}}}Bd}{{{d{BKh}}{d{fBb}}}Bd}{{{d{BKn}}{d{fBb}}}Bd}{{{d{BMh}}{d{fBb}}}Bd}{{{d{BMj}}{d{fBb}}}Bd}{{{d{Mb}}{d{fBb}}}Bd}{{{d{BMl}}{d{fBb}}}Bd}{{{d{BMn}}{d{fBb}}}Bd}{{{d{BL`}}{d{fBb}}}Bd}{{{d{BKj}}{d{fBb}}}Bd}{{{d{BKl}}{d{fBb}}}Bd}{{{d{BLb}}{d{fBb}}}Bd}{cc{}}000000000000000000000{BJd{{A`{BLb}}}}{{{d{D`}}}{{A`{BLb}}}}{BLfDb}{{{d{BLb}}{d{fc}}}jA@`}{BLhDn}{BLdDn}{MbDb}{BLhA@f}{BLlA@f}{MbA@f}{BKjA@f}{BLdA@f}{BKjBJd}{{}An}000000000000000000000{BMdBN`}{{}c{}}000000000000000000000{{}{{Bf{c}}}{}}000000000000000000000{BJdB`}{BMlEh}{BL`Eh}{{dc}{{Bj{c}}}{}}000000000000000000000>{{{d{Mb}}}{{BNd{{BNb{A@j}}}}}}?{{{d{BLb}}{d{BLb}}}{{A`{Jl}}}}{BKfA`}{BMnDn}{BLfA@f}{{{d{Mb}}}{{BNd{{BNb{AAj}}}}}}{MbDb}{BKjDn}{{{d{fBMl}}BLb}j}{{{d{BMl}}}BLb}{BMlBJd}{BLjA`}{BL`A@f}?{BLfB`}{MbEh}{{{d{Mb}}}{{BNd{M`}}}}{dc{}}000000000000000000000{c{{Cb{e}}}{}{}}000000000000000000000{BJd{{Cb{BLbBJh}}}}{{}{{Cb{c}}}{}}000000000000000000000{BMjDn}={dCd}000000000000000000000{BMhBN`}{BKjBN`}{BLfDb}0{{}c{}}00000000000000000000011`{{{BNf{c}}BNh}{{BNf{c}}}{{BNl{BNj}}}}{d{{d{c}}}{}}{{{d{f}}}{{d{fc}}}{}}{{{d{{BNf{c}}}}}{{BNf{c}}}Id}{{d{d{fc}}}j{}}{{dl}j}{An{{d{c}}}{}}{An{{d{fc}}}{}}{Anj}{{{d{{BNf{c}}}}{d{fBb}}}BdHf}{cc{}}{{{d{f{BNf{c}}}}e}{{Cb{{BNn{BKl}}BO`}}}{{BNl{BNj}}}{{BOb{BL`}}}}{{{d{f{BNf{c}}}}e}{{Cb{{BNn{{BOd{BKj}}}}BO`}}}{{BNl{BNj}}}{{BOb{BL`}}}}{{{d{f{BNf{c}}}}e}{{Cb{{BNn{ADh}}BO`}}}{{BNl{BNj}}}{{BOb{BLh}}}}0{{{d{f{BNf{c}}}}e}{{Cb{{BNn{{BOd{ADh}}}}BO`}}}{{BNl{BNj}}}{{BOb{BLj}}}}0{{{d{f{BNf{c}}}}e}{{Cb{{BNn{BLh}}BO`}}}{{BNl{BNj}}}{{BOb{BM`}}}}{{{d{f{BNf{c}}}}e}{{Cb{{BNn{Mb}}BO`}}}{{BNl{BNj}}}{{BOb{BMb}}}}{{{d{f{BNf{c}}}}e}{{Cb{{BNn{BLf}}BO`}}}{{BNl{BNj}}}{{BOb{BMb}}}}{{{d{f{BNf{c}}}}e}{{Cb{{BNn{{BOd{BLl}}}}BO`}}}{{BNl{BNj}}}{{BOb{BMb}}}}{{{d{f{BNf{c}}}}e}{{Cb{{BNn{{BOd{AGf}}}}BO`}}}{{BNl{BNj}}}{{BOb{BMj}}}}{{{d{f{BNf{c}}}}e}{{Cb{{BNn{{BOd{BMn}}}}BO`}}}{{BNl{BNj}}}{{BOb{BMl}}}}{{{d{f{BNf{c}}}}e}{{Cb{{BNn{BMh}}BO`}}}{{BNl{BNj}}}{{BOb{BKn}}}}{{{d{f{BNf{c}}}}e}{{Cb{{BNn{BMh}}BO`}}}{{BNl{BNj}}}{{BOh{}{{BOf{BKh}}}}}}{{{d{f{BNf{c}}}}e}{{Cb{{BNn{{BOd{BLl}}}}BO`}}}{{BNl{BNj}}}{{BOb{BKf}}}}{{{d{f{BNf{c}}}}e}{{Cb{{BNn{BLl}}BO`}}}{{BNl{BNj}}}{{BOb{BLd}}}}{{{d{f{BNf{c}}}}e}{{Cb{{BNn{Mb}}BO`}}}{{BNl{BNj}}}{{BOb{BLh}}}}{{}An}{{}c{}}{{}{{Bf{c}}}{}}{{{BNf{c}}An}{{BNf{c}}}{{BNl{BNj}}}}0{{dc}{{Bj{c}}}{}}{c{{BNf{c}}}{{BNl{BNj}}}}{{{d{f{BNf{c}}}}e}{{Cb{{BNn{BMf}}BO`}}}{{BNl{BNj}}}{{BOb{BMd}}}}{{{BNf{c}}BNh}{{BNf{c}}}{{BNl{BNj}}}}{{{d{f{BNf{c}}}}e}{{Cb{{BNn{BLn}}BO`}}}{{BNl{BNj}}}{{BOb{BLl}}}}{dc{}}{c{{Cb{e}}}{}{}}{{}{{Cb{c}}}{}}{dCd}{{}c{}}{{ce}{{BNf{{BOj{ce}}}}}{{C@b{{BOl{BNj}}}{{BOn{C@`}}}}{BNl{BNj}}}C@d}{{cC@f}{{BNf{c}}}{{BNl{BNj}}}}```````````{{{d{C@h}}}{{d{c}}}{}}{{{d{{C@j{BDjAMdc}}}}}{{d{c}}}{}}{{{d{{C@j{BEnBF`c}}}}}{{d{c}}}{}}{{{d{AEb}}}n}{d{{d{c}}}{}}000{{{d{f}}}{{d{fc}}}{}}000{{{d{AEb}}}AEb}{{d{d{fc}}}j{}}{{dl}j}{An{{d{c}}}{}}000{An{{d{fc}}}{}}000{Anj}000{{}{{C@l{ce}}}{}{}}{{}{{C@n{c}}}{}}{{{d{AEb}}{d{fBb}}}Bd}0{cc{}}000{e{{C@l{c{Ej{cAKb}}}}}{AlFjFl}{{BAd{}{{BA`{{Ej{cAd}}}}}}}}{{}An}000{{}c{}}000{{}{{Bf{c}}}{}}000{{{d{AEb}}}B`}{{{d{C@h}}}{{A`{AKb}}}}{{{d{{C@j{BEnBF`c}}}}}{{A`{AKb}}}{}}{{{d{{C@j{BDjAMdc}}}}}{{A`{AKb}}}{}}{{dc}{{Bj{c}}}{}}000{{{Af{c{ACh{C@h}}}}{Af{c{ACh{C@h}}}}}{{C@l{ec}}}{}{}}{{{d{C@h}}dMn}{{A`{c}}}{}}{{{d{{C@j{BEnBF`c}}}}{d{Bl}}Mn}{{A`{Od}}}{}}{{{d{{C@j{BDjAMdc}}}}{d{C`}}Mn}{{A`{Ob}}}{}}{{{d{{C@l{ce}}}}}{{d{{Af{e{ACh{C@h}}}}}}}{}{}}{{{d{{C@n{c}}}}}{{d{{El{{Ej{cOb}}}}}}}{}}{{{d{C@h}}}}{{{d{{C@j{BDjAMdc}}}}}CA`{}}{{{d{{C@j{BEnBF`c}}}}}CAb{}}4{{{d{{C@n{c}}}}}{{d{{El{{Ej{cOd}}}}}}}{}}{{{d{c}}ADh{d{{C@l{eg}}}}{d{{C@n{e}}}}{A`{{d{Hd}}}}}{{Cb{{Hj{e}}AEb}}}{AjADl}{AK`FjFlAJnADl}{AlFlFjADl}}`{dc{}}{dDb}{c{{Cb{e}}}{}{}}000{{}{{Cb{c}}}{}}000{dCd}000{{}c{}}000{CAdn}{CAfn}{CAhn}{CAjn}{CAln}{CAhEh}0{CAdAn}{CAnn}{CAdMl}1{CAhMl}{CAjMl}{CAlMl}{CAdOf}{{nHlOd{d{AMf}}BnB`{A`{{Ej{EhEh}}}}}ADh}`{c{{BNd{{CB`{e}}}}}BElCBb}{{{d{fc}}{d{{CB`{e}}}}}{{BNd{j}}}BFbCBb}```````{d{{d{c}}}{}}{{{d{f}}}{{d{fc}}}{}}{An{{d{c}}}{}}{An{{d{fc}}}{}}{Anj}{{{d{{CBd{ceg}}}}{d{fBb}}}BdHfHfHf}{{{d{{CBd{ceg}}}}{d{fBb}}}BdAE`AE`AE`}{cc{}}{BO`{{CBd{ceg}}}{}{}{}}{{{ADj{ce}}}{{CBd{ecg}}}{}{}{}}{{}An}{{}c{}}{{}{{Bf{c}}}{}}{{dc}{{Bj{c}}}{}}{{{d{f{BNf{c}}}}{d{e}}{d{g}}{d{fi}}Eh}{{Cb{jCBd}}}{{BNl{BNj}}}{AjADl}ADb{KdAAb}}{dDb}{c{{Cb{e}}}{}{}}{{}{{Cb{c}}}{}}{dCd}{{}c{}}``````````````````````{{{d{{CBf{ce}}}}}{{d{e}}}{}{}}{{{d{{CBh{ceg}}}}}{{d{g}}}{}{}{}}{{{d{Nf}}}Nb}{{{d{{ABb{c}}}}}An{}}{d{{d{c}}}{}}000000000{{{d{f}}}{{d{fc}}}{}}000000000{{{d{Nh}}}Nh}{{{d{{Ll{c}}}}}{{Ll{c}}}Id}{{{d{Oh}}}Oh}{{{d{Nl}}}Nl}{{{d{{Nn{ce}}}}}{{Nn{ce}}}IdId}{{{d{AIf}}}AIf}{{{d{Nf}}}Nf}{{d{d{fc}}}j{}}000000{{dl}j}000000{{{d{Nh}}{d{Nh}}}Jl}{{{d{Oh}}}{{d{CBj}}}}{{{d{{Ed{l}}}}}AIf}{An{{d{c}}}{}}000000000{An{{d{fc}}}{}}000000000{Anj}000000000{{{d{{CBh{ceg}}}}}{{d{BH`}}}{}{}{}}{{{d{Nh}}{d{Nh}}}B`}{{{d{Oh}}{d{Oh}}}B`}{{{d{Nl}}{d{Nl}}}B`}{{{d{{Nn{ce}}}}{d{{Nn{ce}}}}}B`L`L`}{{{d{Nf}}{d{Nf}}}B`}{{{d{Nh}}{d{fBb}}}Bd}{{{d{{Ll{c}}}}{d{fBb}}}BdHf}{{{d{Oh}}{d{fBb}}}Bd}{{{d{Nl}}{d{fBb}}}Bd}{{{d{{Nn{ce}}}}{d{fBb}}}BdHfHf}{{{d{AIf}}{d{fBb}}}Bd}{{{d{Nf}}{d{fBb}}}Bd}{cc{}}000000000{{Ance}{{CBf{ce}}}{}{}}{{AnBH`cB`Mn{A`{e}}g{A`{AKb}}}{{CBh{ceg}}}{}{}{}}{{OlCBj{A`{n}}}{{A`{Oh}}}}{{cOfA@heAKbMn}{{Nn{ce}}}{}{}}{{{d{{CBf{ce}}}}}An{}{}}{{{d{{CBh{ceg}}}}}An{}{}{}}{{}An}000000000{{{d{{Nn{ce}}}}}{{d{c}}}{}{}}{{}c{}}000000000{{}{{Bf{c}}}{}}000000000{{{d{{CBh{ceg}}}}}B`{}{}{}}{{{Nn{ce}}i}{{Nn{cg}}}{}{}{}{{AMj{e}{{ABh{g}}}}}}{{{d{Oh}}}{{A`{n}}}}{{dc}{{Bj{c}}}{}}000000000{{OfAn{Dn{{CBl{c}}}}{Dn{{CBn{c}}}}{Dn{{CBf{Obc}}}}{Dn{{CC`{c}}}}}{{ABb{c}}}{}}{{OfMlA@h}Nh}{{LjNb}Nf}{{{d{{CBf{ce}}}}}{{d{c}}}{}{}}{{{d{{CBh{ceg}}}}}{{A`{{d{e}}}}}{}{}{}}{{{d{{CBh{ceg}}}}}{{d{c}}}{}{}{}}{{{d{{Nn{ce}}}}}{{d{e}}}{}{}}{{{d{{CBh{ceg}}}}}Mn{}{}{}}{{{d{{Nn{ce}}}}}Mn{}{}}{{{d{{Nn{cBl}}}}}{{d{c}}}{}}{{{d{{Nn{cC`}}}}}{{d{c}}}{}}{{{d{{Nn{cC`}}}}}{{Cb{BnGf}}}{}}{{{d{{Nn{cBl}}}}}{{Cb{BnGf}}}{}}{{{d{{ABb{c}}}}}{{d{{El{{CC`{c}}}}}}}{}}{{{d{{ABb{c}}}}}{{d{{El{{CCb{c}}}}}}}{}}{{{d{Oh}}}{{d{Ol}}}}0{{{d{Nh}}}A@h}{{{d{{Nn{ce}}}}}A@h{}{}}{{{d{Nh}}{d{Nh}}}{{A`{Jl}}}}{{{d{Nh}}}Ml}{{{d{Nl}}}Ml}{{{d{Oh}}}{{d{Dh}}}}{{{d{{CBh{ceg}}}}}{{A`{AKb}}}{}{}{}}{{{d{{ABb{c}}}}}{{d{{El{{CBn{c}}}}}}}{}}{{{d{{ABb{c}}}}}{{d{{El{{CBl{c}}}}}}}{}}{{{d{Nf}}}Lj}{{{d{{Nn{ce}}}}}AKb{}{}}{dc{}}000000{c{{Cb{e}}}{}{}}000000000{{}{{Cb{c}}}{}}000000000{{{d{{ABb{c}}}}}Of{}}{{{d{Nh}}}{{d{Of}}}}{{{d{{Nn{ce}}}}}{{d{Of}}}{}{}}{{{d{Oh}}}{{d{CBj}}}}{dCd}000000000{{{d{Oh}}}Bn}{{{d{Nl}}}Bn}{{{d{{Nn{cBl}}}}}Bn{}}{{{d{{Nn{cC`}}}}}Bn{}}{{}c{}}000000000{CCdAKd}{CCdAM`}{CCfDh}{CChA`}{CChACh}{CCfOl}{CCjCh}{CCf}{CCh}{CCjCn}``````````{{{d{CCl}}}Bn}{d{{d{c}}}{}}00{{{d{f}}}{{d{fc}}}{}}00{{{d{BGb}}}BGb}{{{d{CCl}}}CCl}{{{d{ALf}}}ALf}{{d{d{fc}}}j{}}00{{dl}j}00{An{{d{c}}}{}}00{An{{d{fc}}}{}}00{Anj}00{{}ALf}{{{d{BGb}}{d{BGb}}}B`}{{{d{CCl}}{d{CCl}}}B`}{{{d{ALf}}{d{ALf}}}B`}{{{d{BGb}}{d{fBb}}}{{Cb{jDd}}}}0{{{d{CCl}}{d{fBb}}}{{Cb{jDd}}}}{{{d{ALf}}{d{fBb}}}{{Cb{jDd}}}}{cc{}}{{{Ef{c}}}BGbAE`}11{{{BFl{AnCCl}}}{{Cb{ALfBGb}}}}{{{d{D`}}}{{Cb{ALfBGb}}}}{{}An}00{{}c{}}00{{}{{Bf{c}}}{}}00{{{d{CCl}}}{{A`{{d{Db}}}}}}{{{d{CCl}}}{{A`{{d{Bh}}}}}}{{{d{D`}}}{{Cb{BhBGb}}}}{{{d{Bh}}}Db}3{{dc}{{Bj{c}}}{}}00{{CnBn{A`{Bh}}{A`{Db}}{A`{Db}}{Dn{{Ej{DbDb}}}}}{{A`{CCl}}}}{{{Dn{CCl}}}{{Cb{ALfBGb}}}}{{{d{CCl}}}{{d{{El{{Ej{DbDb}}}}}}}}{{{d{ALf}}}{{d{{BFl{AnCCl}}}}}}{{{d{CCl}}}{{d{Cn}}}}{{{d{BGb}}}{{A`{{d{AEd}}}}}}`{dc{}}00{dDb}{{{d{ALf}}}Db}{{{d{ALf}}}{{Cb{BnGf}}}}{c{{Cb{e}}}{}{}}00{{}{{Cb{c}}}{}}00{dCd}00{{}c{}}00{{CnBn}CCl}{{}d}{E`{{`{{Fb{}{{F`{Db}}}}}}}}{{}{{`{{Fb{}{{F`{Bh}}}}}}}}{E`{{`{{Fb{}{{F`{CCl}}}}}}}}{E`{{`{{Fb{}{{F`{ALf}}}}}}}}03","D":"KFl","p":[[5,"DecryptedOutput",0,4650],[1,"reference",null,null,1],[0,"mut"],[6,"TransferType",0,4650],[1,"unit"],[1,"u8"],[5,"BlockHeight",4651],[6,"Option",4652,null,1],[5,"Transaction",4653],[5,"UnifiedFullViewingKey",2348,4654],[5,"HashMap",4655],[5,"DecryptedTransaction",163],[10,"Parameters",4651],[10,"Copy",4656],[1,"usize"],[1,"bool"],[5,"Formatter",4657],[8,"Result",4657],[5,"Request",4658],[5,"MemoBytes",4659],[5,"Layered",4660],[5,"Note",4661],[5,"Zatoshis",4662],[5,"Note",4663],[6,"Result",4664,null,1],[5,"TypeId",4665],[6,"Address",67,4666],[6,"PoolType",4667],[5,"UnifiedAddress",67,4666],[6,"Receiver",67,4666],[5,"ZcashAddress",4668],[1,"str"],[5,"String",4669],[5,"Error",4657],[5,"PaymentAddress",4670],[6,"TransparentAddress",4671],[5,"Address",4672],[6,"Typecode",4673],[5,"Vec",4674],[6,"NetworkType",4651],[5,"Address",4675],[1,"array"],[6,"ConversionError",4676],[1,"u32"],[1,"tuple",null,null,1],[1,"slice"],[6,"UnifiedAddressRequest",2348,4654],[17,"Value"],[10,"Strategy",4677],[6,"Network",4651],[5,"WalletSummary",163],[5,"AccountBalance",163],[10,"Eq",4678],[10,"Hash",4679],[5,"SentTransaction",163],[5,"Zip32Derivation",163],[5,"AccountId",4680],[5,"Balance",163],[6,"BalanceError",4662],[5,"AddressInfo",163],[6,"NoteFilter",163],[17,"Error"],[17,"AccountId"],[17,"Account"],[10,"WalletRead",163],[5,"BlockMetadata",163],[10,"Debug",4657],[10,"Account",163],[5,"ScannedBlock",163],[5,"BlockHash",4681],[6,"AccountPurpose",163],[6,"AccountSource",163],[5,"Ratio",163],[10,"Clone",4682],[5,"Progress",163],[6,"TransactionStatusFilter",163],[6,"OutputStatusFilter",163],[6,"TransactionDataRequest",163],[6,"TransactionStatus",163],[5,"PoolMeta",163],[5,"AccountMeta",163],[5,"BoundedU8",163],[5,"OutputOfSentTx",163],[6,"SeedRelevance",163],[5,"AccountBirthday",163],[6,"Ordering",4678],[5,"ScannedBundles",163],[6,"Retention",4683],[17,"UtxoRef"],[10,"WalletWrite",163],[8,"SecretVec",4684],[5,"UnifiedSpendingKey",2348,4654],[5,"OffsetDateTime",4685],[5,"DiversifierIndex",4680],[5,"SpendableNotes",163],[10,"PartialEq",4678],[5,"TryFromIntError",4686],[6,"BirthdayError",163],[5,"Error",4687],[6,"NetworkUpgrade",4651],[5,"TransparentKeyScope",4688],[6,"Recipient",4285],[5,"SentTransactionOutput",163],[5,"ChainState",995],[5,"TreeState",3496],[17,"NoteRef"],[10,"InputSource",163],[10,"Ord",4678],[10,"WalletTest",163],[6,"ShieldedProtocol",4667],[5,"Position",4683],[5,"SeedFingerprint",4689],[5,"NonHardenedChildIndex",4688],[5,"Range",4690],[5,"TransparentAddressMetadata",4285],[5,"NoteId",4285],[6,"Memo",4659],[6,"Note",4285],[5,"ReceivedNote",4285],[6,"NullifierQuery",163],[5,"Nullifier",4691],[5,"Nullifier",4692],[5,"TxId",4693],[5,"WalletTransparentOutput",4285],[8,"NonZeroU32",4694],[5,"OutPoint",4695],[5,"TransactionSummary",1257],[10,"Hasher",4679],[5,"ScannedBlockCommitments",163],[10,"NoteRetention",163],[1,"u64"],[1,"u16"],[5,"MerkleHashOrchard",4696],[5,"Frontier",4697],[17,"SaplingShardStore"],[17,"OrchardShardStore"],[10,"WalletCommitmentTrees",163],[5,"CommitmentTreeRoot",995],[6,"ShardTreeError",4698],[17,"H"],[5,"Node",4699],[17,"CheckpointId"],[10,"ShardStore",4700],[5,"ScanRange",1166],[5,"WalletTx",4285],[5,"UnifiedIncomingViewingKey",2348,4654],[10,"From",4701,null,1],[17,"Output"],[10,"FnOnce",4702],[5,"ShardTree",4703],[10,"FnMut",4702],[15,"Spending",981],[15,"Derived",982],[15,"Imported",982],[15,"Attempt",986],[5,"Box",4704,null,1],[15,"Relevant",988],[5,"NonEmpty",4705],[15,"TransactionsInvolvingAddress",989],[5,"ScanSummary",995],[10,"BlockCache",995],[10,"Future",4706,null,1],[5,"Pin",4707],[5,"CompactBlock",2935],[6,"Error",1077],[10,"Send",4656],[10,"BlockSource",995],[10,"Display",4657],[6,"ScanError",4141],[10,"Error",4708],[5,"MockBlockSource",1100],[6,"Infallible",4701],[6,"Error",1116],[6,"InputSelectorError",1870],[6,"Error",4709],[6,"Error",4710],[6,"ProposalError",2722],[6,"Error",4711],[15,"InsufficientFunds",1860],[6,"ScanPriority",1166],[6,"SpanningTree",1228],[15,"Parent",1253],[5,"TestAccount",1257],[5,"ZatBalance",4662],[17,"Nullifier"],[10,"TestFvk",1257],[5,"CompactTx",2935],[6,"AddressType",1257],[10,"RngCore",4712],[10,"CryptoRng",4712],[5,"CachedBlock",1257],[5,"MockWalletDb",1257],[17,"BsError"],[17,"BlockSource"],[17,"InsertResult"],[10,"TestCache",1257],[5,"TestBuilder",1257],[5,"LocalNetwork",4713],[5,"TestState",1257],[10,"DataStoreFactory",1257],[5,"InitialChainState",1257],[5,"FakeCompactOutput",1257],[6,"OvkPolicy",4285],[5,"Proposal",2722],[8,"CreateErrT",1743],[10,"FeeRule",4714],[5,"GreedyInputSelector",1870],[8,"MultiOutputChangeStrategy",2305],[8,"TransferErrT",1743],[5,"NoteCommitments",1257],[10,"Into",4701,null,1],[17,"DsError"],[17,"DataStore"],[5,"GapLimits",1714],[10,"ConditionallySelectable",4715],[10,"Default",4716],[6,"Scope",4680],[5,"OutgoingViewingKey",4717],[8,"ProposeShieldingErrT",1743],[17,"InputSource"],[10,"ShieldingSelector",1870],[17,"MetaSource"],[10,"ChangeStrategy",2021],[6,"StandardFeeRule",2021],[8,"SingleOutputChangeStrategy",2305],[8,"ProposeTransferErrT",1743],[5,"TransactionRequest",4551,4718],[10,"InputSelector",1870],[17,"Handle"],[10,"Reset",1257],[8,"ChaChaRng",4719],[5,"OutgoingViewingKey",4720],[8,"ShieldErrT",1743],[5,"FullViewingKey",4717],[5,"DiversifiableFullViewingKey",2616,4721],[5,"Level",4683],[10,"Fn",4702],[10,"SpendProver",4722],[10,"OutputProver",4722],[6,"GreedyInputSelectorError",1870],[6,"ChangeError",2021],[15,"InsufficientFunds",1953],[6,"Bech32DecodeError",1955,4723],[10,"AddressCodec",1955,4723],[5,"ExtendedFullViewingKey",2616,4721],[5,"ExtendedSpendingKey",2616,4721],[6,"Error",4724],[6,"TransparentCodecError",1955,4723],[6,"DecodeError",4725],[6,"CheckedHrpstringError",4726],[15,"HrpMismatch",2019],[5,"DustOutputPolicy",2021],[6,"DustAction",2021],[5,"ChangeValue",2021],[5,"TransactionBalance",2021],[5,"SplitPolicy",2021],[6,"EphemeralBalance",2021],[17,"FeeRule"],[17,"AccountMetaT"],[10,"InputView",4727],[10,"OutputView",4727],[10,"BundleView",2276],[10,"BundleView",2247],[17,"Item"],[6,"InputSize",4727],[10,"IntoIterator",4728],[8,"NonZeroUsize",4694],[15,"InsufficientFunds",2242],[15,"DustInputs",2242],[17,"In"],[17,"Out"],[6,"BundleType",4729],[10,"InputView",2247],[10,"OutputView",2247],[5,"EmptyBundleView",2247],[6,"BundleType",4709],[10,"InputView",2276],[10,"OutputView",2276],[5,"EmptyBundleView",2276],[5,"SingleOutputChangeStrategy",2307],[10,"Zip317FeeRule",2307],[5,"MultiOutputChangeStrategy",2307],[6,"AddressGenerationError",2348,4654],[6,"ReceiverRequirement",2348,4654],[5,"ReceiverRequirements",2348,4654],[6,"Era",2348,4654],[6,"DecodingError",2348,4654],[6,"DerivationError",2348,4654],[6,"Error",4730],[5,"AccountPubKey",4688],[5,"ExternalIvk",4688],[5,"IncomingViewingKey",4721],[5,"IncomingViewingKey",4717],[5,"SpendingKey",4717],[5,"Ufvk",4731],[5,"AccountPrivKey",4688],[5,"ChildIndex",4680],[5,"Diversifier",4720],[5,"ExpandedSpendingKey",4720],[6,"DecodingError",4720],[5,"FullViewingKey",4720],[10,"Read",4732],[5,"SaplingIvk",4720],[5,"NullifierDerivingKey",4720],[10,"Write",4732],[5,"ShieldedInputs",2722],[5,"Step",2722],[6,"StepOutputIndex",2722],[5,"StepOutput",2722],[5,"BTreeMap",4733],[15,"BalanceError",2889],[6,"ProposalDecodingError",2891],[6,"Zip321Error",4551,4718],[5,"CompactSaplingOutput",2935],[5,"CompactOrchardAction",2935],[5,"ChainMetadata",2935],[5,"CompactSaplingSpend",2935],[5,"ExtractedNoteCommitment",4734],[5,"ExtractedNoteCommitment",4735],[5,"EphemeralKeyBytes",4736],[5,"SpendDescription",4737],[10,"Authorization",4737],[5,"OutputDescription",4737],[5,"Action",4738],[5,"BlockHeader",4681],[5,"ProposalStep",3117],[6,"ValuePool",3117],[6,"FeeRule",3117],[5,"PriorStepChange",3117],[5,"Proposal",3117],[5,"PaymentOutputPool",3117],[5,"ReceivedOutput",3117],[5,"PriorStepOutput",3117],[5,"ProposedInput",3117],[5,"TransactionBalance",3117],[5,"ChangeValue",3117],[5,"MemoBytes",3117],[1,"i32"],[5,"TryFromSliceError",4739],[5,"UnknownEnumValue",4740],[6,"Value",3469],[10,"BufMut",4741],[6,"WireType",4742],[5,"DecodeContext",4743],[5,"DecodeError",4740],[10,"Buf",4744],[5,"TransparentAddressBlockFilter",3496],[5,"Address",3496],[5,"GetAddressUtxosReply",3496],[5,"GetAddressUtxosReplyList",3496],[5,"AddressList",3496],[5,"GetAddressUtxosArg",3496],[6,"ShieldedProtocol",3496],[5,"TxFilter",3496],[5,"LightdInfo",3496],[5,"BlockId",3496],[5,"BlockRange",3496],[5,"RawTransaction",3496],[5,"SendResponse",3496],[5,"ChainSpec",3496],[5,"Empty",3496],[5,"Duration",3496],[5,"PingResponse",3496],[5,"Balance",3496],[5,"Exclude",3496],[5,"GetSubtreeRootsArg",3496],[5,"SubtreeRoot",3496],[1,"i64"],[5,"CommitmentTree",4697],[8,"Result",4687,null,1],[5,"CompactTxStreamerClient",4095],[6,"CompressionEncoding",4745],[5,"Body",4746],[10,"GrpcService",4747],[5,"Response",4748],[5,"Status",4749],[10,"IntoRequest",4658],[5,"Streaming",4750],[17,"Message"],[10,"IntoStreamingRequest",4658],[5,"InterceptedService",4751],[5,"Request",4752],[17,"Response"],[5,"Response",4753],[10,"Service",4754],[10,"Interceptor",4751],[5,"Uri",4755],[10,"ScanningKeyOps",4141],[5,"ScanningKey",4141],[5,"ScanningKeys",4141],[5,"Nullifiers",4141],[5,"PreparedIncomingViewingKey",4717],[5,"PreparedIncomingViewingKey",4720],[15,"EncodingInvalid",4239],[15,"PrevHashMismatch",4239],[15,"TreeSizeMismatch",4239],[15,"TreeSizeUnknown",4239],[15,"TreeSizeInvalid",4239],[15,"BlockHeightDiscontinuity",4239],[8,"PrunableTree",4756],[10,"HashSer",4757],[6,"Error",4258],[5,"WalletSpend",4285],[5,"WalletOutput",4285],[5,"TxOut",4695],[8,"WalletSaplingSpend",4285],[8,"WalletSaplingOutput",4285],[8,"WalletOrchardOutput",4285],[8,"WalletOrchardSpend",4285],[15,"Custom",4541],[15,"EphemeralTransparent",4543],[15,"InternalAccount",4543],[15,"External",4543],[5,"Payment",4551,4718],[8,"ShieldedProtocol",0],[8,"PoolType",0],[5,"OrchardPoolTester",1598],[10,"ShieldedPoolTester",1629],[5,"SaplingPoolTester",1683]],"r":[[0,4650],[1,4650],[3,4650],[8,4650],[10,4650],[11,4650],[13,4650],[14,4650],[15,4650],[16,4650],[17,4650],[18,4650],[19,4650],[21,4650],[22,4650],[23,4650],[24,4650],[25,4650],[26,4650],[27,4650],[29,4650],[31,4650],[32,4650],[33,4650],[34,4650],[35,4650],[36,4650],[37,4650],[38,4650],[39,4650],[40,4650],[42,4650],[43,4650],[44,4650],[45,4650],[46,4650],[47,4650],[48,4650],[55,4650],[56,4650],[57,4650],[58,4650],[59,4650],[60,4650],[61,4650],[62,4650],[63,4650],[64,4650],[67,4666],[68,4666],[69,4666],[70,4666],[71,4666],[72,4666],[73,4666],[74,4666],[75,4666],[76,4666],[77,4666],[78,4666],[79,4666],[80,4666],[81,4666],[82,4666],[83,4666],[84,4666],[85,4666],[86,4666],[87,4666],[88,4666],[89,4666],[90,4666],[91,4666],[92,4666],[93,4666],[94,4666],[95,4666],[96,4666],[97,4666],[98,4666],[99,4666],[100,4666],[101,4666],[102,4666],[103,4666],[104,4666],[105,4666],[106,4666],[107,4666],[108,4666],[109,4666],[110,4666],[111,4666],[112,4666],[113,4666],[114,4666],[115,4666],[116,4666],[117,4666],[118,4666],[119,4666],[120,4666],[121,4666],[122,4666],[123,4666],[124,4666],[125,4666],[126,4666],[127,4666],[128,4666],[129,4666],[130,4666],[131,4666],[132,4666],[133,4666],[134,4666],[135,4666],[136,4666],[137,4666],[138,4666],[139,4666],[140,4666],[141,4666],[142,4666],[143,4666],[144,4666],[145,4666],[146,4666],[147,4666],[148,4666],[149,4666],[150,4666],[151,4666],[152,4666],[153,4666],[154,4666],[155,4666],[156,4666],[157,4666],[158,4666],[159,4666],[160,4666],[161,4758],[162,4758],[1955,4723],[1956,4723],[1957,4723],[1958,4723],[1959,4723],[1960,4723],[1961,4723],[1962,4723],[1963,4723],[1964,4723],[1965,4723],[1966,4723],[1967,4723],[1968,4723],[1969,4723],[1970,4723],[1971,4723],[1972,4723],[1973,4723],[1974,4723],[1975,4723],[1976,4723],[1977,4723],[1978,4723],[1979,4723],[1980,4723],[1981,4723],[1982,4723],[1983,4723],[1984,4723],[1985,4723],[1986,4723],[1987,4723],[1988,4723],[1989,4723],[1990,4723],[1991,4723],[1992,4723],[1993,4723],[1994,4723],[1995,4723],[1996,4723],[1997,4723],[1998,4723],[1999,4723],[2000,4723],[2001,4723],[2002,4723],[2003,4723],[2004,4723],[2005,4723],[2006,4723],[2007,4723],[2008,4723],[2009,4723],[2010,4723],[2011,4723],[2012,4723],[2013,4723],[2014,4723],[2015,4723],[2016,4723],[2017,4723],[2018,4723],[2348,4654],[2349,4654],[2350,4654],[2351,4654],[2352,4654],[2353,4654],[2354,4654],[2355,4654],[2356,4654],[2357,4654],[2358,4654],[2359,4654],[2360,4654],[2361,4654],[2362,4654],[2363,4654],[2364,4654],[2365,4654],[2366,4654],[2367,4654],[2368,4654],[2369,4654],[2370,4654],[2371,4654],[2372,4654],[2373,4654],[2374,4654],[2375,4654],[2376,4654],[2377,4654],[2378,4654],[2379,4654],[2380,4654],[2381,4654],[2382,4654],[2383,4654],[2384,4654],[2385,4654],[2386,4654],[2387,4654],[2388,4654],[2389,4654],[2390,4654],[2391,4654],[2392,4654],[2393,4654],[2394,4654],[2395,4654],[2396,4654],[2397,4654],[2398,4654],[2399,4654],[2400,4654],[2401,4654],[2402,4654],[2403,4654],[2404,4654],[2405,4654],[2406,4654],[2407,4654],[2408,4654],[2409,4654],[2410,4654],[2411,4654],[2412,4654],[2413,4654],[2414,4654],[2415,4654],[2416,4654],[2417,4654],[2418,4654],[2419,4654],[2420,4654],[2421,4654],[2422,4654],[2423,4654],[2424,4654],[2425,4654],[2426,4654],[2427,4654],[2428,4654],[2429,4654],[2430,4654],[2431,4654],[2432,4654],[2433,4654],[2434,4654],[2435,4654],[2436,4654],[2437,4654],[2438,4654],[2439,4654],[2440,4654],[2441,4654],[2442,4654],[2443,4654],[2444,4654],[2445,4654],[2446,4654],[2447,4654],[2448,4654],[2449,4654],[2450,4654],[2451,4654],[2452,4654],[2453,4654],[2454,4654],[2455,4654],[2456,4654],[2457,4654],[2458,4654],[2459,4654],[2460,4654],[2461,4654],[2462,4654],[2463,4654],[2464,4654],[2465,4654],[2466,4654],[2467,4654],[2468,4654],[2469,4654],[2470,4654],[2471,4654],[2472,4654],[2473,4654],[2474,4654],[2475,4654],[2476,4654],[2477,4654],[2478,4654],[2479,4654],[2480,4654],[2481,4654],[2482,4654],[2483,4654],[2484,4654],[2485,4654],[2486,4654],[2487,4654],[2488,4654],[2489,4654],[2490,4654],[2491,4654],[2492,4654],[2493,4654],[2494,4654],[2495,4654],[2496,4654],[2497,4654],[2498,4654],[2499,4654],[2500,4654],[2501,4654],[2502,4654],[2503,4654],[2504,4654],[2505,4654],[2506,4654],[2507,4654],[2508,4654],[2509,4654],[2510,4654],[2511,4654],[2512,4654],[2513,4654],[2514,4654],[2515,4654],[2516,4654],[2517,4654],[2518,4654],[2519,4654],[2520,4654],[2521,4654],[2522,4654],[2523,4654],[2524,4654],[2525,4654],[2526,4654],[2527,4654],[2528,4654],[2529,4654],[2530,4654],[2531,4654],[2532,4654],[2533,4654],[2534,4654],[2535,4654],[2536,4654],[2537,4654],[2538,4654],[2539,4654],[2540,4654],[2541,4654],[2542,4654],[2543,4654],[2544,4654],[2545,4654],[2546,4654],[2547,4654],[2548,4654],[2549,4654],[2550,4654],[2551,4654],[2552,4654],[2553,4654],[2554,4654],[2555,4654],[2556,4654],[2557,4654],[2558,4654],[2559,4654],[2560,4654],[2561,4654],[2562,4654],[2563,4654],[2564,4654],[2565,4654],[2566,4654],[2567,4654],[2568,4654],[2569,4654],[2570,4654],[2571,4654],[2572,4654],[2573,4654],[2574,4654],[2575,4654],[2576,4654],[2577,4654],[2578,4654],[2579,4654],[2580,4654],[2581,4654],[2582,4654],[2583,4654],[2584,4654],[2585,4654],[2586,4654],[2587,4654],[2588,4654],[2589,4654],[2590,4654],[2591,4654],[2592,4654],[2593,4654],[2594,4654],[2595,4654],[2596,4654],[2597,4654],[2598,4654],[2599,4654],[2600,4654],[2601,4654],[2602,4654],[2603,4654],[2604,4654],[2605,4654],[2606,4654],[2607,4654],[2608,4654],[2609,4654],[2610,4654],[2611,4654],[2612,4654],[2613,4654],[2614,4654],[2615,4654],[2616,4721],[2617,4721],[2618,4721],[2619,4721],[2620,4721],[2621,4721],[2622,4721],[2623,4721],[2624,4721],[2625,4721],[2626,4721],[2627,4721],[2628,4721],[2629,4721],[2630,4721],[2631,4721],[2632,4721],[2633,4721],[2634,4721],[2635,4721],[2636,4721],[2637,4721],[2638,4721],[2639,4721],[2640,4721],[2641,4721],[2642,4721],[2643,4721],[2644,4721],[2645,4721],[2646,4721],[2647,4721],[2648,4721],[2649,4721],[2650,4721],[2651,4721],[2652,4721],[2653,4721],[2654,4721],[2655,4721],[2656,4721],[2657,4721],[2658,4721],[2659,4721],[2660,4721],[2661,4721],[2662,4721],[2663,4721],[2664,4721],[2665,4721],[2666,4721],[2667,4721],[2668,4721],[2669,4721],[2670,4721],[2671,4721],[2672,4721],[2673,4721],[2674,4721],[2675,4721],[2676,4721],[2677,4721],[2678,4721],[2679,4721],[2680,4721],[2681,4721],[2682,4721],[2683,4721],[2684,4721],[2685,4721],[2686,4721],[2687,4721],[2688,4721],[2689,4721],[2690,4721],[2691,4721],[2692,4721],[2693,4759],[2694,4721],[2695,4721],[2696,4721],[2697,4721],[2698,4721],[2699,4721],[2700,4721],[2701,4721],[2702,4721],[2703,4721],[2704,4721],[2705,4721],[2706,4721],[2707,4721],[2708,4721],[2709,4721],[2710,4721],[2711,4721],[2712,4721],[2713,4721],[2714,4721],[2715,4721],[2716,4721],[2717,4721],[2718,4721],[2719,4721],[2720,4721],[2721,4760],[4551,4718],[4552,4718],[4553,4718],[4554,4718],[4555,4718],[4556,4718],[4557,4718],[4558,4718],[4559,4718],[4560,4718],[4561,4718],[4562,4718],[4563,4718],[4564,4718],[4565,4718],[4566,4718],[4567,4718],[4568,4718],[4569,4718],[4570,4718],[4571,4718],[4572,4718],[4573,4718],[4574,4718],[4575,4718],[4576,4718],[4577,4718],[4578,4718],[4579,4718],[4580,4718],[4581,4718],[4582,4718],[4583,4718],[4584,4718],[4585,4718],[4586,4718],[4587,4718],[4588,4718],[4589,4718],[4590,4718],[4591,4718],[4592,4718],[4593,4718],[4594,4718],[4595,4718],[4596,4718],[4597,4718],[4598,4718],[4599,4718],[4600,4718],[4601,4718],[4602,4718],[4603,4718],[4604,4718],[4605,4718],[4606,4718],[4607,4718],[4608,4718],[4609,4718],[4610,4718],[4611,4718],[4612,4718],[4613,4718],[4614,4718],[4615,4718],[4616,4718],[4617,4718],[4618,4718],[4619,4718],[4620,4718],[4621,4718],[4622,4718],[4623,4718],[4624,4718],[4625,4718],[4626,4718],[4627,4718],[4628,4718],[4629,4718],[4630,4718],[4631,4718],[4632,4718],[4633,4718],[4634,4718],[4635,4718],[4636,4718],[4637,4718],[4638,4718],[4639,4718],[4640,4718],[4641,4718],[4642,4718],[4643,4761],[4644,4761],[4645,4761],[4646,4761],[4647,4761],[4648,4761],[4649,4761]],"b":[[47,"impl-DecryptedOutput%3CNote,+A%3E"],[48,"impl-DecryptedOutput%3CNote,+A%3E"],[102,"impl-UnifiedAddress"],[103,"impl-AddressCodec%3CP%3E-for-UnifiedAddress"],[111,"impl-From%3CPaymentAddress%3E-for-Address"],[113,"impl-From%3CUnifiedAddress%3E-for-Address"],[114,"impl-From%3CTransparentAddress%3E-for-Address"],[537,"impl-From%3CTryFromIntError%3E-for-BirthdayError"],[538,"impl-From%3CError%3E-for-BirthdayError"],[1086,"impl-Debug-for-Error%3CWalletError,+BlockSourceError%3E"],[1087,"impl-Display-for-Error%3CWE,+BE%3E"],[1143,"impl-Display-for-Error%3CDE,+TE,+SE,+FE,+CE,+N%3E"],[1144,"impl-Debug-for-Error%3CDataSourceError,+CommitmentTreeError,+SelectionError,+FeeError,+ChangeErrT,+NoteRefT%3E"],[1145,"impl-From%3CInputSelectorError%3CDE,+SE,+CE,+N%3E%3E-for-Error%3CDE,+TE,+SE,+FE,+CE,+N%3E"],[1146,"impl-From%3CError%3E-for-Error%3CDE,+TE,+SE,+FE,+CE,+N%3E"],[1147,"impl-From%3CError%3CFE%3E%3E-for-Error%3CDE,+TE,+SE,+FE,+CE,+N%3E"],[1149,"impl-From%3CBalanceError%3E-for-Error%3CDE,+TE,+SE,+FE,+CE,+N%3E"],[1150,"impl-From%3CConversionError%3C%26str%3E%3E-for-Error%3CDE,+TE,+SE,+FE,+CE,+N%3E"],[1151,"impl-From%3CShardTreeError%3CTE%3E%3E-for-Error%3CDE,+TE,+SE,+FE,+CE,+N%3E"],[1152,"impl-From%3CProposalError%3E-for-Error%3CDE,+TE,+SE,+FE,+CE,+N%3E"],[1153,"impl-From%3CError%3E-for-Error%3CDE,+TE,+SE,+FE,+CE,+N%3E"],[1196,"impl-Display-for-ScanRange"],[1197,"impl-Debug-for-ScanRange"],[1909,"impl-Display-for-InputSelectorError%3CDE,+SE,+CE,+N%3E"],[1910,"impl-Debug-for-InputSelectorError%3CDbErrT,+SelectorErrT,+ChangeErrT,+N%3E"],[1911,"impl-Display-for-GreedyInputSelectorError"],[1912,"impl-Debug-for-GreedyInputSelectorError"],[1914,"impl-From%3CGreedyInputSelectorError%3E-for-InputSelectorError%3CDbErrT,+GreedyInputSelectorError,+ChangeErrT,+N%3E"],[1915,"impl-From%3CBalanceError%3E-for-InputSelectorError%3CDbErrT,+GreedyInputSelectorError,+ChangeErrT,+N%3E"],[1916,"impl-From%3CChangeError%3CC,+N%3E%3E-for-InputSelectorError%3CE,+S,+C,+N%3E"],[1917,"impl-From%3CConversionError%3C%26str%3E%3E-for-InputSelectorError%3CE,+S,+F,+N%3E"],[1992,"impl-Debug-for-Bech32DecodeError"],[1993,"impl-Display-for-Bech32DecodeError"],[1994,"impl-Display-for-TransparentCodecError"],[1995,"impl-Debug-for-TransparentCodecError"],[1996,"impl-From%3CDecodeError%3E-for-Bech32DecodeError"],[1998,"impl-From%3CCheckedHrpstringError%3E-for-Bech32DecodeError"],[2130,"impl-Debug-for-ChangeError%3CE,+NoteRefT%3E"],[2131,"impl-Display-for-ChangeError%3CCE,+N%3E"],[2469,"impl-Debug-for-DerivationError"],[2470,"impl-Display-for-DerivationError"],[2472,"impl-Display-for-DecodingError"],[2473,"impl-Debug-for-DecodingError"],[2475,"impl-Display-for-AddressGenerationError"],[2476,"impl-Debug-for-AddressGenerationError"],[2668,"impl-From%3CExtendedFullViewingKey%3E-for-DiversifiableFullViewingKey"],[2670,"impl-From%3C%26ExtendedFullViewingKey%3E-for-DiversifiableFullViewingKey"],[2801,"impl-Debug-for-ProposalError"],[2802,"impl-Display-for-ProposalError"],[2918,"impl-Debug-for-ProposalDecodingError%3CDbError%3E"],[2919,"impl-Display-for-ProposalDecodingError%3CE%3E"],[3309,"impl-From%3CPoolType%3E-for-ValuePool"],[3310,"impl-From%3CShieldedProtocol%3E-for-ValuePool"],[4153,"impl-ScanningKeyOps%3COrchardDomain,+AccountId,+Nullifier%3E-for-ScanningKey%3CIncomingViewingKey,+FullViewingKey,+AccountId%3E"],[4154,"impl-ScanningKeyOps%3CSaplingDomain,+AccountId,+Nullifier%3E-for-ScanningKey%3CSaplingIvk,+NullifierDerivingKey,+AccountId%3E"],[4181,"impl-Debug-for-ScanError"],[4182,"impl-Display-for-ScanError"],[4202,"impl-ScanningKeyOps%3CSaplingDomain,+AccountId,+Nullifier%3E-for-ScanningKey%3CSaplingIvk,+NullifierDerivingKey,+AccountId%3E"],[4203,"impl-ScanningKeyOps%3COrchardDomain,+AccountId,+Nullifier%3E-for-ScanningKey%3CIncomingViewingKey,+FullViewingKey,+AccountId%3E"],[4210,"impl-ScanningKeyOps%3CSaplingDomain,+AccountId,+Nullifier%3E-for-ScanningKey%3CSaplingIvk,+NullifierDerivingKey,+AccountId%3E"],[4211,"impl-ScanningKeyOps%3COrchardDomain,+AccountId,+Nullifier%3E-for-ScanningKey%3CIncomingViewingKey,+FullViewingKey,+AccountId%3E"],[4215,"impl-ScanningKeyOps%3COrchardDomain,+AccountId,+Nullifier%3E-for-ScanningKey%3CIncomingViewingKey,+FullViewingKey,+AccountId%3E"],[4216,"impl-ScanningKeyOps%3CSaplingDomain,+AccountId,+Nullifier%3E-for-ScanningKey%3CSaplingIvk,+NullifierDerivingKey,+AccountId%3E"],[4270,"impl-Debug-for-Error%3CCaErr,+DbErr,+TrErr%3E"],[4271,"impl-Display-for-Error%3CCaErr,+DbErr,+TrErr%3E"],[4273,"impl-From%3CStatus%3E-for-Error%3CCaErr,+DbErr,+TrErr%3E"],[4274,"impl-From%3CError%3CDbErr,+CaErr%3E%3E-for-Error%3CCaErr,+DbErr,+TrErr%3E"],[4467,"impl-InputView%3CNoteRef%3E-for-ReceivedNote%3CNoteRef,+Note%3E"],[4468,"impl-InputView%3CNoteRef%3E-for-ReceivedNote%3CNoteRef,+Note%3E"],[4469,"impl-ReceivedNote%3CNoteRef,+Note%3E"],[4470,"impl-ReceivedNote%3CNoteRef,+Note%3E"],[4473,"impl-InputView-for-WalletTransparentOutput"],[4474,"impl-WalletTransparentOutput"],[4529,"impl-InputView%3CNoteRef%3E-for-ReceivedNote%3CNoteRef,+Note%3E"],[4530,"impl-InputView%3CNoteRef%3E-for-ReceivedNote%3CNoteRef,+Note%3E"],[4590,"impl-Display-for-Zip321Error"],[4591,"impl-Debug-for-Zip321Error"]],"c":"OjAAAAEAAAAAAAoAEAAAAAUACAANAB0AKgBDAKcDiwryDPMMDQ8=","e":"OzAAAAEAAHQMTQEFAAAACAAAAA0ABwAXAAkAJAABACgAAgAsAAIAMAABADQAAAA2AAAAOAAAADoABwBDAAAARQAAAEcAAABKAAAATgAFAFUABQBcAAAAXgAIAGgAAABqAAMAcAAAAHIAAQB4AAIAfgAFAIcAAgCOAAgAmAAFAJ8ABACoAAAArwAAALgAAAC+AAAAwwAAAOgAAAAIATsASQE/AI4BOwDLAR0A6gENAPwBEwAaAgEAQAIAAFoCBQBlAh0AogIdAMgCHQACAwMALAMTAEkDOwCHAx0AsgMdANYDBwDoAwAA7AMLAPkDCAAGBAIADgQCABUEBQAlBAIAKQQLADoEBgBCBAEARQQNAFQEAABWBAYAcwQJAH4EBQCFBAkAmQQVALIEAQC2BAEAugQCAL4EAADABAIAxQQTANoEAQDdBA4A7QQBAPEEAAD1BAEA+gQAAA4FAgASBRMAKAUAACoFDAA4BR8AWwUBAHAFDQCABQAAggUBAIUFAwCKBQIAjgUAAJEFDACpBQkAtQUAALgFCgDEBQAAywUAAM8FAQDWBQAA2QUAAN0FAADhBQAA5gUAAOgFAQDsBQAA7gUBAPIFAgD5BQMA/wUBAAMGAAAFBhMAGwYMACkGCwA7BgAAPQYBAEAGBwBJBgIATQYUAGMGIQCGBg0AlQYHAJ4GAgCiBh0AwQYCAMUGBQDMBgMARQcJAGIHFwB7BwMAgQcCAIcHBQCPBwAAkQcSAKUHDwC7BwUAyAcFAM8HAADRBwEA1QcQAPEHAgD2BwAA/AcAAP4HKAAoCBgAQggBAEUIBwBQCAgAYQgIAHIIBwB7CAIAgAgHAJIIAACWCAgAoAgXALkIBwDOCAEA0QgDANYIAADYCAAA2ggBAN4IAwDkCAAA6wgBAO4IAwDzCAAA9QgAAPcIAQD7CAMAAQkAAAcJDwAaCQEAHgkBACEJAQAlCQcAMAkAADIJAAA0CQAANwkCAD4JAQBBCQAAQwkAAEkJAQBRCSkAfQkAAIAJHgChCQIApgkNAL8JAQDECQkA2gkTAPgJAAD9CQAA/wkGAAcKAwAPCh4ALwoJADoKAAA8CgIAQQoFAEgKCABVCgUAYAoFAGgKAgBtCgAAbwoAAHQKAwB7CgcAhAoBAIkKAgCRCg4AoQoBAKYKAACqCgAAugo2APIKBQAACwcADgsFABgLBQAhCwEAKQsGADILGQBeCwsAawsAAG0LCgB+CwwAjgsXAKoLHQDMCwUA0wsFANwLAADeCwAA4QsAAOoLBQD2CwwABwwAAAwMAAAODBEAIQwFACgMBQA/DAAARgyOANgMCwDuDAEA9wwOABMNCwAlDRAANw0BAEANAQBDDQsAUA0ZAGsNDgB7DQAAfw0BAIINFwCcDQEAnw0AAKENAACjDQgAsQ0AALMNAgC3DQAAug0AALwNAQDCDQQAyg0uAPoNVwBXDkEAmg5EAOAOFgAPDwIAFA8AABcPAAAZDxcARw8VAGAPFQB5DwAAfw8AAIMPAQCJD3QAABAAAAIQCAAMEAEAExAAABgQAQAdEAAAHxAAACIQAQAnEAYAOhABAD0QFgBWEAEAXRADAGUQAwBrEAUAcxABAHgQAQB9ECEAqhAGALIQAgC2EAEAuRAEAMAQAgDFEAAAyRAAANIQAADWEAAA2BAqAAQRHQAjEQsAOxEBAD8RCgBUEQkAYBEKAHERAABzEQQAehEBAH0RAQCBEQAAhREcAKQRIwDTERcA7BEGAPQRAAD5EQIA/xECAAcSAgAPEgUAFxILACQSBgA=","P":[[11,"Note,AccountId"],[13,"T"],[17,""],[18,"T"],[19,""],[21,"P,AccountId"],[22,"T"],[26,""],[32,"T"],[34,"Note,AccountId"],[35,""],[37,"U"],[39,"T"],[42,"Note,AccountId"],[43,"S"],[45,"Note,AccountId"],[47,"A"],[55,"T"],[56,"Note,AccountId"],[57,"U,T"],[59,"U"],[61,""],[63,"V"],[77,"T"],[83,""],[86,"T"],[88,""],[91,"P"],[93,"T"],[99,""],[102,"P"],[105,""],[109,"T"],[111,""],[112,"T"],[113,""],[122,"U"],[125,"T"],[128,"S"],[131,""],[135,"T"],[137,""],[139,"P"],[140,""],[141,"U,T"],[142,""],[143,"U,T"],[145,""],[150,"P"],[151,"U"],[154,""],[158,"V"],[161,""],[243,"AccountId"],[245,""],[256,"WalletRead::Error,WalletRead::AccountId,WalletRead::Account"],[257,"A"],[258,""],[260,"WalletRead::Error,WalletRead::AccountId,WalletRead::Account"],[262,"A"],[263,"T"],[324,"WalletRead::Error,WalletRead::AccountId,WalletRead::Account"],[325,"AccountId"],[326,""],[333,"T"],[334,""],[335,"AccountId"],[336,""],[345,"A"],[346,""],[348,"T"],[368,""],[393,"NoteCommitment,NF"],[394,"WalletWrite::UtxoRef,WalletRead::AccountId,WalletRead::Error"],[395,"AccountId"],[396,"T"],[457,""],[488,"NoteRef"],[489,""],[494,"T"],[495,""],[496,"AccountId"],[497,""],[502,"A"],[504,"AccountId"],[505,"NoteCommitment,NF"],[506,"WalletRead::Error,WalletRead::AccountId,WalletRead::Account"],[507,""],[512,"T"],[513,""],[514,"AccountId"],[515,""],[524,"A"],[525,""],[527,"T"],[537,""],[539,"T"],[559,"P"],[560,""],[561,"AccountId"],[562,""],[565,"P"],[566,""],[567,"AccountId"],[568,"WalletRead::Error,WalletRead::AccountId,WalletRead::Account"],[572,"InputSource::Error,InputSource::AccountId,InputSource::NoteRef"],[573,"WalletWrite::UtxoRef,WalletRead::AccountId,WalletRead::Error"],[574,"WalletRead::Error,WalletRead::AccountId,WalletRead::Account"],[575,"WalletRead::Error"],[576,"WalletRead::Error,WalletRead::AccountId,WalletRead::Account"],[581,"WalletWrite::UtxoRef,WalletRead::AccountId,WalletRead::Error"],[582,"InputSource::NoteRef,InputSource::Error"],[583,"WalletRead::Error,WalletRead::AccountId,WalletRead::Account"],[585,"WalletRead::Error"],[587,"InputSource::Error,InputSource::AccountId,InputSource::NoteRef"],[589,"WalletRead::Error,WalletRead::AccountId,WalletRead::Account"],[593,"InputSource::Error"],[594,"WalletRead::Error,WalletRead::AccountId,WalletRead::Account"],[596,"WalletRead::AccountId,WalletRead::Error"],[597,"WalletRead::Error,WalletRead::AccountId,WalletRead::Account"],[598,"InputSource::Error,InputSource::AccountId,InputSource::NoteRef"],[599,"WalletRead::Error,WalletRead::AccountId,WalletRead::Account"],[601,"__H"],[607,"A"],[608,""],[609,"Account::AccountId"],[610,"WalletWrite::UtxoRef,WalletRead::Account,WalletRead::Error"],[612,""],[642,"U"],[672,"A"],[673,"T"],[703,"NoteRef"],[704,"AccountId"],[705,""],[707,"WalletRead::Error,WalletRead::AccountId,WalletRead::Account"],[708,"AccountId"],[710,"Account::AccountId"],[711,"S"],[741,"NoteRef"],[742,"AccountId"],[744,""],[745,"T"],[746,""],[747,"AccountId"],[748,""],[752,"AccountId"],[754,""],[756,"NoteCommitment,NF"],[757,"T"],[758,"NoteRef"],[759,"A"],[760,""],[764,"AccountId"],[765,""],[766,"NoteRef"],[767,"AccountId"],[769,""],[773,"AccountId"],[774,"Account::AccountId"],[775,"WalletWrite::UtxoRef,WalletRead::AccountId,WalletRead::Error"],[776,"WalletCommitmentTrees::Error,WalletCommitmentTrees::SaplingShardStore,WalletCommitmentTrees::OrchardShardStore"],[777,"WalletWrite::UtxoRef,WalletRead::Error"],[778,"WalletCommitmentTrees::Error,WalletCommitmentTrees::SaplingShardStore,WalletCommitmentTrees::OrchardShardStore"],[779,"AccountId"],[780,""],[782,"WalletWrite::UtxoRef,WalletRead::AccountId,WalletRead::Error"],[783,"NoteRef"],[784,"A"],[785,""],[789,"AccountId"],[790,""],[791,"NoteRef"],[792,""],[795,"WalletRead::Error,WalletRead::AccountId,WalletRead::Account"],[796,"InputSource::Error,InputSource::AccountId,InputSource::NoteRef"],[797,"WalletWrite::UtxoRef,WalletRead::Error"],[798,"NoteRef"],[800,"Account::AccountId"],[801,""],[803,"WalletWrite::UtxoRef,WalletRead::AccountId,WalletRead::Error"],[805,"WalletRead::Error,WalletRead::AccountId,WalletRead::Account"],[806,"NoteRef"],[808,"AccountId"],[810,"A"],[811,"T"],[831,""],[834,"NoteRef"],[835,""],[836,"WalletRead::Error,WalletRead::AccountId,WalletRead::Account"],[837,"A"],[838,""],[839,"WalletWrite::UtxoRef,WalletRead::Error"],[840,"U,T"],[870,"U"],[900,"AccountId"],[902,""],[932,"Account::AccountId"],[934,""],[936,"WalletWrite::UtxoRef,WalletRead::Error"],[937,"WalletRead::Error,WalletRead::AccountId,WalletRead::Account"],[938,"AccountId"],[939,"WalletRead::Error,WalletRead::AccountId,WalletRead::Account"],[940,"AccountId"],[941,""],[945,"V"],[976,"A,E"],[977,"WalletCommitmentTrees::Error,WalletCommitmentTrees::SaplingShardStore,WalletCommitmentTrees::OrchardShardStore,A,E,F"],[978,"A,E"],[979,"WalletCommitmentTrees::Error,WalletCommitmentTrees::SaplingShardStore,WalletCommitmentTrees::OrchardShardStore,A,E,F"],[980,"A,E"],[981,""],[1003,"T"],[1009,""],[1011,"T"],[1013,""],[1016,"T"],[1022,""],[1029,"H"],[1030,""],[1032,"T"],[1035,"H"],[1036,"BlockSource::Error"],[1037,""],[1041,"U"],[1044,"T"],[1047,"S"],[1050,""],[1054,"H"],[1055,"ParamsT,BlockSourceT,DbT"],[1056,""],[1059,"H"],[1061,"T"],[1063,""],[1064,"U,T"],[1067,"U"],[1070,""],[1073,"V"],[1076,"BlockSource::Error,WalletErrT,F"],[1081,"T"],[1085,""],[1086,"WalletError,BlockSourceError"],[1087,"WE,BE"],[1088,"T"],[1089,"WE,BSE"],[1090,""],[1091,"U"],[1092,"T"],[1093,"S"],[1094,"WE,BE"],[1095,""],[1096,"U,T"],[1097,"U"],[1098,""],[1099,"V"],[1101,"T"],[1105,""],[1106,"T"],[1107,""],[1108,"U"],[1109,"T"],[1110,"S"],[1111,"U,T"],[1112,"U"],[1113,""],[1114,"V"],[1115,"DbErrT,F"],[1138,"T"],[1142,""],[1143,"DE,TE,SE,FE,CE,N"],[1144,"DataSourceError,CommitmentTreeError,SelectionError,FeeError,ChangeErrT,NoteRefT"],[1145,"DE,SE,CE,N,TE,FE"],[1146,"DE,TE,SE,FE,CE,N"],[1147,"FE,DE,TE,SE,CE,N"],[1148,"T"],[1149,"DE,TE,SE,FE,CE,N"],[1151,"TE,DE,SE,FE,CE,N"],[1152,"DE,TE,SE,FE,CE,N"],[1154,""],[1155,"U"],[1156,"T"],[1157,"S"],[1158,"DE,TE,SE,FE,CE,N"],[1159,""],[1160,"U,T"],[1161,"U"],[1162,""],[1163,"V"],[1164,""],[1176,"T"],[1180,""],[1182,"T"],[1184,""],[1187,"T"],[1191,""],[1198,"T"],[1200,""],[1203,"U"],[1205,"T"],[1207,""],[1209,"S"],[1211,""],[1215,"T"],[1217,""],[1220,"U,T"],[1222,"U"],[1224,""],[1226,"V"],[1231,"T"],[1233,""],[1234,"T"],[1235,""],[1236,"T"],[1238,""],[1240,"T"],[1241,""],[1243,"U"],[1244,"T"],[1245,""],[1246,"S"],[1248,"T"],[1249,"U,T"],[1250,"U"],[1251,""],[1252,"V"],[1253,""],[1285,"A"],[1286,"AccountId"],[1288,"TestFvk::Nullifier,P,R"],[1290,"TestFvk::Nullifier,R"],[1291,""],[1292,"A"],[1293,"WalletRead::Error"],[1296,"TestCache::BsError,TestCache::BlockSource,TestCache::InsertResult"],[1297,"T"],[1317,"Cache,DsFactory"],[1318,"Cache,DataStore,Network"],[1319,"WalletRead::Error"],[1320,""],[1322,"A"],[1323,""],[1324,"Fvk"],[1325,"T"],[1329,""],[1333,"WalletRead::AccountId,WalletRead::Error"],[1334,"Cache,AccountIdT,ErrT,DbT,ParamsT,FeeRuleT,InputsErrT,ChangeErrT"],[1335,"Cache,AccountIdT,ErrT,DbT,ParamsT"],[1336,""],[1337,"T"],[1357,""],[1367,"AccountId"],[1370,"WalletRead::AccountId,WalletRead::Error"],[1371,""],[1372,"T"],[1382,""],[1383,"AccountId"],[1384,"Cache,DataStore,Network,Fvk"],[1385,"Cache,DataStore,Network"],[1386,"Cache,DataStore,Network,Fvk"],[1387,"Cache,DataStore,Network"],[1389,"Cache,DataStore,Network,Fvk"],[1391,"WalletRead::AccountId,WalletRead::Account,WalletRead::Error"],[1392,"WalletRead::AccountId,WalletRead::Error"],[1393,"WalletRead::Account,WalletRead::Error"],[1394,"WalletRead::AccountId,WalletRead::Error"],[1395,"InputSource::AccountId,InputSource::NoteRef,InputSource::Error"],[1396,"WalletRead::AccountId,WalletRead::Error"],[1397,"WalletRead::Error"],[1398,"WalletRead::Account,WalletRead::Error"],[1399,"WalletRead::AccountId,WalletRead::Error"],[1401,"WalletRead::Error"],[1403,"WalletRead::AccountId,WalletRead::Error"],[1405,"Cache,AccountIdT,ErrT,DbT,ParamsT"],[1407,"WalletRead::AccountId,WalletRead::Error"],[1408,"Cache,AccountIdT,ErrT,DbT,ParamsT"],[1409,"InputSource::NoteRef,InputSource::Error"],[1410,"WalletRead::Error"],[1411,"Cache,AccountIdT,ErrT,DbT,ParamsT"],[1412,"WalletRead::Error"],[1413,"WalletRead::AccountId,WalletRead::Error"],[1416,"Cache,AccountIdT,ErrT,DbT,ParamsT"],[1417,"WalletRead::Error"],[1418,"WalletRead::AccountId,WalletRead::Error"],[1419,"WalletRead::Error"],[1420,"Cache,AccountIdT,ErrT,DbT,ParamsT"],[1421,"WalletRead::AccountId,WalletRead::Error"],[1422,"AccountId"],[1423,""],[1424,"A,Account::AccountId"],[1425,"WalletRead::Account,WalletRead::Error"],[1427,""],[1437,"TestCache::BsError,TestCache::BlockSource,TestCache::InsertResult"],[1438,"U"],[1448,"T"],[1458,"AccountId"],[1459,"Cache,DataStore,Network"],[1460,"WalletRead::AccountId,WalletRead::Error"],[1461,"AccountId"],[1463,"A"],[1464,"S"],[1474,"Cache,DataStore,Network"],[1475,""],[1478,"Fvk"],[1479,"DataStoreFactory::Error,DataStoreFactory::AccountId,DataStoreFactory::Account,DataStoreFactory::DsError,DataStoreFactory::DataStore"],[1480,""],[1481,"Cache,DataStore,Network"],[1483,""],[1485,"TestFvk::Nullifier"],[1486,""],[1490,"Cache,AccountIdT,ErrT,DbT,ParamsT,InputsT,ChangeT"],[1491,"Cache,AccountIdT,ErrT,DbT,ParamsT,CommitmentTreeErrT"],[1492,"Cache,AccountIdT,ErrT,DbT,ParamsT,InputsT,ChangeT"],[1493,"WalletRead::AccountId,WalletRead::Error"],[1494,"WalletCommitmentTrees::Error"],[1495,"WalletWrite::UtxoRef,WalletRead::Error"],[1496,"WalletCommitmentTrees::Error"],[1497,"Cache,DbT,ParamsT"],[1498,"R,Fvk"],[1499,"AccountId"],[1500,"WalletRead::AccountId,WalletRead::Error"],[1501,"C,Reset::Handle"],[1502,"Cache,DbT"],[1503,"Cache,DataStore,Network"],[1505,""],[1506,"Cache,DataStore,Network"],[1507,""],[1508,"TestFvk::Nullifier"],[1509,""],[1510,"Cache,DbT,ParamsT"],[1511,"WalletRead::AccountId,WalletRead::Error"],[1512,"InputSource::AccountId,InputSource::NoteRef,InputSource::Error"],[1513,"AccountId"],[1514,"Cache,DsFactory"],[1515,"WalletRead::Error"],[1516,"Cache,AccountIdT,ErrT,DbT,ParamsT,InputsT,ChangeT"],[1517,"DbT"],[1518,"A"],[1519,"Cache,AccountIdT,ErrT,DbT,ParamsT,InputsT,ChangeT"],[1520,"AccountId"],[1521,"WalletRead::AccountId,WalletRead::Error"],[1523,"WalletRead::Error"],[1524,"Cache,DataStore,Network"],[1528,"T"],[1532,"AccountId"],[1534,"WalletRead::Error"],[1536,"TestCache::BsError,TestCache::BlockSource,TestCache::InsertResult"],[1537,"Cache,DataStore,Network"],[1538,"WalletRead::Error"],[1539,"Cache,DataStore,Network"],[1540,"U,T"],[1550,"U"],[1560,"Cache,DbT,ParamsT"],[1561,"AccountId"],[1562,""],[1572,"A"],[1574,"WalletRead::Error"],[1575,"A"],[1576,"WalletRead::AccountId,WalletRead::Error"],[1578,"V"],[1588,"Cache,DataStore,Network"],[1590,"Cache,DsFactory"],[1592,"A,C"],[1593,"A,DsFactory"],[1594,"A,B"],[1595,"Cache,DsFactory"],[1596,"WalletCommitmentTrees::OrchardShardStore,A,WalletCommitmentTrees::Error,E,F"],[1597,"WalletCommitmentTrees::SaplingShardStore,A,E,F"],[1599,"T"],[1601,"A"],[1602,"T"],[1604,""],[1605,"ShieldedPoolTester::MerkleTreeHash"],[1607,"T"],[1608,"ShieldedPoolTester::Fvk"],[1610,""],[1611,"U"],[1612,"T"],[1613,"S"],[1614,"A"],[1615,"Cache,DbT,P,ShieldedPoolTester::MerkleTreeHash"],[1616,""],[1617,"Cache,DbT,P,ShieldedPoolTester::Note"],[1618,"ShieldedPoolTester::Sk"],[1620,"ShieldedPoolTester::Sk,ShieldedPoolTester::Fvk"],[1621,"Cache,DbT,P,ShieldedPoolTester::Fvk"],[1622,"U,T"],[1623,"U"],[1624,"P,ShieldedPoolTester::Fvk"],[1625,""],[1626,"ShieldedPoolTester::Sk"],[1627,"V"],[1628,"A"],[1635,""],[1637,"DSF"],[1640,"A"],[1641,"ShieldedPoolTester::MerkleTreeHash"],[1643,"DSF"],[1644,""],[1646,"ShieldedPoolTester::Fvk"],[1648,""],[1649,"DSF,TC"],[1650,""],[1652,"A"],[1653,"DSF"],[1654,""],[1655,"DSF"],[1657,"Cache,DbT,P,ShieldedPoolTester::MerkleTreeHash"],[1658,""],[1659,"ShieldedPoolTester::Fvk"],[1660,""],[1661,"DSF,C"],[1662,""],[1663,"DSF"],[1666,"Cache,DbT,P,ShieldedPoolTester::Note"],[1667,"DSF"],[1668,""],[1670,"DSF"],[1671,"ShieldedPoolTester::Sk"],[1673,"ShieldedPoolTester::Sk,ShieldedPoolTester::Fvk"],[1674,""],[1677,"Cache,DbT,P,ShieldedPoolTester::Fvk"],[1678,"P,ShieldedPoolTester::Fvk"],[1679,"ShieldedPoolTester::Sk"],[1680,""],[1681,"A"],[1682,"DSF"],[1684,"T"],[1686,"A"],[1687,"T"],[1689,""],[1690,"ShieldedPoolTester::MerkleTreeHash"],[1692,"T"],[1693,"ShieldedPoolTester::Fvk"],[1695,""],[1696,"U"],[1697,"T"],[1698,"S"],[1699,"A"],[1700,"Cache,DbT,P,ShieldedPoolTester::MerkleTreeHash"],[1701,""],[1702,"Cache,DbT,P,ShieldedPoolTester::Note"],[1703,"ShieldedPoolTester::Sk"],[1705,"ShieldedPoolTester::Sk,ShieldedPoolTester::Fvk"],[1706,"Cache,DbT,P,ShieldedPoolTester::Fvk"],[1707,"U,T"],[1708,"U"],[1709,"P,ShieldedPoolTester::Fvk"],[1710,""],[1711,"ShieldedPoolTester::Sk"],[1712,"V"],[1713,"A"],[1715,"T"],[1717,""],[1718,"T"],[1719,""],[1720,"T"],[1722,""],[1727,"T"],[1728,"DSF"],[1729,""],[1731,"U"],[1732,"T"],[1733,"S"],[1734,""],[1735,"DSF"],[1736,"T"],[1737,"DSF"],[1739,"U,T"],[1740,"U"],[1741,""],[1742,"V"],[1853,"DbT,ParamsT,FeeRuleT,N,InputsErrT,ChangeErrT"],[1854,"ParamsT,DbT"],[1856,"DbT,ParamsT,InputsT,ChangeT,CommitmentTreeErrT"],[1857,"DbT,ParamsT,CommitmentTreeErrT"],[1858,"DbT,ParamsT,InputsT,ChangeT,CommitmentTreeErrT"],[1859,"DbT,ParamsT,InputsT,ChangeT"],[1860,""],[1889,"T"],[1895,""],[1896,"T"],[1897,""],[1898,"DbT"],[1899,"T"],[1905,""],[1909,"DE,SE,CE,N"],[1910,"DbErrT,SelectorErrT,ChangeErrT,N"],[1911,""],[1913,"T"],[1914,"DbErrT,ChangeErrT,N"],[1916,"C,N,E,S"],[1917,"E,S,F,N"],[1918,"T"],[1920,""],[1923,"U"],[1926,"T"],[1929,"S"],[1932,"DbT"],[1933,"ShieldingSelector::Error,ShieldingSelector::InputSource,ParamsT,ChangeT"],[1934,"DbT,ParamsT,ShieldingSelector::InputSource,ChangeT,ShieldingSelector::Error"],[1935,"InputSelector::Error,InputSelector::InputSource,ParamsT,ChangeT"],[1936,"DbT,ParamsT,InputSelector::InputSource,ChangeT,InputSelector::Error"],[1937,"DE,SE,CE,N"],[1938,"T"],[1939,""],[1941,"U,T"],[1944,"U"],[1947,""],[1950,"V"],[1953,""],[1965,"T"],[1969,""],[1970,"T"],[1971,""],[1972,"P,AddressCodec::Error"],[1973,""],[1978,"T"],[1982,""],[1984,"AddressCodec::Error,P"],[1985,""],[1988,"P"],[1989,""],[1990,"P"],[1991,""],[1997,"T"],[1998,""],[1999,"T"],[2000,""],[2002,"U"],[2004,"T"],[2006,"S"],[2008,"T"],[2009,""],[2011,"U,T"],[2013,"U"],[2015,""],[2017,"V"],[2019,""],[2045,"T"],[2061,""],[2064,"E,NoteRefT"],[2065,""],[2069,"T"],[2077,""],[2086,"ChangeStrategy::FeeRule,ChangeStrategy::Error,ChangeStrategy::MetaSource,ChangeStrategy::AccountMetaT,P,NoteRefT"],[2087,""],[2088,"T"],[2104,""],[2119,"E,NoteRefT"],[2120,""],[2123,"P,FeeRule::Error"],[2124,""],[2125,"ChangeStrategy::FeeRule,ChangeStrategy::Error,ChangeStrategy::MetaSource,ChangeStrategy::AccountMetaT"],[2127,""],[2130,"E,NoteRefT"],[2131,"CE,N"],[2132,""],[2136,"T"],[2144,""],[2153,"U"],[2161,"T"],[2169,""],[2175,"S"],[2183,""],[2193,"E,N"],[2194,""],[2197,"T"],[2205,""],[2207,"U,T"],[2215,"U"],[2223,""],[2232,"V"],[2240,""],[2253,"T"],[2255,"BundleView::In,NoteRef,BundleView::Out"],[2256,""],[2257,"T"],[2259,""],[2260,"T"],[2261,""],[2262,"BundleView::In,NoteRef,BundleView::Out"],[2263,"BundleView::In"],[2264,"U"],[2265,"T"],[2266,"S"],[2267,"NoteRef"],[2268,"BundleView::In,NoteRef,BundleView::Out"],[2269,"BundleView::Out"],[2270,"U,T"],[2271,"U"],[2272,""],[2275,"V"],[2282,"T"],[2284,"BundleView::In,NoteRef,BundleView::Out"],[2285,""],[2286,"T"],[2288,""],[2289,"T"],[2290,""],[2291,"BundleView::In,NoteRef,BundleView::Out"],[2292,"BundleView::In"],[2293,"U"],[2294,"T"],[2295,"S"],[2296,"NoteRef"],[2297,"BundleView::In,NoteRef,BundleView::Out"],[2298,"BundleView::Out"],[2299,"U,T"],[2300,"U"],[2301,""],[2304,"V"],[2310,"T"],[2314,"R,I,P,NoteRefT,ChangeStrategy::AccountMetaT,ChangeStrategy::Error"],[2316,"T"],[2320,""],[2322,"R,I,ChangeStrategy::FeeRule"],[2324,"R,I,ChangeStrategy::MetaSource,ChangeStrategy::AccountMetaT"],[2326,"T"],[2328,""],[2331,"U"],[2333,"T"],[2335,""],[2336,"S"],[2338,"R,I"],[2340,"U,T"],[2342,"U"],[2344,""],[2346,"V"],[2382,""],[2384,"T"],[2404,""],[2411,"T"],[2418,""],[2426,"P"],[2428,""],[2432,"T"],[2452,""],[2462,"P"],[2464,""],[2483,"T"],[2493,""],[2495,"P"],[2496,""],[2511,"U"],[2521,"T"],[2531,"S"],[2541,""],[2558,"T"],[2565,""],[2574,"U,T"],[2584,"U"],[2594,""],[2606,"V"],[2619,"P,TestFvk::Nullifier,R"],[2620,"P,R,TestFvk::Nullifier"],[2621,"TestFvk::Nullifier,R"],[2622,""],[2624,"T"],[2630,""],[2634,"T"],[2637,""],[2644,"T"],[2650,""],[2666,"T"],[2668,""],[2669,"T"],[2670,""],[2679,"U"],[2682,"T"],[2685,""],[2686,"S"],[2689,""],[2690,"R"],[2692,""],[2704,"T"],[2707,"U,T"],[2710,"U"],[2713,""],[2716,"V"],[2719,"W"],[2721,""],[2743,"NoteRef"],[2745,"T"],[2757,""],[2758,"NoteRef"],[2759,"FeeRuleT,NoteRef"],[2760,""],[2762,"NoteRef"],[2763,"T"],[2769,""],[2777,"T"],[2789,""],[2795,"NoteRef"],[2796,"FeeRuleT,NoteRef"],[2797,""],[2799,"NoteRef"],[2800,"FeeRuleT,NoteRef"],[2801,""],[2803,"FeeRuleT,NoteRef"],[2804,""],[2806,"NoteRef"],[2807,"T"],[2813,"NoteRef"],[2815,"__H"],[2817,""],[2823,"U"],[2829,"T"],[2835,"NoteRef"],[2837,"FeeRuleT,NoteRef"],[2839,"S"],[2845,""],[2846,"NoteRef"],[2847,""],[2850,"NoteRef"],[2853,"NoteRef,FeeRuleT"],[2854,""],[2855,"FeeRuleT,NoteRef"],[2856,"T"],[2862,""],[2863,"NoteRef"],[2865,"U,T"],[2871,"U"],[2877,""],[2883,"V"],[2889,""],[2909,"T"],[2911,"DbError"],[2912,"T"],[2913,""],[2915,"T"],[2917,""],[2918,"DbError"],[2919,"E"],[2921,"T"],[2922,""],[2923,"U"],[2924,"T"],[2925,"S"],[2928,"E"],[2929,"T"],[2930,""],[2931,"U,T"],[2932,"U"],[2933,""],[2934,"V"],[2941,""],[2942,"T"],[2954,""],[2969,"T"],[2975,""],[2991,"T"],[3003,""],[3032,"T"],[3035,"A"],[3036,"T"],[3037,"Proof"],[3038,"T"],[3040,"SpendAuth"],[3041,""],[3055,"U"],[3061,"T"],[3067,"S"],[3073,""],[3085,"T"],[3091,"U,T"],[3097,"U"],[3103,""],[3111,"V"],[3137,""],[3141,"T"],[3165,""],[3188,"T"],[3200,""],[3226,"T"],[3250,""],[3299,"T"],[3309,""],[3311,"T"],[3313,""],[3315,"NoteRef"],[3316,""],[3318,"__H"],[3320,""],[3334,"U"],[3346,"T"],[3358,""],[3364,"S"],[3376,""],[3382,"T"],[3384,""],[3394,"T"],[3406,""],[3407,"U,T"],[3417,""],[3418,"U,T"],[3419,""],[3420,"U,T"],[3421,"U"],[3433,"DbError,DbT"],[3434,""],[3457,"V"],[3473,"T"],[3475,""],[3476,"T"],[3477,""],[3478,"T"],[3480,""],[3485,"T"],[3486,""],[3487,"U"],[3488,"T"],[3489,""],[3490,"S"],[3491,"T"],[3492,"U,T"],[3493,"U"],[3494,""],[3495,"V"],[3520,""],[3529,"T"],[3573,""],[3620,"T"],[3642,""],[3692,"T"],[3736,""],[3830,"T"],[3852,""],[3855,"__H"],[3856,""],[3888,"U"],[3910,"T"],[3932,""],[3935,"S"],[3957,""],[3976,"T"],[3998,"U,T"],[4020,""],[4021,"U"],[4043,""],[4071,"V"],[4093,""],[4096,"T"],[4101,""],[4102,"T"],[4104,""],[4105,"T"],[4124,""],[4125,"U"],[4126,"T"],[4129,"S"],[4130,"T"],[4135,"U,T"],[4136,"U"],[4137,""],[4138,"V"],[4139,"T,F"],[4140,"T"],[4152,"AccountId"],[4155,""],[4156,"T"],[4164,""],[4165,"T"],[4166,""],[4167,"T"],[4175,""],[4179,"AccountId,IvkTag"],[4180,"AccountId"],[4181,""],[4183,"T"],[4187,"AccountId"],[4188,""],[4192,"U"],[4196,"T"],[4200,""],[4202,"AccountId"],[4204,"S"],[4208,"IvkTag,AccountId"],[4209,"Nf"],[4210,"AccountId"],[4212,"AccountId,IvkTag"],[4213,"AccountId"],[4214,""],[4215,"AccountId"],[4217,"AccountId,IvkTag"],[4218,"AccountId"],[4219,"P,AccountId,IvkTag"],[4221,"T"],[4222,""],[4223,"U,T"],[4227,"U"],[4231,""],[4235,"V"],[4239,""],[4256,"R,H"],[4257,"W,H"],[4265,"T"],[4269,""],[4270,"CaErr,DbErr,TrErr"],[4272,"T"],[4273,"CaErr,DbErr,TrErr"],[4274,"DbErr,CaErr,TrErr"],[4275,""],[4276,"U"],[4277,"T"],[4278,"S"],[4279,"ChT,P,CaT,DbT"],[4280,""],[4281,"U,T"],[4282,"U"],[4283,""],[4284,"V"],[4307,"Nf,AccountId"],[4308,"Note,Nullifier,AccountId"],[4309,""],[4310,"AccountId"],[4311,"T"],[4331,""],[4332,"AccountId"],[4333,""],[4335,"NoteRef,NoteT"],[4336,""],[4338,"T"],[4345,""],[4355,"T"],[4375,""],[4385,"Note,Nullifier,AccountId"],[4386,""],[4389,"NoteRef,NoteT"],[4390,""],[4392,"AccountId"],[4393,""],[4395,"NoteRef,NoteT"],[4396,""],[4398,"T"],[4408,"Nf,AccountId"],[4409,"Note,Nullifier,AccountId"],[4410,""],[4411,"NoteRef,NoteT"],[4412,"Nf,AccountId"],[4413,"Note,Nullifier,AccountId"],[4414,""],[4424,"NoteRef,NoteT"],[4425,"U"],[4435,"T"],[4445,"Note,Nullifier,AccountId"],[4446,"NoteRef,NoteT,N,F"],[4447,""],[4448,"S"],[4458,"AccountId"],[4459,""],[4461,"Nf,AccountId"],[4462,"Note,Nullifier,AccountId"],[4464,"NoteRef,NoteT"],[4465,"Note,Nullifier,AccountId"],[4466,"NoteRef,NoteT"],[4467,"NoteRef"],[4471,"AccountId"],[4473,""],[4476,"NoteRef,NoteT"],[4477,""],[4481,"Note,Nullifier,AccountId"],[4482,"AccountId"],[4484,""],[4485,"NoteRef,NoteT"],[4486,"T"],[4493,"U,T"],[4503,"U"],[4513,"AccountId"],[4514,""],[4515,"NoteRef,NoteT"],[4516,""],[4529,"NoteRef"],[4531,"V"],[4541,""],[4562,"T"],[4568,""],[4571,"T"],[4574,""],[4577,"T"],[4583,""],[4594,"T"],[4595,"E"],[4596,"T"],[4598,""],[4603,"U"],[4606,"T"],[4609,""],[4614,"S"],[4617,""],[4624,"T"],[4627,""],[4630,"U,T"],[4633,"U"],[4636,""],[4639,"V"],[4642,""]]}],["zcash_client_sqlite",{"t":"FFPPPPFGFPPPPFFFFNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNCNNNNNNNNFNOONNNNNNNNNNNNNNNNOCNNNCNOONNNNNHHCHCSFNNNNNNNNNNNNNNNNNNNPPPPPPPPPPPPPPPPPPPPPPPPPGPPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOKFNNNNNNNNNNNNNMNCNNNNNFNNNNNNNNNNNNNNNNNNNNNFNNNNNCNNNNNNCNNNNNNCNNNNNNNPGPPFPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOPPPPPPPPPPGFNNNNNNNNNNNNNNNNNNNNNNNHNNNNCNNNNNNNNNNNNNNNSSSSSSSSSSSSS","n":["AccountUuid","BlockDb","CacheMiss","CorruptedData","Db","Fs","FsBlockDb","FsBlockDbError","GapLimits","InvalidBlockPath","InvalidBlockstoreRoot","MissingBlockPath","Protobuf","ReceivedNoteId","SqlTransaction","UtxoId","WalletDb","block_fully_scanned","block_max_scanned","block_metadata","borrow","","","","","","","","","","borrow_mut","","","","","","","","","chain","chain_height","check_witnesses","clone","","","","clone_into","","","","clone_to_uninit","","","","cmp","","compare","","conditional_select","create_account","default","","deref","","","","","","","","","deref_mut","","","","","","","","","drop","","","","","","","","","eq","","","","equivalent","","","","","","","","","","","","","","","","","","","","error","expose_uuid","find_account_for_ephemeral_address","find_block","fmt","","","","","","","for_path","","","from","","","","","","","","","","","","","from_connection","from_parts","from_uuid","get_account","get_account_birthday","get_account_for_ufvk","get_account_ids","get_account_metadata","get_address_for_index","get_block_hash","get_checkpoint_history","get_derived_account","get_known_ephemeral_addresses","get_last_generated_address_matching","get_max_cached_height","get_max_height_hash","get_memo","get_next_available_address","get_notes","get_orchard_nullifiers","get_sapling_nullifiers","get_sent_note_ids","get_sent_outputs","get_spendable_note","get_spendable_transparent_outputs","get_target_and_anchor_heights","get_transaction","get_transparent_address_metadata","get_transparent_balances","get_transparent_output","get_transparent_receivers","get_tx_height","get_tx_history","get_unified_full_viewing_keys","get_unspent_transparent_output","get_wallet_birthday","get_wallet_summary","hash","import_account_hd","import_account_ufvk","init","","","","","","","","","into","","","","","","","","","into_request","","","","","","","","","list_addresses","named_layer","","","","","","","","","partial_cmp","","put_blocks","put_orchard_subtree_roots","","put_received_transparent_utxo","put_sapling_subtree_roots","","queue_rescans","reserve_next_n_ephemeral_addresses","schedule_ephemeral_address_checks","seed_relevance_to_derived_accounts","select_spendable_notes","set_transaction_status","store_decrypted_tx","store_transactions_to_be_sent","suggest_scan_ranges","to_owned","","","","to_string","","transaction_data_requests","transactionally","truncate_to_height","","try_from","","","","","","","","","try_into","","","","","","","","","type_id","","","","","","","","","update_chain_tip","util","utxo_query_height","validate_seed","vzip","","","","","","","","","wallet","with_blocks","","with_gap_limits","with_orchard_tree_mut","","with_sapling_tree_mut","","write_block_metadata","BlockMeta","block_file_path","block_hash","block_time","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","drop","eq","equivalent","","","","","fmt","from","height","init","","into","into_request","migrations","named_layer","orchard_actions_count","sapling_outputs_count","to_owned","try_from","try_into","type_id","vzip","init_blockmeta_db","init_cache_database","blockmeta","all_migrations","init","MIGRATION_ID","Migration","borrow","borrow_mut","dependencies","deref","deref_mut","description","down","drop","from","id","init","into","into_request","named_layer","try_from","try_into","type_id","up","vzip","AccountCollision","AccountUnknown","AddressGeneration","AddressNotRecognized","AddressReuse","BadAccountData","BalanceError","BlockConflict","CacheMiss","ChainHeightUnknown","CommitmentTree","CorruptedData","DbError","DecodingError","DiversifierIndexReuse","InvalidMemo","InvalidNote","Io","KeyDerivationError","NonSequentialBlocks","NoteFilterInvalid","Protobuf","ReachedGapLimit","RequestedRewindInvalid","Scheduling","SqliteClientError","TableNotEmpty","TransparentAddress","TransparentDerivation","UnknownZip32Derivation","UnsupportedPoolType","Zip32AccountIndexOutOfRange","borrow","borrow_mut","deref","deref_mut","drop","fmt","","from","","","","","","","","","","","init","into","into_request","named_layer","source","to_string","try_from","try_into","type_id","vzip","requested_height","safe_rewind_height","Clock","SystemClock","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","drop","from","init","into","into_request","named_layer","now","","testing","to_owned","try_from","try_into","type_id","vzip","FixedClock","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","drop","from","init","into","into_request","named_layer","new","now","tick","to_owned","try_from","try_into","type_id","vzip","Account","borrow","borrow_mut","clone","clone_into","clone_to_uninit","commitment_tree","deref","deref_mut","drop","fmt","from","id","init","","into","into_request","name","named_layer","source","testing","to_owned","try_from","try_into","type_id","ufvk","uivk","vzip","CheckpointConflict","Error","Query","Serialization","SqliteShardStore","SubtreeDiscontinuity","add_checkpoint","","borrow","","borrow_mut","","checkpoint_count","","deref","","deref_mut","","drop","","fmt","","for_each_checkpoint","","from","","get_cap","","get_checkpoint","","get_checkpoint_at_depth","","get_shard","","get_shard_roots","","init","","into","","into_request","","last_shard","","max_checkpoint_id","","min_checkpoint_id","","named_layer","","put_cap","","put_shard","","remove_checkpoint","","source","to_string","truncate_checkpoints_retaining","","truncate_shards","","try_from","","try_into","","type_id","","update_checkpoint_with","","vzip","","with_checkpoints","","attempted_insertion_range","checkpoint","checkpoint_id","existing_range","extant_marks_removed","extant_tree_state","AddressGeneration","BalanceError","CannotRevert","CommitmentTree","CorruptedData","DatabaseNotSupported","DbError","Other","SeedNotRelevant","SeedRequired","WalletMigrationError","WalletMigrator","borrow","","borrow_mut","","default","deref","","deref_mut","","drop","","fmt","","from","","","","","","","init","","init_or_migrate","init_wallet_db","into","","into_request","","migrations","named_layer","","new","source","to_string","try_from","","try_into","","type_id","","vzip","","with_external_migrations","with_seed","V_0_10_0","V_0_10_3","V_0_11_0","V_0_11_1","V_0_11_2","V_0_12_0","V_0_13_0","V_0_14_0","V_0_15_0","V_0_4_0","V_0_6_0","V_0_8_0","V_0_9_0"],"q":[[0,"zcash_client_sqlite"],[293,"zcash_client_sqlite::chain"],[327,"zcash_client_sqlite::chain::init"],[329,"zcash_client_sqlite::chain::migrations"],[330,"zcash_client_sqlite::chain::migrations::blockmeta"],[332,"zcash_client_sqlite::chain::migrations::blockmeta::init"],[353,"zcash_client_sqlite::error"],[413,"zcash_client_sqlite::error::SqliteClientError"],[415,"zcash_client_sqlite::util"],[438,"zcash_client_sqlite::util::testing"],[460,"zcash_client_sqlite::wallet"],[488,"zcash_client_sqlite::wallet::commitment_tree"],[562,"zcash_client_sqlite::wallet::commitment_tree::Error"],[568,"zcash_client_sqlite::wallet::init"],[624,"zcash_client_sqlite::wallet::init::migrations"],[637,"zcash_client_backend::data_api"],[638,"core::option"],[639,"core::result"],[640,"rusqlite"],[641,"core::borrow"],[642,"zcash_protocol::consensus"],[643,"core::ops::range"],[644,"alloc::vec"],[645,"core::cmp"],[646,"subtle"],[647,"secrecy::vec"],[648,"zcash_keys::keys"],[649,"uuid"],[650,"zcash_transparent::address"],[651,"core::fmt"],[652,"rusqlite::error"],[653,"std::path"],[654,"core::convert"],[655,"zcash_client_backend::data_api::testing::transparent"],[656,"prost::error"],[657,"std::io::error"],[658,"zip32"],[659,"zcash_keys::address"],[660,"zcash_primitives::block"],[661,"zcash_protocol"],[662,"incrementalmerkletree"],[663,"zip32::fingerprint"],[664,"zcash_transparent::keys"],[665,"zcash_client_backend::wallet"],[666,"zcash_protocol::memo"],[667,"orchard::note::nullifier"],[668,"sapling_crypto::note::nullifier"],[669,"zcash_protocol::txid"],[670,"core::num::nonzero"],[671,"zcash_primitives::transaction"],[672,"zcash_protocol::value"],[673,"std::collections::hash::map"],[674,"zcash_transparent::bundle"],[675,"zcash_client_backend::data_api::testing"],[676,"core::hash"],[677,"tonic::request"],[678,"tonic::service::layered"],[679,"zcash_client_backend::data_api::chain"],[680,"orchard::tree"],[681,"shardtree::error"],[682,"sapling_crypto::tree"],[683,"nonempty"],[684,"zcash_client_backend::data_api::scanning"],[685,"rand_core"],[686,"alloc::string"],[687,"core::ops::function"],[688,"core::any"],[689,"zcash_client_backend::data_api::chain::error"],[690,"zcash_client_backend::proto::compact_formats"],[691,"rusqlite::transaction"],[692,"shardtree"],[693,"schemerz"],[694,"schemerz_rusqlite"],[695,"alloc::boxed"],[696,"std::collections::hash::set"],[697,"zcash_address::encoding"],[698,"bip32::error"],[699,"zcash_keys::encoding"],[700,"core::error"],[701,"std::time"],[702,"core::time"],[703,"shardtree::store"],[704,"zcash_primitives::merkle_tree"],[705,"shardtree::prunable"],[706,"core::clone"]],"i":"``Dh000```0000````b000Ad0EdDdB`BbBdBf8765432108`7732103210321032323730765432108765432108765432108321033333222221111100000`37432210887547654321008888703777777777774777777777777777777777737776543210876543210876543210877654321083277777777777777732102877747654321087654321087654321087`77765432108`54777774`Df0000000000000000000`000`00000000```````Nh000000000000000000Al000000000000000000000000`0000000000000000000000000000000000Oj0``Ol000000000000Cj1`11111`A@`00000000000000000000`A@d0000`000000`000000`0000000Mn`00`0Mj0010100010101110001000000000001010100000001000000110000010101000100AAfAAh0100AAn000000000``AAl1010010101110111111010`0101`010110101010100`````````````","f":"`````````````````{{{d{{b{cegi}}}}}{{j{{h{f}}k}}}{{n{l}}}A`{}{}{}}0{{{d{{b{cegi}}}}Ab}{{j{{h{f}}k}}}{{n{l}}}A`{}{}{}}{d{{d{c}}}{}}0{{{d{Ad}}}{{d{l}}}}1111111{{{d{Af}}}{{d{Afc}}}{}}00000000`{{{d{{b{cegi}}}}}{{j{{h{Ab}}k}}}{{n{l}}}A`{}{}{}}{{{d{Af{b{cegi}}}}}{{j{{Aj{{Ah{Ab}}}}Al}}}{{An{l}}}{}{}{}}{{{d{B`}}}B`}{{{d{Bb}}}Bb}{{{d{Bd}}}Bd}{{{d{Bf}}}Bf}{{d{d{Afc}}}Bh{}}000{{dBj}Bh}000{{{d{B`}}{d{B`}}}Bl}{{{d{Bb}}{d{Bb}}}Bl}{{d{d{c}}}Bl{}}0{{{d{B`}}{d{B`}}Bn}B`}{{{d{Af{b{cegi}}}}{d{C`}}{d{{Cb{Bj}}}}{d{Cd}}{h{{d{C`}}}}}{{j{{Ch{kCf}}m}}}{{An{l}}}A`Cj{}{}{}}{{}B`}{{}Bf}{Cl{{d{c}}}{}}00000000{Cl{{d{Afc}}}{}}00000000{ClBh}00000000{{{d{B`}}{d{B`}}}Cn}{{{d{Bb}}{d{Bb}}}Cn}{{{d{Bd}}{d{Bd}}}Cn}{{{d{Bf}}{d{Bf}}}Cn}{{d{d{c}}}Cn{}}0000000000000000000`{{{d{B`}}}D`}{{{d{{b{cegi}}}}{d{Db}}}{{j{{h{k}}m}}}{{n{l}}}A`{}{}{}{}}{{{d{Dd}}Ab}{{j{{h{Df}}Dh}}}}{{{d{B`}}{d{AfDj}}}Dl}{{{d{Bb}}{d{AfDj}}}Dl}0{{{d{Bd}}{d{AfDj}}}Dl}{{{d{Bf}}{d{AfDj}}}Dl}{{{d{Dh}}{d{AfDj}}}Dl}0{{cegi}{{j{{b{legi}}Dn}}}{{Eb{E`}}}{}{}{}}{c{{j{EdDn}}}{{Eb{E`}}}}{c{{j{DdDh}}}{{Eb{E`}}}}{cc{}}0000000{EfBf}1{EhDh}{DnDh}{EjDh}{{cegi}{{b{cegi}}}{{n{l}}}{}{}{}}{{ElElEl}Bf}{D`B`}{{{d{{b{cegi}}}}k}{{j{{h{m}}o}}}{{n{l}}}A`{}{}{}{}{}}{{{d{{b{cegi}}}}k}{{j{Abm}}}{{n{l}}}A`{}{}{}{}}{{{d{{b{cegi}}}}{d{En}}}{{j{{h{k}}m}}}{{n{l}}}A`{}{}{}{}}{{{d{{b{cegi}}}}}{{j{{Aj{k}}m}}}{{n{l}}}A`{}{}{}{}}{{{d{{b{cegi}}}}k{d{F`}}{d{{Fb{m}}}}}{{j{Fdo}}}{{n{l}}}A`{}{}{}{}{}}{{{d{Af{b{cegi}}}}kFfFh}{{j{{h{Fj}}m}}}{{An{l}}}A`Cj{}{}{}}{{{d{{b{cegi}}}}Ab}{{j{{h{Fl}}k}}}{{n{l}}}A`{}{}{}}{{{d{{b{cegi}}}}{d{Fn}}}{{j{{Aj{{Ch{Ab{h{G`}}}}}}k}}}{{n{l}}}A`{}{}{}}{{{d{{b{cegi}}}}{d{Gb}}Gd}{{j{{h{k}}m}}}{{n{l}}}A`{}{}{}{}}{{{d{{b{cegi}}}}k{h{{Ah{Gf}}}}}{{j{{Aj{{Ch{DbGh}}}}m}}}{{n{l}}}A`{}{}{}{}}{{{d{{b{cegi}}}}kFh}{{j{{h{Fj}}m}}}{{n{l}}}A`{}{}{}{}}{{{d{Dd}}}{{j{{h{Ab}}Dh}}}}{{{d{{b{cegi}}}}}{{j{{h{{Ch{AbFl}}}}k}}}{{n{l}}}A`{}{}{}}{{{d{{b{cegi}}}}Gj}{{j{{h{Gl}}k}}}{{n{l}}}A`{}{}{}}{{{d{Af{b{cegi}}}}kFh}{{j{{h{{Ch{FjFf}}}}m}}}{{An{l}}}A`Cj{}{}{}}{{{d{{b{cegi}}}}Fn}{{j{{Aj{{H`{kGn}}}}m}}}{{n{l}}}A`{}{}{}{}}{{{d{{b{cegi}}}}Hb}{{j{{Aj{{Ch{kHd}}}}m}}}{{n{l}}}A`{}{}{}{}}{{{d{{b{cegi}}}}Hb}{{j{{Aj{{Ch{kHf}}}}m}}}{{n{l}}}A`{}{}{}{}}{{{d{{b{cegi}}}}{d{Hh}}Fn}{{j{{Aj{Gj}}k}}}{{n{l}}}A`{}{}{}}{{{d{{b{cegi}}}}{d{Hh}}}{{j{{Aj{Hj}}k}}}{{n{l}}}A`{}{}{}}{{{d{{b{cegi}}}}{d{Hh}}FnEl}{{j{{h{{H`{kGn}}}}m}}}{{n{l}}}A`{}{}{}{}}{{{d{{b{cegi}}}}{d{Db}}AbEl}{{j{{Aj{Hl}}k}}}{{n{l}}}A`{}{}{}}{{{d{{b{cegi}}}}Hn}{{j{{h{{Ch{AbAb}}}}k}}}{{n{l}}}A`{}{}{}}{{{d{{b{cegi}}}}Hh}{{j{{h{I`}}k}}}{{n{l}}}A`{}{}{}}{{{d{{b{cegi}}}}k{d{Db}}}{{j{{h{Gh}}m}}}{{n{l}}}A`{}{}{}{}}{{{d{{b{cegi}}}}kAb}{{j{{Id{DbIb}}m}}}{{n{l}}}A`{}{}{}{}}{{{d{{b{cegi}}}}{d{If}}Cn}{{j{{h{Hl}}k}}}{{n{l}}}A`{}{}{}}{{{d{{b{cegi}}}}kCn}{{j{{Id{Db{h{Gh}}}}m}}}{{n{l}}}A`{}{}{}{}}{{{d{{b{cegi}}}}Hh}{{j{{h{Ab}}k}}}{{n{l}}}A`{}{}{}}{{{d{{b{cegi}}}}}{{j{{Aj{{Ih{k}}}}m}}}{{n{l}}}A`{}{}{}{}}{{{d{{b{cegi}}}}}{{j{{Id{kEn}}m}}}{{n{l}}}A`{}{}{}{}}{{{d{{b{cegi}}}}{d{If}}}{{j{{h{Hl}}k}}}{{n{l}}}A`{}{}{}}{{{d{{b{cegi}}}}}{{j{{h{Ab}}k}}}{{n{l}}}A`{}{}{}}{{{d{{b{cegi}}}}El}{{j{{h{{Ij{k}}}}m}}}{{n{l}}}A`{}{}{}{}}{{{d{B`}}{d{Afc}}}BhIl}{{{d{Af{b{cegi}}}}{d{C`}}{d{{Cb{Bj}}}}Gd{d{Cd}}{h{{d{C`}}}}}{{j{{Ch{kCf}}m}}}{{An{l}}}A`Cj{}{}{}}{{{d{Af{b{cegi}}}}{d{C`}}{d{En}}{d{Cd}}In{h{{d{C`}}}}}{{j{km}}}{{An{l}}}A`Cj{}{}{}}{{}Cl}00000000{{}c{}}00000000{{}{{J`{c}}}{}}00000000{{{d{{b{cegi}}}}k}{{j{{Aj{Jb}}m}}}{{n{l}}}A`{}{}{}{}}{{dc}{{Jd{c}}}{}}00000000{{{d{B`}}{d{B`}}}{{h{Bl}}}}{{{d{Bb}}{d{Bb}}}{{h{Bl}}}}{{{d{Af{b{cegi}}}}{d{Jf}}{Aj{{Jh{k}}}}}{{j{Bhm}}}{{An{l}}}A`Cj{}{}{}}{{{d{Af{b{cegi}}}}Jj{d{{Fb{{Jn{Jl}}}}}}}{{j{Bh{K`{k}}}}}{{An{l}}}A`{}{}{}}{{{d{Af{b{Adceg}}}}Jj{d{{Fb{{Jn{Jl}}}}}}}{{j{Bh{K`{i}}}}}A`{}{}{}}{{{d{Af{b{cegi}}}}{d{Hl}}}{{j{km}}}{{An{l}}}A`Cj{}{}{}}{{{d{Af{b{cegi}}}}Jj{d{{Fb{{Jn{Kb}}}}}}}{{j{Bh{K`{k}}}}}{{An{l}}}A`{}{}{}}{{{d{Af{b{Adceg}}}}Jj{d{{Fb{{Jn{Kb}}}}}}}{{j{Bh{K`{i}}}}}A`{}{}{}}{{{d{Af{b{cegi}}}}{Kd{{Ah{Ab}}}}Kf}{{j{BhAl}}}{{An{l}}}{}{}{}}{{{d{Af{b{cegi}}}}kCl}{{j{{Aj{{Ch{DbGh}}}}m}}}{{An{l}}}A`Cj{}{}{}}{{{d{Af{b{cegi}}}}}{{j{BhAl}}}{{An{l}}}{}CjKh}{{{d{{b{cegi}}}}{d{{Cb{Bj}}}}}{{j{{Kj{k}}m}}}{{n{l}}}A`{}{}{}{}}{{{d{{b{cegi}}}}kIb{d{{Fb{Fn}}}}Ab{d{{Fb{m}}}}}{{j{{Kl{m}}o}}}{{n{l}}}A`{}{}{}{}{}}{{{d{Af{b{cegi}}}}HhKn}{{j{Bhk}}}{{An{l}}}A`Cj{}{}}{{{d{Af{b{cegi}}}}{L`{k}}}{{j{Bhm}}}{{An{l}}}A`Cj{}{}{}}{{{d{Af{b{cegi}}}}{d{{Fb{{Lb{k}}}}}}}{{j{Bhm}}}{{An{l}}}A`Cj{}{}{}}{{{d{{b{cegi}}}}}{{j{{Aj{Ld}}k}}}{{n{l}}}A`{}{}{}}{dc{}}000{dLf}0{{{d{{b{cegi}}}}}{{j{{Aj{Lh}}k}}}{{n{l}}}A`{}{}{}}{{{d{Af{b{cegi}}}}o}{{j{km}}}{{An{l}}}{}{}{}{}{{Lj{Dn}}}{{Ln{{d{Af{b{Ad{d{e}}{d{g}}{d{Afi}}}}}}}{{Ll{{j{km}}}}}}}}{{{d{Af{b{cegi}}}}Ab}{{j{Abk}}}{{An{l}}}A`Cj{}{}}{{{d{Dd}}Ab}{{j{BhDh}}}}{c{{j{e}}}{}{}}00000000{{}{{j{c}}}{}}00000000{dM`}00000000{{{d{Af{b{cegi}}}}Ab}{{j{Bhk}}}{{An{l}}}A`Cj{}{}}`{{{d{{b{cegi}}}}k}{{j{Abm}}}{{n{l}}}A`{}{}{}{}}{{{d{{b{cegi}}}}k{d{{Cb{Bj}}}}}{{j{Cnm}}}{{n{l}}}A`{}{}{}{}}{{}c{}}00000000`{{{d{Ed}}{h{Ab}}{h{Cl}}g}{{j{Bh{Mb{ce}}}}}{}{}{{Mf{Md}{{Ll{{j{Bh{Mb{ce}}}}}}}}}}{{{d{Dd}}{h{Ab}}{h{Cl}}g}{{j{Bh{Mb{ce}}}}}{}{}{{Mf{Md}{{Ll{{j{Bh{Mb{ce}}}}}}}}}}{{{b{cegi}}Bf}{{b{cegi}}}{}{}{}{}}{{{d{Af{b{Adceg}}}}o}{{j{im}}}A`{}{}{}{}{{Lj{{K`{k}}}}}{{Mf{{d{Af{Ml{{Mj{{d{Mh}}Jl}}}}}}}{{Ll{{j{im}}}}}}}}{{{d{Af{b{cegi}}}}Aa}{{j{ko}}}{{An{l}}}A`{}{}{}{}{{Lj{{K`{m}}}}}{{Mf{{d{Af{Ml{{Mj{{d{Mh}}Jl}}}}}}}{{Ll{{j{ko}}}}}}}}{{{d{Af{b{Adceg}}}}m}{{j{ik}}}A`{}{}{}{{Lj{{K`{Mn}}}}}{{Mf{{d{Af{Ml{{Mj{{d{Mh}}Kb}}}}}}}{{Ll{{j{ik}}}}}}}}{{{d{Af{b{cegi}}}}Aa}{{j{ko}}}{{An{l}}}A`{}{}{}{}{{Lj{{K`{m}}}}}{{Mf{{d{Af{Ml{{Mj{{d{Mh}}Kb}}}}}}}{{Ll{{j{ko}}}}}}}}{{{d{Dd}}{d{{Fb{Df}}}}}{{j{BhDh}}}}`{{{d{Df}}{d{c}}}N`{{Eb{E`}}}}{DfFl}{DfEl}{d{{d{c}}}{}}{{{d{Af}}}{{d{Afc}}}{}}{{{d{Df}}}Df}{{d{d{Afc}}}Bh{}}{{dBj}Bh}{Cl{{d{c}}}{}}{Cl{{d{Afc}}}{}}{ClBh}{{{d{Df}}{d{Df}}}Cn}{{d{d{c}}}Cn{}}0000{{{d{Df}}{d{AfDj}}}Dl}{cc{}}{DfAb}`{{}Cl}{{}c{}}{{}{{J`{c}}}{}}`{{dc}{{Jd{c}}}{}}{DfEl}0{dc{}}{c{{j{e}}}{}{}}{{}{{j{c}}}{}}{dM`}{{}c{}}{{{d{AfDd}}}{{j{Bh{Nb{D`Dn}}}}}}{{{d{Ed}}}{{j{BhDn}}}}`{{}{{Aj{{Nf{Nd}}}}}}`{{}D`}`{d{{d{c}}}{}}{{{d{Af}}}{{d{Afc}}}{}}{{{d{Nh}}}{{Nj{D`}}}}{Cl{{d{c}}}{}}{Cl{{d{Afc}}}{}}{{{d{Nh}}}{{d{C`}}}}{{{d{Nh}}{d{Mh}}}{{j{Bhc}}}{}}{ClBh}{cc{}}{{{d{Nh}}}D`}{{}Cl}{{}c{}}{{}{{J`{c}}}{}}{{dc}{{Jd{c}}}{}}{c{{j{e}}}{}{}}{{}{{j{c}}}{}}{dM`}:{{}c{}}````````````````````````````````{d{{d{c}}}{}}{{{d{Af}}}{{d{Afc}}}{}}{Cl{{d{c}}}{}}{Cl{{d{Afc}}}{}}>{{{d{Al}}{d{AfDj}}}Dl}0{NlAl}{NnAl}{EjAl}{O`Al}{EhAl}{ObAl}{OdAl}{cc{}}{{{K`{Mn}}}Al}{OfAl}{DnAl}{{}Cl}{{}c{}}{{}{{J`{c}}}{}}{{dc}{{Jd{c}}}{}}{{{d{Al}}}{{h{{d{Oh}}}}}}{dLf}{c{{j{e}}}{}{}}{{}{{j{c}}}{}}{dM`}{{}c{}}{OjAb}{Ojh}``{d{{d{c}}}{}}{{{d{Af}}}{{d{Afc}}}{}}{{{d{Ol}}}Ol}{{d{d{Afc}}}Bh{}}{{dBj}Bh}{Cl{{d{c}}}{}}{Cl{{d{Afc}}}{}}{ClBh}{cc{}}{{}Cl}{{}c{}}{{}{{J`{c}}}{}}{{dc}{{Jd{c}}}{}}{{{d{Cj}}}On}{{{d{Ol}}}On}`{dc{}}{c{{j{e}}}{}{}}{{}{{j{c}}}{}}{dM`}{{}c{}}`{d{{d{c}}}{}}{{{d{Af}}}{{d{Afc}}}{}}{{{d{A@`}}}A@`}{{d{d{Afc}}}Bh{}}{{dBj}Bh}{Cl{{d{c}}}{}}{Cl{{d{Afc}}}{}}{ClBh}{cc{}}{{}Cl}{{}c{}}{{}{{J`{c}}}{}}{{dc}{{Jd{c}}}{}}{OnA@`}{{{d{A@`}}}On}{{{d{A@`}}A@b}Bh}{dc{}}{c{{j{e}}}{}{}}{{}{{j{c}}}{}}{dM`}{{}c{}}`{d{{d{c}}}{}}{{{d{Af}}}{{d{Afc}}}{}}{{{d{A@d}}}A@d}{{d{d{Afc}}}Bh{}}{{dBj}Bh}`{Cl{{d{c}}}{}}{Cl{{d{Afc}}}{}}{ClBh}{{{d{A@d}}{d{AfDj}}}Dl}{cc{}}{{{d{A@d}}}B`}`{{}Cl}{{}c{}}{{}{{J`{c}}}{}}{{{d{A@d}}}{{h{{d{C`}}}}}}{{dc}{{Jd{c}}}{}}{{{d{A@d}}}{{d{A@f}}}}`{dc{}}{c{{j{e}}}{}{}}{{}{{j{c}}}{}}{dM`}{{{d{A@d}}}{{h{{d{En}}}}}}{{{d{A@d}}}A@h}{{}c{}}``````{{{d{Af{Mj{{d{Mh}}c}}}}eA@j}{{j{Bhg}}}A@l{}{}}{{{d{Af{Mj{lc}}}}eA@j}{{j{Bhg}}}A@l{}{}}{d{{d{c}}}{}}0{{{d{Af}}}{{d{Afc}}}{}}0{{{d{{Mj{lc}}}}}{{j{Cle}}}A@l{}}{{{d{{Mj{{d{Mh}}c}}}}}{{j{Cle}}}A@l{}}{Cl{{d{c}}}{}}0{Cl{{d{Afc}}}{}}0{ClBh}0{{{d{Mn}}{d{AfDj}}}Dl}0{{{d{{Mj{{d{Mh}}c}}}}Cli}{{j{Bhg}}}A@l{}{}{{Mf{{d{e}}{d{A@j}}}{{Ll{{j{Bhg}}}}}}}}{{{d{{Mj{lc}}}}Cli}{{j{Bhg}}}A@l{}{}{{Mf{{d{e}}{d{A@j}}}{{Ll{{j{Bhg}}}}}}}}{cc{}}0{{{d{{Mj{{d{Mh}}c}}}}}{{j{{A@n{e}}g}}}A@l{}{}}{{{d{{Mj{lc}}}}}{{j{{A@n{e}}g}}}A@l{}{}}{{{d{{Mj{{d{Mh}}c}}}}{d{e}}}{{j{{h{A@j}}g}}}A@l{}{}}{{{d{{Mj{lc}}}}{d{e}}}{{j{{h{A@j}}g}}}A@l{}{}}{{{d{{Mj{{d{Mh}}c}}}}Cl}{{j{{h{{Ch{eA@j}}}}g}}}A@l{}{}}{{{d{{Mj{lc}}}}Cl}{{j{{h{{Ch{eA@j}}}}g}}}A@l{}{}}{{{d{{Mj{lc}}}}AA`}{{j{{h{{AAb{e}}}}g}}}A@l{}{}}{{{d{{Mj{{d{Mh}}c}}}}AA`}{{j{{h{{AAb{e}}}}g}}}A@l{}{}}{{{d{{Mj{lc}}}}}{{j{{Aj{AA`}}e}}}A@l{}}{{{d{{Mj{{d{Mh}}c}}}}}{{j{{Aj{AA`}}e}}}A@l{}}{{}Cl}0{{}c{}}0{{}{{J`{c}}}{}}0{{{d{{Mj{lc}}}}}{{j{{h{{AAb{e}}}}g}}}A@l{}{}}{{{d{{Mj{{d{Mh}}c}}}}}{{j{{h{{AAb{e}}}}g}}}A@l{}{}}{{{d{{Mj{lc}}}}}{{j{{h{e}}g}}}A@l{}{}}{{{d{{Mj{{d{Mh}}c}}}}}{{j{{h{e}}g}}}A@l{}{}}01{{dc}{{Jd{c}}}{}}0{{{d{Af{Mj{lc}}}}{A@n{e}}}{{j{Bhg}}}A@l{}{}}{{{d{Af{Mj{{d{Mh}}c}}}}{A@n{e}}}{{j{Bhg}}}A@l{}{}}{{{d{Af{Mj{lc}}}}{AAb{e}}}{{j{Bhg}}}A@l{}{}}{{{d{Af{Mj{{d{Mh}}c}}}}{AAb{e}}}{{j{Bhg}}}A@l{}{}}{{{d{Af{Mj{{d{Mh}}c}}}}{d{e}}}{{j{Bhg}}}A@l{}{}}{{{d{Af{Mj{lc}}}}{d{e}}}{{j{Bhg}}}A@l{}{}}{{{d{Mn}}}{{h{{d{Oh}}}}}}{dLf}23{{{d{Af{Mj{lc}}}}Jj}{{j{Bhe}}}A@l{}}{{{d{Af{Mj{{d{Mh}}c}}}}Jj}{{j{Bhe}}}A@l{}}{c{{j{e}}}{}{}}0{{}{{j{c}}}{}}0{dM`}0{{{d{Af{Mj{lc}}}}{d{e}}i}{{j{Cng}}}A@l{}{}{{AAd{{d{AfA@j}}}{{Ll{{j{Bhg}}}}}}}}{{{d{Af{Mj{{d{Mh}}c}}}}{d{e}}i}{{j{Cng}}}A@l{}{}{{AAd{{d{AfA@j}}}{{Ll{{j{Bhg}}}}}}}}{{}c{}}0{{{d{Af{Mj{lc}}}}Cli}{{j{Bhg}}}A@l{}{}{{Mf{{d{e}}{d{A@j}}}{{Ll{{j{Bhg}}}}}}}}{{{d{Af{Mj{{d{Mh}}c}}}}Cli}{{j{Bhg}}}A@l{}{}{{Mf{{d{e}}{d{A@j}}}{{Ll{{j{Bhg}}}}}}}}{AAfAh}{AAhA@j}{AAhAb}2{AAhh}{AAhAAj}````````````{d{{d{c}}}{}}0{{{d{Af}}}{{d{Afc}}}{}}0{{}AAl}{Cl{{d{c}}}{}}0{Cl{{d{Afc}}}{}}0{ClBh}0{{{d{AAn}}{d{AfDj}}}Dl}0{cc{}}{OfAAn}{AlAAn}{DnAAn}3{{{K`{Mn}}}AAn}{NnAAn}{{}Cl}0{{AAl{d{Af{b{cegi}}}}}{{j{Bh{Nb{D`AAn}}}}}{{An{l}}}A`{CjAB`}{KhAB`}}{{{d{Af{b{cegi}}}}{h{{Cb{Bj}}}}}{{j{Bh{Nb{D`AAn}}}}}{{An{l}}}A`{CjAB`}{KhAB`}}{{}c{}}0{{}{{J`{c}}}{}}0`{{dc}{{Jd{c}}}{}}0{{}AAl}{{{d{AAn}}}{{h{{d{Oh}}}}}}{dLf}{c{{j{e}}}{}{}}0{{}{{j{c}}}{}}0{dM`}0{{}c{}}0{{AAl{Aj{{Nf{Nd}}}}}AAl}{{AAl{Cb{Bj}}}AAl}{{}d}000000000000","D":"ABh","p":[[5,"WalletDb",0],[1,"reference",null,null,1],[5,"BlockMetadata",637],[6,"Option",638,null,1],[6,"Result",639,null,1],[5,"Connection",640],[10,"Borrow",641],[10,"Parameters",642],[5,"BlockHeight",642],[5,"SqlTransaction",0],[0,"mut"],[5,"Range",643],[5,"Vec",644],[6,"SqliteClientError",353],[10,"BorrowMut",641],[5,"AccountUuid",0],[5,"ReceivedNoteId",0],[5,"UtxoId",0],[5,"GapLimits",0],[1,"unit"],[1,"u8"],[6,"Ordering",645],[5,"Choice",646],[1,"str"],[8,"SecretVec",647],[5,"AccountBirthday",637],[5,"UnifiedSpendingKey",648],[1,"tuple",null,null,1],[10,"Clock",415],[1,"usize"],[1,"bool"],[5,"Uuid",649],[6,"TransparentAddress",650],[5,"FsBlockDb",0],[5,"BlockMeta",293],[6,"FsBlockDbError",0],[5,"Formatter",651],[8,"Result",651],[6,"Error",652],[5,"Path",653],[10,"AsRef",654],[5,"BlockDb",0],[5,"GapLimits",655],[5,"DecodeError",656],[5,"Error",657],[1,"u32"],[5,"UnifiedFullViewingKey",648],[6,"NoteFilter",637],[1,"slice"],[5,"AccountMeta",637],[5,"DiversifierIndex",658],[6,"UnifiedAddressRequest",648],[5,"UnifiedAddress",659],[5,"BlockHash",660],[6,"ShieldedProtocol",661],[5,"Position",662],[5,"SeedFingerprint",663],[5,"AccountId",658],[5,"NonHardenedChildIndex",664],[5,"TransparentAddressMetadata",665],[5,"NoteId",665],[6,"Memo",666],[6,"Note",665],[5,"ReceivedNote",665],[6,"NullifierQuery",637],[5,"Nullifier",667],[5,"Nullifier",668],[5,"TxId",669],[5,"OutputOfSentTx",637],[5,"WalletTransparentOutput",665],[8,"NonZeroU32",670],[5,"Transaction",671],[5,"Zatoshis",672],[5,"HashMap",673],[5,"OutPoint",674],[5,"TransactionSummary",675],[5,"WalletSummary",637],[10,"Hasher",676],[6,"AccountPurpose",637],[5,"Request",677],[5,"AddressInfo",637],[5,"Layered",678],[5,"ChainState",679],[5,"ScannedBlock",637],[1,"u64"],[5,"MerkleHashOrchard",680],[5,"CommitmentTreeRoot",679],[6,"ShardTreeError",681],[5,"Node",682],[5,"NonEmpty",683],[6,"ScanPriority",684],[10,"RngCore",685],[6,"SeedRelevance",637],[5,"SpendableNotes",637],[6,"TransactionStatus",637],[5,"DecryptedTransaction",637],[5,"SentTransaction",637],[5,"ScanRange",684],[5,"String",686],[6,"TransactionDataRequest",637],[10,"From",654,null,1],[17,"Output"],[10,"FnOnce",687],[5,"TypeId",688],[6,"Error",689],[5,"CompactBlock",690],[10,"FnMut",687],[5,"Transaction",691],[5,"SqliteShardStore",488],[5,"ShardTree",692],[6,"Error",488],[5,"PathBuf",653],[6,"MigratorError",693],[10,"RusqliteMigration",694],[5,"Box",695,null,1],[5,"Migration",332],[5,"HashSet",696],[6,"Error",666],[6,"AddressGenerationError",648],[6,"ParseError",697],[6,"Error",698],[6,"TransparentCodecError",699],[6,"BalanceError",672],[10,"Error",700],[15,"RequestedRewindInvalid",413],[5,"SystemClock",415],[5,"SystemTime",701],[5,"FixedClock",438],[5,"Duration",702],[5,"Account",460],[6,"AccountSource",637],[5,"UnifiedIncomingViewingKey",648],[5,"Checkpoint",703],[10,"HashSer",704],[8,"PrunableTree",705],[5,"Address",662],[8,"LocatedPrunableTree",705],[10,"Fn",687],[15,"SubtreeDiscontinuity",562],[15,"CheckpointConflict",562],[6,"TreeState",703],[5,"WalletMigrator",568],[6,"WalletMigrationError",568],[10,"Clone",706]],"r":[],"b":[[118,"impl-Debug-for-ReceivedNoteId"],[119,"impl-Display-for-ReceivedNoteId"],[122,"impl-Debug-for-FsBlockDbError"],[123,"impl-Display-for-FsBlockDbError"],[137,"impl-From%3CDecodeError%3E-for-FsBlockDbError"],[138,"impl-From%3CError%3E-for-FsBlockDbError"],[139,"impl-From%3CError%3E-for-FsBlockDbError"],[220,"impl-WalletCommitmentTrees-for-WalletDb%3CC,+P,+CL,+R%3E"],[221,"impl-WalletCommitmentTrees-for-WalletDb%3CSqlTransaction%3C\'_%3E,+P,+CL,+R%3E"],[223,"impl-WalletCommitmentTrees-for-WalletDb%3CC,+P,+CL,+R%3E"],[224,"impl-WalletCommitmentTrees-for-WalletDb%3CSqlTransaction%3C\'_%3E,+P,+CL,+R%3E"],[288,"impl-WalletCommitmentTrees-for-WalletDb%3CSqlTransaction%3C\'_%3E,+P,+CL,+R%3E"],[289,"impl-WalletCommitmentTrees-for-WalletDb%3CC,+P,+CL,+R%3E"],[290,"impl-WalletCommitmentTrees-for-WalletDb%3CSqlTransaction%3C\'_%3E,+P,+CL,+R%3E"],[291,"impl-WalletCommitmentTrees-for-WalletDb%3CC,+P,+CL,+R%3E"],[390,"impl-Debug-for-SqliteClientError"],[391,"impl-Display-for-SqliteClientError"],[392,"impl-From%3CError%3E-for-SqliteClientError"],[393,"impl-From%3CAddressGenerationError%3E-for-SqliteClientError"],[394,"impl-From%3CError%3E-for-SqliteClientError"],[395,"impl-From%3CParseError%3E-for-SqliteClientError"],[396,"impl-From%3CDecodeError%3E-for-SqliteClientError"],[397,"impl-From%3CError%3E-for-SqliteClientError"],[398,"impl-From%3CTransparentCodecError%3E-for-SqliteClientError"],[400,"impl-From%3CShardTreeError%3CError%3E%3E-for-SqliteClientError"],[401,"impl-From%3CBalanceError%3E-for-SqliteClientError"],[402,"impl-From%3CError%3E-for-SqliteClientError"],[494,"impl-ShardStore-for-SqliteShardStore%3C%26Transaction%3C\'conn%3E,+H,+SHARD_HEIGHT%3E"],[495,"impl-ShardStore-for-SqliteShardStore%3CConnection,+H,+SHARD_HEIGHT%3E"],[500,"impl-ShardStore-for-SqliteShardStore%3CConnection,+H,+SHARD_HEIGHT%3E"],[501,"impl-ShardStore-for-SqliteShardStore%3C%26Transaction%3C\'conn%3E,+H,+SHARD_HEIGHT%3E"],[508,"impl-Display-for-Error"],[509,"impl-Debug-for-Error"],[510,"impl-ShardStore-for-SqliteShardStore%3C%26Transaction%3C\'conn%3E,+H,+SHARD_HEIGHT%3E"],[511,"impl-ShardStore-for-SqliteShardStore%3CConnection,+H,+SHARD_HEIGHT%3E"],[514,"impl-ShardStore-for-SqliteShardStore%3C%26Transaction%3C\'conn%3E,+H,+SHARD_HEIGHT%3E"],[515,"impl-ShardStore-for-SqliteShardStore%3CConnection,+H,+SHARD_HEIGHT%3E"],[516,"impl-ShardStore-for-SqliteShardStore%3C%26Transaction%3C\'conn%3E,+H,+SHARD_HEIGHT%3E"],[517,"impl-ShardStore-for-SqliteShardStore%3CConnection,+H,+SHARD_HEIGHT%3E"],[518,"impl-ShardStore-for-SqliteShardStore%3C%26Transaction%3C\'conn%3E,+H,+SHARD_HEIGHT%3E"],[519,"impl-ShardStore-for-SqliteShardStore%3CConnection,+H,+SHARD_HEIGHT%3E"],[520,"impl-ShardStore-for-SqliteShardStore%3CConnection,+H,+SHARD_HEIGHT%3E"],[521,"impl-ShardStore-for-SqliteShardStore%3C%26Transaction%3C\'conn%3E,+H,+SHARD_HEIGHT%3E"],[522,"impl-ShardStore-for-SqliteShardStore%3CConnection,+H,+SHARD_HEIGHT%3E"],[523,"impl-ShardStore-for-SqliteShardStore%3C%26Transaction%3C\'conn%3E,+H,+SHARD_HEIGHT%3E"],[530,"impl-ShardStore-for-SqliteShardStore%3CConnection,+H,+SHARD_HEIGHT%3E"],[531,"impl-ShardStore-for-SqliteShardStore%3C%26Transaction%3C\'conn%3E,+H,+SHARD_HEIGHT%3E"],[532,"impl-ShardStore-for-SqliteShardStore%3CConnection,+H,+SHARD_HEIGHT%3E"],[533,"impl-ShardStore-for-SqliteShardStore%3C%26Transaction%3C\'conn%3E,+H,+SHARD_HEIGHT%3E"],[534,"impl-ShardStore-for-SqliteShardStore%3C%26Transaction%3C\'conn%3E,+H,+SHARD_HEIGHT%3E"],[535,"impl-ShardStore-for-SqliteShardStore%3CConnection,+H,+SHARD_HEIGHT%3E"],[538,"impl-ShardStore-for-SqliteShardStore%3CConnection,+H,+SHARD_HEIGHT%3E"],[539,"impl-ShardStore-for-SqliteShardStore%3C%26Transaction%3C\'conn%3E,+H,+SHARD_HEIGHT%3E"],[540,"impl-ShardStore-for-SqliteShardStore%3CConnection,+H,+SHARD_HEIGHT%3E"],[541,"impl-ShardStore-for-SqliteShardStore%3C%26Transaction%3C\'conn%3E,+H,+SHARD_HEIGHT%3E"],[542,"impl-ShardStore-for-SqliteShardStore%3C%26Transaction%3C\'conn%3E,+H,+SHARD_HEIGHT%3E"],[543,"impl-ShardStore-for-SqliteShardStore%3CConnection,+H,+SHARD_HEIGHT%3E"],[546,"impl-ShardStore-for-SqliteShardStore%3CConnection,+H,+SHARD_HEIGHT%3E"],[547,"impl-ShardStore-for-SqliteShardStore%3C%26Transaction%3C\'conn%3E,+H,+SHARD_HEIGHT%3E"],[548,"impl-ShardStore-for-SqliteShardStore%3CConnection,+H,+SHARD_HEIGHT%3E"],[549,"impl-ShardStore-for-SqliteShardStore%3C%26Transaction%3C\'conn%3E,+H,+SHARD_HEIGHT%3E"],[556,"impl-ShardStore-for-SqliteShardStore%3CConnection,+H,+SHARD_HEIGHT%3E"],[557,"impl-ShardStore-for-SqliteShardStore%3C%26Transaction%3C\'conn%3E,+H,+SHARD_HEIGHT%3E"],[560,"impl-ShardStore-for-SqliteShardStore%3CConnection,+H,+SHARD_HEIGHT%3E"],[561,"impl-ShardStore-for-SqliteShardStore%3C%26Transaction%3C\'conn%3E,+H,+SHARD_HEIGHT%3E"],[591,"impl-Display-for-WalletMigrationError"],[592,"impl-Debug-for-WalletMigrationError"],[594,"impl-From%3CBalanceError%3E-for-WalletMigrationError"],[595,"impl-From%3CSqliteClientError%3E-for-WalletMigrationError"],[596,"impl-From%3CError%3E-for-WalletMigrationError"],[598,"impl-From%3CShardTreeError%3CError%3E%3E-for-WalletMigrationError"],[599,"impl-From%3CAddressGenerationError%3E-for-WalletMigrationError"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAOkBNgADAAMACgADABIAFQApAAAAKwBGAHQAAAB2AAYAiAAAAIoAAgCQAAMAlQAFAJwAIQDHABoA4wAAAOUADgD1ABsAEgEKAB4BAQAhAQMAJwERADoBAAA8AQAAPgEJAEoBAgBOAQgAWAEBAFsBBgCCAQ0AkQEDAJYBCQCiAQcAqwEAAK0BAQCwAQYAuAEHAMEBAADDAQEAxgEAAMgBBADOAQkA2QEAANsBAADdAQsA7QEAAO8BEQADAgsAEQInAEMCAABFAgwAUwICAFcCAwBfAgEAYgIBAGUCCQA=","P":[[17,"C,P,CL,R,WalletRead::Error"],[20,"T"],[22,""],[23,"T"],[40,"C,P,CL,R,WalletRead::Error"],[41,"C,P,CL,R"],[42,""],[46,"T"],[50,""],[56,"K"],[58,""],[59,"C,P,CL,R,WalletRead::AccountId,WalletRead::Error"],[60,""],[62,"T"],[80,""],[93,"K"],[114,""],[115,"C,P,CL,R,WalletRead::AccountId,WalletRead::Error"],[116,""],[124,"F,P,CL,R"],[125,"P"],[127,"T"],[135,""],[136,"T"],[137,""],[140,"C,P,CL,R"],[141,""],[143,"C,P,CL,R,WalletRead::AccountId,WalletRead::Account,WalletRead::Error"],[144,"C,P,CL,R,WalletRead::AccountId,WalletRead::Error"],[145,"C,P,CL,R,WalletRead::Account,WalletRead::Error"],[146,"C,P,CL,R,WalletRead::AccountId,WalletRead::Error"],[147,"C,P,CL,R,InputSource::AccountId,InputSource::NoteRef,InputSource::Error"],[148,"C,P,CL,R,WalletRead::AccountId,WalletRead::Error"],[149,"C,P,CL,R,WalletRead::Error"],[151,"C,P,CL,R,WalletRead::Account,WalletRead::Error"],[152,"C,P,CL,R,WalletRead::AccountId,WalletRead::Error"],[154,""],[155,"C,P,CL,R,WalletRead::Error"],[157,"C,P,CL,R,WalletRead::AccountId,WalletRead::Error"],[158,"C,P,CL,R,InputSource::NoteRef,InputSource::Error"],[159,"C,P,CL,R,WalletRead::AccountId,WalletRead::Error"],[161,"C,P,CL,R,WalletRead::Error"],[163,"C,P,CL,R,InputSource::NoteRef,InputSource::Error"],[164,"C,P,CL,R,InputSource::Error"],[165,"C,P,CL,R,WalletRead::Error"],[167,"C,P,CL,R,WalletRead::AccountId,WalletRead::Error"],[169,"C,P,CL,R,InputSource::Error"],[170,"C,P,CL,R,WalletRead::AccountId,WalletRead::Error"],[171,"C,P,CL,R,WalletRead::Error"],[172,"C,P,CL,R,WalletRead::AccountId,WalletRead::Error"],[174,"C,P,CL,R,InputSource::Error"],[175,"C,P,CL,R,WalletRead::Error"],[176,"C,P,CL,R,WalletRead::AccountId,WalletRead::Error"],[177,"__H"],[178,"C,P,CL,R,WalletRead::Account,WalletRead::Error"],[180,""],[189,"U"],[198,"T"],[207,"C,P,CL,R,WalletRead::AccountId,WalletRead::Error"],[208,"S"],[217,""],[219,"C,P,CL,R,WalletRead::AccountId,WalletRead::Error"],[220,"C,P,CL,R,WalletCommitmentTrees::Error"],[221,"P,CL,R,WalletCommitmentTrees::Error"],[222,"C,P,CL,R,WalletWrite::UtxoRef,WalletRead::Error"],[223,"C,P,CL,R,WalletCommitmentTrees::Error"],[224,"P,CL,R,WalletCommitmentTrees::Error"],[225,"C,P,CL,R"],[226,"C,P,CL,R,WalletRead::AccountId,WalletRead::Error"],[227,"C,P,CL,R"],[228,"C,P,CL,R,WalletRead::AccountId,WalletRead::Error"],[229,"C,P,CL,R,InputSource::AccountId,InputSource::NoteRef,InputSource::Error"],[230,"C,P,CL,R,WalletRead::Error"],[231,"C,P,CL,R,WalletRead::AccountId,WalletRead::Error"],[233,"C,P,CL,R,WalletRead::Error"],[234,"T"],[238,""],[240,"C,P,CL,R,WalletRead::Error"],[241,"C,P,CL,R,A,E,F"],[242,"C,P,CL,R,WalletRead::Error"],[243,""],[244,"U,T"],[253,"U"],[262,""],[271,"C,P,CL,R,WalletRead::Error"],[273,"C,P,CL,R,WalletRead::AccountId,WalletRead::Error"],[275,"V"],[285,"DbErrT,BlockSource::Error,F"],[287,"C,P,CL,R"],[288,"P,CL,R,A,WalletCommitmentTrees::Error,E,F"],[289,"C,P,CL,R,A,WalletCommitmentTrees::Error,E,F"],[290,"P,CL,R,A,E,F"],[291,"C,P,CL,R,A,WalletCommitmentTrees::Error,E,F"],[292,""],[294,"P"],[295,""],[297,"T"],[299,""],[300,"T"],[301,""],[302,"T"],[304,""],[306,"K"],[311,""],[312,"T"],[313,""],[316,"U"],[317,"T"],[319,"S"],[320,""],[322,"T"],[323,"U,T"],[324,"U"],[325,""],[326,"V"],[327,""],[334,"T"],[336,""],[337,"T"],[339,""],[340,"RusqliteMigration::Error"],[341,""],[342,"T"],[343,""],[345,"U"],[346,"T"],[347,"S"],[348,"U,T"],[349,"U"],[350,""],[351,"RusqliteMigration::Error"],[352,"V"],[385,"T"],[389,""],[399,"T"],[400,""],[404,"U"],[405,"T"],[406,"S"],[407,""],[409,"U,T"],[410,"U"],[411,""],[412,"V"],[413,""],[417,"T"],[419,""],[420,"T"],[421,""],[422,"T"],[424,""],[425,"T"],[426,""],[427,"U"],[428,"T"],[429,"S"],[430,""],[433,"T"],[434,"U,T"],[435,"U"],[436,""],[437,"V"],[439,"T"],[441,""],[442,"T"],[443,""],[444,"T"],[446,""],[447,"T"],[448,""],[449,"U"],[450,"T"],[451,"S"],[452,""],[455,"T"],[456,"U,T"],[457,"U"],[458,""],[459,"V"],[461,"T"],[463,""],[464,"T"],[465,""],[467,"T"],[469,""],[471,"T"],[472,""],[475,"U"],[476,"T"],[477,""],[478,"S"],[479,""],[481,"T"],[482,"U,T"],[483,"U"],[484,""],[487,"V"],[494,"H,ShardStore::CheckpointId,ShardStore::Error"],[496,"T"],[500,"H,ShardStore::Error"],[502,"T"],[506,""],[510,"H,ShardStore::CheckpointId,ShardStore::Error,F"],[512,"T"],[514,"H,ShardStore::H,ShardStore::Error"],[516,"H,ShardStore::CheckpointId,ShardStore::Error"],[520,"H,ShardStore::H,ShardStore::Error"],[522,"H,ShardStore::Error"],[524,""],[526,"U"],[528,"T"],[530,"H,ShardStore::H,ShardStore::Error"],[532,"H,ShardStore::CheckpointId,ShardStore::Error"],[536,"S"],[538,"H,ShardStore::H,ShardStore::Error"],[542,"H,ShardStore::CheckpointId,ShardStore::Error"],[544,""],[546,"H,ShardStore::CheckpointId,ShardStore::Error"],[548,"H,ShardStore::Error"],[550,"U,T"],[552,"U"],[554,""],[556,"H,ShardStore::CheckpointId,ShardStore::Error,F"],[558,"V"],[560,"H,ShardStore::CheckpointId,ShardStore::Error,F"],[562,""],[580,"T"],[584,""],[585,"T"],[589,""],[593,"T"],[594,""],[597,"T"],[598,""],[602,"C,P,CL,R"],[604,"U"],[606,"T"],[609,"S"],[611,""],[614,"U,T"],[616,"U"],[618,""],[620,"V"],[622,""]]}],["zcash_encoding",{"t":"FFSFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["Array","CompactSize","MAX_COMPACT_SIZE","Optional","Vector","borrow","","","","borrow_mut","","","","from","","","","into","","","","read","","","","read_collected","","read_collected_mut","","read_t","serialized_size","serialized_size_of_u8_vec","try_from","","","","try_into","","","","type_id","","","","write","","","","write_nonempty","write_sized"],"q":[[0,"zcash_encoding"],[50,"std::io::error"],[51,"std::io"],[52,"alloc::vec"],[53,"core::ops::function"],[54,"core::option"],[55,"core::iter::traits::collect"],[56,"core::convert"],[57,"core::result"],[58,"core::any"],[59,"nonempty"],[60,"core::iter::traits::iterator"],[61,"core::iter::traits::exact_size"]],"i":"`````CdCfChCj32103210321032102121332321032103210321022","f":"``{{}b}``{d{{d{c}}}{}}000{{{d{f}}}{{d{fc}}}{}}000{cc{}}000{{}c{}}000{c{{j{h}}}l}{{cg}{{j{{n{e}}}}}l{}{{Ab{{d{fc}}}{{A`{{j{e}}}}}}}}{{cAdg}{{j{{n{e}}}}}l{}{{Ab{{d{fc}}}{{A`{{j{e}}}}}}}}{{cg}{{j{{Af{e}}}}}l{}{{Ab{c}{{A`{{j{e}}}}}}}}{{cg}{{j{i}}}l{}{{Ab{{d{fc}}}{{A`{{j{e}}}}}}}{{Ah{e}}}}{{cAdg}{{j{i}}}l{}{{Ab{{d{fc}}}{{A`{{j{e}}}}}}}{{Ah{e}}}}{{cg}{{j{i}}}l{}{{Aj{{d{fc}}}{{A`{{j{e}}}}}}}{{Ah{e}}}}{{cAdg}{{j{i}}}l{}{{Aj{{d{fc}}}{{A`{{j{e}}}}}}}{{Ah{e}}}}{c{{j{e}}}l{{Al{h}}}}{AdAd}{{{d{{B`{An}}}}}Ad}{c{{Bb{e}}}{}{}}000{{}{{Bb{c}}}{}}000{dBd}000{{cAd}{{j{Bf}}}Bh}{{c{d{{B`{e}}}}g}{{j{Bf}}}Bh{}{{Ab{{d{fc}}{d{e}}}{{A`{{j{Bf}}}}}}}}{{cgi}{{j{Bf}}}Bh{}{{Bl{}{{Bj{e}}}}}{{Ab{{d{fc}}{d{e}}}{{A`{{j{Bf}}}}}}}}{{c{Af{e}}g}{{j{Bf}}}Bh{}{{Ab{ce}{{A`{{j{Bf}}}}}}}}{{c{d{{Bn{e}}}}g}{{j{Bf}}}Bh{}{{Ab{{d{fc}}{d{e}}}{{A`{{j{Bf}}}}}}}}{{cgi}{{j{Bf}}}Bh{}{{C`{}{{Bj{e}}}}Cb}{{Ab{{d{fc}}e}{{A`{{j{Bf}}}}}}}}","D":"Cn","p":[[1,"u32"],[1,"reference",null,null,1],[0,"mut"],[1,"u64"],[8,"Result",50,null,1],[10,"Read",51],[5,"Vec",52],[17,"Output"],[10,"Fn",53],[1,"usize"],[6,"Option",54,null,1],[10,"FromIterator",55],[10,"FnMut",53],[10,"TryFrom",56],[1,"u8"],[1,"slice"],[6,"Result",57,null,1],[5,"TypeId",58],[1,"unit"],[10,"Write",51],[17,"Item"],[10,"IntoIterator",55],[5,"NonEmpty",59],[10,"Iterator",60],[10,"ExactSizeIterator",61],[5,"CompactSize",0],[5,"Vector",0],[5,"Array",0],[5,"Optional",0]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAABMAAgAGAAcAIQALAA==","P":[[5,"T"],[17,"U"],[21,"R"],[22,"R,E,F"],[24,"R,T,F"],[25,"R,E,F,O"],[29,"R,T"],[30,""],[32,"U,T"],[36,"U"],[40,""],[44,"W"],[45,"W,E,F"],[46,"W,E,I,F"],[47,"W,T,F"],[48,"W,E,F"],[49,"W,E,I,F"]]}],["zcash_extensions",{"t":"","n":[],"q":[],"i":"","f":"","D":"`","p":[],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OjAAAAEAAAAAAAAAEAAAAAAA","P":[]}],["zcash_history",{"t":"FGGGPPPPSSPFRPFGGKNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNMNNONMNNOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNOMNNOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNN","n":["Entry","EntryKind","EntryLink","Error","ExpectedInMemory","ExpectedNode","Generated","Leaf","MAX_ENTRY_SIZE","MAX_NODE_DATA_SIZE","Node","NodeData","","Stored","Tree","V1","V2","Version","append_leaf","borrow","","","","","","","","borrow_mut","","","","","","","","clone","","clone_into","","clone_to_uninit","","combine","","","combine_inner","","","complete","consensus_branch_id","","","","default","end_height","","","","end_sapling_root","end_target","end_time","fmt","","","","","","","","from","","","","","","","","from_bytes","","","","hash","","","into","","","","","","","","is_empty","leaf","leaf_count","left","len","link_node_expected","new","","new_leaf","node_expected","read","","","","","resolve_link","right","root","root_node","sapling_tx","start_height","","","","start_sapling_root","start_target","start_time","subtree_commitment","subtree_total_work","to_bytes","","","to_owned","","to_string","","","truncate_leaf","try_from","","","","","","","","try_into","","","","","","","","type_id","","","","","","","","vzip","","","","","","","","write","","","",""],"q":[[0,"zcash_history"],[166,"zcash_history::tree"],[167,"alloc::vec"],[168,"core::result"],[169,"zcash_history::version"],[170,"zcash_history::node_data"],[171,"zcash_history::entry"],[172,"core::fmt"],[173,"std::io::error"],[174,"core::convert"],[175,"std::io"],[176,"primitive_types"],[177,"alloc::string"],[178,"core::any"]],"i":"````n0jBj``0`Ab2````f0CnD`AlAd8764321087607070755053215320053200001108877643210876551055043210876411148411853210414405320000005500718744321087643210876432108764321087653210","f":"````````{{}b}0````````{{{h{d{f{c}}}}}{{A`{{l{j}}n}}}Ab}{h{{h{c}}}{}}0000000{{{h{d}}}{{h{dc}}}{}}0000000{{{h{Ad}}}Ad}{{{h{j}}}j}{{h{h{dc}}}Af{}}0{{hAh}Af}0{{{h{c}}{h{c}}}c{}}0{{{h{Ad}}{h{Ad}}}Ad}{{{Aj{Ah}}{h{c}}{h{c}}}c{}}00{{{h{{Al{c}}}}}AnAb}{{{h{c}}}B`{}}00{AdB`}{{}Ad}{{{h{c}}}Bb{}}00{AdBb}{AdAj}44{{{h{{Al{c}}}}{h{dBd}}}BfAb}{{{h{{Al{c}}}}{h{dBd}}}Bf{BhAb}}{{{h{Ad}}{h{dBd}}}Bf}{{{h{n}}{h{dBd}}}Bf}0{{{h{j}}{h{dBd}}}Bf}0{{{h{Bj}}{h{dBd}}}Bf}{cc{}}0000000{{B`c}{{Bl{e}}}{{C`{{Bn{Ah}}}}}{}}0{{B`c}{{Bl{{Al{e}}}}}{{C`{{Bn{Ah}}}}}Ab}{{B`c}{{Bl{Ad}}}{{C`{{Bn{Ah}}}}}}{{{h{c}}}{{Aj{Ah}}}{}}0{{{h{Ad}}}{{Aj{Ah}}}}{{}c{}}0000000{{{h{{f{c}}}}}AnAb}{{{h{{Al{c}}}}}AnAb}{{{h{{Al{c}}}}}BbAb}{{{h{{Al{c}}}}}{{A`{jn}}}Ab}{{{h{{f{c}}}}}B`Ab}{jn}{{B`{l{{Cb{B`{Al{c}}}}}}{l{{Cb{B`{Al{c}}}}}}}{{f{c}}}Ab}{{jj}{{Al{c}}}Ab}{{}{{Al{c}}}Ab}{{}n}{{B`{h{dc}}}{{Bl{e}}}Cd{}}00{{B`{h{dc}}}{{Bl{{Al{e}}}}}CdAb}{{B`{h{dc}}}{{Bl{Ad}}}Cd}{{{h{{f{c}}}}j}{{A`{{`{c}}n}}}Ab}:{{{h{{f{c}}}}}jAb}{{{h{{f{c}}}}}{{A`{{`{c}}n}}}Ab}{AdBb}{{{h{c}}}Bb{}}001{AdAj}{AdB`}01{AdCf}{{{h{c}}}{{l{Ah}}}{}}0{{{h{Ad}}}{{l{Ah}}}}{hc{}}0{hCh}00{{{h{d{f{c}}}}}{{A`{B`n}}}Ab}{c{{A`{e}}}{}{}}0000000{{}{{A`{c}}}{}}0000000{hCj}0000000{{}c{}}0000000{{{h{c}}{h{de}}}{{Bl{Af}}}{}Cl}00{{{h{{Al{c}}}}{h{de}}}{{Bl{Af}}}AbCl}{{{h{Ad}}{h{dc}}}{{Bl{Af}}}Cl}","D":"Jn","p":[[1,"usize"],[0,"mut"],[5,"Tree",0,166],[1,"reference",null,null,1],[6,"EntryLink",0],[5,"Vec",167],[6,"Error",0],[6,"Result",168,null,1],[10,"Version",0,169],[5,"NodeData",0,170],[1,"unit"],[1,"u8"],[1,"array"],[5,"Entry",0,171],[1,"bool"],[1,"u32"],[1,"u64"],[5,"Formatter",172],[8,"Result",172],[10,"Debug",172],[6,"EntryKind",0],[8,"Result",173,null,1],[1,"slice"],[10,"AsRef",174],[1,"tuple",null,null,1],[10,"Read",175],[5,"U256",176],[5,"String",177],[5,"TypeId",178],[10,"Write",175],[6,"V1",0],[6,"V2",0]],"r":[[0,171],[8,171],[9,170],[11,170],[12,169],[14,166],[15,169],[16,169],[17,169],[18,166],[19,166],[22,171],[23,170],[27,166],[30,171],[31,170],[35,170],[37,170],[39,170],[41,169],[42,169],[43,170],[44,169],[47,171],[48,169],[51,170],[52,170],[53,169],[56,170],[57,170],[58,170],[59,170],[60,171],[61,171],[62,170],[68,166],[71,171],[72,170],[76,169],[77,169],[78,171],[79,170],[80,169],[81,169],[82,170],[83,166],[86,171],[87,170],[91,166],[92,171],[93,171],[94,171],[95,166],[97,166],[98,171],[99,171],[101,169],[104,171],[105,170],[106,166],[107,171],[108,166],[109,166],[110,170],[111,169],[114,170],[115,170],[116,170],[117,170],[118,170],[119,170],[120,169],[121,169],[122,170],[123,170],[125,171],[128,166],[129,166],[132,171],[133,170],[137,166],[140,171],[141,170],[145,166],[148,171],[149,170],[153,166],[156,171],[157,170],[161,169],[164,171],[165,170]],"b":[[60,"impl-Display-for-Entry%3CV%3E"],[61,"impl-Debug-for-Entry%3CV%3E"],[63,"impl-Display-for-Error"],[64,"impl-Debug-for-Error"],[65,"impl-Display-for-EntryLink"],[66,"impl-Debug-for-EntryLink"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAE8ACwAUABUALgABADIAAQA1AAAANwABAD0ABwBnAAEAcQABAHwABACCAB8AowABAA==","P":[[18,"V"],[19,"T"],[35,""],[37,"T"],[39,""],[41,"Version::NodeData"],[43,""],[44,"Version::NodeData"],[47,"V"],[48,"Version::NodeData"],[51,""],[53,"Version::NodeData"],[56,""],[60,"V"],[62,""],[68,"T"],[76,"T,Version::NodeData"],[78,"T,V"],[79,"T"],[80,"Version::NodeData"],[82,""],[83,"U"],[91,"V"],[96,""],[97,"V"],[100,""],[101,"R,Version::NodeData"],[104,"R,V"],[105,"R"],[106,"V"],[110,""],[111,"Version::NodeData"],[114,""],[120,"Version::NodeData"],[122,""],[123,"T"],[125,""],[128,"V"],[129,"U,T"],[137,"U"],[145,""],[153,"V"],[161,"Version::NodeData,W"],[164,"V,W"],[165,"W"]]}],["zcash_keys",{"t":"CCCGPGPPPPPPFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNHHKPGPRPPPGPNNNNNNNMHHHHHNNNNNNMHHHHHHNNNNNNNNNNNNNNNNNNNNNNNNOOTTGPPPGGPGPPPPPPPPPPPPPGFPPPPPGFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNONNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNH","n":["address","encoding","keys","Address","Orchard","Receiver","Sapling","","Tex","Transparent","","Unified","UnifiedAddress","borrow","","","borrow_mut","","","can_receive_as","clone","","clone_into","","clone_to_uninit","","corresponds","decode","","deref","","","deref_mut","","","drop","","","encode","","","eq","","fmt","","from","","","","","","from_receivers","has_orchard","has_sapling","has_transparent","init","","","into","","","orchard","receiver_types","sapling","testing","to_owned","","to_transparent_address","to_zcash_address","","transparent","try_from","","","","try_from_raw_sapling","try_from_raw_tex","try_from_raw_transparent_p2pkh","try_from_raw_transparent_p2sh","try_from_raw_unified","try_from_zcash_address","try_into","","","type_id","","","unknown","vzip","","","arb_addr","arb_unified_addr","AddressCodec","Base58","Bech32DecodeError","Bech32Error","Error","Hrp","HrpMismatch","ReadError","TransparentCodecError","UnsupportedAddressType","borrow","","borrow_mut","","clone","clone_into","clone_to_uninit","decode","decode_extended_full_viewing_key","decode_extended_spending_key","decode_extfvk_with_network","decode_payment_address","decode_transparent_address","deref","","deref_mut","","drop","","encode","encode_extended_full_viewing_key","encode_extended_spending_key","encode_payment_address","encode_payment_address_p","encode_transparent_address","encode_transparent_address_p","eq","fmt","","","","from","","","","init","","into","","to_owned","to_string","","try_from","","try_into","","type_id","","vzip","","actual","expected","ALLOW_ALL","","AddressGenerationError","AllAvailableKeys","Allow","Custom","DecodingError","DerivationError","DiversifierSpaceExhausted","Era","EraInvalid","EraMismatch","InsufficientData","InvalidSaplingDiversifierIndex","InvalidTransparentChildIndex","KeyDataInvalid","KeyNotAvailable","LengthInvalid","LengthMismatch","Omit","Orchard","","ReadError","ReceiverRequirement","ReceiverRequirements","ReceiverTypeNotSupported","Require","ShieldedReceiverRequired","Transparent","TypecodeInvalid","UnifiedAddressRequest","UnifiedFullViewingKey","UnifiedIncomingViewingKey","UnifiedSpendingKey","address","","borrow","","","","","","","","","","borrow_mut","","","","","","","","","","clone","","","","","","","clone_into","","","","","","","clone_to_uninit","","","","","","","custom","decode","","default_address","","","default_transparent_address","deref","","","","","","","","","","deref_mut","","","","","","","","","","drop","","","","","","","","","","encode","","eq","","","find_address","","fmt","","","","","","","","","","","","","from","","","","","","","","","","","from_bytes","from_sapling_extended_full_viewing_key","from_seed","has_orchard","has_sapling","has_transparent","init","","","","","","","","","","intersect","","into","","","","","","","","","","new","","","orchard","","","","p2pkh","parse","receiver_requirements","sapling","","","","","testing","to_bytes","to_owned","","","","","","","to_receiver_requirements","to_string","","","to_unified_full_viewing_key","to_unified_incoming_viewing_key","transparent","","","try_from","","","","","","","","","","try_into","","","","","","","","","","type_id","","","","","","","","","","unsafe_custom","unsafe_new","vzip","","","","","","","","","","DiversifiableFullViewingKey","ExtendedFullViewingKey","ExtendedSpendingKey","address","","borrow","","","borrow_mut","","","change_address","clone","","","clone_into","","","clone_to_uninit","","","decrypt_diversifier","default_address","","","deref","","","deref_mut","","","derive_child","derive_internal","","diversified_address","diversified_change_address","drop","","","eq","","expsk","find_address","","fmt","","","from","","","","","from_bytes","","from_path","fvk","","init","","","into","","","master","read","","spending_key","to_bytes","","to_diversifiable_full_viewing_key","","to_extended_full_viewing_key","to_external_ivk","to_internal_fvk","to_ivk","to_nk","to_ovk","to_owned","","","try_from","","","try_into","","","type_id","","","vzip","","","write","","arb_unified_spending_key"],"q":[[0,"zcash_keys"],[3,"zcash_keys::address"],[91,"zcash_keys::address::testing"],[93,"zcash_keys::encoding"],[153,"zcash_keys::encoding::Bech32DecodeError"],[155,"zcash_keys::keys"],[403,"zcash_keys::keys::sapling"],[497,"zcash_keys::keys::testing"],[498,"zcash_protocol"],[499,"zcash_address"],[500,"alloc::string"],[501,"core::result"],[502,"zcash_protocol::consensus"],[503,"core::option"],[504,"core::fmt"],[505,"zcash_transparent::address"],[506,"sapling_crypto::address"],[507,"orchard::address"],[508,"zcash_address::kind::unified"],[509,"alloc::vec"],[510,"zcash_address::kind::unified::address"],[511,"zcash_address::convert"],[512,"core::any"],[513,"proptest::strategy::traits"],[514,"sapling_crypto::zip32"],[515,"bs58::decode"],[516,"bech32::primitives::decode"],[517,"bech32"],[518,"zip32"],[519,"zcash_transparent::keys"],[520,"bip32::error"],[521,"orchard::keys"],[522,"zcash_address::kind::unified::fvk"],[523,"sapling_crypto::keys"],[524,"std::io::error"],[525,"std::io"]],"i":"````Ab`0f0100`1l1201101010120120120120100101012011110000201201000`01121020011111112012010201```Ed`DhDl111`212121110`````1212120``````111221112121211212121212Ej0D`Fh`1Ff2``F``Fn001101002G`Fl2``34312````ElFb324Fd67982143506798210679821067982106798219210210435067982143506798214350679821213572144355066798214435067982102011143506798217843506798218210821821`0821`00679821145602021435067982143506798214350679821984350679821```DnGhE`210211021021021102102102100211021020210210211101012021021002`010201111102102102102102102`","f":"`````````````{b{{b{c}}}{}}00{{{b{d}}}{{b{dc}}}{}}00{{{b{f}}h}j}{{{b{l}}}l}{{{b{f}}}f}{{b{b{dc}}}n{}}0{{bA`}n}0{{{b{Ab}}{b{Ad}}}j}{{{b{c}}{b{Af}}}{{Aj{lAh}}}Al}{{{b{c}}{b{Af}}}{{An{f}}}Al}{B`{{b{c}}}{}}00{B`{{b{dc}}}{}}00{B`n}00{{{b{l}}{b{c}}}AhAl}0{{{b{f}}{b{c}}}AhAl}{{{b{l}}{b{l}}}j}{{{b{f}}{b{f}}}j}{{{b{l}}{b{dBb}}}Bd}{{{b{f}}{b{dBb}}}Bd}{cc{}}0{Bff}1{lf}{Bhf}{{{An{Bj}}{An{Bh}}{An{Bf}}}{{An{l}}}}{{{b{l}}}j}00{{}B`}00{{}c{}}00{{{b{l}}}{{An{{b{Bj}}}}}}{{{b{l}}}{{Bn{Bl}}}}{{{b{l}}}{{An{{b{Bh}}}}}}`{bc{}}0{{{b{f}}}{{An{Bf}}}}{{{b{Ab}}C`}Ad}{{{b{f}}{b{c}}}AdAl}{{{b{l}}}{{An{{b{Bf}}}}}}{c{{Aj{e}}}{}{}}{Cb{{Aj{lc}}}{}}11{{{Cd{A`}}}{{Aj{f{Cf{c}}}}}{}}000{Cb{{Aj{f{Cf{c}}}}}{}}{{{b{c}}Ad}{{Aj{f{Cf{{b{Af}}}}}}}Al}{{}{{Aj{c}}}{}}00{bCh}00{{{b{l}}}{{b{{Cn{{Cl{Cj{Bn{A`}}}}}}}}}}{{}c{}}00{D`{{`{{Dd{}{{Db{f}}}}}}}}{{DfD`}{{`{{Dd{}{{Db{l}}}}}}}}``````````{b{{b{c}}}{}}0{{{b{d}}}{{b{dc}}}{}}0{{{b{Dh}}}Dh}{{b{b{dc}}}n{}}{{bA`}n}{{{b{c}}{b{Af}}}{{Aj{{Dl{}{{Dj{e}}}}e}}}{}{}}{{{b{Af}}{b{Af}}}{{Aj{DnDh}}}}{{{b{Af}}{b{Af}}}{{Aj{E`Dh}}}}{{{b{Af}}}{{Aj{{Cl{C`Dn}}Dh}}}}{{{b{Af}}{b{Af}}}{{Aj{BhDh}}}}{{{b{{Cn{A`}}}}{b{{Cn{A`}}}}{b{Af}}}{{Aj{{An{Bf}}Eb}}}}{B`{{b{c}}}{}}0{B`{{b{dc}}}{}}0{B`n}0{{{b{{Dl{}{{Dj{c}}}}}}{b{e}}}Ah{}{}}{{{b{Af}}{b{Dn}}}Ah}{{{b{Af}}{b{E`}}}Ah}{{{b{Af}}{b{Bh}}}Ah}{{{b{c}}{b{Bh}}}AhAl}{{{b{{Cn{A`}}}}{b{{Cn{A`}}}}{b{Bf}}}Ah}{{{b{c}}{b{Bf}}}AhAl}{{{b{Dh}}{b{Dh}}}j}{{{b{Dh}}{b{dBb}}}Bd}0{{{b{Ed}}{b{dBb}}}Bd}0{cc{}}{EfDh}{EhDh}2{{}B`}0{{}c{}}0{bc{}}{bAh}0{c{{Aj{e}}}{}{}}0{{}{{Aj{c}}}{}}0{bCh}0{{}c{}}0{EjAh}0``````````````````````````````````{{{b{El}}EnD`}{{Aj{lF`}}}}{{{b{Fb}}EnD`}{{Aj{lF`}}}}{b{{b{c}}}{}}000000000{{{b{d}}}{{b{dc}}}{}}000000000{{{b{Fd}}}Fd}{{{b{F`}}}F`}{{{b{Ff}}}Ff}{{{b{D`}}}D`}{{{b{Fh}}}Fh}{{{b{El}}}El}{{{b{Fb}}}Fb}{{b{b{dc}}}n{}}000000{{bA`}n}000000{{FfFfFf}{{Aj{D`n}}}}{{{b{c}}{b{Af}}}{{Aj{ElAh}}}Al}{{{b{c}}{b{Af}}}{{Aj{FbAh}}}Al}{{{b{Fd}}D`}{{Cl{lEn}}}}{{{b{El}}D`}{{Aj{{Cl{lEn}}F`}}}}{{{b{Fb}}D`}{{Aj{{Cl{lEn}}F`}}}}{{{b{Fd}}}{{Cl{BfFj}}}}{B`{{b{c}}}{}}000000000{B`{{b{dc}}}{}}000000000{B`n}000000000{{{b{El}}{b{c}}}AhAl}{{{b{Fb}}{b{c}}}AhAl}{{{b{Fl}}{b{Fl}}}j}{{{b{Fn}}{b{Fn}}}j}{{{b{Ff}}{b{Ff}}}j}{{{b{El}}EnD`}{{Aj{{Cl{lEn}}F`}}}}{{{b{Fb}}EnD`}{{Aj{{Cl{lEn}}F`}}}}{{{b{G`}}{b{dBb}}}Bd}0{{{b{Fl}}{b{dBb}}}Bd}{{{b{Fn}}{b{dBb}}}Bd}0{{{b{Fd}}{b{dBb}}}Bd}{{{b{F`}}{b{dBb}}}Bd}0{{{b{Ff}}{b{dBb}}}Bd}{{{b{D`}}{b{dBb}}}Bd}{{{b{Fh}}{b{dBb}}}Bd}{{{b{El}}{b{dBb}}}Bd}{{{b{Fb}}{b{dBb}}}Bd}{cc{}}{GbG`}111111111{{Fl{b{{Cn{A`}}}}}{{Aj{FdFn}}}}{Dn{{Aj{ElG`}}}}{{{b{c}}{b{{Cn{A`}}}}Gd}{{Aj{FdG`}}}Al}{{{b{Fb}}}j}00{{}B`}000000000{{FfFf}{{Aj{Ffn}}}}{{{b{Fh}}{b{Fh}}}{{Aj{Fhn}}}}{{}c{}}000000000{{FfFfFf}{{Aj{Fhn}}}}{{{An{Gf}}{An{Gh}}{An{Gj}}}{{Aj{ElG`}}}}{{{An{Gl}}{An{Gn}}{An{H`}}}Fb}{{{b{Fd}}}{{b{Hb}}}}{{{b{Fh}}}Ff}{{{b{El}}}{{An{{b{Gj}}}}}}{{{b{Fb}}}{{b{{An{H`}}}}}}2{{{b{Hd}}}{{Aj{ElFn}}}}{{{b{Fb}}D`}{{Aj{FhF`}}}}`{{{b{Fd}}}{{b{E`}}}}5{{{b{El}}}{{An{{b{Gh}}}}}}{{{b{Fb}}}{{b{{An{Gn}}}}}}`{{{b{Fd}}Fl}{{Bn{A`}}}}{bc{}}000000{{{b{Fb}}}{{Aj{Fhn}}}}{bAh}00{{{b{Fd}}}El}{{{b{El}}}Fb}{{{b{Fd}}}{{b{Hf}}}}{{{b{El}}}{{An{{b{Gf}}}}}}{{{b{Fb}}}{{b{{An{Gl}}}}}}{c{{Aj{e}}}{}{}}000000000{{}{{Aj{c}}}{}}000000000{bCh}000000000{{FfFfFf}D`}{{FfFfFf}Fh}{{}c{}}000000000```{{{b{Dn}}En}{{An{Bh}}}}{{{b{Gh}}En}{{An{Bh}}}}{b{{b{c}}}{}}00{{{b{d}}}{{b{dc}}}{}}00{{{b{Gh}}}{{Cl{EnBh}}}}{{{b{E`}}}E`}{{{b{Dn}}}Dn}{{{b{Gh}}}Gh}{{b{b{dc}}}n{}}00{{bA`}n}00{{{b{Gh}}{b{Bh}}}{{An{{Cl{EnHh}}}}}}{{{b{E`}}}{{Cl{EnBh}}}}{{{b{Dn}}}{{Cl{EnBh}}}}8{B`{{b{c}}}{}}00{B`{{b{dc}}}{}}00{{{b{E`}}Hj}E`}:9{{{b{Gh}}Hl}{{An{Bh}}}}0{B`n}00{{{b{E`}}{b{E`}}}j}{{{b{Dn}}{b{Dn}}}j}{E`Hn}{{{b{Dn}}En}{{An{{Cl{EnBh}}}}}}{{{b{Gh}}En}{{An{{Cl{EnBh}}}}}}{{{b{E`}}{b{dBb}}}{{Aj{nI`}}}}{{{b{Dn}}{b{dBb}}}{{Aj{nI`}}}}{{{b{Gh}}{b{dBb}}}{{Aj{nI`}}}}{cc{}}0{DnGh}{{{b{Dn}}}Gh}2{{{b{{Cn{A`}}}}}{{Aj{E`Ib}}}}{{{b{{Cd{A`}}}}}{{An{Gh}}}}{{{b{E`}}{b{{Cn{Hj}}}}}E`}{{{b{Gh}}}{{b{Id}}}}{DnId}{{}B`}00{{}c{}}00{{{b{{Cn{A`}}}}}E`}{c{{Aj{E`If}}}Ih}{c{{Aj{DnIf}}}Ih}{{{b{{Cn{A`}}}}CjGd}E`}{{{b{E`}}}{{Cd{A`}}}}{{{b{Gh}}}{{Cd{A`}}}}{{{b{E`}}}Gh}>{{{b{E`}}}Dn}{{{b{Gh}}}Gn}{{{b{Gh}}}Id}{{{b{Gh}}Hh}Ij}{{{b{Gh}}Hh}Il}{{{b{Gh}}Hh}In}{bc{}}00{c{{Aj{e}}}{}{}}00{{}{{Aj{c}}}{}}00{bCh}00{{}c{}}00{{{b{E`}}c}{{Aj{nIf}}}J`}{{{b{Dn}}c}{{Aj{nIf}}}J`}{Df{{`{{Dd{}{{Db{Fd}}}}}}}}","D":"AE`","p":[[1,"reference",null,null,1],[0,"mut"],[6,"Address",3],[6,"PoolType",498],[1,"bool"],[5,"UnifiedAddress",3],[1,"unit"],[1,"u8"],[6,"Receiver",3],[5,"ZcashAddress",499],[1,"str"],[5,"String",500],[6,"Result",501,null,1],[10,"Parameters",502],[6,"Option",503,null,1],[1,"usize"],[5,"Formatter",504],[8,"Result",504],[6,"TransparentAddress",505],[5,"PaymentAddress",506],[5,"Address",507],[6,"Typecode",508],[5,"Vec",509],[6,"NetworkType",502],[5,"Address",510],[1,"array"],[6,"ConversionError",511],[5,"TypeId",512],[1,"u32"],[1,"tuple",null,null,1],[1,"slice"],[6,"UnifiedAddressRequest",155],[17,"Value"],[10,"Strategy",513],[6,"Network",502],[6,"Bech32DecodeError",93],[17,"Error"],[10,"AddressCodec",93],[5,"ExtendedFullViewingKey",403,514],[5,"ExtendedSpendingKey",403,514],[6,"Error",515],[6,"TransparentCodecError",93],[6,"CheckedHrpstringError",516],[6,"DecodeError",517],[15,"HrpMismatch",153],[5,"UnifiedFullViewingKey",155],[5,"DiversifierIndex",518],[6,"AddressGenerationError",155],[5,"UnifiedIncomingViewingKey",155],[5,"UnifiedSpendingKey",155],[6,"ReceiverRequirement",155],[5,"ReceiverRequirements",155],[5,"NonHardenedChildIndex",519],[6,"Era",155],[6,"DecodingError",155],[6,"DerivationError",155],[6,"Error",520],[5,"AccountId",518],[5,"AccountPubKey",519],[5,"DiversifiableFullViewingKey",403,514],[5,"FullViewingKey",521],[5,"ExternalIvk",519],[5,"IncomingViewingKey",514],[5,"IncomingViewingKey",521],[5,"SpendingKey",521],[5,"Ufvk",522],[5,"AccountPrivKey",519],[6,"Scope",518],[5,"ChildIndex",518],[5,"Diversifier",523],[5,"ExpandedSpendingKey",523],[5,"Error",504],[6,"DecodingError",523],[5,"FullViewingKey",523],[5,"Error",524],[10,"Read",525],[5,"SaplingIvk",523],[5,"NullifierDerivingKey",523],[5,"OutgoingViewingKey",523],[10,"Write",525]],"r":[[403,514],[404,514],[405,514],[406,514],[407,514],[408,514],[409,514],[410,514],[411,514],[412,514],[413,514],[414,514],[415,514],[416,514],[417,514],[418,514],[419,514],[420,514],[421,514],[422,514],[423,514],[424,514],[425,514],[426,514],[427,514],[428,514],[429,514],[430,514],[431,514],[432,514],[433,514],[434,514],[435,514],[436,514],[437,514],[438,514],[439,514],[440,514],[441,514],[442,514],[443,514],[444,514],[445,514],[446,514],[447,514],[448,514],[449,514],[450,514],[451,514],[452,514],[453,514],[454,514],[455,514],[456,514],[457,514],[458,514],[459,514],[460,514],[461,514],[462,514],[463,514],[464,514],[465,514],[466,514],[467,514],[468,514],[470,514],[471,514],[472,514],[473,514],[474,514],[475,514],[476,514],[477,514],[478,514],[479,514],[480,514],[481,514],[482,514],[483,514],[484,514],[485,514],[486,514],[487,514],[488,514],[489,514],[490,514],[491,514],[492,514],[493,514],[494,514],[495,514],[496,514]],"b":[[38,"impl-AddressCodec%3CP%3E-for-UnifiedAddress"],[39,"impl-UnifiedAddress"],[47,"impl-From%3CTransparentAddress%3E-for-Address"],[49,"impl-From%3CUnifiedAddress%3E-for-Address"],[50,"impl-From%3CPaymentAddress%3E-for-Address"],[130,"impl-Display-for-Bech32DecodeError"],[131,"impl-Debug-for-Bech32DecodeError"],[132,"impl-Debug-for-TransparentCodecError"],[133,"impl-Display-for-TransparentCodecError"],[135,"impl-From%3CCheckedHrpstringError%3E-for-Bech32DecodeError"],[136,"impl-From%3CDecodeError%3E-for-Bech32DecodeError"],[276,"impl-Display-for-DerivationError"],[277,"impl-Debug-for-DerivationError"],[279,"impl-Display-for-DecodingError"],[280,"impl-Debug-for-DecodingError"],[282,"impl-Display-for-AddressGenerationError"],[283,"impl-Debug-for-AddressGenerationError"],[452,"impl-From%3CExtendedFullViewingKey%3E-for-DiversifiableFullViewingKey"],[453,"impl-From%3C%26ExtendedFullViewingKey%3E-for-DiversifiableFullViewingKey"]],"c":"OjAAAAEAAAAAAAAAEAAAANsB","e":"OzAAAAEAAEoBOAAFAAAABwAAAAoAAAAOAAUAFQAFABwAAAAeAAkAKgADADAAAAAyAAEAOAACAEEAAgBIAAgAUgAFAFkABABfAA8AdQAFAIIABACIAAEAiwABAI8ADACfAAAAoQAAAKMAAACmAAIArQABALAAAACyAAAAuAABAMAAKQDsAAAA7wAeABABAgAVAQwAIwEAAC4BAQAzAQkAUwEAAFgBAABaAQYAYgEDAGoBHgCKAQkAlQEAAJkBBQCgAQgArQEFALgBBQDAAQIAxQEBAMwBAwDTAQAA1QEAANkBAgDhAQ4A8QEBAA==","P":[[13,"T"],[19,""],[22,"T"],[24,""],[27,"P"],[29,"T"],[35,""],[38,"P"],[41,""],[45,"T"],[47,""],[48,"T"],[49,""],[58,"U"],[61,""],[65,"T"],[67,""],[69,"P"],[70,""],[71,"U,T"],[72,"TryFrom::Error"],[73,"U,T"],[75,"TryFromRawAddress::Error"],[80,"P"],[81,"U"],[84,""],[88,"V"],[91,""],[103,"T"],[107,""],[108,"T"],[109,""],[110,"P,AddressCodec::Error"],[111,""],[116,"T"],[120,""],[122,"AddressCodec::Error,P"],[123,""],[126,"P"],[127,""],[128,"P"],[129,""],[134,"T"],[135,""],[137,"T"],[138,""],[140,"U"],[142,"T"],[143,""],[145,"U,T"],[147,"U"],[149,""],[151,"V"],[153,""],[191,"T"],[211,""],[218,"T"],[225,""],[233,"P"],[235,""],[239,"T"],[259,""],[269,"P"],[271,""],[289,"T"],[290,""],[291,"T"],[300,""],[302,"P"],[303,""],[318,"U"],[328,""],[345,"T"],[352,""],[361,"U,T"],[371,"U"],[381,""],[393,"V"],[406,""],[408,"T"],[414,""],[418,"T"],[421,""],[428,"T"],[434,""],[450,"T"],[452,""],[454,"T"],[455,""],[463,"U"],[466,""],[467,"R"],[469,""],[480,"T"],[483,"U,T"],[486,"U"],[489,""],[492,"V"],[495,"W"],[497,""]]}],["zcash_primitives",{"t":"CCCCCCCCFFFONNNNNNNNNNNNNNNNNNNNNNEONNNNNNNNNNNNNNNOOONOONNNNNNNNNNNNONNNNFPPGPPSPPSPFPGKGGPPPPPPKPPPPSPFPSMNNNNMNNNNMNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNMNNNNMNNNNMNNNNMNNNNMNNNNMNNNNNNNNNNNNNNNNNNNMNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHHSSSSSSCCCSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSPFPGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNCNNNNNNNNNNNNNFFTTFFFTKFFTFFFFTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHPPGPPGFPFPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKHMHHHHHHHHCMHHHHHHHKFRGRPRRRRPFFKRRFFFGFFPPPNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNMCNNNNNNNNNNNNNNNNNNNNNNNMMMMNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNONNNNNNNNNNNNNNNOOONOONNNNONOCCCNNNNCNNNNNNNONNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNPGFFPPPSGPGPPPPPPFFFPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNONNONOOONNNONNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNOOISEIIIIICCOCOOOCCOIISIPPCHHHSSSKMMHHHHHHHHHHCHHHHHHHHHKMMMMHHHHHHHCHHFFNNNNNNNNNNNNNNNNNNNNNNNNOOONNNNNNNNNNNNNNKFFFKFRFFNONNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNMNNNNCONNNNNOOOCNNNNNNNNNNNNNNNNNNNNNNNNNONOONNNNNNNNNGPPPFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFPPPPPPPPPFFGGGGFPPPFGGPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNSHHHHHRKMCCCFNNNNNNNNNNNNNNNNNNNNGKPKTPNNNNNMNNNNNNNNMMNNNNNNMNPGFSSSPSSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNSSSSSPIGFPNNNNNNNNNNNNNNNNNNHNNNNNNNNHHHHHHFFNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNCFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFFPPTGFTCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNTKFTNNNNNNNNNNNNNNNNNNNNNNPGFFPPNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["block","consensus","constants","legacy","memo","merkle_tree","transaction","zip32","BlockHash","BlockHeader","BlockHeaderData","bits","borrow","","","borrow_mut","","","clone","clone_into","clone_to_uninit","deref","","","","deref_mut","","","drop","","","dynamic_usage","dynamic_usage_bounds","eq","equihash","final_sapling_root","fmt","","freeze","from","","","from_slice","hash","","init","","","into","","","merkle_root","nonce","prev_block","read","solution","time","to_owned","to_string","try_from","","","try_from_slice","try_into","","","type_id","","","version","vzip","","","write","BlockHeight","Blossom","","BranchId","Canopy","","H0","Heartwood","","MAIN_NETWORK","Main","MainNetwork","","Network","NetworkConstants","NetworkType","NetworkUpgrade","Nu5","","Nu6","","Overwinter","","Parameters","Regtest","Sapling","","Sprout","TEST_NETWORK","Test","TestNetwork","","ZIP212_GRACE_PERIOD","activation_height","","","","add","b58_pubkey_address_prefix","","","","","b58_script_address_prefix","","","","","b58_sprout_address_prefix","","","","","borrow","","","","","","","borrow_mut","","","","","","","clone","","","","","","","clone_into","","","","","","","clone_to_uninit","","","","","","","cmp","coin_type","","","","","deref","","","","","","","deref_mut","","","","","","","drop","","","","","","","dynamic_usage","","","","","","","dynamic_usage_bounds","","","","","","","eq","","","","","","","fmt","","","","","","","","","for_height","from","","","","","","","","from_u32","from_u64","hash","","","height_bounds","height_range","hrp_sapling_extended_full_viewing_key","","","","","hrp_sapling_extended_spending_key","","","","","hrp_sapling_payment_address","","","","","hrp_tex_address","","","","","hrp_unified_address","","","","","hrp_unified_fvk","","","","","hrp_unified_ivk","","","","","init","","","","","","","into","","","","","","","is_nu_active","network_type","","","","partial_cmp","saturating_sub","sprout_uses_groth_proofs","sub","","testing","to_owned","","","","","","","to_string","","try_from","","","","","","","","","","","try_into","","","","","","","type_id","","","","","","","vzip","","","","","","","arb_branch_id","arb_height","V3_TX_VERSION","V3_VERSION_GROUP_ID","V4_TX_VERSION","V4_VERSION_GROUP_ID","V5_TX_VERSION","V5_VERSION_GROUP_ID","mainnet","regtest","testnet","B58_PUBKEY_ADDRESS_PREFIX","B58_SCRIPT_ADDRESS_PREFIX","B58_SPROUT_ADDRESS_PREFIX","COIN_TYPE","HRP_SAPLING_EXTENDED_FULL_VIEWING_KEY","HRP_SAPLING_EXTENDED_SPENDING_KEY","HRP_SAPLING_PAYMENT_ADDRESS","HRP_TEX_ADDRESS","HRP_UNIFIED_ADDRESS","HRP_UNIFIED_FVK","HRP_UNIFIED_IVK","B58_PUBKEY_ADDRESS_PREFIX","B58_SCRIPT_ADDRESS_PREFIX","B58_SPROUT_ADDRESS_PREFIX","COIN_TYPE","HRP_SAPLING_EXTENDED_FULL_VIEWING_KEY","HRP_SAPLING_EXTENDED_SPENDING_KEY","HRP_SAPLING_PAYMENT_ADDRESS","HRP_TEX_ADDRESS","HRP_UNIFIED_ADDRESS","HRP_UNIFIED_FVK","HRP_UNIFIED_IVK","B58_PUBKEY_ADDRESS_PREFIX","B58_SCRIPT_ADDRESS_PREFIX","B58_SPROUT_ADDRESS_PREFIX","COIN_TYPE","HRP_SAPLING_EXTENDED_FULL_VIEWING_KEY","HRP_SAPLING_EXTENDED_SPENDING_KEY","HRP_SAPLING_PAYMENT_ADDRESS","HRP_TEX_ADDRESS","HRP_UNIFIED_ADDRESS","HRP_UNIFIED_FVK","HRP_UNIFIED_IVK","PublicKeyHash","Script","ScriptHash","TransparentAddress","address","borrow","","borrow_mut","","clone","","clone_into","","clone_to_uninit","","cmp","default","deref","","deref_mut","","drop","","eq","","fmt","","from","","hash","init","","into","","keys","partial_cmp","read","script","serialized_size","shl","","testing","to_owned","","try_from","","try_from_raw_transparent_p2pkh","try_from_raw_transparent_p2sh","try_into","","type_id","","vzip","","write","AccountPrivKey","AccountPubKey","EPHEMERAL","EXTERNAL","EphemeralIvk","ExternalIvk","ExternalOvk","INTERNAL","IncomingViewingKey","InternalIvk","InternalOvk","MAX","NonHardenedChildIndex","NonHardenedChildIter","NonHardenedChildRange","TransparentKeyScope","ZERO","as_bytes","","borrow","","","","","","","","","","","borrow_mut","","","","","","","","","","","clone","","","","","","","clone_into","","","","","","","clone_to_uninit","","","","","","","cmp","const_from_index","ct_eq","custom","default_address","deref","","","","","","","","","","","deref_mut","","","","","","","","","","","derive_address","derive_address_pubkey","derive_ephemeral_address","derive_ephemeral_ivk","derive_external_ivk","derive_external_secret_key","derive_internal_ivk","derive_internal_secret_key","derive_pubkey_at_bip32_path","derive_secret_key","deserialize","","drop","","","","","","","","","","","eq","","external_ovk","fmt","","","","","","","from","","","","","","","","","","","","","from_bytes","from_extended_privkey","from_index","from_seed","index","init","","","","","","","","","","","internal_ovk","into","","","","","","","","","","","into_iter","","next","","ovks_for_shielding","par_bridge","partial_cmp","pubkey_to_address","saturating_add","saturating_sub","serialize","","to_account_pubkey","to_bytes","to_owned","","","","","","","try_from","","","","","","","","","","","","","try_into","","","","","","","","","","","type_id","","","","","","","","","","","vzip","","","","","","","","","","","arb_transparent_addr","Arbitrary","Empty","Error","Future","InvalidUtf8","Memo","MemoBytes","Text","TextMemo","TooLong","as_array","as_slice","borrow","","","","borrow_mut","","","","clone","","","","clone_into","","","","clone_to_uninit","","","","cmp","default","deref","","","","","deref_mut","","","","drop","","","","empty","encode","eq","","","","fmt","","","","from","","","","","","from_bytes","","from_str","init","","","","into","","","","into_bytes","partial_cmp","to_owned","","","","to_string","try_from","","","","","","try_into","","","","type_id","","","","vzip","","","","HashSer","merkle_path_from_slice","read","read_address","read_commitment_tree","read_frontier_v0","read_frontier_v1","read_incremental_witness","read_leu64_usize","read_nonempty_frontier_v1","read_position","testing","write","write_address","write_commitment_tree","write_frontier_v1","write_incremental_witness","write_nonempty_frontier_v1","write_position","write_usize_leu64","Authorization","Authorized","Digest","DigestError","HeaderDigest","NotSigned","OrchardAuth","OrchardDigest","SaplingAuth","SaplingDigest","Sprout","Transaction","TransactionData","TransactionDigest","TransparentAuth","TransparentDigest","TransparentDigests","TxDigests","TxId","TxVersion","TzeDigests","Unauthorized","V3","V4","V5","as_ref","auth_commitment","borrow","","","","","","","","","","borrow_mut","","","","","","","","","","builder","clone","","","","","clone_into","","","","","clone_to_uninit","","","","","cmp","combine","components","consensus_branch_id","deref","","","","","","","","","","","deref_mut","","","","","","","","","","digest","digest_header","digest_orchard","digest_sapling","digest_transparent","drop","","","","","","","","","","dynamic_usage","dynamic_usage_bounds","eq","","","expiry_height","fee_paid","fees","fmt","","","","","","","","","freeze","from","","","","","","","","","","from_bytes","from_parts","has_orchard","has_overwinter","has_sapling","has_sprout","hash","header","header_digest","init","","","","","","","","","","inputs_digest","into","","","","","","","","","","into_data","lock_time","map_authorization","map_bundles","orchard_bundle","orchard_digest","outputs_digest","","partial_cmp","per_input_digest","prevouts_digest","read","","","sapling_bundle","sapling_digest","sapling_value_balance","sequence_digest","sighash","sighash_v4","sighash_v5","sprout_bundle","suggested_for_branch","temporary_zcashd_read_v5_sapling","temporary_zcashd_write_v5_sapling","testing","to_owned","","","","","to_string","transparent_bundle","transparent_digests","try_from","","","","","","","","","","try_into","","","","","","","","","","try_map_bundles","txid","","type_id","","","","","","","","","","util","version","version_group_id","vzip","","","","","","","","","","write","","","write_transparent","write_v4","write_v5","write_v5_header","write_v5_sapling","Balance","BuildConfig","BuildResult","Builder","Bundle","ChangeRequired","Coinbase","DEFAULT_TX_EXPIRY_DELTA","Error","Fee","FeeError","FeeRule","InsufficientFunds","OrchardBuild","OrchardBuilderNotAvailable","OrchardRecipient","OrchardSpend","PcztParts","PcztResult","Progress","SaplingBuild","SaplingBuilderNotAvailable","Standard","TransparentBuild","add_orchard_output","add_orchard_spend","add_sapling_output","add_sapling_spend","add_transparent_input","add_transparent_output","borrow","","","","","","","","borrow_mut","","","","","","","","build","build_for_pczt","clone","clone_into","clone_to_uninit","consensus_branch_id","cur","deref","","","","","","","","deref_mut","","","","","","","","drop","","","","","","","","end","expiry_height","fmt","","","","","","","from","","","","","","","","","","","","","get_fee","init","","","","","","","","into","","","","","","","","lock_time","mock_build","new","orchard","orchard_builder_config","orchard_meta","","params","","pczt_parts","sapling","sapling_builder_config","sapling_inputs","sapling_meta","","sapling_outputs","target_height","to_owned","to_string","","transaction","transparent","transparent_inputs","transparent_outputs","try_from","","","","","","","","try_into","","","","","","","","type_id","","","","","","","","version","vzip","","","","","","","","with_progress_notifier","orchard_anchor","sapling_anchor","Amount","GROTH_PROOF_SIZE","JsDescription","OutPoint","OutputDescription","SpendDescription","TxIn","TxOut","amount","orchard","prevout","sapling","script_pubkey","script_sig","sequence","sprout","transparent","value","Amount","BalanceError","COIN","NonNegativeAmount","Overflow","Underflow","testing","arb_amount","arb_nonnegative_amount","arb_positive_amount","FLAGS_EXPECTED_UNSET","FLAG_OUTPUTS_ENABLED","FLAG_SPENDS_ENABLED","MapAuth","map_authorization","map_spend_auth","read_action_without_auth","read_anchor","read_cmx","read_flags","read_note_ciphertext","read_nullifier","read_signature","read_v5_bundle","read_value_commitment","read_verification_key","testing","write_action_without_auth","write_cmx","write_note_ciphertext","write_nullifier","write_v5_bundle","write_value_commitment","write_verification_key","arb_bundle","arb_bundle_for_version","MapAuth","map_auth_sig","map_authorization","map_output_proof","map_spend_proof","read_base","read_zkproof","temporary_zcashd_read_output_v4","temporary_zcashd_read_spend_v4","temporary_zcashd_read_v4_components","temporary_zcashd_write_output_v4","temporary_zcashd_write_v4_components","testing","zip212_enforcement","arb_bundle_for_version","Bundle","JsDescription","borrow","","borrow_mut","","clone","","clone_into","","clone_to_uninit","","deref","","deref_mut","","drop","","fmt","","from","","init","","into","","joinsplit_pubkey","joinsplit_sig","joinsplits","net_value","read","to_owned","","try_from","","try_into","","type_id","","value_balance","vzip","","write","Authorization","Authorized","Bundle","EffectsOnly","MapAuth","OutPoint","ScriptSig","TxIn","TxOut","apply_signatures","authorization","borrow","","","","","","borrow_mut","","","","","","builder","clone","","","","","clone_into","","","","","clone_to_uninit","","","","","cmp","deref","","","","","","deref_mut","","","","","","drop","","","","","","eq","","","","","fake","fmt","","","","","","from","","","","","","hash","init","","","","","","input_amounts","input_scriptpubkeys","into","","","","","","is_coinbase","map_authorization","","map_script_sig","n","new","","partial_cmp","pczt","prevout","read","","","recipient_address","script_pubkey","","script_sig","sequence","testing","to_owned","","","","","try_from","","","","","","try_into","","","","","","txid","type_id","","","","","","value","","value_balance","vin","vout","vzip","","","","","","write","","","Error","InvalidAddress","InvalidAmount","MissingSigningKey","TransparentBuilder","TransparentInputInfo","TransparentSigningSet","Unauthorized","add_input","add_key","add_output","borrow","","","","","borrow_mut","","","","","build","build_for_pczt","clone","","clone_into","","clone_to_uninit","","coin","","default","deref","","","","","deref_mut","","","","","drop","","","","","empty","eq","fmt","","","","from","","","","","init","","","","","input_amounts","input_scriptpubkeys","inputs","into","","","","","new","outpoint","","outputs","to_owned","","to_string","try_from","","","","","try_into","","","","","type_id","","","","","value_balance","vzip","","","","","Bip32Derivation","Bundle","Input","InputUpdater","InvalidIndex","InvalidRequiredHeightLocktime","InvalidRequiredTimeLocktime","InvalidSighashType","InvalidValue","MissingScriptSig","MissingSignature","NotP2sh","","Output","OutputUpdater","ParseError","SignerError","SpendFinalizerError","TxExtractorError","Unbound","UnexpectedSignatures","UnsupportedScriptPubkey","","Updater","UpdaterError","VerifyError","WrongRedeemScript","","WrongSpendingKey","bip32_derivation","","borrow","","","","","","","","","","","","","","borrow_mut","","","","","","","","","","","","","","bundle","deref","","","","","","","","","","","","","","deref_mut","","","","","","","","","","","","","","derivation_path","drop","","","","","","","","","","","","","","eq","extract","extract_bip_44_fields","extract_effects","finalize_spends","fmt","","","","","","","","","","","from","","","","","","","","","","","","","","hash160_preimages","hash256_preimages","init","","","","","","","","","","","","","","input_amounts","input_scriptpubkeys","inputs","inputs_mut","into","","","","","","","","","","","","","","outputs","parse","","","","partial_signatures","prevout_index","prevout_txid","proprietary","","redeem_script","","required_height_lock_time","required_time_lock_time","ripemd160_preimages","script_pubkey","","script_sig","seed_fingerprint","sequence","set_bip32_derivation","","set_hash160_preimage","set_hash256_preimage","set_proprietary","","set_redeem_script","","set_ripemd160_preimage","set_sha256_preimage","set_user_address","sha256_preimages","sighash_type","sign","try_from","","","","","","","","","","","","","","try_into","","","","","","","","","","","","","","type_id","","","","","","","","","","","","","","update_input_with","update_output_with","update_with","user_address","value","","verify","","vzip","","","","","","","","","","","","","","VALID_OPCODES","arb_bundle","arb_outpoint","arb_script","arb_txin","arb_txout","Error","FeeRule","fee_required","fixed","transparent","zip317","FeeRule","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","drop","fee_required","fixed_fee","fmt","from","init","into","non_standard","to_owned","try_from","try_into","type_id","vzip","InputSize","InputView","Known","OutputView","STANDARD_P2PKH","Unknown","borrow","borrow_mut","clone","clone_into","clone_to_uninit","coin","deref","deref_mut","drop","eq","fmt","from","init","into","outpoint","script_pubkey","serialized_size","","to_owned","try_from","try_into","type_id","value","vzip","Balance","FeeError","FeeRule","GRACE_ACTIONS","MARGINAL_FEE","MINIMUM_FEE","NonP2pkhInputs","P2PKH_STANDARD_INPUT_SIZE","P2PKH_STANDARD_OUTPUT_SIZE","borrow","","borrow_mut","","clone","","clone_into","","clone_to_uninit","","deref","","deref_mut","","drop","","eq","fee_required","fmt","","","from","","","grace_actions","init","","into","","marginal_fee","non_standard","p2pkh_standard_input_size","p2pkh_standard_output_size","standard","to_owned","","to_string","try_from","","try_into","","type_id","","vzip","","SIGHASH_ALL","SIGHASH_ANYONECANPAY","SIGHASH_MASK","SIGHASH_NONE","SIGHASH_SINGLE","Shielded","SighashType","SignableInput","SignatureHash","Transparent","as_ref","borrow","","borrow_mut","","deref","","deref_mut","","drop","","from","","hash_type","init","","into","","signature_hash","try_from","","try_into","","type_id","","vzip","","v4_signature_hash","v5_signature_hash","arb_tx","arb_tx_version","arb_txdata","arb_txid","BlockTxCommitmentDigester","TxIdDigester","borrow","","borrow_mut","","combine","","deref","","deref_mut","","digest_header","","digest_orchard","","digest_sapling","","digest_transparent","","drop","","from","","init","","into","","to_txid","try_from","","try_into","","type_id","","vzip","","sha256d","HashReader","HashWriter","borrow","","borrow_mut","","default","deref","","deref_mut","","drop","","flush","from","","init","","into","","into_base_reader","into_hash","","new","read","try_from","","try_into","","type_id","","vzip","","write","AccountId","ChainCode","ChildIndex","DiversifierIndex","DiversifierIndexOverflowError","External","Internal","PRIVATE_USE","Scope","TryFromIntError","ZERO","arbitrary","as_bytes","","borrow","","","","","","","borrow_mut","","","","","","","clone","","","","","","","clone_into","","","","","","","clone_to_uninit","","","","","","","cmp","","conditional_select","ct_eq","","default","","deref","","","","","","","deref_mut","","","","","","","drop","","","","","","","dynamic_usage","","dynamic_usage_bounds","","eq","","","","","fingerprint","fmt","","","","","","","","","from","","","","","","","","","","","","","from_index","hardened","hardened_only","hash","","","increment","index","init","","","","","","","into","","","","","","","new","","next","partial_cmp","","registered","to_owned","","","","","","","to_string","","try_from","","","","","","","","","try_into","","","","","","","type_id","","","","","","","vzip","","","","","","","SecretKey","borrow","borrow_mut","chain_code","data","deref","deref_mut","drop","from","from_path","init","into","into_full_width_key","try_from","try_into","type_id","vzip","SeedFingerprint","borrow","borrow_mut","clone","clone_into","clone_to_uninit","cmp","deref","deref_mut","drop","eq","fmt","from","from_bytes","from_seed","hash","init","into","partial_cmp","to_bytes","to_owned","try_from","try_into","type_id","vzip","CKD_DOMAIN","Context","HardenedOnlyKey","MKG_DOMAIN","borrow","borrow_mut","clone","clone_into","clone_to_uninit","ct_eq","deref","deref_mut","derive_child","derive_child_with_tag","drop","fmt","from","init","into","master","parts","to_owned","try_from","try_into","type_id","vzip","ContextStringInvalid","DerivationError","PathElement","SecretKey","SeedInvalid","SubpathEmpty","borrow","","","borrow_mut","","","chain_code","child_index","clone","clone_into","clone_to_uninit","cryptovalue_from_subpath","data","deref","","","deref_mut","","","derive_child","derive_child_cryptovalue","derive_child_with_tag","drop","","","eq","fmt","","from","","","from_parts","from_subpath","init","","","into","","","new","tag","to_owned","to_string","try_from","","","try_into","","","type_id","","","vzip","",""],"q":[[0,"zcash_primitives"],[8,"zcash_primitives::block"],[74,"zcash_primitives::consensus"],[336,"zcash_primitives::consensus::testing"],[338,"zcash_primitives::constants"],[347,"zcash_primitives::constants::mainnet"],[358,"zcash_primitives::constants::regtest"],[369,"zcash_primitives::constants::testnet"],[380,"zcash_primitives::legacy"],[435,"zcash_primitives::legacy::keys"],[665,"zcash_primitives::legacy::testing"],[666,"zcash_primitives::memo"],[765,"zcash_primitives::merkle_tree"],[785,"zcash_primitives::transaction"],[1034,"zcash_primitives::transaction::builder"],[1208,"zcash_primitives::transaction::builder::BuildConfig"],[1210,"zcash_primitives::transaction::components"],[1228,"zcash_primitives::transaction::components::amount"],[1235,"zcash_primitives::transaction::components::amount::testing"],[1238,"zcash_primitives::transaction::components::orchard"],[1262,"zcash_primitives::transaction::components::orchard::testing"],[1264,"zcash_primitives::transaction::components::sapling"],[1278,"zcash_primitives::transaction::components::sapling::testing"],[1279,"zcash_primitives::transaction::components::sprout"],[1322,"zcash_primitives::transaction::components::transparent"],[1470,"zcash_primitives::transaction::components::transparent::builder"],[1569,"zcash_primitives::transaction::components::transparent::pczt"],[1834,"zcash_primitives::transaction::components::transparent::testing"],[1840,"zcash_primitives::transaction::fees"],[1846,"zcash_primitives::transaction::fees::fixed"],[1867,"zcash_primitives::transaction::fees::transparent"],[1897,"zcash_primitives::transaction::fees::zip317"],[1951,"zcash_primitives::transaction::sighash"],[1988,"zcash_primitives::transaction::sighash_v4"],[1989,"zcash_primitives::transaction::sighash_v5"],[1990,"zcash_primitives::transaction::testing"],[1994,"zcash_primitives::transaction::txid"],[2031,"zcash_primitives::transaction::util"],[2032,"zcash_primitives::transaction::util::sha256d"],[2066,"zcash_primitives::zip32"],[2242,"zcash_primitives::zip32::arbitrary"],[2259,"zcash_primitives::zip32::fingerprint"],[2284,"zcash_primitives::zip32::hardened_only"],[2310,"zcash_primitives::zip32::registered"],[2371,"core::option"],[2372,"core::fmt"],[2373,"std::io::error"],[2374,"core::hash"],[2375,"std::io"],[2376,"alloc::vec"],[2377,"alloc::string"],[2378,"core::result"],[2379,"core::any"],[2380,"zcash_protocol::consensus"],[2381,"core::cmp"],[2382,"core::ops::range"],[2383,"proptest::strategy::traits"],[2384,"zcash_transparent::address"],[2385,"zcash_address::convert"],[2386,"zcash_transparent::keys"],[2387,"subtle"],[2388,"bip32::error"],[2389,"secp256k1::key"],[2390,"zip32"],[2391,"bip32::child_number"],[2392,"bip32::extended_key::private_key"],[2393,"rayon::iter::par_bridge"],[2394,"zcash_protocol::memo"],[2395,"incrementalmerkletree"],[2396,"incrementalmerkletree::frontier"],[2397,"core::clone"],[2398,"incrementalmerkletree::witness"],[2399,"zcash_protocol::txid"],[2400,"blake2b_simd"],[2401,"zcash_protocol::value"],[2402,"orchard::bundle"],[2403,"sapling_crypto::bundle"],[2404,"zcash_transparent::bundle"],[2405,"core::convert"],[2406,"core::ops::function"],[2407,"orchard::keys"],[2408,"orchard::address"],[2409,"sapling_crypto::builder"],[2410,"orchard::note"],[2411,"orchard::tree"],[2412,"sapling_crypto::keys"],[2413,"sapling_crypto::address"],[2414,"sapling_crypto::note"],[2415,"sapling_crypto::tree"],[2416,"zcash_transparent::builder"],[2417,"sapling_crypto::zip32"],[2418,"rand_core"],[2419,"sapling_crypto::prover"],[2420,"orchard::builder"],[2421,"std::sync::mpsc"],[2422,"orchard::action"],[2423,"orchard::note::commitment"],[2424,"orchard::note::nullifier"],[2425,"orchard::primitives::redpallas"],[2426,"orchard::value"],[2427,"jubjub"],[2428,"sapling_crypto::note_encryption"],[2429,"zcash_transparent::sighash"],[2430,"zcash_transparent::pczt"],[2431,"alloc::collections::btree::map"],[2432,"zcash_transparent::pczt::updater"],[2433,"zcash_transparent::pczt::tx_extractor"],[2434,"zip32::fingerprint"],[2435,"zcash_transparent::pczt::spend_finalizer"],[2436,"zcash_transparent::pczt::parse"],[2437,"zcash_transparent::pczt::verify"],[2438,"zcash_transparent::pczt::signer"],[2439,"secp256k1"],[2440,"secp256k1::context"],[2441,"core::iter::traits::collect"],[2442,"sha2"],[2443,"crypto_common"],[2444,"zip32::arbitrary"],[2445,"zip32::hardened_only"],[2446,"zip32::registered"],[2447,"zcash_protocol::consensus::testing"],[2448,"zcash_protocol::constants"],[2449,"zcash_protocol::constants::mainnet"],[2450,"zcash_protocol::constants::regtest"],[2451,"zcash_protocol::constants::testnet"],[2452,"zcash_transparent::address::testing"],[2453,"zcash_transparent::bundle::testing"]],"i":"```````````bA`1j1200001120120120000`200212001012012022212200120012012021201`ClDd`10`10`Db`Cn````323232`1322`1`0`CjCfCh3CdD`6325063250632516325871632587163258716325871632587106325163258716325871632587163258716325871632587116325887711632587111657706325063250632506325063250632506325163258716325874432511711`16325871811116325877163258716325871632587````````````````````````````````````````````Eh`0`Ef01010101011001010101010110101`101000`0101110101010``Fd0```0```Ff````0F`FbHhHb3254FhFjFlFnG`6587:943210:943210:943210:943210999:Gd7698;:543217698;:543210414454545047698;:54321;:4;:5432176698;;:5432155:5:7698;:5432147698;:54321767:47:`::0455;:543217698;:::543217698;:543217698;:543217698;:54321`Id0`0I```1`0Hn010Ib321032103210321031321003210321031321032213211103133210321031121032210333210321032103``Ih`````````0`````````Lb`0ANhLf202K````13``````000JjJl1ANj53Lh2LdKbKdKf75:8463210`7821078210782107;`375:8466321075:84632103;;;;75:84632107778633`778463210375:846321073888878075:8463210175:8463210633330217127863032```3866`7821073075:846321075:84632103`675:8463210`3875:846321078666666O````ABd1AAn``2`122222```2202Nj00000ABb1342AA`AAlAB`3467521044555033467521034675210346752103066772103346777775210434675210346752100440521401054214456720443467521034675210346752100346752104ADb0``````````ADd`ADf11``0````ANl0````````Nd0`````````````````````Nb000````````````MnAFl101010101010101010101011100101010101100``````AGf``M`0AGlAG`2MfAGhA@f435210`35210352103521024352104352104352103521024352104352102435210444352105N`603323`232111122`46321546321546321354632111666546321321`A@h00````AGnA@j1012ACnAFn23410331010101122341023410234103444102341023410003234102113104234102341023410323410````AIhAId000AHnAIbAIf4```````101```04AIjAHbAHhAHjAIlAIn96:578AHlAH`65AHd543<9=8:;217605543<9=8:;21760543<9=8:;217600543<9=8:;2176001011<9=8:;21760543<9=8:;2176077543<9=8:;217602211543<9=8:;217601176077776767777670743444343443777543<9=8:;21760543<9=8:;21760543<9=8:;2176055167676543<9=8:;21760``````AAj`0````AJn0000000000000000000``AJj`0000000AK`111111110AKb10222202ABl`````0``AKd10101010101010110011011001010000001101010101`````AKh```0AKf10101010101011010`10101010````````ALdALf101010101010101010101010`10101010```ALjALh100101010010101011011101010100`````Hd0AMd``Gl`AM`Hl2AMb421AMf641532064153206415320641532064245342415320641532064153206464645326`411532006415532222220655`426254153206415320632442`415320610441532206415320641532064153206`AMj000000000000000`AI`00000000000000000000000AMn``0AMl000000000000000000000ANd```00ANbAN`210201222`0102102000102222102001021021122102102102102","f":"```````````{bd}{f{{f{c}}}{}}00{{{f{h}}}{{f{hc}}}{}}00{{{f{j}}}j}{{f{f{hc}}}l{}}{{fn}l}{{{f{A`}}}{{f{b}}}}{Ab{{f{c}}}{}}00{Ab{{f{hc}}}{}}00{Abl}00{{{f{j}}}Ab}{{{f{j}}}{{Af{Ab{Ad{Ab}}}}}}{{{f{j}}{f{j}}}Ah}`{bAj}{{{f{j}}{f{hAl}}}An}0{b{{B`{A`}}}}{cc{}}00{{{f{{Bb{n}}}}}j}{{{f{A`}}}j}{{{f{j}}{f{hc}}}lBd}{{}Ab}00{{}c{}}0088{bj}{c{{B`{A`}}}Bf}{bBh}{bd}{fc{}}{fBj}{c{{Bl{e}}}{}{}}00{{{f{{Bb{n}}}}}{{Ad{j}}}}{{}{{Bl{c}}}{}}00{fBn}00{bC`}{{}c{}}00{{{f{A`}}c}{{B`{l}}}Cb}``````{{}Cd}``{{}Cf}``````````````````{{}Ch}```{{}d}{{{f{Cj}}Cl}{{Ad{Cd}}}}{{{f{Cf}}Cl}{{Ad{Cd}}}}{{{f{Ch}}Cl}{{Ad{Cd}}}}{{{f{Cn}}Cl}{{Ad{Cd}}}}{{Cdd}Cd}{{{f{D`}}}{{Aj{n}}}}{{{f{Db}}}{{Aj{n}}}}{f{{Aj{n}}}}002100021000{f{{f{c}}}{}}000000{{{f{h}}}{{f{hc}}}{}}000000{{{f{Cd}}}Cd}{{{f{Db}}}Db}{{{f{Cf}}}Cf}{{{f{Ch}}}Ch}{{{f{Cn}}}Cn}{{{f{Cl}}}Cl}{{{f{Dd}}}Dd}{{f{f{hc}}}l{}}000000{{fn}l}000000{{{f{Cd}}{f{Cd}}}Df}{{{f{D`}}}d}{{{f{Db}}}d}{fd}00{Ab{{f{c}}}{}}000000{Ab{{f{hc}}}{}}000000{Abl}000000{{{f{Cd}}}Ab}{{{f{Db}}}Ab}{{{f{Cf}}}Ab}{{{f{Ch}}}Ab}{{{f{Cn}}}Ab}{{{f{Cl}}}Ab}{{{f{Dd}}}Ab}{{{f{Cd}}}{{Af{Ab{Ad{Ab}}}}}}{{{f{Db}}}{{Af{Ab{Ad{Ab}}}}}}{{{f{Cf}}}{{Af{Ab{Ad{Ab}}}}}}{{{f{Ch}}}{{Af{Ab{Ad{Ab}}}}}}{{{f{Cn}}}{{Af{Ab{Ad{Ab}}}}}}{{{f{Cl}}}{{Af{Ab{Ad{Ab}}}}}}{{{f{Dd}}}{{Af{Ab{Ad{Ab}}}}}}{{{f{Cd}}{f{Cd}}}Ah}{{{f{Db}}{f{Db}}}Ah}{{{f{Cf}}{f{Cf}}}Ah}{{{f{Ch}}{f{Ch}}}Ah}{{{f{Cn}}{f{Cn}}}Ah}{{{f{Cl}}{f{Cl}}}Ah}{{{f{Dd}}{f{Dd}}}Ah}{{{f{Cd}}{f{hAl}}}{{Bl{lDh}}}}0{{{f{Db}}{f{hAl}}}{{Bl{lDh}}}}{{{f{Cf}}{f{hAl}}}{{Bl{lDh}}}}{{{f{Ch}}{f{hAl}}}{{Bl{lDh}}}}{{{f{Cn}}{f{hAl}}}{{Bl{lDh}}}}{{{f{Cl}}{f{hAl}}}{{Bl{lDh}}}}0{{{f{Dd}}{f{hAl}}}{{Bl{lDh}}}}{{{f{c}}Cd}DdCj}{cc{}}{dCd}1111110{DjCd}{{{f{Cd}}{f{hc}}}lBd}{{{f{Db}}{f{hc}}}lBd}{{{f{Cn}}{f{hc}}}lBd}{{{f{Dd}}{f{c}}}{{Ad{{Af{Cd{Ad{Cd}}}}}}}Cj}{{{f{Dd}}{f{c}}}{{Ad{{`{{Dl{Cd}}}}}}}Cj}{{{f{D`}}}{{f{Dn}}}}{{{f{Db}}}{{f{Dn}}}}{f{{f{Dn}}}}00210002100021000210002100021000{{}Ab}000000{{}c{}}000000{{{f{Cj}}ClCd}Ah}{{{f{Cj}}}Db}{{{f{Cf}}}Db}{{{f{Ch}}}Db}{{{f{Cn}}}Db}{{{f{Cd}}{f{Cd}}}{{Ad{Df}}}}{{Cdd}Cd}{{{f{Dd}}}Ah}{{CdCd}d}2`{fc{}}000000{fBj}0{c{{Bl{e}}}{}{}}{Dj{{Bl{Cd}}}}{C`{{Bl{Cd}}}}{E`{{Bl{Cd}}}}333333{d{{Bl{Dd}}}}{{}{{Bl{c}}}{}}000000{fBn}000000{{}c{}}000000{{}{{`{{Ed{}{{Eb{Dd}}}}}}}}{{Dd{f{c}}}{{`{{Ed{}{{Eb{{Ad{Cd}}}}}}}}}Cj}{{}d}00000```{{}Aj}001{{}f}0000001112000000011120000000````{{{f{Ef}}}{{Ad{Eh}}}}{f{{f{c}}}{}}0{{{f{h}}}{{f{hc}}}{}}0{{{f{Ef}}}Ef}{{{f{Eh}}}Eh}{{f{f{hc}}}l{}}0{{fn}l}0{{{f{Eh}}{f{Eh}}}Df}{{}Ef}{Ab{{f{c}}}{}}0{Ab{{f{hc}}}{}}0{Abl}0{{{f{Ef}}{f{Ef}}}Ah}{{{f{Eh}}{f{Eh}}}Ah}{{{f{Ef}}{f{hAl}}}{{Bl{lDh}}}}{{{f{Eh}}{f{hAl}}}{{Bl{lDh}}}}{cc{}}0{{{f{Eh}}{f{hc}}}lBd}{{}Ab}0{{}c{}}0`{{{f{Eh}}{f{Eh}}}{{Ad{Df}}}}{c{{Bl{EfEj}}}Bf}{{{f{Eh}}}Ef}{{{f{Ef}}}Ab}{{EfEl}Ef}{{Ef{f{{Bb{n}}}}}Ef}`{fc{}}0{c{{Bl{e}}}{}{}}0{{{Aj{n}}}{{Bl{EhEn}}}}0{{}{{Bl{c}}}{}}0{fBn}0{{}c{}}0{{{f{Ef}}c}{{Bl{lEj}}}Cb}`````````````````{{{f{F`}}}{{Aj{n}}}}{{{f{Fb}}}{{Aj{n}}}}{f{{f{c}}}{}}0000000000{{{f{h}}}{{f{hc}}}{}}0000000000{{{f{Fd}}}Fd}{{{f{Ff}}}Ff}{{{f{Fh}}}Fh}{{{f{Fj}}}Fj}{{{f{Fl}}}Fl}{{{f{Fn}}}Fn}{{{f{G`}}}G`}{{f{f{hc}}}l{}}000000{{fn}l}000000{{{f{Ff}}{f{Ff}}}Df}{dFf}{{{f{Ff}}{f{Ff}}}Gb}{d{{Ad{Fd}}}}{{{f{Gd}}}{{Af{EhFf}}}}{Ab{{f{c}}}{}}0000000000{Ab{{f{hc}}}{}}0000000000{{{f{Gd}}Ff}{{Bl{EhGf}}}}{{{f{Fj}}FdFf}{{Bl{GhGf}}}}{{{f{G`}}Ff}{{Bl{EhGf}}}}{{{f{Fj}}}{{Bl{G`Gf}}}}{{{f{Fj}}}{{Bl{FlGf}}}}{{{f{Fh}}Ff}{{Bl{GjGf}}}}{{{f{Fj}}}{{Bl{FnGf}}}}1{{{f{Fj}}{f{c}}Gl{f{{Bb{Gn}}}}}{{Bl{GhGf}}}Cj}{{{f{Fh}}FdFf}{{Bl{GjGf}}}}{{{f{{Aj{n}}}}}{{Bl{GdGf}}}}{{{f{{Aj{n}}}}}{{Bl{FjGf}}}}{Abl}0000000000{{{f{Fd}}{f{Fd}}}Ah}{{{f{Ff}}{f{Ff}}}Ah}{{{f{Fj}}}Fb}{{{f{Fd}}{f{hAl}}}{{Bl{lDh}}}}{{{f{Ff}}{f{hAl}}}{{Bl{lDh}}}}{{{f{Fh}}{f{hAl}}}{{Bl{lDh}}}}{{{f{Fj}}{f{hAl}}}{{Bl{lDh}}}}{{{f{Fl}}{f{hAl}}}{{Bl{lDh}}}}{{{f{Fn}}{f{hAl}}}{{Bl{lDh}}}}{{{f{G`}}{f{hAl}}}{{Bl{lDh}}}}{cc{}}0{{{H`{Ff}}}Hb}111{HdFd}222222{{{f{{Bb{n}}}}}{{Ad{Fh}}}}{{{Hf{Gj}}}Fh}{d{{Ad{Ff}}}}{{{f{c}}{f{{Bb{n}}}}Gl}{{Bl{FhGf}}}Cj}{{{f{Ff}}}d}{{}Ab}0000000000{{{f{Fj}}}F`}{{}c{}}0000000000{{}c{}}{Hb}{{{f{hHh}}}Ad}{{{f{Ff}}}{{Ad{Ff}}}}{{{f{Fj}}}{{Af{F`Fb}}}}{{}{{Hj{c}}}{}}{{{f{Ff}}{f{Ff}}}{{Ad{Df}}}}{{{f{Gh}}}Eh}{{{f{Ff}}d}Ff}0{{{f{Gd}}}{{Bh{n}}}}{{{f{Fj}}}{{Bh{n}}}}{{{f{Fh}}}Fj}{{{f{Fh}}}{{Bh{n}}}}{fc{}}000000{c{{Bl{e}}}{}{}}00000{Gn{{Bl{Ff}}}}{Hl{{Bl{Ff}}}}22222{{}{{Bl{c}}}{}}0000000000{fBn}0000000000{{}c{}}0000000000{{}{{`{{Ed{}{{Eb{Eh}}}}}}}}``````````{{{f{Hn}}}{{f{{Aj{n}}}}}}{{{f{Hn}}}{{f{{Bb{n}}}}}}{f{{f{c}}}{}}000{{{f{h}}}{{f{hc}}}{}}000{{{f{I`}}}I`}{{{f{Hn}}}Hn}{{{f{Ib}}}Ib}{{{f{Id}}}Id}{{f{f{hc}}}l{}}000{{fn}l}000{{{f{Hn}}{f{Hn}}}Df}{{}Id}{Ab{{f{c}}}{}}00{{{f{Ib}}}{{f{Dn}}}}1{Ab{{f{hc}}}{}}000{Abl}000{{}Hn}{{{f{Id}}}Hn}{{{f{I`}}{f{I`}}}Ah}{{{f{Hn}}{f{Hn}}}Ah}{{{f{Ib}}{f{Ib}}}Ah}{{{f{Id}}{f{Id}}}Ah}{{{f{I`}}{f{hAl}}}{{Bl{lDh}}}}0{{{f{Hn}}{f{hAl}}}{{Bl{lDh}}}}{{{f{Id}}{f{hAl}}}{{Bl{lDh}}}}{cc{}}{IdHn}1911{{{f{{Bb{n}}}}}{{Bl{HnI`}}}}{{{f{{Bb{n}}}}}{{Bl{IdI`}}}}{{{f{Dn}}}{{Bl{Id}}}}{{}Ab}000{{}c{}}000{Hn{{Aj{n}}}}{{{f{Hn}}{f{Hn}}}{{Ad{Df}}}}{fc{}}000{fBj}{c{{Bl{e}}}{}{}}000{Hn{{Bl{Id}}}}{{{f{Hn}}}{{Bl{Id}}}}{{}{{Bl{c}}}{}}000{fBn}000{{}c{}}000`{{{f{{Bb{n}}}}}{{B`{{If{c}}}}}Ih}{c{{B`{Ih}}}Bf}{c{{B`{Ij}}}Bf}{c{{B`{{Il{e}}}}}BfIh}{c{{B`{{In{e}}}}}Bf{J`IhJb}}{c{{B`{{In{e}}}}}Bf{IhJb}}{c{{B`{{Jd{e}}}}}BfIh}{c{{B`{Ab}}}Bf}{c{{B`{{Jf{e}}}}}Bf{IhJb}}{c{{B`{Jh}}}Bf}`{{{f{Ih}}c}{{B`{l}}}Cb}{{cIj}{{B`{l}}}Cb}{{{f{{Il{c}}}}e}{{B`{l}}}IhCb}{{c{f{{In{e}}}}}{{B`{l}}}CbIh}{{{f{{Jd{c}}}}e}{{B`{l}}}IhCb}{{c{f{{Jf{e}}}}}{{B`{l}}}CbIh}{{cJh}{{B`{l}}}Cb}{{cAb}{{B`{l}}}Cb}`````````````````````````{{{f{Jj}}}{{f{{Aj{n}}}}}}{{{f{Jl}}}Jn}{f{{f{c}}}{}}000000000{{{f{h}}}{{f{hc}}}{}}000000000`{{{f{Jj}}}Jj}{{{f{K`}}}K`}{{{f{{Kb{c}}}}}{{Kb{c}}}Jb}{{{f{{Kd{c}}}}}{{Kd{c}}}Jb}{{{f{{Kf{c}}}}}{{Kf{c}}}Jb}{{f{f{hc}}}l{}}0000{{fn}l}0000{{{f{Jj}}{f{Jj}}}Df}{{{f{{Lb{}{{Kh{c}}{Kj{e}}{Kl{g}}{Kn{i}}{L`{k}}}}}}cegi}k{}{}{}{}{}}`{{{f{{Ld{c}}}}}DdLf}{Ab{{f{c}}}{}}00000{{{f{Jl}}}{{f{{Ld{Lh}}}}}}1111{Ab{{f{hc}}}{}}000000000{{{f{{Ld{c}}}}e}{}Lf{{Lb{c}}}}{{{f{{Lb{}{{Kh{c}}{Kj{e}}{Kl{g}}{Kn{i}}{L`{k}}}}}}K`DddCd}c{}{}{}{}{}}{{{f{{Lb{}{{Kh{c}}{Kj{e}}{Kl{g}}{Kn{i}}{L`{k}}}}}}{Ad{{f{{Ll{Lj}}}}}}}i{}{}{}{}{}}{{{f{{Lb{}{{Kh{c}}{Kj{e}}{Kl{g}}{Kn{i}}{L`{k}}}}}}{Ad{{f{{Ln{Lj}}}}}}}g{}{}{}{}{}}{{{f{{Lb{}{{Kh{c}}{Kj{e}}{Kl{g}}{Kn{i}}{L`{k}}}}}}{Ad{{f{M`}}}}}e{}{}{}{}{}}{Abl}000000000{{{f{Jj}}}Ab}{{{f{Jj}}}{{Af{Ab{Ad{Ab}}}}}}{{{f{Jj}}{f{Jj}}}Ah}{{{f{K`}}{f{K`}}}Ah}{{{f{Jl}}{f{Jl}}}Ah}{{{f{{Ld{c}}}}}CdLf}{{{f{{Ld{c}}}}g}{{Bl{Lje}}}Lf{{Md{Mb}}}{{Mj{{f{Mf}}}{{Mh{{Bl{Lje}}}}}}}}`{{{f{Jj}}{f{hAl}}}{{Bl{lDh}}}}0{{{f{K`}}{f{hAl}}}An}{{{f{Lh}}{f{hAl}}}An}{{{f{Jl}}{f{hAl}}}An}{{{f{{Ld{c}}}}{f{hAl}}}An{MlLf}}{{{f{{Kb{c}}}}{f{hAl}}}AnMl}{{{f{{Kd{c}}}}{f{hAl}}}AnMl}{{{f{{Kf{c}}}}{f{hAl}}}AnMl}{{{Ld{Lh}}}{{B`{Jl}}}}{cc{}}000000000{{{Aj{n}}}Jj}{{K`DddCd{Ad{M`}}{Ad{Mn}}{Ad{{Ln{Lj}}}}{Ad{{Ll{Lj}}}}}{{Ld{c}}}Lf}{{{f{K`}}}Ah}000{{{f{Jj}}{f{hc}}}lBd}{{{f{K`}}}d}{Kf}{{}Ab}000000000{Kd}{{}c{}}000000000{Jl{{Ld{Lh}}}}{{{f{{Ld{c}}}}}dLf}{{{Ld{c}}egi}{{Ld{k}}}LfN`NbNdLf}{{{Ld{c}}egi}{{Ld{k}}}Lf{{Nf{{Ad{M`}}}{{Mh{{Ad{M`}}}}}}}{{Nf{{Ad{{Ln{Lj}}}}}{{Mh{{Ad{{Ln{Lj}}}}}}}}}{{Nf{{Ad{{Ll{Lj}}}}}{{Mh{{Ad{{Ll{Lj}}}}}}}}}Lf}{{{f{{Ld{c}}}}}{{Ad{{f{{Ll{Lj}}}}}}}Lf}{KfAd}{Kb}8{{{f{Jj}}{f{Jj}}}{{Ad{Df}}}}{KdAd}2{c{{Bl{JjEj}}}Bf}{c{{B`{K`}}}Bf}{{cDd}{{B`{Jl}}}Bf}{{{f{{Ld{c}}}}}{{Ad{{f{{Ln{Lj}}}}}}}Lf}7{{{f{{Ld{c}}}}}LjLf}7```{{{f{{Ld{c}}}}}{{Ad{{f{Mn}}}}}Lf}{DdK`}{c{{B`{{Ad{{Ln{NhLj}}}}}}}Bf}{{{Ad{{f{{Ln{NhLj}}}}}}c}{{B`{l}}}Cb}`{fc{}}0000{fBj}{{{f{{Ld{c}}}}}{{Ad{{f{M`}}}}}Lf}?{c{{Bl{e}}}{}{}}000000000{{}{{Bl{c}}}{}}000000000{{{Ld{c}}gik}{{Bl{{Ld{m}}e}}}Lf{}{{Nf{{Ad{M`}}}{{Mh{{Bl{{Ad{M`}}e}}}}}}}{{Nf{{Ad{{Ln{Lj}}}}}{{Mh{{Bl{{Ad{{Ln{Lj}}}}e}}}}}}}{{Nf{{Ad{{Ll{Lj}}}}}{{Mh{{Bl{{Ad{{Ll{Lj}}}}e}}}}}}}Lf}`{{{f{Jl}}}Jj}{fBn}000000000`{{{f{{Ld{c}}}}}K`Lf}{{{f{K`}}}d}{{}c{}}000000000{{{f{Jj}}c}{{Bl{lEj}}}Cb}{{{f{K`}}c}{{B`{l}}}Cb}{{{f{Jl}}c}{{B`{l}}}Cb}00000```````{{}d}````````````````{{{f{h{Nj{ce}}}}{Ad{Nl}}NnDjHn}{{Bl{l{O`{g}}}}}CjOb{}}{{{f{h{Nj{ce}}}}OdOfOh}{{Bl{l{O`{g}}}}}CjOb{}}{{{f{h{Nj{ce}}}}{Ad{Oj}}OlOnHn}{{Bl{l{O`{g}}}}}CjOb{}}{{{f{h{Nj{ce}}}}A@`A@bA@d}{{Bl{l{O`{g}}}}}CjOb{}}{{{f{h{Nj{ce}}}}GhMfA@f}{{Bl{lA@h}}}CjOb}{{{f{h{Nj{ce}}}}{f{Eh}}On}{{Bl{lA@h}}}CjOb}{f{{f{c}}}{}}0000000{{{f{h}}}{{f{hc}}}{}}0000000{{{Nj{ce}}{f{A@j}}{f{{Bb{A@l}}}}{f{{Bb{A@n}}}}g{f{i}}{f{k}}{f{m}}}{{Bl{AA`O`}}}CjOb{AAbAAd}AAfAAhAAj}{{{Nj{ce}}g{f{i}}}{{Bl{{AAl{c}}O`}}}CjOb{AAbAAd}AAj}{{{f{AAn}}}AAn}{{f{f{hc}}}l{}}{{fn}l}{AB`Dd}{{{f{ABb}}}d}{Ab{{f{c}}}{}}0000000{Ab{{f{hc}}}{}}0000000{Abl}0000000{{{f{ABb}}}{{Ad{d}}}}{AB`Cd}{{{f{{ABd{c}}}}{f{hAl}}}AnMl}{{{f{{ABd{c}}}}{f{hAl}}}AnABf}{{{f{{O`{c}}}}{f{hAl}}}AnABf}{{{f{{O`{c}}}}{f{hAl}}}AnMl}{{{f{AA`}}{f{hAl}}}An}{{{f{{AAl{c}}}}{f{hAl}}}An{MlCj}}{{{f{{AB`{c}}}}{f{hAl}}}An{MlCj}}{{{Af{dd}}}ABb}{cc{}}00{ABh{{O`{c}}}{}}1{{{ABd{c}}}{{O`{c}}}{}}{Mb{{O`{c}}}{}}{ABj{{O`{c}}}{}}4444{{{f{{Nj{ce}}}}{f{g}}}{{Bl{OnABd}}}CjObAAj}{{}Ab}0000000{{}c{}}0000000{AB`d}{{{Nj{ce}}{f{A@j}}{f{{Bb{A@l}}}}{f{{Bb{A@n}}}}g}{{Bl{AA`{O`{ABl}}}}}CjObAAb}{{cCdAAn}{{Nj{cl}}}Cj}{AB`Ad}{{{f{AAn}}}{{Ad{{Af{ABnAC`}}}}}}{{{f{AA`}}}{{f{ACb}}}}{AAlACb}{{{f{{Nj{ce}}}}}{{f{c}}}{}Ob}{AB`}{AAlAB`}6{{{f{AAn}}}{{Ad{{Af{ACdACf}}}}}}{{{f{{Nj{ce}}}}}{{f{{Bb{ACh}}}}}{}Ob}{{{f{AA`}}}{{f{ACj}}}}{AAlACj}{{{f{{Nj{ce}}}}}{{f{{Bb{ACl}}}}}{}Ob}{{{f{{Nj{ce}}}}}Cd{}Ob}{fc{}}{fBj}0{{{f{AA`}}}{{f{Jl}}}}?{{{f{{Nj{ce}}}}}{{f{{Bb{ACn}}}}}{}Ob}{{{f{{Nj{ce}}}}}{{f{{Bb{A@f}}}}}{}Ob}{c{{Bl{e}}}{}{}}0000000{{}{{Bl{c}}}{}}0000000{fBn}0000000{AB`K`}{{}c{}}0000000{{{Nj{cl}}{AD`{ABb}}}{{Nj{c{AD`{ABb}}}}}Cj}{ADbAd}0`{{}Ab}````````{ADdMf}`{ADfEf}{ADd}{ADdd}``{ADfOn}``{{}Dj}````{{}{{`{{Ed{}{{Eb{Lj}}}}}}}}{{}{{`{{Ed{}{{Eb{On}}}}}}}}1{{}n}00`{{{f{Nd}}c}eADhADh}{{{f{Nd}}}}{c{{B`{{ADj{l}}}}}Bf}{c{{B`{AC`}}}Bf}{c{{B`{ADl}}}Bf}{c{{B`{ADn}}}Bf}{c{{B`{AE`}}}Bf}{c{{B`{AEb}}}Bf}{c{{B`{{AEd{e}}}}}BfAEf}{c{{B`{{Ad{{Ll{AEhLj}}}}}}}Bf}{c{{B`{AEj}}}Bf}{c{{B`{{AEn{AEl}}}}}Bf}`{{c{f{ADj}}}{{B`{l}}}Cb}{{c{f{ADl}}}{{B`{l}}}Cb}{{c{f{AE`}}}{{B`{l}}}Cb}{{c{f{AEb}}}{{B`{l}}}Cb}{{{Ad{{f{{Ll{AEhLj}}}}}}c}{{B`{l}}}Cb}{{c{f{AEj}}}{{B`{l}}}Cb}{{c{f{{AEn{AEl}}}}}{{B`{l}}}Cb}{Ab{{`{{Ed{}{{Eb{{Ll{AEhLj}}}}}}}}}}{K`{{`{{Ed{}{{Eb{{Ad{{Ll{AEhLj}}}}}}}}}}}}`{{{f{hNb}}}}{{{f{hNb}}c}eAF`AF`}11{{c{f{Dn}}}{{B`{AFb}}}Bf}{c{{B`{AFd}}}Bf}{c{{B`{{AFf{AFd}}}}}Bf}{c{{B`{{AFh{Nh}}}}}Bf}{{cAh}{{B`{{Af{Lj{Bh{{AFh{Nh}}}}{Bh{{AFf{AFd}}}}}}}}}Bf}{{c{f{{AFf{AFd}}}}}{{B`{l}}}Cb}{{c{Ad{{f{{Ln{NhLj}}}}}}Ah}{{B`{l}}}Cb}`{{{f{c}}Cd}AFjCj}{K`{{`{{Ed{}{{Eb{{Ad{{Ln{NhLj}}}}}}}}}}}}``{f{{f{c}}}{}}0{{{f{h}}}{{f{hc}}}{}}0{{{f{Mn}}}Mn}{{{f{AFl}}}AFl}{{f{f{hc}}}l{}}0{{fn}l}0{Ab{{f{c}}}{}}0{Ab{{f{hc}}}{}}0{Abl}0{{{f{Mn}}{f{hAl}}}An}{{{f{AFl}}{f{hAl}}}{{Bl{lDh}}}}{cc{}}0{{}Ab}0{{}c{}}0{MnAj}0{MnBh}{{{f{AFl}}}Lj}{{cAh}{{B`{AFl}}}Bf}{fc{}}0{c{{Bl{e}}}{}{}}0{{}{{Bl{c}}}{}}0{fBn}0{{{f{Mn}}}{{Ad{Lj}}}}{{}c{}}0{{{f{AFl}}c}{{B`{l}}}Cb}`````````{{{M`{AFn}}c{f{A@j}}}{{Bl{{M`{AG`}}A@h}}}{{AGd{AGb}{{Mh{{Aj{n}}}}}}}}{M`}{f{{f{c}}}{}}00000{{{f{h}}}{{f{hc}}}{}}00000`{{{f{AG`}}}AG`}{{{f{{M`{c}}}}}{{M`{c}}}{JbAGf}}{{{f{Mf}}}Mf}{{{f{{AGh{c}}}}}{{AGh{c}}}{JbAGf}}{{{f{A@f}}}A@f}{{f{f{hc}}}l{}}0000{{fn}l}0000{{{f{Mf}}{f{Mf}}}Df}{Ab{{f{c}}}{}}00000{Ab{{f{hc}}}{}}00000{Abl}00000{{{f{AG`}}{f{AG`}}}Ah}{{{f{{M`{c}}}}{f{{M`{c}}}}}Ah{AGjAGf}}{{{f{Mf}}{f{Mf}}}Ah}{{{f{{AGh{c}}}}{f{{AGh{c}}}}}Ah{AGjAGf}}{{{f{A@f}}{f{A@f}}}Ah}{{}Mf}{{{f{AGl}}{f{hAl}}}{{Bl{lDh}}}}{{{f{AG`}}{f{hAl}}}{{Bl{lDh}}}}{{{f{{M`{c}}}}{f{hAl}}}{{Bl{lDh}}}{MlAGf}}{{{f{Mf}}{f{hAl}}}{{Bl{lDh}}}}{{{f{{AGh{c}}}}{f{hAl}}}{{Bl{lDh}}}{MlAGf}}{{{f{A@f}}{f{hAl}}}{{Bl{lDh}}}}{cc{}}00000{{{f{Mf}}}{{f{{Aj{n}}}}}}{{}Ab}00000{{{f{AGl}}}{{Bh{On}}}}{{{f{AGl}}}{{Bh{Ef}}}}{{}c{}}00000{{{f{{M`{c}}}}}AhAGf}{{{f{N`}}c}eAGfAGf}{{{M`{c}}g}{{M`{e}}}AGfAGf{{N`{ce}}}}{{{f{N`}}}}{{{f{Mf}}}d}{{{Aj{n}}d}Mf}{Mf{{AGh{AFn}}}}{{{f{Mf}}{f{Mf}}}{{Ad{Df}}}}`{AGhMf}{c{{Bl{MfEj}}}Bf}{{{f{hc}}}{{Bl{{AGh{AG`}}Ej}}}Bf}{{{f{hc}}}{{Bl{A@fEj}}}Bf}{{{f{A@f}}}{{Ad{Eh}}}}{{{f{A@f}}}{{f{Ef}}}}{A@fEf}{AGh}{AGhd}`{fc{}}0000{c{{Bl{e}}}{}{}}00000{{}{{Bl{c}}}{}}00000{{{f{Mf}}}{{f{Jj}}}}{fBn}00000{{{f{A@f}}}On}{A@fOn}{{{f{{M`{c}}}}g}{{Bl{Lje}}}AGf{{Md{Mb}}}{{Mj{{f{Mf}}}{{Mh{{Bl{Lje}}}}}}}}{M`Bh}0{{}c{}}00000{{{f{Mf}}c}{{Bl{lEj}}}Cb}{{{f{{AGh{AG`}}}}c}{{Bl{lEj}}}Cb}{{{f{A@f}}c}{{Bl{lEj}}}Cb}````````{{{f{hAGn}}GhMfA@f}{{Bl{lA@h}}}}{{{f{hA@j}}Gj}Gh}{{{f{hAGn}}{f{Eh}}On}{{Bl{lA@h}}}}{f{{f{c}}}{}}0000{{{f{h}}}{{f{hc}}}{}}0000{AGn{{Ad{{M`{AFn}}}}}}{AGn{{Ad{AH`}}}}{{{f{ACn}}}ACn}{{{f{AFn}}}AFn}{{f{f{hc}}}l{}}0{{fn}l}0{{{f{ACn}}}{{f{A@f}}}}0{{}A@j}{Ab{{f{c}}}{}}0000{Ab{{f{hc}}}{}}0000{Abl}0000{{}AGn}{{{f{A@h}}{f{A@h}}}Ah}{{{f{A@h}}{f{hAl}}}{{Bl{lDh}}}}0{{{f{ACn}}{f{hAl}}}{{Bl{lDh}}}}{{{f{AFn}}{f{hAl}}}{{Bl{lDh}}}}{cc{}}0000{{}Ab}0000{{{f{AFn}}}{{Bh{On}}}}{{{f{AFn}}}{{Bh{Ef}}}}{{{f{AGn}}}{{f{{Bb{ACn}}}}}}{{}c{}}0000>{{{f{ACn}}}{{f{Mf}}}}0{{{f{AGn}}}{{f{{Bb{A@f}}}}}}{fc{}}0{fBj}{c{{Bl{e}}}{}{}}0000{{}{{Bl{c}}}{}}0000{fBn}0000{{{f{AGn}}}{{Bl{LjMb}}}}{{}c{}}0000`````````````````````````````{{{f{AHb}}}{{f{{AHf{{Aj{n}}AHd}}}}}}{{{f{AHh}}}{{f{{AHf{{Aj{n}}AHd}}}}}}{f{{f{c}}}{}}0000000000000{{{f{h}}}{{f{hc}}}{}}0000000000000{{{f{AHj}}}{{f{AH`}}}}{Ab{{f{c}}}{}}0000000000000{Ab{{f{hc}}}{}}0000000000000{{{f{AHd}}}{{f{{Bh{Gn}}}}}}{Abl}0000000000000{{{f{AHd}}{f{AHd}}}Ah}{AH`{{Bl{{Ad{{M`{AHl}}}}AHn}}}}{{{f{AHd}}{f{AI`}}Gn}{{Ad{{Af{GlFdFf}}}}}}{{{f{AH`}}}{{Bl{{Ad{{M`{AGl}}}}AHn}}}}{{{f{hAH`}}}{{Bl{lAIb}}}}{{{f{AId}}{f{hAl}}}{{Bl{lDh}}}}{{{f{AIf}}{f{hAl}}}{{Bl{lDh}}}}{{{f{AIh}}{f{hAl}}}{{Bl{lDh}}}}{{{f{AIj}}{f{hAl}}}{{Bl{lDh}}}}{{{f{AIb}}{f{hAl}}}{{Bl{lDh}}}}{{{f{AHn}}{f{hAl}}}{{Bl{lDh}}}}{{{f{AHl}}{f{hAl}}}{{Bl{lDh}}}}{{{f{AH`}}{f{hAl}}}{{Bl{lDh}}}}{{{f{AHb}}{f{hAl}}}{{Bl{lDh}}}}{{{f{AHh}}{f{hAl}}}{{Bl{lDh}}}}{{{f{AHd}}{f{hAl}}}{{Bl{lDh}}}}{cc{}}0000000000000{{{f{AHb}}}{{f{{AHf{{Aj{n}}{Bh{n}}}}}}}}0{{}Ab}0000000000000{{{f{AHl}}}{{Bh{On}}}}{{{f{AHl}}}{{Bh{Ef}}}}{{{f{AH`}}}{{f{{Bh{AHb}}}}}}{{{f{hAH`}}}{{f{h{Bb{AHb}}}}}}{{}c{}}0000000000000{{{f{AH`}}}{{f{{Bh{AHh}}}}}}{{{Bh{AHb}}{Bh{AHh}}}{{Bl{AH`AId}}}}{{{Aj{n}}d{Ad{d}}{Ad{d}}{Ad{d}}{Ad{{Bh{n}}}}Dj{Bh{n}}{Ad{{Bh{n}}}}{AHf{{Aj{n}}{Bh{n}}}}n{AHf{{Aj{n}}AHd}}{AHf{{Aj{n}}{Bh{n}}}}{AHf{{Aj{n}}{Bh{n}}}}{AHf{{Aj{n}}{Bh{n}}}}{AHf{{Aj{n}}{Bh{n}}}}{AHf{Bj{Bh{n}}}}}{{Bl{AHbAId}}}}{{Dj{Bh{n}}{Ad{{Bh{n}}}}{AHf{{Aj{n}}AHd}}{Ad{Bj}}{AHf{Bj{Bh{n}}}}}{{Bl{AHhAId}}}}{{{Aj{n}}{Bh{d}}}{{Bl{AHdAId}}}};{{{f{AHb}}}{{f{d}}}}{{{f{AHb}}}{{f{Jj}}}}{{{f{AHb}}}{{f{{AHf{Bj{Bh{n}}}}}}}}{{{f{AHh}}}{{f{{AHf{Bj{Bh{n}}}}}}}}{{{f{AHb}}}{{f{{Ad{Ef}}}}}}{{{f{AHh}}}{{f{{Ad{Ef}}}}}}{{{f{AHb}}}{{f{{Ad{d}}}}}}0{{{f{AHb}}}{{f{{AHf{{Aj{n}}{Bh{n}}}}}}}}{{{f{AHb}}}{{f{Ef}}}}{{{f{AHh}}}{{f{Ef}}}}5{{{f{AHd}}}{{f{{Aj{n}}}}}}4{{{f{hAIl}}{Aj{n}}AHd}l}{{{f{hAIn}}{Aj{n}}AHd}l}{{{f{hAIl}}{Bh{n}}}l}0{{{f{hAIl}}Bj{Bh{n}}}l}{{{f{hAIn}}Bj{Bh{n}}}l}{{{f{hAIl}}Ef}{{Bl{lAIh}}}}{{{f{hAIn}}Ef}{{Bl{lAIh}}}}44{{{f{hAIn}}Bj}l};{{{f{AHb}}}{{f{AJ`}}}}{{{f{hAHb}}Abc{f{Gj}}{f{{AJb{e}}}}}{{Bl{lAIj}}}{{Nf{AGb}{{Mh{{Aj{n}}}}}}}AJd}{c{{Bl{e}}}{}{}}0000000000000{{}{{Bl{c}}}{}}0000000000000{fBn}0000000000000{{{f{hAHj}}Abc}{{Bl{lAIh}}}{{Nf{AIl}{{Mh{{Bl{lAIh}}}}}}}}{{{f{hAHj}}Abc}{{Bl{lAIh}}}{{Nf{AIn}{{Mh{{Bl{lAIh}}}}}}}}{{{f{hAH`}}c}{{Bl{lAIh}}}{{Nf{AHj}{{Mh{{Bl{lAIh}}}}}}}}{{{f{AHh}}}{{f{{Ad{Bj}}}}}}{{{f{AHb}}}{{f{On}}}}{{{f{AHh}}}{{f{On}}}}{{{f{AHb}}}{{Bl{lAIf}}}}{{{f{AHh}}}{{Bl{lAIf}}}}{{}c{}}0000000000000{{}Aj}{{}{{`{{Ed{}{{Eb{{Ad{{M`{AG`}}}}}}}}}}}}{{}{{`{{Ed{}{{Eb{Mf}}}}}}}}{{}{{`{{Ed{}{{Eb{Ef}}}}}}}}{{}{{`{{Ed{}{{Eb{{AGh{AG`}}}}}}}}}}{{}{{`{{Ed{}{{Eb{A@f}}}}}}}}``{{{f{{AAj{}{{AJf{c}}}}}}{f{e}}CdgiAbAbAb}{{Bl{Onc}}}{}Cj{{AJl{}{{AJh{AJj}}}}}{{AJl{}{{AJh{Ab}}}}}}````{f{{f{c}}}{}}{{{f{h}}}{{f{hc}}}{}}{{{f{AJn}}}AJn}{{f{f{hc}}}l{}}{{fn}l}{Ab{{f{c}}}{}}{Ab{{f{hc}}}{}}{Abl}{{{f{AJn}}{f{c}}CdegAbAbAb}{{Bl{Oni}}}Cj{{AJl{}{{AJh{AJj}}}}}{{AJl{}{{AJh{Ab}}}}}{}}{{{f{AJn}}}On}{{{f{AJn}}{f{hAl}}}An}{cc{}}{{}Ab}{{}c{}}{OnAJn}{fc{}}{c{{Bl{e}}}{}{}}{{}{{Bl{c}}}{}}{fBn}{{}c{}}``````{f{{f{c}}}{}}{{{f{h}}}{{f{hc}}}{}}{{{f{AJj}}}AJj}{{f{f{hc}}}l{}}{{fn}l}{{{f{AK`}}}{{f{A@f}}}}{Ab{{f{c}}}{}}{Ab{{f{hc}}}{}}{Abl}{{{f{AJj}}{f{AJj}}}Ah}{{{f{AJj}}{f{hAl}}}An}{cc{}}{{}Ab}{{}c{}}{{{f{AK`}}}{{f{Mf}}}}{{{f{AKb}}}{{f{Ef}}}}{{{f{AK`}}}AJj}{{{f{AKb}}}Ab}{fc{}}{c{{Bl{e}}}{}{}}{{}{{Bl{c}}}{}}{fBn}{{{f{AKb}}}On}{{}c{}}```;{{}On}0`<<{f{{f{c}}}{}}0{{{f{h}}}{{f{hc}}}{}}0{{{f{AKd}}}AKd}{{{f{ABl}}}ABl}{{f{f{hc}}}l{}}0{{fn}l}0{Ab{{f{c}}}{}}0{Ab{{f{hc}}}{}}0{Abl}0{{{f{ABl}}{f{ABl}}}Ah}{{{f{AKd}}{f{c}}CdegAbAbAb}{{Bl{Oni}}}Cj{{AJl{}{{AJh{AJj}}}}}{{AJl{}{{AJh{Ab}}}}}{}}{{{f{AKd}}{f{hAl}}}An}{{{f{ABl}}{f{hAl}}}An}0{cc{}}0{MbABl}{{{f{AKd}}}Ab}{{}Ab}0{{}c{}}0{{{f{AKd}}}On}{{OnAbAbAb}{{Ad{AKd}}}}44{{}AKd}{fc{}}0{fBj}{c{{Bl{e}}}{}{}}0{{}{{Bl{c}}}{}}0{fBn}0{{}c{}}0{{}n}0000`````{{{f{AKf}}}{{f{{Aj{n}}}}}}{f{{f{c}}}{}}0{{{f{h}}}{{f{hc}}}{}}0{Ab{{f{c}}}{}}0{Ab{{f{hc}}}{}}0{Abl}0{cc{}}0{{{f{AKh}}}n}{{}Ab}0{{}c{}}0{{{f{{Ld{g}}}}{f{AKh}}{f{{Kf{Jn}}}}}AKf{{AF`{}{{AKj{AFd}}{AKl{AFd}}}}}AKn{{Lf{}{{AL`{c}}{ALb{e}}}}}}??>>==<<{{{f{{Ld{e}}}}{f{AKh}}}Jn{{AF`{}{{AKj{AFd}}{AKl{AFd}}}}}{{Lf{}{{AL`{c}}}}}}{{{f{{Ld{e}}}}{f{AKh}}{f{{Kf{Jn}}}}}JnAKn{{Lf{}{{ALb{c}}}}}}{Dd{{`{{Ed{}{{Eb{Jl}}}}}}}}{Dd{{`{{Ed{}{{Eb{K`}}}}}}}}{Dd{{`{{Ed{}{{Eb{{Ld{Lh}}}}}}}}}}{{}{{`{{Ed{}{{Eb{Jj}}}}}}}}``??>>{{{f{ALd}}cegi}k{}{}{}{}{}}{{{f{ALf}}cegi}k{}{}{}{}{}}??>>{{{f{ALd}}K`DddCd}c{}}{{{f{ALf}}K`DddCd}c{}}{{{f{ALd}}{Ad{{f{{Ll{Lj}}}}}}}c{}}{{{f{ALf}}{Ad{{f{{Ll{AEhLj}}}}}}}c{}}{{{f{ALd}}{Ad{{f{{Ln{Lj}}}}}}}c{}}{{{f{ALf}}{Ad{{f{{Ln{NhLj}}}}}}}Jn}{{{f{ALd}}{Ad{{f{M`}}}}}c{}}{{{f{ALf}}{Ad{{f{{M`{AG`}}}}}}}Jn}{Abl}0{cc{}}0{{}Ab}0{{}c{}}0{{K`Dd{f{{Kf{Jn}}}}}Jj}{c{{Bl{e}}}{}{}}0{{}{{Bl{c}}}{}}0{fBn}0{{}c{}}0```{f{{f{c}}}{}}0{{{f{h}}}{{f{hc}}}{}}0{{}ALh}{Ab{{f{c}}}{}}0{Ab{{f{hc}}}{}}0=={{{f{hALh}}}{{B`{l}}}}==<<;;{{{ALj{c}}}cBf}{{{ALj{c}}}{{ALn{ALl}}}Bf}{ALh{{ALn{ALl}}}}{c{{ALj{c}}}Bf}{{{f{h{ALj{c}}}}{f{h{Bb{n}}}}}{{B`{Ab}}}Bf}>>==<<;;{{{f{hALh}}{f{{Bb{n}}}}}{{B`{Ab}}}}````````````{{{f{AM`}}}{{f{{Aj{n}}}}}}{{{f{Hl}}}{{f{{Aj{n}}}}}}=======<<<<<<<{{{f{Gl}}}Gl}{{{f{AMb}}}AMb}{{{f{AMd}}}AMd}{{{f{AM`}}}AM`}{{{f{Hl}}}Hl}{{{f{AMf}}}AMf}{{{f{Hd}}}Hd}{{f{f{hc}}}l{}}000000{{fn}l}000000{{{f{Gl}}{f{Gl}}}Df}{{{f{Hl}}{f{Hl}}}Df}{{{f{Gl}}{f{Gl}}Gb}Gl}{{{f{AMd}}{f{AMd}}}Gb}{{{f{AM`}}{f{AM`}}}Gb}{{}Gl}{{}Hl}{Ab{{f{c}}}{}}000000{Ab{{f{hc}}}{}}000000{Abl}000000{{{f{Gl}}}Ab}{{{f{Hd}}}Ab}{{{f{Gl}}}{{Af{Ab{Ad{Ab}}}}}}{{{f{Hd}}}{{Af{Ab{Ad{Ab}}}}}}{{{f{Gl}}{f{Gl}}}Ah}{{{f{AMd}}{f{AMd}}}Ah}{{{f{AM`}}{f{AM`}}}Ah}{{{f{Hl}}{f{Hl}}}Ah}{{{f{Hd}}{f{Hd}}}Ah}`{{{f{Gl}}{f{hAl}}}{{Bl{lDh}}}}{{{f{AMb}}{f{hAl}}}{{Bl{lDh}}}}0{{{f{AMd}}{f{hAl}}}{{Bl{lDh}}}}{{{f{AM`}}{f{hAl}}}{{Bl{lDh}}}}{{{f{Hl}}{f{hAl}}}{{Bl{lDh}}}}{{{f{AMf}}{f{hAl}}}{{Bl{lDh}}}}0{{{f{Hd}}{f{hAl}}}{{Bl{lDh}}}}{cc{}}00{GlAMd}1{AbHl}{dHl}{{{Aj{n}}}Hl}{FfHl}{DjHl}666{d{{Ad{AMd}}}}{dAMd}`{{{f{Gl}}{f{hc}}}lBd}{{{f{Hl}}{f{hc}}}lBd}{{{f{Hd}}{f{hc}}}lBd}{{{f{hHl}}}{{Bl{lAMf}}}}{{{f{AMd}}}d}{{}Ab}000000{{}c{}}000000{{{Aj{n}}}AM`}{{}Hl}{{{f{Gl}}}{{Ad{Gl}}}}{{{f{Gl}}{f{Gl}}}{{Ad{Df}}}}{{{f{Hl}}{f{Hl}}}{{Ad{Df}}}}`{fc{}}000000{fBj}0{d{{Bl{Gl}}}}{c{{Bl{e}}}{}{}}000{AMh{{Bl{Hl}}}}111{{}{{Bl{c}}}{}}000000{fBn}000000{{}c{}}000000`{f{{f{c}}}{}}{{{f{h}}}{{f{hc}}}{}}{{{f{AMj}}}{{f{AM`}}}}{{{f{AMj}}}{{f{{Aj{n}}}}}}{Ab{{f{c}}}{}}{Ab{{f{hc}}}{}}{Abl}{cc{}}{{{f{{Bb{n}}}}{f{{Bb{n}}}}{f{{Bb{AMd}}}}}AMj}{{}Ab}{{}c{}}{AMj{{Aj{n}}}}{c{{Bl{e}}}{}{}}?>=`<;{{{f{AI`}}}AI`}{{f{f{hc}}}l{}}{{fn}l}{{{f{AI`}}{f{AI`}}}Df}<;:{{{f{AI`}}{f{AI`}}}Ah}{{{f{AI`}}{f{hAl}}}{{Bl{lDh}}}};{{{Aj{n}}}AI`}{{{f{{Bb{n}}}}}{{Ad{AI`}}}}{{{f{AI`}}{f{hc}}}lBd}<;{{{f{AI`}}{f{AI`}}}{{Ad{Df}}}}{{{f{AI`}}}{{Aj{n}}}}{fc{}}<{{}{{Bl{c}}}{}}{fBn}{{}c{}}````{f{{f{c}}}{}}{{{f{h}}}{{f{hc}}}{}}{{{f{{AMl{c}}}}}{{AMl{c}}}{JbAMn}}{{f{f{hc}}}l{}}{{fn}l}{{{f{{AMl{c}}}}{f{{AMl{c}}}}}GbAMn}{Ab{{f{c}}}{}}{Ab{{f{hc}}}{}}{{{f{{AMl{c}}}}AMd}{{AMl{c}}}AMn}{{{f{{AMl{c}}}}AMd{f{{Bb{n}}}}}{{AMl{c}}}AMn}{Abl}{{{f{{AMl{c}}}}{f{hAl}}}{{Bl{lDh}}}{MlAMn}}{cc{}}{{}Ab}{{}c{}}{{{f{{Bb{{f{{Bb{n}}}}}}}}}{{AMl{c}}}AMn}{{{f{{AMl{c}}}}}{{Af{{f{{Aj{n}}}}{f{AM`}}}}}AMn}{fc{}}{c{{Bl{e}}}{}{}}{{}{{Bl{c}}}{}}{fBn}{{}c{}}``````{f{{f{c}}}{}}00{{{f{h}}}{{f{hc}}}{}}00{{{f{AN`}}}{{f{AM`}}}}{{{f{ANb}}}AMd}{{{f{ANd}}}ANd}{{f{f{hc}}}l{}}{{fn}l}{{{f{{Bb{n}}}}{f{{Bb{n}}}}ANf{f{{Bb{ANb}}}}}{{Bl{{Aj{n}}ANd}}}}{{{f{AN`}}}{{f{{Aj{n}}}}}}{Ab{{f{c}}}{}}00{Ab{{f{hc}}}{}}00{{{f{AN`}}AMd}AN`}{{{f{AN`}}AMd{f{{Bb{n}}}}}{{Aj{n}}}}{{{f{AN`}}AMd{f{{Bb{n}}}}}AN`}{Abl}00{{{f{ANd}}{f{ANd}}}Ah}{{{f{ANd}}{f{hAl}}}{{Bl{lDh}}}}0{cc{}}00{{{Aj{n}}AM`}AN`}{{{f{{Bb{n}}}}{f{{Bb{n}}}}ANf{f{{Bb{ANb}}}}}{{Bl{AN`ANd}}}}{{}Ab}00{{}c{}}00{{AMd{f{{Bb{n}}}}}ANb}{{{f{ANb}}}{{f{{Bb{n}}}}}}{fc{}}{fBj}{c{{Bl{e}}}{}{}}00{{}{{Bl{c}}}{}}00{fBn}00{{}c{}}00","D":"EAf","p":[[5,"BlockHeaderData",8],[1,"u32"],[1,"reference",null,null,1],[0,"mut"],[5,"BlockHash",8],[1,"unit"],[1,"u8"],[5,"BlockHeader",8],[1,"usize"],[6,"Option",2371,null,1],[1,"tuple",null,null,1],[1,"bool"],[1,"array"],[5,"Formatter",2372],[8,"Result",2372],[8,"Result",2373,null,1],[1,"slice"],[10,"Hasher",2374],[10,"Read",2375],[5,"Vec",2376],[5,"String",2377],[6,"Result",2378,null,1],[5,"TypeId",2379],[1,"i32"],[10,"Write",2375],[5,"BlockHeight",74,2380],[5,"MainNetwork",74,2380],[5,"TestNetwork",74,2380],[10,"Parameters",74,2380],[6,"NetworkUpgrade",74,2380],[6,"Network",74,2380],[10,"NetworkConstants",74,2380],[6,"NetworkType",74,2380],[6,"BranchId",74,2380],[6,"Ordering",2381],[5,"Error",2372],[1,"u64"],[10,"RangeBounds",2382],[1,"str"],[1,"i64"],[17,"Value"],[10,"Strategy",2383],[5,"Script",380,2384],[6,"TransparentAddress",380,2384],[5,"Error",2373],[6,"OpCode",2384],[6,"ConversionError",2385],[5,"InternalOvk",435,2386],[5,"ExternalOvk",435,2386],[5,"TransparentKeyScope",435,2386],[5,"NonHardenedChildIndex",435,2386],[5,"AccountPrivKey",435,2386],[5,"AccountPubKey",435,2386],[5,"ExternalIvk",435,2386],[5,"InternalIvk",435,2386],[5,"EphemeralIvk",435,2386],[5,"Choice",2387],[10,"IncomingViewingKey",435,2386],[6,"Error",2388],[5,"PublicKey",2389],[5,"SecretKey",2389],[5,"AccountId",2066,2390],[5,"ChildNumber",2391],[5,"Range",2382],[5,"NonHardenedChildRange",435,2386],[6,"Scope",2066,2390],[5,"ExtendedPrivateKey",2392],[5,"NonHardenedChildIter",435,2386],[5,"IterBridge",2393],[5,"DiversifierIndex",2066,2390],[5,"MemoBytes",666,2394],[6,"Error",666,2394],[5,"TextMemo",666,2394],[6,"Memo",666,2394],[5,"MerklePath",2395],[10,"HashSer",765],[5,"Address",2395],[5,"CommitmentTree",2396],[5,"Frontier",2396],[10,"Hashable",2395],[10,"Clone",2397],[5,"IncrementalWitness",2398],[5,"NonEmptyFrontier",2396],[5,"Position",2395],[5,"TxId",785,2399],[5,"Transaction",785],[5,"Hash",2400],[6,"TxVersion",785],[5,"TransparentDigests",785],[5,"TzeDigests",785],[5,"TxDigests",785],[17,"HeaderDigest"],[17,"TransparentDigest"],[17,"SaplingDigest"],[17,"OrchardDigest"],[17,"Digest"],[10,"TransactionDigest",785],[5,"TransactionData",785],[10,"Authorization",785],[5,"Authorized",785],[5,"ZatBalance",2401],[5,"Bundle",2402],[5,"Bundle",2403],[5,"Bundle",1322,2404],[6,"BalanceError",2401],[10,"From",2405,null,1],[5,"OutPoint",1322,2404],[17,"Output"],[10,"FnMut",2406],[10,"Debug",2372],[5,"Bundle",1279],[10,"MapAuth",1322,2404],[10,"MapAuth",1264],[10,"MapAuth",1238],[10,"FnOnce",2406],[5,"Authorized",2403],[5,"Builder",1034],[5,"OutgoingViewingKey",2407],[5,"Address",2408],[6,"Error",1034],[10,"ProverProgress",2409],[5,"FullViewingKey",2407],[5,"Note",2410],[5,"MerklePath",2411],[5,"OutgoingViewingKey",2412],[5,"PaymentAddress",2413],[5,"Zatoshis",2401],[5,"FullViewingKey",2412],[5,"Note",2414],[8,"MerklePath",2415],[5,"TxOut",1322,2404],[6,"Error",1470,2416],[5,"TransparentSigningSet",1470,2416],[5,"ExtendedSpendingKey",2417],[5,"SpendAuthorizingKey",2407],[5,"BuildResult",1034],[10,"RngCore",2418],[10,"CryptoRng",2418],[10,"SpendProver",2419],[10,"OutputProver",2419],[10,"FeeRule",1840],[5,"PcztResult",1034],[6,"BuildConfig",1034],[5,"PcztParts",1034],[5,"Progress",1034],[6,"FeeError",1034],[10,"Display",2372],[6,"Error",2409],[6,"SpendError",2420],[6,"FeeError",1897],[6,"BundleType",2420],[5,"Anchor",2411],[5,"BundleMetadata",2420],[6,"BundleType",2409],[5,"Anchor",2415],[5,"SpendInfo",2409],[5,"SaplingMetadata",2409],[5,"OutputInfo",2409],[5,"TransparentInputInfo",1470,2416],[5,"Sender",2421],[15,"Standard",1208],[8,"TxIn",1210],[8,"TxOut",1210],[10,"Authorization",2402],[5,"Action",2422],[5,"ExtractedNoteCommitment",2423],[5,"Flags",2402],[5,"TransmittedNoteCiphertext",2410],[5,"Nullifier",2424],[5,"Signature",2425],[10,"SigType",2425],[5,"Authorized",2402],[5,"ValueCommitment",2426],[8,"SpendAuth",2425],[5,"VerificationKey",2425],[10,"Authorization",2403],[8,"Base",2427],[8,"GrothProofBytes",2403],[5,"OutputDescription",2403],[5,"SpendDescription",2403],[6,"Zip212Enforcement",2428],[5,"JsDescription",1279],[5,"Unauthorized",1470,2416],[5,"Authorized",1322,2404],[5,"SignableInput",2429],[10,"Fn",2406],[10,"Authorization",1322,2404],[5,"TxIn",1322,2404],[10,"PartialEq",2381],[5,"EffectsOnly",1322,2404],[5,"TransparentBuilder",1470,2416],[5,"Bundle",1569,2430],[5,"Input",1569,2430],[5,"Bip32Derivation",1569,2430],[5,"BTreeMap",2431],[5,"Output",1569,2430],[5,"Updater",1569,2432],[5,"Unbound",1569,2433],[6,"TxExtractorError",1569,2433],[5,"SeedFingerprint",2259,2434],[6,"SpendFinalizerError",1569,2435],[6,"ParseError",1569,2436],[6,"VerifyError",1569,2437],[6,"UpdaterError",1569,2432],[6,"SignerError",1569,2438],[5,"InputUpdater",1569,2432],[5,"OutputUpdater",1569,2432],[5,"SighashType",2429],[5,"Secp256k1",2439],[10,"Signing",2440],[17,"Error"],[17,"Item"],[6,"InputSize",1867],[10,"IntoIterator",2441],[5,"FeeRule",1846],[10,"InputView",1867],[10,"OutputView",1867],[5,"FeeRule",1897],[5,"SignatureHash",1951],[6,"SignableInput",1951],[17,"SpendProof"],[17,"OutputProof"],[10,"TransparentAuthorizingContext",2429],[17,"SaplingAuth"],[17,"TransparentAuth"],[5,"TxIdDigester",1994],[5,"BlockTxCommitmentDigester",1994],[5,"HashWriter",2032],[5,"HashReader",2032],[8,"Sha256",2442],[8,"Output",2443],[5,"ChainCode",2066,2390],[5,"TryFromIntError",2066,2390],[5,"ChildIndex",2066,2390],[5,"DiversifierIndexOverflowError",2066,2390],[1,"u128"],[5,"SecretKey",2242,2444],[5,"HardenedOnlyKey",2284,2445],[10,"Context",2284,2445],[5,"SecretKey",2310,2446],[5,"PathElement",2310,2446],[6,"DerivationError",2310,2446],[1,"u16"],[6,"DigestError",785],[5,"Unauthorized",785],[8,"BalanceError",1228]],"r":[[74,2380],[75,2380],[76,2380],[77,2380],[78,2380],[79,2380],[80,2380],[81,2380],[82,2380],[83,2380],[84,2380],[85,2380],[86,2380],[87,2380],[88,2380],[89,2380],[90,2380],[91,2380],[92,2380],[93,2380],[94,2380],[95,2380],[96,2380],[97,2380],[98,2380],[99,2380],[100,2380],[101,2380],[102,2380],[103,2380],[104,2380],[105,2380],[106,2380],[107,2380],[108,2380],[109,2380],[110,2380],[111,2380],[112,2380],[113,2380],[114,2380],[115,2380],[116,2380],[117,2380],[118,2380],[119,2380],[120,2380],[121,2380],[122,2380],[123,2380],[124,2380],[125,2380],[126,2380],[127,2380],[128,2380],[129,2380],[130,2380],[131,2380],[132,2380],[133,2380],[134,2380],[135,2380],[136,2380],[137,2380],[138,2380],[139,2380],[140,2380],[141,2380],[142,2380],[143,2380],[144,2380],[145,2380],[146,2380],[147,2380],[148,2380],[149,2380],[150,2380],[151,2380],[152,2380],[153,2380],[154,2380],[155,2380],[156,2380],[157,2380],[158,2380],[159,2380],[160,2380],[161,2380],[162,2380],[163,2380],[164,2380],[165,2380],[166,2380],[167,2380],[168,2380],[169,2380],[170,2380],[171,2380],[172,2380],[173,2380],[174,2380],[175,2380],[176,2380],[177,2380],[178,2380],[179,2380],[180,2380],[181,2380],[182,2380],[183,2380],[184,2380],[185,2380],[186,2380],[187,2380],[188,2380],[189,2380],[190,2380],[191,2380],[192,2380],[193,2380],[194,2380],[195,2380],[196,2380],[197,2380],[198,2380],[199,2380],[200,2380],[201,2380],[202,2380],[203,2380],[204,2380],[205,2380],[206,2380],[207,2380],[208,2380],[209,2380],[210,2380],[211,2380],[212,2380],[213,2380],[214,2380],[215,2380],[216,2380],[217,2380],[218,2380],[219,2380],[220,2380],[221,2380],[222,2380],[223,2380],[224,2380],[225,2380],[226,2380],[227,2380],[228,2380],[229,2380],[230,2380],[231,2380],[232,2380],[233,2380],[234,2380],[235,2380],[236,2380],[237,2380],[238,2380],[239,2380],[240,2380],[241,2380],[242,2380],[243,2380],[244,2380],[245,2380],[246,2380],[247,2380],[248,2380],[249,2380],[250,2380],[251,2380],[252,2380],[253,2380],[254,2380],[255,2380],[256,2380],[257,2380],[258,2380],[259,2380],[260,2380],[261,2380],[262,2380],[263,2380],[264,2380],[265,2380],[266,2380],[267,2380],[268,2380],[269,2380],[270,2380],[271,2380],[272,2380],[273,2380],[274,2380],[275,2380],[276,2380],[277,2380],[278,2380],[279,2380],[280,2380],[281,2380],[282,2380],[283,2380],[284,2380],[285,2380],[286,2380],[287,2380],[288,2380],[289,2380],[290,2380],[291,2380],[292,2380],[293,2380],[294,2380],[295,2380],[296,2380],[297,2380],[298,2380],[299,2380],[300,2380],[301,2380],[302,2380],[303,2380],[304,2380],[305,2380],[306,2380],[307,2380],[308,2380],[309,2380],[310,2380],[311,2380],[312,2380],[313,2380],[314,2380],[315,2380],[316,2380],[317,2380],[318,2380],[319,2380],[320,2380],[321,2380],[322,2380],[323,2380],[324,2380],[325,2380],[326,2380],[327,2380],[328,2380],[329,2380],[330,2380],[331,2380],[332,2380],[333,2380],[334,2380],[335,2380],[336,2447],[337,2447],[338,2448],[339,2448],[340,2448],[341,2448],[342,2448],[343,2448],[344,2448],[345,2448],[346,2448],[347,2449],[348,2449],[349,2449],[350,2449],[351,2449],[352,2449],[353,2449],[354,2449],[355,2449],[356,2449],[357,2449],[358,2450],[359,2450],[360,2450],[361,2450],[362,2450],[363,2450],[364,2450],[365,2450],[366,2450],[367,2450],[368,2450],[369,2451],[370,2451],[371,2451],[372,2451],[373,2451],[374,2451],[375,2451],[376,2451],[377,2451],[378,2451],[379,2451],[380,2384],[381,2384],[382,2384],[383,2384],[384,2384],[385,2384],[386,2384],[387,2384],[388,2384],[389,2384],[390,2384],[391,2384],[392,2384],[393,2384],[394,2384],[395,2384],[396,2384],[397,2384],[398,2384],[399,2384],[400,2384],[401,2384],[402,2384],[403,2384],[404,2384],[405,2384],[406,2384],[407,2384],[408,2384],[409,2384],[410,2384],[411,2384],[412,2384],[413,2384],[415,2384],[416,2384],[417,2384],[418,2384],[419,2384],[420,2384],[421,2384],[422,2384],[423,2384],[424,2384],[425,2384],[426,2384],[427,2384],[428,2384],[429,2384],[430,2384],[431,2384],[432,2384],[433,2384],[434,2384],[435,2386],[436,2386],[437,2386],[438,2386],[439,2386],[440,2386],[441,2386],[442,2386],[443,2386],[444,2386],[445,2386],[446,2386],[447,2386],[448,2386],[449,2386],[450,2386],[451,2386],[452,2386],[453,2386],[454,2386],[455,2386],[456,2386],[457,2386],[458,2386],[459,2386],[460,2386],[461,2386],[462,2386],[463,2386],[464,2386],[465,2386],[466,2386],[467,2386],[468,2386],[469,2386],[470,2386],[471,2386],[472,2386],[473,2386],[474,2386],[475,2386],[476,2386],[477,2386],[478,2386],[479,2386],[480,2386],[481,2386],[482,2386],[483,2386],[484,2386],[485,2386],[486,2386],[487,2386],[488,2386],[489,2386],[490,2386],[491,2386],[492,2386],[493,2386],[494,2386],[495,2386],[496,2386],[497,2386],[498,2386],[499,2386],[500,2386],[501,2386],[502,2386],[503,2386],[504,2386],[505,2386],[506,2386],[507,2386],[508,2386],[509,2386],[510,2386],[511,2386],[512,2386],[513,2386],[514,2386],[515,2386],[516,2386],[517,2386],[518,2386],[519,2386],[520,2386],[521,2386],[522,2386],[523,2386],[524,2386],[525,2386],[526,2386],[527,2386],[528,2386],[529,2386],[530,2386],[531,2386],[532,2386],[533,2386],[534,2386],[535,2386],[536,2386],[537,2386],[538,2386],[539,2386],[540,2386],[541,2386],[542,2386],[543,2386],[544,2386],[545,2386],[546,2386],[547,2386],[548,2386],[549,2386],[550,2386],[551,2386],[552,2386],[553,2386],[554,2386],[555,2386],[556,2386],[557,2386],[558,2386],[559,2386],[560,2386],[561,2386],[562,2386],[563,2386],[564,2386],[565,2386],[566,2386],[567,2386],[568,2386],[569,2386],[570,2386],[571,2386],[572,2386],[573,2386],[574,2386],[575,2386],[576,2386],[577,2386],[578,2386],[579,2386],[580,2386],[581,2386],[582,2386],[583,2386],[584,2386],[585,2386],[586,2386],[587,2386],[588,2386],[589,2386],[590,2386],[591,2386],[592,2386],[593,2386],[594,2386],[595,2386],[596,2386],[597,2386],[598,2386],[599,2386],[600,2386],[601,2386],[602,2386],[603,2386],[604,2386],[605,2386],[606,2386],[607,2386],[608,2386],[609,2386],[610,2386],[611,2386],[612,2386],[613,2386],[614,2386],[615,2386],[616,2386],[617,2386],[618,2386],[619,2386],[620,2386],[621,2386],[622,2386],[623,2386],[624,2386],[625,2386],[626,2386],[627,2386],[628,2386],[629,2386],[630,2386],[631,2386],[632,2386],[633,2386],[634,2386],[635,2386],[636,2386],[637,2386],[638,2386],[639,2386],[640,2386],[641,2386],[642,2386],[643,2386],[644,2386],[645,2386],[646,2386],[647,2386],[648,2386],[649,2386],[650,2386],[651,2386],[652,2386],[653,2386],[654,2386],[655,2386],[656,2386],[657,2386],[658,2386],[659,2386],[660,2386],[661,2386],[662,2386],[663,2386],[664,2386],[665,2452],[666,2394],[667,2394],[668,2394],[669,2394],[670,2394],[671,2394],[672,2394],[673,2394],[674,2394],[675,2394],[676,2394],[677,2394],[678,2394],[679,2394],[680,2394],[681,2394],[682,2394],[683,2394],[684,2394],[685,2394],[686,2394],[687,2394],[688,2394],[689,2394],[690,2394],[691,2394],[692,2394],[693,2394],[694,2394],[695,2394],[696,2394],[697,2394],[698,2394],[699,2394],[700,2394],[701,2394],[702,2394],[703,2394],[704,2394],[705,2394],[706,2394],[707,2394],[708,2394],[709,2394],[710,2394],[711,2394],[712,2394],[713,2394],[714,2394],[715,2394],[716,2394],[717,2394],[718,2394],[719,2394],[720,2394],[721,2394],[722,2394],[723,2394],[724,2394],[725,2394],[726,2394],[727,2394],[728,2394],[729,2394],[730,2394],[731,2394],[732,2394],[733,2394],[734,2394],[735,2394],[736,2394],[737,2394],[738,2394],[739,2394],[740,2394],[741,2394],[742,2394],[743,2394],[744,2394],[745,2394],[746,2394],[747,2394],[748,2394],[749,2394],[750,2394],[751,2394],[752,2394],[753,2394],[754,2394],[755,2394],[756,2394],[757,2394],[758,2394],[759,2394],[760,2394],[761,2394],[762,2394],[763,2394],[764,2394],[803,2399],[810,2399],[812,2399],[822,2399],[833,2399],[838,2399],[843,2399],[848,2399],[852,2399],[863,2399],[878,2399],[888,2399],[889,2399],[890,2399],[896,2399],[897,2399],[906,2399],[916,2399],[922,2399],[925,2399],[936,2399],[954,2399],[957,2399],[972,2399],[977,2399],[980,2399],[990,2399],[1003,2399],[1016,2399],[1026,2399],[1212,1279],[1322,2404],[1323,2404],[1324,2404],[1325,2404],[1326,2404],[1327,2404],[1328,2404],[1329,2404],[1330,2404],[1331,2404],[1332,2404],[1333,2404],[1334,2404],[1335,2404],[1336,2404],[1337,2404],[1338,2404],[1339,2404],[1340,2404],[1341,2404],[1342,2404],[1343,2404],[1344,2404],[1346,2404],[1347,2404],[1348,2404],[1349,2404],[1350,2404],[1351,2404],[1352,2404],[1353,2404],[1354,2404],[1355,2404],[1356,2404],[1357,2404],[1358,2404],[1359,2404],[1360,2404],[1361,2404],[1362,2404],[1363,2404],[1364,2404],[1365,2404],[1366,2404],[1367,2404],[1368,2404],[1369,2404],[1370,2404],[1371,2404],[1372,2404],[1373,2404],[1374,2404],[1375,2404],[1376,2404],[1377,2404],[1378,2404],[1379,2404],[1380,2404],[1381,2404],[1382,2404],[1383,2404],[1384,2404],[1385,2404],[1386,2404],[1387,2404],[1388,2404],[1389,2404],[1390,2404],[1391,2404],[1392,2404],[1393,2404],[1394,2404],[1395,2404],[1396,2404],[1397,2404],[1398,2404],[1399,2404],[1400,2404],[1401,2404],[1402,2404],[1403,2404],[1404,2404],[1405,2404],[1406,2404],[1407,2404],[1408,2404],[1409,2404],[1410,2404],[1411,2404],[1412,2404],[1413,2404],[1414,2404],[1415,2404],[1416,2404],[1417,2404],[1418,2404],[1419,2404],[1420,2404],[1422,2404],[1423,2404],[1424,2404],[1425,2404],[1426,2404],[1427,2404],[1428,2404],[1429,2404],[1430,2404],[1431,2404],[1432,2404],[1433,2404],[1434,2404],[1435,2404],[1436,2404],[1437,2404],[1438,2404],[1439,2404],[1440,2404],[1441,2404],[1442,2404],[1443,2404],[1444,2404],[1445,2404],[1446,2404],[1447,2404],[1448,2404],[1449,2404],[1450,2404],[1451,2404],[1452,2404],[1453,2404],[1454,2404],[1455,2404],[1456,2404],[1457,2404],[1458,2404],[1459,2404],[1460,2404],[1461,2404],[1462,2404],[1463,2404],[1464,2404],[1465,2404],[1466,2404],[1467,2404],[1468,2404],[1469,2404],[1470,2416],[1471,2416],[1472,2416],[1473,2416],[1474,2416],[1475,2416],[1476,2416],[1477,2416],[1478,2416],[1479,2416],[1480,2416],[1481,2416],[1482,2416],[1483,2416],[1484,2416],[1485,2416],[1486,2416],[1487,2416],[1488,2416],[1489,2416],[1490,2416],[1491,2416],[1492,2416],[1493,2416],[1494,2416],[1495,2416],[1496,2416],[1497,2416],[1498,2416],[1499,2416],[1500,2416],[1501,2416],[1502,2416],[1503,2416],[1504,2416],[1505,2416],[1506,2416],[1507,2416],[1508,2416],[1509,2416],[1510,2416],[1511,2416],[1512,2416],[1513,2416],[1514,2416],[1515,2416],[1516,2416],[1517,2416],[1518,2416],[1519,2416],[1520,2416],[1521,2416],[1522,2416],[1523,2416],[1524,2416],[1525,2416],[1526,2416],[1527,2416],[1528,2416],[1529,2416],[1530,2416],[1531,2416],[1532,2416],[1533,2416],[1534,2416],[1535,2416],[1536,2416],[1537,2416],[1538,2416],[1539,2416],[1540,2416],[1541,2416],[1542,2416],[1543,2416],[1544,2416],[1545,2416],[1546,2416],[1547,2416],[1548,2416],[1549,2416],[1550,2416],[1551,2416],[1552,2416],[1553,2416],[1554,2416],[1555,2416],[1556,2416],[1557,2416],[1558,2416],[1559,2416],[1560,2416],[1561,2416],[1562,2416],[1563,2416],[1564,2416],[1565,2416],[1566,2416],[1567,2416],[1568,2416],[1569,2430],[1570,2430],[1571,2430],[1572,2432],[1573,2432],[1574,2436],[1575,2436],[1576,2436],[1577,2436],[1578,2433],[1579,2435],[1580,2437],[1581,2432],[1582,2430],[1583,2432],[1584,2436],[1585,2438],[1586,2435],[1587,2433],[1588,2433],[1589,2435],[1590,2437],[1591,2435],[1592,2432],[1593,2432],[1594,2437],[1595,2437],[1596,2432],[1597,2438],[1598,2430],[1599,2430],[1600,2432],[1601,2432],[1602,2432],[1603,2436],[1604,2437],[1605,2432],[1606,2438],[1607,2435],[1608,2433],[1609,2433],[1610,2430],[1611,2430],[1612,2430],[1613,2430],[1614,2432],[1615,2432],[1616,2432],[1617,2436],[1618,2437],[1619,2432],[1620,2438],[1621,2435],[1622,2433],[1623,2433],[1624,2430],[1625,2430],[1626,2430],[1627,2430],[1628,2432],[1629,2432],[1630,2432],[1631,2432],[1632,2436],[1633,2437],[1634,2432],[1635,2438],[1636,2435],[1637,2433],[1638,2433],[1639,2430],[1640,2430],[1641,2430],[1642,2430],[1643,2432],[1644,2432],[1645,2432],[1646,2436],[1647,2437],[1648,2432],[1649,2438],[1650,2435],[1651,2433],[1652,2433],[1653,2430],[1654,2430],[1655,2430],[1656,2430],[1657,2430],[1658,2432],[1659,2432],[1660,2432],[1661,2436],[1662,2437],[1663,2432],[1664,2438],[1665,2435],[1666,2433],[1667,2433],[1668,2430],[1669,2430],[1670,2430],[1671,2430],[1672,2430],[1673,2430],[1674,2430],[1675,2430],[1676,2430],[1677,2436],[1678,2437],[1679,2432],[1680,2438],[1681,2435],[1682,2433],[1683,2433],[1684,2430],[1685,2430],[1686,2430],[1687,2430],[1688,2432],[1689,2432],[1690,2432],[1691,2436],[1692,2437],[1693,2432],[1694,2438],[1695,2435],[1696,2433],[1697,2433],[1698,2430],[1699,2430],[1700,2430],[1701,2430],[1702,2430],[1703,2430],[1704,2432],[1705,2432],[1706,2432],[1707,2436],[1708,2437],[1709,2432],[1710,2438],[1711,2435],[1712,2433],[1713,2433],[1714,2430],[1715,2430],[1716,2430],[1717,2430],[1718,2433],[1719,2433],[1720,2430],[1721,2430],[1722,2432],[1723,2432],[1724,2432],[1725,2436],[1726,2437],[1727,2432],[1728,2438],[1729,2435],[1730,2433],[1731,2433],[1732,2430],[1733,2430],[1734,2430],[1735,2430],[1736,2430],[1737,2430],[1738,2430],[1739,2430],[1740,2430],[1741,2430],[1742,2430],[1743,2430],[1744,2430],[1745,2430],[1746,2430],[1747,2430],[1748,2430],[1749,2430],[1750,2430],[1751,2430],[1752,2430],[1753,2430],[1754,2430],[1755,2430],[1756,2432],[1757,2432],[1758,2432],[1759,2432],[1760,2432],[1761,2432],[1762,2432],[1763,2432],[1764,2432],[1765,2432],[1766,2432],[1767,2430],[1768,2430],[1769,2430],[1770,2432],[1771,2432],[1772,2432],[1773,2436],[1774,2437],[1775,2432],[1776,2438],[1777,2435],[1778,2433],[1779,2433],[1780,2430],[1781,2430],[1782,2430],[1783,2430],[1784,2432],[1785,2432],[1786,2432],[1787,2436],[1788,2437],[1789,2432],[1790,2438],[1791,2435],[1792,2433],[1793,2433],[1794,2430],[1795,2430],[1796,2430],[1797,2430],[1798,2432],[1799,2432],[1800,2432],[1801,2436],[1802,2437],[1803,2432],[1804,2438],[1805,2435],[1806,2433],[1807,2433],[1808,2430],[1809,2430],[1810,2430],[1811,2430],[1812,2432],[1813,2432],[1814,2430],[1815,2430],[1816,2430],[1817,2430],[1818,2430],[1819,2430],[1820,2432],[1821,2432],[1822,2432],[1823,2436],[1824,2437],[1825,2432],[1826,2438],[1827,2435],[1828,2433],[1829,2433],[1830,2430],[1831,2430],[1832,2430],[1833,2430],[1834,2453],[1835,2453],[1836,2453],[1837,2453],[1838,2453],[1839,2453],[2066,2390],[2067,2390],[2068,2390],[2069,2390],[2070,2390],[2071,2390],[2072,2390],[2073,2390],[2074,2390],[2075,2390],[2076,2390],[2077,2390],[2078,2390],[2079,2390],[2080,2390],[2081,2390],[2082,2390],[2083,2390],[2084,2390],[2085,2390],[2086,2390],[2087,2390],[2088,2390],[2089,2390],[2090,2390],[2091,2390],[2092,2390],[2093,2390],[2094,2390],[2095,2390],[2096,2390],[2097,2390],[2098,2390],[2099,2390],[2100,2390],[2101,2390],[2102,2390],[2103,2390],[2104,2390],[2105,2390],[2106,2390],[2107,2390],[2108,2390],[2109,2390],[2110,2390],[2111,2390],[2112,2390],[2113,2390],[2114,2390],[2115,2390],[2116,2390],[2117,2390],[2118,2390],[2119,2390],[2120,2390],[2121,2390],[2122,2390],[2123,2390],[2124,2390],[2125,2390],[2126,2390],[2127,2390],[2128,2390],[2129,2390],[2130,2390],[2131,2390],[2132,2390],[2133,2390],[2134,2390],[2135,2390],[2136,2390],[2137,2390],[2138,2390],[2139,2390],[2140,2390],[2141,2390],[2142,2390],[2143,2390],[2144,2390],[2145,2390],[2146,2390],[2147,2390],[2148,2390],[2149,2390],[2150,2390],[2151,2390],[2152,2390],[2153,2390],[2154,2390],[2155,2390],[2156,2390],[2157,2390],[2158,2390],[2159,2390],[2160,2390],[2161,2390],[2162,2390],[2163,2390],[2164,2390],[2165,2390],[2166,2390],[2167,2390],[2168,2390],[2169,2390],[2170,2390],[2171,2390],[2172,2390],[2173,2390],[2174,2390],[2175,2390],[2176,2390],[2177,2390],[2178,2390],[2179,2390],[2180,2390],[2181,2390],[2182,2390],[2183,2390],[2184,2390],[2185,2390],[2186,2390],[2187,2390],[2188,2390],[2189,2390],[2190,2390],[2191,2390],[2192,2390],[2193,2390],[2194,2390],[2195,2390],[2196,2390],[2197,2390],[2198,2390],[2199,2390],[2200,2390],[2201,2390],[2202,2390],[2203,2390],[2204,2390],[2205,2390],[2206,2390],[2207,2390],[2208,2390],[2209,2390],[2210,2390],[2211,2390],[2212,2390],[2213,2390],[2214,2390],[2215,2390],[2216,2390],[2217,2390],[2218,2390],[2219,2390],[2220,2390],[2221,2390],[2222,2390],[2223,2390],[2224,2390],[2225,2390],[2226,2390],[2227,2390],[2228,2390],[2229,2390],[2230,2390],[2231,2390],[2232,2390],[2233,2390],[2234,2390],[2235,2390],[2236,2390],[2237,2390],[2238,2390],[2239,2390],[2240,2390],[2241,2390],[2242,2444],[2243,2444],[2244,2444],[2245,2444],[2246,2444],[2247,2444],[2248,2444],[2249,2444],[2250,2444],[2251,2444],[2252,2444],[2253,2444],[2254,2444],[2255,2444],[2256,2444],[2257,2444],[2258,2444],[2259,2434],[2260,2434],[2261,2434],[2262,2434],[2263,2434],[2264,2434],[2265,2434],[2266,2434],[2267,2434],[2268,2434],[2269,2434],[2270,2434],[2271,2434],[2272,2434],[2273,2434],[2274,2434],[2275,2434],[2276,2434],[2277,2434],[2278,2434],[2279,2434],[2280,2434],[2281,2434],[2282,2434],[2283,2434],[2284,2445],[2285,2445],[2286,2445],[2287,2445],[2288,2445],[2289,2445],[2290,2445],[2291,2445],[2292,2445],[2293,2445],[2294,2445],[2295,2445],[2296,2445],[2297,2445],[2298,2445],[2299,2445],[2300,2445],[2301,2445],[2302,2445],[2303,2445],[2304,2445],[2305,2445],[2306,2445],[2307,2445],[2308,2445],[2309,2445],[2310,2446],[2311,2446],[2312,2446],[2313,2446],[2314,2446],[2315,2446],[2316,2446],[2317,2446],[2318,2446],[2319,2446],[2320,2446],[2321,2446],[2322,2446],[2323,2446],[2324,2446],[2325,2446],[2326,2446],[2327,2446],[2328,2446],[2329,2446],[2330,2446],[2331,2446],[2332,2446],[2333,2446],[2334,2446],[2335,2446],[2336,2446],[2337,2446],[2338,2446],[2339,2446],[2340,2446],[2341,2446],[2342,2446],[2343,2446],[2344,2446],[2345,2446],[2346,2446],[2347,2446],[2348,2446],[2349,2446],[2350,2446],[2351,2446],[2352,2446],[2353,2446],[2354,2446],[2355,2446],[2356,2446],[2357,2446],[2358,2446],[2359,2446],[2360,2446],[2361,2446],[2362,2446],[2363,2446],[2364,2446],[2365,2446],[2366,2446],[2367,2446],[2368,2446],[2369,2446],[2370,2446]],"b":[[36,"impl-Display-for-BlockHash"],[37,"impl-Debug-for-BlockHash"],[210,"impl-Display-for-BlockHeight"],[211,"impl-Debug-for-BlockHeight"],[216,"impl-Debug-for-NetworkUpgrade"],[217,"impl-Display-for-NetworkUpgrade"],[292,"impl-Sub-for-BlockHeight"],[293,"impl-Sub%3Cu32%3E-for-BlockHeight"],[305,"impl-TryFrom%3Cu64%3E-for-BlockHeight"],[306,"impl-TryFrom%3Ci32%3E-for-BlockHeight"],[307,"impl-TryFrom%3Ci64%3E-for-BlockHeight"],[419,"impl-Shl%3COpCode%3E-for-Script"],[420,"impl-Shl%3C%26%5Bu8%5D%3E-for-Script"],[625,"impl-TryFrom%3CChildNumber%3E-for-NonHardenedChildIndex"],[626,"impl-TryFrom%3CDiversifierIndex%3E-for-NonHardenedChildIndex"],[719,"impl-Display-for-Error"],[720,"impl-Debug-for-Error"],[724,"impl-From%3CMemo%3E-for-MemoBytes"],[726,"impl-From%3C%26Memo%3E-for-MemoBytes"],[751,"impl-TryFrom%3CMemoBytes%3E-for-Memo"],[752,"impl-TryFrom%3C%26MemoBytes%3E-for-Memo"],[896,"impl-Debug-for-TxId"],[897,"impl-Display-for-TxId"],[1113,"impl-Debug-for-FeeError%3CFE%3E"],[1114,"impl-Display-for-FeeError%3CFE%3E"],[1115,"impl-Display-for-Error%3CFE%3E"],[1116,"impl-Debug-for-Error%3CFE%3E"],[1124,"impl-From%3CError%3E-for-Error%3CFE%3E"],[1126,"impl-From%3CFeeError%3CFE%3E%3E-for-Error%3CFE%3E"],[1127,"impl-From%3CBalanceError%3E-for-Error%3CFE%3E"],[1128,"impl-From%3CSpendError%3E-for-Error%3CFE%3E"],[1499,"impl-InputView-for-TransparentInputInfo"],[1500,"impl-TransparentInputInfo"],[1519,"impl-Debug-for-Error"],[1520,"impl-Display-for-Error"],[1542,"impl-InputView-for-TransparentInputInfo"],[1543,"impl-TransparentInputInfo"],[1925,"impl-Debug-for-FeeError"],[1926,"impl-Display-for-FeeError"],[2154,"impl-Display-for-TryFromIntError"],[2155,"impl-Debug-for-TryFromIntError"],[2159,"impl-Display-for-DiversifierIndexOverflowError"],[2160,"impl-Debug-for-DiversifierIndexOverflowError"],[2167,"impl-From%3Cusize%3E-for-DiversifierIndex"],[2168,"impl-From%3Cu32%3E-for-DiversifierIndex"],[2169,"impl-From%3C%5Bu8;+11%5D%3E-for-DiversifierIndex"],[2170,"impl-From%3CNonHardenedChildIndex%3E-for-DiversifierIndex"],[2171,"impl-From%3Cu64%3E-for-DiversifierIndex"],[2342,"impl-Display-for-DerivationError"],[2343,"impl-Debug-for-DerivationError"]],"c":"OzAAAAEAABwADgACAAMACAAAAJ8BAABeAgAAuwQAAL4EBQDLBAAAzQQDANMEAABCBQAAjgUAAKAHBACmBwAAzwgAAA==","e":"OzAAAAEAALgGsAACAAMACAAAAAwAGwAtAAMANAAKAEAACgBtAAMAcgADAHcAAwB8ACcApQA2AN4AAADlAAQA7QADAPIAAwD3AAMA/AADAAEBAwAGAQMACwEKAB8BAwAkAS4AfQEAAH8BAACCARUAmgECAJ8BAgCkAQ8AxQEtAPQBAAD3ARUAFwIOACcCBgAwAgAANAIAADwCAABAAgoAVwICAFwCAQBhAgIAZQI1AJ8CAACkAgAApwIiAMwCBwDdAgMA5gIJAPICCwABAwAAAwMBAAcDAgALAwAADQMAAA8DAQAUAwcAHwMEACYDAAArAxUAQgMQAFUDKQCBAwkAlQMAAJgDAACbAw0AswMCALcDEQDKAx4A6gMMAPgDEgAPBAAAEQQAABYEAAAhBAAAKQQPADsEAwBABBcAWQQIAGUEAABnBAIAbwQHAH8EAACCBAAAhQQAAIcEAgCNBAAAkAQCAJQEAACXBCAAuQQKAMUEBADLBBgA5QQGAO0EAwDyBAMA+AQBAPsEAAD9BAAA/wQUABYFAQAaBQIAHgUIACgFBQAvBToAawUFAHgFBwCHBQIAjAUGAJQFFQCrBQcAtAUNAMMFAQDGBQAAyQULANYFFwDvBQQA+QUGAAcGAQAKBhcAJwYBAEEGGwBeBhsAewYOAI4GCgCpBg8A6wYpAB0HFAA0BwAAOAcIAEIHAABEBwAARwcEAFIHBABYBwQAXgcAAGQHAwBpBwAAcwcUAIoHAACMBwEAlQcfALcHAgC9BwgAxwcDAM0HEwDjBwEA5wcJAPMHCwABCAEABQgAAAkICQAhCEcAaggIAHYIAAB4CAQAgwgCAIgIBgCZCAEAnAgmAMQIAQDICAIAzQgAANAIAwDVCAoA4wgBAOYIAADoCAQA8QgHAPsIAQD+CAAAAgkEAA0JBQAVCQIAGgkFACMJBQAuCQIANgkNAA==","P":[[12,"T"],[18,""],[19,"T"],[20,""],[22,"T"],[28,""],[39,"T"],[42,""],[44,"__H"],[45,""],[48,"U"],[51,""],[54,"R"],[55,""],[57,"T"],[58,""],[59,"U,T"],[62,""],[63,"U"],[66,""],[70,"V"],[73,"W"],[80,""],[127,"T"],[141,""],[148,"T"],[155,""],[168,"T"],[182,""],[219,"P"],[220,"T"],[221,""],[222,"T"],[228,""],[230,"__H"],[233,"P"],[235,""],[277,"U"],[284,""],[295,"T"],[302,""],[304,"U,T"],[305,""],[308,"U,T"],[314,""],[315,"U"],[322,""],[329,"V"],[336,""],[337,"P"],[338,""],[385,"T"],[389,""],[391,"T"],[393,""],[397,"T"],[401,""],[407,"T"],[409,"__H"],[410,""],[412,"U"],[415,""],[416,"R"],[417,""],[422,"T"],[424,"U,T"],[426,""],[428,"U"],[430,""],[432,"V"],[434,"W"],[452,""],[454,"T"],[476,""],[483,"T"],[490,""],[502,"T"],[524,""],[532,"P"],[533,""],[557,"T"],[559,""],[560,"T"],[563,""],[564,"T"],[570,""],[573,"P"],[574,""],[587,"U"],[598,"I"],[599,""],[603,"T"],[604,""],[612,"T"],[619,"U,T"],[625,""],[627,"U,T"],[632,"U"],[643,""],[654,"V"],[665,""],[678,"T"],[686,""],[690,"T"],[694,""],[700,"T"],[703,""],[704,"T"],[709,""],[723,"T"],[724,""],[725,"T"],[726,""],[727,"T"],[729,""],[736,"U"],[740,""],[742,"T"],[746,""],[747,"U,T"],[751,""],[753,"U"],[757,""],[761,"V"],[766,"Node"],[767,"R"],[769,"R,Node"],[770,"R,H"],[772,"R,Node"],[773,"R"],[774,"R,H"],[775,"R"],[777,"W"],[779,"Node,W"],[780,"W,H"],[781,"Node,W"],[782,"W,H"],[783,"W"],[810,""],[812,"T"],[833,""],[835,"A"],[838,"T"],[843,""],[849,"TransactionDigest::HeaderDigest,TransactionDigest::TransparentDigest,TransactionDigest::SaplingDigest,TransactionDigest::OrchardDigest,TransactionDigest::Digest"],[851,"A"],[852,"T"],[858,""],[859,"T"],[873,"A,D"],[874,"TransactionDigest::HeaderDigest,TransactionDigest::TransparentDigest,TransactionDigest::SaplingDigest,TransactionDigest::OrchardDigest,TransactionDigest::Digest"],[878,""],[893,"A"],[894,"A,E,F"],[896,""],[901,"A"],[905,""],[906,"T"],[916,""],[917,"A"],[918,""],[922,"__H"],[923,""],[936,"U"],[946,""],[947,"A"],[948,"A,B"],[950,"A"],[951,""],[957,"R"],[960,"A"],[961,""],[962,"A"],[963,""],[967,"A"],[968,""],[969,"R"],[970,"W"],[972,"T"],[977,""],[978,"A"],[979,""],[980,"U,T"],[990,"U"],[1000,"A,E,B"],[1002,""],[1014,"A"],[1015,""],[1016,"V"],[1026,"W"],[1041,""],[1058,"P,U,FE"],[1062,"P,U"],[1064,"T"],[1080,"P,U,R,SP,OP,FR"],[1081,"P,U,R,FR"],[1082,""],[1083,"T"],[1084,""],[1087,"T"],[1103,""],[1113,"FE"],[1117,""],[1118,"P"],[1120,""],[1121,"T"],[1124,"FE"],[1125,"T"],[1126,"FE"],[1129,"T"],[1133,"P,U,FR"],[1134,""],[1142,"U"],[1150,""],[1151,"P,U,R"],[1152,"P"],[1153,""],[1157,"P,U"],[1158,""],[1162,"P,U"],[1163,""],[1165,"P,U"],[1167,"T"],[1168,""],[1172,"P,U"],[1174,"U,T"],[1182,"U"],[1190,""],[1199,"V"],[1207,"P"],[1208,""],[1242,"A,B"],[1243,""],[1244,"R"],[1250,"R,T"],[1251,"R"],[1255,"W"],[1262,""],[1266,"A,B"],[1267,""],[1269,"R"],[1274,"W"],[1277,""],[1281,"T"],[1285,""],[1287,"T"],[1289,""],[1291,"T"],[1295,""],[1299,"T"],[1301,""],[1303,"U"],[1305,""],[1309,"R"],[1310,"T"],[1312,"U,T"],[1314,"U"],[1316,""],[1319,"V"],[1321,"W"],[1331,"F"],[1332,""],[1333,"T"],[1346,""],[1347,"A"],[1348,""],[1349,"A"],[1350,""],[1351,"T"],[1356,""],[1362,"T"],[1374,""],[1381,"A"],[1382,""],[1383,"A"],[1384,""],[1388,"A"],[1389,""],[1390,"A"],[1391,""],[1392,"T"],[1398,""],[1407,"U"],[1413,"A"],[1414,"A,B"],[1415,"A,B,F"],[1416,""],[1423,"R"],[1426,""],[1432,"T"],[1437,"U,T"],[1443,"U"],[1449,""],[1458,"A,E,F"],[1459,""],[1461,"V"],[1467,"W"],[1478,""],[1481,"T"],[1491,""],[1495,"T"],[1497,""],[1502,"T"],[1512,""],[1523,"T"],[1528,""],[1536,"U"],[1541,""],[1545,"T"],[1547,""],[1548,"U,T"],[1553,"U"],[1558,""],[1564,"V"],[1598,""],[1600,"T"],[1628,""],[1629,"T"],[1657,""],[1688,"T"],[1702,""],[1722,"U"],[1736,""],[1769,"F,C"],[1770,"U,T"],[1784,"U"],[1798,""],[1812,"F"],[1815,""],[1820,"V"],[1834,""],[1842,"FeeRule::Error,P"],[1847,"T"],[1849,""],[1850,"T"],[1851,""],[1852,"T"],[1854,""],[1855,"P,FeeRule::Error"],[1856,""],[1858,"T"],[1859,""],[1860,"U"],[1861,""],[1862,"T"],[1863,"U,T"],[1864,"U"],[1865,""],[1866,"V"],[1873,"T"],[1875,""],[1876,"T"],[1877,""],[1879,"T"],[1881,""],[1884,"T"],[1885,""],[1886,"U"],[1887,""],[1891,"T"],[1892,"U,T"],[1893,"U"],[1894,""],[1896,"V"],[1900,""],[1906,"T"],[1910,""],[1912,"T"],[1914,""],[1916,"T"],[1920,""],[1923,"P,FeeRule::Error"],[1924,""],[1927,"T"],[1929,""],[1933,"U"],[1935,""],[1940,"T"],[1942,""],[1943,"U,T"],[1945,"U"],[1947,""],[1949,"V"],[1951,""],[1962,"T"],[1970,""],[1972,"T"],[1974,""],[1977,"U"],[1979,"SA,TA,A"],[1980,"U,T"],[1982,"U"],[1984,""],[1986,"V"],[1988,"SA,A"],[1989,"TA,A"],[1990,""],[1996,"T"],[2000,"TransactionDigest::HeaderDigest,TransactionDigest::TransparentDigest,TransactionDigest::SaplingDigest,TransactionDigest::OrchardDigest,TransactionDigest::Digest"],[2002,"T"],[2006,"TransactionDigest::HeaderDigest"],[2008,"TransactionDigest::OrchardDigest"],[2010,"TransactionDigest::SaplingDigest"],[2011,""],[2012,"TransactionDigest::TransparentDigest"],[2013,""],[2016,"T"],[2018,""],[2020,"U"],[2022,""],[2023,"U,T"],[2025,"U"],[2027,""],[2029,"V"],[2034,"T"],[2038,""],[2039,"T"],[2043,""],[2046,"T"],[2048,""],[2050,"U"],[2052,"R"],[2054,""],[2055,"R"],[2057,"U,T"],[2059,"U"],[2061,""],[2063,"V"],[2065,""],[2080,"T"],[2094,""],[2101,"T"],[2108,""],[2122,"T"],[2136,""],[2162,"T"],[2165,""],[2166,"T"],[2167,""],[2172,"T"],[2175,""],[2178,"__H"],[2181,""],[2190,"U"],[2197,""],[2203,"T"],[2210,""],[2213,"U,T"],[2217,""],[2218,"U,T"],[2221,"U"],[2228,""],[2235,"V"],[2243,"T"],[2245,""],[2247,"T"],[2249,""],[2250,"T"],[2251,""],[2253,"U"],[2254,""],[2255,"U,T"],[2256,"U"],[2257,""],[2258,"V"],[2260,"T"],[2262,""],[2263,"T"],[2264,""],[2266,"T"],[2268,""],[2271,"T"],[2272,""],[2274,"__H"],[2275,""],[2276,"U"],[2277,""],[2279,"T"],[2280,"U,T"],[2281,"U"],[2282,""],[2283,"V"],[2288,"T"],[2290,"C"],[2291,"T"],[2292,""],[2293,"C"],[2294,"T"],[2296,"C"],[2298,""],[2299,"C"],[2300,"T"],[2301,""],[2302,"U"],[2303,"C"],[2305,"T"],[2306,"U,T"],[2307,"U"],[2308,""],[2309,"V"],[2316,"T"],[2322,""],[2325,"T"],[2326,""],[2329,"T"],[2335,""],[2344,"T"],[2347,""],[2352,"U"],[2355,""],[2357,"T"],[2358,""],[2359,"U,T"],[2362,"U"],[2365,""],[2368,"V"]]}],["zcash_proofs",{"t":"SSSFFNNNNCNNNHNNNNHHHNNNNNNNNNNHOOOHCOOOCONNNNNNNNNCFFFFFFFSFOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNONNNNNNNNOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNSHH","n":["SAPLING_OUTPUT_NAME","SAPLING_SPEND_NAME","SPROUT_NAME","SaplingParameterPaths","ZcashParameters","borrow","","borrow_mut","","circuit","clone","clone_into","clone_to_uninit","default_params_folder","deref","","deref_mut","","download_parameters","download_sapling_parameters","download_sprout_parameters","drop","","eq","fmt","from","","init","","into","","load_parameters","output","output_params","output_vk","parse_parameters","prover","spend","spend_params","spend_vk","sprout","sprout_vk","to_owned","try_from","","try_into","","type_id","","vzip","","sprout","CommitmentRandomness","JoinSplit","JsInput","JsOutput","NoteValue","PayingKey","SpendingKey","TREE_DEPTH","UniqueRandomness","a_pk","a_sk","auth_path","borrow","","","","","","","","borrow_mut","","","","","","","","deref","","","","","","","","deref_mut","","","","","","","","drop","","","","","","","","from","","","","","","","","h_sig","init","","","","","","","","inputs","into","","","","","","","","outputs","phi","r","","rho","rt","synthesize","try_from","","","","","","","","try_into","","","","","","","","type_id","","","","","","","","value","","vpub_new","vpub_old","vzip","","","","","","","","LocalTxProver","borrow","borrow_mut","bundled","create_proof","","deref","deref_mut","drop","encode_proof","","from","from_bytes","init","into","new","prepare_circuit","","try_from","try_into","type_id","verifying_keys","vzip","with_default_location","WITNESS_PATH_SIZE","create_proof","verify_proof"],"q":[[0,"zcash_proofs"],[51,"zcash_proofs::circuit"],[52,"zcash_proofs::circuit::sprout"],[173,"zcash_proofs::prover"],[197,"zcash_proofs::sprout"],[200,"std::path"],[201,"core::option"],[202,"minreq::error"],[203,"core::result"],[204,"core::fmt"],[205,"sapling_crypto::circuit"],[206,"std::io"],[207,"core::any"],[208,"alloc::vec"],[209,"bellman"],[210,"ff"],[211,"rand_core"],[212,"sapling_crypto::bundle"],[213,"sapling_crypto::keys"],[214,"sapling_crypto::note"],[215,"sapling_crypto::value"],[216,"jubjub::fr"],[217,"bls12_381::scalar"],[218,"sapling_crypto::tree"],[219,"sapling_crypto::address"],[220,"bls12_381::pairings"],[221,"bellman::groth16"]],"i":"`````B`f10`000`1010```1000101010`011``011`1010101010``````````BnC`0FlFnG`GbCd56Gd54321670543216705432167054321670543216701543216701543216701167611543216705432167054321670671154321670`Cn0000000000000000000000```","f":"{{}b}00``{b{{b{c}}}{}}0{{{b{d}}}{{b{dc}}}{}}0`{{{b{f}}}f}{{b{b{dc}}}h{}}{{bj}h}{{}{{n{l}}}}{A`{{b{c}}}{}}0{A`{{b{dc}}}{}}0{{}{{Ad{hAb}}}}{{{n{Af}}}{{Ad{fAb}}}}{{{n{Af}}}{{Ad{lAb}}}}{A`h}0{{{b{f}}{b{f}}}Ah}{{{b{f}}{b{dAj}}}Al}{cc{}}0{{}A`}0{{}c{}}0{{{b{An}}{b{An}}{n{{b{An}}}}}B`}{fl}{B`Bb}{B`Bd}{{cc{n{c}}}B`Bf}`3{B`Bh}{B`Bj}`{B`n}{bc{}}{c{{Ad{e}}}{}{}}0{{}{{Ad{c}}}{}}0{bBl}0{{}c{}}0````````>`{Bnn}{C`n}{C`Cb}{b{{b{c}}}{}}0000000{{{b{d}}}{{b{dc}}}{}}0000000{A`{{b{c}}}{}}0000000{A`{{b{dc}}}{}}0000000{A`h}0000000{cc{}}0000000{Cdn}{{}A`}0000000{CdCf}{{}c{}}000000013;<;3{{Cd{b{de}}}{{Ad{hCh}}}Cj{{Cl{c}}}}{c{{Ad{e}}}{}{}}0000000{{}{{Ad{c}}}{}}0000000{bBl}0000000?{Bnn}88{{}c{}}0000000`?>{{}Cn}{{{b{Cn}}D`{b{dc}}}eDb{}}{{{b{Cn}}Dd{b{dc}}}eDb{}}{A`{{b{c}}}{}}{A`{{b{dc}}}{}}{A`h}{cDf{}}{cDf{}}{cc{}}{{{b{{Dh{j}}}}{b{{Dh{j}}}}}Cn}{{}A`}{{}c{}}{{{b{An}}{b{An}}}Cn}{{DjDlDnE`EbEdEfEh}{{n{Dd}}}}{{{b{Ej}}ElEbE`Ed}D`}{c{{Ad{e}}}{}{}}{{}{{Ad{c}}}{}}{bBl}{{{b{Cn}}}{{Fb{EnF`}}}}{{}c{}}{{}{{n{Cn}}}}:{{{Cb{j}}{Cb{j}}{Cb{j}}{Cb{j}}Af{Cb{j}}{Cb{j}}{b{{Cb{j}}}}{Cb{j}}Af{Cb{j}}{Cb{j}}{b{{Cb{j}}}}{Cb{j}}Af{Cb{j}}{Cb{j}}Af{Cb{j}}AfAf{b{{Ff{Fd}}}}}{{Fh{Fd}}}}{{{b{{Cb{j}}}}{b{{Cb{j}}}}{b{{Cb{j}}}}{b{{Cb{j}}}}{b{{Cb{j}}}}{b{{Cb{j}}}}{b{{Cb{j}}}}{b{{Cb{j}}}}{b{{Cb{j}}}}AfAf{b{{Fj{Fd}}}}}Ah}","D":"F`","p":[[1,"reference",null,null,1],[0,"mut"],[5,"SaplingParameterPaths",0],[1,"unit"],[1,"u8"],[5,"PathBuf",200],[6,"Option",201,null,1],[1,"usize"],[6,"Error",202],[6,"Result",203,null,1],[1,"u64"],[1,"bool"],[5,"Formatter",204],[8,"Result",204],[5,"Path",200],[5,"ZcashParameters",0],[5,"OutputParameters",205],[5,"PreparedOutputVerifyingKey",205],[10,"Read",206],[5,"SpendParameters",205],[5,"PreparedSpendVerifyingKey",205],[5,"TypeId",207],[5,"JsOutput",52],[5,"JsInput",52],[1,"array"],[5,"JoinSplit",52],[5,"Vec",208],[6,"SynthesisError",209],[10,"PrimeField",210],[10,"ConstraintSystem",209],[5,"LocalTxProver",173],[5,"Output",205],[10,"RngCore",211],[5,"Spend",205],[8,"GrothProofBytes",212],[1,"slice"],[5,"ProofGenerationKey",213],[5,"Diversifier",213],[6,"Rseed",214],[5,"NoteValue",215],[5,"Fr",216],[5,"ValueCommitTrapdoor",215],[5,"Scalar",217],[8,"MerklePath",218],[5,"EphemeralSecretKey",213],[5,"PaymentAddress",219],[5,"SpendVerifyingKey",205],[5,"OutputVerifyingKey",205],[1,"tuple",null,null,1],[5,"Bls12",220],[5,"Parameters",221],[5,"Proof",221],[5,"PreparedVerifyingKey",221],[5,"SpendingKey",52],[5,"PayingKey",52],[5,"UniqueRandomness",52],[5,"CommitmentRandomness",52],[5,"NoteValue",52]],"r":[],"b":[[177,"impl-OutputProver-for-LocalTxProver"],[178,"impl-SpendProver-for-LocalTxProver"],[182,"impl-SpendProver-for-LocalTxProver"],[183,"impl-OutputProver-for-LocalTxProver"],[189,"impl-SpendProver-for-LocalTxProver"],[190,"impl-OutputProver-for-LocalTxProver"]],"c":"OjAAAAEAAAAAAAAAEAAAABMA","e":"OzAAAAEAAJgAEQAGAAMACwACAA8AAwAWAAMAHAABACIAAQAnAAEAKgAJADUAMwBxAAkAgwAqAK8AAQCyAAYAuwAAAL4ABADEAAAAxgAAAA==","P":[[5,"T"],[10,""],[11,"T"],[12,""],[14,"T"],[18,""],[25,"T"],[27,""],[29,"U"],[31,""],[35,"R"],[37,""],[42,"T"],[43,"U,T"],[45,"U"],[47,""],[49,"V"],[59,""],[64,"T"],[96,""],[104,"T"],[112,""],[122,"U"],[130,""],[136,"Scalar,CS"],[137,"U,T"],[145,"U"],[153,""],[165,"V"],[174,"T"],[176,""],[177,"R,OutputProver::Proof"],[178,"R,SpendProver::Proof"],[179,"T"],[181,""],[182,"SpendProver::Proof"],[183,"OutputProver::Proof"],[184,"T"],[185,""],[187,"U"],[188,""],[191,"U,T"],[192,"U"],[193,""],[195,"V"],[196,""]]}],["zcash_protocol",{"t":"TPGTPPGTPFNNNNNNNNNNNNNNNNNNNCCNNNNNNNNNNNNNNNNNNCCNNNNNNNNNNNNNNNNNNCNNNNFPPGPPSPPSPFPGKGGPPPPPPKPPPPSPFPSMNNNNMNNNNMNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNMNNNNMNNNNMNNNNMNNNNMNNNNMNNNNNNNNNNNNMNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHHSSSSSSCCCSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSFNNNNONNONNNNNNNNONNNNNNNNNOOOONNNNNPPGPPGFPFPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGSSSPFPTFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNHHHH","n":["ORCHARD","Orchard","PoolType","SAPLING","Sapling","Shielded","ShieldedProtocol","TRANSPARENT","Transparent","TxId","as_ref","borrow","","","borrow_mut","","","clone","","","clone_into","","","clone_to_uninit","","","cmp","","","consensus","constants","dynamic_usage","dynamic_usage_bounds","eq","","","fmt","","","","","from","","","from_bytes","hash","into","","","local_consensus","memo","partial_cmp","","","read","to_owned","","","to_string","","try_from","","","try_into","","","type_id","","","value","vzip","","","write","BlockHeight","Blossom","","BranchId","Canopy","","H0","Heartwood","","MAIN_NETWORK","Main","MainNetwork","","Network","NetworkConstants","NetworkType","NetworkUpgrade","Nu5","","Nu6","","Overwinter","","Parameters","Regtest","Sapling","","Sprout","TEST_NETWORK","Test","TestNetwork","","ZIP212_GRACE_PERIOD","activation_height","","","","add","b58_pubkey_address_prefix","","","","","b58_script_address_prefix","","","","","b58_sprout_address_prefix","","","","","borrow","","","","","","","borrow_mut","","","","","","","clone","","","","","","","clone_into","","","","","","","clone_to_uninit","","","","","","","cmp","coin_type","","","","","dynamic_usage","","","","","","","dynamic_usage_bounds","","","","","","","eq","","","","","","","fmt","","","","","","","","","for_height","from","","","","","","","","from_u32","from_u64","hash","","","height_bounds","height_range","hrp_sapling_extended_full_viewing_key","","","","","hrp_sapling_extended_spending_key","","","","","hrp_sapling_payment_address","","","","","hrp_tex_address","","","","","hrp_unified_address","","","","","hrp_unified_fvk","","","","","hrp_unified_ivk","","","","","into","","","","","","","is_nu_active","network_type","","","","partial_cmp","saturating_sub","sprout_uses_groth_proofs","sub","","testing","to_owned","","","","","","","to_string","","try_from","","","","","","","","","","","try_into","","","","","","","type_id","","","","","","","vzip","","","","","","","arb_branch_id","arb_height","V3_TX_VERSION","V3_VERSION_GROUP_ID","V4_TX_VERSION","V4_VERSION_GROUP_ID","V5_TX_VERSION","V5_VERSION_GROUP_ID","mainnet","regtest","testnet","B58_PUBKEY_ADDRESS_PREFIX","B58_SCRIPT_ADDRESS_PREFIX","B58_SPROUT_ADDRESS_PREFIX","COIN_TYPE","HRP_SAPLING_EXTENDED_FULL_VIEWING_KEY","HRP_SAPLING_EXTENDED_SPENDING_KEY","HRP_SAPLING_PAYMENT_ADDRESS","HRP_TEX_ADDRESS","HRP_UNIFIED_ADDRESS","HRP_UNIFIED_FVK","HRP_UNIFIED_IVK","B58_PUBKEY_ADDRESS_PREFIX","B58_SCRIPT_ADDRESS_PREFIX","B58_SPROUT_ADDRESS_PREFIX","COIN_TYPE","HRP_SAPLING_EXTENDED_FULL_VIEWING_KEY","HRP_SAPLING_EXTENDED_SPENDING_KEY","HRP_SAPLING_PAYMENT_ADDRESS","HRP_TEX_ADDRESS","HRP_UNIFIED_ADDRESS","HRP_UNIFIED_FVK","HRP_UNIFIED_IVK","B58_PUBKEY_ADDRESS_PREFIX","B58_SCRIPT_ADDRESS_PREFIX","B58_SPROUT_ADDRESS_PREFIX","COIN_TYPE","HRP_SAPLING_EXTENDED_FULL_VIEWING_KEY","HRP_SAPLING_EXTENDED_SPENDING_KEY","HRP_SAPLING_PAYMENT_ADDRESS","HRP_TEX_ADDRESS","HRP_UNIFIED_ADDRESS","HRP_UNIFIED_FVK","HRP_UNIFIED_IVK","LocalNetwork","activation_height","b58_pubkey_address_prefix","b58_script_address_prefix","b58_sprout_address_prefix","blossom","borrow","borrow_mut","canopy","clone","clone_into","clone_to_uninit","coin_type","eq","fmt","from","hash","heartwood","hrp_sapling_extended_full_viewing_key","hrp_sapling_extended_spending_key","hrp_sapling_payment_address","hrp_tex_address","hrp_unified_address","hrp_unified_fvk","hrp_unified_ivk","into","network_type","nu5","nu6","overwinter","sapling","to_owned","try_from","try_into","type_id","vzip","Arbitrary","Empty","Error","Future","InvalidUtf8","Memo","MemoBytes","Text","TextMemo","TooLong","as_array","as_slice","borrow","","","","borrow_mut","","","","clone","","","","clone_into","","","","clone_to_uninit","","","","cmp","default","deref","empty","encode","eq","","","","fmt","","","","from","","","","","","from_bytes","","from_str","into","","","","into_bytes","partial_cmp","to_owned","","","","to_string","try_from","","","","","","try_into","","","","type_id","","","","vzip","","","","BalanceError","COIN","MAX_BALANCE","MAX_MONEY","Overflow","QuotRem","Underflow","ZERO","ZatBalance","Zatoshis","add","","borrow","","","","borrow_mut","","","","clone","","","clone_into","","","clone_to_uninit","","","cmp","","const_from_i64","const_from_u64","","div","div_with_remainder","dynamic_usage","dynamic_usage_bounds","eq","","","fmt","","","","from","","","","","","","from_i64","from_i64_le_bytes","from_nonnegative_i64","","from_nonnegative_i64_le_bytes","","from_u64","","from_u64_le_bytes","","into","","","","into_u64","is_negative","is_positive","","is_zero","mul","","","neg","partial_cmp","","quotient","remainder","sub","","sum","testing","to_i64_le_bytes","","to_owned","","","to_string","try_from","","","","","","","try_into","","","","type_id","","","","vzip","","","","zero","arb_nonnegative_zat_balance","arb_positive_zat_balance","arb_zat_balance","arb_zatoshis"],"q":[[0,"zcash_protocol"],[74,"zcash_protocol::consensus"],[308,"zcash_protocol::consensus::testing"],[310,"zcash_protocol::constants"],[319,"zcash_protocol::constants::mainnet"],[330,"zcash_protocol::constants::regtest"],[341,"zcash_protocol::constants::testnet"],[352,"zcash_protocol::local_consensus"],[388,"zcash_protocol::memo"],[471,"zcash_protocol::value"],[580,"zcash_protocol::value::testing"],[584,"zcash_protocol::txid"],[585,"core::cmp"],[586,"core::option"],[587,"core::fmt"],[588,"core::hash"],[589,"std::io::error"],[590,"std::io"],[591,"alloc::string"],[592,"core::result"],[593,"core::any"],[594,"core::ops::range"],[595,"proptest::strategy::traits"],[596,"core::num::nonzero"],[597,"core::convert"],[598,"core::iter::traits::collect"]],"i":"nl`101`11`b012012012012012012``000120012201200012``012001202012012012`0120`ChD``10`10`Cn`Cj````323232`1322`1`0`CfC`Cb3BnCl632506325063251632587163258716325871632587163258710632516325871632587163258711632588771163258711165770632506325063250632506325063250632516325874432511711`16325871811116325877163258716325871632587`````````````````````````````````````````````E`0000000000000000000000000000000000Ej0`0Ef``1`0Eb010Eh32103210321032103130132103221321110313321031121032210333210321032103````F``0En``El1Fd123012312312312312112221112312330111233111212121201232112212211200121`12123301122230123012301231````","f":"``````````{{{d{b}}}{{d{{h{f}}}}}}{d{{d{c}}}{}}00{{{d{j}}}{{d{jc}}}{}}00{{{d{b}}}b}{{{d{l}}}l}{{{d{n}}}n}{{d{d{jc}}}A`{}}00{{df}A`}00{{{d{b}}{d{b}}}Ab}{{{d{l}}{d{l}}}Ab}{{{d{n}}{d{n}}}Ab}``{{{d{b}}}Ad}{{{d{b}}}{{Ah{Ad{Af{Ad}}}}}}{{{d{b}}{d{b}}}Aj}{{{d{l}}{d{l}}}Aj}{{{d{n}}{d{n}}}Aj}{{{d{b}}{d{jAl}}}An}0{{{d{l}}{d{jAl}}}An}{{{d{n}}{d{jAl}}}An}0{cc{}}00{{{h{f}}}b}{{{d{b}}{d{jc}}}A`B`}{{}c{}}00``{{{d{b}}{d{b}}}{{Af{Ab}}}}{{{d{l}}{d{l}}}{{Af{Ab}}}}{{{d{n}}{d{n}}}{{Af{Ab}}}}{c{{Bb{b}}}Bd}{dc{}}00{dBf}0{c{{Bh{e}}}{}{}}00{{}{{Bh{c}}}{}}00{dBj}00`{{}c{}}00{{{d{b}}c}{{Bb{A`}}}Bl}``````{{}Bn}``{{}C`}``````````````````{{}Cb}```{{}Cd}{{{d{Cf}}Ch}{{Af{Bn}}}}{{{d{C`}}Ch}{{Af{Bn}}}}{{{d{Cb}}Ch}{{Af{Bn}}}}{{{d{Cj}}Ch}{{Af{Bn}}}}{{BnCd}Bn}{{{d{Cl}}}{{h{f}}}}{{{d{Cn}}}{{h{f}}}}{d{{h{f}}}}002100021000{d{{d{c}}}{}}000000{{{d{j}}}{{d{jc}}}{}}000000{{{d{Bn}}}Bn}{{{d{Cn}}}Cn}{{{d{C`}}}C`}{{{d{Cb}}}Cb}{{{d{Cj}}}Cj}{{{d{Ch}}}Ch}{{{d{D`}}}D`}{{d{d{jc}}}A`{}}000000{{df}A`}000000{{{d{Bn}}{d{Bn}}}Ab}{{{d{Cl}}}Cd}{{{d{Cn}}}Cd}{dCd}00{{{d{Bn}}}Ad}{{{d{Cn}}}Ad}{{{d{C`}}}Ad}{{{d{Cb}}}Ad}{{{d{Cj}}}Ad}{{{d{Ch}}}Ad}{{{d{D`}}}Ad}{{{d{Bn}}}{{Ah{Ad{Af{Ad}}}}}}{{{d{Cn}}}{{Ah{Ad{Af{Ad}}}}}}{{{d{C`}}}{{Ah{Ad{Af{Ad}}}}}}{{{d{Cb}}}{{Ah{Ad{Af{Ad}}}}}}{{{d{Cj}}}{{Ah{Ad{Af{Ad}}}}}}{{{d{Ch}}}{{Ah{Ad{Af{Ad}}}}}}{{{d{D`}}}{{Ah{Ad{Af{Ad}}}}}}{{{d{Bn}}{d{Bn}}}Aj}{{{d{Cn}}{d{Cn}}}Aj}{{{d{C`}}{d{C`}}}Aj}{{{d{Cb}}{d{Cb}}}Aj}{{{d{Cj}}{d{Cj}}}Aj}{{{d{Ch}}{d{Ch}}}Aj}{{{d{D`}}{d{D`}}}Aj}{{{d{Bn}}{d{jAl}}}An}0{{{d{Cn}}{d{jAl}}}An}{{{d{C`}}{d{jAl}}}An}{{{d{Cb}}{d{jAl}}}An}{{{d{Cj}}{d{jAl}}}An}{{{d{Ch}}{d{jAl}}}An}0{{{d{D`}}{d{jAl}}}An}{{{d{c}}Bn}D`Cf}{cc{}}{CdBn}1111110{DbBn}{{{d{Bn}}{d{jc}}}A`B`}{{{d{Cn}}{d{jc}}}A`B`}{{{d{Cj}}{d{jc}}}A`B`}{{{d{D`}}{d{c}}}{{Af{{Ah{Bn{Af{Bn}}}}}}}Cf}{{{d{D`}}{d{c}}}{{Af{{`{{Dd{Bn}}}}}}}Cf}{{{d{Cl}}}{{d{Df}}}}{{{d{Cn}}}{{d{Df}}}}{d{{d{Df}}}}00210002100021000210002100021000{{}c{}}000000{{{d{Cf}}ChBn}Aj}{{{d{Cf}}}Cn}{{{d{C`}}}Cn}{{{d{Cb}}}Cn}{{{d{Cj}}}Cn}{{{d{Bn}}{d{Bn}}}{{Af{Ab}}}}{{BnCd}Bn}{{{d{D`}}}Aj}{{BnBn}Cd}2`{dc{}}000000{dBf}0{Db{{Bh{Bnc}}}{}}{c{{Bh{e}}}{}{}}{Dh{{Bh{Bnc}}}{}}{Dj{{Bh{Bnc}}}{}}222222{Cd{{Bh{D`c}}}{}}{{}{{Bh{c}}}{}}000000{dBj}000000{{}c{}}000000{{}{{`{{Dn{}{{Dl{D`}}}}}}}}{{D`{d{c}}}{{`{{Dn{}{{Dl{{Af{Bn}}}}}}}}}Cf}{{}Cd}00000```{{}h}001{{}d}0000001112000000011120000000`{{{d{E`}}Ch}{{Af{Bn}}}}{d{{h{f}}}}00{E`Af}{d{{d{c}}}{}}{{{d{j}}}{{d{jc}}}{}}2{{{d{E`}}}E`}{{d{d{jc}}}A`{}}{{df}A`}{dCd}{{{d{E`}}{d{E`}}}Aj}{{{d{E`}}{d{jAl}}}An}{cc{}}{{{d{E`}}{d{jc}}}A`B`}:{d{{d{Df}}}}000000{{}c{}}{{{d{E`}}}Cn}===={dc{}}{c{{Bh{e}}}{}{}}{{}{{Bh{c}}}{}}{dBj}{{}c{}}``````````{{{d{Eb}}}{{d{{h{f}}}}}}{{{d{Eb}}}{{d{{Ed{f}}}}}}{d{{d{c}}}{}}000{{{d{j}}}{{d{jc}}}{}}000{{{d{Ef}}}Ef}{{{d{Eb}}}Eb}{{{d{Eh}}}Eh}{{{d{Ej}}}Ej}{{d{d{jc}}}A`{}}000{{df}A`}000{{{d{Eb}}{d{Eb}}}Ab}{{}Ej}{{{d{Eh}}}{{d{Df}}}}{{}Eb}{{{d{Ej}}}Eb}{{{d{Ef}}{d{Ef}}}Aj}{{{d{Eb}}{d{Eb}}}Aj}{{{d{Eh}}{d{Eh}}}Aj}{{{d{Ej}}{d{Ej}}}Aj}{{{d{Ef}}{d{jAl}}}An}0{{{d{Eb}}{d{jAl}}}An}{{{d{Ej}}{d{jAl}}}An}{cc{}}8{EjEb}111{{{d{{Ed{f}}}}}{{Bh{EbEf}}}}{{{d{{Ed{f}}}}}{{Bh{EjEf}}}}{{{d{Df}}}{{Bh{Ejc}}}{}}{{}c{}}000{Eb{{h{f}}}}{{{d{Eb}}{d{Eb}}}{{Af{Ab}}}}{dc{}}000{dBf}{c{{Bh{e}}}{}{}}00{{{d{Eb}}}{{Bh{Ejc}}}{}}{Eb{{Bh{Ejc}}}{}}2{{}{{Bh{c}}}{}}000{dBj}000{{}c{}}000`{{}Db}{{}Dh}1``````{{ElEl}{{Af{El}}}}{{EnEn}{{Af{En}}}}{d{{d{c}}}{}}000{{{d{j}}}{{d{jc}}}{}}000{{{d{El}}}El}{{{d{En}}}En}{{{d{F`}}}F`}{{d{d{jc}}}A`{}}00{{df}A`}00{{{d{El}}{d{El}}}Ab}{{{d{En}}{d{En}}}Ab}{DhEl}{DbEl}{DbEn}{{EnFb}En}{{{d{En}}Fb}{{Fd{En}}}}{{{d{El}}}Ad}{{{d{El}}}{{Ah{Ad{Af{Ad}}}}}}{{{d{El}}{d{El}}}Aj}{{{d{En}}{d{En}}}Aj}{{{d{F`}}{d{F`}}}Aj}{{{d{El}}{d{jAl}}}An}{{{d{En}}{d{jAl}}}An}{{{d{F`}}{d{jAl}}}An}0{cc{}}{EnEl}{{{d{En}}}El}222{FfF`}{Dh{{Bh{ElF`}}}}{{{h{f}}}{{Bh{ElF`}}}}1{Dh{{Bh{EnF`}}}}1{{{h{f}}}{{Bh{EnF`}}}}{Db{{Bh{ElF`}}}}{Db{{Bh{EnF`}}}}42{{}c{}}000{EnDb}{ElAj}0{{{d{En}}}Aj}0{{ElAd}{{Af{El}}}}{{EnDb}{{Af{En}}}}{{EnAd}{{Af{En}}}}{ElEl}{{{d{El}}{d{El}}}{{Af{Ab}}}}{{{d{En}}{d{En}}}{{Af{Ab}}}}{{{d{{Fd{c}}}}}{{d{c}}}{}}0{{ElEl}{{Af{El}}}}{{EnEn}{{Af{En}}}}{c{{Af{El}}}{{Fj{}{{Fh{El}}}}}}`{El{{h{f}}}}{En{{h{f}}}}{dc{}}00{dBf}{c{{Bh{e}}}{}{}}{Dh{{Bh{ElF`}}}}1{El{{Bh{Enc}}}{}}2{Db{{Bh{Enc}}}{}}3{{}{{Bh{c}}}{}}000{dBj}000{{}c{}}000{{}El}{{}{{`{{Dn{}{{Dl{El}}}}}}}}00{{}{{`{{Dn{}{{Dl{En}}}}}}}}","D":"AH`","p":[[5,"TxId",0,584],[1,"reference",null,null,1],[1,"u8"],[1,"array"],[0,"mut"],[6,"ShieldedProtocol",0],[6,"PoolType",0],[1,"unit"],[6,"Ordering",585],[1,"usize"],[6,"Option",586,null,1],[1,"tuple",null,null,1],[1,"bool"],[5,"Formatter",587],[8,"Result",587],[10,"Hasher",588],[8,"Result",589,null,1],[10,"Read",590],[5,"String",591],[6,"Result",592,null,1],[5,"TypeId",593],[10,"Write",590],[5,"BlockHeight",74],[5,"MainNetwork",74],[5,"TestNetwork",74],[1,"u32"],[10,"Parameters",74],[6,"NetworkUpgrade",74],[6,"Network",74],[10,"NetworkConstants",74],[6,"NetworkType",74],[6,"BranchId",74],[1,"u64"],[10,"RangeBounds",594],[1,"str"],[1,"i64"],[1,"i32"],[17,"Value"],[10,"Strategy",595],[5,"LocalNetwork",352],[5,"MemoBytes",388],[1,"slice"],[6,"Error",388],[5,"TextMemo",388],[6,"Memo",388],[5,"ZatBalance",471],[5,"Zatoshis",471],[6,"BalanceError",471],[8,"NonZeroU64",596],[5,"QuotRem",471],[6,"Infallible",597],[17,"Item"],[10,"IntoIterator",598]],"r":[[9,584],[10,584],[11,584],[14,584],[17,584],[20,584],[23,584],[26,584],[31,584],[32,584],[33,584],[36,584],[37,584],[41,584],[44,584],[45,584],[46,584],[51,584],[54,584],[55,584],[58,584],[60,584],[63,584],[66,584],[70,584],[73,584]],"b":[[36,"impl-Debug-for-TxId"],[37,"impl-Display-for-TxId"],[39,"impl-Debug-for-PoolType"],[40,"impl-Display-for-PoolType"],[189,"impl-Debug-for-BlockHeight"],[190,"impl-Display-for-BlockHeight"],[195,"impl-Debug-for-NetworkUpgrade"],[196,"impl-Display-for-NetworkUpgrade"],[264,"impl-Sub-for-BlockHeight"],[265,"impl-Sub%3Cu32%3E-for-BlockHeight"],[276,"impl-TryFrom%3Cu64%3E-for-BlockHeight"],[278,"impl-TryFrom%3Ci64%3E-for-BlockHeight"],[279,"impl-TryFrom%3Ci32%3E-for-BlockHeight"],[429,"impl-Display-for-Error"],[430,"impl-Debug-for-Error"],[434,"impl-From%3C%26Memo%3E-for-MemoBytes"],[435,"impl-From%3CMemo%3E-for-MemoBytes"],[456,"impl-TryFrom%3C%26MemoBytes%3E-for-Memo"],[457,"impl-TryFrom%3CMemoBytes%3E-for-Memo"],[514,"impl-Debug-for-BalanceError"],[515,"impl-Display-for-BalanceError"],[517,"impl-From%3CZatoshis%3E-for-ZatBalance"],[518,"impl-From%3C%26Zatoshis%3E-for-ZatBalance"],[543,"impl-Mul%3Cu64%3E-for-Zatoshis"],[544,"impl-Mul%3Cusize%3E-for-Zatoshis"],[563,"impl-TryFrom%3CZatBalance%3E-for-Zatoshis"],[565,"impl-TryFrom%3Cu64%3E-for-Zatoshis"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAIgBLAABAAAABAAAAAgAAAALABIAIAAJAC0AAQAyAAAANAAWAG0AAwByAAMAdwADAHwAJwClACEAyQAAANAABADYAAMA3QADAOIAAwDnAAMA7AADAPEAAwD2AAMAAwEDAAgBLgBiAQ0AcQEIAHsBCQCJAQAAjgEAAJEBFgCqAQcAwAEIAMsBDADZAQMA3gEAAOIBFAD6AQAA/AEIAAYCAQALAgAAHwIFACcCAwAtAhYARQIDAA==","P":[[11,"T"],[17,""],[20,"T"],[23,""],[41,"T"],[44,""],[45,"__H"],[46,"U"],[51,""],[54,"R"],[55,"T"],[58,""],[60,"U,T"],[63,"U"],[66,""],[70,"V"],[73,"W"],[80,""],[127,"T"],[141,""],[148,"T"],[155,""],[198,"P"],[199,"T"],[200,""],[201,"T"],[207,""],[209,"__H"],[212,"P"],[214,""],[249,"U"],[256,""],[267,"T"],[274,""],[276,"TryFrom::Error"],[277,"U,T"],[278,"TryFrom::Error"],[280,"U,T"],[286,"TryFrom::Error"],[287,"U"],[294,""],[301,"V"],[308,""],[309,"P"],[310,""],[358,"T"],[360,""],[362,"T"],[363,""],[367,"T"],[368,"__H"],[369,""],[377,"U"],[378,""],[383,"T"],[384,"U,T"],[385,"U"],[386,""],[387,"V"],[398,""],[400,"T"],[408,""],[412,"T"],[416,""],[433,"T"],[434,""],[436,"T"],[439,""],[441,"FromStr::Err"],[442,"U"],[446,""],[448,"T"],[452,""],[453,"U,T"],[456,"TryFrom::Error"],[458,"U,T"],[459,"U"],[463,""],[467,"V"],[472,""],[483,"T"],[491,""],[494,"T"],[497,""],[516,"T"],[517,""],[519,"T"],[522,""],[533,"U"],[537,""],[548,"A"],[550,""],[552,"I"],[554,""],[556,"T"],[559,""],[560,"U,T"],[561,""],[562,"U,T"],[563,"TryFrom::Error"],[564,"U,T"],[565,"TryFrom::Error"],[566,"U,T"],[567,"U"],[571,""],[575,"V"],[579,""]]}],["zcash_transparent",{"t":"CCCCCCPFPGNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNHGPPPFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKFFFKFRFFNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNMNNNNONNNNOOOCNNNNNNNNNNNNNNNNNNNNNNNNONOONNNNNNNNNSHHHHHFFTTFFFTKFFTFFFFTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFPPPPPPPPPFFGGGGFPPPFGGPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTTTTSSSSSTTFFKNNNNNNNNNNNNNNNNMMNNNNNNNNNNNNNNN","n":["address","builder","bundle","keys","pczt","sighash","PublicKeyHash","Script","ScriptHash","TransparentAddress","address","borrow","","borrow_mut","","clone","","clone_into","","clone_to_uninit","","cmp","default","eq","","fmt","","from","","hash","into","","partial_cmp","read","script","serialized_size","shl","testing","to_owned","","try_from","","try_from_raw_transparent_p2pkh","try_from_raw_transparent_p2sh","try_into","","type_id","","vzip","","write","arb_transparent_addr","Error","InvalidAddress","InvalidAmount","MissingSigningKey","TransparentBuilder","TransparentInputInfo","TransparentSigningSet","Unauthorized","add_input","add_key","add_output","borrow","","","","","borrow_mut","","","","","build","build_for_pczt","clone","","clone_into","","clone_to_uninit","","coin","default","empty","eq","fmt","","","","from","","","","","input_amounts","input_scriptpubkeys","inputs","into","","","","","new","outpoint","outputs","to_owned","","to_string","try_from","","","","","try_into","","","","","type_id","","","","","value_balance","vzip","","","","","Authorization","Authorized","Bundle","EffectsOnly","MapAuth","OutPoint","ScriptSig","TxIn","TxOut","apply_signatures","authorization","borrow","","","","","","borrow_mut","","","","","","clone","","","","","clone_into","","","","","clone_to_uninit","","","","","cmp","eq","","","","","fake","fmt","","","","","","from","","","","","","hash","input_amounts","input_scriptpubkeys","into","","","","","","is_coinbase","map_authorization","","map_script_sig","n","new","","partial_cmp","prevout","read","","","recipient_address","script_pubkey","script_sig","sequence","testing","to_owned","","","","","try_from","","","","","","try_into","","","","","","txid","type_id","","","","","","value","value_balance","vin","vout","vzip","","","","","","write","","","VALID_OPCODES","arb_bundle","arb_outpoint","arb_script","arb_txin","arb_txout","AccountPrivKey","AccountPubKey","EPHEMERAL","EXTERNAL","EphemeralIvk","ExternalIvk","ExternalOvk","INTERNAL","IncomingViewingKey","InternalIvk","InternalOvk","MAX","NonHardenedChildIndex","NonHardenedChildIter","NonHardenedChildRange","TransparentKeyScope","ZERO","as_bytes","","borrow","","","","","","","","","","","borrow_mut","","","","","","","","","","","clone","","","","","","","clone_into","","","","","","","clone_to_uninit","","","","","","","cmp","const_from_index","ct_eq","custom","default_address","derive_address","derive_address_pubkey","derive_ephemeral_address","derive_ephemeral_ivk","derive_external_ivk","derive_external_secret_key","derive_internal_ivk","derive_internal_secret_key","derive_pubkey_at_bip32_path","derive_secret_key","deserialize","","eq","","external_ovk","fmt","","","","","","","from","","","","","","","","","","","","","from_bytes","from_extended_privkey","from_index","from_seed","index","internal_ovk","into","","","","","","","","","","","into_iter","","next","","ovks_for_shielding","partial_cmp","pubkey_to_address","saturating_add","saturating_sub","serialize","","to_account_pubkey","to_bytes","to_owned","","","","","","","try_from","","","","","","","","","","","","","try_into","","","","","","","","","","","type_id","","","","","","","","","","","vzip","","","","","","","","","","","Bip32Derivation","Bundle","Input","InputUpdater","InvalidIndex","InvalidRequiredHeightLocktime","InvalidRequiredTimeLocktime","InvalidSighashType","InvalidValue","MissingScriptSig","MissingSignature","NotP2sh","","Output","OutputUpdater","ParseError","SignerError","SpendFinalizerError","TxExtractorError","Unbound","UnexpectedSignatures","UnsupportedScriptPubkey","","Updater","UpdaterError","VerifyError","WrongRedeemScript","","WrongSpendingKey","bip32_derivation","","borrow","","","","","","","","","","","","","","borrow_mut","","","","","","","","","","","","","","bundle","derivation_path","eq","extract","extract_bip_44_fields","extract_effects","finalize_spends","fmt","","","","","","","","","","","from","","","","","","","","","","","","","","hash160_preimages","hash256_preimages","input_amounts","input_scriptpubkeys","inputs","inputs_mut","into","","","","","","","","","","","","","","outputs","parse","","","","partial_signatures","prevout_index","prevout_txid","proprietary","","redeem_script","","required_height_lock_time","required_time_lock_time","ripemd160_preimages","script_pubkey","","script_sig","seed_fingerprint","sequence","set_bip32_derivation","","set_hash160_preimage","set_hash256_preimage","set_proprietary","","set_redeem_script","","set_ripemd160_preimage","set_sha256_preimage","set_user_address","sha256_preimages","sighash_type","sign","try_from","","","","","","","","","","","","","","try_into","","","","","","","","","","","","","","type_id","","","","","","","","","","","","","","update_input_with","update_output_with","update_with","user_address","value","","verify","","vzip","","","","","","","","","","","","","","ALL","ALL_ANYONECANPAY","NONE","NONE_ANYONECANPAY","SIGHASH_ALL","SIGHASH_ANYONECANPAY","SIGHASH_MASK","SIGHASH_NONE","SIGHASH_SINGLE","SINGLE","SINGLE_ANYONECANPAY","SighashType","SignableInput","TransparentAuthorizingContext","borrow","","borrow_mut","","clone","clone_into","clone_to_uninit","encode","eq","fmt","","from","","from_parts","hash_type","index","input_amounts","input_scriptpubkeys","into","","parse","script_code","script_pubkey","to_owned","try_from","","try_into","","type_id","","value","vzip",""],"q":[[0,"zcash_transparent"],[6,"zcash_transparent::address"],[51,"zcash_transparent::address::testing"],[52,"zcash_transparent::builder"],[129,"zcash_transparent::bundle"],[249,"zcash_transparent::bundle::testing"],[255,"zcash_transparent::keys"],[440,"zcash_transparent::pczt"],[649,"zcash_transparent::sighash"],[696,"core::option"],[697,"core::cmp"],[698,"core::fmt"],[699,"core::hash"],[700,"std::io::error"],[701,"std::io"],[702,"core::result"],[703,"zcash_address::convert"],[704,"core::any"],[705,"proptest::strategy::traits"],[706,"secp256k1::key"],[707,"zcash_protocol::value"],[708,"alloc::vec"],[709,"alloc::string"],[710,"core::ops::function"],[711,"core::clone"],[712,"zcash_protocol::txid"],[713,"core::convert"],[714,"subtle"],[715,"bip32::error"],[716,"zip32"],[717,"bip32::child_number"],[718,"zcash_protocol::consensus"],[719,"core::ops::range"],[720,"bip32::extended_key::private_key"],[721,"alloc::collections::btree::map"],[722,"zcash_transparent::pczt::updater"],[723,"zcash_transparent::pczt::tx_extractor"],[724,"zip32::fingerprint"],[725,"zcash_transparent::pczt::spend_finalizer"],[726,"zcash_transparent::pczt::parse"],[727,"zcash_transparent::pczt::verify"],[728,"zcash_transparent::pczt::signer"],[729,"secp256k1"],[730,"secp256k1::context"]],"i":"``````f`0`b01010101011001010110110100`0101110101010``Ch00````C`Cj1012DfD`2341033101010123444102341000323410213104234102341023410323410``````Ej``Db0F`E`2CdElCf43521035210352103521023521024352104352102444352105Fd60332323211122`4632154632154632135463211666546321321````````Gb0```0```Gd````0FnG`IfI`3254GfGhGjGlGn6587:943210:943210:943210:943210999:Hb041445454504;:4;:5432176698;;:5432155:5:47698;:54321767:4:`::0455;:543217698;:::543217698;:543217698;:543217698;:54321````K`Jl000JfJjJn4```````101```04KbIjJ`JbKfKh96:578JdDd65Il543<9=8:;217605001011<9=8:;21760543<9=8:;21760772211543<9=8:;217601176077776767777670743444343443777543<9=8:;21760543<9=8:;21760543<9=8:;2176055167676543<9=8:;21760Kj000`````00```0Eb10111111010000Lb0212112212121121","f":"``````````{{{d{b}}}{{h{f}}}}{d{{d{c}}}{}}0{{{d{j}}}{{d{jc}}}{}}0{{{d{b}}}b}{{{d{f}}}f}{{d{d{jc}}}l{}}0{{dn}l}0{{{d{f}}{d{f}}}A`}{{}b}{{{d{b}}{d{b}}}Ab}{{{d{f}}{d{f}}}Ab}{{{d{b}}{d{jAd}}}Af}{{{d{f}}{d{jAd}}}Af}{cc{}}0{{{d{f}}{d{jc}}}lAh}{{}c{}}0{{{d{f}}{d{f}}}{{h{A`}}}}{c{{Aj{b}}}Al}{{{d{f}}}b}{{{d{b}}}An}{{b{d{{B`{n}}}}}b}`{dc{}}0{c{{Bb{e}}}{}{}}0{{{Bd{n}}}{{Bb{f{Bf{c}}}}}{}}0{{}{{Bb{c}}}{}}0{dBh}0{{}c{}}0{{{d{b}}c}{{Aj{l}}}Bj}{{}{{`{{Bn{}{{Bl{f}}}}}}}}````````{{{d{jC`}}CbCdCf}{{Bb{lCh}}}}{{{d{jCj}}Cl}Cb}{{{d{jC`}}{d{f}}Cn}{{Bb{lCh}}}}{d{{d{c}}}{}}0000{{{d{j}}}{{d{jc}}}{}}0000{C`{{h{{Db{D`}}}}}}{C`{{h{Dd}}}}{{{d{Df}}}Df}{{{d{D`}}}D`}{{d{d{jc}}}l{}}0{{dn}l}0{{{d{Df}}}{{d{Cf}}}}{{}Cj}{{}C`}{{{d{Ch}}{d{Ch}}}Ab}{{{d{Ch}}{d{jAd}}}Af}0{{{d{Df}}{d{jAd}}}Af}{{{d{D`}}{d{jAd}}}Af}{cc{}}0000{{{d{D`}}}{{Dh{Cn}}}}{{{d{D`}}}{{Dh{b}}}}{{{d{C`}}}{{d{{B`{Df}}}}}}{{}c{}}0000:{{{d{Df}}}{{d{Cd}}}}{{{d{C`}}}{{d{{B`{Cf}}}}}}{dc{}}0{dDj}{c{{Bb{e}}}{}{}}0000{{}{{Bb{c}}}{}}0000{dBh}0000{{{d{C`}}}{{Bb{DlDn}}}}{{}c{}}0000`````````{{{Db{D`}}c{d{Cj}}}{{Bb{{Db{E`}}Ch}}}{{Ef{Eb}{{Ed{{Bd{n}}}}}}}}{Db}{d{{d{c}}}{}}00000{{{d{j}}}{{d{jc}}}{}}00000{{{d{E`}}}E`}{{{d{{Db{c}}}}}{{Db{c}}}{EhEj}}{{{d{Cd}}}Cd}{{{d{{El{c}}}}}{{El{c}}}{EhEj}}{{{d{Cf}}}Cf}{{d{d{jc}}}l{}}0000{{dn}l}0000{{{d{Cd}}{d{Cd}}}A`}{{{d{E`}}{d{E`}}}Ab}{{{d{{Db{c}}}}{d{{Db{c}}}}}Ab{EnEj}}{{{d{Cd}}{d{Cd}}}Ab}{{{d{{El{c}}}}{d{{El{c}}}}}Ab{EnEj}}{{{d{Cf}}{d{Cf}}}Ab}{{}Cd}{{{d{F`}}{d{jAd}}}Af}{{{d{E`}}{d{jAd}}}Af}{{{d{{Db{c}}}}{d{jAd}}}Af{FbEj}}{{{d{Cd}}{d{jAd}}}Af}{{{d{{El{c}}}}{d{jAd}}}Af{FbEj}}{{{d{Cf}}{d{jAd}}}Af}{cc{}}00000{{{d{Cd}}}{{d{{Bd{n}}}}}}{{{d{F`}}}{{Dh{Cn}}}}{{{d{F`}}}{{Dh{b}}}}{{}c{}}00000{{{d{{Db{c}}}}}AbEj}{{{d{Fd}}c}eEjEj}{{{Db{c}}g}{{Db{e}}}EjEj{{Fd{ce}}}}{{{d{Fd}}}}{{{d{Cd}}}Ff}{{{Bd{n}}Ff}Cd}{Cd{{El{D`}}}}{{{d{Cd}}{d{Cd}}}{{h{A`}}}}{ElCd}{c{{Aj{Cd}}}Al}{{{d{jc}}}{{Aj{{El{E`}}}}}Al}{{{d{jc}}}{{Aj{Cf}}}Al}{{{d{Cf}}}{{h{f}}}}{Cfb}{El}{ElFf}`{dc{}}0000{c{{Bb{e}}}{}{}}00000{{}{{Bb{c}}}{}}00000{{{d{Cd}}}{{d{Fh}}}}{dBh}00000{CfCn}{{{d{{Db{c}}}}g}{{Bb{Dle}}}Ej{{Fj{Dn}}}{{Fl{{d{Cd}}}{{Ed{{Bb{Dle}}}}}}}}{DbDh}0{{}c{}}00000{{{d{Cd}}c}{{Aj{l}}}Bj}{{{d{{El{E`}}}}c}{{Aj{l}}}Bj}{{{d{Cf}}c}{{Aj{l}}}Bj}{{}Bd}{{}{{`{{Bn{}{{Bl{{h{{Db{E`}}}}}}}}}}}}{{}{{`{{Bn{}{{Bl{Cd}}}}}}}}{{}{{`{{Bn{}{{Bl{b}}}}}}}}{{}{{`{{Bn{}{{Bl{{El{E`}}}}}}}}}}{{}{{`{{Bn{}{{Bl{Cf}}}}}}}}`````````````````{{{d{Fn}}}{{Bd{n}}}}{{{d{G`}}}{{Bd{n}}}}{d{{d{c}}}{}}0000000000{{{d{j}}}{{d{jc}}}{}}0000000000{{{d{Gb}}}Gb}{{{d{Gd}}}Gd}{{{d{Gf}}}Gf}{{{d{Gh}}}Gh}{{{d{Gj}}}Gj}{{{d{Gl}}}Gl}{{{d{Gn}}}Gn}{{d{d{jc}}}l{}}000000{{dn}l}000000{{{d{Gd}}{d{Gd}}}A`}{FfGd}{{{d{Gd}}{d{Gd}}}H`}{Ff{{h{Gb}}}}{{{d{Hb}}}{{Hd{fGd}}}}{{{d{Hb}}Gd}{{Bb{fHf}}}}{{{d{Gh}}GbGd}{{Bb{CbHf}}}}{{{d{Gn}}Gd}{{Bb{fHf}}}}{{{d{Gh}}}{{Bb{GnHf}}}}{{{d{Gh}}}{{Bb{GjHf}}}}{{{d{Gf}}Gd}{{Bb{ClHf}}}}{{{d{Gh}}}{{Bb{GlHf}}}}1{{{d{Gh}}{d{c}}Hh{d{{B`{Hj}}}}}{{Bb{CbHf}}}Hl}{{{d{Gf}}GbGd}{{Bb{ClHf}}}}{{{d{{Bd{n}}}}}{{Bb{HbHf}}}}{{{d{{Bd{n}}}}}{{Bb{GhHf}}}}{{{d{Gb}}{d{Gb}}}Ab}{{{d{Gd}}{d{Gd}}}Ab}{{{d{Gh}}}G`}{{{d{Gb}}{d{jAd}}}Af}{{{d{Gd}}{d{jAd}}}Af}{{{d{Gf}}{d{jAd}}}Af}{{{d{Gh}}{d{jAd}}}Af}{{{d{Gj}}{d{jAd}}}Af}{{{d{Gl}}{d{jAd}}}Af}{{{d{Gn}}{d{jAd}}}Af}{cc{}}0{{{Hn{Gd}}}I`}111{IbGb}222222{{{d{{B`{n}}}}}{{h{Gf}}}}{{{Id{Cl}}}Gf}{Ff{{h{Gd}}}}{{{d{c}}{d{{B`{n}}}}Hh}{{Bb{GfHf}}}Hl}{{{d{Gd}}}Ff}{{{d{Gh}}}Fn}{{}c{}}0000000000{{}c{}}{I`c{}}{{{d{jIf}}}{{h{c}}}{}}{{{d{Gd}}}{{h{Gd}}}}{{{d{Gh}}}{{Hd{FnG`}}}}{{{d{Gd}}{d{Gd}}}{{h{A`}}}}{{{d{Cb}}}f}{{{d{Gd}}Ff}Gd}0{{{d{Hb}}}{{Dh{n}}}}{{{d{Gh}}}{{Dh{n}}}}{{{d{Gf}}}Gh}{{{d{Gf}}}{{Dh{n}}}}{dc{}}000000{c{{Bb{e}}}{}{}}0000{Hj{{Bb{Gdc}}}{}}{Ih{{Bb{Gdc}}}{}}222222{{}{{Bb{c}}}{}}0000000000{dBh}0000000000{{}c{}}0000000000`````````````````````````````{{{d{Ij}}}{{d{{In{{Bd{n}}Il}}}}}}{{{d{J`}}}{{d{{In{{Bd{n}}Il}}}}}}{d{{d{c}}}{}}0000000000000{{{d{j}}}{{d{jc}}}{}}0000000000000{{{d{Jb}}}{{d{Dd}}}}{{{d{Il}}}{{d{{Dh{Hj}}}}}}{{{d{Il}}{d{Il}}}Ab}{Dd{{Bb{{h{{Db{Jd}}}}Jf}}}}{{{d{Il}}{d{Jh}}Hj}{{h{{Hd{HhGbGd}}}}}}{{{d{Dd}}}{{Bb{{h{{Db{F`}}}}Jf}}}}{{{d{jDd}}}{{Bb{lJj}}}}{{{d{Jl}}{d{jAd}}}Af}{{{d{Jn}}{d{jAd}}}Af}{{{d{K`}}{d{jAd}}}Af}{{{d{Kb}}{d{jAd}}}Af}{{{d{Jj}}{d{jAd}}}Af}{{{d{Jf}}{d{jAd}}}Af}{{{d{Jd}}{d{jAd}}}Af}{{{d{Dd}}{d{jAd}}}Af}{{{d{Ij}}{d{jAd}}}Af}{{{d{J`}}{d{jAd}}}Af}{{{d{Il}}{d{jAd}}}Af}{cc{}}0000000000000{{{d{Ij}}}{{d{{In{{Bd{n}}{Dh{n}}}}}}}}0{{{d{Jd}}}{{Dh{Cn}}}}{{{d{Jd}}}{{Dh{b}}}}{{{d{Dd}}}{{d{{Dh{Ij}}}}}}{{{d{jDd}}}{{d{j{B`{Ij}}}}}}{{}c{}}0000000000000{{{d{Dd}}}{{d{{Dh{J`}}}}}}{{{Dh{Ij}}{Dh{J`}}}{{Bb{DdJl}}}}{{{Bd{n}}Ff{h{Ff}}{h{Ff}}{h{Ff}}{h{{Dh{n}}}}Kd{Dh{n}}{h{{Dh{n}}}}{In{{Bd{n}}{Dh{n}}}}n{In{{Bd{n}}Il}}{In{{Bd{n}}{Dh{n}}}}{In{{Bd{n}}{Dh{n}}}}{In{{Bd{n}}{Dh{n}}}}{In{{Bd{n}}{Dh{n}}}}{In{Dj{Dh{n}}}}}{{Bb{IjJl}}}}{{Kd{Dh{n}}{h{{Dh{n}}}}{In{{Bd{n}}Il}}{h{Dj}}{In{Dj{Dh{n}}}}}{{Bb{J`Jl}}}}{{{Bd{n}}{Dh{Ff}}}{{Bb{IlJl}}}}:{{{d{Ij}}}{{d{Ff}}}}{{{d{Ij}}}{{d{Fh}}}}{{{d{Ij}}}{{d{{In{Dj{Dh{n}}}}}}}}{{{d{J`}}}{{d{{In{Dj{Dh{n}}}}}}}}{{{d{Ij}}}{{d{{h{b}}}}}}{{{d{J`}}}{{d{{h{b}}}}}}{{{d{Ij}}}{{d{{h{Ff}}}}}}0{{{d{Ij}}}{{d{{In{{Bd{n}}{Dh{n}}}}}}}}{{{d{Ij}}}{{d{b}}}}{{{d{J`}}}{{d{b}}}}5{{{d{Il}}}{{d{{Bd{n}}}}}}4{{{d{jKf}}{Bd{n}}Il}l}{{{d{jKh}}{Bd{n}}Il}l}{{{d{jKf}}{Dh{n}}}l}0{{{d{jKf}}Dj{Dh{n}}}l}{{{d{jKh}}Dj{Dh{n}}}l}{{{d{jKf}}b}{{Bb{lK`}}}}{{{d{jKh}}b}{{Bb{lK`}}}}44{{{d{jKh}}Dj}l};{{{d{Ij}}}{{d{Kj}}}}{{{d{jIj}}Anc{d{Cl}}{d{{Kl{e}}}}}{{Bb{lKb}}}{{Kn{Eb}{{Ed{{Bd{n}}}}}}}L`}{c{{Bb{e}}}{}{}}0000000000000{{}{{Bb{c}}}{}}0000000000000{dBh}0000000000000{{{d{jJb}}Anc}{{Bb{lK`}}}{{Kn{Kf}{{Ed{{Bb{lK`}}}}}}}}{{{d{jJb}}Anc}{{Bb{lK`}}}{{Kn{Kh}{{Ed{{Bb{lK`}}}}}}}}{{{d{jDd}}c}{{Bb{lK`}}}{{Kn{Jb}{{Ed{{Bb{lK`}}}}}}}}{{{d{J`}}}{{d{{h{Dj}}}}}}{{{d{Ij}}}{{d{Cn}}}}{{{d{J`}}}{{d{Cn}}}}{{{d{Ij}}}{{Bb{lJn}}}}{{{d{J`}}}{{Bb{lJn}}}}{{}c{}}0000000000000````{{}n}0000`````{d{{d{c}}}{}}0{{{d{j}}}{{d{jc}}}{}}0{{{d{Kj}}}Kj}{{d{d{jc}}}l{}}{{dn}l}{{{d{Kj}}}n}{{{d{Kj}}{d{Kj}}}Ab}{{{d{Kj}}{d{jAd}}}Af}{{{d{Eb}}{d{jAd}}}Af}{cc{}}0{{KjAn{d{b}}{d{b}}Cn}Eb}{{{d{Eb}}}{{d{Kj}}}}{{{d{Eb}}}{{d{An}}}}{{{d{Lb}}}{{Dh{Cn}}}}{{{d{Lb}}}{{Dh{b}}}}{{}c{}}0{n{{h{Kj}}}}{{{d{Eb}}}{{d{{d{b}}}}}}0{dc{}}{c{{Bb{e}}}{}{}}0{{}{{Bb{c}}}{}}0{dBh}0{{{d{Eb}}}{{d{Cn}}}}{{}c{}}0","D":"AN`","p":[[5,"Script",6],[1,"reference",null,null,1],[6,"TransparentAddress",6],[6,"Option",696,null,1],[0,"mut"],[1,"unit"],[1,"u8"],[6,"Ordering",697],[1,"bool"],[5,"Formatter",698],[8,"Result",698],[10,"Hasher",699],[8,"Result",700,null,1],[10,"Read",701],[1,"usize"],[1,"slice"],[6,"Result",702,null,1],[1,"array"],[6,"ConversionError",703],[5,"TypeId",704],[10,"Write",701],[17,"Value"],[10,"Strategy",705],[5,"TransparentBuilder",52],[5,"PublicKey",706],[5,"OutPoint",129],[5,"TxOut",129],[6,"Error",52],[5,"TransparentSigningSet",52],[5,"SecretKey",706],[5,"Zatoshis",707],[5,"Unauthorized",52],[5,"Bundle",129],[5,"Bundle",440],[5,"TransparentInputInfo",52],[5,"Vec",708],[5,"String",709],[5,"ZatBalance",707],[6,"BalanceError",707],[5,"Authorized",129],[5,"SignableInput",649],[17,"Output"],[10,"Fn",710],[10,"Clone",711],[10,"Authorization",129],[5,"TxIn",129],[10,"PartialEq",697],[5,"EffectsOnly",129],[10,"Debug",698],[10,"MapAuth",129],[1,"u32"],[5,"TxId",712],[10,"From",713,null,1],[10,"FnMut",710],[5,"InternalOvk",255],[5,"ExternalOvk",255],[5,"TransparentKeyScope",255],[5,"NonHardenedChildIndex",255],[5,"AccountPrivKey",255],[5,"AccountPubKey",255],[5,"ExternalIvk",255],[5,"InternalIvk",255],[5,"EphemeralIvk",255],[5,"Choice",714],[10,"IncomingViewingKey",255],[1,"tuple",null,null,1],[6,"Error",715],[5,"AccountId",716],[5,"ChildNumber",717],[10,"Parameters",718],[5,"Range",719],[5,"NonHardenedChildRange",255],[6,"Scope",716],[5,"ExtendedPrivateKey",720],[5,"NonHardenedChildIter",255],[5,"DiversifierIndex",716],[5,"Input",440],[5,"Bip32Derivation",440],[5,"BTreeMap",721],[5,"Output",440],[5,"Updater",440,722],[5,"Unbound",440,723],[6,"TxExtractorError",440,723],[5,"SeedFingerprint",724],[6,"SpendFinalizerError",440,725],[6,"ParseError",440,726],[6,"VerifyError",440,727],[6,"UpdaterError",440,722],[6,"SignerError",440,728],[1,"u64"],[5,"InputUpdater",440,722],[5,"OutputUpdater",440,722],[5,"SighashType",649],[5,"Secp256k1",729],[10,"FnOnce",710],[10,"Signing",730],[10,"TransparentAuthorizingContext",649]],"r":[[443,722],[444,722],[445,726],[446,726],[447,726],[448,726],[449,723],[450,725],[451,727],[452,722],[454,722],[455,726],[456,728],[457,725],[458,723],[459,723],[460,725],[461,727],[462,725],[463,722],[464,722],[465,727],[466,727],[467,722],[468,728],[471,722],[472,722],[473,722],[474,726],[475,727],[476,722],[477,728],[478,725],[479,723],[480,723],[485,722],[486,722],[487,722],[488,726],[489,727],[490,722],[491,728],[492,725],[493,723],[494,723],[499,722],[506,726],[507,727],[508,722],[509,728],[510,725],[511,723],[512,723],[517,722],[518,722],[519,722],[520,726],[521,727],[522,722],[523,728],[524,725],[525,723],[526,723],[533,723],[534,723],[537,722],[538,722],[539,722],[540,726],[541,727],[542,722],[543,728],[544,725],[545,723],[546,723],[571,722],[572,722],[573,722],[574,722],[575,722],[576,722],[577,722],[578,722],[579,722],[580,722],[581,722],[585,722],[586,722],[587,722],[588,726],[589,727],[590,722],[591,728],[592,725],[593,723],[594,723],[599,722],[600,722],[601,722],[602,726],[603,727],[604,722],[605,728],[606,725],[607,723],[608,723],[613,722],[614,722],[615,722],[616,726],[617,727],[618,722],[619,728],[620,725],[621,723],[622,723],[627,722],[628,722],[635,722],[636,722],[637,722],[638,726],[639,727],[640,722],[641,728],[642,725],[643,723],[644,723]],"b":[[85,"impl-Display-for-Error"],[86,"impl-Debug-for-Error"],[399,"impl-TryFrom%3CChildNumber%3E-for-NonHardenedChildIndex"],[400,"impl-TryFrom%3CDiversifierIndex%3E-for-NonHardenedChildIndex"]],"c":"OjAAAAEAAAAAAAAAEAAAAH0B","e":"OzAAAAEAAMgBLAAGAAEACQAAAAwADwAeAAAAIQABACUAEgA5AAEAPAAAAD8ACwBMAAcAVQAEAF8AAQBoAAAAagAaAIYAJwCvAAUAvAABAMUAAgDKAAUA0QAUAOcABgDvABAAEQEtAEABAABNAQMAUgEGAFsBAABfAQAAZwEAAHcBAgB8AQAAgAECAIQBNAC+AQEA2AEbAPYBAAD7AQoAFgIBAEoCKQB8AhgAmAIGAKACAgCmAgEArQILAA==","P":[[11,"T"],[15,""],[17,"T"],[19,""],[27,"T"],[29,"__H"],[30,"U"],[32,""],[33,"R"],[34,""],[38,"T"],[40,"U,T"],[42,"TryFromRawAddress::Error"],[44,"U"],[46,""],[48,"V"],[50,"W"],[51,""],[63,"T"],[73,""],[77,"T"],[79,""],[89,"T"],[94,""],[97,"U"],[102,""],[105,"T"],[107,""],[108,"U,T"],[113,"U"],[118,""],[124,"V"],[138,"F"],[139,""],[140,"T"],[152,""],[153,"A"],[154,""],[155,"A"],[156,""],[157,"T"],[162,""],[169,"A"],[170,""],[171,"A"],[172,""],[176,"A"],[177,""],[178,"A"],[179,""],[180,"T"],[186,""],[189,"U"],[195,"A"],[196,"A,B"],[197,"A,B,F"],[198,""],[204,"R"],[207,""],[212,"T"],[217,"U,T"],[223,"U"],[229,""],[237,"A,E,F"],[238,""],[240,"V"],[246,"W"],[249,""],[274,"T"],[296,""],[303,"T"],[310,""],[330,"P"],[331,""],[344,"T"],[346,""],[347,"T"],[350,""],[351,"T"],[357,""],[360,"P"],[361,""],[363,"U"],[374,"I"],[375,"IntoIterator::IntoIter"],[376,"Iterator::Item"],[377,""],[387,"T"],[394,"U,T"],[399,"TryFrom::Error"],[401,"U,T"],[407,"U"],[418,""],[429,"V"],[469,""],[471,"T"],[499,""],[517,"T"],[531,""],[537,"U"],[551,""],[584,"F,C"],[585,"U,T"],[599,"U"],[613,""],[627,"F"],[630,""],[635,"V"],[653,""],[663,"T"],[667,""],[668,"T"],[669,""],[674,"T"],[676,""],[681,"U"],[683,""],[686,"T"],[687,"U,T"],[689,"U"],[691,""],[694,"V"]]}],["zip321",{"t":"PPPPFPPFPGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHHNNNNNNNCNNNNNNNNNNNNNNNNNNNSHHHHHH","n":["DuplicateParameter","InvalidBase64","MemoBytesError","ParseError","Payment","RecipientMissing","TooManyPayments","TransactionRequest","TransparentMemo","Zip321Error","amount","borrow","","","borrow_mut","","","clone","","","clone_into","","","clone_to_uninit","","","empty","eq","","","fmt","","","","from","","","","from_indexed","from_uri","into","","","label","memo","memo_from_base64","memo_to_base64","message","new","","other_params","payments","recipient_address","source","testing","to_owned","","","to_string","to_uri","total","try_from","","","try_into","","","type_id","","","vzip","","","without_memo","VALID_PARAMNAME","arb_addr_str","arb_valid_memo","arb_zip321_payment","arb_zip321_request","arb_zip321_request_sequential","arb_zip321_uri"],"q":[[0,"zip321"],[74,"zip321::testing"],[81,"zcash_protocol::value"],[82,"core::fmt"],[83,"zcash_address::convert"],[84,"alloc::collections::btree::map"],[85,"core::result"],[86,"alloc::string"],[87,"core::option"],[88,"zcash_protocol::memo"],[89,"zcash_address"],[90,"alloc::vec"],[91,"core::error"],[92,"core::any"],[93,"zcash_protocol::consensus"],[94,"proptest::strategy::traits"]],"i":"j000`00`0`b10l2102102102100210221022100021011``1101012`2102002102102102101```````","f":"``````````{{{d{b}}}f}{d{{d{c}}}{}}00{{{d{h}}}{{d{hc}}}{}}00{{{d{j}}}j}{{{d{b}}}b}{{{d{l}}}l}{{d{d{hc}}}n{}}00{{dA`}n}00{{}l}{{{d{j}}{d{j}}}Ab}{{{d{b}}{d{b}}}Ab}{{{d{l}}{d{l}}}Ab}{{{d{j}}{d{hAd}}}Af}0{{{d{b}}{d{hAd}}}Af}{{{d{l}}{d{hAd}}}Af}{cc{}}{{{Ah{c}}}jAj}11{{{An{Alb}}}{{B`{lj}}}}{{{d{Bb}}}{{B`{lj}}}}{{}c{}}00{{{d{b}}}{{Bf{{d{Bd}}}}}}{{{d{b}}}{{Bf{{d{Bh}}}}}}{{{d{Bb}}}{{B`{Bhj}}}}{{{d{Bh}}}Bd}3{{Bjf{Bf{Bh}}{Bf{Bd}}{Bf{Bd}}{Bn{{Bl{BdBd}}}}}{{Bf{b}}}}{{{Bn{b}}}{{B`{lj}}}}{{{d{b}}}{{d{{C`{{Bl{BdBd}}}}}}}}{{{d{l}}}{{d{{An{Alb}}}}}}{{{d{b}}}{{d{Bj}}}}{{{d{j}}}{{Bf{{d{Cb}}}}}}`{dc{}}00{dBd}{{{d{l}}}Bd}{{{d{l}}}{{B`{fCd}}}}{c{{B`{e}}}{}{}}00{{}{{B`{c}}}{}}00{dCf}00{{}c{}}00{{Bjf}b}{{}d}{Ch{{`{{Cl{}{{Cj{Bd}}}}}}}}{{}{{`{{Cl{}{{Cj{Bh}}}}}}}}{Ch{{`{{Cl{}{{Cj{b}}}}}}}}{Ch{{`{{Cl{}{{Cj{l}}}}}}}}03","D":"Dd","p":[[5,"Payment",0],[1,"reference",null,null,1],[5,"Zatoshis",81],[0,"mut"],[6,"Zip321Error",0],[5,"TransactionRequest",0],[1,"unit"],[1,"u8"],[1,"bool"],[5,"Formatter",82],[8,"Result",82],[6,"ConversionError",83],[10,"Display",82],[1,"usize"],[5,"BTreeMap",84],[6,"Result",85,null,1],[1,"str"],[5,"String",86],[6,"Option",87,null,1],[5,"MemoBytes",88],[5,"ZcashAddress",89],[1,"tuple",null,null,1],[5,"Vec",90],[1,"slice"],[10,"Error",91],[6,"BalanceError",81],[5,"TypeId",92],[6,"NetworkType",93],[17,"Value"],[10,"Strategy",94]],"r":[],"b":[[30,"impl-Debug-for-Zip321Error"],[31,"impl-Display-for-Zip321Error"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAC8ABgAMAA4AHAAGACQAAAA2AAUAPgALAEsABgA=","P":[[11,"T"],[17,""],[20,"T"],[23,""],[34,"T"],[35,"E"],[36,"T"],[38,""],[40,"U"],[43,""],[55,"T"],[58,""],[61,"U,T"],[64,"U"],[67,""],[70,"V"],[73,""]]}]]')); if (typeof exports !== 'undefined') exports.searchIndex = searchIndex; else if (window.initSearch) window.initSearch(searchIndex); -//{"start":39,"fragment_lengths":[943,1006,17522,159,11060,147453,33798,2472,144,5385,15402,81320,6026,14696,19329,2997]} \ No newline at end of file +//{"start":39,"fragment_lengths":[943,1006,17522,159,11060,147453,33798,2472,144,5385,15402,81430,6026,14838,19329,2997]} \ No newline at end of file diff --git a/rustdoc/latest/search.desc/zcash_primitives/zcash_primitives-desc-0-.js b/rustdoc/latest/search.desc/zcash_primitives/zcash_primitives-desc-0-.js index 542ba63fa..cd896319f 100644 --- a/rustdoc/latest/search.desc/zcash_primitives/zcash_primitives-desc-0-.js +++ b/rustdoc/latest/search.desc/zcash_primitives/zcash_primitives-desc-0-.js @@ -1 +1 @@ -searchState.loadedDescShard("zcash_primitives", 0, "General Zcash primitives.\nStructs and methods for handling Zcash block headers.\nParsers and serializers for Zcash Merkle trees.\nStructs and methods for handling Zcash transactions.\nThe identifier for a Zcash block.\nA Zcash block header.\nThe information contained in a Zcash block header.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nConstructs a BlockHash from the given slice.\nReturns the hash of this header.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nConstructs a BlockHash from the given slice.\nA wrapper type representing blockchain heights.\nThe Blossom network upgrade.\nThe consensus rules deployed by NetworkUpgrade::Blossom.\nA globally-unique identifier for a set of consensus rules …\nThe Canopy network upgrade.\nThe consensus rules deployed by NetworkUpgrade::Canopy.\nThe height of the genesis block on a network.\nThe Heartwood network upgrade.\nThe consensus rules deployed by NetworkUpgrade::Heartwood.\nThe production network.\nZcash Mainnet.\nMarker struct for the production network.\nZcash Mainnet.\nThe enumeration of known Zcash networks.\nConstants associated with a given Zcash network.\nThe enumeration of known Zcash network types.\nAn event that occurs at a specified height on the Zcash …\nThe Nu5 network upgrade.\nThe consensus rules deployed by NetworkUpgrade::Nu5.\nThe Nu6 network upgrade.\nThe consensus rules deployed by NetworkUpgrade::Nu6.\nThe Overwinter network upgrade.\nThe consensus rules deployed by NetworkUpgrade::Overwinter.\nZcash consensus parameters.\nPrivate integration / regression testing, used in zcashd.\nThe Sapling network upgrade.\nThe consensus rules deployed by NetworkUpgrade::Sapling.\nThe consensus rules at the launch of Zcash.\nThe test network.\nZcash Testnet.\nMarker struct for the test network.\nZcash Testnet.\nThe “grace period” defined in ZIP 212.\nReturns the activation height for a particular network …\nReturns the human-readable prefix for Base58Check-encoded …\nReturns the human-readable prefix for Base58Check-encoded …\nReturns the human-readable prefix for Base58Check-encoded …\nThe coin type for ZEC, as defined by SLIP 44.\nReturns the branch ID corresponding to the consensus rule …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the range of heights for the consensus epoch …\nReturns the range of heights for the consensus epoch …\nReturns the human-readable prefix for Bech32-encoded …\nReturns the human-readable prefix for Bech32-encoded …\nReturns the Bech32-encoded human-readable prefix for …\nReturns the Bech32-encoded human-readable prefix for TEX …\nThe HRP for a Bech32m-encoded mainnet Unified Address.\nThe HRP for a Bech32m-encoded mainnet Unified FVK.\nThe HRP for a Bech32m-encoded mainnet Unified IVK.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nDetermines whether the specified network upgrade is active …\nReturns the type of network configured by this set of …\nSubtracts the provided value from this height, returning H0…\nConstants for the Zcash main network.\nRegtest constants\nConstants for the Zcash test network.\nThe prefix for a Base58Check-encoded mainnet PublicKeyHash.\nThe prefix for a Base58Check-encoded mainnet ScriptHash.\nThe prefix for a Base58Check-encoded mainnet Sprout …\nThe mainnet coin type for ZEC, as defined by SLIP 44.\nThe HRP for a Bech32-encoded mainnet ExtendedFullViewingKey…\nThe HRP for a Bech32-encoded mainnet Sapling …\nThe HRP for a Bech32-encoded mainnet Sapling PaymentAddress…\nThe HRP for a Bech32m-encoded mainnet ZIP 320 TEX address.\nThe HRP for a Bech32m-encoded mainnet Unified Address.\nThe HRP for a Bech32m-encoded mainnet Unified FVK.\nThe HRP for a Bech32m-encoded mainnet Unified IVK.\nThe prefix for a Base58Check-encoded regtest transparent …\nThe prefix for a Base58Check-encoded regtest transparent …\nThe prefix for a Base58Check-encoded regtest Sprout …\nThe regtest cointype reuses the testnet cointype\nThe HRP for a Bech32-encoded regtest Sapling …\nThe HRP for a Bech32-encoded regtest Sapling …\nThe HRP for a Bech32-encoded regtest Sapling PaymentAddress…\nThe HRP for a Bech32m-encoded regtest ZIP 320 TEX address.\nThe HRP for a Bech32m-encoded regtest Unified Address.\nThe HRP for a Bech32m-encoded regtest Unified FVK.\nThe HRP for a Bech32m-encoded regtest Unified IVK.\nThe prefix for a Base58Check-encoded testnet transparent …\nThe prefix for a Base58Check-encoded testnet transparent …\nThe prefix for a Base58Check-encoded testnet Sprout …\nThe testnet coin type for ZEC, as defined by SLIP 44.\nThe HRP for a Bech32-encoded testnet Sapling …\nThe HRP for a Bech32-encoded testnet Sapling …\nThe HRP for a Bech32-encoded testnet Sapling PaymentAddress…\nThe HRP for a Bech32m-encoded testnet ZIP 320 TEX address.\nThe HRP for a Bech32m-encoded testnet Unified Address.\nThe HRP for a Bech32m-encoded testnet Unified FVK.\nThe HRP for a Bech32m-encoded testnet Unified IVK.\nA serialized script, used inside transparent inputs and …\nA transparent address corresponding to either a public key …\nReturns the address that this Script contains, if any.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nGenerate the scriptPubKey corresponding to this address.\nReturns the length of this script as encoded (including …\nA BIP44 private key at the account path level …\nA BIP44 public key at the account path level …\nThe scope used to derive keys for ephemeral transparent …\nThe scope used to derive keys for external transparent …\nAn incoming viewing key at the “ephemeral” path …\nAn incoming viewing key at the BIP44 “external” path …\nExternal outgoing viewing key used by zcashd for …\nThe scope used to derive keys for internal wallet …\nTrait representing a transparent “incoming viewing key”…\nAn incoming viewing key at the BIP44 “internal” path …\nInternal outgoing viewing key used for autoshielding.\nThe maximum valid non-hardened child index.\nA child index for a derived transparent address.\nAn end-exclusive iterator over a range of non-hardened …\nAn end-exclusive range of non-hardened child indexes.\nThe scope of a transparent key.\nThe minimum valid non-hardened child index.\nConstructs a NonHardenedChildIndex from a ZIP 32 child …\nReturns an arbitrary custom TransparentKeyScope.\nSearches the space of child indexes for an index that will …\nDerives a transparent address at the provided child index.\nDerives the BIP44 public key at the “address level” …\nDerives a transparent address at the provided child index.\nDerives the public key at the “ephemeral” path …\nDerives the BIP44 public key at the external “change …\nDerives the BIP44 private spending key for the external …\nDerives the BIP44 public key at the internal “change …\nDerives the BIP44 private spending key for the internal …\nDerives the public key corresponding to the given full BIP …\nDerives the BIP44 private spending key for the child path …\nDerives the external ovk corresponding to this transparent …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nDecodes the AccountPrivKey from the encoding specified for …\nParses the given ZIP 32 child index.\nPerforms derivation of the extended private key for the …\nReturns the index as a 32-bit integer.\nDerives the internal ovk corresponding to this transparent …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns the successor to this index.\nDerives the internal ovk and external ovk corresponding to …\nDerives the P2PKH transparent address corresponding to the …\nAdds the given delta to this index, returning a maximum …\nSubtracts the given delta from this index.\nReturns the AccountPrivKey serialized using the encoding …\nA memo field containing arbitrary bytes.\nAn empty memo field.\nErrors that may result from attempting to construct an …\nSome unknown memo format from ✨the future✨ that we can…\nAn unencrypted memo received alongside a shielded note in …\nThe unencrypted memo bytes received alongside a shielded …\nA memo field containing a UTF-8 string.\nType-safe wrapper around String to enforce memo length …\nReturns the raw byte array containing the memo bytes, …\nReturns a slice of the raw bytes, excluding null padding.\nCreates a MemoBytes indicating that no memo is present.\nSerializes the Memo per ZIP 302.\nReturns the argument unchanged.\nReturns the argument unchanged.\nSerializes the Memo per ZIP 302.\nSerializes the Memo per ZIP 302.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCreates a MemoBytes from a slice, exactly as provided.\nParses a Memo from its ZIP 302 serialization.\nReturns a Memo containing the given string, or an error if …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nConsumes this MemoBytes value and returns the underlying …\nParses a Memo from its ZIP 302 serialization.\nParses a Memo from its ZIP 302 serialization.\nA hashable node within a Merkle tree.\nReads a Merkle path from its serialized form.\nParses a node from the given byte source.\nReads a legacy CommitmentTree from its serialized form.\nReads an IncrementalWitness from its serialized form.\nReads a usize value encoded as a u64 in little-endian …\nSerializes this node.\nSerializes a legacy CommitmentTree as an array of bytes.\nSerializes an IncrementalWitness as an array of bytes.\nWrites a usize value encoded as a u64 in little-endian …\nAuthorization state for a bundle of transaction data.\nAuthorization marker type for fully-authorized …\nA Zcash transaction.\nThe information contained in a Zcash transaction.\nThe identifier for a Zcash transaction.\nThe set of defined transaction format versions.\nAuthorization marker type for transactions without …\nStructs for building transactions.\nStructs representing the components within Zcash …\nReturns the Zcash epoch that this transaction can be mined …\nReturns the total fees paid by the transaction, given a …\nAbstractions and types related to fee calculations.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nConstructs a TransactionData from its constituent parts.\nReturns true if this transaction version supports the …\nReturns true if this transaction version supports the …\nReturns true if this transaction version supports the …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nMaps the bundles from one type to another.\nSuggests the transaction version that should be used in …\nMaps the bundles from one type to another with fallible …\nReturns the transaction version.\nAn overflow or underflow occurred when computing value …\nRules for how the builder should be configured for each …\nThe result of a transaction build operation, which …\nGenerates a Transaction from its inputs and outputs.\nThe transaction has inputs in excess of outputs and fees; …\nSince Blossom activation, the default transaction expiry …\nErrors that can occur during transaction construction.\nAn error occurred in computing the fees for a transaction.\nErrors that can occur during fee calculation.\nInsufficient funds were provided to the transaction …\nAn error occurred in constructing the Orchard parts of a …\nThe builder was constructed with a target height before …\nAn error occurred in adding an Orchard Output to a …\nAn error occurred in adding an Orchard Spend to a …\nThe components of a PCZT.\nThe result of Builder::build_for_pczt.\nReports on the progress made by the builder towards …\nAn error occurred in constructing the Sapling parts of a …\nThe builder was constructed without support for the …\nAn error occurred in constructing the transparent parts of …\nAdds an Orchard recipient to the transaction.\nAdds an Orchard note to be spent in this bundle.\nAdds a Sapling address to send funds to.\nAdds a Sapling note to be spent in this transaction.\nAdds a transparent coin to be spent in this transaction.\nAdds a transparent address to send funds to.\nBuilds a transaction from the configured spends and …\nBuilds a PCZT from the configured spends and outputs.\nReturns the number of steps completed so far while …\nReturns the total expected number of steps before this …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReports the calculated fee given the specified fee rule.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nBuild the transaction using mocked randomness and proving …\nCreates a new Builder targeted for inclusion in the block …\nReturns the Orchard bundle type and anchor for this …\nReturns the mapping from Orchard inputs and outputs to the …\nReturns the network parameters that the builder has been …\nReturns the Sapling bundle type and anchor for this …\nReturns the set of Sapling inputs currently committed to …\nReturns the mapping from Sapling inputs and outputs to …\nReturns the set of Sapling outputs currently set to be …\nReturns the target height of the transaction under …\nReturns the transaction that was constructed by the …\nReturns the set of transparent inputs currently committed …\nReturns the set of transparent outputs currently set to be …\nSets the notifier channel, where progress of building the …\nFunctions for parsing & serialization of Orchard …\nStructs representing the components within Zcash …\nReads an orchard::Bundle from a v5 transaction format.\nWrites an orchard::Bundle in the v5 transaction format.\nA map from one bundle authorization to another.\nConsensus rules (§7.3) & (§7.4):\nConsensus rules (§4.4) & (§4.5):\nReads the Sapling components of a v4 transaction.\nWrites the Sapling components of a v4 transaction.\nReturns the enforcement policy for ZIP 212 at the given …\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nThe net value for the JoinSplit. When this is positive, …\nThe value balance for the bundle. When this is positive, …\nMarker type for a bundle that contains no authorizing …\nConstructs a fake OutPoint for use in tests.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the byte representation of the txid of the …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns true if this bundle matches the definition of a …\nReturns the output index of this OutPoint.\nConstructs an OutPoint for the output at index n in the …\nReturns the address to which the TxOut was sent, if this …\nReturns the txid of the transaction containing this …\nThe amount of value added to or removed from the …\nA bundle could not be built because a required signing …\nA set of transparent signing keys.\nAdds a coin (the output of a previous transaction) to be …\nAdds a signing key to the set.\nBuilds a bundle containing the given inputs and outputs, …\nConstructs a new TransparentBuilder\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the list of transparent inputs that will be …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nConstructs an empty set of signing keys.\nReturns the transparent outputs that will be produced by …\nThe BIP 32 derivation path at which a key can be found.\nPCZT fields that are specific to producing the transaction…\nInformation about a transparent spend within a transaction.\nAn updater for a transparent PCZT input.\nAn out-of-bounds index was provided when looking up an …\nAn invalid sighash_type was provided.\nAn invalid value was provided.\nThe Transaction Extractor role requires all script_sig …\npartial_signatures contained no signatures.\nA redeem_script can only be set on a P2SH coin.\nA redeem_script can only be set on a P2SH coin.\nInformation about a transparent output within a …\nAn updater for a transparent PCZT output.\nErrors that can occur while parsing a PCZT bundle.\nErrors that can occur while signing a transparent input in …\nErrors that can occur while finalizing the transparent …\nErrors that can occur while extracting a regular …\nAuthorizing data for a transparent bundle in a transaction …\npartial_signatures contained unexpected signatures.\nThe script_pubkey kind is unsupported.\nThe script_pubkey kind is unsupported.\nAn updater for a transparent PCZT bundle.\nErrors that can occur while signing a transparent input in …\nErrors that can occur while verifying a PCZT bundle.\nThe provided redeem_script does not match the input’s …\nThe provided redeem_script does not match the input’s …\nThe provided sk does not match any pubkey involved with …\nA map from a pubkey to the BIP 32 derivation path at which …\nA map from a pubkey to the BIP 32 derivation path at which …\nProvides read access to the bundle being updated.\nThe sequence of indices corresponding to the HD path.\nExtracts a fully authorized regular Bundle from this PCZT …\nExtracts the BIP 44 account index, scope, and address …\nExtracts the effects of this PCZT bundle as a regular …\nFinalizes the spends for this bundle.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nMappings of the form key = RIPEMD160(SHA256(value)).\nMappings of the form key = SHA256(SHA256(value)).\nThe transparent inputs in this bundle.\nReturns a mutable reference to the inputs in this bundle.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nThe transparent outputs in this bundle.\nParses a PCZT bundle from its component parts.\nParses a PCZT input from its component parts.\nParses a PCZT output from its component parts.\nParses a BIP 32 derivation path from its component parts.\nA map from a pubkey to a signature created by it.\nThe index of the entry in the vout field of the previous …\nThe ID of the previous transaction containing the …\nProprietary fields related to the transparent coin being …\nProprietary fields related to the transparent coin being …\nThe script required to spend this output, if it is P2SH.\nThe script required to spend this output, if it is P2SH.\nThe minimum block height that this input requires to be …\nThe minimum Unix timstamp that this input requires to be …\nMappings of the form key = RIPEMD160(value).\nThe script_pubkey of the input being spent.\nThe script constraining how spending of this output must …\nA satisfying witness for the script_pubkey of the input …\nThe ZIP 32 seed fingerprint.\nThe sequence number of this input.\nSets the BIP 32 derivation path for the given pubkey.\nSets the BIP 32 derivation path for the given pubkey.\nStores the given value along with …\nStores the given value along with …\nStores the given proprietary value at the given key.\nStores the given proprietary value at the given key.\nSets the redeem script for this input.\nSets the redeem script for this output.\nStores the given value along with key = RIPEMD160(value).\nStores the given value along with key = SHA256(value).\nSets the user-facing address that the new note is being …\nMappings of the form key = SHA256(value).\nThe sighash type to be used for this input.\nSigns the transparent spend with the given spend …\nUpdates the input at the given index with information …\nUpdates the input at the given index with information …\nUpdates the bundle with information provided in the given …\nThe user-facing address to which this output is being …\nThe value of the input being spent.\nThe value of the output.\nVerifies the consistency of this transparent input.\nVerifies the consistency of this transparent output.\nA trait that represents the ability to compute the fees …\nComputes the total fee required for a transaction given …\nTypes related to computation of fees and change related to …\nTypes related to implementing a FeeRule provides ZIP 317 …\nA fee rule that always returns a fixed fee, irrespective …\nReturns the fixed fee amount which this rule was …\nReturns the argument unchanged.\nCalls U::from(self).\nCreates a new nonstandard fixed fee rule with the …\nThe size of a transparent input, or the outpoint …\nThis trait provides a minimized view of a transparent …\nThe txin size is known.\nThis trait provides a minimized view of a transparent …\nAn InputSize corresponding to the upper bound on the size …\nThe size of the script required to spend this input (and …\nThe previous output being spent.\nReturns the argument unchanged.\nCalls U::from(self).\nThe outpoint to which the input refers.\nReturns the script corresponding to the newly created …\nThe size of the transparent script required to spend this …\nReturns the serialized size of the txout.\nReturns the value of the output being created.\nAn overflow or underflow of amount computation occurred.\nErrors that can occur in ZIP 317 fee computation\nA FeeRule implementation that implements the ZIP 317 fee …\nThe minimum number of logical actions that must be paid …\nThe standard ZIP 317 marginal fee.\nThe minimum conventional fee computed from the standard …\nTransparent inputs provided to the fee calculation …\nThe standard size of a P2PKH input, in bytes, according to …\nThe standard size of a P2PKH output, in bytes, according …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the ZIP 317 number of grace actions\nCalls U::from(self).\nCalls U::from(self).\nReturns the ZIP 317 marginal fee.\nConstruct a new FeeRule instance with the specified …\nReturns the ZIP 317 standard P2PKH input size\nReturns the ZIP 317 standard P2PKH output size\nConstruct a new FeeRule using the standard ZIP 317 …\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nComputes the signature hash for an input to a transaction, …\nImplements the Signature Digest section of ZIP 244\nDigester which constructs a digest of only the witness …\nA TransactionDigest implementation that commits to all of …\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nAbstraction over a reader which SHA-256d-hashes the data …\nAbstraction over a writer which SHA-256d-hashes the data …\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nDestroy this reader and return the hash of what was read.\nDestroy this writer and return the hash of what was …\nConstruct a new HashReader given an existing reader by …\nA type-safe wrapper for account identifiers.\nA value that is needed, in addition to a spending key, in …\nA child index for a derived key.\nThe index for a particular diversifier.\nThe error type returned when a DiversifierIndex increment …\nA scope used for wallet-external operations, namely …\nA scope used for wallet-internal operations, such as …\nA ChildIndex sometimes employed for private-use subtrees.\nThe scope of a viewing key or address.\nThe error type returned when a checked integral type …\nThe ID for account zero (the first account).\nAd-hoc (“arbitrary”) key derivation.\nReturns the byte representation of the chain code, as …\nReturns the raw bytes of the diversifier index.\nSeed Fingerprints according to ZIP 32\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nParses the given ZIP 32 child index.\nConstructs a hardened ChildIndex from the given value.\nGeneric framework for hardened-only key derivation.\nIncrements this index, failing on overflow.\nReturns the index as a 32-bit integer, including the …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nConstructs a ChainCode from the given array.\nConstructs the zero index.\nReturns the next account ID in sequence, or None on …\nRegistered key derivation.\nAn ad-hoc extended secret key.\nReturns the chain code for this key.\nReturns the key material for this key.\nReturns the argument unchanged.\nDerives an ad-hoc key at the given path from the given …\nCalls U::from(self).\nConcatenates the key data and chain code to obtain a …\nThe fingerprint for a wallet’s seed bytes, as defined in …\nReturns the argument unchanged.\nReconstructs the fingerprint from a buffer containing a …\nDerives the fingerprint of the given seed bytes.\nCalls U::from(self).\nReturns the fingerprint as a byte array.\nThe PrfExpand domain used during child key derivation.\nThe context in which hardened-only key derivation is …\nAn arbitrary or registered extended secret key.\nA 16-byte domain separator used during master key …\nDerives a child key from a parent key at a given index and …\nDerives a child key from a parent key at a given index and …\nReturns the argument unchanged.\nCalls U::from(self).\nGenerates the master key of a hardened-only extended …\nExposes the parts of this key.\nThe provided context string is invalid; context strings …\nAn error that occurred in cryptovalue derivation.\nA ZIP 32 registered key derivation path element, …\nA registered extended secret key.\nThe provided seed data was invalid. A seed must be between …\nThe provided subpath was empty. Empty subpaths are not …\nReturns the chain code for this key.\nReturns the index at which the child key will be derived.\nDerives a 64-byte cryptovalue (for use as key material for …\nReturns the key material for this key.\nDerives a child key from a parent key at a given index and …\nDerives a 64-byte child cryptovalue from a parent key at a …\nDerives a child key from a parent key at a given index and …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nConstructs a key for a registered application protocol …\nDerives a key for a registered application protocol at the …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nConstructs a new PathElement from its constituent parts.\nReturns the tag that will be used in derivation of the …") \ No newline at end of file +searchState.loadedDescShard("zcash_primitives", 0, "General Zcash primitives.\nStructs and methods for handling Zcash block headers.\nParsers and serializers for Zcash Merkle trees.\nStructs and methods for handling Zcash transactions.\nThe identifier for a Zcash block.\nA Zcash block header.\nThe information contained in a Zcash block header.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nConstructs a BlockHash from the given slice.\nReturns the hash of this header.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nConstructs a BlockHash from the given slice.\nA wrapper type representing blockchain heights.\nThe Blossom network upgrade.\nThe consensus rules deployed by NetworkUpgrade::Blossom.\nA globally-unique identifier for a set of consensus rules …\nThe Canopy network upgrade.\nThe consensus rules deployed by NetworkUpgrade::Canopy.\nThe height of the genesis block on a network.\nThe Heartwood network upgrade.\nThe consensus rules deployed by NetworkUpgrade::Heartwood.\nThe production network.\nZcash Mainnet.\nMarker struct for the production network.\nZcash Mainnet.\nThe enumeration of known Zcash networks.\nConstants associated with a given Zcash network.\nThe enumeration of known Zcash network types.\nAn event that occurs at a specified height on the Zcash …\nThe Nu5 network upgrade.\nThe consensus rules deployed by NetworkUpgrade::Nu5.\nThe Nu6 network upgrade.\nThe consensus rules deployed by NetworkUpgrade::Nu6.\nThe Overwinter network upgrade.\nThe consensus rules deployed by NetworkUpgrade::Overwinter.\nZcash consensus parameters.\nPrivate integration / regression testing, used in zcashd.\nThe Sapling network upgrade.\nThe consensus rules deployed by NetworkUpgrade::Sapling.\nThe consensus rules at the launch of Zcash.\nThe test network.\nZcash Testnet.\nMarker struct for the test network.\nZcash Testnet.\nThe “grace period” defined in ZIP 212.\nReturns the activation height for a particular network …\nReturns the human-readable prefix for Base58Check-encoded …\nReturns the human-readable prefix for Base58Check-encoded …\nReturns the human-readable prefix for Base58Check-encoded …\nThe coin type for ZEC, as defined by SLIP 44.\nReturns the branch ID corresponding to the consensus rule …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the range of heights for the consensus epoch …\nReturns the range of heights for the consensus epoch …\nReturns the human-readable prefix for Bech32-encoded …\nReturns the human-readable prefix for Bech32-encoded …\nReturns the Bech32-encoded human-readable prefix for …\nReturns the Bech32-encoded human-readable prefix for TEX …\nThe HRP for a Bech32m-encoded mainnet Unified Address.\nThe HRP for a Bech32m-encoded mainnet Unified FVK.\nThe HRP for a Bech32m-encoded mainnet Unified IVK.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nDetermines whether the specified network upgrade is active …\nReturns the type of network configured by this set of …\nSubtracts the provided value from this height, returning H0…\nTransaction version 3, which was introduced by the …\nThe version group ID for Zcash v3 transactions.\nTransaction version 4, which was introduced by the Sapling …\nThe version group ID for Zcash v4 transactions.\nTransaction version 5, which was introduced by the NU5 …\nThe version group ID for Zcash v5 transactions.\nConstants for the Zcash main network.\nRegtest constants\nConstants for the Zcash test network.\nThe prefix for a Base58Check-encoded mainnet PublicKeyHash.\nThe prefix for a Base58Check-encoded mainnet ScriptHash.\nThe prefix for a Base58Check-encoded mainnet Sprout …\nThe mainnet coin type for ZEC, as defined by SLIP 44.\nThe HRP for a Bech32-encoded mainnet ExtendedFullViewingKey…\nThe HRP for a Bech32-encoded mainnet Sapling …\nThe HRP for a Bech32-encoded mainnet Sapling PaymentAddress…\nThe HRP for a Bech32m-encoded mainnet ZIP 320 TEX address.\nThe HRP for a Bech32m-encoded mainnet Unified Address.\nThe HRP for a Bech32m-encoded mainnet Unified FVK.\nThe HRP for a Bech32m-encoded mainnet Unified IVK.\nThe prefix for a Base58Check-encoded regtest transparent …\nThe prefix for a Base58Check-encoded regtest transparent …\nThe prefix for a Base58Check-encoded regtest Sprout …\nThe regtest cointype reuses the testnet cointype\nThe HRP for a Bech32-encoded regtest Sapling …\nThe HRP for a Bech32-encoded regtest Sapling …\nThe HRP for a Bech32-encoded regtest Sapling PaymentAddress…\nThe HRP for a Bech32m-encoded regtest ZIP 320 TEX address.\nThe HRP for a Bech32m-encoded regtest Unified Address.\nThe HRP for a Bech32m-encoded regtest Unified FVK.\nThe HRP for a Bech32m-encoded regtest Unified IVK.\nThe prefix for a Base58Check-encoded testnet transparent …\nThe prefix for a Base58Check-encoded testnet transparent …\nThe prefix for a Base58Check-encoded testnet Sprout …\nThe testnet coin type for ZEC, as defined by SLIP 44.\nThe HRP for a Bech32-encoded testnet Sapling …\nThe HRP for a Bech32-encoded testnet Sapling …\nThe HRP for a Bech32-encoded testnet Sapling PaymentAddress…\nThe HRP for a Bech32m-encoded testnet ZIP 320 TEX address.\nThe HRP for a Bech32m-encoded testnet Unified Address.\nThe HRP for a Bech32m-encoded testnet Unified FVK.\nThe HRP for a Bech32m-encoded testnet Unified IVK.\nA serialized script, used inside transparent inputs and …\nA transparent address corresponding to either a public key …\nReturns the address that this Script contains, if any.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nGenerate the scriptPubKey corresponding to this address.\nReturns the length of this script as encoded (including …\nA BIP44 private key at the account path level …\nA BIP44 public key at the account path level …\nThe scope used to derive keys for ephemeral transparent …\nThe scope used to derive keys for external transparent …\nAn incoming viewing key at the “ephemeral” path …\nAn incoming viewing key at the BIP44 “external” path …\nExternal outgoing viewing key used by zcashd for …\nThe scope used to derive keys for internal wallet …\nTrait representing a transparent “incoming viewing key”…\nAn incoming viewing key at the BIP44 “internal” path …\nInternal outgoing viewing key used for autoshielding.\nThe maximum valid non-hardened child index.\nA child index for a derived transparent address.\nAn end-exclusive iterator over a range of non-hardened …\nAn end-exclusive range of non-hardened child indexes.\nThe scope of a transparent key.\nThe minimum valid non-hardened child index.\nConstructs a NonHardenedChildIndex from a ZIP 32 child …\nReturns an arbitrary custom TransparentKeyScope.\nSearches the space of child indexes for an index that will …\nDerives a transparent address at the provided child index.\nDerives the BIP44 public key at the “address level” …\nDerives a transparent address at the provided child index.\nDerives the public key at the “ephemeral” path …\nDerives the BIP44 public key at the external “change …\nDerives the BIP44 private spending key for the external …\nDerives the BIP44 public key at the internal “change …\nDerives the BIP44 private spending key for the internal …\nDerives the public key corresponding to the given full BIP …\nDerives the BIP44 private spending key for the child path …\nDerives the external ovk corresponding to this transparent …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nDecodes the AccountPrivKey from the encoding specified for …\nParses the given ZIP 32 child index.\nPerforms derivation of the extended private key for the …\nReturns the index as a 32-bit integer.\nDerives the internal ovk corresponding to this transparent …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns the successor to this index.\nDerives the internal ovk and external ovk corresponding to …\nDerives the P2PKH transparent address corresponding to the …\nAdds the given delta to this index, returning a maximum …\nSubtracts the given delta from this index.\nReturns the AccountPrivKey serialized using the encoding …\nA memo field containing arbitrary bytes.\nAn empty memo field.\nErrors that may result from attempting to construct an …\nSome unknown memo format from ✨the future✨ that we can…\nAn unencrypted memo received alongside a shielded note in …\nThe unencrypted memo bytes received alongside a shielded …\nA memo field containing a UTF-8 string.\nType-safe wrapper around String to enforce memo length …\nReturns the raw byte array containing the memo bytes, …\nReturns a slice of the raw bytes, excluding null padding.\nCreates a MemoBytes indicating that no memo is present.\nSerializes the Memo per ZIP 302.\nReturns the argument unchanged.\nSerializes the Memo per ZIP 302.\nReturns the argument unchanged.\nSerializes the Memo per ZIP 302.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCreates a MemoBytes from a slice, exactly as provided.\nParses a Memo from its ZIP 302 serialization.\nReturns a Memo containing the given string, or an error if …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nConsumes this MemoBytes value and returns the underlying …\nParses a Memo from its ZIP 302 serialization.\nParses a Memo from its ZIP 302 serialization.\nA hashable node within a Merkle tree.\nReads a Merkle path from its serialized form.\nParses a node from the given byte source.\nReads a legacy CommitmentTree from its serialized form.\nReads an IncrementalWitness from its serialized form.\nReads a usize value encoded as a u64 in little-endian …\nSerializes this node.\nSerializes a legacy CommitmentTree as an array of bytes.\nSerializes an IncrementalWitness as an array of bytes.\nWrites a usize value encoded as a u64 in little-endian …\nAuthorization state for a bundle of transaction data.\nAuthorization marker type for fully-authorized …\nTransaction versions allowed prior to Overwinter …\nA Zcash transaction.\nThe information contained in a Zcash transaction.\nThe identifier for a Zcash transaction.\nThe set of defined transaction format versions.\nAuthorization marker type for transactions without …\nTransaction version 3, which was introduced by the …\nTransaction version 4, which was introduced by the Sapling …\nTransaction version 5, which was introduced by the NU5 …\nStructs for building transactions.\nStructs representing the components within Zcash …\nReturns the Zcash epoch that this transaction can be mined …\nReturns the total fees paid by the transaction, given a …\nAbstractions and types related to fee calculations.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nConstructs a TransactionData from its constituent parts.\nReturns true if this transaction version supports the …\nReturns true if this transaction version supports the …\nReturns true if this transaction version supports the …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nMaps the bundles from one type to another.\nSuggests the transaction version that should be used in …\nMaps the bundles from one type to another with fallible …\nReturns the transaction version.\nAn overflow or underflow occurred when computing value …\nRules for how the builder should be configured for each …\nThe result of a transaction build operation, which …\nGenerates a Transaction from its inputs and outputs.\nThe transaction has inputs in excess of outputs and fees; …\nSince Blossom activation, the default transaction expiry …\nErrors that can occur during transaction construction.\nAn error occurred in computing the fees for a transaction.\nErrors that can occur during fee calculation.\nInsufficient funds were provided to the transaction …\nAn error occurred in constructing the Orchard parts of a …\nThe builder was constructed with a target height before …\nAn error occurred in adding an Orchard Output to a …\nAn error occurred in adding an Orchard Spend to a …\nThe components of a PCZT.\nThe result of Builder::build_for_pczt.\nReports on the progress made by the builder towards …\nAn error occurred in constructing the Sapling parts of a …\nThe builder was constructed without support for the …\nAn error occurred in constructing the transparent parts of …\nAdds an Orchard recipient to the transaction.\nAdds an Orchard note to be spent in this bundle.\nAdds a Sapling address to send funds to.\nAdds a Sapling note to be spent in this transaction.\nAdds a transparent coin to be spent in this transaction.\nAdds a transparent address to send funds to.\nBuilds a transaction from the configured spends and …\nBuilds a PCZT from the configured spends and outputs.\nReturns the number of steps completed so far while …\nReturns the total expected number of steps before this …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReports the calculated fee given the specified fee rule.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nBuild the transaction using mocked randomness and proving …\nCreates a new Builder targeted for inclusion in the block …\nReturns the Orchard bundle type and anchor for this …\nReturns the mapping from Orchard inputs and outputs to the …\nReturns the network parameters that the builder has been …\nReturns the Sapling bundle type and anchor for this …\nReturns the set of Sapling inputs currently committed to …\nReturns the mapping from Sapling inputs and outputs to …\nReturns the set of Sapling outputs currently set to be …\nReturns the target height of the transaction under …\nReturns the transaction that was constructed by the …\nReturns the set of transparent inputs currently committed …\nReturns the set of transparent outputs currently set to be …\nSets the notifier channel, where progress of building the …\nFunctions for parsing & serialization of Orchard …\nStructs representing the components within Zcash …\nReads an orchard::Bundle from a v5 transaction format.\nWrites an orchard::Bundle in the v5 transaction format.\nA map from one bundle authorization to another.\nConsensus rules (§7.3) & (§7.4):\nConsensus rules (§4.4) & (§4.5):\nReads the Sapling components of a v4 transaction.\nWrites the Sapling components of a v4 transaction.\nReturns the enforcement policy for ZIP 212 at the given …\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nThe net value for the JoinSplit. When this is positive, …\nThe value balance for the bundle. When this is positive, …\nMarker type for a bundle that contains no authorizing …\nConstructs a fake OutPoint for use in tests.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the byte representation of the txid of the …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns true if this bundle matches the definition of a …\nReturns the output index of this OutPoint.\nConstructs an OutPoint for the output at index n in the …\nReturns the address to which the TxOut was sent, if this …\nReturns the txid of the transaction containing this …\nThe amount of value added to or removed from the …\nA bundle could not be built because a required signing …\nA set of transparent signing keys.\nAdds a coin (the output of a previous transaction) to be …\nAdds a signing key to the set.\nBuilds a bundle containing the given inputs and outputs, …\nConstructs a new TransparentBuilder\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the list of transparent inputs that will be …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nConstructs an empty set of signing keys.\nReturns the transparent outputs that will be produced by …\nThe BIP 32 derivation path at which a key can be found.\nPCZT fields that are specific to producing the transaction…\nInformation about a transparent spend within a transaction.\nAn updater for a transparent PCZT input.\nAn out-of-bounds index was provided when looking up an …\nAn invalid sighash_type was provided.\nAn invalid value was provided.\nThe Transaction Extractor role requires all script_sig …\npartial_signatures contained no signatures.\nA redeem_script can only be set on a P2SH coin.\nA redeem_script can only be set on a P2SH coin.\nInformation about a transparent output within a …\nAn updater for a transparent PCZT output.\nErrors that can occur while parsing a PCZT bundle.\nErrors that can occur while signing a transparent input in …\nErrors that can occur while finalizing the transparent …\nErrors that can occur while extracting a regular …\nAuthorizing data for a transparent bundle in a transaction …\npartial_signatures contained unexpected signatures.\nThe script_pubkey kind is unsupported.\nThe script_pubkey kind is unsupported.\nAn updater for a transparent PCZT bundle.\nErrors that can occur while signing a transparent input in …\nErrors that can occur while verifying a PCZT bundle.\nThe provided redeem_script does not match the input’s …\nThe provided redeem_script does not match the input’s …\nThe provided sk does not match any pubkey involved with …\nA map from a pubkey to the BIP 32 derivation path at which …\nA map from a pubkey to the BIP 32 derivation path at which …\nProvides read access to the bundle being updated.\nThe sequence of indices corresponding to the HD path.\nExtracts a fully authorized regular Bundle from this PCZT …\nExtracts the BIP 44 account index, scope, and address …\nExtracts the effects of this PCZT bundle as a regular …\nFinalizes the spends for this bundle.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nMappings of the form key = RIPEMD160(SHA256(value)).\nMappings of the form key = SHA256(SHA256(value)).\nThe transparent inputs in this bundle.\nReturns a mutable reference to the inputs in this bundle.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nThe transparent outputs in this bundle.\nParses a PCZT bundle from its component parts.\nParses a PCZT input from its component parts.\nParses a PCZT output from its component parts.\nParses a BIP 32 derivation path from its component parts.\nA map from a pubkey to a signature created by it.\nThe index of the entry in the vout field of the previous …\nThe ID of the previous transaction containing the …\nProprietary fields related to the transparent coin being …\nProprietary fields related to the transparent coin being …\nThe script required to spend this output, if it is P2SH.\nThe script required to spend this output, if it is P2SH.\nThe minimum block height that this input requires to be …\nThe minimum Unix timstamp that this input requires to be …\nMappings of the form key = RIPEMD160(value).\nThe script_pubkey of the input being spent.\nThe script constraining how spending of this output must …\nA satisfying witness for the script_pubkey of the input …\nThe ZIP 32 seed fingerprint.\nThe sequence number of this input.\nSets the BIP 32 derivation path for the given pubkey.\nSets the BIP 32 derivation path for the given pubkey.\nStores the given value along with …\nStores the given value along with …\nStores the given proprietary value at the given key.\nStores the given proprietary value at the given key.\nSets the redeem script for this input.\nSets the redeem script for this output.\nStores the given value along with key = RIPEMD160(value).\nStores the given value along with key = SHA256(value).\nSets the user-facing address that the new note is being …\nMappings of the form key = SHA256(value).\nThe sighash type to be used for this input.\nSigns the transparent spend with the given spend …\nUpdates the input at the given index with information …\nUpdates the input at the given index with information …\nUpdates the bundle with information provided in the given …\nThe user-facing address to which this output is being …\nThe value of the input being spent.\nThe value of the output.\nVerifies the consistency of this transparent input.\nVerifies the consistency of this transparent output.\nA trait that represents the ability to compute the fees …\nComputes the total fee required for a transaction given …\nTypes related to computation of fees and change related to …\nTypes related to implementing a FeeRule provides ZIP 317 …\nA fee rule that always returns a fixed fee, irrespective …\nReturns the fixed fee amount which this rule was …\nReturns the argument unchanged.\nCalls U::from(self).\nCreates a new nonstandard fixed fee rule with the …\nThe size of a transparent input, or the outpoint …\nThis trait provides a minimized view of a transparent …\nThe txin size is known.\nThis trait provides a minimized view of a transparent …\nAn InputSize corresponding to the upper bound on the size …\nThe size of the script required to spend this input (and …\nThe previous output being spent.\nReturns the argument unchanged.\nCalls U::from(self).\nThe outpoint to which the input refers.\nReturns the script corresponding to the newly created …\nThe size of the transparent script required to spend this …\nReturns the serialized size of the txout.\nReturns the value of the output being created.\nAn overflow or underflow of amount computation occurred.\nErrors that can occur in ZIP 317 fee computation\nA FeeRule implementation that implements the ZIP 317 fee …\nThe minimum number of logical actions that must be paid …\nThe standard ZIP 317 marginal fee.\nThe minimum conventional fee computed from the standard …\nTransparent inputs provided to the fee calculation …\nThe standard size of a P2PKH input, in bytes, according to …\nThe standard size of a P2PKH output, in bytes, according …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the ZIP 317 number of grace actions\nCalls U::from(self).\nCalls U::from(self).\nReturns the ZIP 317 marginal fee.\nConstruct a new FeeRule instance with the specified …\nReturns the ZIP 317 standard P2PKH input size\nReturns the ZIP 317 standard P2PKH output size\nConstruct a new FeeRule using the standard ZIP 317 …\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nComputes the signature hash for an input to a transaction, …\nImplements the Signature Digest section of ZIP 244\nDigester which constructs a digest of only the witness …\nA TransactionDigest implementation that commits to all of …\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nAbstraction over a reader which SHA-256d-hashes the data …\nAbstraction over a writer which SHA-256d-hashes the data …\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nDestroy this reader and return the hash of what was read.\nDestroy this writer and return the hash of what was …\nConstruct a new HashReader given an existing reader by …\nA type-safe wrapper for account identifiers.\nA value that is needed, in addition to a spending key, in …\nA child index for a derived key.\nThe index for a particular diversifier.\nThe error type returned when a DiversifierIndex increment …\nA scope used for wallet-external operations, namely …\nA scope used for wallet-internal operations, such as …\nA ChildIndex sometimes employed for private-use subtrees.\nThe scope of a viewing key or address.\nThe error type returned when a checked integral type …\nThe ID for account zero (the first account).\nAd-hoc (“arbitrary”) key derivation.\nReturns the byte representation of the chain code, as …\nReturns the raw bytes of the diversifier index.\nSeed Fingerprints according to ZIP 32\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nParses the given ZIP 32 child index.\nConstructs a hardened ChildIndex from the given value.\nGeneric framework for hardened-only key derivation.\nIncrements this index, failing on overflow.\nReturns the index as a 32-bit integer, including the …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nConstructs a ChainCode from the given array.\nConstructs the zero index.\nReturns the next account ID in sequence, or None on …\nRegistered key derivation.\nAn ad-hoc extended secret key.\nReturns the chain code for this key.\nReturns the key material for this key.\nReturns the argument unchanged.\nDerives an ad-hoc key at the given path from the given …\nCalls U::from(self).\nConcatenates the key data and chain code to obtain a …\nThe fingerprint for a wallet’s seed bytes, as defined in …\nReturns the argument unchanged.\nReconstructs the fingerprint from a buffer containing a …\nDerives the fingerprint of the given seed bytes.\nCalls U::from(self).\nReturns the fingerprint as a byte array.\nThe PrfExpand domain used during child key derivation.\nThe context in which hardened-only key derivation is …\nAn arbitrary or registered extended secret key.\nA 16-byte domain separator used during master key …\nDerives a child key from a parent key at a given index and …\nDerives a child key from a parent key at a given index and …\nReturns the argument unchanged.\nCalls U::from(self).\nGenerates the master key of a hardened-only extended …\nExposes the parts of this key.\nThe provided context string is invalid; context strings …\nAn error that occurred in cryptovalue derivation.\nA ZIP 32 registered key derivation path element, …\nA registered extended secret key.\nThe provided seed data was invalid. A seed must be between …\nThe provided subpath was empty. Empty subpaths are not …\nReturns the chain code for this key.\nReturns the index at which the child key will be derived.\nDerives a 64-byte cryptovalue (for use as key material for …\nReturns the key material for this key.\nDerives a child key from a parent key at a given index and …\nDerives a 64-byte child cryptovalue from a parent key at a …\nDerives a child key from a parent key at a given index and …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nConstructs a key for a registered application protocol …\nDerives a key for a registered application protocol at the …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nConstructs a new PathElement from its constituent parts.\nReturns the tag that will be used in derivation of the …") \ No newline at end of file diff --git a/rustdoc/latest/search.desc/zcash_protocol/zcash_protocol-desc-0-.js b/rustdoc/latest/search.desc/zcash_protocol/zcash_protocol-desc-0-.js index 85db36c54..bb5d5cb1b 100644 --- a/rustdoc/latest/search.desc/zcash_protocol/zcash_protocol-desc-0-.js +++ b/rustdoc/latest/search.desc/zcash_protocol/zcash_protocol-desc-0-.js @@ -1 +1 @@ -searchState.loadedDescShard("zcash_protocol", 0, "A crate for Zcash protocol constants and value types.\nThe Orchard protocol\nA value pool in the Zcash protocol.\nThe Sapling protocol\nA shielded value pool.\nA Zcash shielded transfer protocol.\nThe transparent value pool\nThe identifier for a Zcash transaction.\nConsensus logic and parameters.\nNetwork-specific Zcash constants.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nStructs for handling encrypted memos.\nA wrapper type representing blockchain heights.\nThe Blossom network upgrade.\nThe consensus rules deployed by NetworkUpgrade::Blossom.\nA globally-unique identifier for a set of consensus rules …\nThe Canopy network upgrade.\nThe consensus rules deployed by NetworkUpgrade::Canopy.\nThe height of the genesis block on a network.\nThe Heartwood network upgrade.\nThe consensus rules deployed by NetworkUpgrade::Heartwood.\nThe production network.\nZcash Mainnet.\nMarker struct for the production network.\nZcash Mainnet.\nThe enumeration of known Zcash networks.\nConstants associated with a given Zcash network.\nThe enumeration of known Zcash network types.\nAn event that occurs at a specified height on the Zcash …\nThe Nu5 network upgrade.\nThe consensus rules deployed by NetworkUpgrade::Nu5.\nThe Nu6 network upgrade.\nThe consensus rules deployed by NetworkUpgrade::Nu6.\nThe Overwinter network upgrade.\nThe consensus rules deployed by NetworkUpgrade::Overwinter.\nZcash consensus parameters.\nPrivate integration / regression testing, used in zcashd.\nThe Sapling network upgrade.\nThe consensus rules deployed by NetworkUpgrade::Sapling.\nThe consensus rules at the launch of Zcash.\nThe test network.\nZcash Testnet.\nMarker struct for the test network.\nZcash Testnet.\nThe “grace period” defined in ZIP 212.\nReturns the activation height for a particular network …\nReturns the human-readable prefix for Base58Check-encoded …\nReturns the human-readable prefix for Base58Check-encoded …\nReturns the human-readable prefix for Base58Check-encoded …\nThe coin type for ZEC, as defined by SLIP 44.\nReturns the branch ID corresponding to the consensus rule …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the range of heights for the consensus epoch …\nReturns the range of heights for the consensus epoch …\nReturns the human-readable prefix for Bech32-encoded …\nReturns the human-readable prefix for Bech32-encoded …\nReturns the Bech32-encoded human-readable prefix for …\nReturns the Bech32-encoded human-readable prefix for TEX …\nThe HRP for a Bech32m-encoded mainnet Unified Address.\nThe HRP for a Bech32m-encoded mainnet Unified FVK.\nThe HRP for a Bech32m-encoded mainnet Unified IVK.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nDetermines whether the specified network upgrade is active …\nReturns the type of network configured by this set of …\nSubtracts the provided value from this height, returning H0…\nConstants for the Zcash main network.\nRegtest constants\nConstants for the Zcash test network.\nThe prefix for a Base58Check-encoded mainnet PublicKeyHash.\nThe prefix for a Base58Check-encoded mainnet ScriptHash.\nThe prefix for a Base58Check-encoded mainnet Sprout …\nThe mainnet coin type for ZEC, as defined by SLIP 44.\nThe HRP for a Bech32-encoded mainnet ExtendedFullViewingKey…\nThe HRP for a Bech32-encoded mainnet Sapling …\nThe HRP for a Bech32-encoded mainnet Sapling PaymentAddress…\nThe HRP for a Bech32m-encoded mainnet ZIP 320 TEX address.\nThe HRP for a Bech32m-encoded mainnet Unified Address.\nThe HRP for a Bech32m-encoded mainnet Unified FVK.\nThe HRP for a Bech32m-encoded mainnet Unified IVK.\nThe prefix for a Base58Check-encoded regtest transparent …\nThe prefix for a Base58Check-encoded regtest transparent …\nThe prefix for a Base58Check-encoded regtest Sprout …\nThe regtest cointype reuses the testnet cointype\nThe HRP for a Bech32-encoded regtest Sapling …\nThe HRP for a Bech32-encoded regtest Sapling …\nThe HRP for a Bech32-encoded regtest Sapling PaymentAddress…\nThe HRP for a Bech32m-encoded regtest ZIP 320 TEX address.\nThe HRP for a Bech32m-encoded regtest Unified Address.\nThe HRP for a Bech32m-encoded regtest Unified FVK.\nThe HRP for a Bech32m-encoded regtest Unified IVK.\nThe prefix for a Base58Check-encoded testnet transparent …\nThe prefix for a Base58Check-encoded testnet transparent …\nThe prefix for a Base58Check-encoded testnet Sprout …\nThe testnet coin type for ZEC, as defined by SLIP 44.\nThe HRP for a Bech32-encoded testnet Sapling …\nThe HRP for a Bech32-encoded testnet Sapling …\nThe HRP for a Bech32-encoded testnet Sapling PaymentAddress…\nThe HRP for a Bech32m-encoded testnet ZIP 320 TEX address.\nThe HRP for a Bech32m-encoded testnet Unified Address.\nThe HRP for a Bech32m-encoded testnet Unified FVK.\nThe HRP for a Bech32m-encoded testnet Unified IVK.\na LocalNetwork setup should define the activation heights …\nReturns the argument unchanged.\nCalls U::from(self).\nA memo field containing arbitrary bytes.\nAn empty memo field.\nErrors that may result from attempting to construct an …\nSome unknown memo format from ✨the future✨ that we can…\nAn unencrypted memo received alongside a shielded note in …\nThe unencrypted memo bytes received alongside a shielded …\nA memo field containing a UTF-8 string.\nType-safe wrapper around String to enforce memo length …\nReturns the raw byte array containing the memo bytes, …\nReturns a slice of the raw bytes, excluding null padding.\nCreates a MemoBytes indicating that no memo is present.\nSerializes the Memo per ZIP 302.\nReturns the argument unchanged.\nSerializes the Memo per ZIP 302.\nSerializes the Memo per ZIP 302.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCreates a MemoBytes from a slice, exactly as provided.\nParses a Memo from its ZIP 302 serialization.\nReturns a Memo containing the given string, or an error if …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nConsumes this MemoBytes value and returns the underlying …\nParses a Memo from its ZIP 302 serialization.\nParses a Memo from its ZIP 302 serialization.\nA type for balance violations in amount addition and …\nA struct that provides both the quotient and remainder of …\nReturns the identity Zatoshis\nA type-safe representation of a Zcash value delta, in …\nA type-safe representation of some nonnegative amount of …\nCreates a constant ZatBalance from an i64.\nCreates a constant ZatBalance from a u64.\nCreates a constant Zatoshis from a u64.\nDivides this Zatoshis value by the given divisor and …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCreates an ZatBalance from an i64.\nReads an ZatBalance from a signed 64-bit little-endian …\nCreates a non-negative ZatBalance from an i64.\nCreates a Zatoshis from an i64.\nReads a non-negative ZatBalance from a signed 64-bit …\nReads a Zatoshis from a signed integer represented as a two…\nCreates an ZatBalance from a u64.\nCreates a Zatoshis from a u64.\nReads an ZatBalance from an unsigned 64-bit little-endian …\nReads an Zatoshis from an unsigned 64-bit little-endian …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns this Zatoshis as a u64.\nReturns true if self is negative and false if the …\nReturns true if self is positive and false if the …\nReturns whether or not this Zatoshis is positive.\nReturns whether or not this Zatoshis is the zero value.\nReturns the quotient portion of the value.\nReturns the remainder portion of the value.\nReturns the ZatBalance encoded as a signed 64-bit …\nReturns this Zatoshis encoded as a signed two’s …\nReturns a zero-valued ZatBalance.") \ No newline at end of file +searchState.loadedDescShard("zcash_protocol", 0, "A crate for Zcash protocol constants and value types.\nThe Orchard protocol\nA value pool in the Zcash protocol.\nThe Sapling protocol\nA shielded value pool.\nA Zcash shielded transfer protocol.\nThe transparent value pool\nThe identifier for a Zcash transaction.\nConsensus logic and parameters.\nNetwork-specific Zcash constants.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nStructs for handling encrypted memos.\nA wrapper type representing blockchain heights.\nThe Blossom network upgrade.\nThe consensus rules deployed by NetworkUpgrade::Blossom.\nA globally-unique identifier for a set of consensus rules …\nThe Canopy network upgrade.\nThe consensus rules deployed by NetworkUpgrade::Canopy.\nThe height of the genesis block on a network.\nThe Heartwood network upgrade.\nThe consensus rules deployed by NetworkUpgrade::Heartwood.\nThe production network.\nZcash Mainnet.\nMarker struct for the production network.\nZcash Mainnet.\nThe enumeration of known Zcash networks.\nConstants associated with a given Zcash network.\nThe enumeration of known Zcash network types.\nAn event that occurs at a specified height on the Zcash …\nThe Nu5 network upgrade.\nThe consensus rules deployed by NetworkUpgrade::Nu5.\nThe Nu6 network upgrade.\nThe consensus rules deployed by NetworkUpgrade::Nu6.\nThe Overwinter network upgrade.\nThe consensus rules deployed by NetworkUpgrade::Overwinter.\nZcash consensus parameters.\nPrivate integration / regression testing, used in zcashd.\nThe Sapling network upgrade.\nThe consensus rules deployed by NetworkUpgrade::Sapling.\nThe consensus rules at the launch of Zcash.\nThe test network.\nZcash Testnet.\nMarker struct for the test network.\nZcash Testnet.\nThe “grace period” defined in ZIP 212.\nReturns the activation height for a particular network …\nReturns the human-readable prefix for Base58Check-encoded …\nReturns the human-readable prefix for Base58Check-encoded …\nReturns the human-readable prefix for Base58Check-encoded …\nThe coin type for ZEC, as defined by SLIP 44.\nReturns the branch ID corresponding to the consensus rule …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the range of heights for the consensus epoch …\nReturns the range of heights for the consensus epoch …\nReturns the human-readable prefix for Bech32-encoded …\nReturns the human-readable prefix for Bech32-encoded …\nReturns the Bech32-encoded human-readable prefix for …\nReturns the Bech32-encoded human-readable prefix for TEX …\nThe HRP for a Bech32m-encoded mainnet Unified Address.\nThe HRP for a Bech32m-encoded mainnet Unified FVK.\nThe HRP for a Bech32m-encoded mainnet Unified IVK.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nDetermines whether the specified network upgrade is active …\nReturns the type of network configured by this set of …\nSubtracts the provided value from this height, returning H0…\nTransaction version 3, which was introduced by the …\nThe version group ID for Zcash v3 transactions.\nTransaction version 4, which was introduced by the Sapling …\nThe version group ID for Zcash v4 transactions.\nTransaction version 5, which was introduced by the NU5 …\nThe version group ID for Zcash v5 transactions.\nConstants for the Zcash main network.\nRegtest constants\nConstants for the Zcash test network.\nThe prefix for a Base58Check-encoded mainnet PublicKeyHash.\nThe prefix for a Base58Check-encoded mainnet ScriptHash.\nThe prefix for a Base58Check-encoded mainnet Sprout …\nThe mainnet coin type for ZEC, as defined by SLIP 44.\nThe HRP for a Bech32-encoded mainnet ExtendedFullViewingKey…\nThe HRP for a Bech32-encoded mainnet Sapling …\nThe HRP for a Bech32-encoded mainnet Sapling PaymentAddress…\nThe HRP for a Bech32m-encoded mainnet ZIP 320 TEX address.\nThe HRP for a Bech32m-encoded mainnet Unified Address.\nThe HRP for a Bech32m-encoded mainnet Unified FVK.\nThe HRP for a Bech32m-encoded mainnet Unified IVK.\nThe prefix for a Base58Check-encoded regtest transparent …\nThe prefix for a Base58Check-encoded regtest transparent …\nThe prefix for a Base58Check-encoded regtest Sprout …\nThe regtest cointype reuses the testnet cointype\nThe HRP for a Bech32-encoded regtest Sapling …\nThe HRP for a Bech32-encoded regtest Sapling …\nThe HRP for a Bech32-encoded regtest Sapling PaymentAddress…\nThe HRP for a Bech32m-encoded regtest ZIP 320 TEX address.\nThe HRP for a Bech32m-encoded regtest Unified Address.\nThe HRP for a Bech32m-encoded regtest Unified FVK.\nThe HRP for a Bech32m-encoded regtest Unified IVK.\nThe prefix for a Base58Check-encoded testnet transparent …\nThe prefix for a Base58Check-encoded testnet transparent …\nThe prefix for a Base58Check-encoded testnet Sprout …\nThe testnet coin type for ZEC, as defined by SLIP 44.\nThe HRP for a Bech32-encoded testnet Sapling …\nThe HRP for a Bech32-encoded testnet Sapling …\nThe HRP for a Bech32-encoded testnet Sapling PaymentAddress…\nThe HRP for a Bech32m-encoded testnet ZIP 320 TEX address.\nThe HRP for a Bech32m-encoded testnet Unified Address.\nThe HRP for a Bech32m-encoded testnet Unified FVK.\nThe HRP for a Bech32m-encoded testnet Unified IVK.\na LocalNetwork setup should define the activation heights …\nReturns the argument unchanged.\nCalls U::from(self).\nA memo field containing arbitrary bytes.\nAn empty memo field.\nErrors that may result from attempting to construct an …\nSome unknown memo format from ✨the future✨ that we can…\nAn unencrypted memo received alongside a shielded note in …\nThe unencrypted memo bytes received alongside a shielded …\nA memo field containing a UTF-8 string.\nType-safe wrapper around String to enforce memo length …\nReturns the raw byte array containing the memo bytes, …\nReturns a slice of the raw bytes, excluding null padding.\nCreates a MemoBytes indicating that no memo is present.\nSerializes the Memo per ZIP 302.\nReturns the argument unchanged.\nSerializes the Memo per ZIP 302.\nSerializes the Memo per ZIP 302.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCreates a MemoBytes from a slice, exactly as provided.\nParses a Memo from its ZIP 302 serialization.\nReturns a Memo containing the given string, or an error if …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nConsumes this MemoBytes value and returns the underlying …\nParses a Memo from its ZIP 302 serialization.\nParses a Memo from its ZIP 302 serialization.\nA type for balance violations in amount addition and …\nA struct that provides both the quotient and remainder of …\nReturns the identity Zatoshis\nA type-safe representation of a Zcash value delta, in …\nA type-safe representation of some nonnegative amount of …\nCreates a constant ZatBalance from an i64.\nCreates a constant ZatBalance from a u64.\nCreates a constant Zatoshis from a u64.\nDivides this Zatoshis value by the given divisor and …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCreates an ZatBalance from an i64.\nReads an ZatBalance from a signed 64-bit little-endian …\nCreates a non-negative ZatBalance from an i64.\nCreates a Zatoshis from an i64.\nReads a non-negative ZatBalance from a signed 64-bit …\nReads a Zatoshis from a signed integer represented as a two…\nCreates an ZatBalance from a u64.\nCreates a Zatoshis from a u64.\nReads an ZatBalance from an unsigned 64-bit little-endian …\nReads an Zatoshis from an unsigned 64-bit little-endian …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns this Zatoshis as a u64.\nReturns true if self is negative and false if the …\nReturns true if self is positive and false if the …\nReturns whether or not this Zatoshis is positive.\nReturns whether or not this Zatoshis is the zero value.\nReturns the quotient portion of the value.\nReturns the remainder portion of the value.\nReturns the ZatBalance encoded as a signed 64-bit …\nReturns this Zatoshis encoded as a signed two’s …\nReturns a zero-valued ZatBalance.") \ No newline at end of file diff --git a/rustdoc/latest/settings.html b/rustdoc/latest/settings.html index 21847a6af..c96273b8b 100644 --- a/rustdoc/latest/settings.html +++ b/rustdoc/latest/settings.html @@ -1 +1 @@ -Settings

            Rustdoc settings

            Back
            \ No newline at end of file +Settings

            Rustdoc settings

            Back
            \ No newline at end of file diff --git a/rustdoc/latest/src/equihash/lib.rs.html b/rustdoc/latest/src/equihash/lib.rs.html index 628aa0352..188dde1ae 100644 --- a/rustdoc/latest/src/equihash/lib.rs.html +++ b/rustdoc/latest/src/equihash/lib.rs.html @@ -1,4 +1,4 @@ -lib.rs - source

            equihash/
            lib.rs

            1//! Equihash is a Proof-of-Work algorithm, based on a generalization of the Birthday
            +lib.rs - source

            equihash/
            lib.rs

            1//! Equihash is a Proof-of-Work algorithm, based on a generalization of the Birthday
             2//! problem which finds colliding hash values. It was designed to be memory-hard; more
             3//! specifically, the bottle-neck for parallel implementations of Equihash solvers would
             4//! be memory bandwidth.
            diff --git a/rustdoc/latest/src/equihash/minimal.rs.html b/rustdoc/latest/src/equihash/minimal.rs.html
            index d305a79da..64fb93da1 100644
            --- a/rustdoc/latest/src/equihash/minimal.rs.html
            +++ b/rustdoc/latest/src/equihash/minimal.rs.html
            @@ -1,4 +1,4 @@
            -minimal.rs - source

            equihash/
            minimal.rs

            1use alloc::vec::Vec;
            +minimal.rs - source

            equihash/
            minimal.rs

            1use alloc::vec::Vec;
             2use core::mem::size_of;
             3use core2::io::{Cursor, Read};
             4
            diff --git a/rustdoc/latest/src/equihash/params.rs.html b/rustdoc/latest/src/equihash/params.rs.html
            index caaf26150..b793f0d24 100644
            --- a/rustdoc/latest/src/equihash/params.rs.html
            +++ b/rustdoc/latest/src/equihash/params.rs.html
            @@ -1,4 +1,4 @@
            -params.rs - source

            equihash/
            params.rs

            1#[derive(Clone, Copy)]
            +params.rs - source

            equihash/
            params.rs

            1#[derive(Clone, Copy)]
             2pub(crate) struct Params {
             3    pub(crate) n: u32,
             4    pub(crate) k: u32,
            diff --git a/rustdoc/latest/src/equihash/verify.rs.html b/rustdoc/latest/src/equihash/verify.rs.html
            index fe1057812..700f76c87 100644
            --- a/rustdoc/latest/src/equihash/verify.rs.html
            +++ b/rustdoc/latest/src/equihash/verify.rs.html
            @@ -1,4 +1,4 @@
            -verify.rs - source

            equihash/
            verify.rs

            1//! Verification functions for the [Equihash] proof-of-work algorithm.
            +verify.rs - source

            equihash/
            verify.rs

            1//! Verification functions for the [Equihash] proof-of-work algorithm.
             2//!
             3//! [Equihash]: https://zips.z.cash/protocol/protocol.pdf#equihash
             4
            diff --git a/rustdoc/latest/src/f4jumble/lib.rs.html b/rustdoc/latest/src/f4jumble/lib.rs.html
            index 25ed2647a..468e400f9 100644
            --- a/rustdoc/latest/src/f4jumble/lib.rs.html
            +++ b/rustdoc/latest/src/f4jumble/lib.rs.html
            @@ -1,4 +1,4 @@
            -lib.rs - source

            f4jumble/
            lib.rs

            1//! This crate provides a mechanism for "jumbling" byte slices in a reversible way.
            +lib.rs - source

            f4jumble/
            lib.rs

            1//! This crate provides a mechanism for "jumbling" byte slices in a reversible way.
             2//!
             3//! Many byte encodings such as [Base64] and [Bech32] do not have "cascading" behaviour:
             4//! changing an input byte at one position has no effect on the encoding of bytes at
            diff --git a/rustdoc/latest/src/pczt/common.rs.html b/rustdoc/latest/src/pczt/common.rs.html
            index 8e99dc354..743cef3ac 100644
            --- a/rustdoc/latest/src/pczt/common.rs.html
            +++ b/rustdoc/latest/src/pczt/common.rs.html
            @@ -1,4 +1,4 @@
            -common.rs - source

            pczt/
            common.rs

            1//! The common fields of a PCZT.
            +common.rs - source

            pczt/
            common.rs

            1//! The common fields of a PCZT.
             2
             3use alloc::collections::BTreeMap;
             4use alloc::string::String;
            diff --git a/rustdoc/latest/src/pczt/lib.rs.html b/rustdoc/latest/src/pczt/lib.rs.html
            index 03522b920..84d031e5f 100644
            --- a/rustdoc/latest/src/pczt/lib.rs.html
            +++ b/rustdoc/latest/src/pczt/lib.rs.html
            @@ -1,4 +1,4 @@
            -lib.rs - source

            pczt/
            lib.rs

            1//! The Partially Created Zcash Transaction (PCZT) format.
            +lib.rs - source

            pczt/
            lib.rs

            1//! The Partially Created Zcash Transaction (PCZT) format.
             2//!
             3//! This format enables splitting up the logical steps of creating a Zcash transaction
             4//! across distinct entities. The entity roles roughly match those specified in
            @@ -39,87 +39,82 @@
             39const MAGIC_BYTES: &[u8] = b"PCZT";
             40const PCZT_VERSION_1: u32 = 1;
             41
            -42#[cfg(feature = "zcp-builder")]
            -43const SAPLING_TX_VERSION: u32 = 4;
            -44const V5_TX_VERSION: u32 = 5;
            -45const V5_VERSION_GROUP_ID: u32 = 0x26A7270A;
            -46
            -47/// A partially-created Zcash transaction.
            -48#[derive(Clone, Debug, Serialize, Deserialize, Getters)]
            -49pub struct Pczt {
            -50    /// Global fields that are relevant to the transaction as a whole.
            -51    #[getset(get = "pub")]
            -52    global: common::Global,
            -53
            -54    //
            -55    // Protocol-specific fields.
            +42/// A partially-created Zcash transaction.
            +43#[derive(Clone, Debug, Serialize, Deserialize, Getters)]
            +44pub struct Pczt {
            +45    /// Global fields that are relevant to the transaction as a whole.
            +46    #[getset(get = "pub")]
            +47    global: common::Global,
            +48
            +49    //
            +50    // Protocol-specific fields.
            +51    //
            +52    // Unlike the `TransactionData` type in `zcash_primitives`, these are not optional.
            +53    // This is because a PCZT does not always contain a semantically-valid transaction,
            +54    // and there may be phases where we need to store protocol-specific metadata before
            +55    // it has been determined whether there are protocol-specific inputs or outputs.
             56    //
            -57    // Unlike the `TransactionData` type in `zcash_primitives`, these are not optional.
            -58    // This is because a PCZT does not always contain a semantically-valid transaction,
            -59    // and there may be phases where we need to store protocol-specific metadata before
            -60    // it has been determined whether there are protocol-specific inputs or outputs.
            -61    //
            -62    #[getset(get = "pub")]
            -63    transparent: transparent::Bundle,
            -64    #[getset(get = "pub")]
            -65    sapling: sapling::Bundle,
            -66    #[getset(get = "pub")]
            -67    orchard: orchard::Bundle,
            -68}
            -69
            -70impl Pczt {
            -71    /// Parses a PCZT from its encoding.
            -72    pub fn parse(bytes: &[u8]) -> Result<Self, ParseError> {
            -73        if bytes.len() < 8 {
            -74            return Err(ParseError::TooShort);
            -75        }
            -76        if &bytes[..4] != MAGIC_BYTES {
            -77            return Err(ParseError::NotPczt);
            -78        }
            -79        let version = u32::from_le_bytes(bytes[4..8].try_into().unwrap());
            -80        if version != PCZT_VERSION_1 {
            -81            return Err(ParseError::UnknownVersion(version));
            -82        }
            -83
            -84        // This is a v1 PCZT.
            -85        postcard::from_bytes(&bytes[8..]).map_err(ParseError::Invalid)
            -86    }
            -87
            -88    /// Serializes this PCZT.
            -89    pub fn serialize(&self) -> Vec<u8> {
            -90        let mut bytes = vec![];
            -91        bytes.extend_from_slice(MAGIC_BYTES);
            -92        bytes.extend_from_slice(&PCZT_VERSION_1.to_le_bytes());
            -93        postcard::to_extend(self, bytes).expect("can serialize into memory")
            -94    }
            -95
            -96    /// Gets the effects of this transaction.
            -97    #[cfg(feature = "signer")]
            -98    pub fn into_effects(self) -> Option<TransactionData<EffectsOnly>> {
            -99        let Self {
            -100            global,
            -101            transparent,
            -102            sapling,
            -103            orchard,
            -104        } = self;
            -105
            -106        let transparent = transparent.into_parsed().ok()?;
            -107        let sapling = sapling.into_parsed().ok()?;
            -108        let orchard = orchard.into_parsed().ok()?;
            -109
            -110        roles::signer::pczt_to_tx_data(&global, &transparent, &sapling, &orchard).ok()
            -111    }
            -112}
            -113
            -114/// Errors that can occur while parsing a PCZT.
            -115#[derive(Debug)]
            -116pub enum ParseError {
            -117    /// The bytes do not contain a PCZT.
            -118    NotPczt,
            -119    /// The PCZT encoding was invalid.
            -120    Invalid(postcard::Error),
            -121    /// The bytes are too short to contain a PCZT.
            -122    TooShort,
            -123    /// The PCZT has an unknown version.
            -124    UnknownVersion(u32),
            -125}
            \ No newline at end of file +57
            #[getset(get = "pub")] +58 transparent: transparent::Bundle, +59 #[getset(get = "pub")] +60 sapling: sapling::Bundle, +61 #[getset(get = "pub")] +62 orchard: orchard::Bundle, +63} +64 +65impl Pczt { +66 /// Parses a PCZT from its encoding. +67 pub fn parse(bytes: &[u8]) -> Result<Self, ParseError> { +68 if bytes.len() < 8 { +69 return Err(ParseError::TooShort); +70 } +71 if &bytes[..4] != MAGIC_BYTES { +72 return Err(ParseError::NotPczt); +73 } +74 let version = u32::from_le_bytes(bytes[4..8].try_into().unwrap()); +75 if version != PCZT_VERSION_1 { +76 return Err(ParseError::UnknownVersion(version)); +77 } +78 +79 // This is a v1 PCZT. +80 postcard::from_bytes(&bytes[8..]).map_err(ParseError::Invalid) +81 } +82 +83 /// Serializes this PCZT. +84 pub fn serialize(&self) -> Vec<u8> { +85 let mut bytes = vec![]; +86 bytes.extend_from_slice(MAGIC_BYTES); +87 bytes.extend_from_slice(&PCZT_VERSION_1.to_le_bytes()); +88 postcard::to_extend(self, bytes).expect("can serialize into memory") +89 } +90 +91 /// Gets the effects of this transaction. +92 #[cfg(feature = "signer")] +93 pub fn into_effects(self) -> Option<TransactionData<EffectsOnly>> { +94 let Self { +95 global, +96 transparent, +97 sapling, +98 orchard, +99 } = self; +100 +101 let transparent = transparent.into_parsed().ok()?; +102 let sapling = sapling.into_parsed().ok()?; +103 let orchard = orchard.into_parsed().ok()?; +104 +105 roles::signer::pczt_to_tx_data(&global, &transparent, &sapling, &orchard).ok() +106 } +107} +108 +109/// Errors that can occur while parsing a PCZT. +110#[derive(Debug)] +111pub enum ParseError { +112 /// The bytes do not contain a PCZT. +113 NotPczt, +114 /// The PCZT encoding was invalid. +115 Invalid(postcard::Error), +116 /// The bytes are too short to contain a PCZT. +117 TooShort, +118 /// The PCZT has an unknown version. +119 UnknownVersion(u32), +120}
            \ No newline at end of file diff --git a/rustdoc/latest/src/pczt/orchard.rs.html b/rustdoc/latest/src/pczt/orchard.rs.html index 7c1543967..d5126765d 100644 --- a/rustdoc/latest/src/pczt/orchard.rs.html +++ b/rustdoc/latest/src/pczt/orchard.rs.html @@ -1,4 +1,4 @@ -orchard.rs - source

            pczt/
            orchard.rs

            1//! The Orchard fields of a PCZT.
            +orchard.rs - source

            pczt/
            orchard.rs

            1//! The Orchard fields of a PCZT.
             2
             3use alloc::collections::BTreeMap;
             4use alloc::string::String;
            diff --git a/rustdoc/latest/src/pczt/roles.rs.html b/rustdoc/latest/src/pczt/roles.rs.html
            index 519ea5e64..39426d7c9 100644
            --- a/rustdoc/latest/src/pczt/roles.rs.html
            +++ b/rustdoc/latest/src/pczt/roles.rs.html
            @@ -1,4 +1,4 @@
            -roles.rs - source

            pczt/
            roles.rs

            1//! Implementations of the PCZT roles.
            +roles.rs - source

            pczt/
            roles.rs

            1//! Implementations of the PCZT roles.
             2//!
             3//! The roles currently without an implementation are:
             4//! - Constructor (anyone can contribute)
            diff --git a/rustdoc/latest/src/pczt/roles/combiner/mod.rs.html b/rustdoc/latest/src/pczt/roles/combiner/mod.rs.html
            index d9f3c1dac..e1788408a 100644
            --- a/rustdoc/latest/src/pczt/roles/combiner/mod.rs.html
            +++ b/rustdoc/latest/src/pczt/roles/combiner/mod.rs.html
            @@ -1,4 +1,4 @@
            -mod.rs - source

            pczt/roles/combiner/
            mod.rs

            1//! The Combiner role (anyone can execute).
            +mod.rs - source

            pczt/roles/combiner/
            mod.rs

            1//! The Combiner role (anyone can execute).
             2//!
             3//! - Combines several PCZTs that represent the same transaction into a single PCZT.
             4
            diff --git a/rustdoc/latest/src/pczt/roles/creator/mod.rs.html b/rustdoc/latest/src/pczt/roles/creator/mod.rs.html
            index 619d8329d..4714dcefd 100644
            --- a/rustdoc/latest/src/pczt/roles/creator/mod.rs.html
            +++ b/rustdoc/latest/src/pczt/roles/creator/mod.rs.html
            @@ -1,4 +1,4 @@
            -mod.rs - source

            pczt/roles/creator/
            mod.rs

            1//! The Creator role (single entity).
            +mod.rs - source

            pczt/roles/creator/
            mod.rs

            1//! The Creator role (single entity).
             2//!
             3//!  - Creates the base PCZT with no information about spends or outputs.
             4
            @@ -9,168 +9,175 @@
             9        FLAG_SHIELDED_MODIFIABLE, FLAG_TRANSPARENT_INPUTS_MODIFIABLE,
             10        FLAG_TRANSPARENT_OUTPUTS_MODIFIABLE,
             11    },
            -12    Pczt, V5_TX_VERSION, V5_VERSION_GROUP_ID,
            +12    Pczt,
             13};
             14
            -15/// Initial flags allowing any modification.
            -16const INITIAL_TX_MODIFIABLE: u8 = FLAG_TRANSPARENT_INPUTS_MODIFIABLE
            -17    | FLAG_TRANSPARENT_OUTPUTS_MODIFIABLE
            -18    | FLAG_SHIELDED_MODIFIABLE;
            -19
            -20const ORCHARD_SPENDS_AND_OUTPUTS_ENABLED: u8 = 0b0000_0011;
            +15use zcash_protocol::constants::{V5_TX_VERSION, V5_VERSION_GROUP_ID};
            +16
            +17/// Initial flags allowing any modification.
            +18const INITIAL_TX_MODIFIABLE: u8 = FLAG_TRANSPARENT_INPUTS_MODIFIABLE
            +19    | FLAG_TRANSPARENT_OUTPUTS_MODIFIABLE
            +20    | FLAG_SHIELDED_MODIFIABLE;
             21
            -22pub struct Creator {
            -23    tx_version: u32,
            -24    version_group_id: u32,
            -25    consensus_branch_id: u32,
            -26    fallback_lock_time: Option<u32>,
            -27    expiry_height: u32,
            -28    coin_type: u32,
            -29    orchard_flags: u8,
            -30    sapling_anchor: [u8; 32],
            -31    orchard_anchor: [u8; 32],
            -32}
            -33
            -34impl Creator {
            -35    pub fn new(
            -36        consensus_branch_id: u32,
            -37        expiry_height: u32,
            -38        coin_type: u32,
            -39        sapling_anchor: [u8; 32],
            -40        orchard_anchor: [u8; 32],
            -41    ) -> Self {
            -42        Self {
            -43            // Default to v5 transaction format.
            -44            tx_version: V5_TX_VERSION,
            -45            version_group_id: V5_VERSION_GROUP_ID,
            -46            consensus_branch_id,
            -47            fallback_lock_time: None,
            -48            expiry_height,
            -49            coin_type,
            -50            orchard_flags: ORCHARD_SPENDS_AND_OUTPUTS_ENABLED,
            -51            sapling_anchor,
            -52            orchard_anchor,
            -53        }
            -54    }
            -55
            -56    pub fn with_fallback_lock_time(mut self, fallback: u32) -> Self {
            -57        self.fallback_lock_time = Some(fallback);
            -58        self
            -59    }
            -60
            -61    #[cfg(feature = "orchard")]
            -62    pub fn with_orchard_flags(mut self, orchard_flags: orchard::bundle::Flags) -> Self {
            -63        self.orchard_flags = orchard_flags.to_byte();
            -64        self
            -65    }
            -66
            -67    pub fn build(self) -> Pczt {
            -68        Pczt {
            -69            global: crate::common::Global {
            -70                tx_version: self.tx_version,
            -71                version_group_id: self.version_group_id,
            -72                consensus_branch_id: self.consensus_branch_id,
            -73                fallback_lock_time: self.fallback_lock_time,
            -74                expiry_height: self.expiry_height,
            -75                coin_type: self.coin_type,
            -76                tx_modifiable: INITIAL_TX_MODIFIABLE,
            -77                proprietary: BTreeMap::new(),
            -78            },
            -79            transparent: crate::transparent::Bundle {
            -80                inputs: vec![],
            -81                outputs: vec![],
            -82            },
            -83            sapling: crate::sapling::Bundle {
            -84                spends: vec![],
            -85                outputs: vec![],
            -86                value_sum: 0,
            -87                anchor: self.sapling_anchor,
            -88                bsk: None,
            -89            },
            -90            orchard: crate::orchard::Bundle {
            -91                actions: vec![],
            -92                flags: self.orchard_flags,
            -93                value_sum: (0, true),
            -94                anchor: self.orchard_anchor,
            -95                zkproof: None,
            -96                bsk: None,
            -97            },
            -98        }
            -99    }
            -100
            -101    /// Builds a PCZT from the output of a [`Builder`].
            -102    ///
            -103    /// Returns `None` if the `TxVersion` is incompatible with PCZTs.
            +22const ORCHARD_SPENDS_AND_OUTPUTS_ENABLED: u8 = 0b0000_0011;
            +23
            +24pub struct Creator {
            +25    tx_version: u32,
            +26    version_group_id: u32,
            +27    consensus_branch_id: u32,
            +28    fallback_lock_time: Option<u32>,
            +29    expiry_height: u32,
            +30    coin_type: u32,
            +31    orchard_flags: u8,
            +32    sapling_anchor: [u8; 32],
            +33    orchard_anchor: [u8; 32],
            +34}
            +35
            +36impl Creator {
            +37    pub fn new(
            +38        consensus_branch_id: u32,
            +39        expiry_height: u32,
            +40        coin_type: u32,
            +41        sapling_anchor: [u8; 32],
            +42        orchard_anchor: [u8; 32],
            +43    ) -> Self {
            +44        Self {
            +45            // Default to v5 transaction format.
            +46            tx_version: V5_TX_VERSION,
            +47            version_group_id: V5_VERSION_GROUP_ID,
            +48            consensus_branch_id,
            +49            fallback_lock_time: None,
            +50            expiry_height,
            +51            coin_type,
            +52            orchard_flags: ORCHARD_SPENDS_AND_OUTPUTS_ENABLED,
            +53            sapling_anchor,
            +54            orchard_anchor,
            +55        }
            +56    }
            +57
            +58    pub fn with_fallback_lock_time(mut self, fallback: u32) -> Self {
            +59        self.fallback_lock_time = Some(fallback);
            +60        self
            +61    }
            +62
            +63    #[cfg(feature = "orchard")]
            +64    pub fn with_orchard_flags(mut self, orchard_flags: orchard::bundle::Flags) -> Self {
            +65        self.orchard_flags = orchard_flags.to_byte();
            +66        self
            +67    }
            +68
            +69    pub fn build(self) -> Pczt {
            +70        Pczt {
            +71            global: crate::common::Global {
            +72                tx_version: self.tx_version,
            +73                version_group_id: self.version_group_id,
            +74                consensus_branch_id: self.consensus_branch_id,
            +75                fallback_lock_time: self.fallback_lock_time,
            +76                expiry_height: self.expiry_height,
            +77                coin_type: self.coin_type,
            +78                tx_modifiable: INITIAL_TX_MODIFIABLE,
            +79                proprietary: BTreeMap::new(),
            +80            },
            +81            transparent: crate::transparent::Bundle {
            +82                inputs: vec![],
            +83                outputs: vec![],
            +84            },
            +85            sapling: crate::sapling::Bundle {
            +86                spends: vec![],
            +87                outputs: vec![],
            +88                value_sum: 0,
            +89                anchor: self.sapling_anchor,
            +90                bsk: None,
            +91            },
            +92            orchard: crate::orchard::Bundle {
            +93                actions: vec![],
            +94                flags: self.orchard_flags,
            +95                value_sum: (0, true),
            +96                anchor: self.orchard_anchor,
            +97                zkproof: None,
            +98                bsk: None,
            +99            },
            +100        }
            +101    }
            +102
            +103    /// Builds a PCZT from the output of a [`Builder`].
             104    ///
            -105    /// [`Builder`]: zcash_primitives::transaction::builder::Builder
            -106    #[cfg(feature = "zcp-builder")]
            -107    pub fn build_from_parts<P: zcash_protocol::consensus::Parameters>(
            -108        parts: zcash_primitives::transaction::builder::PcztParts<P>,
            -109    ) -> Option<Pczt> {
            -110        use ::transparent::sighash::{SIGHASH_ANYONECANPAY, SIGHASH_SINGLE};
            -111        use zcash_protocol::consensus::NetworkConstants;
            -112
            -113        use crate::{common::FLAG_HAS_SIGHASH_SINGLE, SAPLING_TX_VERSION};
            +105    /// Returns `None` if the `TxVersion` is incompatible with PCZTs.
            +106    ///
            +107    /// [`Builder`]: zcash_primitives::transaction::builder::Builder
            +108    #[cfg(feature = "zcp-builder")]
            +109    pub fn build_from_parts<P: zcash_protocol::consensus::Parameters>(
            +110        parts: zcash_primitives::transaction::builder::PcztParts<P>,
            +111    ) -> Option<Pczt> {
            +112        use ::transparent::sighash::{SIGHASH_ANYONECANPAY, SIGHASH_SINGLE};
            +113        use zcash_protocol::{consensus::NetworkConstants, constants::V4_TX_VERSION};
             114
            -115        let tx_version = match parts.version {
            -116            zcash_primitives::transaction::TxVersion::Sprout(_)
            -117            | zcash_primitives::transaction::TxVersion::Overwinter => None,
            -118            zcash_primitives::transaction::TxVersion::Sapling => Some(SAPLING_TX_VERSION),
            -119            zcash_primitives::transaction::TxVersion::Zip225 => Some(V5_TX_VERSION),
            -120            #[cfg(zcash_unstable = "zfuture")]
            -121            zcash_primitives::transaction::TxVersion::ZFuture => None,
            -122        }?;
            -123
            -124        // Spends and outputs not modifiable.
            -125        let mut tx_modifiable = 0b0000_0000;
            -126        // Check if any input is using `SIGHASH_SINGLE` (with or without `ANYONECANPAY`).
            -127        if parts.transparent.as_ref().is_some_and(|bundle| {
            -128            bundle.inputs().iter().any(|input| {
            -129                (input.sighash_type().encode() & !SIGHASH_ANYONECANPAY) == SIGHASH_SINGLE
            -130            })
            -131        }) {
            -132            tx_modifiable |= FLAG_HAS_SIGHASH_SINGLE;
            -133        }
            -134
            -135        Some(Pczt {
            -136            global: crate::common::Global {
            -137                tx_version,
            -138                version_group_id: parts.version.version_group_id(),
            -139                consensus_branch_id: parts.consensus_branch_id.into(),
            -140                fallback_lock_time: Some(parts.lock_time),
            -141                expiry_height: parts.expiry_height.into(),
            -142                coin_type: parts.params.network_type().coin_type(),
            -143                tx_modifiable,
            -144                proprietary: BTreeMap::new(),
            -145            },
            -146            transparent: parts
            -147                .transparent
            -148                .map(crate::transparent::Bundle::serialize_from)
            -149                .unwrap_or_else(|| crate::transparent::Bundle {
            -150                    inputs: vec![],
            -151                    outputs: vec![],
            -152                }),
            -153            sapling: parts
            -154                .sapling
            -155                .map(crate::sapling::Bundle::serialize_from)
            -156                .unwrap_or_else(|| crate::sapling::Bundle {
            -157                    spends: vec![],
            +115        use crate::common::FLAG_HAS_SIGHASH_SINGLE;
            +116
            +117        #[cfg(zcash_unstable = "nu7")]
            +118        use zcash_protocol::constants::V6_TX_VERSION;
            +119
            +120        let tx_version = match parts.version {
            +121            zcash_primitives::transaction::TxVersion::Sprout(_)
            +122            | zcash_primitives::transaction::TxVersion::V3 => None,
            +123            zcash_primitives::transaction::TxVersion::V4 => Some(V4_TX_VERSION),
            +124            zcash_primitives::transaction::TxVersion::V5 => Some(V5_TX_VERSION),
            +125            #[cfg(zcash_unstable = "nu7")]
            +126            zcash_primitives::transaction::TxVersion::V6 => Some(V6_TX_VERSION),
            +127            #[cfg(zcash_unstable = "zfuture")]
            +128            zcash_primitives::transaction::TxVersion::ZFuture => None,
            +129        }?;
            +130
            +131        // Spends and outputs not modifiable.
            +132        let mut tx_modifiable = 0b0000_0000;
            +133        // Check if any input is using `SIGHASH_SINGLE` (with or without `ANYONECANPAY`).
            +134        if parts.transparent.as_ref().is_some_and(|bundle| {
            +135            bundle.inputs().iter().any(|input| {
            +136                (input.sighash_type().encode() & !SIGHASH_ANYONECANPAY) == SIGHASH_SINGLE
            +137            })
            +138        }) {
            +139            tx_modifiable |= FLAG_HAS_SIGHASH_SINGLE;
            +140        }
            +141
            +142        Some(Pczt {
            +143            global: crate::common::Global {
            +144                tx_version,
            +145                version_group_id: parts.version.version_group_id(),
            +146                consensus_branch_id: parts.consensus_branch_id.into(),
            +147                fallback_lock_time: Some(parts.lock_time),
            +148                expiry_height: parts.expiry_height.into(),
            +149                coin_type: parts.params.network_type().coin_type(),
            +150                tx_modifiable,
            +151                proprietary: BTreeMap::new(),
            +152            },
            +153            transparent: parts
            +154                .transparent
            +155                .map(crate::transparent::Bundle::serialize_from)
            +156                .unwrap_or_else(|| crate::transparent::Bundle {
            +157                    inputs: vec![],
             158                    outputs: vec![],
            -159                    value_sum: 0,
            -160                    anchor: sapling::Anchor::empty_tree().to_bytes(),
            -161                    bsk: None,
            -162                }),
            -163            orchard: parts
            -164                .orchard
            -165                .map(crate::orchard::Bundle::serialize_from)
            -166                .unwrap_or_else(|| crate::orchard::Bundle {
            -167                    actions: vec![],
            -168                    flags: ORCHARD_SPENDS_AND_OUTPUTS_ENABLED,
            -169                    value_sum: (0, true),
            -170                    anchor: orchard::Anchor::empty_tree().to_bytes(),
            -171                    zkproof: None,
            -172                    bsk: None,
            -173                }),
            -174        })
            -175    }
            -176}
            \ No newline at end of file +159 }), +160 sapling: parts +161 .sapling +162 .map(crate::sapling::Bundle::serialize_from) +163 .unwrap_or_else(|| crate::sapling::Bundle { +164 spends: vec![], +165 outputs: vec![], +166 value_sum: 0, +167 anchor: sapling::Anchor::empty_tree().to_bytes(), +168 bsk: None, +169 }), +170 orchard: parts +171 .orchard +172 .map(crate::orchard::Bundle::serialize_from) +173 .unwrap_or_else(|| crate::orchard::Bundle { +174 actions: vec![], +175 flags: ORCHARD_SPENDS_AND_OUTPUTS_ENABLED, +176 value_sum: (0, true), +177 anchor: orchard::Anchor::empty_tree().to_bytes(), +178 zkproof: None, +179 bsk: None, +180 }), +181 }) +182 } +183}
            \ No newline at end of file diff --git a/rustdoc/latest/src/pczt/roles/low_level_signer/mod.rs.html b/rustdoc/latest/src/pczt/roles/low_level_signer/mod.rs.html index 5aba89fcb..d0f9cad15 100644 --- a/rustdoc/latest/src/pczt/roles/low_level_signer/mod.rs.html +++ b/rustdoc/latest/src/pczt/roles/low_level_signer/mod.rs.html @@ -1,4 +1,4 @@ -mod.rs - source

            pczt/roles/low_level_signer/
            mod.rs

            1//! A low-level variant of the Signer role, for dependency-constrained environments.
            +mod.rs - source

            pczt/roles/low_level_signer/
            mod.rs

            1//! A low-level variant of the Signer role, for dependency-constrained environments.
             2
             3use crate::Pczt;
             4
            diff --git a/rustdoc/latest/src/pczt/roles/redactor/mod.rs.html b/rustdoc/latest/src/pczt/roles/redactor/mod.rs.html
            index 483d9ebfd..30b0feb05 100644
            --- a/rustdoc/latest/src/pczt/roles/redactor/mod.rs.html
            +++ b/rustdoc/latest/src/pczt/roles/redactor/mod.rs.html
            @@ -1,4 +1,4 @@
            -mod.rs - source

            pczt/roles/redactor/
            mod.rs

            1//! The Redactor role (anyone can execute).
            +mod.rs - source

            pczt/roles/redactor/
            mod.rs

            1//! The Redactor role (anyone can execute).
             2//!
             3//! - Removes information that is unnecessary for subsequent entities to proceed.
             4//! - This can be useful e.g. when creating a transaction that has inputs from multiple
            diff --git a/rustdoc/latest/src/pczt/roles/redactor/orchard.rs.html b/rustdoc/latest/src/pczt/roles/redactor/orchard.rs.html
            index 865273795..dcc07d385 100644
            --- a/rustdoc/latest/src/pczt/roles/redactor/orchard.rs.html
            +++ b/rustdoc/latest/src/pczt/roles/redactor/orchard.rs.html
            @@ -1,4 +1,4 @@
            -orchard.rs - source

            pczt/roles/redactor/
            orchard.rs

            1use crate::orchard::{Action, Bundle};
            +orchard.rs - source

            pczt/roles/redactor/
            orchard.rs

            1use crate::orchard::{Action, Bundle};
             2
             3impl super::Redactor {
             4    /// Redacts the Orchard bundle with the given closure.
            diff --git a/rustdoc/latest/src/pczt/roles/redactor/sapling.rs.html b/rustdoc/latest/src/pczt/roles/redactor/sapling.rs.html
            index 09fd39eef..3e60b5b95 100644
            --- a/rustdoc/latest/src/pczt/roles/redactor/sapling.rs.html
            +++ b/rustdoc/latest/src/pczt/roles/redactor/sapling.rs.html
            @@ -1,4 +1,4 @@
            -sapling.rs - source

            pczt/roles/redactor/
            sapling.rs

            1use crate::sapling::{Bundle, Output, Spend};
            +sapling.rs - source

            pczt/roles/redactor/
            sapling.rs

            1use crate::sapling::{Bundle, Output, Spend};
             2
             3impl super::Redactor {
             4    /// Redacts the Sapling bundle with the given closure.
            diff --git a/rustdoc/latest/src/pczt/roles/redactor/transparent.rs.html b/rustdoc/latest/src/pczt/roles/redactor/transparent.rs.html
            index e06bc35b8..7703e119b 100644
            --- a/rustdoc/latest/src/pczt/roles/redactor/transparent.rs.html
            +++ b/rustdoc/latest/src/pczt/roles/redactor/transparent.rs.html
            @@ -1,4 +1,4 @@
            -transparent.rs - source

            pczt/roles/redactor/
            transparent.rs

            1use crate::transparent::{Bundle, Input, Output};
            +transparent.rs - source

            pczt/roles/redactor/
            transparent.rs

            1use crate::transparent::{Bundle, Input, Output};
             2
             3impl super::Redactor {
             4    /// Redacts the transparent bundle with the given closure.
            diff --git a/rustdoc/latest/src/pczt/roles/updater/mod.rs.html b/rustdoc/latest/src/pczt/roles/updater/mod.rs.html
            index ac286dd20..b2faf599e 100644
            --- a/rustdoc/latest/src/pczt/roles/updater/mod.rs.html
            +++ b/rustdoc/latest/src/pczt/roles/updater/mod.rs.html
            @@ -1,4 +1,4 @@
            -mod.rs - source

            pczt/roles/updater/
            mod.rs

            1//! The Updater role (anyone can contribute).
            +mod.rs - source

            pczt/roles/updater/
            mod.rs

            1//! The Updater role (anyone can contribute).
             2//!
             3//! - Adds information necessary for subsequent entities to proceed, such as key paths
             4//!   for signing spends.
            diff --git a/rustdoc/latest/src/pczt/roles/updater/orchard.rs.html b/rustdoc/latest/src/pczt/roles/updater/orchard.rs.html
            index b395ea1cd..d12c20262 100644
            --- a/rustdoc/latest/src/pczt/roles/updater/orchard.rs.html
            +++ b/rustdoc/latest/src/pczt/roles/updater/orchard.rs.html
            @@ -1,4 +1,4 @@
            -orchard.rs - source

            pczt/roles/updater/
            orchard.rs

            1use orchard::pczt::{ParseError, Updater, UpdaterError};
            +orchard.rs - source

            pczt/roles/updater/
            orchard.rs

            1use orchard::pczt::{ParseError, Updater, UpdaterError};
             2
             3use crate::Pczt;
             4
            diff --git a/rustdoc/latest/src/pczt/roles/verifier/mod.rs.html b/rustdoc/latest/src/pczt/roles/verifier/mod.rs.html
            index a8717de4f..14a940807 100644
            --- a/rustdoc/latest/src/pczt/roles/verifier/mod.rs.html
            +++ b/rustdoc/latest/src/pczt/roles/verifier/mod.rs.html
            @@ -1,4 +1,4 @@
            -mod.rs - source

            pczt/roles/verifier/
            mod.rs

            1//! The Verifier role (anyone can inspect).
            +mod.rs - source

            pczt/roles/verifier/
            mod.rs

            1//! The Verifier role (anyone can inspect).
             2//!
             3//! This isn't a real role per se; it's instead a way for accessing the parsed
             4//! protocol-specific bundles for individual access and verification.
            diff --git a/rustdoc/latest/src/pczt/roles/verifier/orchard.rs.html b/rustdoc/latest/src/pczt/roles/verifier/orchard.rs.html
            index 44dc94dbe..be0fbc288 100644
            --- a/rustdoc/latest/src/pczt/roles/verifier/orchard.rs.html
            +++ b/rustdoc/latest/src/pczt/roles/verifier/orchard.rs.html
            @@ -1,4 +1,4 @@
            -orchard.rs - source

            pczt/roles/verifier/
            orchard.rs

            1use crate::Pczt;
            +orchard.rs - source

            pczt/roles/verifier/
            orchard.rs

            1use crate::Pczt;
             2
             3impl super::Verifier {
             4    /// Parses the Orchard bundle and then verifies it in the given closure.
            diff --git a/rustdoc/latest/src/pczt/sapling.rs.html b/rustdoc/latest/src/pczt/sapling.rs.html
            index 1df1ca8b2..07a3717dd 100644
            --- a/rustdoc/latest/src/pczt/sapling.rs.html
            +++ b/rustdoc/latest/src/pczt/sapling.rs.html
            @@ -1,4 +1,4 @@
            -sapling.rs - source

            pczt/
            sapling.rs

            1//! The Sapling fields of a PCZT.
            +sapling.rs - source

            pczt/
            sapling.rs

            1//! The Sapling fields of a PCZT.
             2
             3use alloc::collections::BTreeMap;
             4use alloc::string::String;
            diff --git a/rustdoc/latest/src/pczt/transparent.rs.html b/rustdoc/latest/src/pczt/transparent.rs.html
            index 5d792ece4..01150c70b 100644
            --- a/rustdoc/latest/src/pczt/transparent.rs.html
            +++ b/rustdoc/latest/src/pczt/transparent.rs.html
            @@ -1,4 +1,4 @@
            -transparent.rs - source

            pczt/
            transparent.rs

            1//! The transparent fields of a PCZT.
            +transparent.rs - source

            pczt/
            transparent.rs

            1//! The transparent fields of a PCZT.
             2
             3use alloc::collections::BTreeMap;
             4use alloc::string::String;
            diff --git a/rustdoc/latest/src/zcash/lib.rs.html b/rustdoc/latest/src/zcash/lib.rs.html
            index 11772577c..b45011f70 100644
            --- a/rustdoc/latest/src/zcash/lib.rs.html
            +++ b/rustdoc/latest/src/zcash/lib.rs.html
            @@ -1,4 +1,4 @@
            -lib.rs - source

            zcash/
            lib.rs

            1//! *Zcash Rust APIs.*
            +lib.rs - source

            zcash/
            lib.rs

            1//! *Zcash Rust APIs.*
             2//!
             3//! ## Feature flags
             4#![doc = document_features::document_features!()]
            diff --git a/rustdoc/latest/src/zcash_address/convert.rs.html b/rustdoc/latest/src/zcash_address/convert.rs.html
            index 10016fe1d..f388bc47e 100644
            --- a/rustdoc/latest/src/zcash_address/convert.rs.html
            +++ b/rustdoc/latest/src/zcash_address/convert.rs.html
            @@ -1,4 +1,4 @@
            -convert.rs - source

            zcash_address/
            convert.rs

            1use core::fmt;
            +convert.rs - source

            zcash_address/
            convert.rs

            1use core::fmt;
             2
             3#[cfg(feature = "std")]
             4use std::error::Error;
            diff --git a/rustdoc/latest/src/zcash_address/encoding.rs.html b/rustdoc/latest/src/zcash_address/encoding.rs.html
            index 959888115..678b40a5b 100644
            --- a/rustdoc/latest/src/zcash_address/encoding.rs.html
            +++ b/rustdoc/latest/src/zcash_address/encoding.rs.html
            @@ -1,4 +1,4 @@
            -encoding.rs - source

            zcash_address/
            encoding.rs

            1use alloc::string::String;
            +encoding.rs - source

            zcash_address/
            encoding.rs

            1use alloc::string::String;
             2use alloc::vec::Vec;
             3use core::convert::TryInto;
             4use core::fmt;
            diff --git a/rustdoc/latest/src/zcash_address/kind.rs.html b/rustdoc/latest/src/zcash_address/kind.rs.html
            index 30cacf8fb..5791e72fd 100644
            --- a/rustdoc/latest/src/zcash_address/kind.rs.html
            +++ b/rustdoc/latest/src/zcash_address/kind.rs.html
            @@ -1 +1 @@
            -kind.rs - source

            zcash_address/
            kind.rs

            1pub mod unified;
            \ No newline at end of file +kind.rs - source

            zcash_address/
            kind.rs

            1pub mod unified;
            \ No newline at end of file diff --git a/rustdoc/latest/src/zcash_address/kind/unified.rs.html b/rustdoc/latest/src/zcash_address/kind/unified.rs.html index 2a264dbe3..8d2d2e895 100644 --- a/rustdoc/latest/src/zcash_address/kind/unified.rs.html +++ b/rustdoc/latest/src/zcash_address/kind/unified.rs.html @@ -1,4 +1,4 @@ -unified.rs - source

            zcash_address/kind/
            unified.rs

            1//! Implementation of [ZIP 316](https://zips.z.cash/zip-0316) Unified Addresses and Viewing Keys.
            +unified.rs - source

            zcash_address/kind/
            unified.rs

            1//! Implementation of [ZIP 316](https://zips.z.cash/zip-0316) Unified Addresses and Viewing Keys.
             2
             3use alloc::string::{String, ToString};
             4use alloc::vec::Vec;
            diff --git a/rustdoc/latest/src/zcash_address/kind/unified/address.rs.html b/rustdoc/latest/src/zcash_address/kind/unified/address.rs.html
            index 13529a6cf..5abae468a 100644
            --- a/rustdoc/latest/src/zcash_address/kind/unified/address.rs.html
            +++ b/rustdoc/latest/src/zcash_address/kind/unified/address.rs.html
            @@ -1,4 +1,4 @@
            -address.rs - source

            zcash_address/kind/unified/
            address.rs

            1use zcash_protocol::{constants, PoolType};
            +address.rs - source

            zcash_address/kind/unified/
            address.rs

            1use zcash_protocol::{constants, PoolType};
             2
             3use super::{private::SealedItem, ParseError, Typecode};
             4
            diff --git a/rustdoc/latest/src/zcash_address/kind/unified/address/test_vectors.rs.html b/rustdoc/latest/src/zcash_address/kind/unified/address/test_vectors.rs.html
            index c0ac4410f..b484e4063 100644
            --- a/rustdoc/latest/src/zcash_address/kind/unified/address/test_vectors.rs.html
            +++ b/rustdoc/latest/src/zcash_address/kind/unified/address/test_vectors.rs.html
            @@ -1,4 +1,4 @@
            -test_vectors.rs - source

            zcash_address/kind/unified/address/
            test_vectors.rs

            1pub struct TestVector {
            +test_vectors.rs - source

            zcash_address/kind/unified/address/
            test_vectors.rs

            1pub struct TestVector {
             2    pub p2pkh_bytes: Option<[u8; 20]>,
             3    pub p2sh_bytes: Option<[u8; 20]>,
             4    pub sapling_raw_addr: Option<[u8; 43]>,
            diff --git a/rustdoc/latest/src/zcash_address/kind/unified/fvk.rs.html b/rustdoc/latest/src/zcash_address/kind/unified/fvk.rs.html
            index c0b0ff100..7e0d18607 100644
            --- a/rustdoc/latest/src/zcash_address/kind/unified/fvk.rs.html
            +++ b/rustdoc/latest/src/zcash_address/kind/unified/fvk.rs.html
            @@ -1,4 +1,4 @@
            -fvk.rs - source

            zcash_address/kind/unified/
            fvk.rs

            1use alloc::vec::Vec;
            +fvk.rs - source

            zcash_address/kind/unified/
            fvk.rs

            1use alloc::vec::Vec;
             2use core::convert::{TryFrom, TryInto};
             3use zcash_protocol::constants;
             4
            diff --git a/rustdoc/latest/src/zcash_address/kind/unified/ivk.rs.html b/rustdoc/latest/src/zcash_address/kind/unified/ivk.rs.html
            index 284078aa8..1ae947f60 100644
            --- a/rustdoc/latest/src/zcash_address/kind/unified/ivk.rs.html
            +++ b/rustdoc/latest/src/zcash_address/kind/unified/ivk.rs.html
            @@ -1,4 +1,4 @@
            -ivk.rs - source

            zcash_address/kind/unified/
            ivk.rs

            1use alloc::vec::Vec;
            +ivk.rs - source

            zcash_address/kind/unified/
            ivk.rs

            1use alloc::vec::Vec;
             2use core::convert::{TryFrom, TryInto};
             3use zcash_protocol::constants;
             4
            diff --git a/rustdoc/latest/src/zcash_address/lib.rs.html b/rustdoc/latest/src/zcash_address/lib.rs.html
            index 90a9521dd..387181115 100644
            --- a/rustdoc/latest/src/zcash_address/lib.rs.html
            +++ b/rustdoc/latest/src/zcash_address/lib.rs.html
            @@ -1,4 +1,4 @@
            -lib.rs - source

            zcash_address/
            lib.rs

            1//! *Parser for all defined Zcash address types.*
            +lib.rs - source

            zcash_address/
            lib.rs

            1//! *Parser for all defined Zcash address types.*
             2//!
             3//! This crate implements address parsing as a two-phase process, built around the opaque
             4//! [`ZcashAddress`] type.
            diff --git a/rustdoc/latest/src/zcash_address/test_vectors.rs.html b/rustdoc/latest/src/zcash_address/test_vectors.rs.html
            index 54bce1ac7..556383f91 100644
            --- a/rustdoc/latest/src/zcash_address/test_vectors.rs.html
            +++ b/rustdoc/latest/src/zcash_address/test_vectors.rs.html
            @@ -1,4 +1,4 @@
            -test_vectors.rs - source

            zcash_address/
            test_vectors.rs

            1/// Export test vectors for reuse by implementers of address parsing libraries.
            +test_vectors.rs - source

            zcash_address/
            test_vectors.rs

            1/// Export test vectors for reuse by implementers of address parsing libraries.
             2#[cfg(feature = "test-dependencies")]
             3pub use crate::unified::address::test_vectors::TEST_VECTORS as UNIFIED;
             4
            diff --git a/rustdoc/latest/src/zcash_client_backend/data_api.rs.html b/rustdoc/latest/src/zcash_client_backend/data_api.rs.html
            index 903837c3d..ee5c128a4 100644
            --- a/rustdoc/latest/src/zcash_client_backend/data_api.rs.html
            +++ b/rustdoc/latest/src/zcash_client_backend/data_api.rs.html
            @@ -1,4 +1,4 @@
            -data_api.rs - source

            zcash_client_backend/
            data_api.rs

            1//! # Utilities for Zcash wallet construction
            +data_api.rs - source

            zcash_client_backend/
            data_api.rs

            1//! # Utilities for Zcash wallet construction
             2//!
             3//! This module defines a set of APIs for wallet data persistence, and provides a suite of methods
             4//! based upon these APIs that can be used to implement a fully functional Zcash wallet. At
            diff --git a/rustdoc/latest/src/zcash_client_backend/data_api/chain.rs.html b/rustdoc/latest/src/zcash_client_backend/data_api/chain.rs.html
            index 1be50481f..ceebd1896 100644
            --- a/rustdoc/latest/src/zcash_client_backend/data_api/chain.rs.html
            +++ b/rustdoc/latest/src/zcash_client_backend/data_api/chain.rs.html
            @@ -1,4 +1,4 @@
            -chain.rs - source

            zcash_client_backend/data_api/
            chain.rs

            1#![allow(clippy::needless_doctest_main)]
            +chain.rs - source

            zcash_client_backend/data_api/
            chain.rs

            1#![allow(clippy::needless_doctest_main)]
             2//! Tools for blockchain validation & scanning
             3//!
             4//! # Examples
            diff --git a/rustdoc/latest/src/zcash_client_backend/data_api/chain/error.rs.html b/rustdoc/latest/src/zcash_client_backend/data_api/chain/error.rs.html
            index e5412966d..09f470ab3 100644
            --- a/rustdoc/latest/src/zcash_client_backend/data_api/chain/error.rs.html
            +++ b/rustdoc/latest/src/zcash_client_backend/data_api/chain/error.rs.html
            @@ -1,4 +1,4 @@
            -error.rs - source

            zcash_client_backend/data_api/chain/
            error.rs

            1//! Types for chain scanning error handling.
            +error.rs - source

            zcash_client_backend/data_api/chain/
            error.rs

            1//! Types for chain scanning error handling.
             2
             3use std::error;
             4use std::fmt::{self, Debug, Display};
            diff --git a/rustdoc/latest/src/zcash_client_backend/data_api/error.rs.html b/rustdoc/latest/src/zcash_client_backend/data_api/error.rs.html
            index 91ac93d5e..26f5a8016 100644
            --- a/rustdoc/latest/src/zcash_client_backend/data_api/error.rs.html
            +++ b/rustdoc/latest/src/zcash_client_backend/data_api/error.rs.html
            @@ -1,4 +1,4 @@
            -error.rs - source

            zcash_client_backend/data_api/
            error.rs

            1//! Types for wallet error handling.
            +error.rs - source

            zcash_client_backend/data_api/
            error.rs

            1//! Types for wallet error handling.
             2
             3use std::error;
             4use std::fmt::{self, Debug, Display};
            diff --git a/rustdoc/latest/src/zcash_client_backend/data_api/scanning.rs.html b/rustdoc/latest/src/zcash_client_backend/data_api/scanning.rs.html
            index 62716412b..0a1df6399 100644
            --- a/rustdoc/latest/src/zcash_client_backend/data_api/scanning.rs.html
            +++ b/rustdoc/latest/src/zcash_client_backend/data_api/scanning.rs.html
            @@ -1,4 +1,4 @@
            -scanning.rs - source

            zcash_client_backend/data_api/
            scanning.rs

            1//! Common types used for managing a queue of scanning ranges.
            +scanning.rs - source

            zcash_client_backend/data_api/
            scanning.rs

            1//! Common types used for managing a queue of scanning ranges.
             2
             3use std::fmt;
             4use std::ops::Range;
            diff --git a/rustdoc/latest/src/zcash_client_backend/data_api/scanning/spanning_tree.rs.html b/rustdoc/latest/src/zcash_client_backend/data_api/scanning/spanning_tree.rs.html
            index 24267a20f..e496099e5 100644
            --- a/rustdoc/latest/src/zcash_client_backend/data_api/scanning/spanning_tree.rs.html
            +++ b/rustdoc/latest/src/zcash_client_backend/data_api/scanning/spanning_tree.rs.html
            @@ -1,4 +1,4 @@
            -spanning_tree.rs - source

            zcash_client_backend/data_api/scanning/
            spanning_tree.rs

            1use std::cmp::{max, Ordering};
            +spanning_tree.rs - source

            zcash_client_backend/data_api/scanning/
            spanning_tree.rs

            1use std::cmp::{max, Ordering};
             2use std::ops::{Not, Range};
             3
             4use zcash_protocol::consensus::BlockHeight;
            diff --git a/rustdoc/latest/src/zcash_client_backend/data_api/testing.rs.html b/rustdoc/latest/src/zcash_client_backend/data_api/testing.rs.html
            index b09957fb4..c5c64c127 100644
            --- a/rustdoc/latest/src/zcash_client_backend/data_api/testing.rs.html
            +++ b/rustdoc/latest/src/zcash_client_backend/data_api/testing.rs.html
            @@ -1,4 +1,4 @@
            -testing.rs - source

            zcash_client_backend/data_api/
            testing.rs

            1//! Utilities for testing wallets based upon the [`crate::data_api`] traits.
            +testing.rs - source

            zcash_client_backend/data_api/
            testing.rs

            1//! Utilities for testing wallets based upon the [`crate::data_api`] traits.
             2
             3use std::{
             4    collections::{BTreeMap, HashMap},
            @@ -1396,1504 +1396,1506 @@
             1396        canopy: Some(BlockHeight::from_u32(100_000)),
             1397        nu5: Some(BlockHeight::from_u32(100_000)),
             1398        nu6: None,
            -1399        #[cfg(zcash_unstable = "zfuture")]
            -1400        z_future: None,
            -1401    };
            -1402
            -1403    /// Constructs a new test environment builder.
            -1404    pub fn new() -> Self {
            -1405        TestBuilder {
            -1406            rng: ChaChaRng::seed_from_u64(0),
            -1407            network: Self::DEFAULT_NETWORK,
            -1408            cache: (),
            -1409            ds_factory: (),
            -1410            initial_chain_state: None,
            -1411            account_birthday: None,
            -1412            account_index: None,
            -1413            #[cfg(feature = "transparent-inputs")]
            -1414            gap_limits: GapLimits::new(10, 5, 5),
            -1415        }
            -1416    }
            -1417}
            -1418
            -1419impl Default for TestBuilder<(), ()> {
            -1420    fn default() -> Self {
            -1421        Self::new()
            -1422    }
            -1423}
            -1424
            -1425impl<A> TestBuilder<(), A> {
            -1426    /// Adds a block cache to the test environment.
            -1427    pub fn with_block_cache<C: TestCache>(self, cache: C) -> TestBuilder<C, A> {
            -1428        TestBuilder {
            -1429            rng: self.rng,
            -1430            network: self.network,
            -1431            cache,
            -1432            ds_factory: self.ds_factory,
            -1433            initial_chain_state: self.initial_chain_state,
            -1434            account_birthday: self.account_birthday,
            -1435            account_index: self.account_index,
            -1436            #[cfg(feature = "transparent-inputs")]
            -1437            gap_limits: self.gap_limits,
            -1438        }
            -1439    }
            -1440}
            -1441
            -1442impl<A> TestBuilder<A, ()> {
            -1443    /// Adds a wallet data store to the test environment.
            -1444    pub fn with_data_store_factory<DsFactory>(
            -1445        self,
            -1446        ds_factory: DsFactory,
            -1447    ) -> TestBuilder<A, DsFactory> {
            -1448        TestBuilder {
            -1449            rng: self.rng,
            -1450            network: self.network,
            -1451            cache: self.cache,
            -1452            ds_factory,
            -1453            initial_chain_state: self.initial_chain_state,
            -1454            account_birthday: self.account_birthday,
            -1455            account_index: self.account_index,
            -1456            #[cfg(feature = "transparent-inputs")]
            -1457            gap_limits: self.gap_limits,
            -1458        }
            -1459    }
            -1460}
            -1461
            -1462impl<A, B> TestBuilder<A, B> {
            -1463    #[cfg(feature = "transparent-inputs")]
            -1464    pub fn with_gap_limits(self, gap_limits: GapLimits) -> TestBuilder<A, B> {
            -1465        TestBuilder {
            -1466            rng: self.rng,
            -1467            network: self.network,
            -1468            cache: self.cache,
            -1469            ds_factory: self.ds_factory,
            -1470            initial_chain_state: self.initial_chain_state,
            -1471            account_birthday: self.account_birthday,
            -1472            account_index: self.account_index,
            -1473            gap_limits,
            -1474        }
            -1475    }
            -1476}
            -1477
            -1478impl<Cache, DsFactory> TestBuilder<Cache, DsFactory> {
            -1479    /// Configures the test to start with the given initial chain state.
            -1480    ///
            -1481    /// # Panics
            +1399        #[cfg(zcash_unstable = "nu7")]
            +1400        nu7: None,
            +1401        #[cfg(zcash_unstable = "zfuture")]
            +1402        z_future: None,
            +1403    };
            +1404
            +1405    /// Constructs a new test environment builder.
            +1406    pub fn new() -> Self {
            +1407        TestBuilder {
            +1408            rng: ChaChaRng::seed_from_u64(0),
            +1409            network: Self::DEFAULT_NETWORK,
            +1410            cache: (),
            +1411            ds_factory: (),
            +1412            initial_chain_state: None,
            +1413            account_birthday: None,
            +1414            account_index: None,
            +1415            #[cfg(feature = "transparent-inputs")]
            +1416            gap_limits: GapLimits::new(10, 5, 5),
            +1417        }
            +1418    }
            +1419}
            +1420
            +1421impl Default for TestBuilder<(), ()> {
            +1422    fn default() -> Self {
            +1423        Self::new()
            +1424    }
            +1425}
            +1426
            +1427impl<A> TestBuilder<(), A> {
            +1428    /// Adds a block cache to the test environment.
            +1429    pub fn with_block_cache<C: TestCache>(self, cache: C) -> TestBuilder<C, A> {
            +1430        TestBuilder {
            +1431            rng: self.rng,
            +1432            network: self.network,
            +1433            cache,
            +1434            ds_factory: self.ds_factory,
            +1435            initial_chain_state: self.initial_chain_state,
            +1436            account_birthday: self.account_birthday,
            +1437            account_index: self.account_index,
            +1438            #[cfg(feature = "transparent-inputs")]
            +1439            gap_limits: self.gap_limits,
            +1440        }
            +1441    }
            +1442}
            +1443
            +1444impl<A> TestBuilder<A, ()> {
            +1445    /// Adds a wallet data store to the test environment.
            +1446    pub fn with_data_store_factory<DsFactory>(
            +1447        self,
            +1448        ds_factory: DsFactory,
            +1449    ) -> TestBuilder<A, DsFactory> {
            +1450        TestBuilder {
            +1451            rng: self.rng,
            +1452            network: self.network,
            +1453            cache: self.cache,
            +1454            ds_factory,
            +1455            initial_chain_state: self.initial_chain_state,
            +1456            account_birthday: self.account_birthday,
            +1457            account_index: self.account_index,
            +1458            #[cfg(feature = "transparent-inputs")]
            +1459            gap_limits: self.gap_limits,
            +1460        }
            +1461    }
            +1462}
            +1463
            +1464impl<A, B> TestBuilder<A, B> {
            +1465    #[cfg(feature = "transparent-inputs")]
            +1466    pub fn with_gap_limits(self, gap_limits: GapLimits) -> TestBuilder<A, B> {
            +1467        TestBuilder {
            +1468            rng: self.rng,
            +1469            network: self.network,
            +1470            cache: self.cache,
            +1471            ds_factory: self.ds_factory,
            +1472            initial_chain_state: self.initial_chain_state,
            +1473            account_birthday: self.account_birthday,
            +1474            account_index: self.account_index,
            +1475            gap_limits,
            +1476        }
            +1477    }
            +1478}
            +1479
            +1480impl<Cache, DsFactory> TestBuilder<Cache, DsFactory> {
            +1481    /// Configures the test to start with the given initial chain state.
             1482    ///
            -1483    /// - Must not be called twice.
            -1484    /// - Must be called before [`Self::with_account_from_sapling_activation`] or
            -1485    ///   [`Self::with_account_having_current_birthday`].
            -1486    ///
            -1487    /// # Examples
            +1483    /// # Panics
            +1484    ///
            +1485    /// - Must not be called twice.
            +1486    /// - Must be called before [`Self::with_account_from_sapling_activation`] or
            +1487    ///   [`Self::with_account_having_current_birthday`].
             1488    ///
            -1489    /// ```
            -1490    /// use std::num::NonZeroU8;
            -1491    ///
            -1492    /// use incrementalmerkletree::frontier::Frontier;
            -1493    /// use zcash_primitives::{block::BlockHash, consensus::Parameters};
            -1494    /// use zcash_protocol::consensus::NetworkUpgrade;
            -1495    /// use zcash_client_backend::data_api::{
            -1496    ///     chain::{ChainState, CommitmentTreeRoot},
            -1497    ///     testing::{InitialChainState, TestBuilder},
            -1498    /// };
            -1499    ///
            -1500    /// // For this test, we'll start inserting leaf notes 5 notes after the end of the
            -1501    /// // third subtree, with a gap of 10 blocks. After `scan_cached_blocks`, the scan
            -1502    /// // queue should have a requested scan range of 300..310 with `FoundNote` priority,
            -1503    /// // 310..320 with `Scanned` priority. We set both Sapling and Orchard to the same
            -1504    /// // initial tree size for simplicity.
            -1505    /// let prior_block_hash = BlockHash([0; 32]);
            -1506    /// let initial_sapling_tree_size: u32 = (0x1 << 16) * 3 + 5;
            -1507    /// let initial_orchard_tree_size: u32 = (0x1 << 16) * 3 + 5;
            -1508    /// let initial_height_offset = 310;
            -1509    ///
            -1510    /// let mut st = TestBuilder::new()
            -1511    ///     .with_initial_chain_state(|rng, network| {
            -1512    ///         // For simplicity, assume Sapling and NU5 activated at the same height.
            -1513    ///         let sapling_activation_height =
            -1514    ///             network.activation_height(NetworkUpgrade::Sapling).unwrap();
            -1515    ///
            -1516    ///         // Construct a fake chain state for the end of block 300
            -1517    ///         let (prior_sapling_roots, sapling_initial_tree) =
            -1518    ///             Frontier::random_with_prior_subtree_roots(
            -1519    ///                 rng,
            -1520    ///                 initial_sapling_tree_size.into(),
            -1521    ///                 NonZeroU8::new(16).unwrap(),
            -1522    ///             );
            -1523    ///         let prior_sapling_roots = prior_sapling_roots
            -1524    ///             .into_iter()
            -1525    ///             .zip(1u32..)
            -1526    ///             .map(|(root, i)| {
            -1527    ///                 CommitmentTreeRoot::from_parts(sapling_activation_height + (100 * i), root)
            -1528    ///             })
            -1529    ///             .collect::<Vec<_>>();
            -1530    ///
            -1531    ///         #[cfg(feature = "orchard")]
            -1532    ///         let (prior_orchard_roots, orchard_initial_tree) =
            -1533    ///             Frontier::random_with_prior_subtree_roots(
            -1534    ///                 rng,
            -1535    ///                 initial_orchard_tree_size.into(),
            -1536    ///                 NonZeroU8::new(16).unwrap(),
            -1537    ///             );
            -1538    ///         #[cfg(feature = "orchard")]
            -1539    ///         let prior_orchard_roots = prior_orchard_roots
            -1540    ///             .into_iter()
            -1541    ///             .zip(1u32..)
            -1542    ///             .map(|(root, i)| {
            -1543    ///                 CommitmentTreeRoot::from_parts(sapling_activation_height + (100 * i), root)
            -1544    ///             })
            -1545    ///             .collect::<Vec<_>>();
            -1546    ///
            -1547    ///         InitialChainState {
            -1548    ///             chain_state: ChainState::new(
            -1549    ///                 sapling_activation_height + initial_height_offset - 1,
            -1550    ///                 prior_block_hash,
            -1551    ///                 sapling_initial_tree,
            -1552    ///                 #[cfg(feature = "orchard")]
            -1553    ///                 orchard_initial_tree,
            -1554    ///             ),
            -1555    ///             prior_sapling_roots,
            -1556    ///             #[cfg(feature = "orchard")]
            -1557    ///             prior_orchard_roots,
            -1558    ///         }
            -1559    ///     });
            -1560    /// ```
            -1561    pub fn with_initial_chain_state(
            -1562        mut self,
            -1563        chain_state: impl FnOnce(&mut ChaChaRng, &LocalNetwork) -> InitialChainState,
            -1564    ) -> Self {
            -1565        assert!(self.initial_chain_state.is_none());
            -1566        assert!(self.account_birthday.is_none());
            -1567        self.initial_chain_state = Some(chain_state(&mut self.rng, &self.network));
            -1568        self
            -1569    }
            -1570
            -1571    /// Configures the environment with a [`TestAccount`] that has a birthday at Sapling
            -1572    /// activation.
            -1573    ///
            -1574    /// # Panics
            +1489    /// # Examples
            +1490    ///
            +1491    /// ```
            +1492    /// use std::num::NonZeroU8;
            +1493    ///
            +1494    /// use incrementalmerkletree::frontier::Frontier;
            +1495    /// use zcash_primitives::{block::BlockHash, consensus::Parameters};
            +1496    /// use zcash_protocol::consensus::NetworkUpgrade;
            +1497    /// use zcash_client_backend::data_api::{
            +1498    ///     chain::{ChainState, CommitmentTreeRoot},
            +1499    ///     testing::{InitialChainState, TestBuilder},
            +1500    /// };
            +1501    ///
            +1502    /// // For this test, we'll start inserting leaf notes 5 notes after the end of the
            +1503    /// // third subtree, with a gap of 10 blocks. After `scan_cached_blocks`, the scan
            +1504    /// // queue should have a requested scan range of 300..310 with `FoundNote` priority,
            +1505    /// // 310..320 with `Scanned` priority. We set both Sapling and Orchard to the same
            +1506    /// // initial tree size for simplicity.
            +1507    /// let prior_block_hash = BlockHash([0; 32]);
            +1508    /// let initial_sapling_tree_size: u32 = (0x1 << 16) * 3 + 5;
            +1509    /// let initial_orchard_tree_size: u32 = (0x1 << 16) * 3 + 5;
            +1510    /// let initial_height_offset = 310;
            +1511    ///
            +1512    /// let mut st = TestBuilder::new()
            +1513    ///     .with_initial_chain_state(|rng, network| {
            +1514    ///         // For simplicity, assume Sapling and NU5 activated at the same height.
            +1515    ///         let sapling_activation_height =
            +1516    ///             network.activation_height(NetworkUpgrade::Sapling).unwrap();
            +1517    ///
            +1518    ///         // Construct a fake chain state for the end of block 300
            +1519    ///         let (prior_sapling_roots, sapling_initial_tree) =
            +1520    ///             Frontier::random_with_prior_subtree_roots(
            +1521    ///                 rng,
            +1522    ///                 initial_sapling_tree_size.into(),
            +1523    ///                 NonZeroU8::new(16).unwrap(),
            +1524    ///             );
            +1525    ///         let prior_sapling_roots = prior_sapling_roots
            +1526    ///             .into_iter()
            +1527    ///             .zip(1u32..)
            +1528    ///             .map(|(root, i)| {
            +1529    ///                 CommitmentTreeRoot::from_parts(sapling_activation_height + (100 * i), root)
            +1530    ///             })
            +1531    ///             .collect::<Vec<_>>();
            +1532    ///
            +1533    ///         #[cfg(feature = "orchard")]
            +1534    ///         let (prior_orchard_roots, orchard_initial_tree) =
            +1535    ///             Frontier::random_with_prior_subtree_roots(
            +1536    ///                 rng,
            +1537    ///                 initial_orchard_tree_size.into(),
            +1538    ///                 NonZeroU8::new(16).unwrap(),
            +1539    ///             );
            +1540    ///         #[cfg(feature = "orchard")]
            +1541    ///         let prior_orchard_roots = prior_orchard_roots
            +1542    ///             .into_iter()
            +1543    ///             .zip(1u32..)
            +1544    ///             .map(|(root, i)| {
            +1545    ///                 CommitmentTreeRoot::from_parts(sapling_activation_height + (100 * i), root)
            +1546    ///             })
            +1547    ///             .collect::<Vec<_>>();
            +1548    ///
            +1549    ///         InitialChainState {
            +1550    ///             chain_state: ChainState::new(
            +1551    ///                 sapling_activation_height + initial_height_offset - 1,
            +1552    ///                 prior_block_hash,
            +1553    ///                 sapling_initial_tree,
            +1554    ///                 #[cfg(feature = "orchard")]
            +1555    ///                 orchard_initial_tree,
            +1556    ///             ),
            +1557    ///             prior_sapling_roots,
            +1558    ///             #[cfg(feature = "orchard")]
            +1559    ///             prior_orchard_roots,
            +1560    ///         }
            +1561    ///     });
            +1562    /// ```
            +1563    pub fn with_initial_chain_state(
            +1564        mut self,
            +1565        chain_state: impl FnOnce(&mut ChaChaRng, &LocalNetwork) -> InitialChainState,
            +1566    ) -> Self {
            +1567        assert!(self.initial_chain_state.is_none());
            +1568        assert!(self.account_birthday.is_none());
            +1569        self.initial_chain_state = Some(chain_state(&mut self.rng, &self.network));
            +1570        self
            +1571    }
            +1572
            +1573    /// Configures the environment with a [`TestAccount`] that has a birthday at Sapling
            +1574    /// activation.
             1575    ///
            -1576    /// - Must not be called twice.
            -1577    /// - Do not call both [`Self::with_account_having_current_birthday`] and this method.
            -1578    pub fn with_account_from_sapling_activation(mut self, prev_hash: BlockHash) -> Self {
            -1579        assert!(self.account_birthday.is_none());
            -1580        self.account_birthday = Some(AccountBirthday::from_parts(
            -1581            ChainState::empty(
            -1582                self.network
            -1583                    .activation_height(NetworkUpgrade::Sapling)
            -1584                    .unwrap()
            -1585                    - 1,
            -1586                prev_hash,
            -1587            ),
            -1588            None,
            -1589        ));
            -1590        self
            -1591    }
            -1592
            -1593    /// Configures the environment with a [`TestAccount`] that has a birthday one block
            -1594    /// after the initial chain state.
            -1595    ///
            -1596    /// # Panics
            +1576    /// # Panics
            +1577    ///
            +1578    /// - Must not be called twice.
            +1579    /// - Do not call both [`Self::with_account_having_current_birthday`] and this method.
            +1580    pub fn with_account_from_sapling_activation(mut self, prev_hash: BlockHash) -> Self {
            +1581        assert!(self.account_birthday.is_none());
            +1582        self.account_birthday = Some(AccountBirthday::from_parts(
            +1583            ChainState::empty(
            +1584                self.network
            +1585                    .activation_height(NetworkUpgrade::Sapling)
            +1586                    .unwrap()
            +1587                    - 1,
            +1588                prev_hash,
            +1589            ),
            +1590            None,
            +1591        ));
            +1592        self
            +1593    }
            +1594
            +1595    /// Configures the environment with a [`TestAccount`] that has a birthday one block
            +1596    /// after the initial chain state.
             1597    ///
            -1598    /// - Must not be called twice.
            -1599    /// - Must call [`Self::with_initial_chain_state`] before calling this method.
            -1600    /// - Do not call both [`Self::with_account_from_sapling_activation`] and this method.
            -1601    pub fn with_account_having_current_birthday(mut self) -> Self {
            -1602        assert!(self.account_birthday.is_none());
            -1603        assert!(self.initial_chain_state.is_some());
            -1604        self.account_birthday = Some(AccountBirthday::from_parts(
            -1605            self.initial_chain_state
            -1606                .as_ref()
            -1607                .unwrap()
            -1608                .chain_state
            -1609                .clone(),
            -1610            None,
            -1611        ));
            -1612        self
            -1613    }
            -1614
            -1615    /// Sets the account index for the test account.
            -1616    ///
            -1617    /// Does nothing unless either [`Self::with_account_from_sapling_activation`] or
            -1618    /// [`Self::with_account_having_current_birthday`] is also called.
            -1619    ///
            -1620    /// # Panics
            +1598    /// # Panics
            +1599    ///
            +1600    /// - Must not be called twice.
            +1601    /// - Must call [`Self::with_initial_chain_state`] before calling this method.
            +1602    /// - Do not call both [`Self::with_account_from_sapling_activation`] and this method.
            +1603    pub fn with_account_having_current_birthday(mut self) -> Self {
            +1604        assert!(self.account_birthday.is_none());
            +1605        assert!(self.initial_chain_state.is_some());
            +1606        self.account_birthday = Some(AccountBirthday::from_parts(
            +1607            self.initial_chain_state
            +1608                .as_ref()
            +1609                .unwrap()
            +1610                .chain_state
            +1611                .clone(),
            +1612            None,
            +1613        ));
            +1614        self
            +1615    }
            +1616
            +1617    /// Sets the account index for the test account.
            +1618    ///
            +1619    /// Does nothing unless either [`Self::with_account_from_sapling_activation`] or
            +1620    /// [`Self::with_account_having_current_birthday`] is also called.
             1621    ///
            -1622    /// - Must not be called twice.
            -1623    pub fn set_account_index(mut self, index: zip32::AccountId) -> Self {
            -1624        assert!(self.account_index.is_none());
            -1625        self.account_index = Some(index);
            -1626        self
            -1627    }
            -1628}
            -1629
            -1630impl<Cache, DsFactory: DataStoreFactory> TestBuilder<Cache, DsFactory> {
            -1631    /// Builds the state for this test.
            -1632    pub fn build(self) -> TestState<Cache, DsFactory::DataStore, LocalNetwork> {
            -1633        let mut cached_blocks = BTreeMap::new();
            -1634        let mut wallet_data = self
            -1635            .ds_factory
            -1636            .new_data_store(
            -1637                self.network,
            -1638                #[cfg(feature = "transparent-inputs")]
            -1639                self.gap_limits,
            -1640            )
            -1641            .unwrap();
            -1642
            -1643        if let Some(initial_state) = &self.initial_chain_state {
            -1644            wallet_data
            -1645                .put_sapling_subtree_roots(0, &initial_state.prior_sapling_roots)
            -1646                .unwrap();
            -1647            wallet_data
            -1648                .with_sapling_tree_mut(|t| {
            -1649                    t.insert_frontier(
            -1650                        initial_state.chain_state.final_sapling_tree().clone(),
            -1651                        Retention::Checkpoint {
            -1652                            id: initial_state.chain_state.block_height(),
            -1653                            marking: Marking::Reference,
            -1654                        },
            -1655                    )
            -1656                })
            -1657                .unwrap();
            -1658
            -1659            #[cfg(feature = "orchard")]
            -1660            {
            -1661                wallet_data
            -1662                    .put_orchard_subtree_roots(0, &initial_state.prior_orchard_roots)
            -1663                    .unwrap();
            -1664                wallet_data
            -1665                    .with_orchard_tree_mut(|t| {
            -1666                        t.insert_frontier(
            -1667                            initial_state.chain_state.final_orchard_tree().clone(),
            -1668                            Retention::Checkpoint {
            -1669                                id: initial_state.chain_state.block_height(),
            -1670                                marking: Marking::Reference,
            -1671                            },
            -1672                        )
            -1673                    })
            -1674                    .unwrap();
            -1675            }
            -1676
            -1677            let final_sapling_tree_size =
            -1678                initial_state.chain_state.final_sapling_tree().tree_size() as u32;
            -1679            let _final_orchard_tree_size = 0;
            -1680            #[cfg(feature = "orchard")]
            -1681            let _final_orchard_tree_size =
            -1682                initial_state.chain_state.final_orchard_tree().tree_size() as u32;
            -1683
            -1684            cached_blocks.insert(
            -1685                initial_state.chain_state.block_height(),
            -1686                CachedBlock {
            -1687                    chain_state: initial_state.chain_state.clone(),
            -1688                    sapling_end_size: final_sapling_tree_size,
            -1689                    orchard_end_size: _final_orchard_tree_size,
            -1690                },
            -1691            );
            -1692        };
            -1693
            -1694        let test_account = self.account_birthday.map(|birthday| {
            -1695            let seed = Secret::new(vec![0u8; 32]);
            -1696            let (account, usk) = match self.account_index {
            -1697                Some(index) => wallet_data
            -1698                    .import_account_hd("", &seed, index, &birthday, None)
            -1699                    .unwrap(),
            -1700                None => {
            -1701                    let result = wallet_data
            -1702                        .create_account("", &seed, &birthday, None)
            -1703                        .unwrap();
            -1704                    (
            -1705                        wallet_data.get_account(result.0).unwrap().unwrap(),
            -1706                        result.1,
            -1707                    )
            -1708                }
            -1709            };
            -1710            (
            -1711                seed,
            -1712                TestAccount {
            -1713                    account,
            -1714                    usk,
            -1715                    birthday,
            -1716                },
            -1717            )
            -1718        });
            -1719
            -1720        TestState {
            -1721            cache: self.cache,
            -1722            cached_blocks,
            -1723            latest_block_height: self
            -1724                .initial_chain_state
            -1725                .map(|s| s.chain_state.block_height()),
            -1726            wallet_data,
            -1727            network: self.network,
            -1728            test_account,
            -1729            rng: self.rng,
            -1730        }
            -1731    }
            -1732}
            -1733
            -1734/// Trait used by tests that require a full viewing key.
            -1735pub trait TestFvk: Clone {
            -1736    /// The type of nullifier corresponding to the kind of note that this full viewing key
            -1737    /// can detect (and that its corresponding spending key can spend).
            -1738    type Nullifier: Copy;
            -1739
            -1740    /// Returns the Sapling outgoing viewing key corresponding to this full viewing key,
            -1741    /// if any.
            -1742    fn sapling_ovk(&self) -> Option<::sapling::keys::OutgoingViewingKey>;
            -1743
            -1744    /// Returns the Orchard outgoing viewing key corresponding to this full viewing key,
            -1745    /// if any.
            -1746    #[cfg(feature = "orchard")]
            -1747    fn orchard_ovk(&self, scope: zip32::Scope) -> Option<::orchard::keys::OutgoingViewingKey>;
            -1748
            -1749    /// Adds a single spend to the given [`CompactTx`] of a note previously received by
            -1750    /// this full viewing key.
            -1751    fn add_spend<R: RngCore + CryptoRng>(
            -1752        &self,
            -1753        ctx: &mut CompactTx,
            -1754        nf: Self::Nullifier,
            -1755        rng: &mut R,
            -1756    );
            -1757
            -1758    /// Adds a single output to the given [`CompactTx`] that will be received by this full
            -1759    /// viewing key.
            -1760    ///
            -1761    /// `req` allows configuring how the full viewing key will detect the output.
            -1762    #[allow(clippy::too_many_arguments)]
            -1763    fn add_output<P: consensus::Parameters, R: RngCore + CryptoRng>(
            -1764        &self,
            -1765        ctx: &mut CompactTx,
            -1766        params: &P,
            -1767        height: BlockHeight,
            -1768        req: AddressType,
            -1769        value: Zatoshis,
            -1770        initial_sapling_tree_size: u32,
            -1771        // we don't require an initial Orchard tree size because we don't need it to compute
            -1772        // the nullifier.
            -1773        rng: &mut R,
            -1774    ) -> Self::Nullifier;
            -1775
            -1776    /// Adds both a spend and an output to the given [`CompactTx`].
            -1777    ///
            -1778    /// - If this is a Sapling full viewing key, the transaction will gain both a Spend
            -1779    ///   and an Output.
            -1780    /// - If this is an Orchard full viewing key, the transaction will gain an Action.
            -1781    ///
            -1782    /// `req` allows configuring how the full viewing key will detect the output.
            -1783    #[allow(clippy::too_many_arguments)]
            -1784    fn add_logical_action<P: consensus::Parameters, R: RngCore + CryptoRng>(
            -1785        &self,
            -1786        ctx: &mut CompactTx,
            -1787        params: &P,
            -1788        height: BlockHeight,
            -1789        nf: Self::Nullifier,
            -1790        req: AddressType,
            -1791        value: Zatoshis,
            -1792        initial_sapling_tree_size: u32,
            -1793        // we don't require an initial Orchard tree size because we don't need it to compute
            -1794        // the nullifier.
            -1795        rng: &mut R,
            -1796    ) -> Self::Nullifier;
            -1797}
            -1798
            -1799impl<A: TestFvk> TestFvk for &A {
            -1800    type Nullifier = A::Nullifier;
            -1801
            -1802    fn sapling_ovk(&self) -> Option<::sapling::keys::OutgoingViewingKey> {
            -1803        (*self).sapling_ovk()
            -1804    }
            -1805
            -1806    #[cfg(feature = "orchard")]
            -1807    fn orchard_ovk(&self, scope: zip32::Scope) -> Option<::orchard::keys::OutgoingViewingKey> {
            -1808        (*self).orchard_ovk(scope)
            -1809    }
            -1810
            -1811    fn add_spend<R: RngCore + CryptoRng>(
            -1812        &self,
            -1813        ctx: &mut CompactTx,
            -1814        nf: Self::Nullifier,
            -1815        rng: &mut R,
            -1816    ) {
            -1817        (*self).add_spend(ctx, nf, rng)
            -1818    }
            -1819
            -1820    fn add_output<P: consensus::Parameters, R: RngCore + CryptoRng>(
            -1821        &self,
            -1822        ctx: &mut CompactTx,
            -1823        params: &P,
            -1824        height: BlockHeight,
            -1825        req: AddressType,
            -1826        value: Zatoshis,
            -1827        initial_sapling_tree_size: u32,
            -1828        // we don't require an initial Orchard tree size because we don't need it to compute
            -1829        // the nullifier.
            -1830        rng: &mut R,
            -1831    ) -> Self::Nullifier {
            -1832        (*self).add_output(
            -1833            ctx,
            -1834            params,
            -1835            height,
            -1836            req,
            -1837            value,
            -1838            initial_sapling_tree_size,
            -1839            rng,
            -1840        )
            -1841    }
            -1842
            -1843    fn add_logical_action<P: consensus::Parameters, R: RngCore + CryptoRng>(
            -1844        &self,
            -1845        ctx: &mut CompactTx,
            -1846        params: &P,
            -1847        height: BlockHeight,
            -1848        nf: Self::Nullifier,
            -1849        req: AddressType,
            -1850        value: Zatoshis,
            -1851        initial_sapling_tree_size: u32,
            -1852        // we don't require an initial Orchard tree size because we don't need it to compute
            -1853        // the nullifier.
            -1854        rng: &mut R,
            -1855    ) -> Self::Nullifier {
            -1856        (*self).add_logical_action(
            -1857            ctx,
            -1858            params,
            -1859            height,
            -1860            nf,
            -1861            req,
            -1862            value,
            -1863            initial_sapling_tree_size,
            -1864            rng,
            -1865        )
            -1866    }
            -1867}
            -1868
            -1869impl TestFvk for DiversifiableFullViewingKey {
            -1870    type Nullifier = ::sapling::Nullifier;
            -1871
            -1872    fn sapling_ovk(&self) -> Option<::sapling::keys::OutgoingViewingKey> {
            -1873        Some(self.fvk().ovk)
            -1874    }
            -1875
            -1876    #[cfg(feature = "orchard")]
            -1877    fn orchard_ovk(&self, _: zip32::Scope) -> Option<::orchard::keys::OutgoingViewingKey> {
            -1878        None
            -1879    }
            -1880
            -1881    fn add_spend<R: RngCore + CryptoRng>(
            -1882        &self,
            -1883        ctx: &mut CompactTx,
            -1884        nf: Self::Nullifier,
            -1885        _: &mut R,
            -1886    ) {
            -1887        let cspend = CompactSaplingSpend { nf: nf.to_vec() };
            -1888        ctx.spends.push(cspend);
            -1889    }
            -1890
            -1891    fn add_output<P: consensus::Parameters, R: RngCore + CryptoRng>(
            -1892        &self,
            -1893        ctx: &mut CompactTx,
            -1894        params: &P,
            -1895        height: BlockHeight,
            -1896        req: AddressType,
            -1897        value: Zatoshis,
            -1898        initial_sapling_tree_size: u32,
            -1899        rng: &mut R,
            -1900    ) -> Self::Nullifier {
            -1901        let recipient = match req {
            -1902            AddressType::DefaultExternal => self.default_address().1,
            -1903            AddressType::DiversifiedExternal(idx) => self.find_address(idx).unwrap().1,
            -1904            AddressType::Internal => self.change_address().1,
            -1905        };
            -1906
            -1907        let position = initial_sapling_tree_size + ctx.outputs.len() as u32;
            +1622    /// # Panics
            +1623    ///
            +1624    /// - Must not be called twice.
            +1625    pub fn set_account_index(mut self, index: zip32::AccountId) -> Self {
            +1626        assert!(self.account_index.is_none());
            +1627        self.account_index = Some(index);
            +1628        self
            +1629    }
            +1630}
            +1631
            +1632impl<Cache, DsFactory: DataStoreFactory> TestBuilder<Cache, DsFactory> {
            +1633    /// Builds the state for this test.
            +1634    pub fn build(self) -> TestState<Cache, DsFactory::DataStore, LocalNetwork> {
            +1635        let mut cached_blocks = BTreeMap::new();
            +1636        let mut wallet_data = self
            +1637            .ds_factory
            +1638            .new_data_store(
            +1639                self.network,
            +1640                #[cfg(feature = "transparent-inputs")]
            +1641                self.gap_limits,
            +1642            )
            +1643            .unwrap();
            +1644
            +1645        if let Some(initial_state) = &self.initial_chain_state {
            +1646            wallet_data
            +1647                .put_sapling_subtree_roots(0, &initial_state.prior_sapling_roots)
            +1648                .unwrap();
            +1649            wallet_data
            +1650                .with_sapling_tree_mut(|t| {
            +1651                    t.insert_frontier(
            +1652                        initial_state.chain_state.final_sapling_tree().clone(),
            +1653                        Retention::Checkpoint {
            +1654                            id: initial_state.chain_state.block_height(),
            +1655                            marking: Marking::Reference,
            +1656                        },
            +1657                    )
            +1658                })
            +1659                .unwrap();
            +1660
            +1661            #[cfg(feature = "orchard")]
            +1662            {
            +1663                wallet_data
            +1664                    .put_orchard_subtree_roots(0, &initial_state.prior_orchard_roots)
            +1665                    .unwrap();
            +1666                wallet_data
            +1667                    .with_orchard_tree_mut(|t| {
            +1668                        t.insert_frontier(
            +1669                            initial_state.chain_state.final_orchard_tree().clone(),
            +1670                            Retention::Checkpoint {
            +1671                                id: initial_state.chain_state.block_height(),
            +1672                                marking: Marking::Reference,
            +1673                            },
            +1674                        )
            +1675                    })
            +1676                    .unwrap();
            +1677            }
            +1678
            +1679            let final_sapling_tree_size =
            +1680                initial_state.chain_state.final_sapling_tree().tree_size() as u32;
            +1681            let _final_orchard_tree_size = 0;
            +1682            #[cfg(feature = "orchard")]
            +1683            let _final_orchard_tree_size =
            +1684                initial_state.chain_state.final_orchard_tree().tree_size() as u32;
            +1685
            +1686            cached_blocks.insert(
            +1687                initial_state.chain_state.block_height(),
            +1688                CachedBlock {
            +1689                    chain_state: initial_state.chain_state.clone(),
            +1690                    sapling_end_size: final_sapling_tree_size,
            +1691                    orchard_end_size: _final_orchard_tree_size,
            +1692                },
            +1693            );
            +1694        };
            +1695
            +1696        let test_account = self.account_birthday.map(|birthday| {
            +1697            let seed = Secret::new(vec![0u8; 32]);
            +1698            let (account, usk) = match self.account_index {
            +1699                Some(index) => wallet_data
            +1700                    .import_account_hd("", &seed, index, &birthday, None)
            +1701                    .unwrap(),
            +1702                None => {
            +1703                    let result = wallet_data
            +1704                        .create_account("", &seed, &birthday, None)
            +1705                        .unwrap();
            +1706                    (
            +1707                        wallet_data.get_account(result.0).unwrap().unwrap(),
            +1708                        result.1,
            +1709                    )
            +1710                }
            +1711            };
            +1712            (
            +1713                seed,
            +1714                TestAccount {
            +1715                    account,
            +1716                    usk,
            +1717                    birthday,
            +1718                },
            +1719            )
            +1720        });
            +1721
            +1722        TestState {
            +1723            cache: self.cache,
            +1724            cached_blocks,
            +1725            latest_block_height: self
            +1726                .initial_chain_state
            +1727                .map(|s| s.chain_state.block_height()),
            +1728            wallet_data,
            +1729            network: self.network,
            +1730            test_account,
            +1731            rng: self.rng,
            +1732        }
            +1733    }
            +1734}
            +1735
            +1736/// Trait used by tests that require a full viewing key.
            +1737pub trait TestFvk: Clone {
            +1738    /// The type of nullifier corresponding to the kind of note that this full viewing key
            +1739    /// can detect (and that its corresponding spending key can spend).
            +1740    type Nullifier: Copy;
            +1741
            +1742    /// Returns the Sapling outgoing viewing key corresponding to this full viewing key,
            +1743    /// if any.
            +1744    fn sapling_ovk(&self) -> Option<::sapling::keys::OutgoingViewingKey>;
            +1745
            +1746    /// Returns the Orchard outgoing viewing key corresponding to this full viewing key,
            +1747    /// if any.
            +1748    #[cfg(feature = "orchard")]
            +1749    fn orchard_ovk(&self, scope: zip32::Scope) -> Option<::orchard::keys::OutgoingViewingKey>;
            +1750
            +1751    /// Adds a single spend to the given [`CompactTx`] of a note previously received by
            +1752    /// this full viewing key.
            +1753    fn add_spend<R: RngCore + CryptoRng>(
            +1754        &self,
            +1755        ctx: &mut CompactTx,
            +1756        nf: Self::Nullifier,
            +1757        rng: &mut R,
            +1758    );
            +1759
            +1760    /// Adds a single output to the given [`CompactTx`] that will be received by this full
            +1761    /// viewing key.
            +1762    ///
            +1763    /// `req` allows configuring how the full viewing key will detect the output.
            +1764    #[allow(clippy::too_many_arguments)]
            +1765    fn add_output<P: consensus::Parameters, R: RngCore + CryptoRng>(
            +1766        &self,
            +1767        ctx: &mut CompactTx,
            +1768        params: &P,
            +1769        height: BlockHeight,
            +1770        req: AddressType,
            +1771        value: Zatoshis,
            +1772        initial_sapling_tree_size: u32,
            +1773        // we don't require an initial Orchard tree size because we don't need it to compute
            +1774        // the nullifier.
            +1775        rng: &mut R,
            +1776    ) -> Self::Nullifier;
            +1777
            +1778    /// Adds both a spend and an output to the given [`CompactTx`].
            +1779    ///
            +1780    /// - If this is a Sapling full viewing key, the transaction will gain both a Spend
            +1781    ///   and an Output.
            +1782    /// - If this is an Orchard full viewing key, the transaction will gain an Action.
            +1783    ///
            +1784    /// `req` allows configuring how the full viewing key will detect the output.
            +1785    #[allow(clippy::too_many_arguments)]
            +1786    fn add_logical_action<P: consensus::Parameters, R: RngCore + CryptoRng>(
            +1787        &self,
            +1788        ctx: &mut CompactTx,
            +1789        params: &P,
            +1790        height: BlockHeight,
            +1791        nf: Self::Nullifier,
            +1792        req: AddressType,
            +1793        value: Zatoshis,
            +1794        initial_sapling_tree_size: u32,
            +1795        // we don't require an initial Orchard tree size because we don't need it to compute
            +1796        // the nullifier.
            +1797        rng: &mut R,
            +1798    ) -> Self::Nullifier;
            +1799}
            +1800
            +1801impl<A: TestFvk> TestFvk for &A {
            +1802    type Nullifier = A::Nullifier;
            +1803
            +1804    fn sapling_ovk(&self) -> Option<::sapling::keys::OutgoingViewingKey> {
            +1805        (*self).sapling_ovk()
            +1806    }
            +1807
            +1808    #[cfg(feature = "orchard")]
            +1809    fn orchard_ovk(&self, scope: zip32::Scope) -> Option<::orchard::keys::OutgoingViewingKey> {
            +1810        (*self).orchard_ovk(scope)
            +1811    }
            +1812
            +1813    fn add_spend<R: RngCore + CryptoRng>(
            +1814        &self,
            +1815        ctx: &mut CompactTx,
            +1816        nf: Self::Nullifier,
            +1817        rng: &mut R,
            +1818    ) {
            +1819        (*self).add_spend(ctx, nf, rng)
            +1820    }
            +1821
            +1822    fn add_output<P: consensus::Parameters, R: RngCore + CryptoRng>(
            +1823        &self,
            +1824        ctx: &mut CompactTx,
            +1825        params: &P,
            +1826        height: BlockHeight,
            +1827        req: AddressType,
            +1828        value: Zatoshis,
            +1829        initial_sapling_tree_size: u32,
            +1830        // we don't require an initial Orchard tree size because we don't need it to compute
            +1831        // the nullifier.
            +1832        rng: &mut R,
            +1833    ) -> Self::Nullifier {
            +1834        (*self).add_output(
            +1835            ctx,
            +1836            params,
            +1837            height,
            +1838            req,
            +1839            value,
            +1840            initial_sapling_tree_size,
            +1841            rng,
            +1842        )
            +1843    }
            +1844
            +1845    fn add_logical_action<P: consensus::Parameters, R: RngCore + CryptoRng>(
            +1846        &self,
            +1847        ctx: &mut CompactTx,
            +1848        params: &P,
            +1849        height: BlockHeight,
            +1850        nf: Self::Nullifier,
            +1851        req: AddressType,
            +1852        value: Zatoshis,
            +1853        initial_sapling_tree_size: u32,
            +1854        // we don't require an initial Orchard tree size because we don't need it to compute
            +1855        // the nullifier.
            +1856        rng: &mut R,
            +1857    ) -> Self::Nullifier {
            +1858        (*self).add_logical_action(
            +1859            ctx,
            +1860            params,
            +1861            height,
            +1862            nf,
            +1863            req,
            +1864            value,
            +1865            initial_sapling_tree_size,
            +1866            rng,
            +1867        )
            +1868    }
            +1869}
            +1870
            +1871impl TestFvk for DiversifiableFullViewingKey {
            +1872    type Nullifier = ::sapling::Nullifier;
            +1873
            +1874    fn sapling_ovk(&self) -> Option<::sapling::keys::OutgoingViewingKey> {
            +1875        Some(self.fvk().ovk)
            +1876    }
            +1877
            +1878    #[cfg(feature = "orchard")]
            +1879    fn orchard_ovk(&self, _: zip32::Scope) -> Option<::orchard::keys::OutgoingViewingKey> {
            +1880        None
            +1881    }
            +1882
            +1883    fn add_spend<R: RngCore + CryptoRng>(
            +1884        &self,
            +1885        ctx: &mut CompactTx,
            +1886        nf: Self::Nullifier,
            +1887        _: &mut R,
            +1888    ) {
            +1889        let cspend = CompactSaplingSpend { nf: nf.to_vec() };
            +1890        ctx.spends.push(cspend);
            +1891    }
            +1892
            +1893    fn add_output<P: consensus::Parameters, R: RngCore + CryptoRng>(
            +1894        &self,
            +1895        ctx: &mut CompactTx,
            +1896        params: &P,
            +1897        height: BlockHeight,
            +1898        req: AddressType,
            +1899        value: Zatoshis,
            +1900        initial_sapling_tree_size: u32,
            +1901        rng: &mut R,
            +1902    ) -> Self::Nullifier {
            +1903        let recipient = match req {
            +1904            AddressType::DefaultExternal => self.default_address().1,
            +1905            AddressType::DiversifiedExternal(idx) => self.find_address(idx).unwrap().1,
            +1906            AddressType::Internal => self.change_address().1,
            +1907        };
             1908
            -1909        let (cout, note) =
            -1910            compact_sapling_output(params, height, recipient, value, self.sapling_ovk(), rng);
            -1911        ctx.outputs.push(cout);
            -1912
            -1913        note.nf(&self.fvk().vk.nk, position as u64)
            -1914    }
            -1915
            -1916    #[allow(clippy::too_many_arguments)]
            -1917    fn add_logical_action<P: consensus::Parameters, R: RngCore + CryptoRng>(
            -1918        &self,
            -1919        ctx: &mut CompactTx,
            -1920        params: &P,
            -1921        height: BlockHeight,
            -1922        nf: Self::Nullifier,
            -1923        req: AddressType,
            -1924        value: Zatoshis,
            -1925        initial_sapling_tree_size: u32,
            -1926        rng: &mut R,
            -1927    ) -> Self::Nullifier {
            -1928        self.add_spend(ctx, nf, rng);
            -1929        self.add_output(
            -1930            ctx,
            -1931            params,
            -1932            height,
            -1933            req,
            -1934            value,
            -1935            initial_sapling_tree_size,
            -1936            rng,
            -1937        )
            -1938    }
            -1939}
            -1940
            -1941#[cfg(feature = "orchard")]
            -1942impl TestFvk for ::orchard::keys::FullViewingKey {
            -1943    type Nullifier = ::orchard::note::Nullifier;
            -1944
            -1945    fn sapling_ovk(&self) -> Option<::sapling::keys::OutgoingViewingKey> {
            -1946        None
            -1947    }
            -1948
            -1949    fn orchard_ovk(&self, scope: zip32::Scope) -> Option<::orchard::keys::OutgoingViewingKey> {
            -1950        Some(self.to_ovk(scope))
            -1951    }
            -1952
            -1953    fn add_spend<R: RngCore + CryptoRng>(
            -1954        &self,
            -1955        ctx: &mut CompactTx,
            -1956        revealed_spent_note_nullifier: Self::Nullifier,
            -1957        rng: &mut R,
            -1958    ) {
            -1959        // Generate a dummy recipient.
            -1960        let recipient = loop {
            -1961            let mut bytes = [0; 32];
            -1962            rng.fill_bytes(&mut bytes);
            -1963            let sk = ::orchard::keys::SpendingKey::from_bytes(bytes);
            -1964            if sk.is_some().into() {
            -1965                break ::orchard::keys::FullViewingKey::from(&sk.unwrap())
            -1966                    .address_at(0u32, zip32::Scope::External);
            -1967            }
            -1968        };
            -1969
            -1970        let (cact, _) = compact_orchard_action(
            -1971            revealed_spent_note_nullifier,
            -1972            recipient,
            -1973            Zatoshis::ZERO,
            -1974            self.orchard_ovk(zip32::Scope::Internal),
            -1975            rng,
            -1976        );
            -1977        ctx.actions.push(cact);
            -1978    }
            -1979
            -1980    fn add_output<P: consensus::Parameters, R: RngCore + CryptoRng>(
            -1981        &self,
            -1982        ctx: &mut CompactTx,
            -1983        _: &P,
            -1984        _: BlockHeight,
            -1985        req: AddressType,
            -1986        value: Zatoshis,
            -1987        _: u32, // the position is not required for computing the Orchard nullifier
            -1988        mut rng: &mut R,
            -1989    ) -> Self::Nullifier {
            -1990        // Generate a dummy nullifier for the spend
            -1991        let revealed_spent_note_nullifier =
            -1992            ::orchard::note::Nullifier::from_bytes(&pallas::Base::random(&mut rng).to_repr())
            -1993                .unwrap();
            -1994
            -1995        let (j, scope) = match req {
            -1996            AddressType::DefaultExternal => (0u32.into(), zip32::Scope::External),
            -1997            AddressType::DiversifiedExternal(idx) => (idx, zip32::Scope::External),
            -1998            AddressType::Internal => (0u32.into(), zip32::Scope::Internal),
            -1999        };
            -2000
            -2001        let (cact, note) = compact_orchard_action(
            -2002            revealed_spent_note_nullifier,
            -2003            self.address_at(j, scope),
            -2004            value,
            -2005            self.orchard_ovk(scope),
            -2006            rng,
            -2007        );
            -2008        ctx.actions.push(cact);
            -2009
            -2010        note.nullifier(self)
            -2011    }
            -2012
            -2013    // Override so we can merge the spend and output into a single action.
            -2014    fn add_logical_action<P: consensus::Parameters, R: RngCore + CryptoRng>(
            -2015        &self,
            -2016        ctx: &mut CompactTx,
            -2017        _: &P,
            -2018        _: BlockHeight,
            -2019        revealed_spent_note_nullifier: Self::Nullifier,
            -2020        address_type: AddressType,
            -2021        value: Zatoshis,
            -2022        _: u32, // the position is not required for computing the Orchard nullifier
            -2023        rng: &mut R,
            -2024    ) -> Self::Nullifier {
            -2025        let (j, scope) = match address_type {
            -2026            AddressType::DefaultExternal => (0u32.into(), zip32::Scope::External),
            -2027            AddressType::DiversifiedExternal(idx) => (idx, zip32::Scope::External),
            -2028            AddressType::Internal => (0u32.into(), zip32::Scope::Internal),
            -2029        };
            -2030
            -2031        let (cact, note) = compact_orchard_action(
            -2032            revealed_spent_note_nullifier,
            -2033            self.address_at(j, scope),
            -2034            value,
            -2035            self.orchard_ovk(scope),
            -2036            rng,
            -2037        );
            -2038        ctx.actions.push(cact);
            -2039
            -2040        // Return the nullifier of the newly created output note
            -2041        note.nullifier(self)
            -2042    }
            -2043}
            -2044
            -2045/// Configures how a [`TestFvk`] receives a particular output.
            -2046///
            -2047/// Used with [`TestFvk::add_output`] and [`TestFvk::add_logical_action`].
            -2048#[derive(Clone, Copy)]
            -2049pub enum AddressType {
            -2050    /// The output will be sent to the default address of the full viewing key.
            -2051    DefaultExternal,
            -2052    /// The output will be sent to the specified diversified address of the full viewing
            -2053    /// key.
            -2054    #[allow(dead_code)]
            -2055    DiversifiedExternal(DiversifierIndex),
            -2056    /// The output will be sent to the internal receiver of the full viewing key.
            -2057    ///
            -2058    /// Such outputs are treated as "wallet-internal". A "recipient address" is **NEVER**
            -2059    /// exposed to users.
            -2060    Internal,
            -2061}
            -2062
            -2063/// Creates a `CompactSaplingOutput` at the given height paying the given recipient.
            -2064///
            -2065/// Returns the `CompactSaplingOutput` and the new note.
            -2066fn compact_sapling_output<P: consensus::Parameters, R: RngCore + CryptoRng>(
            -2067    params: &P,
            -2068    height: BlockHeight,
            -2069    recipient: ::sapling::PaymentAddress,
            -2070    value: Zatoshis,
            -2071    ovk: Option<::sapling::keys::OutgoingViewingKey>,
            -2072    rng: &mut R,
            -2073) -> (CompactSaplingOutput, ::sapling::Note) {
            -2074    let rseed = generate_random_rseed(zip212_enforcement(params, height), rng);
            -2075    let note = ::sapling::Note::from_parts(
            -2076        recipient,
            -2077        ::sapling::value::NoteValue::from_raw(value.into_u64()),
            -2078        rseed,
            -2079    );
            -2080    let encryptor =
            -2081        sapling_note_encryption(ovk, note.clone(), MemoBytes::empty().into_bytes(), rng);
            -2082    let cmu = note.cmu().to_bytes().to_vec();
            -2083    let ephemeral_key = SaplingDomain::epk_bytes(encryptor.epk()).0.to_vec();
            -2084    let enc_ciphertext = encryptor.encrypt_note_plaintext();
            -2085
            -2086    (
            -2087        CompactSaplingOutput {
            -2088            cmu,
            -2089            ephemeral_key,
            -2090            ciphertext: enc_ciphertext[..52].to_vec(),
            -2091        },
            -2092        note,
            -2093    )
            -2094}
            -2095
            -2096/// Creates a `CompactOrchardAction` at the given height paying the given recipient.
            -2097///
            -2098/// Returns the `CompactOrchardAction` and the new note.
            -2099#[cfg(feature = "orchard")]
            -2100fn compact_orchard_action<R: RngCore + CryptoRng>(
            -2101    nf_old: ::orchard::note::Nullifier,
            -2102    recipient: ::orchard::Address,
            -2103    value: Zatoshis,
            -2104    ovk: Option<::orchard::keys::OutgoingViewingKey>,
            -2105    rng: &mut R,
            -2106) -> (CompactOrchardAction, ::orchard::Note) {
            -2107    use zcash_note_encryption::ShieldedOutput;
            -2108
            -2109    let (compact_action, note) = ::orchard::note_encryption::testing::fake_compact_action(
            -2110        rng,
            -2111        nf_old,
            -2112        recipient,
            -2113        ::orchard::value::NoteValue::from_raw(value.into_u64()),
            -2114        ovk,
            -2115    );
            -2116
            -2117    (
            -2118        CompactOrchardAction {
            -2119            nullifier: compact_action.nullifier().to_bytes().to_vec(),
            -2120            cmx: compact_action.cmx().to_bytes().to_vec(),
            -2121            ephemeral_key: compact_action.ephemeral_key().0.to_vec(),
            -2122            ciphertext: compact_action.enc_ciphertext()[..52].to_vec(),
            -2123        },
            -2124        note,
            -2125    )
            -2126}
            -2127
            -2128/// Creates a fake `CompactTx` with a random transaction ID and no spends or outputs.
            -2129fn fake_compact_tx<R: RngCore + CryptoRng>(rng: &mut R) -> CompactTx {
            -2130    let mut ctx = CompactTx::default();
            -2131    let mut txid = vec![0; 32];
            -2132    rng.fill_bytes(&mut txid);
            -2133    ctx.hash = txid;
            -2134
            -2135    ctx
            -2136}
            -2137
            -2138/// A fake output of a [`CompactTx`].
            -2139///
            -2140/// Used with the following block generators:
            -2141/// - [`TestState::generate_next_block_multi`]
            -2142/// - [`TestState::generate_block_at`]
            -2143#[derive(Clone)]
            -2144pub struct FakeCompactOutput<Fvk> {
            -2145    fvk: Fvk,
            -2146    address_type: AddressType,
            -2147    value: Zatoshis,
            -2148}
            -2149
            -2150impl<Fvk> FakeCompactOutput<Fvk> {
            -2151    /// Constructs a new fake output with the given properties.
            -2152    pub fn new(fvk: Fvk, address_type: AddressType, value: Zatoshis) -> Self {
            -2153        Self {
            -2154            fvk,
            -2155            address_type,
            -2156            value,
            -2157        }
            -2158    }
            -2159
            -2160    /// Constructs a new random fake external output to the given FVK with a value in the range
            -2161    /// 10000..1000000 ZAT.
            -2162    pub fn random<R: RngCore>(rng: &mut R, fvk: Fvk) -> Self {
            -2163        Self {
            -2164            fvk,
            -2165            address_type: AddressType::DefaultExternal,
            -2166            value: Zatoshis::const_from_u64(rng.gen_range(10000..1000000)),
            -2167        }
            -2168    }
            -2169}
            -2170
            -2171/// Create a fake CompactBlock at the given height, containing the specified fake compact outputs.
            -2172///
            -2173/// Returns the newly created compact block, along with the nullifier for each note created in that
            -2174/// block.
            -2175#[allow(clippy::too_many_arguments)]
            -2176fn fake_compact_block<P: consensus::Parameters, Fvk: TestFvk>(
            -2177    params: &P,
            -2178    height: BlockHeight,
            -2179    prev_hash: BlockHash,
            -2180    outputs: &[FakeCompactOutput<Fvk>],
            -2181    initial_sapling_tree_size: u32,
            -2182    initial_orchard_tree_size: u32,
            -2183    mut rng: impl RngCore + CryptoRng,
            -2184) -> (CompactBlock, Vec<Fvk::Nullifier>) {
            -2185    // Create a fake CompactBlock containing the note
            -2186    let mut ctx = fake_compact_tx(&mut rng);
            -2187    let mut nfs = vec![];
            -2188    for output in outputs {
            -2189        let nf = output.fvk.add_output(
            -2190            &mut ctx,
            -2191            params,
            -2192            height,
            -2193            output.address_type,
            -2194            output.value,
            -2195            initial_sapling_tree_size,
            -2196            &mut rng,
            -2197        );
            -2198        nfs.push(nf);
            -2199    }
            -2200
            -2201    let cb = fake_compact_block_from_compact_tx(
            -2202        ctx,
            -2203        height,
            -2204        prev_hash,
            -2205        initial_sapling_tree_size,
            -2206        initial_orchard_tree_size,
            -2207        rng,
            -2208    );
            -2209    (cb, nfs)
            -2210}
            -2211
            -2212/// Create a fake CompactBlock at the given height containing only the given transaction.
            -2213fn fake_compact_block_from_tx(
            -2214    height: BlockHeight,
            -2215    prev_hash: BlockHash,
            -2216    tx_index: usize,
            -2217    tx: &Transaction,
            -2218    initial_sapling_tree_size: u32,
            -2219    initial_orchard_tree_size: u32,
            -2220    rng: impl RngCore,
            -2221) -> CompactBlock {
            -2222    // Create a fake CompactTx containing the transaction.
            -2223    let mut ctx = CompactTx {
            -2224        index: tx_index as u64,
            -2225        hash: tx.txid().as_ref().to_vec(),
            -2226        ..Default::default()
            -2227    };
            -2228
            -2229    if let Some(bundle) = tx.sapling_bundle() {
            -2230        for spend in bundle.shielded_spends() {
            -2231            ctx.spends.push(spend.into());
            -2232        }
            -2233        for output in bundle.shielded_outputs() {
            -2234            ctx.outputs.push(output.into());
            -2235        }
            -2236    }
            -2237
            -2238    #[cfg(feature = "orchard")]
            -2239    if let Some(bundle) = tx.orchard_bundle() {
            -2240        for action in bundle.actions() {
            -2241            ctx.actions.push(action.into());
            -2242        }
            -2243    }
            -2244
            -2245    fake_compact_block_from_compact_tx(
            -2246        ctx,
            -2247        height,
            -2248        prev_hash,
            -2249        initial_sapling_tree_size,
            -2250        initial_orchard_tree_size,
            -2251        rng,
            -2252    )
            -2253}
            -2254
            -2255/// Create a fake CompactBlock at the given height, spending a single note from the
            -2256/// given address.
            -2257#[allow(clippy::too_many_arguments)]
            -2258fn fake_compact_block_spending<P: consensus::Parameters, Fvk: TestFvk>(
            -2259    params: &P,
            -2260    height: BlockHeight,
            -2261    prev_hash: BlockHash,
            -2262    (nf, in_value): (Fvk::Nullifier, Zatoshis),
            -2263    fvk: &Fvk,
            -2264    to: Address,
            -2265    value: Zatoshis,
            -2266    initial_sapling_tree_size: u32,
            -2267    initial_orchard_tree_size: u32,
            -2268    mut rng: impl RngCore + CryptoRng,
            -2269) -> CompactBlock {
            -2270    let mut ctx = fake_compact_tx(&mut rng);
            -2271
            -2272    // Create a fake spend and a fake Note for the change
            -2273    fvk.add_logical_action(
            -2274        &mut ctx,
            -2275        params,
            -2276        height,
            -2277        nf,
            -2278        AddressType::Internal,
            -2279        (in_value - value).unwrap(),
            -2280        initial_sapling_tree_size,
            -2281        &mut rng,
            -2282    );
            -2283
            -2284    // Create a fake Note for the payment
            -2285    match to {
            -2286        Address::Sapling(recipient) => ctx.outputs.push(
            -2287            compact_sapling_output(
            -2288                params,
            -2289                height,
            -2290                recipient,
            -2291                value,
            -2292                fvk.sapling_ovk(),
            -2293                &mut rng,
            -2294            )
            -2295            .0,
            -2296        ),
            -2297        Address::Transparent(_) | Address::Tex(_) => {
            -2298            panic!("transparent addresses not supported in compact blocks")
            -2299        }
            -2300        Address::Unified(ua) => {
            -2301            // This is annoying to implement, because the protocol-aware UA type has no
            -2302            // concept of ZIP 316 preference order.
            -2303            let mut done = false;
            -2304
            -2305            #[cfg(feature = "orchard")]
            -2306            if let Some(recipient) = ua.orchard() {
            -2307                // Generate a dummy nullifier
            -2308                let nullifier = ::orchard::note::Nullifier::from_bytes(
            -2309                    &pallas::Base::random(&mut rng).to_repr(),
            -2310                )
            -2311                .unwrap();
            -2312
            -2313                ctx.actions.push(
            -2314                    compact_orchard_action(
            -2315                        nullifier,
            -2316                        *recipient,
            -2317                        value,
            -2318                        fvk.orchard_ovk(zip32::Scope::External),
            -2319                        &mut rng,
            -2320                    )
            -2321                    .0,
            -2322                );
            -2323                done = true;
            -2324            }
            -2325
            -2326            if !done {
            -2327                if let Some(recipient) = ua.sapling() {
            -2328                    ctx.outputs.push(
            -2329                        compact_sapling_output(
            -2330                            params,
            -2331                            height,
            -2332                            *recipient,
            -2333                            value,
            -2334                            fvk.sapling_ovk(),
            -2335                            &mut rng,
            -2336                        )
            -2337                        .0,
            -2338                    );
            -2339                    done = true;
            -2340                }
            -2341            }
            -2342            if !done {
            -2343                panic!("No supported shielded receiver to send funds to");
            -2344            }
            -2345        }
            -2346    }
            -2347
            -2348    fake_compact_block_from_compact_tx(
            -2349        ctx,
            -2350        height,
            -2351        prev_hash,
            -2352        initial_sapling_tree_size,
            -2353        initial_orchard_tree_size,
            -2354        rng,
            -2355    )
            -2356}
            -2357
            -2358fn fake_compact_block_from_compact_tx(
            -2359    ctx: CompactTx,
            -2360    height: BlockHeight,
            -2361    prev_hash: BlockHash,
            -2362    initial_sapling_tree_size: u32,
            -2363    initial_orchard_tree_size: u32,
            -2364    mut rng: impl RngCore,
            -2365) -> CompactBlock {
            -2366    let mut cb = CompactBlock {
            -2367        hash: {
            -2368            let mut hash = vec![0; 32];
            -2369            rng.fill_bytes(&mut hash);
            -2370            hash
            -2371        },
            -2372        height: height.into(),
            -2373        ..Default::default()
            -2374    };
            -2375    cb.prev_hash.extend_from_slice(&prev_hash.0);
            -2376    cb.vtx.push(ctx);
            -2377    cb.chain_metadata = Some(compact_formats::ChainMetadata {
            -2378        sapling_commitment_tree_size: initial_sapling_tree_size
            -2379            + cb.vtx.iter().map(|tx| tx.outputs.len() as u32).sum::<u32>(),
            -2380        orchard_commitment_tree_size: initial_orchard_tree_size
            -2381            + cb.vtx.iter().map(|tx| tx.actions.len() as u32).sum::<u32>(),
            -2382    });
            -2383    cb
            -2384}
            -2385
            -2386/// Trait used by tests that require a block cache.
            -2387pub trait TestCache {
            -2388    type BsError: core::fmt::Debug;
            -2389    type BlockSource: BlockSource<Error = Self::BsError>;
            -2390    type InsertResult;
            -2391
            -2392    /// Exposes the block cache as a [`BlockSource`].
            -2393    fn block_source(&self) -> &Self::BlockSource;
            -2394
            -2395    /// Inserts a CompactBlock into the cache DB.
            -2396    fn insert(&mut self, cb: &CompactBlock) -> Self::InsertResult;
            -2397
            -2398    /// Deletes block data from the cache, retaining blocks at heights less than or equal to the
            -2399    /// specified height.
            -2400    fn truncate_to_height(&mut self, height: BlockHeight);
            -2401}
            -2402
            -2403/// A convenience type for the note commitments contained within a [`CompactBlock`].
            -2404///
            -2405/// Indended for use as (part of) the [`TestCache::InsertResult`] associated type.
            -2406pub struct NoteCommitments {
            -2407    sapling: Vec<::sapling::Node>,
            -2408    #[cfg(feature = "orchard")]
            -2409    orchard: Vec<MerkleHashOrchard>,
            -2410}
            -2411
            -2412impl NoteCommitments {
            -2413    /// Extracts the note commitments from the given compact block.
            -2414    pub fn from_compact_block(cb: &CompactBlock) -> Self {
            -2415        NoteCommitments {
            -2416            sapling: cb
            -2417                .vtx
            -2418                .iter()
            -2419                .flat_map(|tx| {
            -2420                    tx.outputs
            -2421                        .iter()
            -2422                        .map(|out| ::sapling::Node::from_cmu(&out.cmu().unwrap()))
            -2423                })
            -2424                .collect(),
            -2425            #[cfg(feature = "orchard")]
            -2426            orchard: cb
            -2427                .vtx
            -2428                .iter()
            -2429                .flat_map(|tx| {
            -2430                    tx.actions
            -2431                        .iter()
            -2432                        .map(|act| MerkleHashOrchard::from_cmx(&act.cmx().unwrap()))
            -2433                })
            -2434                .collect(),
            -2435        }
            -2436    }
            -2437
            -2438    /// Returns the Sapling note commitments.
            -2439    #[allow(dead_code)]
            -2440    pub fn sapling(&self) -> &[::sapling::Node] {
            -2441        self.sapling.as_ref()
            -2442    }
            -2443
            -2444    /// Returns the Orchard note commitments.
            -2445    #[cfg(feature = "orchard")]
            -2446    pub fn orchard(&self) -> &[MerkleHashOrchard] {
            -2447        self.orchard.as_ref()
            -2448    }
            -2449}
            -2450
            -2451/// A mock wallet data source that implements the bare minimum necessary to function.
            -2452pub struct MockWalletDb {
            -2453    pub network: Network,
            -2454    pub sapling_tree: ShardTree<
            -2455        MemoryShardStore<::sapling::Node, BlockHeight>,
            -2456        { SAPLING_SHARD_HEIGHT * 2 },
            -2457        SAPLING_SHARD_HEIGHT,
            -2458    >,
            -2459    #[cfg(feature = "orchard")]
            -2460    pub orchard_tree: ShardTree<
            -2461        MemoryShardStore<::orchard::tree::MerkleHashOrchard, BlockHeight>,
            -2462        { ORCHARD_SHARD_HEIGHT * 2 },
            -2463        ORCHARD_SHARD_HEIGHT,
            -2464    >,
            -2465}
            -2466
            -2467impl MockWalletDb {
            -2468    /// Constructs a new mock wallet data source.
            -2469    pub fn new(network: Network) -> Self {
            -2470        Self {
            -2471            network,
            -2472            sapling_tree: ShardTree::new(MemoryShardStore::empty(), 100),
            -2473            #[cfg(feature = "orchard")]
            -2474            orchard_tree: ShardTree::new(MemoryShardStore::empty(), 100),
            -2475        }
            -2476    }
            -2477}
            -2478
            -2479impl InputSource for MockWalletDb {
            -2480    type Error = ();
            -2481    type NoteRef = u32;
            -2482    type AccountId = u32;
            -2483
            -2484    fn get_spendable_note(
            -2485        &self,
            -2486        _txid: &TxId,
            -2487        _protocol: ShieldedProtocol,
            -2488        _index: u32,
            -2489    ) -> Result<Option<ReceivedNote<Self::NoteRef, Note>>, Self::Error> {
            -2490        Ok(None)
            -2491    }
            -2492
            -2493    fn select_spendable_notes(
            -2494        &self,
            -2495        _account: Self::AccountId,
            -2496        _target_value: Zatoshis,
            -2497        _sources: &[ShieldedProtocol],
            -2498        _anchor_height: BlockHeight,
            -2499        _exclude: &[Self::NoteRef],
            -2500    ) -> Result<SpendableNotes<Self::NoteRef>, Self::Error> {
            -2501        Ok(SpendableNotes::empty())
            -2502    }
            -2503
            -2504    fn get_account_metadata(
            -2505        &self,
            -2506        _account: Self::AccountId,
            -2507        _selector: &NoteFilter,
            -2508        _exclude: &[Self::NoteRef],
            -2509    ) -> Result<AccountMeta, Self::Error> {
            -2510        Err(())
            -2511    }
            -2512}
            -2513
            -2514impl WalletRead for MockWalletDb {
            -2515    type Error = ();
            -2516    type AccountId = u32;
            -2517    type Account = (Self::AccountId, UnifiedFullViewingKey);
            -2518
            -2519    fn get_account_ids(&self) -> Result<Vec<Self::AccountId>, Self::Error> {
            -2520        Ok(Vec::new())
            -2521    }
            -2522
            -2523    fn get_account(
            -2524        &self,
            -2525        _account_id: Self::AccountId,
            -2526    ) -> Result<Option<Self::Account>, Self::Error> {
            -2527        Ok(None)
            -2528    }
            -2529
            -2530    fn get_derived_account(
            -2531        &self,
            -2532        _seed: &SeedFingerprint,
            -2533        _account_id: zip32::AccountId,
            -2534    ) -> Result<Option<Self::Account>, Self::Error> {
            -2535        Ok(None)
            -2536    }
            -2537
            -2538    fn validate_seed(
            -2539        &self,
            -2540        _account_id: Self::AccountId,
            -2541        _seed: &SecretVec<u8>,
            -2542    ) -> Result<bool, Self::Error> {
            -2543        Ok(false)
            -2544    }
            -2545
            -2546    fn seed_relevance_to_derived_accounts(
            -2547        &self,
            -2548        _seed: &SecretVec<u8>,
            -2549    ) -> Result<SeedRelevance<Self::AccountId>, Self::Error> {
            -2550        Ok(SeedRelevance::NoAccounts)
            -2551    }
            -2552
            -2553    fn get_account_for_ufvk(
            -2554        &self,
            -2555        _ufvk: &UnifiedFullViewingKey,
            -2556    ) -> Result<Option<Self::Account>, Self::Error> {
            -2557        Ok(None)
            -2558    }
            -2559
            -2560    fn list_addresses(&self, _account: Self::AccountId) -> Result<Vec<AddressInfo>, Self::Error> {
            -2561        Ok(vec![])
            -2562    }
            -2563
            -2564    fn get_last_generated_address_matching(
            -2565        &self,
            -2566        _account: Self::AccountId,
            -2567        _request: UnifiedAddressRequest,
            -2568    ) -> Result<Option<UnifiedAddress>, Self::Error> {
            -2569        Ok(None)
            -2570    }
            -2571
            -2572    fn get_account_birthday(&self, _account: Self::AccountId) -> Result<BlockHeight, Self::Error> {
            -2573        Err(())
            -2574    }
            -2575
            -2576    fn get_wallet_birthday(&self) -> Result<Option<BlockHeight>, Self::Error> {
            -2577        Ok(None)
            -2578    }
            -2579
            -2580    fn get_wallet_summary(
            -2581        &self,
            -2582        _min_confirmations: u32,
            -2583    ) -> Result<Option<WalletSummary<Self::AccountId>>, Self::Error> {
            -2584        Ok(None)
            -2585    }
            -2586
            -2587    fn chain_height(&self) -> Result<Option<BlockHeight>, Self::Error> {
            -2588        Ok(None)
            -2589    }
            -2590
            -2591    fn get_block_hash(&self, _block_height: BlockHeight) -> Result<Option<BlockHash>, Self::Error> {
            -2592        Ok(None)
            -2593    }
            -2594
            -2595    fn block_metadata(&self, _height: BlockHeight) -> Result<Option<BlockMetadata>, Self::Error> {
            -2596        Ok(None)
            -2597    }
            -2598
            -2599    fn block_fully_scanned(&self) -> Result<Option<BlockMetadata>, Self::Error> {
            -2600        Ok(None)
            -2601    }
            -2602
            -2603    fn get_max_height_hash(&self) -> Result<Option<(BlockHeight, BlockHash)>, Self::Error> {
            -2604        Ok(None)
            -2605    }
            -2606
            -2607    fn block_max_scanned(&self) -> Result<Option<BlockMetadata>, Self::Error> {
            -2608        Ok(None)
            -2609    }
            -2610
            -2611    fn suggest_scan_ranges(&self) -> Result<Vec<ScanRange>, Self::Error> {
            -2612        Ok(vec![])
            -2613    }
            -2614
            -2615    fn get_target_and_anchor_heights(
            -2616        &self,
            -2617        _min_confirmations: NonZeroU32,
            -2618    ) -> Result<Option<(BlockHeight, BlockHeight)>, Self::Error> {
            -2619        Ok(None)
            -2620    }
            -2621
            -2622    fn get_tx_height(&self, _txid: TxId) -> Result<Option<BlockHeight>, Self::Error> {
            -2623        Ok(None)
            -2624    }
            -2625
            -2626    fn get_unified_full_viewing_keys(
            -2627        &self,
            -2628    ) -> Result<HashMap<Self::AccountId, UnifiedFullViewingKey>, Self::Error> {
            -2629        Ok(HashMap::new())
            -2630    }
            -2631
            -2632    fn get_memo(&self, _id_note: NoteId) -> Result<Option<Memo>, Self::Error> {
            -2633        Ok(None)
            -2634    }
            -2635
            -2636    fn get_transaction(&self, _txid: TxId) -> Result<Option<Transaction>, Self::Error> {
            -2637        Ok(None)
            -2638    }
            -2639
            -2640    fn get_sapling_nullifiers(
            -2641        &self,
            -2642        _query: NullifierQuery,
            -2643    ) -> Result<Vec<(Self::AccountId, ::sapling::Nullifier)>, Self::Error> {
            -2644        Ok(Vec::new())
            -2645    }
            -2646
            -2647    #[cfg(feature = "orchard")]
            -2648    fn get_orchard_nullifiers(
            -2649        &self,
            -2650        _query: NullifierQuery,
            -2651    ) -> Result<Vec<(Self::AccountId, ::orchard::note::Nullifier)>, Self::Error> {
            -2652        Ok(Vec::new())
            -2653    }
            -2654
            -2655    #[cfg(feature = "transparent-inputs")]
            -2656    fn get_transparent_receivers(
            -2657        &self,
            -2658        _account: Self::AccountId,
            -2659        _include_change: bool,
            -2660    ) -> Result<HashMap<TransparentAddress, Option<TransparentAddressMetadata>>, Self::Error> {
            -2661        Ok(HashMap::new())
            -2662    }
            -2663
            -2664    #[cfg(feature = "transparent-inputs")]
            -2665    fn get_transparent_balances(
            -2666        &self,
            -2667        _account: Self::AccountId,
            -2668        _max_height: BlockHeight,
            -2669    ) -> Result<HashMap<TransparentAddress, Zatoshis>, Self::Error> {
            -2670        Ok(HashMap::new())
            -2671    }
            -2672
            -2673    #[cfg(feature = "transparent-inputs")]
            -2674    fn get_transparent_address_metadata(
            -2675        &self,
            -2676        _account: Self::AccountId,
            -2677        _address: &TransparentAddress,
            -2678    ) -> Result<Option<TransparentAddressMetadata>, Self::Error> {
            -2679        Ok(None)
            -2680    }
            -2681
            -2682    #[cfg(feature = "transparent-inputs")]
            -2683    fn get_known_ephemeral_addresses(
            -2684        &self,
            -2685        _account: Self::AccountId,
            -2686        _index_range: Option<Range<NonHardenedChildIndex>>,
            -2687    ) -> Result<Vec<(TransparentAddress, TransparentAddressMetadata)>, Self::Error> {
            -2688        Ok(vec![])
            -2689    }
            -2690
            -2691    #[cfg(feature = "transparent-inputs")]
            -2692    fn utxo_query_height(&self, _account: Self::AccountId) -> Result<BlockHeight, Self::Error> {
            -2693        Ok(BlockHeight::from(0u32))
            -2694    }
            -2695
            -2696    #[cfg(feature = "transparent-inputs")]
            -2697    fn find_account_for_ephemeral_address(
            -2698        &self,
            -2699        _address: &TransparentAddress,
            -2700    ) -> Result<Option<Self::AccountId>, Self::Error> {
            -2701        Ok(None)
            -2702    }
            -2703
            -2704    fn transaction_data_requests(&self) -> Result<Vec<TransactionDataRequest>, Self::Error> {
            -2705        Ok(vec![])
            -2706    }
            -2707}
            -2708
            -2709impl WalletWrite for MockWalletDb {
            -2710    type UtxoRef = u32;
            -2711
            -2712    fn create_account(
            -2713        &mut self,
            -2714        _account_name: &str,
            -2715        seed: &SecretVec<u8>,
            -2716        _birthday: &AccountBirthday,
            -2717        _key_source: Option<&str>,
            -2718    ) -> Result<(Self::AccountId, UnifiedSpendingKey), Self::Error> {
            -2719        let account = zip32::AccountId::ZERO;
            -2720        UnifiedSpendingKey::from_seed(&self.network, seed.expose_secret(), account)
            -2721            .map(|k| (u32::from(account), k))
            -2722            .map_err(|_| ())
            -2723    }
            -2724
            -2725    fn import_account_hd(
            -2726        &mut self,
            -2727        _account_name: &str,
            -2728        _seed: &SecretVec<u8>,
            -2729        _account_index: zip32::AccountId,
            -2730        _birthday: &AccountBirthday,
            -2731        _key_source: Option<&str>,
            -2732    ) -> Result<(Self::Account, UnifiedSpendingKey), Self::Error> {
            -2733        todo!()
            -2734    }
            -2735
            -2736    fn import_account_ufvk(
            -2737        &mut self,
            -2738        _account_name: &str,
            -2739        _unified_key: &UnifiedFullViewingKey,
            -2740        _birthday: &AccountBirthday,
            -2741        _purpose: AccountPurpose,
            -2742        _key_source: Option<&str>,
            -2743    ) -> Result<Self::Account, Self::Error> {
            -2744        todo!()
            -2745    }
            -2746
            -2747    fn get_next_available_address(
            -2748        &mut self,
            -2749        _account: Self::AccountId,
            -2750        _request: UnifiedAddressRequest,
            -2751    ) -> Result<Option<(UnifiedAddress, DiversifierIndex)>, Self::Error> {
            -2752        Ok(None)
            -2753    }
            -2754
            -2755    fn get_address_for_index(
            -2756        &mut self,
            -2757        _account: Self::AccountId,
            -2758        _diversifier_index: DiversifierIndex,
            -2759        _request: UnifiedAddressRequest,
            -2760    ) -> Result<Option<UnifiedAddress>, Self::Error> {
            -2761        Ok(None)
            -2762    }
            -2763
            -2764    #[allow(clippy::type_complexity)]
            -2765    fn put_blocks(
            -2766        &mut self,
            -2767        _from_state: &ChainState,
            -2768        _blocks: Vec<ScannedBlock<Self::AccountId>>,
            -2769    ) -> Result<(), Self::Error> {
            -2770        Ok(())
            -2771    }
            -2772
            -2773    fn update_chain_tip(&mut self, _tip_height: BlockHeight) -> Result<(), Self::Error> {
            -2774        Ok(())
            -2775    }
            -2776
            -2777    fn store_decrypted_tx(
            -2778        &mut self,
            -2779        _received_tx: DecryptedTransaction<Self::AccountId>,
            -2780    ) -> Result<(), Self::Error> {
            -2781        Ok(())
            -2782    }
            -2783
            -2784    fn store_transactions_to_be_sent(
            -2785        &mut self,
            -2786        _transactions: &[SentTransaction<Self::AccountId>],
            -2787    ) -> Result<(), Self::Error> {
            -2788        Ok(())
            -2789    }
            -2790
            -2791    fn truncate_to_height(
            -2792        &mut self,
            -2793        _block_height: BlockHeight,
            -2794    ) -> Result<BlockHeight, Self::Error> {
            -2795        Err(())
            -2796    }
            -2797
            -2798    /// Adds a transparent UTXO received by the wallet to the data store.
            -2799    fn put_received_transparent_utxo(
            -2800        &mut self,
            -2801        _output: &WalletTransparentOutput,
            -2802    ) -> Result<Self::UtxoRef, Self::Error> {
            -2803        Ok(0)
            -2804    }
            -2805
            -2806    #[cfg(feature = "transparent-inputs")]
            -2807    fn reserve_next_n_ephemeral_addresses(
            -2808        &mut self,
            -2809        _account_id: Self::AccountId,
            -2810        _n: usize,
            -2811    ) -> Result<Vec<(TransparentAddress, TransparentAddressMetadata)>, Self::Error> {
            -2812        Err(())
            -2813    }
            -2814
            -2815    fn set_transaction_status(
            -2816        &mut self,
            -2817        _txid: TxId,
            -2818        _status: TransactionStatus,
            -2819    ) -> Result<(), Self::Error> {
            -2820        Ok(())
            -2821    }
            -2822}
            -2823
            -2824impl WalletCommitmentTrees for MockWalletDb {
            -2825    type Error = Infallible;
            -2826    type SaplingShardStore<'a> = MemoryShardStore<::sapling::Node, BlockHeight>;
            -2827
            -2828    fn with_sapling_tree_mut<F, A, E>(&mut self, mut callback: F) -> Result<A, E>
            -2829    where
            -2830        for<'a> F: FnMut(
            -2831            &'a mut ShardTree<
            -2832                Self::SaplingShardStore<'a>,
            -2833                { ::sapling::NOTE_COMMITMENT_TREE_DEPTH },
            -2834                SAPLING_SHARD_HEIGHT,
            -2835            >,
            -2836        ) -> Result<A, E>,
            -2837        E: From<ShardTreeError<Infallible>>,
            -2838    {
            -2839        callback(&mut self.sapling_tree)
            -2840    }
            -2841
            -2842    fn put_sapling_subtree_roots(
            -2843        &mut self,
            -2844        start_index: u64,
            -2845        roots: &[CommitmentTreeRoot<::sapling::Node>],
            -2846    ) -> Result<(), ShardTreeError<Self::Error>> {
            -2847        self.with_sapling_tree_mut(|t| {
            -2848            for (root, i) in roots.iter().zip(0u64..) {
            -2849                let root_addr = incrementalmerkletree::Address::from_parts(
            -2850                    SAPLING_SHARD_HEIGHT.into(),
            -2851                    start_index + i,
            -2852                );
            -2853                t.insert(root_addr, *root.root_hash())?;
            -2854            }
            -2855            Ok::<_, ShardTreeError<Self::Error>>(())
            -2856        })?;
            -2857
            -2858        Ok(())
            -2859    }
            -2860
            -2861    #[cfg(feature = "orchard")]
            -2862    type OrchardShardStore<'a> = MemoryShardStore<::orchard::tree::MerkleHashOrchard, BlockHeight>;
            -2863
            -2864    #[cfg(feature = "orchard")]
            -2865    fn with_orchard_tree_mut<F, A, E>(&mut self, mut callback: F) -> Result<A, E>
            -2866    where
            -2867        for<'a> F: FnMut(
            -2868            &'a mut ShardTree<
            -2869                Self::OrchardShardStore<'a>,
            -2870                { ORCHARD_SHARD_HEIGHT * 2 },
            -2871                ORCHARD_SHARD_HEIGHT,
            -2872            >,
            -2873        ) -> Result<A, E>,
            -2874        E: From<ShardTreeError<Self::Error>>,
            -2875    {
            -2876        callback(&mut self.orchard_tree)
            -2877    }
            -2878
            -2879    /// Adds a sequence of note commitment tree subtree roots to the data store.
            -2880    #[cfg(feature = "orchard")]
            -2881    fn put_orchard_subtree_roots(
            -2882        &mut self,
            -2883        start_index: u64,
            -2884        roots: &[CommitmentTreeRoot<::orchard::tree::MerkleHashOrchard>],
            -2885    ) -> Result<(), ShardTreeError<Self::Error>> {
            -2886        self.with_orchard_tree_mut(|t| {
            -2887            for (root, i) in roots.iter().zip(0u64..) {
            -2888                let root_addr = incrementalmerkletree::Address::from_parts(
            -2889                    ORCHARD_SHARD_HEIGHT.into(),
            -2890                    start_index + i,
            -2891                );
            -2892                t.insert(root_addr, *root.root_hash())?;
            -2893            }
            -2894            Ok::<_, ShardTreeError<Self::Error>>(())
            -2895        })?;
            -2896
            -2897        Ok(())
            -2898    }
            -2899}
            \ No newline at end of file +1909 let position = initial_sapling_tree_size + ctx.outputs.len() as u32; +1910 +1911 let (cout, note) = +1912 compact_sapling_output(params, height, recipient, value, self.sapling_ovk(), rng); +1913 ctx.outputs.push(cout); +1914 +1915 note.nf(&self.fvk().vk.nk, position as u64) +1916 } +1917 +1918 #[allow(clippy::too_many_arguments)] +1919 fn add_logical_action<P: consensus::Parameters, R: RngCore + CryptoRng>( +1920 &self, +1921 ctx: &mut CompactTx, +1922 params: &P, +1923 height: BlockHeight, +1924 nf: Self::Nullifier, +1925 req: AddressType, +1926 value: Zatoshis, +1927 initial_sapling_tree_size: u32, +1928 rng: &mut R, +1929 ) -> Self::Nullifier { +1930 self.add_spend(ctx, nf, rng); +1931 self.add_output( +1932 ctx, +1933 params, +1934 height, +1935 req, +1936 value, +1937 initial_sapling_tree_size, +1938 rng, +1939 ) +1940 } +1941} +1942 +1943#[cfg(feature = "orchard")] +1944impl TestFvk for ::orchard::keys::FullViewingKey { +1945 type Nullifier = ::orchard::note::Nullifier; +1946 +1947 fn sapling_ovk(&self) -> Option<::sapling::keys::OutgoingViewingKey> { +1948 None +1949 } +1950 +1951 fn orchard_ovk(&self, scope: zip32::Scope) -> Option<::orchard::keys::OutgoingViewingKey> { +1952 Some(self.to_ovk(scope)) +1953 } +1954 +1955 fn add_spend<R: RngCore + CryptoRng>( +1956 &self, +1957 ctx: &mut CompactTx, +1958 revealed_spent_note_nullifier: Self::Nullifier, +1959 rng: &mut R, +1960 ) { +1961 // Generate a dummy recipient. +1962 let recipient = loop { +1963 let mut bytes = [0; 32]; +1964 rng.fill_bytes(&mut bytes); +1965 let sk = ::orchard::keys::SpendingKey::from_bytes(bytes); +1966 if sk.is_some().into() { +1967 break ::orchard::keys::FullViewingKey::from(&sk.unwrap()) +1968 .address_at(0u32, zip32::Scope::External); +1969 } +1970 }; +1971 +1972 let (cact, _) = compact_orchard_action( +1973 revealed_spent_note_nullifier, +1974 recipient, +1975 Zatoshis::ZERO, +1976 self.orchard_ovk(zip32::Scope::Internal), +1977 rng, +1978 ); +1979 ctx.actions.push(cact); +1980 } +1981 +1982 fn add_output<P: consensus::Parameters, R: RngCore + CryptoRng>( +1983 &self, +1984 ctx: &mut CompactTx, +1985 _: &P, +1986 _: BlockHeight, +1987 req: AddressType, +1988 value: Zatoshis, +1989 _: u32, // the position is not required for computing the Orchard nullifier +1990 mut rng: &mut R, +1991 ) -> Self::Nullifier { +1992 // Generate a dummy nullifier for the spend +1993 let revealed_spent_note_nullifier = +1994 ::orchard::note::Nullifier::from_bytes(&pallas::Base::random(&mut rng).to_repr()) +1995 .unwrap(); +1996 +1997 let (j, scope) = match req { +1998 AddressType::DefaultExternal => (0u32.into(), zip32::Scope::External), +1999 AddressType::DiversifiedExternal(idx) => (idx, zip32::Scope::External), +2000 AddressType::Internal => (0u32.into(), zip32::Scope::Internal), +2001 }; +2002 +2003 let (cact, note) = compact_orchard_action( +2004 revealed_spent_note_nullifier, +2005 self.address_at(j, scope), +2006 value, +2007 self.orchard_ovk(scope), +2008 rng, +2009 ); +2010 ctx.actions.push(cact); +2011 +2012 note.nullifier(self) +2013 } +2014 +2015 // Override so we can merge the spend and output into a single action. +2016 fn add_logical_action<P: consensus::Parameters, R: RngCore + CryptoRng>( +2017 &self, +2018 ctx: &mut CompactTx, +2019 _: &P, +2020 _: BlockHeight, +2021 revealed_spent_note_nullifier: Self::Nullifier, +2022 address_type: AddressType, +2023 value: Zatoshis, +2024 _: u32, // the position is not required for computing the Orchard nullifier +2025 rng: &mut R, +2026 ) -> Self::Nullifier { +2027 let (j, scope) = match address_type { +2028 AddressType::DefaultExternal => (0u32.into(), zip32::Scope::External), +2029 AddressType::DiversifiedExternal(idx) => (idx, zip32::Scope::External), +2030 AddressType::Internal => (0u32.into(), zip32::Scope::Internal), +2031 }; +2032 +2033 let (cact, note) = compact_orchard_action( +2034 revealed_spent_note_nullifier, +2035 self.address_at(j, scope), +2036 value, +2037 self.orchard_ovk(scope), +2038 rng, +2039 ); +2040 ctx.actions.push(cact); +2041 +2042 // Return the nullifier of the newly created output note +2043 note.nullifier(self) +2044 } +2045} +2046 +2047/// Configures how a [`TestFvk`] receives a particular output. +2048/// +2049/// Used with [`TestFvk::add_output`] and [`TestFvk::add_logical_action`]. +2050#[derive(Clone, Copy)] +2051pub enum AddressType { +2052 /// The output will be sent to the default address of the full viewing key. +2053 DefaultExternal, +2054 /// The output will be sent to the specified diversified address of the full viewing +2055 /// key. +2056 #[allow(dead_code)] +2057 DiversifiedExternal(DiversifierIndex), +2058 /// The output will be sent to the internal receiver of the full viewing key. +2059 /// +2060 /// Such outputs are treated as "wallet-internal". A "recipient address" is **NEVER** +2061 /// exposed to users. +2062 Internal, +2063} +2064 +2065/// Creates a `CompactSaplingOutput` at the given height paying the given recipient. +2066/// +2067/// Returns the `CompactSaplingOutput` and the new note. +2068fn compact_sapling_output<P: consensus::Parameters, R: RngCore + CryptoRng>( +2069 params: &P, +2070 height: BlockHeight, +2071 recipient: ::sapling::PaymentAddress, +2072 value: Zatoshis, +2073 ovk: Option<::sapling::keys::OutgoingViewingKey>, +2074 rng: &mut R, +2075) -> (CompactSaplingOutput, ::sapling::Note) { +2076 let rseed = generate_random_rseed(zip212_enforcement(params, height), rng); +2077 let note = ::sapling::Note::from_parts( +2078 recipient, +2079 ::sapling::value::NoteValue::from_raw(value.into_u64()), +2080 rseed, +2081 ); +2082 let encryptor = +2083 sapling_note_encryption(ovk, note.clone(), MemoBytes::empty().into_bytes(), rng); +2084 let cmu = note.cmu().to_bytes().to_vec(); +2085 let ephemeral_key = SaplingDomain::epk_bytes(encryptor.epk()).0.to_vec(); +2086 let enc_ciphertext = encryptor.encrypt_note_plaintext(); +2087 +2088 ( +2089 CompactSaplingOutput { +2090 cmu, +2091 ephemeral_key, +2092 ciphertext: enc_ciphertext[..52].to_vec(), +2093 }, +2094 note, +2095 ) +2096} +2097 +2098/// Creates a `CompactOrchardAction` at the given height paying the given recipient. +2099/// +2100/// Returns the `CompactOrchardAction` and the new note. +2101#[cfg(feature = "orchard")] +2102fn compact_orchard_action<R: RngCore + CryptoRng>( +2103 nf_old: ::orchard::note::Nullifier, +2104 recipient: ::orchard::Address, +2105 value: Zatoshis, +2106 ovk: Option<::orchard::keys::OutgoingViewingKey>, +2107 rng: &mut R, +2108) -> (CompactOrchardAction, ::orchard::Note) { +2109 use zcash_note_encryption::ShieldedOutput; +2110 +2111 let (compact_action, note) = ::orchard::note_encryption::testing::fake_compact_action( +2112 rng, +2113 nf_old, +2114 recipient, +2115 ::orchard::value::NoteValue::from_raw(value.into_u64()), +2116 ovk, +2117 ); +2118 +2119 ( +2120 CompactOrchardAction { +2121 nullifier: compact_action.nullifier().to_bytes().to_vec(), +2122 cmx: compact_action.cmx().to_bytes().to_vec(), +2123 ephemeral_key: compact_action.ephemeral_key().0.to_vec(), +2124 ciphertext: compact_action.enc_ciphertext()[..52].to_vec(), +2125 }, +2126 note, +2127 ) +2128} +2129 +2130/// Creates a fake `CompactTx` with a random transaction ID and no spends or outputs. +2131fn fake_compact_tx<R: RngCore + CryptoRng>(rng: &mut R) -> CompactTx { +2132 let mut ctx = CompactTx::default(); +2133 let mut txid = vec![0; 32]; +2134 rng.fill_bytes(&mut txid); +2135 ctx.hash = txid; +2136 +2137 ctx +2138} +2139 +2140/// A fake output of a [`CompactTx`]. +2141/// +2142/// Used with the following block generators: +2143/// - [`TestState::generate_next_block_multi`] +2144/// - [`TestState::generate_block_at`] +2145#[derive(Clone)] +2146pub struct FakeCompactOutput<Fvk> { +2147 fvk: Fvk, +2148 address_type: AddressType, +2149 value: Zatoshis, +2150} +2151 +2152impl<Fvk> FakeCompactOutput<Fvk> { +2153 /// Constructs a new fake output with the given properties. +2154 pub fn new(fvk: Fvk, address_type: AddressType, value: Zatoshis) -> Self { +2155 Self { +2156 fvk, +2157 address_type, +2158 value, +2159 } +2160 } +2161 +2162 /// Constructs a new random fake external output to the given FVK with a value in the range +2163 /// 10000..1000000 ZAT. +2164 pub fn random<R: RngCore>(rng: &mut R, fvk: Fvk) -> Self { +2165 Self { +2166 fvk, +2167 address_type: AddressType::DefaultExternal, +2168 value: Zatoshis::const_from_u64(rng.gen_range(10000..1000000)), +2169 } +2170 } +2171} +2172 +2173/// Create a fake CompactBlock at the given height, containing the specified fake compact outputs. +2174/// +2175/// Returns the newly created compact block, along with the nullifier for each note created in that +2176/// block. +2177#[allow(clippy::too_many_arguments)] +2178fn fake_compact_block<P: consensus::Parameters, Fvk: TestFvk>( +2179 params: &P, +2180 height: BlockHeight, +2181 prev_hash: BlockHash, +2182 outputs: &[FakeCompactOutput<Fvk>], +2183 initial_sapling_tree_size: u32, +2184 initial_orchard_tree_size: u32, +2185 mut rng: impl RngCore + CryptoRng, +2186) -> (CompactBlock, Vec<Fvk::Nullifier>) { +2187 // Create a fake CompactBlock containing the note +2188 let mut ctx = fake_compact_tx(&mut rng); +2189 let mut nfs = vec![]; +2190 for output in outputs { +2191 let nf = output.fvk.add_output( +2192 &mut ctx, +2193 params, +2194 height, +2195 output.address_type, +2196 output.value, +2197 initial_sapling_tree_size, +2198 &mut rng, +2199 ); +2200 nfs.push(nf); +2201 } +2202 +2203 let cb = fake_compact_block_from_compact_tx( +2204 ctx, +2205 height, +2206 prev_hash, +2207 initial_sapling_tree_size, +2208 initial_orchard_tree_size, +2209 rng, +2210 ); +2211 (cb, nfs) +2212} +2213 +2214/// Create a fake CompactBlock at the given height containing only the given transaction. +2215fn fake_compact_block_from_tx( +2216 height: BlockHeight, +2217 prev_hash: BlockHash, +2218 tx_index: usize, +2219 tx: &Transaction, +2220 initial_sapling_tree_size: u32, +2221 initial_orchard_tree_size: u32, +2222 rng: impl RngCore, +2223) -> CompactBlock { +2224 // Create a fake CompactTx containing the transaction. +2225 let mut ctx = CompactTx { +2226 index: tx_index as u64, +2227 hash: tx.txid().as_ref().to_vec(), +2228 ..Default::default() +2229 }; +2230 +2231 if let Some(bundle) = tx.sapling_bundle() { +2232 for spend in bundle.shielded_spends() { +2233 ctx.spends.push(spend.into()); +2234 } +2235 for output in bundle.shielded_outputs() { +2236 ctx.outputs.push(output.into()); +2237 } +2238 } +2239 +2240 #[cfg(feature = "orchard")] +2241 if let Some(bundle) = tx.orchard_bundle() { +2242 for action in bundle.actions() { +2243 ctx.actions.push(action.into()); +2244 } +2245 } +2246 +2247 fake_compact_block_from_compact_tx( +2248 ctx, +2249 height, +2250 prev_hash, +2251 initial_sapling_tree_size, +2252 initial_orchard_tree_size, +2253 rng, +2254 ) +2255} +2256 +2257/// Create a fake CompactBlock at the given height, spending a single note from the +2258/// given address. +2259#[allow(clippy::too_many_arguments)] +2260fn fake_compact_block_spending<P: consensus::Parameters, Fvk: TestFvk>( +2261 params: &P, +2262 height: BlockHeight, +2263 prev_hash: BlockHash, +2264 (nf, in_value): (Fvk::Nullifier, Zatoshis), +2265 fvk: &Fvk, +2266 to: Address, +2267 value: Zatoshis, +2268 initial_sapling_tree_size: u32, +2269 initial_orchard_tree_size: u32, +2270 mut rng: impl RngCore + CryptoRng, +2271) -> CompactBlock { +2272 let mut ctx = fake_compact_tx(&mut rng); +2273 +2274 // Create a fake spend and a fake Note for the change +2275 fvk.add_logical_action( +2276 &mut ctx, +2277 params, +2278 height, +2279 nf, +2280 AddressType::Internal, +2281 (in_value - value).unwrap(), +2282 initial_sapling_tree_size, +2283 &mut rng, +2284 ); +2285 +2286 // Create a fake Note for the payment +2287 match to { +2288 Address::Sapling(recipient) => ctx.outputs.push( +2289 compact_sapling_output( +2290 params, +2291 height, +2292 recipient, +2293 value, +2294 fvk.sapling_ovk(), +2295 &mut rng, +2296 ) +2297 .0, +2298 ), +2299 Address::Transparent(_) | Address::Tex(_) => { +2300 panic!("transparent addresses not supported in compact blocks") +2301 } +2302 Address::Unified(ua) => { +2303 // This is annoying to implement, because the protocol-aware UA type has no +2304 // concept of ZIP 316 preference order. +2305 let mut done = false; +2306 +2307 #[cfg(feature = "orchard")] +2308 if let Some(recipient) = ua.orchard() { +2309 // Generate a dummy nullifier +2310 let nullifier = ::orchard::note::Nullifier::from_bytes( +2311 &pallas::Base::random(&mut rng).to_repr(), +2312 ) +2313 .unwrap(); +2314 +2315 ctx.actions.push( +2316 compact_orchard_action( +2317 nullifier, +2318 *recipient, +2319 value, +2320 fvk.orchard_ovk(zip32::Scope::External), +2321 &mut rng, +2322 ) +2323 .0, +2324 ); +2325 done = true; +2326 } +2327 +2328 if !done { +2329 if let Some(recipient) = ua.sapling() { +2330 ctx.outputs.push( +2331 compact_sapling_output( +2332 params, +2333 height, +2334 *recipient, +2335 value, +2336 fvk.sapling_ovk(), +2337 &mut rng, +2338 ) +2339 .0, +2340 ); +2341 done = true; +2342 } +2343 } +2344 if !done { +2345 panic!("No supported shielded receiver to send funds to"); +2346 } +2347 } +2348 } +2349 +2350 fake_compact_block_from_compact_tx( +2351 ctx, +2352 height, +2353 prev_hash, +2354 initial_sapling_tree_size, +2355 initial_orchard_tree_size, +2356 rng, +2357 ) +2358} +2359 +2360fn fake_compact_block_from_compact_tx( +2361 ctx: CompactTx, +2362 height: BlockHeight, +2363 prev_hash: BlockHash, +2364 initial_sapling_tree_size: u32, +2365 initial_orchard_tree_size: u32, +2366 mut rng: impl RngCore, +2367) -> CompactBlock { +2368 let mut cb = CompactBlock { +2369 hash: { +2370 let mut hash = vec![0; 32]; +2371 rng.fill_bytes(&mut hash); +2372 hash +2373 }, +2374 height: height.into(), +2375 ..Default::default() +2376 }; +2377 cb.prev_hash.extend_from_slice(&prev_hash.0); +2378 cb.vtx.push(ctx); +2379 cb.chain_metadata = Some(compact_formats::ChainMetadata { +2380 sapling_commitment_tree_size: initial_sapling_tree_size +2381 + cb.vtx.iter().map(|tx| tx.outputs.len() as u32).sum::<u32>(), +2382 orchard_commitment_tree_size: initial_orchard_tree_size +2383 + cb.vtx.iter().map(|tx| tx.actions.len() as u32).sum::<u32>(), +2384 }); +2385 cb +2386} +2387 +2388/// Trait used by tests that require a block cache. +2389pub trait TestCache { +2390 type BsError: core::fmt::Debug; +2391 type BlockSource: BlockSource<Error = Self::BsError>; +2392 type InsertResult; +2393 +2394 /// Exposes the block cache as a [`BlockSource`]. +2395 fn block_source(&self) -> &Self::BlockSource; +2396 +2397 /// Inserts a CompactBlock into the cache DB. +2398 fn insert(&mut self, cb: &CompactBlock) -> Self::InsertResult; +2399 +2400 /// Deletes block data from the cache, retaining blocks at heights less than or equal to the +2401 /// specified height. +2402 fn truncate_to_height(&mut self, height: BlockHeight); +2403} +2404 +2405/// A convenience type for the note commitments contained within a [`CompactBlock`]. +2406/// +2407/// Indended for use as (part of) the [`TestCache::InsertResult`] associated type. +2408pub struct NoteCommitments { +2409 sapling: Vec<::sapling::Node>, +2410 #[cfg(feature = "orchard")] +2411 orchard: Vec<MerkleHashOrchard>, +2412} +2413 +2414impl NoteCommitments { +2415 /// Extracts the note commitments from the given compact block. +2416 pub fn from_compact_block(cb: &CompactBlock) -> Self { +2417 NoteCommitments { +2418 sapling: cb +2419 .vtx +2420 .iter() +2421 .flat_map(|tx| { +2422 tx.outputs +2423 .iter() +2424 .map(|out| ::sapling::Node::from_cmu(&out.cmu().unwrap())) +2425 }) +2426 .collect(), +2427 #[cfg(feature = "orchard")] +2428 orchard: cb +2429 .vtx +2430 .iter() +2431 .flat_map(|tx| { +2432 tx.actions +2433 .iter() +2434 .map(|act| MerkleHashOrchard::from_cmx(&act.cmx().unwrap())) +2435 }) +2436 .collect(), +2437 } +2438 } +2439 +2440 /// Returns the Sapling note commitments. +2441 #[allow(dead_code)] +2442 pub fn sapling(&self) -> &[::sapling::Node] { +2443 self.sapling.as_ref() +2444 } +2445 +2446 /// Returns the Orchard note commitments. +2447 #[cfg(feature = "orchard")] +2448 pub fn orchard(&self) -> &[MerkleHashOrchard] { +2449 self.orchard.as_ref() +2450 } +2451} +2452 +2453/// A mock wallet data source that implements the bare minimum necessary to function. +2454pub struct MockWalletDb { +2455 pub network: Network, +2456 pub sapling_tree: ShardTree< +2457 MemoryShardStore<::sapling::Node, BlockHeight>, +2458 { SAPLING_SHARD_HEIGHT * 2 }, +2459 SAPLING_SHARD_HEIGHT, +2460 >, +2461 #[cfg(feature = "orchard")] +2462 pub orchard_tree: ShardTree< +2463 MemoryShardStore<::orchard::tree::MerkleHashOrchard, BlockHeight>, +2464 { ORCHARD_SHARD_HEIGHT * 2 }, +2465 ORCHARD_SHARD_HEIGHT, +2466 >, +2467} +2468 +2469impl MockWalletDb { +2470 /// Constructs a new mock wallet data source. +2471 pub fn new(network: Network) -> Self { +2472 Self { +2473 network, +2474 sapling_tree: ShardTree::new(MemoryShardStore::empty(), 100), +2475 #[cfg(feature = "orchard")] +2476 orchard_tree: ShardTree::new(MemoryShardStore::empty(), 100), +2477 } +2478 } +2479} +2480 +2481impl InputSource for MockWalletDb { +2482 type Error = (); +2483 type NoteRef = u32; +2484 type AccountId = u32; +2485 +2486 fn get_spendable_note( +2487 &self, +2488 _txid: &TxId, +2489 _protocol: ShieldedProtocol, +2490 _index: u32, +2491 ) -> Result<Option<ReceivedNote<Self::NoteRef, Note>>, Self::Error> { +2492 Ok(None) +2493 } +2494 +2495 fn select_spendable_notes( +2496 &self, +2497 _account: Self::AccountId, +2498 _target_value: Zatoshis, +2499 _sources: &[ShieldedProtocol], +2500 _anchor_height: BlockHeight, +2501 _exclude: &[Self::NoteRef], +2502 ) -> Result<SpendableNotes<Self::NoteRef>, Self::Error> { +2503 Ok(SpendableNotes::empty()) +2504 } +2505 +2506 fn get_account_metadata( +2507 &self, +2508 _account: Self::AccountId, +2509 _selector: &NoteFilter, +2510 _exclude: &[Self::NoteRef], +2511 ) -> Result<AccountMeta, Self::Error> { +2512 Err(()) +2513 } +2514} +2515 +2516impl WalletRead for MockWalletDb { +2517 type Error = (); +2518 type AccountId = u32; +2519 type Account = (Self::AccountId, UnifiedFullViewingKey); +2520 +2521 fn get_account_ids(&self) -> Result<Vec<Self::AccountId>, Self::Error> { +2522 Ok(Vec::new()) +2523 } +2524 +2525 fn get_account( +2526 &self, +2527 _account_id: Self::AccountId, +2528 ) -> Result<Option<Self::Account>, Self::Error> { +2529 Ok(None) +2530 } +2531 +2532 fn get_derived_account( +2533 &self, +2534 _seed: &SeedFingerprint, +2535 _account_id: zip32::AccountId, +2536 ) -> Result<Option<Self::Account>, Self::Error> { +2537 Ok(None) +2538 } +2539 +2540 fn validate_seed( +2541 &self, +2542 _account_id: Self::AccountId, +2543 _seed: &SecretVec<u8>, +2544 ) -> Result<bool, Self::Error> { +2545 Ok(false) +2546 } +2547 +2548 fn seed_relevance_to_derived_accounts( +2549 &self, +2550 _seed: &SecretVec<u8>, +2551 ) -> Result<SeedRelevance<Self::AccountId>, Self::Error> { +2552 Ok(SeedRelevance::NoAccounts) +2553 } +2554 +2555 fn get_account_for_ufvk( +2556 &self, +2557 _ufvk: &UnifiedFullViewingKey, +2558 ) -> Result<Option<Self::Account>, Self::Error> { +2559 Ok(None) +2560 } +2561 +2562 fn list_addresses(&self, _account: Self::AccountId) -> Result<Vec<AddressInfo>, Self::Error> { +2563 Ok(vec![]) +2564 } +2565 +2566 fn get_last_generated_address_matching( +2567 &self, +2568 _account: Self::AccountId, +2569 _request: UnifiedAddressRequest, +2570 ) -> Result<Option<UnifiedAddress>, Self::Error> { +2571 Ok(None) +2572 } +2573 +2574 fn get_account_birthday(&self, _account: Self::AccountId) -> Result<BlockHeight, Self::Error> { +2575 Err(()) +2576 } +2577 +2578 fn get_wallet_birthday(&self) -> Result<Option<BlockHeight>, Self::Error> { +2579 Ok(None) +2580 } +2581 +2582 fn get_wallet_summary( +2583 &self, +2584 _min_confirmations: u32, +2585 ) -> Result<Option<WalletSummary<Self::AccountId>>, Self::Error> { +2586 Ok(None) +2587 } +2588 +2589 fn chain_height(&self) -> Result<Option<BlockHeight>, Self::Error> { +2590 Ok(None) +2591 } +2592 +2593 fn get_block_hash(&self, _block_height: BlockHeight) -> Result<Option<BlockHash>, Self::Error> { +2594 Ok(None) +2595 } +2596 +2597 fn block_metadata(&self, _height: BlockHeight) -> Result<Option<BlockMetadata>, Self::Error> { +2598 Ok(None) +2599 } +2600 +2601 fn block_fully_scanned(&self) -> Result<Option<BlockMetadata>, Self::Error> { +2602 Ok(None) +2603 } +2604 +2605 fn get_max_height_hash(&self) -> Result<Option<(BlockHeight, BlockHash)>, Self::Error> { +2606 Ok(None) +2607 } +2608 +2609 fn block_max_scanned(&self) -> Result<Option<BlockMetadata>, Self::Error> { +2610 Ok(None) +2611 } +2612 +2613 fn suggest_scan_ranges(&self) -> Result<Vec<ScanRange>, Self::Error> { +2614 Ok(vec![]) +2615 } +2616 +2617 fn get_target_and_anchor_heights( +2618 &self, +2619 _min_confirmations: NonZeroU32, +2620 ) -> Result<Option<(BlockHeight, BlockHeight)>, Self::Error> { +2621 Ok(None) +2622 } +2623 +2624 fn get_tx_height(&self, _txid: TxId) -> Result<Option<BlockHeight>, Self::Error> { +2625 Ok(None) +2626 } +2627 +2628 fn get_unified_full_viewing_keys( +2629 &self, +2630 ) -> Result<HashMap<Self::AccountId, UnifiedFullViewingKey>, Self::Error> { +2631 Ok(HashMap::new()) +2632 } +2633 +2634 fn get_memo(&self, _id_note: NoteId) -> Result<Option<Memo>, Self::Error> { +2635 Ok(None) +2636 } +2637 +2638 fn get_transaction(&self, _txid: TxId) -> Result<Option<Transaction>, Self::Error> { +2639 Ok(None) +2640 } +2641 +2642 fn get_sapling_nullifiers( +2643 &self, +2644 _query: NullifierQuery, +2645 ) -> Result<Vec<(Self::AccountId, ::sapling::Nullifier)>, Self::Error> { +2646 Ok(Vec::new()) +2647 } +2648 +2649 #[cfg(feature = "orchard")] +2650 fn get_orchard_nullifiers( +2651 &self, +2652 _query: NullifierQuery, +2653 ) -> Result<Vec<(Self::AccountId, ::orchard::note::Nullifier)>, Self::Error> { +2654 Ok(Vec::new()) +2655 } +2656 +2657 #[cfg(feature = "transparent-inputs")] +2658 fn get_transparent_receivers( +2659 &self, +2660 _account: Self::AccountId, +2661 _include_change: bool, +2662 ) -> Result<HashMap<TransparentAddress, Option<TransparentAddressMetadata>>, Self::Error> { +2663 Ok(HashMap::new()) +2664 } +2665 +2666 #[cfg(feature = "transparent-inputs")] +2667 fn get_transparent_balances( +2668 &self, +2669 _account: Self::AccountId, +2670 _max_height: BlockHeight, +2671 ) -> Result<HashMap<TransparentAddress, Zatoshis>, Self::Error> { +2672 Ok(HashMap::new()) +2673 } +2674 +2675 #[cfg(feature = "transparent-inputs")] +2676 fn get_transparent_address_metadata( +2677 &self, +2678 _account: Self::AccountId, +2679 _address: &TransparentAddress, +2680 ) -> Result<Option<TransparentAddressMetadata>, Self::Error> { +2681 Ok(None) +2682 } +2683 +2684 #[cfg(feature = "transparent-inputs")] +2685 fn get_known_ephemeral_addresses( +2686 &self, +2687 _account: Self::AccountId, +2688 _index_range: Option<Range<NonHardenedChildIndex>>, +2689 ) -> Result<Vec<(TransparentAddress, TransparentAddressMetadata)>, Self::Error> { +2690 Ok(vec![]) +2691 } +2692 +2693 #[cfg(feature = "transparent-inputs")] +2694 fn utxo_query_height(&self, _account: Self::AccountId) -> Result<BlockHeight, Self::Error> { +2695 Ok(BlockHeight::from(0u32)) +2696 } +2697 +2698 #[cfg(feature = "transparent-inputs")] +2699 fn find_account_for_ephemeral_address( +2700 &self, +2701 _address: &TransparentAddress, +2702 ) -> Result<Option<Self::AccountId>, Self::Error> { +2703 Ok(None) +2704 } +2705 +2706 fn transaction_data_requests(&self) -> Result<Vec<TransactionDataRequest>, Self::Error> { +2707 Ok(vec![]) +2708 } +2709} +2710 +2711impl WalletWrite for MockWalletDb { +2712 type UtxoRef = u32; +2713 +2714 fn create_account( +2715 &mut self, +2716 _account_name: &str, +2717 seed: &SecretVec<u8>, +2718 _birthday: &AccountBirthday, +2719 _key_source: Option<&str>, +2720 ) -> Result<(Self::AccountId, UnifiedSpendingKey), Self::Error> { +2721 let account = zip32::AccountId::ZERO; +2722 UnifiedSpendingKey::from_seed(&self.network, seed.expose_secret(), account) +2723 .map(|k| (u32::from(account), k)) +2724 .map_err(|_| ()) +2725 } +2726 +2727 fn import_account_hd( +2728 &mut self, +2729 _account_name: &str, +2730 _seed: &SecretVec<u8>, +2731 _account_index: zip32::AccountId, +2732 _birthday: &AccountBirthday, +2733 _key_source: Option<&str>, +2734 ) -> Result<(Self::Account, UnifiedSpendingKey), Self::Error> { +2735 todo!() +2736 } +2737 +2738 fn import_account_ufvk( +2739 &mut self, +2740 _account_name: &str, +2741 _unified_key: &UnifiedFullViewingKey, +2742 _birthday: &AccountBirthday, +2743 _purpose: AccountPurpose, +2744 _key_source: Option<&str>, +2745 ) -> Result<Self::Account, Self::Error> { +2746 todo!() +2747 } +2748 +2749 fn get_next_available_address( +2750 &mut self, +2751 _account: Self::AccountId, +2752 _request: UnifiedAddressRequest, +2753 ) -> Result<Option<(UnifiedAddress, DiversifierIndex)>, Self::Error> { +2754 Ok(None) +2755 } +2756 +2757 fn get_address_for_index( +2758 &mut self, +2759 _account: Self::AccountId, +2760 _diversifier_index: DiversifierIndex, +2761 _request: UnifiedAddressRequest, +2762 ) -> Result<Option<UnifiedAddress>, Self::Error> { +2763 Ok(None) +2764 } +2765 +2766 #[allow(clippy::type_complexity)] +2767 fn put_blocks( +2768 &mut self, +2769 _from_state: &ChainState, +2770 _blocks: Vec<ScannedBlock<Self::AccountId>>, +2771 ) -> Result<(), Self::Error> { +2772 Ok(()) +2773 } +2774 +2775 fn update_chain_tip(&mut self, _tip_height: BlockHeight) -> Result<(), Self::Error> { +2776 Ok(()) +2777 } +2778 +2779 fn store_decrypted_tx( +2780 &mut self, +2781 _received_tx: DecryptedTransaction<Self::AccountId>, +2782 ) -> Result<(), Self::Error> { +2783 Ok(()) +2784 } +2785 +2786 fn store_transactions_to_be_sent( +2787 &mut self, +2788 _transactions: &[SentTransaction<Self::AccountId>], +2789 ) -> Result<(), Self::Error> { +2790 Ok(()) +2791 } +2792 +2793 fn truncate_to_height( +2794 &mut self, +2795 _block_height: BlockHeight, +2796 ) -> Result<BlockHeight, Self::Error> { +2797 Err(()) +2798 } +2799 +2800 /// Adds a transparent UTXO received by the wallet to the data store. +2801 fn put_received_transparent_utxo( +2802 &mut self, +2803 _output: &WalletTransparentOutput, +2804 ) -> Result<Self::UtxoRef, Self::Error> { +2805 Ok(0) +2806 } +2807 +2808 #[cfg(feature = "transparent-inputs")] +2809 fn reserve_next_n_ephemeral_addresses( +2810 &mut self, +2811 _account_id: Self::AccountId, +2812 _n: usize, +2813 ) -> Result<Vec<(TransparentAddress, TransparentAddressMetadata)>, Self::Error> { +2814 Err(()) +2815 } +2816 +2817 fn set_transaction_status( +2818 &mut self, +2819 _txid: TxId, +2820 _status: TransactionStatus, +2821 ) -> Result<(), Self::Error> { +2822 Ok(()) +2823 } +2824} +2825 +2826impl WalletCommitmentTrees for MockWalletDb { +2827 type Error = Infallible; +2828 type SaplingShardStore<'a> = MemoryShardStore<::sapling::Node, BlockHeight>; +2829 +2830 fn with_sapling_tree_mut<F, A, E>(&mut self, mut callback: F) -> Result<A, E> +2831 where +2832 for<'a> F: FnMut( +2833 &'a mut ShardTree< +2834 Self::SaplingShardStore<'a>, +2835 { ::sapling::NOTE_COMMITMENT_TREE_DEPTH }, +2836 SAPLING_SHARD_HEIGHT, +2837 >, +2838 ) -> Result<A, E>, +2839 E: From<ShardTreeError<Infallible>>, +2840 { +2841 callback(&mut self.sapling_tree) +2842 } +2843 +2844 fn put_sapling_subtree_roots( +2845 &mut self, +2846 start_index: u64, +2847 roots: &[CommitmentTreeRoot<::sapling::Node>], +2848 ) -> Result<(), ShardTreeError<Self::Error>> { +2849 self.with_sapling_tree_mut(|t| { +2850 for (root, i) in roots.iter().zip(0u64..) { +2851 let root_addr = incrementalmerkletree::Address::from_parts( +2852 SAPLING_SHARD_HEIGHT.into(), +2853 start_index + i, +2854 ); +2855 t.insert(root_addr, *root.root_hash())?; +2856 } +2857 Ok::<_, ShardTreeError<Self::Error>>(()) +2858 })?; +2859 +2860 Ok(()) +2861 } +2862 +2863 #[cfg(feature = "orchard")] +2864 type OrchardShardStore<'a> = MemoryShardStore<::orchard::tree::MerkleHashOrchard, BlockHeight>; +2865 +2866 #[cfg(feature = "orchard")] +2867 fn with_orchard_tree_mut<F, A, E>(&mut self, mut callback: F) -> Result<A, E> +2868 where +2869 for<'a> F: FnMut( +2870 &'a mut ShardTree< +2871 Self::OrchardShardStore<'a>, +2872 { ORCHARD_SHARD_HEIGHT * 2 }, +2873 ORCHARD_SHARD_HEIGHT, +2874 >, +2875 ) -> Result<A, E>, +2876 E: From<ShardTreeError<Self::Error>>, +2877 { +2878 callback(&mut self.orchard_tree) +2879 } +2880 +2881 /// Adds a sequence of note commitment tree subtree roots to the data store. +2882 #[cfg(feature = "orchard")] +2883 fn put_orchard_subtree_roots( +2884 &mut self, +2885 start_index: u64, +2886 roots: &[CommitmentTreeRoot<::orchard::tree::MerkleHashOrchard>], +2887 ) -> Result<(), ShardTreeError<Self::Error>> { +2888 self.with_orchard_tree_mut(|t| { +2889 for (root, i) in roots.iter().zip(0u64..) { +2890 let root_addr = incrementalmerkletree::Address::from_parts( +2891 ORCHARD_SHARD_HEIGHT.into(), +2892 start_index + i, +2893 ); +2894 t.insert(root_addr, *root.root_hash())?; +2895 } +2896 Ok::<_, ShardTreeError<Self::Error>>(()) +2897 })?; +2898 +2899 Ok(()) +2900 } +2901}
            \ No newline at end of file diff --git a/rustdoc/latest/src/zcash_client_backend/data_api/testing/orchard.rs.html b/rustdoc/latest/src/zcash_client_backend/data_api/testing/orchard.rs.html index eefad6c7a..40fb44f0e 100644 --- a/rustdoc/latest/src/zcash_client_backend/data_api/testing/orchard.rs.html +++ b/rustdoc/latest/src/zcash_client_backend/data_api/testing/orchard.rs.html @@ -1,4 +1,4 @@ -orchard.rs - source

            zcash_client_backend/data_api/testing/
            orchard.rs

            1use std::hash::Hash;
            +orchard.rs - source

            zcash_client_backend/data_api/testing/
            orchard.rs

            1use std::hash::Hash;
             2
             3use ::orchard::{
             4    keys::{FullViewingKey, SpendingKey},
            diff --git a/rustdoc/latest/src/zcash_client_backend/data_api/testing/pool.rs.html b/rustdoc/latest/src/zcash_client_backend/data_api/testing/pool.rs.html
            index 30d1fba98..6ec6020cb 100644
            --- a/rustdoc/latest/src/zcash_client_backend/data_api/testing/pool.rs.html
            +++ b/rustdoc/latest/src/zcash_client_backend/data_api/testing/pool.rs.html
            @@ -1,4 +1,4 @@
            -pool.rs - source

            zcash_client_backend/data_api/testing/
            pool.rs

            1use std::{
            +pool.rs - source

            zcash_client_backend/data_api/testing/
            pool.rs

            1use std::{
             2    cmp::Eq,
             3    convert::Infallible,
             4    hash::Hash,
            diff --git a/rustdoc/latest/src/zcash_client_backend/data_api/testing/sapling.rs.html b/rustdoc/latest/src/zcash_client_backend/data_api/testing/sapling.rs.html
            index c501e2f8b..e56b8ad22 100644
            --- a/rustdoc/latest/src/zcash_client_backend/data_api/testing/sapling.rs.html
            +++ b/rustdoc/latest/src/zcash_client_backend/data_api/testing/sapling.rs.html
            @@ -1,4 +1,4 @@
            -sapling.rs - source

            zcash_client_backend/data_api/testing/
            sapling.rs

            1use std::hash::Hash;
            +sapling.rs - source

            zcash_client_backend/data_api/testing/
            sapling.rs

            1use std::hash::Hash;
             2
             3use incrementalmerkletree::{Hashable, Level};
             4use sapling::{
            diff --git a/rustdoc/latest/src/zcash_client_backend/data_api/testing/transparent.rs.html b/rustdoc/latest/src/zcash_client_backend/data_api/testing/transparent.rs.html
            index b25887e00..4c4fa37b6 100644
            --- a/rustdoc/latest/src/zcash_client_backend/data_api/testing/transparent.rs.html
            +++ b/rustdoc/latest/src/zcash_client_backend/data_api/testing/transparent.rs.html
            @@ -1,4 +1,4 @@
            -transparent.rs - source

            zcash_client_backend/data_api/testing/
            transparent.rs

            1use std::collections::BTreeMap;
            +transparent.rs - source

            zcash_client_backend/data_api/testing/
            transparent.rs

            1use std::collections::BTreeMap;
             2
             3use crate::{
             4    data_api::{
            diff --git a/rustdoc/latest/src/zcash_client_backend/data_api/wallet.rs.html b/rustdoc/latest/src/zcash_client_backend/data_api/wallet.rs.html
            index 04daedb24..0d990920f 100644
            --- a/rustdoc/latest/src/zcash_client_backend/data_api/wallet.rs.html
            +++ b/rustdoc/latest/src/zcash_client_backend/data_api/wallet.rs.html
            @@ -1,4 +1,4 @@
            -wallet.rs - source

            zcash_client_backend/data_api/
            wallet.rs

            1//! # Functions for creating Zcash transactions that spend funds belonging to the wallet
            +wallet.rs - source

            zcash_client_backend/data_api/
            wallet.rs

            1//! # Functions for creating Zcash transactions that spend funds belonging to the wallet
             2//!
             3//! This module contains several different ways of creating Zcash transactions. This module is
             4//! designed around the idea that a Zcash wallet holds its funds in notes in either the Orchard
            diff --git a/rustdoc/latest/src/zcash_client_backend/data_api/wallet/input_selection.rs.html b/rustdoc/latest/src/zcash_client_backend/data_api/wallet/input_selection.rs.html
            index ae4d3ff92..2d0eb483f 100644
            --- a/rustdoc/latest/src/zcash_client_backend/data_api/wallet/input_selection.rs.html
            +++ b/rustdoc/latest/src/zcash_client_backend/data_api/wallet/input_selection.rs.html
            @@ -1,4 +1,4 @@
            -input_selection.rs - source

            zcash_client_backend/data_api/wallet/
            input_selection.rs

            1//! Types related to the process of selecting inputs to be spent given a transaction request.
            +input_selection.rs - source

            zcash_client_backend/data_api/wallet/
            input_selection.rs

            1//! Types related to the process of selecting inputs to be spent given a transaction request.
             2
             3use core::marker::PhantomData;
             4use std::{
            diff --git a/rustdoc/latest/src/zcash_client_backend/decrypt.rs.html b/rustdoc/latest/src/zcash_client_backend/decrypt.rs.html
            index 5e5345458..c622c4a01 100644
            --- a/rustdoc/latest/src/zcash_client_backend/decrypt.rs.html
            +++ b/rustdoc/latest/src/zcash_client_backend/decrypt.rs.html
            @@ -1,4 +1,4 @@
            -decrypt.rs - source

            zcash_client_backend/
            decrypt.rs

            1use std::collections::HashMap;
            +decrypt.rs - source

            zcash_client_backend/
            decrypt.rs

            1use std::collections::HashMap;
             2
             3use sapling::note_encryption::{PreparedIncomingViewingKey, SaplingDomain};
             4use zcash_keys::keys::UnifiedFullViewingKey;
            diff --git a/rustdoc/latest/src/zcash_client_backend/fees.rs.html b/rustdoc/latest/src/zcash_client_backend/fees.rs.html
            index a3b04b17d..17ff72d52 100644
            --- a/rustdoc/latest/src/zcash_client_backend/fees.rs.html
            +++ b/rustdoc/latest/src/zcash_client_backend/fees.rs.html
            @@ -1,4 +1,4 @@
            -fees.rs - source

            zcash_client_backend/
            fees.rs

            1use std::{
            +fees.rs - source

            zcash_client_backend/
            fees.rs

            1use std::{
             2    fmt::{self, Debug, Display},
             3    num::{NonZeroU64, NonZeroUsize},
             4};
            diff --git a/rustdoc/latest/src/zcash_client_backend/fees/common.rs.html b/rustdoc/latest/src/zcash_client_backend/fees/common.rs.html
            index 2a4694e82..27acd6587 100644
            --- a/rustdoc/latest/src/zcash_client_backend/fees/common.rs.html
            +++ b/rustdoc/latest/src/zcash_client_backend/fees/common.rs.html
            @@ -1,4 +1,4 @@
            -common.rs - source

            zcash_client_backend/fees/
            common.rs

            1use core::cmp::{max, min, Ordering};
            +common.rs - source

            zcash_client_backend/fees/
            common.rs

            1use core::cmp::{max, min, Ordering};
             2use std::num::{NonZeroU64, NonZeroUsize};
             3
             4use zcash_primitives::transaction::fees::{
            diff --git a/rustdoc/latest/src/zcash_client_backend/fees/orchard.rs.html b/rustdoc/latest/src/zcash_client_backend/fees/orchard.rs.html
            index e77298df4..aa31b7a12 100644
            --- a/rustdoc/latest/src/zcash_client_backend/fees/orchard.rs.html
            +++ b/rustdoc/latest/src/zcash_client_backend/fees/orchard.rs.html
            @@ -1,4 +1,4 @@
            -orchard.rs - source

            zcash_client_backend/fees/
            orchard.rs

            1//! Types related to computation of fees and change related to the Orchard components
            +orchard.rs - source

            zcash_client_backend/fees/
            orchard.rs

            1//! Types related to computation of fees and change related to the Orchard components
             2//! of a transaction.
             3
             4use std::convert::Infallible;
            diff --git a/rustdoc/latest/src/zcash_client_backend/fees/sapling.rs.html b/rustdoc/latest/src/zcash_client_backend/fees/sapling.rs.html
            index 7f8b4335d..d1afa14fd 100644
            --- a/rustdoc/latest/src/zcash_client_backend/fees/sapling.rs.html
            +++ b/rustdoc/latest/src/zcash_client_backend/fees/sapling.rs.html
            @@ -1,4 +1,4 @@
            -sapling.rs - source

            zcash_client_backend/fees/
            sapling.rs

            1//! Types related to computation of fees and change related to the Sapling components
            +sapling.rs - source

            zcash_client_backend/fees/
            sapling.rs

            1//! Types related to computation of fees and change related to the Sapling components
             2//! of a transaction.
             3
             4use std::convert::Infallible;
            diff --git a/rustdoc/latest/src/zcash_client_backend/fees/standard.rs.html b/rustdoc/latest/src/zcash_client_backend/fees/standard.rs.html
            index d422b7a79..12409808d 100644
            --- a/rustdoc/latest/src/zcash_client_backend/fees/standard.rs.html
            +++ b/rustdoc/latest/src/zcash_client_backend/fees/standard.rs.html
            @@ -1,4 +1,4 @@
            -standard.rs - source

            zcash_client_backend/fees/
            standard.rs

            1//! Change strategies designed for use with a standard fee.
            +standard.rs - source

            zcash_client_backend/fees/
            standard.rs

            1//! Change strategies designed for use with a standard fee.
             2
             3use super::StandardFeeRule;
             4
            diff --git a/rustdoc/latest/src/zcash_client_backend/fees/zip317.rs.html b/rustdoc/latest/src/zcash_client_backend/fees/zip317.rs.html
            index 5578622a0..8b838df4e 100644
            --- a/rustdoc/latest/src/zcash_client_backend/fees/zip317.rs.html
            +++ b/rustdoc/latest/src/zcash_client_backend/fees/zip317.rs.html
            @@ -1,4 +1,4 @@
            -zip317.rs - source

            zcash_client_backend/fees/
            zip317.rs

            1//! Change strategies designed to implement the ZIP 317 fee rules.
            +zip317.rs - source

            zcash_client_backend/fees/
            zip317.rs

            1//! Change strategies designed to implement the ZIP 317 fee rules.
             2//!
             3//! Change selection in ZIP 317 requires careful handling of low-valued inputs
             4//! to ensure that inputs added to a transaction do not cause fees to rise by
            diff --git a/rustdoc/latest/src/zcash_client_backend/lib.rs.html b/rustdoc/latest/src/zcash_client_backend/lib.rs.html
            index d6184550d..181588e12 100644
            --- a/rustdoc/latest/src/zcash_client_backend/lib.rs.html
            +++ b/rustdoc/latest/src/zcash_client_backend/lib.rs.html
            @@ -1,4 +1,4 @@
            -lib.rs - source

            zcash_client_backend/
            lib.rs

            1//! *A crate for implementing Zcash light clients.*
            +lib.rs - source

            zcash_client_backend/
            lib.rs

            1//! *A crate for implementing Zcash light clients.*
             2//!
             3//! `zcash_client_backend` contains Rust structs and traits for creating shielded Zcash
             4//! light clients.
            diff --git a/rustdoc/latest/src/zcash_client_backend/proposal.rs.html b/rustdoc/latest/src/zcash_client_backend/proposal.rs.html
            index dbd94be77..44de75ae2 100644
            --- a/rustdoc/latest/src/zcash_client_backend/proposal.rs.html
            +++ b/rustdoc/latest/src/zcash_client_backend/proposal.rs.html
            @@ -1,4 +1,4 @@
            -proposal.rs - source

            zcash_client_backend/
            proposal.rs

            1//! Types related to the construction and evaluation of transaction proposals.
            +proposal.rs - source

            zcash_client_backend/
            proposal.rs

            1//! Types related to the construction and evaluation of transaction proposals.
             2
             3use std::{
             4    collections::{BTreeMap, BTreeSet},
            diff --git a/rustdoc/latest/src/zcash_client_backend/proto.rs.html b/rustdoc/latest/src/zcash_client_backend/proto.rs.html
            index 645dc76ea..0475754be 100644
            --- a/rustdoc/latest/src/zcash_client_backend/proto.rs.html
            +++ b/rustdoc/latest/src/zcash_client_backend/proto.rs.html
            @@ -1,4 +1,4 @@
            -proto.rs - source

            zcash_client_backend/
            proto.rs

            1//! This module contains generated code for handling light client protobuf structs.
            +proto.rs - source

            zcash_client_backend/
            proto.rs

            1//! This module contains generated code for handling light client protobuf structs.
             2
             3use incrementalmerkletree::frontier::CommitmentTree;
             4use nonempty::NonEmpty;
            diff --git a/rustdoc/latest/src/zcash_client_backend/proto/compact_formats.rs.html b/rustdoc/latest/src/zcash_client_backend/proto/compact_formats.rs.html
            index 4fa5d679f..1a36639ff 100644
            --- a/rustdoc/latest/src/zcash_client_backend/proto/compact_formats.rs.html
            +++ b/rustdoc/latest/src/zcash_client_backend/proto/compact_formats.rs.html
            @@ -1,4 +1,4 @@
            -compact_formats.rs - source

            zcash_client_backend/proto/
            compact_formats.rs

            1// This file is @generated by prost-build.
            +compact_formats.rs - source

            zcash_client_backend/proto/
            compact_formats.rs

            1// This file is @generated by prost-build.
             2/// Information about the state of the chain as of a given block.
             3#[derive(Clone, Copy, PartialEq, ::prost::Message)]
             4pub struct ChainMetadata {
            diff --git a/rustdoc/latest/src/zcash_client_backend/proto/proposal.rs.html b/rustdoc/latest/src/zcash_client_backend/proto/proposal.rs.html
            index 17004123a..fe603dbb1 100644
            --- a/rustdoc/latest/src/zcash_client_backend/proto/proposal.rs.html
            +++ b/rustdoc/latest/src/zcash_client_backend/proto/proposal.rs.html
            @@ -1,4 +1,4 @@
            -proposal.rs - source

            zcash_client_backend/proto/
            proposal.rs

            1// This file is @generated by prost-build.
            +proposal.rs - source

            zcash_client_backend/proto/
            proposal.rs

            1// This file is @generated by prost-build.
             2/// A data structure that describes a series of transactions to be created.
             3#[derive(Clone, PartialEq, ::prost::Message)]
             4pub struct Proposal {
            diff --git a/rustdoc/latest/src/zcash_client_backend/proto/service.rs.html b/rustdoc/latest/src/zcash_client_backend/proto/service.rs.html
            index b03feb704..1dc873b74 100644
            --- a/rustdoc/latest/src/zcash_client_backend/proto/service.rs.html
            +++ b/rustdoc/latest/src/zcash_client_backend/proto/service.rs.html
            @@ -1,4 +1,4 @@
            -service.rs - source

            zcash_client_backend/proto/
            service.rs

            1// This file is @generated by prost-build.
            +service.rs - source

            zcash_client_backend/proto/
            service.rs

            1// This file is @generated by prost-build.
             2/// A BlockID message contains identifiers to select a block: a height or a
             3/// hash. Specification by hash is not implemented, but may be in the future.
             4#[derive(Clone, PartialEq, ::prost::Message)]
            diff --git a/rustdoc/latest/src/zcash_client_backend/scan.rs.html b/rustdoc/latest/src/zcash_client_backend/scan.rs.html
            index 5c7bec3dc..e19c32af6 100644
            --- a/rustdoc/latest/src/zcash_client_backend/scan.rs.html
            +++ b/rustdoc/latest/src/zcash_client_backend/scan.rs.html
            @@ -1,4 +1,4 @@
            -scan.rs - source

            zcash_client_backend/
            scan.rs

            1use crossbeam_channel as channel;
            +scan.rs - source

            zcash_client_backend/
            scan.rs

            1use crossbeam_channel as channel;
             2use std::collections::HashMap;
             3use std::fmt;
             4use std::mem;
            diff --git a/rustdoc/latest/src/zcash_client_backend/scanning.rs.html b/rustdoc/latest/src/zcash_client_backend/scanning.rs.html
            index fe5565841..8ddeb941b 100644
            --- a/rustdoc/latest/src/zcash_client_backend/scanning.rs.html
            +++ b/rustdoc/latest/src/zcash_client_backend/scanning.rs.html
            @@ -1,4 +1,4 @@
            -scanning.rs - source

            zcash_client_backend/
            scanning.rs

            1//! Tools for scanning a compact representation of the Zcash block chain.
            +scanning.rs - source

            zcash_client_backend/
            scanning.rs

            1//! Tools for scanning a compact representation of the Zcash block chain.
             2
             3use std::collections::{HashMap, HashSet};
             4use std::convert::TryFrom;
            diff --git a/rustdoc/latest/src/zcash_client_backend/serialization.rs.html b/rustdoc/latest/src/zcash_client_backend/serialization.rs.html
            index 20377dfa7..f2c69dd57 100644
            --- a/rustdoc/latest/src/zcash_client_backend/serialization.rs.html
            +++ b/rustdoc/latest/src/zcash_client_backend/serialization.rs.html
            @@ -1 +1 @@
            -serialization.rs - source

            zcash_client_backend/
            serialization.rs

            1pub mod shardtree;
            \ No newline at end of file +serialization.rs - source

            zcash_client_backend/
            serialization.rs

            1pub mod shardtree;
            \ No newline at end of file diff --git a/rustdoc/latest/src/zcash_client_backend/serialization/shardtree.rs.html b/rustdoc/latest/src/zcash_client_backend/serialization/shardtree.rs.html index a4bac007e..ba1058a37 100644 --- a/rustdoc/latest/src/zcash_client_backend/serialization/shardtree.rs.html +++ b/rustdoc/latest/src/zcash_client_backend/serialization/shardtree.rs.html @@ -1,4 +1,4 @@ -shardtree.rs - source

            zcash_client_backend/serialization/
            shardtree.rs

            1//! Serialization formats for data stored as SQLite BLOBs
            +shardtree.rs - source

            zcash_client_backend/serialization/
            shardtree.rs

            1//! Serialization formats for data stored as SQLite BLOBs
             2
             3use byteorder::{ReadBytesExt, WriteBytesExt};
             4use core::ops::Deref;
            diff --git a/rustdoc/latest/src/zcash_client_backend/sync.rs.html b/rustdoc/latest/src/zcash_client_backend/sync.rs.html
            index 6e35b904b..825704cea 100644
            --- a/rustdoc/latest/src/zcash_client_backend/sync.rs.html
            +++ b/rustdoc/latest/src/zcash_client_backend/sync.rs.html
            @@ -1,4 +1,4 @@
            -sync.rs - source

            zcash_client_backend/
            sync.rs

            1//! Implementation of the synchronization flow described in the crate root.
            +sync.rs - source

            zcash_client_backend/
            sync.rs

            1//! Implementation of the synchronization flow described in the crate root.
             2//!
             3//! This is currently a simple implementation that does not yet implement a few features:
             4//!
            diff --git a/rustdoc/latest/src/zcash_client_backend/wallet.rs.html b/rustdoc/latest/src/zcash_client_backend/wallet.rs.html
            index 5b7543648..4891598b3 100644
            --- a/rustdoc/latest/src/zcash_client_backend/wallet.rs.html
            +++ b/rustdoc/latest/src/zcash_client_backend/wallet.rs.html
            @@ -1,4 +1,4 @@
            -wallet.rs - source

            zcash_client_backend/
            wallet.rs

            1//! Structs representing transaction data scanned from the block chain by a wallet or
            +wallet.rs - source

            zcash_client_backend/
            wallet.rs

            1//! Structs representing transaction data scanned from the block chain by a wallet or
             2//! light client.
             3
             4use incrementalmerkletree::Position;
            diff --git a/rustdoc/latest/src/zcash_client_sqlite/chain.rs.html b/rustdoc/latest/src/zcash_client_sqlite/chain.rs.html
            index c377c44e7..7cf53b70c 100644
            --- a/rustdoc/latest/src/zcash_client_sqlite/chain.rs.html
            +++ b/rustdoc/latest/src/zcash_client_sqlite/chain.rs.html
            @@ -1,4 +1,4 @@
            -chain.rs - source

            zcash_client_sqlite/
            chain.rs

            1//! Functions for enforcing chain validity and handling chain reorgs.
            +chain.rs - source

            zcash_client_sqlite/
            chain.rs

            1//! Functions for enforcing chain validity and handling chain reorgs.
             2
             3use prost::Message;
             4use rusqlite::params;
            diff --git a/rustdoc/latest/src/zcash_client_sqlite/chain/init.rs.html b/rustdoc/latest/src/zcash_client_sqlite/chain/init.rs.html
            index 86ccd0d56..27d7127cd 100644
            --- a/rustdoc/latest/src/zcash_client_sqlite/chain/init.rs.html
            +++ b/rustdoc/latest/src/zcash_client_sqlite/chain/init.rs.html
            @@ -1,4 +1,4 @@
            -init.rs - source

            zcash_client_sqlite/chain/
            init.rs

            1//! Functions for initializing the various databases.
            +init.rs - source

            zcash_client_sqlite/chain/
            init.rs

            1//! Functions for initializing the various databases.
             2use crate::BlockDb;
             3
             4#[cfg(feature = "unstable")]
            diff --git a/rustdoc/latest/src/zcash_client_sqlite/chain/migrations.rs.html b/rustdoc/latest/src/zcash_client_sqlite/chain/migrations.rs.html
            index 74a719f48..2c34edfba 100644
            --- a/rustdoc/latest/src/zcash_client_sqlite/chain/migrations.rs.html
            +++ b/rustdoc/latest/src/zcash_client_sqlite/chain/migrations.rs.html
            @@ -1 +1 @@
            -migrations.rs - source

            zcash_client_sqlite/chain/
            migrations.rs

            1pub mod blockmeta;
            \ No newline at end of file +migrations.rs - source

            zcash_client_sqlite/chain/
            migrations.rs

            1pub mod blockmeta;
            \ No newline at end of file diff --git a/rustdoc/latest/src/zcash_client_sqlite/chain/migrations/blockmeta.rs.html b/rustdoc/latest/src/zcash_client_sqlite/chain/migrations/blockmeta.rs.html index d6cd2fbe0..8c2446d41 100644 --- a/rustdoc/latest/src/zcash_client_sqlite/chain/migrations/blockmeta.rs.html +++ b/rustdoc/latest/src/zcash_client_sqlite/chain/migrations/blockmeta.rs.html @@ -1,4 +1,4 @@ -blockmeta.rs - source

            zcash_client_sqlite/chain/migrations/
            blockmeta.rs

            1use schemerz_rusqlite::RusqliteMigration;
            +blockmeta.rs - source

            zcash_client_sqlite/chain/migrations/
            blockmeta.rs

            1use schemerz_rusqlite::RusqliteMigration;
             2
             3pub fn all_migrations() -> Vec<Box<dyn RusqliteMigration<Error = rusqlite::Error>>> {
             4    vec![Box::new(init::Migration {})]
            diff --git a/rustdoc/latest/src/zcash_client_sqlite/error.rs.html b/rustdoc/latest/src/zcash_client_sqlite/error.rs.html
            index d12ecccb2..8d502866b 100644
            --- a/rustdoc/latest/src/zcash_client_sqlite/error.rs.html
            +++ b/rustdoc/latest/src/zcash_client_sqlite/error.rs.html
            @@ -1,4 +1,4 @@
            -error.rs - source

            zcash_client_sqlite/
            error.rs

            1//! Error types for problems that may arise when reading or storing wallet data to SQLite.
            +error.rs - source

            zcash_client_sqlite/
            error.rs

            1//! Error types for problems that may arise when reading or storing wallet data to SQLite.
             2
             3use std::error;
             4use std::fmt;
            diff --git a/rustdoc/latest/src/zcash_client_sqlite/lib.rs.html b/rustdoc/latest/src/zcash_client_sqlite/lib.rs.html
            index 3eb10c177..84e548a7f 100644
            --- a/rustdoc/latest/src/zcash_client_sqlite/lib.rs.html
            +++ b/rustdoc/latest/src/zcash_client_sqlite/lib.rs.html
            @@ -1,4 +1,4 @@
            -lib.rs - source

            zcash_client_sqlite/
            lib.rs

            1//! *An SQLite-based Zcash light client.*
            +lib.rs - source

            zcash_client_sqlite/
            lib.rs

            1//! *An SQLite-based Zcash light client.*
             2//!
             3//! `zcash_client_sqlite` contains complete SQLite-based implementations of the [`WalletRead`],
             4//! [`WalletWrite`], and [`BlockSource`] traits from the [`zcash_client_backend`] crate. In
            diff --git a/rustdoc/latest/src/zcash_client_sqlite/util.rs.html b/rustdoc/latest/src/zcash_client_sqlite/util.rs.html
            index df46ed12e..bec608704 100644
            --- a/rustdoc/latest/src/zcash_client_sqlite/util.rs.html
            +++ b/rustdoc/latest/src/zcash_client_sqlite/util.rs.html
            @@ -1,4 +1,4 @@
            -util.rs - source

            zcash_client_sqlite/
            util.rs

            1//! Types that should be part of the standard library, but aren't.
            +util.rs - source

            zcash_client_sqlite/
            util.rs

            1//! Types that should be part of the standard library, but aren't.
             2
             3use std::time::SystemTime;
             4
            diff --git a/rustdoc/latest/src/zcash_client_sqlite/wallet.rs.html b/rustdoc/latest/src/zcash_client_sqlite/wallet.rs.html
            index 4bee6a0e9..eb2e0d7c8 100644
            --- a/rustdoc/latest/src/zcash_client_sqlite/wallet.rs.html
            +++ b/rustdoc/latest/src/zcash_client_sqlite/wallet.rs.html
            @@ -1,4 +1,4 @@
            -wallet.rs - source

            zcash_client_sqlite/
            wallet.rs

            1//! Functions for querying information in the wallet database.
            +wallet.rs - source

            zcash_client_sqlite/
            wallet.rs

            1//! Functions for querying information in the wallet database.
             2//!
             3//! These functions should generally not be used directly; instead,
             4//! their functionality is available via the [`WalletRead`] and
            diff --git a/rustdoc/latest/src/zcash_client_sqlite/wallet/commitment_tree.rs.html b/rustdoc/latest/src/zcash_client_sqlite/wallet/commitment_tree.rs.html
            index 9663bba09..f6b798847 100644
            --- a/rustdoc/latest/src/zcash_client_sqlite/wallet/commitment_tree.rs.html
            +++ b/rustdoc/latest/src/zcash_client_sqlite/wallet/commitment_tree.rs.html
            @@ -1,4 +1,4 @@
            -commitment_tree.rs - source

            zcash_client_sqlite/wallet/
            commitment_tree.rs

            1use rusqlite::{self, named_params, OptionalExtension};
            +commitment_tree.rs - source

            zcash_client_sqlite/wallet/
            commitment_tree.rs

            1use rusqlite::{self, named_params, OptionalExtension};
             2use std::{
             3    collections::BTreeSet,
             4    error, fmt,
            diff --git a/rustdoc/latest/src/zcash_client_sqlite/wallet/common.rs.html b/rustdoc/latest/src/zcash_client_sqlite/wallet/common.rs.html
            index 18b73cd5e..e8a3c18da 100644
            --- a/rustdoc/latest/src/zcash_client_sqlite/wallet/common.rs.html
            +++ b/rustdoc/latest/src/zcash_client_sqlite/wallet/common.rs.html
            @@ -1,4 +1,4 @@
            -common.rs - source

            zcash_client_sqlite/wallet/
            common.rs

            1//! Functions common to Sapling and Orchard support in the wallet.
            +common.rs - source

            zcash_client_sqlite/wallet/
            common.rs

            1//! Functions common to Sapling and Orchard support in the wallet.
             2
             3use incrementalmerkletree::Position;
             4use rusqlite::{named_params, types::Value, Connection, Row};
            diff --git a/rustdoc/latest/src/zcash_client_sqlite/wallet/db.rs.html b/rustdoc/latest/src/zcash_client_sqlite/wallet/db.rs.html
            index eab7925de..b70018ddb 100644
            --- a/rustdoc/latest/src/zcash_client_sqlite/wallet/db.rs.html
            +++ b/rustdoc/latest/src/zcash_client_sqlite/wallet/db.rs.html
            @@ -1,4 +1,4 @@
            -db.rs - source

            zcash_client_sqlite/wallet/
            db.rs

            1//! Documentation about the wallet database structure.
            +db.rs - source

            zcash_client_sqlite/wallet/
            db.rs

            1//! Documentation about the wallet database structure.
             2//!
             3//! The database structure is managed by [`crate::wallet::init::WalletMigrator`], which
             4//! applies migrations (defined in `crate::wallet::init::migrations`) that produce the
            diff --git a/rustdoc/latest/src/zcash_client_sqlite/wallet/encoding.rs.html b/rustdoc/latest/src/zcash_client_sqlite/wallet/encoding.rs.html
            index 104388c6d..e2d407f85 100644
            --- a/rustdoc/latest/src/zcash_client_sqlite/wallet/encoding.rs.html
            +++ b/rustdoc/latest/src/zcash_client_sqlite/wallet/encoding.rs.html
            @@ -1,4 +1,4 @@
            -encoding.rs - source

            zcash_client_sqlite/wallet/
            encoding.rs

            1//! Functions and types related to encoding and decoding wallet data for storage in the wallet
            +encoding.rs - source

            zcash_client_sqlite/wallet/
            encoding.rs

            1//! Functions and types related to encoding and decoding wallet data for storage in the wallet
             2//! database.
             3
             4use bitflags::bitflags;
            diff --git a/rustdoc/latest/src/zcash_client_sqlite/wallet/init.rs.html b/rustdoc/latest/src/zcash_client_sqlite/wallet/init.rs.html
            index d5e684adb..220fd50b0 100644
            --- a/rustdoc/latest/src/zcash_client_sqlite/wallet/init.rs.html
            +++ b/rustdoc/latest/src/zcash_client_sqlite/wallet/init.rs.html
            @@ -1,4 +1,4 @@
            -init.rs - source

            zcash_client_sqlite/wallet/
            init.rs

            1//! Functions for initializing the various databases.
            +init.rs - source

            zcash_client_sqlite/wallet/
            init.rs

            1//! Functions for initializing the various databases.
             2
             3use std::borrow::BorrowMut;
             4use std::fmt;
            @@ -1137,7 +1137,7 @@
             1137            )?;
             1138
             1139            let tx = TransactionData::from_parts(
            -1140                TxVersion::Sapling,
            +1140                TxVersion::V4,
             1141                BranchId::Canopy,
             1142                0,
             1143                BlockHeight::from(0),
            diff --git a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations.rs.html b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations.rs.html
            index d0fbd72eb..eb32b7e2f 100644
            --- a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations.rs.html
            +++ b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations.rs.html
            @@ -1,4 +1,4 @@
            -migrations.rs - source

            zcash_client_sqlite/wallet/init/
            migrations.rs

            1//! Migrations for the `zcash_client_sqlite` wallet database.
            +migrations.rs - source

            zcash_client_sqlite/wallet/init/
            migrations.rs

            1//! Migrations for the `zcash_client_sqlite` wallet database.
             2//!
             3//! The constants in this module cover all states of the migration DAG that have been
             4//! exposed in a public crate release, in the order that crate users would have
            diff --git a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/add_account_birthdays.rs.html b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/add_account_birthdays.rs.html
            index 98df576e0..f39625fc4 100644
            --- a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/add_account_birthdays.rs.html
            +++ b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/add_account_birthdays.rs.html
            @@ -1,4 +1,4 @@
            -add_account_birthdays.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            add_account_birthdays.rs

            1//! This migration adds a birthday height to each account record.
            +add_account_birthdays.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            add_account_birthdays.rs

            1//! This migration adds a birthday height to each account record.
             2
             3use std::collections::HashSet;
             4
            diff --git a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/add_account_uuids.rs.html b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/add_account_uuids.rs.html
            index f2bdc2543..29ace07d1 100644
            --- a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/add_account_uuids.rs.html
            +++ b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/add_account_uuids.rs.html
            @@ -1,4 +1,4 @@
            -add_account_uuids.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            add_account_uuids.rs

            1//! This migration adds a UUID to each account record, and adds `name` and `key_source` columns. In
            +add_account_uuids.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            add_account_uuids.rs

            1//! This migration adds a UUID to each account record, and adds `name` and `key_source` columns. In
             2//! addition, imported account records are now permitted to include key derivation metadata.
             3
             4use std::collections::HashSet;
            diff --git a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/add_transaction_views.rs.html b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/add_transaction_views.rs.html
            index 928d5165f..107728412 100644
            --- a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/add_transaction_views.rs.html
            +++ b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/add_transaction_views.rs.html
            @@ -1,4 +1,4 @@
            -add_transaction_views.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            add_transaction_views.rs

            1//! Migration that adds transaction summary views & add fee information to transactions.
            +add_transaction_views.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            add_transaction_views.rs

            1//! Migration that adds transaction summary views & add fee information to transactions.
             2use std::collections::HashSet;
             3
             4use rusqlite::{self, types::ToSql, OptionalExtension};
            @@ -420,7 +420,7 @@
             420
             421        // create a UTXO to spend
             422        let tx = TransactionData::from_parts(
            -423            TxVersion::Sapling,
            +423            TxVersion::V4,
             424            BranchId::Canopy,
             425            0,
             426            BlockHeight::from(3),
            diff --git a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/add_utxo_account.rs.html b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/add_utxo_account.rs.html
            index cff6c2f51..4cd3d50c6 100644
            --- a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/add_utxo_account.rs.html
            +++ b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/add_utxo_account.rs.html
            @@ -1,4 +1,4 @@
            -add_utxo_account.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            add_utxo_account.rs

            1//! A migration that adds an identifier for the account that received a UTXO to the utxos table
            +add_utxo_account.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            add_utxo_account.rs

            1//! A migration that adds an identifier for the account that received a UTXO to the utxos table
             2
             3use schemerz_rusqlite::RusqliteMigration;
             4use std::collections::HashSet;
            diff --git a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/addresses_table.rs.html b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/addresses_table.rs.html
            index d5330cf0d..ca6375a51 100644
            --- a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/addresses_table.rs.html
            +++ b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/addresses_table.rs.html
            @@ -1,4 +1,4 @@
            -addresses_table.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            addresses_table.rs

            1use std::collections::HashSet;
            +addresses_table.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            addresses_table.rs

            1use std::collections::HashSet;
             2
             3use rusqlite::{named_params, Transaction};
             4use schemerz_rusqlite::RusqliteMigration;
            diff --git a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/ensure_default_transparent_address.rs.html b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/ensure_default_transparent_address.rs.html
            index b6516fd26..12c04d444 100644
            --- a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/ensure_default_transparent_address.rs.html
            +++ b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/ensure_default_transparent_address.rs.html
            @@ -1,4 +1,4 @@
            -ensure_default_transparent_address.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            ensure_default_transparent_address.rs

            1//! Ensures that an external transparent address exists in the `addresses` table for each
            +ensure_default_transparent_address.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            ensure_default_transparent_address.rs

            1//! Ensures that an external transparent address exists in the `addresses` table for each
             2//! non-hardened child index starting at index 0 and ending at the index corresponding to default
             3//! address for the account.
             4
            diff --git a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/ensure_orchard_ua_receiver.rs.html b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/ensure_orchard_ua_receiver.rs.html
            index aa577428a..87a853c5a 100644
            --- a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/ensure_orchard_ua_receiver.rs.html
            +++ b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/ensure_orchard_ua_receiver.rs.html
            @@ -1,4 +1,4 @@
            -ensure_orchard_ua_receiver.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            ensure_orchard_ua_receiver.rs

            1//! This migration ensures that an Orchard receiver exists in the wallet's default Unified address.
            +ensure_orchard_ua_receiver.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            ensure_orchard_ua_receiver.rs

            1//! This migration ensures that an Orchard receiver exists in the wallet's default Unified address.
             2use std::collections::HashSet;
             3
             4use rusqlite::named_params;
            diff --git a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/ephemeral_addresses.rs.html b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/ephemeral_addresses.rs.html
            index 067eff18f..a3fa759f4 100644
            --- a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/ephemeral_addresses.rs.html
            +++ b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/ephemeral_addresses.rs.html
            @@ -1,4 +1,4 @@
            -ephemeral_addresses.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            ephemeral_addresses.rs

            1//! The migration that records ephemeral addresses for each account.
            +ephemeral_addresses.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            ephemeral_addresses.rs

            1//! The migration that records ephemeral addresses for each account.
             2use std::collections::HashSet;
             3
             4use schemerz_rusqlite::RusqliteMigration;
            diff --git a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/fix_bad_change_flagging.rs.html b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/fix_bad_change_flagging.rs.html
            index 24be1f0aa..c9a5d95e7 100644
            --- a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/fix_bad_change_flagging.rs.html
            +++ b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/fix_bad_change_flagging.rs.html
            @@ -1,4 +1,4 @@
            -fix_bad_change_flagging.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            fix_bad_change_flagging.rs

            1//! Sets the `is_change` flag on output notes received by an internal key when input value was
            +fix_bad_change_flagging.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            fix_bad_change_flagging.rs

            1//! Sets the `is_change` flag on output notes received by an internal key when input value was
             2//! provided from the account corresponding to that key.
             3use std::collections::HashSet;
             4
            diff --git a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/fix_broken_commitment_trees.rs.html b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/fix_broken_commitment_trees.rs.html
            index ad32b1612..79f08003b 100644
            --- a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/fix_broken_commitment_trees.rs.html
            +++ b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/fix_broken_commitment_trees.rs.html
            @@ -1,4 +1,4 @@
            -fix_broken_commitment_trees.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            fix_broken_commitment_trees.rs

            1//! Truncates away bad note commitment tree state for users whose wallets were broken by incorrect
            +fix_broken_commitment_trees.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            fix_broken_commitment_trees.rs

            1//! Truncates away bad note commitment tree state for users whose wallets were broken by incorrect
             2//! reorg handling.
             3use std::collections::HashSet;
             4
            diff --git a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/fix_transparent_received_outputs.rs.html b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/fix_transparent_received_outputs.rs.html
            index ff08fbeb5..5a7d9f722 100644
            --- a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/fix_transparent_received_outputs.rs.html
            +++ b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/fix_transparent_received_outputs.rs.html
            @@ -1,4 +1,4 @@
            -fix_transparent_received_outputs.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            fix_transparent_received_outputs.rs

            1//! Fixes the `transparent_received_outputs` table schema to not depend on feature flags.
            +fix_transparent_received_outputs.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            fix_transparent_received_outputs.rs

            1//! Fixes the `transparent_received_outputs` table schema to not depend on feature flags.
             2use std::collections::HashSet;
             3
             4use schemerz_rusqlite::RusqliteMigration;
            diff --git a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/full_account_ids.rs.html b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/full_account_ids.rs.html
            index a7a0772d9..aeecc5746 100644
            --- a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/full_account_ids.rs.html
            +++ b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/full_account_ids.rs.html
            @@ -1,4 +1,4 @@
            -full_account_ids.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            full_account_ids.rs

            1use std::{collections::HashSet, rc::Rc};
            +full_account_ids.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            full_account_ids.rs

            1use std::{collections::HashSet, rc::Rc};
             2
             3use rusqlite::{named_params, OptionalExtension, Transaction};
             4use schemerz_rusqlite::RusqliteMigration;
            diff --git a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/initial_setup.rs.html b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/initial_setup.rs.html
            index 9a6bfb0c0..0f9b155cd 100644
            --- a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/initial_setup.rs.html
            +++ b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/initial_setup.rs.html
            @@ -1,4 +1,4 @@
            -initial_setup.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            initial_setup.rs

            1//! The migration that performs the initial setup of the wallet database.
            +initial_setup.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            initial_setup.rs

            1//! The migration that performs the initial setup of the wallet database.
             2use std::collections::HashSet;
             3
             4use schemerz_rusqlite::RusqliteMigration;
            diff --git a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/nullifier_map.rs.html b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/nullifier_map.rs.html
            index d067c1ab5..4dd15d007 100644
            --- a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/nullifier_map.rs.html
            +++ b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/nullifier_map.rs.html
            @@ -1,4 +1,4 @@
            -nullifier_map.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            nullifier_map.rs

            1//! This migration adds a table for storing mappings from nullifiers to the transaction
            +nullifier_map.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            nullifier_map.rs

            1//! This migration adds a table for storing mappings from nullifiers to the transaction
             2//! they are revealed in.
             3
             4use std::collections::HashSet;
            diff --git a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/orchard_received_notes.rs.html b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/orchard_received_notes.rs.html
            index ddd0cd62e..896d87fb0 100644
            --- a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/orchard_received_notes.rs.html
            +++ b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/orchard_received_notes.rs.html
            @@ -1,4 +1,4 @@
            -orchard_received_notes.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            orchard_received_notes.rs

            1//! This migration adds tables to the wallet database that are needed to persist Orchard received
            +orchard_received_notes.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            orchard_received_notes.rs

            1//! This migration adds tables to the wallet database that are needed to persist Orchard received
             2//! notes.
             3
             4use std::collections::HashSet;
            diff --git a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/orchard_shardtree.rs.html b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/orchard_shardtree.rs.html
            index 4fc0f98e7..394f6d7c4 100644
            --- a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/orchard_shardtree.rs.html
            +++ b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/orchard_shardtree.rs.html
            @@ -1,4 +1,4 @@
            -orchard_shardtree.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            orchard_shardtree.rs

            1//! This migration adds tables to the wallet database that are needed to persist Orchard note
            +orchard_shardtree.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            orchard_shardtree.rs

            1//! This migration adds tables to the wallet database that are needed to persist Orchard note
             2//! commitment tree data using the `shardtree` crate.
             3
             4use std::collections::HashSet;
            diff --git a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/received_notes_nullable_nf.rs.html b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/received_notes_nullable_nf.rs.html
            index 36a74c3a8..f74b22309 100644
            --- a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/received_notes_nullable_nf.rs.html
            +++ b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/received_notes_nullable_nf.rs.html
            @@ -1,4 +1,4 @@
            -received_notes_nullable_nf.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            received_notes_nullable_nf.rs

            1//! A migration that renames the `received_notes` table to `sapling_received_notes`
            +received_notes_nullable_nf.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            received_notes_nullable_nf.rs

            1//! A migration that renames the `received_notes` table to `sapling_received_notes`
             2//! and makes the `nf` column nullable. This allows change notes to be added to the
             3//! table prior to being mined.
             4use std::collections::HashSet;
            diff --git a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/receiving_key_scopes.rs.html b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/receiving_key_scopes.rs.html
            index 7b5d491b7..ff3edf66b 100644
            --- a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/receiving_key_scopes.rs.html
            +++ b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/receiving_key_scopes.rs.html
            @@ -1,4 +1,4 @@
            -receiving_key_scopes.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            receiving_key_scopes.rs

            1//! This migration adds decryption key scope to persisted information about received notes.
            +receiving_key_scopes.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            receiving_key_scopes.rs

            1//! This migration adds decryption key scope to persisted information about received notes.
             2
             3use std::collections::HashSet;
             4
            diff --git a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/sapling_memo_consistency.rs.html b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/sapling_memo_consistency.rs.html
            index 069b0df55..81a121602 100644
            --- a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/sapling_memo_consistency.rs.html
            +++ b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/sapling_memo_consistency.rs.html
            @@ -1,4 +1,4 @@
            -sapling_memo_consistency.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            sapling_memo_consistency.rs

            1//! This migration reads the wallet's raw transaction data and updates the `sent_notes` table to
            +sapling_memo_consistency.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            sapling_memo_consistency.rs

            1//! This migration reads the wallet's raw transaction data and updates the `sent_notes` table to
             2//! ensure that memo entries are consistent with the decrypted transaction's outputs. The empty
             3//! memo is now consistently represented as a single `0xf6` byte.
             4
            diff --git a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/sent_notes_to_internal.rs.html b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/sent_notes_to_internal.rs.html
            index eb57e9d99..636f1b51e 100644
            --- a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/sent_notes_to_internal.rs.html
            +++ b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/sent_notes_to_internal.rs.html
            @@ -1,4 +1,4 @@
            -sent_notes_to_internal.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            sent_notes_to_internal.rs

            1//! A migration that adds an identifier for the account that received a sent note
            +sent_notes_to_internal.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            sent_notes_to_internal.rs

            1//! A migration that adds an identifier for the account that received a sent note
             2//! on an internal address to the sent_notes table.
             3use std::collections::HashSet;
             4
            diff --git a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/shardtree_support.rs.html b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/shardtree_support.rs.html
            index 548d0497b..6ee5e958c 100644
            --- a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/shardtree_support.rs.html
            +++ b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/shardtree_support.rs.html
            @@ -1,4 +1,4 @@
            -shardtree_support.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            shardtree_support.rs

            1//! This migration adds tables to the wallet database that are needed to persist Sapling note
            +shardtree_support.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            shardtree_support.rs

            1//! This migration adds tables to the wallet database that are needed to persist Sapling note
             2//! commitment tree data using the `shardtree` crate, and migrates existing witness data into these
             3//! data structures.
             4
            diff --git a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/spend_key_available.rs.html b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/spend_key_available.rs.html
            index 8966c90ea..24474f535 100644
            --- a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/spend_key_available.rs.html
            +++ b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/spend_key_available.rs.html
            @@ -1,4 +1,4 @@
            -spend_key_available.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            spend_key_available.rs

            1//! The migration that records ephemeral addresses for each account.
            +spend_key_available.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            spend_key_available.rs

            1//! The migration that records ephemeral addresses for each account.
             2use std::collections::HashSet;
             3
             4use schemerz_rusqlite::RusqliteMigration;
            diff --git a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/support_legacy_sqlite.rs.html b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/support_legacy_sqlite.rs.html
            index a4eb851e4..b01fd441b 100644
            --- a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/support_legacy_sqlite.rs.html
            +++ b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/support_legacy_sqlite.rs.html
            @@ -1,4 +1,4 @@
            -support_legacy_sqlite.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            support_legacy_sqlite.rs

            1//! Modifies definitions to avoid keywords that may not be available in older SQLite versions.
            +support_legacy_sqlite.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            support_legacy_sqlite.rs

            1//! Modifies definitions to avoid keywords that may not be available in older SQLite versions.
             2use std::collections::HashSet;
             3
             4use schemerz_rusqlite::RusqliteMigration;
            diff --git a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/transparent_gap_limit_handling.rs.html b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/transparent_gap_limit_handling.rs.html
            index c3f4760ad..85c11285c 100644
            --- a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/transparent_gap_limit_handling.rs.html
            +++ b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/transparent_gap_limit_handling.rs.html
            @@ -1,4 +1,4 @@
            -transparent_gap_limit_handling.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            transparent_gap_limit_handling.rs

            1//! Add support for general transparent gap limit handling, and unify the `addresses` and
            +transparent_gap_limit_handling.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            transparent_gap_limit_handling.rs

            1//! Add support for general transparent gap limit handling, and unify the `addresses` and
             2//! `ephemeral_addresses` tables.
             3
             4use rand_core::RngCore;
            diff --git a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/tx_retrieval_queue.rs.html b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/tx_retrieval_queue.rs.html
            index 5eaca8de3..0513094c5 100644
            --- a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/tx_retrieval_queue.rs.html
            +++ b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/tx_retrieval_queue.rs.html
            @@ -1,4 +1,4 @@
            -tx_retrieval_queue.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            tx_retrieval_queue.rs

            1//! Adds tables for tracking transactions to be downloaded for transparent output and/or memo retrieval.
            +tx_retrieval_queue.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            tx_retrieval_queue.rs

            1//! Adds tables for tracking transactions to be downloaded for transparent output and/or memo retrieval.
             2
             3use rusqlite::{named_params, Transaction};
             4use schemerz_rusqlite::RusqliteMigration;
            @@ -281,7 +281,7 @@
             281                .unwrap();
             282        };
             283        add_tx_to_wallet(TransactionData::from_parts(
            -284            TxVersion::Zip225,
            +284            TxVersion::V5,
             285            BranchId::Nu5,
             286            0,
             287            12345678.into(),
            diff --git a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/ufvk_support.rs.html b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/ufvk_support.rs.html
            index 247aaf573..f09ae53c3 100644
            --- a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/ufvk_support.rs.html
            +++ b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/ufvk_support.rs.html
            @@ -1,4 +1,4 @@
            -ufvk_support.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            ufvk_support.rs

            1//! Migration that adds support for unified full viewing keys.
            +ufvk_support.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            ufvk_support.rs

            1//! Migration that adds support for unified full viewing keys.
             2use std::{collections::HashSet, rc::Rc};
             3
             4use rusqlite::{named_params, params};
            diff --git a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/utxos_table.rs.html b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/utxos_table.rs.html
            index ae873a6bc..a838cfb08 100644
            --- a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/utxos_table.rs.html
            +++ b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/utxos_table.rs.html
            @@ -1,4 +1,4 @@
            -utxos_table.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            utxos_table.rs

            1//! The migration that adds initial support for transparent UTXOs to the wallet.
            +utxos_table.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            utxos_table.rs

            1//! The migration that adds initial support for transparent UTXOs to the wallet.
             2use std::collections::HashSet;
             3
             4use schemerz_rusqlite::RusqliteMigration;
            diff --git a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/utxos_to_txos.rs.html b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/utxos_to_txos.rs.html
            index ada1cd6c2..0bebf8888 100644
            --- a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/utxos_to_txos.rs.html
            +++ b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/utxos_to_txos.rs.html
            @@ -1,4 +1,4 @@
            -utxos_to_txos.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            utxos_to_txos.rs

            1//! A migration that brings transparent UTXO handling into line with that for shielded
            +utxos_to_txos.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            utxos_to_txos.rs

            1//! A migration that brings transparent UTXO handling into line with that for shielded
             2//! outputs, and adds `spent_note_count` and `is_shielding` to `v_transactions`.
             3use std::collections::HashSet;
             4
            diff --git a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/v_sapling_shard_unscanned_ranges.rs.html b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/v_sapling_shard_unscanned_ranges.rs.html
            index 8dc497a49..350c44129 100644
            --- a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/v_sapling_shard_unscanned_ranges.rs.html
            +++ b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/v_sapling_shard_unscanned_ranges.rs.html
            @@ -1,4 +1,4 @@
            -v_sapling_shard_unscanned_ranges.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            v_sapling_shard_unscanned_ranges.rs

            1//! This migration adds a view that returns the un-scanned ranges associated with each sapling note
            +v_sapling_shard_unscanned_ranges.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            v_sapling_shard_unscanned_ranges.rs

            1//! This migration adds a view that returns the un-scanned ranges associated with each sapling note
             2//! commitment tree shard.
             3
             4use std::collections::HashSet;
            diff --git a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/v_transactions_additional_totals.rs.html b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/v_transactions_additional_totals.rs.html
            index dc5a293c3..1bad2ec4b 100644
            --- a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/v_transactions_additional_totals.rs.html
            +++ b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/v_transactions_additional_totals.rs.html
            @@ -1,4 +1,4 @@
            -v_transactions_additional_totals.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            v_transactions_additional_totals.rs

            1//! This migration adds `total_spent` and `total_received` columns to the `v_transactions` view to
            +v_transactions_additional_totals.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            v_transactions_additional_totals.rs

            1//! This migration adds `total_spent` and `total_received` columns to the `v_transactions` view to
             2//! aid wallets in distinguishing shielding transactions.
             3
             4use std::collections::HashSet;
            diff --git a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/v_transactions_net.rs.html b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/v_transactions_net.rs.html
            index 7744fd7a5..51d0319e2 100644
            --- a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/v_transactions_net.rs.html
            +++ b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/v_transactions_net.rs.html
            @@ -1,4 +1,4 @@
            -v_transactions_net.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            v_transactions_net.rs

            1//! Migration that fixes a bug in v_transactions that caused the change to be incorrectly ignored
            +v_transactions_net.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            v_transactions_net.rs

            1//! Migration that fixes a bug in v_transactions that caused the change to be incorrectly ignored
             2//! as received value.
             3use std::collections::HashSet;
             4
            diff --git a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/v_transactions_note_uniqueness.rs.html b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/v_transactions_note_uniqueness.rs.html
            index e115a0a1d..a12f8884f 100644
            --- a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/v_transactions_note_uniqueness.rs.html
            +++ b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/v_transactions_note_uniqueness.rs.html
            @@ -1,4 +1,4 @@
            -v_transactions_note_uniqueness.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            v_transactions_note_uniqueness.rs

            1//! This migration fixes a bug in `v_transactions` where distinct but otherwise identical notes
            +v_transactions_note_uniqueness.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            v_transactions_note_uniqueness.rs

            1//! This migration fixes a bug in `v_transactions` where distinct but otherwise identical notes
             2//! were being incorrectly deduplicated.
             3
             4use std::collections::HashSet;
            diff --git a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/v_transactions_shielding_balance.rs.html b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/v_transactions_shielding_balance.rs.html
            index 65359ae7d..17076285f 100644
            --- a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/v_transactions_shielding_balance.rs.html
            +++ b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/v_transactions_shielding_balance.rs.html
            @@ -1,4 +1,4 @@
            -v_transactions_shielding_balance.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            v_transactions_shielding_balance.rs

            1//! This migration reworks transaction history views to correctly include spent transparent utxo
            +v_transactions_shielding_balance.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            v_transactions_shielding_balance.rs

            1//! This migration reworks transaction history views to correctly include spent transparent utxo
             2//! value.
             3
             4use std::collections::HashSet;
            diff --git a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/v_transactions_transparent_history.rs.html b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/v_transactions_transparent_history.rs.html
            index 37083d6f2..d84268e03 100644
            --- a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/v_transactions_transparent_history.rs.html
            +++ b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/v_transactions_transparent_history.rs.html
            @@ -1,4 +1,4 @@
            -v_transactions_transparent_history.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            v_transactions_transparent_history.rs

            1//! This migration reworks transaction history views to correctly include history
            +v_transactions_transparent_history.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            v_transactions_transparent_history.rs

            1//! This migration reworks transaction history views to correctly include history
             2//! of transparent utxos for which we lack complete transaction information.
             3
             4use std::collections::HashSet;
            diff --git a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/v_tx_outputs_use_legacy_false.rs.html b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/v_tx_outputs_use_legacy_false.rs.html
            index fa60196aa..ea4ef12b0 100644
            --- a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/v_tx_outputs_use_legacy_false.rs.html
            +++ b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/v_tx_outputs_use_legacy_false.rs.html
            @@ -1,4 +1,4 @@
            -v_tx_outputs_use_legacy_false.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            v_tx_outputs_use_legacy_false.rs

            1//! This migration revises the `v_tx_outputs` view to support SQLite 3.19.x
            +v_tx_outputs_use_legacy_false.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            v_tx_outputs_use_legacy_false.rs

            1//! This migration revises the `v_tx_outputs` view to support SQLite 3.19.x
             2//! which did not define `TRUE` and `FALSE` constants. This is required in
             3//! order to support Android API 27
             4
            diff --git a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/wallet_summaries.rs.html b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/wallet_summaries.rs.html
            index cce106301..14dc3fbc7 100644
            --- a/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/wallet_summaries.rs.html
            +++ b/rustdoc/latest/src/zcash_client_sqlite/wallet/init/migrations/wallet_summaries.rs.html
            @@ -1,4 +1,4 @@
            -wallet_summaries.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            wallet_summaries.rs

            1//! This migration adds views and database changes required to provide accurate wallet summaries.
            +wallet_summaries.rs - source

            zcash_client_sqlite/wallet/init/migrations/
            wallet_summaries.rs

            1//! This migration adds views and database changes required to provide accurate wallet summaries.
             2
             3use std::collections::HashSet;
             4
            diff --git a/rustdoc/latest/src/zcash_client_sqlite/wallet/orchard.rs.html b/rustdoc/latest/src/zcash_client_sqlite/wallet/orchard.rs.html
            index b95c85ccc..ea4847df4 100644
            --- a/rustdoc/latest/src/zcash_client_sqlite/wallet/orchard.rs.html
            +++ b/rustdoc/latest/src/zcash_client_sqlite/wallet/orchard.rs.html
            @@ -1,4 +1,4 @@
            -orchard.rs - source

            zcash_client_sqlite/wallet/
            orchard.rs

            1use std::{collections::HashSet, rc::Rc};
            +orchard.rs - source

            zcash_client_sqlite/wallet/
            orchard.rs

            1use std::{collections::HashSet, rc::Rc};
             2
             3use incrementalmerkletree::Position;
             4use orchard::{
            diff --git a/rustdoc/latest/src/zcash_client_sqlite/wallet/sapling.rs.html b/rustdoc/latest/src/zcash_client_sqlite/wallet/sapling.rs.html
            index 4fbdfd866..4195550c8 100644
            --- a/rustdoc/latest/src/zcash_client_sqlite/wallet/sapling.rs.html
            +++ b/rustdoc/latest/src/zcash_client_sqlite/wallet/sapling.rs.html
            @@ -1,4 +1,4 @@
            -sapling.rs - source

            zcash_client_sqlite/wallet/
            sapling.rs

            1//! Functions for Sapling support in the wallet.
            +sapling.rs - source

            zcash_client_sqlite/wallet/
            sapling.rs

            1//! Functions for Sapling support in the wallet.
             2
             3use std::{collections::HashSet, rc::Rc};
             4
            diff --git a/rustdoc/latest/src/zcash_client_sqlite/wallet/scanning.rs.html b/rustdoc/latest/src/zcash_client_sqlite/wallet/scanning.rs.html
            index 7ff02d564..eb7282a0f 100644
            --- a/rustdoc/latest/src/zcash_client_sqlite/wallet/scanning.rs.html
            +++ b/rustdoc/latest/src/zcash_client_sqlite/wallet/scanning.rs.html
            @@ -1,4 +1,4 @@
            -scanning.rs - source

            zcash_client_sqlite/wallet/
            scanning.rs

            1use incrementalmerkletree::{Address, Position};
            +scanning.rs - source

            zcash_client_sqlite/wallet/
            scanning.rs

            1use incrementalmerkletree::{Address, Position};
             2use rusqlite::{self, named_params, types::Value, OptionalExtension};
             3use std::cmp::{max, min};
             4use std::collections::BTreeSet;
            diff --git a/rustdoc/latest/src/zcash_client_sqlite/wallet/transparent.rs.html b/rustdoc/latest/src/zcash_client_sqlite/wallet/transparent.rs.html
            index 015d15787..43ff4f99c 100644
            --- a/rustdoc/latest/src/zcash_client_sqlite/wallet/transparent.rs.html
            +++ b/rustdoc/latest/src/zcash_client_sqlite/wallet/transparent.rs.html
            @@ -1,4 +1,4 @@
            -transparent.rs - source

            zcash_client_sqlite/wallet/
            transparent.rs

            1//! Functions for transparent input support in the wallet.
            +transparent.rs - source

            zcash_client_sqlite/wallet/
            transparent.rs

            1//! Functions for transparent input support in the wallet.
             2use core::ops::Range;
             3use std::collections::{HashMap, HashSet};
             4use std::num::TryFromIntError;
            diff --git a/rustdoc/latest/src/zcash_client_sqlite/wallet/transparent/ephemeral.rs.html b/rustdoc/latest/src/zcash_client_sqlite/wallet/transparent/ephemeral.rs.html
            index 37defba6c..46f78030b 100644
            --- a/rustdoc/latest/src/zcash_client_sqlite/wallet/transparent/ephemeral.rs.html
            +++ b/rustdoc/latest/src/zcash_client_sqlite/wallet/transparent/ephemeral.rs.html
            @@ -1,4 +1,4 @@
            -ephemeral.rs - source

            zcash_client_sqlite/wallet/transparent/
            ephemeral.rs

            1//! Functions for wallet support of ephemeral transparent addresses.
            +ephemeral.rs - source

            zcash_client_sqlite/wallet/transparent/
            ephemeral.rs

            1//! Functions for wallet support of ephemeral transparent addresses.
             2use std::ops::Range;
             3
             4use rand::{seq::SliceRandom, RngCore};
            diff --git a/rustdoc/latest/src/zcash_encoding/lib.rs.html b/rustdoc/latest/src/zcash_encoding/lib.rs.html
            index 98251c33e..c53c06589 100644
            --- a/rustdoc/latest/src/zcash_encoding/lib.rs.html
            +++ b/rustdoc/latest/src/zcash_encoding/lib.rs.html
            @@ -1,4 +1,4 @@
            -lib.rs - source

            zcash_encoding/
            lib.rs

            1//! *Zcash binary encodings.*
            +lib.rs - source

            zcash_encoding/
            lib.rs

            1//! *Zcash binary encodings.*
             2//!
             3//! `zcash_encoding` is a library that provides common encoding and decoding operations
             4//! for stable binary encodings used throughout the Zcash ecosystem.
            diff --git a/rustdoc/latest/src/zcash_extensions/lib.rs.html b/rustdoc/latest/src/zcash_extensions/lib.rs.html
            index d3a564f62..d597c3f2e 100644
            --- a/rustdoc/latest/src/zcash_extensions/lib.rs.html
            +++ b/rustdoc/latest/src/zcash_extensions/lib.rs.html
            @@ -1,4 +1,4 @@
            -lib.rs - source

            zcash_extensions/
            lib.rs

            1#![cfg_attr(docsrs, feature(doc_cfg))]
            +lib.rs - source

            zcash_extensions/
            lib.rs

            1#![cfg_attr(docsrs, feature(doc_cfg))]
             2#![cfg_attr(docsrs, feature(doc_auto_cfg))]
             3// Catch documentation errors caused by code changes.
             4#![deny(rustdoc::broken_intra_doc_links)]
            diff --git a/rustdoc/latest/src/zcash_history/entry.rs.html b/rustdoc/latest/src/zcash_history/entry.rs.html
            index 515021846..0b830c165 100644
            --- a/rustdoc/latest/src/zcash_history/entry.rs.html
            +++ b/rustdoc/latest/src/zcash_history/entry.rs.html
            @@ -1,4 +1,4 @@
            -entry.rs - source

            zcash_history/
            entry.rs

            1use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt};
            +entry.rs - source

            zcash_history/
            entry.rs

            1use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt};
             2
             3use crate::{EntryKind, EntryLink, Error, Version, MAX_NODE_DATA_SIZE};
             4
            diff --git a/rustdoc/latest/src/zcash_history/lib.rs.html b/rustdoc/latest/src/zcash_history/lib.rs.html
            index d53a7369c..d14163d54 100644
            --- a/rustdoc/latest/src/zcash_history/lib.rs.html
            +++ b/rustdoc/latest/src/zcash_history/lib.rs.html
            @@ -1,4 +1,4 @@
            -lib.rs - source

            zcash_history/
            lib.rs

            1//! Chain history library for Zcash
            +lib.rs - source

            zcash_history/
            lib.rs

            1//! Chain history library for Zcash
             2//!
             3//! To be used in zebra and via FFI bindings in zcashd
             4
            diff --git a/rustdoc/latest/src/zcash_history/node_data.rs.html b/rustdoc/latest/src/zcash_history/node_data.rs.html
            index b9d5e80f8..2b815f9ea 100644
            --- a/rustdoc/latest/src/zcash_history/node_data.rs.html
            +++ b/rustdoc/latest/src/zcash_history/node_data.rs.html
            @@ -1,4 +1,4 @@
            -node_data.rs - source

            zcash_history/
            node_data.rs

            1use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt};
            +node_data.rs - source

            zcash_history/
            node_data.rs

            1use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt};
             2use primitive_types::U256;
             3
             4use crate::Version;
            diff --git a/rustdoc/latest/src/zcash_history/tree.rs.html b/rustdoc/latest/src/zcash_history/tree.rs.html
            index 5469da2c9..3b4a5065f 100644
            --- a/rustdoc/latest/src/zcash_history/tree.rs.html
            +++ b/rustdoc/latest/src/zcash_history/tree.rs.html
            @@ -1,4 +1,4 @@
            -tree.rs - source

            zcash_history/
            tree.rs

            1use std::collections::HashMap;
            +tree.rs - source

            zcash_history/
            tree.rs

            1use std::collections::HashMap;
             2
             3use crate::{Entry, EntryKind, EntryLink, Error, Version};
             4
            diff --git a/rustdoc/latest/src/zcash_history/version.rs.html b/rustdoc/latest/src/zcash_history/version.rs.html
            index e37efc41a..ae868a7e9 100644
            --- a/rustdoc/latest/src/zcash_history/version.rs.html
            +++ b/rustdoc/latest/src/zcash_history/version.rs.html
            @@ -1,4 +1,4 @@
            -version.rs - source

            zcash_history/
            version.rs

            1use std::fmt;
            +version.rs - source

            zcash_history/
            version.rs

            1use std::fmt;
             2use std::io;
             3
             4use blake2b_simd::Params as Blake2Params;
            diff --git a/rustdoc/latest/src/zcash_keys/address.rs.html b/rustdoc/latest/src/zcash_keys/address.rs.html
            index c7f41281a..80a2bcf38 100644
            --- a/rustdoc/latest/src/zcash_keys/address.rs.html
            +++ b/rustdoc/latest/src/zcash_keys/address.rs.html
            @@ -1,4 +1,4 @@
            -address.rs - source

            zcash_keys/
            address.rs

            1//! Structs for handling supported address types.
            +address.rs - source

            zcash_keys/
            address.rs

            1//! Structs for handling supported address types.
             2
             3use alloc::string::{String, ToString};
             4use alloc::vec::Vec;
            diff --git a/rustdoc/latest/src/zcash_keys/encoding.rs.html b/rustdoc/latest/src/zcash_keys/encoding.rs.html
            index 1cf1aaf4a..ec20958e2 100644
            --- a/rustdoc/latest/src/zcash_keys/encoding.rs.html
            +++ b/rustdoc/latest/src/zcash_keys/encoding.rs.html
            @@ -1,4 +1,4 @@
            -encoding.rs - source

            zcash_keys/
            encoding.rs

            1//! Encoding and decoding functions for Zcash key and address structs.
            +encoding.rs - source

            zcash_keys/
            encoding.rs

            1//! Encoding and decoding functions for Zcash key and address structs.
             2//!
             3//! Human-Readable Prefixes (HRPs) for Bech32 encodings are located in the
             4//! [zcash_protocol::constants] module.
            diff --git a/rustdoc/latest/src/zcash_keys/keys.rs.html b/rustdoc/latest/src/zcash_keys/keys.rs.html
            index 914fb765b..b3d988a8e 100644
            --- a/rustdoc/latest/src/zcash_keys/keys.rs.html
            +++ b/rustdoc/latest/src/zcash_keys/keys.rs.html
            @@ -1,4 +1,4 @@
            -keys.rs - source

            zcash_keys/
            keys.rs

            1//! Helper functions for managing light client key material.
            +keys.rs - source

            zcash_keys/
            keys.rs

            1//! Helper functions for managing light client key material.
             2use alloc::string::{String, ToString};
             3use alloc::vec::Vec;
             4use core::fmt::{self, Display};
            diff --git a/rustdoc/latest/src/zcash_keys/lib.rs.html b/rustdoc/latest/src/zcash_keys/lib.rs.html
            index 63aa6e6ea..4561d5692 100644
            --- a/rustdoc/latest/src/zcash_keys/lib.rs.html
            +++ b/rustdoc/latest/src/zcash_keys/lib.rs.html
            @@ -1,4 +1,4 @@
            -lib.rs - source

            zcash_keys/
            lib.rs

            1//! *A crate for Zcash key and address management.*
            +lib.rs - source

            zcash_keys/
            lib.rs

            1//! *A crate for Zcash key and address management.*
             2//!
             3//! `zcash_keys` contains Rust structs, traits and functions for creating Zcash spending
             4//! and viewing keys and addresses.
            diff --git a/rustdoc/latest/src/zcash_primitives/block.rs.html b/rustdoc/latest/src/zcash_primitives/block.rs.html
            index ffe89d634..bdcd5ee9e 100644
            --- a/rustdoc/latest/src/zcash_primitives/block.rs.html
            +++ b/rustdoc/latest/src/zcash_primitives/block.rs.html
            @@ -1,4 +1,4 @@
            -block.rs - source

            zcash_primitives/
            block.rs

            1//! Structs and methods for handling Zcash block headers.
            +block.rs - source

            zcash_primitives/
            block.rs

            1//! Structs and methods for handling Zcash block headers.
             2
             3use alloc::string::ToString;
             4use alloc::vec::Vec;
            diff --git a/rustdoc/latest/src/zcash_primitives/encoding.rs.html b/rustdoc/latest/src/zcash_primitives/encoding.rs.html
            index 9c97baae2..1ff441a08 100644
            --- a/rustdoc/latest/src/zcash_primitives/encoding.rs.html
            +++ b/rustdoc/latest/src/zcash_primitives/encoding.rs.html
            @@ -1,4 +1,4 @@
            -encoding.rs - source

            zcash_primitives/
            encoding.rs

            1//! Utility traits for encoding and decoding using core2.io primitives.
            +encoding.rs - source

            zcash_primitives/
            encoding.rs

            1//! Utility traits for encoding and decoding using core2.io primitives.
             2//!
             3//! This module is used in lieu of the `byteorder` crate, which uses `std::io::{Read, Write}`
             4//! and therefore does not support `no_std` usage.
            diff --git a/rustdoc/latest/src/zcash_primitives/lib.rs.html b/rustdoc/latest/src/zcash_primitives/lib.rs.html
            index 6e50a698f..7b40889e6 100644
            --- a/rustdoc/latest/src/zcash_primitives/lib.rs.html
            +++ b/rustdoc/latest/src/zcash_primitives/lib.rs.html
            @@ -1,4 +1,4 @@
            -lib.rs - source

            zcash_primitives/
            lib.rs

            1//! *General Zcash primitives.*
            +lib.rs - source

            zcash_primitives/
            lib.rs

            1//! *General Zcash primitives.*
             2//!
             3//! `zcash_primitives` is a library that provides the core structs and functions necessary
             4//! for working with Zcash.
            diff --git a/rustdoc/latest/src/zcash_primitives/merkle_tree.rs.html b/rustdoc/latest/src/zcash_primitives/merkle_tree.rs.html
            index 0510a3ed9..e3df41c1d 100644
            --- a/rustdoc/latest/src/zcash_primitives/merkle_tree.rs.html
            +++ b/rustdoc/latest/src/zcash_primitives/merkle_tree.rs.html
            @@ -1,4 +1,4 @@
            -merkle_tree.rs - source

            zcash_primitives/
            merkle_tree.rs

            1//! Parsers and serializers for Zcash Merkle trees.
            +merkle_tree.rs - source

            zcash_primitives/
            merkle_tree.rs

            1//! Parsers and serializers for Zcash Merkle trees.
             2
             3use alloc::vec::Vec;
             4use core2::io::{self, Read, Write};
            diff --git a/rustdoc/latest/src/zcash_primitives/transaction/builder.rs.html b/rustdoc/latest/src/zcash_primitives/transaction/builder.rs.html
            index a352d9be2..f210e8276 100644
            --- a/rustdoc/latest/src/zcash_primitives/transaction/builder.rs.html
            +++ b/rustdoc/latest/src/zcash_primitives/transaction/builder.rs.html
            @@ -1,4 +1,4 @@
            -builder.rs - source

            zcash_primitives/transaction/
            builder.rs

            1//! Structs for building transactions.
            +builder.rs - source

            zcash_primitives/transaction/
            builder.rs

            1//! Structs for building transactions.
             2
             3use core::cmp::Ordering;
             4use core::fmt;
            diff --git a/rustdoc/latest/src/zcash_primitives/transaction/components.rs.html b/rustdoc/latest/src/zcash_primitives/transaction/components.rs.html
            index 8fcbac802..98756d2ec 100644
            --- a/rustdoc/latest/src/zcash_primitives/transaction/components.rs.html
            +++ b/rustdoc/latest/src/zcash_primitives/transaction/components.rs.html
            @@ -1,4 +1,4 @@
            -components.rs - source

            zcash_primitives/transaction/
            components.rs

            1//! Structs representing the components within Zcash transactions.
            +components.rs - source

            zcash_primitives/transaction/
            components.rs

            1//! Structs representing the components within Zcash transactions.
             2pub mod orchard;
             3pub mod sapling;
             4pub mod sprout;
            diff --git a/rustdoc/latest/src/zcash_primitives/transaction/components/orchard.rs.html b/rustdoc/latest/src/zcash_primitives/transaction/components/orchard.rs.html
            index 69749f4c5..0a20d88c0 100644
            --- a/rustdoc/latest/src/zcash_primitives/transaction/components/orchard.rs.html
            +++ b/rustdoc/latest/src/zcash_primitives/transaction/components/orchard.rs.html
            @@ -1,4 +1,4 @@
            -orchard.rs - source

            zcash_primitives/transaction/components/
            orchard.rs

            1//! Functions for parsing & serialization of Orchard transaction components.
            +orchard.rs - source

            zcash_primitives/transaction/components/
            orchard.rs

            1//! Functions for parsing & serialization of Orchard transaction components.
             2use crate::encoding::ReadBytesExt;
             3
             4use alloc::vec::Vec;
            diff --git a/rustdoc/latest/src/zcash_primitives/transaction/components/sapling.rs.html b/rustdoc/latest/src/zcash_primitives/transaction/components/sapling.rs.html
            index 2b9cae9d5..4a48aa803 100644
            --- a/rustdoc/latest/src/zcash_primitives/transaction/components/sapling.rs.html
            +++ b/rustdoc/latest/src/zcash_primitives/transaction/components/sapling.rs.html
            @@ -1,4 +1,4 @@
            -sapling.rs - source

            zcash_primitives/transaction/components/
            sapling.rs

            1use alloc::vec::Vec;
            +sapling.rs - source

            zcash_primitives/transaction/components/
            sapling.rs

            1use alloc::vec::Vec;
             2use core2::io::{self, Read, Write};
             3use ff::PrimeField;
             4
            diff --git a/rustdoc/latest/src/zcash_primitives/transaction/components/sprout.rs.html b/rustdoc/latest/src/zcash_primitives/transaction/components/sprout.rs.html
            index e4bce2e4e..5bdf7e7d8 100644
            --- a/rustdoc/latest/src/zcash_primitives/transaction/components/sprout.rs.html
            +++ b/rustdoc/latest/src/zcash_primitives/transaction/components/sprout.rs.html
            @@ -1,4 +1,4 @@
            -sprout.rs - source

            zcash_primitives/transaction/components/
            sprout.rs

            1//! Structs representing the components within Zcash transactions.
            +sprout.rs - source

            zcash_primitives/transaction/components/
            sprout.rs

            1//! Structs representing the components within Zcash transactions.
             2
             3use alloc::vec::Vec;
             4use core2::io::{self, Read, Write};
            diff --git a/rustdoc/latest/src/zcash_primitives/transaction/fees.rs.html b/rustdoc/latest/src/zcash_primitives/transaction/fees.rs.html
            index 6e7b29af1..a28084797 100644
            --- a/rustdoc/latest/src/zcash_primitives/transaction/fees.rs.html
            +++ b/rustdoc/latest/src/zcash_primitives/transaction/fees.rs.html
            @@ -1,4 +1,4 @@
            -fees.rs - source

            zcash_primitives/transaction/
            fees.rs

            1//! Abstractions and types related to fee calculations.
            +fees.rs - source

            zcash_primitives/transaction/
            fees.rs

            1//! Abstractions and types related to fee calculations.
             2
             3use crate::transaction::fees::transparent::InputSize;
             4use zcash_protocol::{
            diff --git a/rustdoc/latest/src/zcash_primitives/transaction/fees/fixed.rs.html b/rustdoc/latest/src/zcash_primitives/transaction/fees/fixed.rs.html
            index a341cfde3..ba6c24be9 100644
            --- a/rustdoc/latest/src/zcash_primitives/transaction/fees/fixed.rs.html
            +++ b/rustdoc/latest/src/zcash_primitives/transaction/fees/fixed.rs.html
            @@ -1,4 +1,4 @@
            -fixed.rs - source

            zcash_primitives/transaction/fees/
            fixed.rs

            1use crate::transaction::fees::transparent;
            +fixed.rs - source

            zcash_primitives/transaction/fees/
            fixed.rs

            1use crate::transaction::fees::transparent;
             2
             3use zcash_protocol::{
             4    consensus::{self, BlockHeight},
            diff --git a/rustdoc/latest/src/zcash_primitives/transaction/fees/transparent.rs.html b/rustdoc/latest/src/zcash_primitives/transaction/fees/transparent.rs.html
            index 4efef3fda..7a690b968 100644
            --- a/rustdoc/latest/src/zcash_primitives/transaction/fees/transparent.rs.html
            +++ b/rustdoc/latest/src/zcash_primitives/transaction/fees/transparent.rs.html
            @@ -1,4 +1,4 @@
            -transparent.rs - source

            zcash_primitives/transaction/fees/
            transparent.rs

            1//! Types related to computation of fees and change related to the transparent components
            +transparent.rs - source

            zcash_primitives/transaction/fees/
            transparent.rs

            1//! Types related to computation of fees and change related to the transparent components
             2//! of a transaction.
             3
             4use core::convert::Infallible;
            diff --git a/rustdoc/latest/src/zcash_primitives/transaction/fees/zip317.rs.html b/rustdoc/latest/src/zcash_primitives/transaction/fees/zip317.rs.html
            index 620af17b9..0c50d7887 100644
            --- a/rustdoc/latest/src/zcash_primitives/transaction/fees/zip317.rs.html
            +++ b/rustdoc/latest/src/zcash_primitives/transaction/fees/zip317.rs.html
            @@ -1,4 +1,4 @@
            -zip317.rs - source

            zcash_primitives/transaction/fees/
            zip317.rs

            1//! Types related to implementing a [`FeeRule`] provides [ZIP 317] fee calculation.
            +zip317.rs - source

            zcash_primitives/transaction/fees/
            zip317.rs

            1//! Types related to implementing a [`FeeRule`] provides [ZIP 317] fee calculation.
             2//!
             3//! [`FeeRule`]: crate::transaction::fees::FeeRule
             4//! [ZIP 317]: https//zips.z.cash/zip-0317
            diff --git a/rustdoc/latest/src/zcash_primitives/transaction/mod.rs.html b/rustdoc/latest/src/zcash_primitives/transaction/mod.rs.html
            index 9a04c4a39..8ba060e93 100644
            --- a/rustdoc/latest/src/zcash_primitives/transaction/mod.rs.html
            +++ b/rustdoc/latest/src/zcash_primitives/transaction/mod.rs.html
            @@ -1,4 +1,4 @@
            -mod.rs - source

            zcash_primitives/transaction/
            mod.rs

            1//! Structs and methods for handling Zcash transactions.
            +mod.rs - source

            zcash_primitives/transaction/
            mod.rs

            1//! Structs and methods for handling Zcash transactions.
             2pub mod builder;
             3pub mod components;
             4pub mod fees;
            @@ -40,1020 +40,1050 @@
             40#[cfg(zcash_unstable = "zfuture")]
             41use self::components::tze::{self, TzeIn, TzeOut};
             42
            -43const OVERWINTER_VERSION_GROUP_ID: u32 = 0x03C48270;
            -44const OVERWINTER_TX_VERSION: u32 = 3;
            -45const SAPLING_VERSION_GROUP_ID: u32 = 0x892F2085;
            -46const SAPLING_TX_VERSION: u32 = 4;
            +43use zcash_protocol::constants::{
            +44    V3_TX_VERSION, V3_VERSION_GROUP_ID, V4_TX_VERSION, V4_VERSION_GROUP_ID, V5_TX_VERSION,
            +45    V5_VERSION_GROUP_ID,
            +46};
             47
            -48const V5_TX_VERSION: u32 = 5;
            -49const V5_VERSION_GROUP_ID: u32 = 0x26A7270A;
            +48#[cfg(zcash_unstable = "nu7")]
            +49use zcash_protocol::constants::{V6_TX_VERSION, V6_VERSION_GROUP_ID};
             50
            -51/// These versions are used exclusively for in-development transaction
            -52/// serialization, and will never be active under the consensus rules.
            -53/// When new consensus transaction versions are added, all call sites
            -54/// using these constants should be inspected, and use of these constants
            -55/// should be removed as appropriate in favor of the new consensus
            -56/// transaction version and group.
            -57#[cfg(zcash_unstable = "zfuture")]
            -58const ZFUTURE_VERSION_GROUP_ID: u32 = 0xFFFFFFFF;
            -59#[cfg(zcash_unstable = "zfuture")]
            -60const ZFUTURE_TX_VERSION: u32 = 0x0000FFFF;
            -61
            -62pub use zcash_protocol::TxId;
            -63
            -64/// The set of defined transaction format versions.
            -65///
            -66/// This is serialized in the first four or eight bytes of the transaction format, and
            -67/// represents valid combinations of the `(overwintered, version, version_group_id)`
            -68/// transaction fields. Note that this is not dependent on epoch, only on transaction encoding.
            -69/// For example, if a particular epoch defines a new transaction version but also allows the
            -70/// previous version, then only the new version would be added to this enum.
            -71#[derive(Clone, Copy, Debug, PartialEq, Eq)]
            -72pub enum TxVersion {
            -73    Sprout(u32),
            -74    Overwinter,
            -75    Sapling,
            -76    Zip225,
            -77    #[cfg(zcash_unstable = "zfuture")]
            -78    ZFuture,
            -79}
            -80
            -81impl TxVersion {
            -82    pub fn read<R: Read>(mut reader: R) -> io::Result<Self> {
            -83        let header = reader.read_u32_le()?;
            -84        let overwintered = (header >> 31) == 1;
            -85        let version = header & 0x7FFFFFFF;
            -86
            -87        if overwintered {
            -88            match (version, reader.read_u32_le()?) {
            -89                (OVERWINTER_TX_VERSION, OVERWINTER_VERSION_GROUP_ID) => Ok(TxVersion::Overwinter),
            -90                (SAPLING_TX_VERSION, SAPLING_VERSION_GROUP_ID) => Ok(TxVersion::Sapling),
            -91                (V5_TX_VERSION, V5_VERSION_GROUP_ID) => Ok(TxVersion::Zip225),
            -92                #[cfg(zcash_unstable = "zfuture")]
            -93                (ZFUTURE_TX_VERSION, ZFUTURE_VERSION_GROUP_ID) => Ok(TxVersion::ZFuture),
            -94                _ => Err(io::Error::new(
            -95                    io::ErrorKind::InvalidInput,
            -96                    "Unknown transaction format",
            -97                )),
            -98            }
            -99        } else if version >= 1 {
            -100            Ok(TxVersion::Sprout(version))
            -101        } else {
            -102            Err(io::Error::new(
            -103                io::ErrorKind::InvalidInput,
            -104                "Unknown transaction format",
            -105            ))
            -106        }
            -107    }
            -108
            -109    pub fn header(&self) -> u32 {
            -110        // After Sprout, the overwintered bit is always set.
            -111        let overwintered = match self {
            -112            TxVersion::Sprout(_) => 0,
            -113            _ => 1 << 31,
            -114        };
            -115
            -116        overwintered
            -117            | match self {
            -118                TxVersion::Sprout(v) => *v,
            -119                TxVersion::Overwinter => OVERWINTER_TX_VERSION,
            -120                TxVersion::Sapling => SAPLING_TX_VERSION,
            -121                TxVersion::Zip225 => V5_TX_VERSION,
            -122                #[cfg(zcash_unstable = "zfuture")]
            -123                TxVersion::ZFuture => ZFUTURE_TX_VERSION,
            -124            }
            -125    }
            -126
            -127    pub fn version_group_id(&self) -> u32 {
            -128        match self {
            -129            TxVersion::Sprout(_) => 0,
            -130            TxVersion::Overwinter => OVERWINTER_VERSION_GROUP_ID,
            -131            TxVersion::Sapling => SAPLING_VERSION_GROUP_ID,
            -132            TxVersion::Zip225 => V5_VERSION_GROUP_ID,
            -133            #[cfg(zcash_unstable = "zfuture")]
            -134            TxVersion::ZFuture => ZFUTURE_VERSION_GROUP_ID,
            -135        }
            -136    }
            -137
            -138    pub fn write<W: Write>(&self, mut writer: W) -> io::Result<()> {
            -139        writer.write_u32_le(self.header())?;
            -140        match self {
            -141            TxVersion::Sprout(_) => Ok(()),
            -142            _ => writer.write_u32_le(self.version_group_id()),
            -143        }
            -144    }
            -145
            -146    /// Returns `true` if this transaction version supports the Sprout protocol.
            -147    pub fn has_sprout(&self) -> bool {
            -148        match self {
            -149            TxVersion::Sprout(v) => *v >= 2u32,
            -150            TxVersion::Overwinter | TxVersion::Sapling => true,
            -151            TxVersion::Zip225 => false,
            -152            #[cfg(zcash_unstable = "zfuture")]
            -153            TxVersion::ZFuture => true,
            -154        }
            -155    }
            -156
            -157    pub fn has_overwinter(&self) -> bool {
            -158        !matches!(self, TxVersion::Sprout(_))
            -159    }
            -160
            -161    /// Returns `true` if this transaction version supports the Sapling protocol.
            -162    pub fn has_sapling(&self) -> bool {
            -163        match self {
            -164            TxVersion::Sprout(_) | TxVersion::Overwinter => false,
            -165            TxVersion::Sapling => true,
            -166            TxVersion::Zip225 => true,
            -167            #[cfg(zcash_unstable = "zfuture")]
            -168            TxVersion::ZFuture => true,
            -169        }
            -170    }
            -171
            -172    /// Returns `true` if this transaction version supports the Orchard protocol.
            -173    pub fn has_orchard(&self) -> bool {
            -174        match self {
            -175            TxVersion::Sprout(_) | TxVersion::Overwinter | TxVersion::Sapling => false,
            -176            TxVersion::Zip225 => true,
            -177            #[cfg(zcash_unstable = "zfuture")]
            -178            TxVersion::ZFuture => true,
            -179        }
            -180    }
            -181
            -182    #[cfg(zcash_unstable = "zfuture")]
            -183    pub fn has_tze(&self) -> bool {
            -184        matches!(self, TxVersion::ZFuture)
            -185    }
            -186
            -187    /// Suggests the transaction version that should be used in the given Zcash epoch.
            -188    pub fn suggested_for_branch(consensus_branch_id: BranchId) -> Self {
            -189        match consensus_branch_id {
            -190            BranchId::Sprout => TxVersion::Sprout(2),
            -191            BranchId::Overwinter => TxVersion::Overwinter,
            -192            BranchId::Sapling | BranchId::Blossom | BranchId::Heartwood | BranchId::Canopy => {
            -193                TxVersion::Sapling
            -194            }
            -195            BranchId::Nu5 => TxVersion::Zip225,
            -196            BranchId::Nu6 => TxVersion::Zip225,
            -197            #[cfg(zcash_unstable = "zfuture")]
            -198            BranchId::ZFuture => TxVersion::ZFuture,
            -199        }
            -200    }
            -201}
            -202
            -203/// Authorization state for a bundle of transaction data.
            -204pub trait Authorization {
            -205    type TransparentAuth: transparent::Authorization;
            -206    type SaplingAuth: sapling::bundle::Authorization;
            -207    type OrchardAuth: orchard::bundle::Authorization;
            -208
            -209    #[cfg(zcash_unstable = "zfuture")]
            -210    type TzeAuth: tze::Authorization;
            -211}
            -212
            -213/// [`Authorization`] marker type for fully-authorized transactions.
            -214#[derive(Debug)]
            -215pub struct Authorized;
            -216
            -217impl Authorization for Authorized {
            -218    type TransparentAuth = transparent::Authorized;
            -219    type SaplingAuth = sapling::bundle::Authorized;
            -220    type OrchardAuth = orchard::bundle::Authorized;
            -221
            -222    #[cfg(zcash_unstable = "zfuture")]
            -223    type TzeAuth = tze::Authorized;
            -224}
            -225
            -226/// [`Authorization`] marker type for transactions without authorization data.
            -227///
            -228/// Currently this includes Sapling proofs because the types in this crate support v4
            -229/// transactions, which commit to the Sapling proofs in the transaction digest.
            -230pub struct Unauthorized;
            -231
            -232#[cfg(feature = "circuits")]
            -233impl Authorization for Unauthorized {
            -234    type TransparentAuth = ::transparent::builder::Unauthorized;
            -235    type SaplingAuth =
            -236        sapling_builder::InProgress<sapling_builder::Proven, sapling_builder::Unsigned>;
            -237    type OrchardAuth =
            -238        orchard::builder::InProgress<orchard::builder::Unproven, orchard::builder::Unauthorized>;
            -239
            -240    #[cfg(zcash_unstable = "zfuture")]
            -241    type TzeAuth = tze::builder::Unauthorized;
            -242}
            -243
            -244/// A Zcash transaction.
            -245#[derive(Debug)]
            -246pub struct Transaction {
            -247    txid: TxId,
            -248    data: TransactionData<Authorized>,
            -249}
            -250
            -251impl Deref for Transaction {
            -252    type Target = TransactionData<Authorized>;
            -253
            -254    fn deref(&self) -> &TransactionData<Authorized> {
            -255        &self.data
            -256    }
            -257}
            -258
            -259impl PartialEq for Transaction {
            -260    fn eq(&self, other: &Transaction) -> bool {
            -261        self.txid == other.txid
            -262    }
            -263}
            -264
            -265/// The information contained in a Zcash transaction.
            -266#[derive(Debug)]
            -267pub struct TransactionData<A: Authorization> {
            -268    version: TxVersion,
            -269    consensus_branch_id: BranchId,
            -270    lock_time: u32,
            -271    expiry_height: BlockHeight,
            -272    transparent_bundle: Option<transparent::Bundle<A::TransparentAuth>>,
            -273    sprout_bundle: Option<sprout::Bundle>,
            -274    sapling_bundle: Option<sapling::Bundle<A::SaplingAuth, ZatBalance>>,
            -275    orchard_bundle: Option<orchard::bundle::Bundle<A::OrchardAuth, ZatBalance>>,
            -276    #[cfg(zcash_unstable = "zfuture")]
            -277    tze_bundle: Option<tze::Bundle<A::TzeAuth>>,
            -278}
            +51#[cfg(zcash_unstable = "zfuture")]
            +52use zcash_protocol::constants::{ZFUTURE_TX_VERSION, ZFUTURE_VERSION_GROUP_ID};
            +53
            +54pub use zcash_protocol::TxId;
            +55
            +56/// The set of defined transaction format versions.
            +57///
            +58/// This is serialized in the first four or eight bytes of the transaction format, and
            +59/// represents valid combinations of the `(overwintered, version, version_group_id)`
            +60/// transaction fields. Note that this is not dependent on epoch, only on transaction encoding.
            +61/// For example, if a particular epoch defines a new transaction version but also allows the
            +62/// previous version, then only the new version would be added to this enum.
            +63#[derive(Clone, Copy, Debug, PartialEq, Eq)]
            +64pub enum TxVersion {
            +65    /// Transaction versions allowed prior to Overwinter activation. The argument MUST be
            +66    /// in the range `1..=0x7FFFFFFF`. Only versions 1 and 2 are defined; `3..=0x7FFFFFFF`
            +67    /// was allowed by consensus but considered equivalent to 2. This is specified in
            +68    /// [§ 7.1 Transaction Encoding and Consensus](https://zips.z.cash/protocol/protocol.pdf#txnencoding).
            +69    Sprout(u32),
            +70    /// Transaction version 3, which was introduced by the Overwinter network upgrade
            +71    /// and allowed until Sapling activation. It is specified in
            +72    /// [§ 7.1 Transaction Encoding and Consensus](https://zips.z.cash/protocol/protocol.pdf#txnencoding).
            +73    V3,
            +74    /// Transaction version 4, which was introduced by the Sapling network upgrade.
            +75    /// It is specified in [§ 7.1 Transaction Encoding and Consensus](https://zips.z.cash/protocol/protocol.pdf#txnencoding).
            +76    V4,
            +77    /// Transaction version 5, which was introduced by the NU5 network upgrade.
            +78    /// It is specified in [§ 7.1 Transaction Encoding and Consensus](https://zips.z.cash/protocol/protocol.pdf#txnencoding)
            +79    /// and [ZIP 225](https://zips.z.cash/zip-0225).
            +80    V5,
            +81    /// Transaction version 6, specified in [ZIP 230](https://zips.z.cash/zip-0230).
            +82    #[cfg(zcash_unstable = "nu7")]
            +83    V6,
            +84    /// This version is used exclusively for in-development transaction
            +85    /// serialization, and will never be active under the consensus rules.
            +86    /// When new consensus transaction versions are added, all call sites
            +87    /// using this constant should be inspected, and uses should be
            +88    /// removed as appropriate in favor of the new transaction version.
            +89    #[cfg(zcash_unstable = "zfuture")]
            +90    ZFuture,
            +91}
            +92
            +93impl TxVersion {
            +94    pub fn read<R: Read>(mut reader: R) -> io::Result<Self> {
            +95        let header = reader.read_u32_le()?;
            +96        let overwintered = (header >> 31) == 1;
            +97        let version = header & 0x7FFFFFFF;
            +98
            +99        if overwintered {
            +100            match (version, reader.read_u32_le()?) {
            +101                (V3_TX_VERSION, V3_VERSION_GROUP_ID) => Ok(TxVersion::V3),
            +102                (V4_TX_VERSION, V4_VERSION_GROUP_ID) => Ok(TxVersion::V4),
            +103                (V5_TX_VERSION, V5_VERSION_GROUP_ID) => Ok(TxVersion::V5),
            +104                #[cfg(zcash_unstable = "nu7")]
            +105                (V6_TX_VERSION, V6_VERSION_GROUP_ID) => Ok(TxVersion::V6),
            +106                #[cfg(zcash_unstable = "zfuture")]
            +107                (ZFUTURE_TX_VERSION, ZFUTURE_VERSION_GROUP_ID) => Ok(TxVersion::ZFuture),
            +108                _ => Err(io::Error::new(
            +109                    io::ErrorKind::InvalidInput,
            +110                    "Unknown transaction format",
            +111                )),
            +112            }
            +113        } else if version >= 1 {
            +114            Ok(TxVersion::Sprout(version))
            +115        } else {
            +116            Err(io::Error::new(
            +117                io::ErrorKind::InvalidInput,
            +118                "Unknown transaction format",
            +119            ))
            +120        }
            +121    }
            +122
            +123    pub fn header(&self) -> u32 {
            +124        // After Sprout, the overwintered bit is always set.
            +125        let overwintered = match self {
            +126            TxVersion::Sprout(_) => 0,
            +127            _ => 1 << 31,
            +128        };
            +129
            +130        overwintered
            +131            | match self {
            +132                TxVersion::Sprout(v) => *v,
            +133                TxVersion::V3 => V3_TX_VERSION,
            +134                TxVersion::V4 => V4_TX_VERSION,
            +135                TxVersion::V5 => V5_TX_VERSION,
            +136                #[cfg(zcash_unstable = "nu7")]
            +137                TxVersion::V6 => V6_TX_VERSION,
            +138                #[cfg(zcash_unstable = "zfuture")]
            +139                TxVersion::ZFuture => ZFUTURE_TX_VERSION,
            +140            }
            +141    }
            +142
            +143    pub fn version_group_id(&self) -> u32 {
            +144        match self {
            +145            TxVersion::Sprout(_) => 0,
            +146            TxVersion::V3 => V3_VERSION_GROUP_ID,
            +147            TxVersion::V4 => V4_VERSION_GROUP_ID,
            +148            TxVersion::V5 => V5_VERSION_GROUP_ID,
            +149            #[cfg(zcash_unstable = "nu7")]
            +150            TxVersion::V6 => V6_VERSION_GROUP_ID,
            +151            #[cfg(zcash_unstable = "zfuture")]
            +152            TxVersion::ZFuture => ZFUTURE_VERSION_GROUP_ID,
            +153        }
            +154    }
            +155
            +156    pub fn write<W: Write>(&self, mut writer: W) -> io::Result<()> {
            +157        writer.write_u32_le(self.header())?;
            +158        match self {
            +159            TxVersion::Sprout(_) => Ok(()),
            +160            _ => writer.write_u32_le(self.version_group_id()),
            +161        }
            +162    }
            +163
            +164    /// Returns `true` if this transaction version supports the Sprout protocol.
            +165    pub fn has_sprout(&self) -> bool {
            +166        match self {
            +167            TxVersion::Sprout(v) => *v >= 2u32,
            +168            TxVersion::V3 | TxVersion::V4 => true,
            +169            TxVersion::V5 => false,
            +170            #[cfg(zcash_unstable = "nu7")]
            +171            TxVersion::V6 => false,
            +172            #[cfg(zcash_unstable = "zfuture")]
            +173            TxVersion::ZFuture => false,
            +174        }
            +175    }
            +176
            +177    pub fn has_overwinter(&self) -> bool {
            +178        !matches!(self, TxVersion::Sprout(_))
            +179    }
            +180
            +181    /// Returns `true` if this transaction version supports the Sapling protocol.
            +182    pub fn has_sapling(&self) -> bool {
            +183        match self {
            +184            TxVersion::Sprout(_) | TxVersion::V3 => false,
            +185            TxVersion::V4 => true,
            +186            TxVersion::V5 => true,
            +187            #[cfg(zcash_unstable = "nu7")]
            +188            TxVersion::V6 => true,
            +189            #[cfg(zcash_unstable = "zfuture")]
            +190            TxVersion::ZFuture => true,
            +191        }
            +192    }
            +193
            +194    /// Returns `true` if this transaction version supports the Orchard protocol.
            +195    pub fn has_orchard(&self) -> bool {
            +196        match self {
            +197            TxVersion::Sprout(_) | TxVersion::V3 | TxVersion::V4 => false,
            +198            TxVersion::V5 => true,
            +199            #[cfg(zcash_unstable = "nu7")]
            +200            TxVersion::V6 => true,
            +201            #[cfg(zcash_unstable = "zfuture")]
            +202            TxVersion::ZFuture => true,
            +203        }
            +204    }
            +205
            +206    #[cfg(zcash_unstable = "zfuture")]
            +207    pub fn has_tze(&self) -> bool {
            +208        matches!(self, TxVersion::ZFuture)
            +209    }
            +210
            +211    /// Suggests the transaction version that should be used in the given Zcash epoch.
            +212    pub fn suggested_for_branch(consensus_branch_id: BranchId) -> Self {
            +213        match consensus_branch_id {
            +214            BranchId::Sprout => TxVersion::Sprout(2),
            +215            BranchId::Overwinter => TxVersion::V3,
            +216            BranchId::Sapling | BranchId::Blossom | BranchId::Heartwood | BranchId::Canopy => {
            +217                TxVersion::V4
            +218            }
            +219            BranchId::Nu5 => TxVersion::V5,
            +220            BranchId::Nu6 => TxVersion::V5,
            +221            #[cfg(zcash_unstable = "nu7")]
            +222            BranchId::Nu7 => TxVersion::V6,
            +223            #[cfg(zcash_unstable = "zfuture")]
            +224            BranchId::ZFuture => TxVersion::ZFuture,
            +225        }
            +226    }
            +227}
            +228
            +229/// Authorization state for a bundle of transaction data.
            +230pub trait Authorization {
            +231    type TransparentAuth: transparent::Authorization;
            +232    type SaplingAuth: sapling::bundle::Authorization;
            +233    type OrchardAuth: orchard::bundle::Authorization;
            +234
            +235    #[cfg(zcash_unstable = "zfuture")]
            +236    type TzeAuth: tze::Authorization;
            +237}
            +238
            +239/// [`Authorization`] marker type for fully-authorized transactions.
            +240#[derive(Debug)]
            +241pub struct Authorized;
            +242
            +243impl Authorization for Authorized {
            +244    type TransparentAuth = transparent::Authorized;
            +245    type SaplingAuth = sapling::bundle::Authorized;
            +246    type OrchardAuth = orchard::bundle::Authorized;
            +247
            +248    #[cfg(zcash_unstable = "zfuture")]
            +249    type TzeAuth = tze::Authorized;
            +250}
            +251
            +252/// [`Authorization`] marker type for transactions without authorization data.
            +253///
            +254/// Currently this includes Sapling proofs because the types in this crate support v4
            +255/// transactions, which commit to the Sapling proofs in the transaction digest.
            +256pub struct Unauthorized;
            +257
            +258#[cfg(feature = "circuits")]
            +259impl Authorization for Unauthorized {
            +260    type TransparentAuth = ::transparent::builder::Unauthorized;
            +261    type SaplingAuth =
            +262        sapling_builder::InProgress<sapling_builder::Proven, sapling_builder::Unsigned>;
            +263    type OrchardAuth =
            +264        orchard::builder::InProgress<orchard::builder::Unproven, orchard::builder::Unauthorized>;
            +265
            +266    #[cfg(zcash_unstable = "zfuture")]
            +267    type TzeAuth = tze::builder::Unauthorized;
            +268}
            +269
            +270/// A Zcash transaction.
            +271#[derive(Debug)]
            +272pub struct Transaction {
            +273    txid: TxId,
            +274    data: TransactionData<Authorized>,
            +275}
            +276
            +277impl Deref for Transaction {
            +278    type Target = TransactionData<Authorized>;
             279
            -280impl<A: Authorization> TransactionData<A> {
            -281    /// Constructs a `TransactionData` from its constituent parts.
            -282    #[allow(clippy::too_many_arguments)]
            -283    pub fn from_parts(
            -284        version: TxVersion,
            -285        consensus_branch_id: BranchId,
            -286        lock_time: u32,
            -287        expiry_height: BlockHeight,
            -288        transparent_bundle: Option<transparent::Bundle<A::TransparentAuth>>,
            -289        sprout_bundle: Option<sprout::Bundle>,
            -290        sapling_bundle: Option<sapling::Bundle<A::SaplingAuth, ZatBalance>>,
            -291        orchard_bundle: Option<orchard::Bundle<A::OrchardAuth, ZatBalance>>,
            -292    ) -> Self {
            -293        TransactionData {
            -294            version,
            -295            consensus_branch_id,
            -296            lock_time,
            -297            expiry_height,
            -298            transparent_bundle,
            -299            sprout_bundle,
            -300            sapling_bundle,
            -301            orchard_bundle,
            -302            #[cfg(zcash_unstable = "zfuture")]
            -303            tze_bundle: None,
            -304        }
            -305    }
            -306
            -307    /// Constructs a `TransactionData` from its constituent parts, including speculative
            -308    /// future parts that are not in the current Zcash consensus rules.
            -309    #[cfg(zcash_unstable = "zfuture")]
            -310    #[allow(clippy::too_many_arguments)]
            -311    pub fn from_parts_zfuture(
            -312        version: TxVersion,
            -313        consensus_branch_id: BranchId,
            -314        lock_time: u32,
            -315        expiry_height: BlockHeight,
            -316        transparent_bundle: Option<transparent::Bundle<A::TransparentAuth>>,
            -317        sprout_bundle: Option<sprout::Bundle>,
            -318        sapling_bundle: Option<sapling::Bundle<A::SaplingAuth, ZatBalance>>,
            -319        orchard_bundle: Option<orchard::Bundle<A::OrchardAuth, ZatBalance>>,
            -320        tze_bundle: Option<tze::Bundle<A::TzeAuth>>,
            -321    ) -> Self {
            -322        TransactionData {
            -323            version,
            -324            consensus_branch_id,
            -325            lock_time,
            -326            expiry_height,
            -327            transparent_bundle,
            -328            sprout_bundle,
            -329            sapling_bundle,
            -330            orchard_bundle,
            -331            tze_bundle,
            -332        }
            -333    }
            -334
            -335    /// Returns the transaction version.
            -336    pub fn version(&self) -> TxVersion {
            -337        self.version
            -338    }
            -339
            -340    /// Returns the Zcash epoch that this transaction can be mined in.
            -341    pub fn consensus_branch_id(&self) -> BranchId {
            -342        self.consensus_branch_id
            -343    }
            -344
            -345    pub fn lock_time(&self) -> u32 {
            -346        self.lock_time
            -347    }
            -348
            -349    pub fn expiry_height(&self) -> BlockHeight {
            -350        self.expiry_height
            -351    }
            -352
            -353    pub fn transparent_bundle(&self) -> Option<&transparent::Bundle<A::TransparentAuth>> {
            -354        self.transparent_bundle.as_ref()
            -355    }
            -356
            -357    pub fn sprout_bundle(&self) -> Option<&sprout::Bundle> {
            -358        self.sprout_bundle.as_ref()
            +280    fn deref(&self) -> &TransactionData<Authorized> {
            +281        &self.data
            +282    }
            +283}
            +284
            +285impl PartialEq for Transaction {
            +286    fn eq(&self, other: &Transaction) -> bool {
            +287        self.txid == other.txid
            +288    }
            +289}
            +290
            +291/// The information contained in a Zcash transaction.
            +292#[derive(Debug)]
            +293pub struct TransactionData<A: Authorization> {
            +294    version: TxVersion,
            +295    consensus_branch_id: BranchId,
            +296    lock_time: u32,
            +297    expiry_height: BlockHeight,
            +298    transparent_bundle: Option<transparent::Bundle<A::TransparentAuth>>,
            +299    sprout_bundle: Option<sprout::Bundle>,
            +300    sapling_bundle: Option<sapling::Bundle<A::SaplingAuth, ZatBalance>>,
            +301    orchard_bundle: Option<orchard::bundle::Bundle<A::OrchardAuth, ZatBalance>>,
            +302    #[cfg(zcash_unstable = "zfuture")]
            +303    tze_bundle: Option<tze::Bundle<A::TzeAuth>>,
            +304}
            +305
            +306impl<A: Authorization> TransactionData<A> {
            +307    /// Constructs a `TransactionData` from its constituent parts.
            +308    #[allow(clippy::too_many_arguments)]
            +309    pub fn from_parts(
            +310        version: TxVersion,
            +311        consensus_branch_id: BranchId,
            +312        lock_time: u32,
            +313        expiry_height: BlockHeight,
            +314        transparent_bundle: Option<transparent::Bundle<A::TransparentAuth>>,
            +315        sprout_bundle: Option<sprout::Bundle>,
            +316        sapling_bundle: Option<sapling::Bundle<A::SaplingAuth, ZatBalance>>,
            +317        orchard_bundle: Option<orchard::Bundle<A::OrchardAuth, ZatBalance>>,
            +318    ) -> Self {
            +319        TransactionData {
            +320            version,
            +321            consensus_branch_id,
            +322            lock_time,
            +323            expiry_height,
            +324            transparent_bundle,
            +325            sprout_bundle,
            +326            sapling_bundle,
            +327            orchard_bundle,
            +328            #[cfg(zcash_unstable = "zfuture")]
            +329            tze_bundle: None,
            +330        }
            +331    }
            +332
            +333    /// Constructs a `TransactionData` from its constituent parts, including speculative
            +334    /// future parts that are not in the current Zcash consensus rules.
            +335    #[cfg(zcash_unstable = "zfuture")]
            +336    #[allow(clippy::too_many_arguments)]
            +337    pub fn from_parts_zfuture(
            +338        version: TxVersion,
            +339        consensus_branch_id: BranchId,
            +340        lock_time: u32,
            +341        expiry_height: BlockHeight,
            +342        transparent_bundle: Option<transparent::Bundle<A::TransparentAuth>>,
            +343        sprout_bundle: Option<sprout::Bundle>,
            +344        sapling_bundle: Option<sapling::Bundle<A::SaplingAuth, ZatBalance>>,
            +345        orchard_bundle: Option<orchard::Bundle<A::OrchardAuth, ZatBalance>>,
            +346        tze_bundle: Option<tze::Bundle<A::TzeAuth>>,
            +347    ) -> Self {
            +348        TransactionData {
            +349            version,
            +350            consensus_branch_id,
            +351            lock_time,
            +352            expiry_height,
            +353            transparent_bundle,
            +354            sprout_bundle,
            +355            sapling_bundle,
            +356            orchard_bundle,
            +357            tze_bundle,
            +358        }
             359    }
             360
            -361    pub fn sapling_bundle(&self) -> Option<&sapling::Bundle<A::SaplingAuth, ZatBalance>> {
            -362        self.sapling_bundle.as_ref()
            -363    }
            -364
            -365    pub fn orchard_bundle(&self) -> Option<&orchard::Bundle<A::OrchardAuth, ZatBalance>> {
            -366        self.orchard_bundle.as_ref()
            -367    }
            -368
            -369    #[cfg(zcash_unstable = "zfuture")]
            -370    pub fn tze_bundle(&self) -> Option<&tze::Bundle<A::TzeAuth>> {
            -371        self.tze_bundle.as_ref()
            -372    }
            -373
            -374    /// Returns the total fees paid by the transaction, given a function that can be used to
            -375    /// retrieve the value of previous transactions' transparent outputs that are being spent in
            -376    /// this transaction.
            -377    pub fn fee_paid<E, F>(&self, get_prevout: F) -> Result<ZatBalance, E>
            -378    where
            -379        E: From<BalanceError>,
            -380        F: FnMut(&OutPoint) -> Result<ZatBalance, E>,
            -381    {
            -382        let value_balances = [
            -383            self.transparent_bundle
            -384                .as_ref()
            -385                .map_or_else(|| Ok(ZatBalance::zero()), |b| b.value_balance(get_prevout))?,
            -386            self.sprout_bundle.as_ref().map_or_else(
            -387                || Ok(ZatBalance::zero()),
            -388                |b| b.value_balance().ok_or(BalanceError::Overflow),
            -389            )?,
            -390            self.sapling_bundle
            -391                .as_ref()
            -392                .map_or_else(ZatBalance::zero, |b| *b.value_balance()),
            -393            self.orchard_bundle
            -394                .as_ref()
            -395                .map_or_else(ZatBalance::zero, |b| *b.value_balance()),
            -396        ];
            -397
            -398        value_balances
            -399            .iter()
            -400            .sum::<Option<_>>()
            -401            .ok_or_else(|| BalanceError::Overflow.into())
            -402    }
            -403
            -404    pub fn digest<D: TransactionDigest<A>>(&self, digester: D) -> D::Digest {
            -405        digester.combine(
            -406            digester.digest_header(
            -407                self.version,
            -408                self.consensus_branch_id,
            -409                self.lock_time,
            -410                self.expiry_height,
            -411            ),
            -412            digester.digest_transparent(self.transparent_bundle.as_ref()),
            -413            digester.digest_sapling(self.sapling_bundle.as_ref()),
            -414            digester.digest_orchard(self.orchard_bundle.as_ref()),
            -415            #[cfg(zcash_unstable = "zfuture")]
            -416            digester.digest_tze(self.tze_bundle.as_ref()),
            -417        )
            -418    }
            -419
            -420    /// Maps the bundles from one type to another.
            -421    ///
            -422    /// This shouldn't be necessary for most use cases; it is provided for handling the
            -423    /// cross-FFI builder logic in `zcashd`.
            -424    pub fn map_bundles<B: Authorization>(
            -425        self,
            -426        f_transparent: impl FnOnce(
            -427            Option<transparent::Bundle<A::TransparentAuth>>,
            -428        ) -> Option<transparent::Bundle<B::TransparentAuth>>,
            -429        f_sapling: impl FnOnce(
            -430            Option<sapling::Bundle<A::SaplingAuth, ZatBalance>>,
            -431        ) -> Option<sapling::Bundle<B::SaplingAuth, ZatBalance>>,
            -432        f_orchard: impl FnOnce(
            -433            Option<orchard::bundle::Bundle<A::OrchardAuth, ZatBalance>>,
            -434        ) -> Option<orchard::bundle::Bundle<B::OrchardAuth, ZatBalance>>,
            -435        #[cfg(zcash_unstable = "zfuture")] f_tze: impl FnOnce(
            -436            Option<tze::Bundle<A::TzeAuth>>,
            -437        )
            -438            -> Option<tze::Bundle<B::TzeAuth>>,
            -439    ) -> TransactionData<B> {
            -440        TransactionData {
            -441            version: self.version,
            -442            consensus_branch_id: self.consensus_branch_id,
            -443            lock_time: self.lock_time,
            -444            expiry_height: self.expiry_height,
            -445            transparent_bundle: f_transparent(self.transparent_bundle),
            -446            sprout_bundle: self.sprout_bundle,
            -447            sapling_bundle: f_sapling(self.sapling_bundle),
            -448            orchard_bundle: f_orchard(self.orchard_bundle),
            -449            #[cfg(zcash_unstable = "zfuture")]
            -450            tze_bundle: f_tze(self.tze_bundle),
            -451        }
            -452    }
            -453
            -454    /// Maps the bundles from one type to another with fallible closures.
            -455    ///
            -456    /// This shouldn't be necessary for most use cases; it is provided for handling the
            -457    /// transaction extraction logic in the `pczt` crate.
            -458    pub fn try_map_bundles<B: Authorization, E>(
            -459        self,
            -460        f_transparent: impl FnOnce(
            -461            Option<transparent::Bundle<A::TransparentAuth>>,
            -462        )
            -463            -> Result<Option<transparent::Bundle<B::TransparentAuth>>, E>,
            -464        f_sapling: impl FnOnce(
            -465            Option<sapling::Bundle<A::SaplingAuth, ZatBalance>>,
            -466        )
            -467            -> Result<Option<sapling::Bundle<B::SaplingAuth, ZatBalance>>, E>,
            -468        f_orchard: impl FnOnce(
            -469            Option<orchard::bundle::Bundle<A::OrchardAuth, ZatBalance>>,
            -470        )
            -471            -> Result<Option<orchard::bundle::Bundle<B::OrchardAuth, ZatBalance>>, E>,
            -472        #[cfg(zcash_unstable = "zfuture")] f_tze: impl FnOnce(
            -473            Option<tze::Bundle<A::TzeAuth>>,
            -474        ) -> Result<
            -475            Option<tze::Bundle<B::TzeAuth>>,
            -476            E,
            -477        >,
            -478    ) -> Result<TransactionData<B>, E> {
            -479        Ok(TransactionData {
            -480            version: self.version,
            -481            consensus_branch_id: self.consensus_branch_id,
            -482            lock_time: self.lock_time,
            -483            expiry_height: self.expiry_height,
            -484            transparent_bundle: f_transparent(self.transparent_bundle)?,
            -485            sprout_bundle: self.sprout_bundle,
            -486            sapling_bundle: f_sapling(self.sapling_bundle)?,
            -487            orchard_bundle: f_orchard(self.orchard_bundle)?,
            -488            #[cfg(zcash_unstable = "zfuture")]
            -489            tze_bundle: f_tze(self.tze_bundle)?,
            -490        })
            -491    }
            -492
            -493    pub fn map_authorization<B: Authorization>(
            -494        self,
            -495        f_transparent: impl transparent::MapAuth<A::TransparentAuth, B::TransparentAuth>,
            -496        mut f_sapling: impl sapling_serialization::MapAuth<A::SaplingAuth, B::SaplingAuth>,
            -497        mut f_orchard: impl orchard_serialization::MapAuth<A::OrchardAuth, B::OrchardAuth>,
            -498        #[cfg(zcash_unstable = "zfuture")] f_tze: impl tze::MapAuth<A::TzeAuth, B::TzeAuth>,
            -499    ) -> TransactionData<B> {
            -500        TransactionData {
            -501            version: self.version,
            -502            consensus_branch_id: self.consensus_branch_id,
            -503            lock_time: self.lock_time,
            -504            expiry_height: self.expiry_height,
            -505            transparent_bundle: self
            -506                .transparent_bundle
            -507                .map(|b| b.map_authorization(f_transparent)),
            -508            sprout_bundle: self.sprout_bundle,
            -509            sapling_bundle: self.sapling_bundle.map(|b| {
            -510                b.map_authorization(
            -511                    &mut f_sapling,
            -512                    |f, p| f.map_spend_proof(p),
            -513                    |f, p| f.map_output_proof(p),
            -514                    |f, s| f.map_auth_sig(s),
            -515                    |f, a| f.map_authorization(a),
            -516                )
            -517            }),
            -518            orchard_bundle: self.orchard_bundle.map(|b| {
            -519                b.map_authorization(
            -520                    &mut f_orchard,
            -521                    |f, _, s| f.map_spend_auth(s),
            -522                    |f, a| f.map_authorization(a),
            -523                )
            -524            }),
            -525            #[cfg(zcash_unstable = "zfuture")]
            -526            tze_bundle: self.tze_bundle.map(|b| b.map_authorization(f_tze)),
            -527        }
            -528    }
            -529}
            -530
            -531impl<A: Authorization> TransactionData<A> {
            -532    pub fn sapling_value_balance(&self) -> ZatBalance {
            -533        self.sapling_bundle
            -534            .as_ref()
            -535            .map_or(ZatBalance::zero(), |b| *b.value_balance())
            -536    }
            -537}
            -538
            -539impl TransactionData<Authorized> {
            -540    pub fn freeze(self) -> io::Result<Transaction> {
            -541        Transaction::from_data(self)
            -542    }
            -543}
            -544
            -545impl Transaction {
            -546    fn from_data(data: TransactionData<Authorized>) -> io::Result<Self> {
            -547        match data.version {
            -548            TxVersion::Sprout(_) | TxVersion::Overwinter | TxVersion::Sapling => {
            -549                Self::from_data_v4(data)
            -550            }
            -551            TxVersion::Zip225 => Ok(Self::from_data_v5(data)),
            -552            #[cfg(zcash_unstable = "zfuture")]
            -553            TxVersion::ZFuture => Ok(Self::from_data_v5(data)),
            -554        }
            -555    }
            +361    /// Returns the transaction version.
            +362    pub fn version(&self) -> TxVersion {
            +363        self.version
            +364    }
            +365
            +366    /// Returns the Zcash epoch that this transaction can be mined in.
            +367    pub fn consensus_branch_id(&self) -> BranchId {
            +368        self.consensus_branch_id
            +369    }
            +370
            +371    pub fn lock_time(&self) -> u32 {
            +372        self.lock_time
            +373    }
            +374
            +375    pub fn expiry_height(&self) -> BlockHeight {
            +376        self.expiry_height
            +377    }
            +378
            +379    pub fn transparent_bundle(&self) -> Option<&transparent::Bundle<A::TransparentAuth>> {
            +380        self.transparent_bundle.as_ref()
            +381    }
            +382
            +383    pub fn sprout_bundle(&self) -> Option<&sprout::Bundle> {
            +384        self.sprout_bundle.as_ref()
            +385    }
            +386
            +387    pub fn sapling_bundle(&self) -> Option<&sapling::Bundle<A::SaplingAuth, ZatBalance>> {
            +388        self.sapling_bundle.as_ref()
            +389    }
            +390
            +391    pub fn orchard_bundle(&self) -> Option<&orchard::Bundle<A::OrchardAuth, ZatBalance>> {
            +392        self.orchard_bundle.as_ref()
            +393    }
            +394
            +395    #[cfg(zcash_unstable = "zfuture")]
            +396    pub fn tze_bundle(&self) -> Option<&tze::Bundle<A::TzeAuth>> {
            +397        self.tze_bundle.as_ref()
            +398    }
            +399
            +400    /// Returns the total fees paid by the transaction, given a function that can be used to
            +401    /// retrieve the value of previous transactions' transparent outputs that are being spent in
            +402    /// this transaction.
            +403    pub fn fee_paid<E, F>(&self, get_prevout: F) -> Result<ZatBalance, E>
            +404    where
            +405        E: From<BalanceError>,
            +406        F: FnMut(&OutPoint) -> Result<ZatBalance, E>,
            +407    {
            +408        let value_balances = [
            +409            self.transparent_bundle
            +410                .as_ref()
            +411                .map_or_else(|| Ok(ZatBalance::zero()), |b| b.value_balance(get_prevout))?,
            +412            self.sprout_bundle.as_ref().map_or_else(
            +413                || Ok(ZatBalance::zero()),
            +414                |b| b.value_balance().ok_or(BalanceError::Overflow),
            +415            )?,
            +416            self.sapling_bundle
            +417                .as_ref()
            +418                .map_or_else(ZatBalance::zero, |b| *b.value_balance()),
            +419            self.orchard_bundle
            +420                .as_ref()
            +421                .map_or_else(ZatBalance::zero, |b| *b.value_balance()),
            +422        ];
            +423
            +424        value_balances
            +425            .iter()
            +426            .sum::<Option<_>>()
            +427            .ok_or_else(|| BalanceError::Overflow.into())
            +428    }
            +429
            +430    pub fn digest<D: TransactionDigest<A>>(&self, digester: D) -> D::Digest {
            +431        digester.combine(
            +432            digester.digest_header(
            +433                self.version,
            +434                self.consensus_branch_id,
            +435                self.lock_time,
            +436                self.expiry_height,
            +437            ),
            +438            digester.digest_transparent(self.transparent_bundle.as_ref()),
            +439            digester.digest_sapling(self.sapling_bundle.as_ref()),
            +440            digester.digest_orchard(self.orchard_bundle.as_ref()),
            +441            #[cfg(zcash_unstable = "zfuture")]
            +442            digester.digest_tze(self.tze_bundle.as_ref()),
            +443        )
            +444    }
            +445
            +446    /// Maps the bundles from one type to another.
            +447    ///
            +448    /// This shouldn't be necessary for most use cases; it is provided for handling the
            +449    /// cross-FFI builder logic in `zcashd`.
            +450    pub fn map_bundles<B: Authorization>(
            +451        self,
            +452        f_transparent: impl FnOnce(
            +453            Option<transparent::Bundle<A::TransparentAuth>>,
            +454        ) -> Option<transparent::Bundle<B::TransparentAuth>>,
            +455        f_sapling: impl FnOnce(
            +456            Option<sapling::Bundle<A::SaplingAuth, ZatBalance>>,
            +457        ) -> Option<sapling::Bundle<B::SaplingAuth, ZatBalance>>,
            +458        f_orchard: impl FnOnce(
            +459            Option<orchard::bundle::Bundle<A::OrchardAuth, ZatBalance>>,
            +460        ) -> Option<orchard::bundle::Bundle<B::OrchardAuth, ZatBalance>>,
            +461        #[cfg(zcash_unstable = "zfuture")] f_tze: impl FnOnce(
            +462            Option<tze::Bundle<A::TzeAuth>>,
            +463        )
            +464            -> Option<tze::Bundle<B::TzeAuth>>,
            +465    ) -> TransactionData<B> {
            +466        TransactionData {
            +467            version: self.version,
            +468            consensus_branch_id: self.consensus_branch_id,
            +469            lock_time: self.lock_time,
            +470            expiry_height: self.expiry_height,
            +471            transparent_bundle: f_transparent(self.transparent_bundle),
            +472            sprout_bundle: self.sprout_bundle,
            +473            sapling_bundle: f_sapling(self.sapling_bundle),
            +474            orchard_bundle: f_orchard(self.orchard_bundle),
            +475            #[cfg(zcash_unstable = "zfuture")]
            +476            tze_bundle: f_tze(self.tze_bundle),
            +477        }
            +478    }
            +479
            +480    /// Maps the bundles from one type to another with fallible closures.
            +481    ///
            +482    /// This shouldn't be necessary for most use cases; it is provided for handling the
            +483    /// transaction extraction logic in the `pczt` crate.
            +484    pub fn try_map_bundles<B: Authorization, E>(
            +485        self,
            +486        f_transparent: impl FnOnce(
            +487            Option<transparent::Bundle<A::TransparentAuth>>,
            +488        )
            +489            -> Result<Option<transparent::Bundle<B::TransparentAuth>>, E>,
            +490        f_sapling: impl FnOnce(
            +491            Option<sapling::Bundle<A::SaplingAuth, ZatBalance>>,
            +492        )
            +493            -> Result<Option<sapling::Bundle<B::SaplingAuth, ZatBalance>>, E>,
            +494        f_orchard: impl FnOnce(
            +495            Option<orchard::bundle::Bundle<A::OrchardAuth, ZatBalance>>,
            +496        )
            +497            -> Result<Option<orchard::bundle::Bundle<B::OrchardAuth, ZatBalance>>, E>,
            +498        #[cfg(zcash_unstable = "zfuture")] f_tze: impl FnOnce(
            +499            Option<tze::Bundle<A::TzeAuth>>,
            +500        ) -> Result<
            +501            Option<tze::Bundle<B::TzeAuth>>,
            +502            E,
            +503        >,
            +504    ) -> Result<TransactionData<B>, E> {
            +505        Ok(TransactionData {
            +506            version: self.version,
            +507            consensus_branch_id: self.consensus_branch_id,
            +508            lock_time: self.lock_time,
            +509            expiry_height: self.expiry_height,
            +510            transparent_bundle: f_transparent(self.transparent_bundle)?,
            +511            sprout_bundle: self.sprout_bundle,
            +512            sapling_bundle: f_sapling(self.sapling_bundle)?,
            +513            orchard_bundle: f_orchard(self.orchard_bundle)?,
            +514            #[cfg(zcash_unstable = "zfuture")]
            +515            tze_bundle: f_tze(self.tze_bundle)?,
            +516        })
            +517    }
            +518
            +519    pub fn map_authorization<B: Authorization>(
            +520        self,
            +521        f_transparent: impl transparent::MapAuth<A::TransparentAuth, B::TransparentAuth>,
            +522        mut f_sapling: impl sapling_serialization::MapAuth<A::SaplingAuth, B::SaplingAuth>,
            +523        mut f_orchard: impl orchard_serialization::MapAuth<A::OrchardAuth, B::OrchardAuth>,
            +524        #[cfg(zcash_unstable = "zfuture")] f_tze: impl tze::MapAuth<A::TzeAuth, B::TzeAuth>,
            +525    ) -> TransactionData<B> {
            +526        TransactionData {
            +527            version: self.version,
            +528            consensus_branch_id: self.consensus_branch_id,
            +529            lock_time: self.lock_time,
            +530            expiry_height: self.expiry_height,
            +531            transparent_bundle: self
            +532                .transparent_bundle
            +533                .map(|b| b.map_authorization(f_transparent)),
            +534            sprout_bundle: self.sprout_bundle,
            +535            sapling_bundle: self.sapling_bundle.map(|b| {
            +536                b.map_authorization(
            +537                    &mut f_sapling,
            +538                    |f, p| f.map_spend_proof(p),
            +539                    |f, p| f.map_output_proof(p),
            +540                    |f, s| f.map_auth_sig(s),
            +541                    |f, a| f.map_authorization(a),
            +542                )
            +543            }),
            +544            orchard_bundle: self.orchard_bundle.map(|b| {
            +545                b.map_authorization(
            +546                    &mut f_orchard,
            +547                    |f, _, s| f.map_spend_auth(s),
            +548                    |f, a| f.map_authorization(a),
            +549                )
            +550            }),
            +551            #[cfg(zcash_unstable = "zfuture")]
            +552            tze_bundle: self.tze_bundle.map(|b| b.map_authorization(f_tze)),
            +553        }
            +554    }
            +555}
             556
            -557    fn from_data_v4(data: TransactionData<Authorized>) -> io::Result<Self> {
            -558        let mut tx = Transaction {
            -559            txid: TxId::from_bytes([0; 32]),
            -560            data,
            -561        };
            -562        let mut writer = HashWriter::default();
            -563        tx.write(&mut writer)?;
            -564        tx.txid = TxId::from_bytes(writer.into_hash().into());
            -565        Ok(tx)
            -566    }
            -567
            -568    fn from_data_v5(data: TransactionData<Authorized>) -> Self {
            -569        let txid = to_txid(
            -570            data.version,
            -571            data.consensus_branch_id,
            -572            &data.digest(TxIdDigester),
            -573        );
            -574
            -575        Transaction { txid, data }
            -576    }
            -577
            -578    pub fn into_data(self) -> TransactionData<Authorized> {
            -579        self.data
            -580    }
            -581
            -582    pub fn txid(&self) -> TxId {
            -583        self.txid
            -584    }
            -585
            -586    pub fn read<R: Read>(reader: R, consensus_branch_id: BranchId) -> io::Result<Self> {
            -587        let mut reader = HashReader::new(reader);
            -588
            -589        let version = TxVersion::read(&mut reader)?;
            -590        match version {
            -591            TxVersion::Sprout(_) | TxVersion::Overwinter | TxVersion::Sapling => {
            -592                Self::read_v4(reader, version, consensus_branch_id)
            -593            }
            -594            TxVersion::Zip225 => Self::read_v5(reader.into_base_reader(), version),
            -595            #[cfg(zcash_unstable = "zfuture")]
            -596            TxVersion::ZFuture => Self::read_v5(reader.into_base_reader(), version),
            -597        }
            -598    }
            -599
            -600    #[allow(clippy::redundant_closure)]
            -601    fn read_v4<R: Read>(
            -602        mut reader: HashReader<R>,
            -603        version: TxVersion,
            -604        consensus_branch_id: BranchId,
            -605    ) -> io::Result<Self> {
            -606        let transparent_bundle = Self::read_transparent(&mut reader)?;
            +557impl<A: Authorization> TransactionData<A> {
            +558    pub fn sapling_value_balance(&self) -> ZatBalance {
            +559        self.sapling_bundle
            +560            .as_ref()
            +561            .map_or(ZatBalance::zero(), |b| *b.value_balance())
            +562    }
            +563}
            +564
            +565impl TransactionData<Authorized> {
            +566    pub fn freeze(self) -> io::Result<Transaction> {
            +567        Transaction::from_data(self)
            +568    }
            +569}
            +570
            +571impl Transaction {
            +572    fn from_data(data: TransactionData<Authorized>) -> io::Result<Self> {
            +573        match data.version {
            +574            TxVersion::Sprout(_) | TxVersion::V3 | TxVersion::V4 => Self::from_data_v4(data),
            +575            TxVersion::V5 => Ok(Self::from_data_v5(data)),
            +576            #[cfg(zcash_unstable = "nu7")]
            +577            TxVersion::V6 => todo!(),
            +578            #[cfg(zcash_unstable = "zfuture")]
            +579            TxVersion::ZFuture => Ok(Self::from_data_v5(data)),
            +580        }
            +581    }
            +582
            +583    fn from_data_v4(data: TransactionData<Authorized>) -> io::Result<Self> {
            +584        let mut tx = Transaction {
            +585            txid: TxId::from_bytes([0; 32]),
            +586            data,
            +587        };
            +588        let mut writer = HashWriter::default();
            +589        tx.write(&mut writer)?;
            +590        tx.txid = TxId::from_bytes(writer.into_hash().into());
            +591        Ok(tx)
            +592    }
            +593
            +594    fn from_data_v5(data: TransactionData<Authorized>) -> Self {
            +595        let txid = to_txid(
            +596            data.version,
            +597            data.consensus_branch_id,
            +598            &data.digest(TxIdDigester),
            +599        );
            +600
            +601        Transaction { txid, data }
            +602    }
            +603
            +604    pub fn into_data(self) -> TransactionData<Authorized> {
            +605        self.data
            +606    }
             607
            -608        let lock_time = reader.read_u32_le()?;
            -609        let expiry_height: BlockHeight = if version.has_overwinter() {
            -610            reader.read_u32_le()?.into()
            -611        } else {
            -612            0u32.into()
            -613        };
            +608    pub fn txid(&self) -> TxId {
            +609        self.txid
            +610    }
            +611
            +612    pub fn read<R: Read>(reader: R, consensus_branch_id: BranchId) -> io::Result<Self> {
            +613        let mut reader = HashReader::new(reader);
             614
            -615        let (value_balance, shielded_spends, shielded_outputs) =
            -616            sapling_serialization::read_v4_components(&mut reader, version.has_sapling())?;
            -617
            -618        let sprout_bundle = if version.has_sprout() {
            -619            let joinsplits = Vector::read(&mut reader, |r| {
            -620                JsDescription::read(r, version.has_sapling())
            -621            })?;
            -622
            -623            if !joinsplits.is_empty() {
            -624                let mut bundle = sprout::Bundle {
            -625                    joinsplits,
            -626                    joinsplit_pubkey: [0; 32],
            -627                    joinsplit_sig: [0; 64],
            -628                };
            -629                reader.read_exact(&mut bundle.joinsplit_pubkey)?;
            -630                reader.read_exact(&mut bundle.joinsplit_sig)?;
            -631                Some(bundle)
            -632            } else {
            -633                None
            -634            }
            -635        } else {
            -636            None
            -637        };
            -638
            -639        let binding_sig = if version.has_sapling()
            -640            && !(shielded_spends.is_empty() && shielded_outputs.is_empty())
            -641        {
            -642            let mut sig = [0; 64];
            -643            reader.read_exact(&mut sig)?;
            -644            Some(redjubjub::Signature::from(sig))
            -645        } else {
            -646            None
            -647        };
            -648
            -649        let mut txid = [0; 32];
            -650        let hash_bytes = reader.into_hash();
            -651        txid.copy_from_slice(&hash_bytes);
            -652
            -653        Ok(Transaction {
            -654            txid: TxId::from_bytes(txid),
            -655            data: TransactionData {
            -656                version,
            -657                consensus_branch_id,
            -658                lock_time,
            -659                expiry_height,
            -660                transparent_bundle,
            -661                sprout_bundle,
            -662                sapling_bundle: binding_sig.and_then(|binding_sig| {
            -663                    sapling::Bundle::from_parts(
            -664                        shielded_spends,
            -665                        shielded_outputs,
            -666                        value_balance,
            -667                        sapling::bundle::Authorized { binding_sig },
            -668                    )
            -669                }),
            -670                orchard_bundle: None,
            -671                #[cfg(zcash_unstable = "zfuture")]
            -672                tze_bundle: None,
            -673            },
            -674        })
            -675    }
            +615        let version = TxVersion::read(&mut reader)?;
            +616        match version {
            +617            TxVersion::Sprout(_) | TxVersion::V3 | TxVersion::V4 => {
            +618                Self::read_v4(reader, version, consensus_branch_id)
            +619            }
            +620            TxVersion::V5 => Self::read_v5(reader.into_base_reader(), version),
            +621            #[cfg(zcash_unstable = "nu7")]
            +622            TxVersion::V6 => todo!(),
            +623            #[cfg(zcash_unstable = "zfuture")]
            +624            TxVersion::ZFuture => Self::read_v5(reader.into_base_reader(), version),
            +625        }
            +626    }
            +627
            +628    #[allow(clippy::redundant_closure)]
            +629    fn read_v4<R: Read>(
            +630        mut reader: HashReader<R>,
            +631        version: TxVersion,
            +632        consensus_branch_id: BranchId,
            +633    ) -> io::Result<Self> {
            +634        let transparent_bundle = Self::read_transparent(&mut reader)?;
            +635
            +636        let lock_time = reader.read_u32_le()?;
            +637        let expiry_height: BlockHeight = if version.has_overwinter() {
            +638            reader.read_u32_le()?.into()
            +639        } else {
            +640            0u32.into()
            +641        };
            +642
            +643        let (value_balance, shielded_spends, shielded_outputs) =
            +644            sapling_serialization::read_v4_components(&mut reader, version.has_sapling())?;
            +645
            +646        let sprout_bundle = if version.has_sprout() {
            +647            let joinsplits = Vector::read(&mut reader, |r| {
            +648                JsDescription::read(r, version.has_sapling())
            +649            })?;
            +650
            +651            if !joinsplits.is_empty() {
            +652                let mut bundle = sprout::Bundle {
            +653                    joinsplits,
            +654                    joinsplit_pubkey: [0; 32],
            +655                    joinsplit_sig: [0; 64],
            +656                };
            +657                reader.read_exact(&mut bundle.joinsplit_pubkey)?;
            +658                reader.read_exact(&mut bundle.joinsplit_sig)?;
            +659                Some(bundle)
            +660            } else {
            +661                None
            +662            }
            +663        } else {
            +664            None
            +665        };
            +666
            +667        let binding_sig = if version.has_sapling()
            +668            && !(shielded_spends.is_empty() && shielded_outputs.is_empty())
            +669        {
            +670            let mut sig = [0; 64];
            +671            reader.read_exact(&mut sig)?;
            +672            Some(redjubjub::Signature::from(sig))
            +673        } else {
            +674            None
            +675        };
             676
            -677    fn read_transparent<R: Read>(
            -678        mut reader: R,
            -679    ) -> io::Result<Option<transparent::Bundle<transparent::Authorized>>> {
            -680        let vin = Vector::read(&mut reader, TxIn::read)?;
            -681        let vout = Vector::read(&mut reader, TxOut::read)?;
            -682        Ok(if vin.is_empty() && vout.is_empty() {
            -683            None
            -684        } else {
            -685            Some(transparent::Bundle {
            -686                vin,
            -687                vout,
            -688                authorization: transparent::Authorized,
            -689            })
            -690        })
            -691    }
            -692
            -693    fn read_amount<R: Read>(mut reader: R) -> io::Result<ZatBalance> {
            -694        let mut tmp = [0; 8];
            -695        reader.read_exact(&mut tmp)?;
            -696        ZatBalance::from_i64_le_bytes(tmp)
            -697            .map_err(|_| io::Error::new(io::ErrorKind::InvalidData, "valueBalance out of range"))
            -698    }
            -699
            -700    fn read_v5<R: Read>(mut reader: R, version: TxVersion) -> io::Result<Self> {
            -701        let (consensus_branch_id, lock_time, expiry_height) =
            -702            Self::read_v5_header_fragment(&mut reader)?;
            -703        let transparent_bundle = Self::read_transparent(&mut reader)?;
            -704        let sapling_bundle = sapling_serialization::read_v5_bundle(&mut reader)?;
            -705        let orchard_bundle = orchard_serialization::read_v5_bundle(&mut reader)?;
            -706
            -707        #[cfg(zcash_unstable = "zfuture")]
            -708        let tze_bundle = if version.has_tze() {
            -709            Self::read_tze(&mut reader)?
            -710        } else {
            +677        let mut txid = [0; 32];
            +678        let hash_bytes = reader.into_hash();
            +679        txid.copy_from_slice(&hash_bytes);
            +680
            +681        Ok(Transaction {
            +682            txid: TxId::from_bytes(txid),
            +683            data: TransactionData {
            +684                version,
            +685                consensus_branch_id,
            +686                lock_time,
            +687                expiry_height,
            +688                transparent_bundle,
            +689                sprout_bundle,
            +690                sapling_bundle: binding_sig.and_then(|binding_sig| {
            +691                    sapling::Bundle::from_parts(
            +692                        shielded_spends,
            +693                        shielded_outputs,
            +694                        value_balance,
            +695                        sapling::bundle::Authorized { binding_sig },
            +696                    )
            +697                }),
            +698                orchard_bundle: None,
            +699                #[cfg(zcash_unstable = "zfuture")]
            +700                tze_bundle: None,
            +701            },
            +702        })
            +703    }
            +704
            +705    fn read_transparent<R: Read>(
            +706        mut reader: R,
            +707    ) -> io::Result<Option<transparent::Bundle<transparent::Authorized>>> {
            +708        let vin = Vector::read(&mut reader, TxIn::read)?;
            +709        let vout = Vector::read(&mut reader, TxOut::read)?;
            +710        Ok(if vin.is_empty() && vout.is_empty() {
             711            None
            -712        };
            -713
            -714        let data = TransactionData {
            -715            version,
            -716            consensus_branch_id,
            -717            lock_time,
            -718            expiry_height,
            -719            transparent_bundle,
            -720            sprout_bundle: None,
            -721            sapling_bundle,
            -722            orchard_bundle,
            -723            #[cfg(zcash_unstable = "zfuture")]
            -724            tze_bundle,
            -725        };
            -726
            -727        Ok(Self::from_data_v5(data))
            -728    }
            -729
            -730    fn read_v5_header_fragment<R: Read>(mut reader: R) -> io::Result<(BranchId, u32, BlockHeight)> {
            -731        let consensus_branch_id = reader.read_u32_le().and_then(|value| {
            -732            BranchId::try_from(value).map_err(|_e| {
            -733                io::Error::new(
            -734                    io::ErrorKind::InvalidInput,
            -735                    #[cfg(not(feature = "std"))]
            -736                    "invalid consensus branch id",
            -737                    #[cfg(feature = "std")]
            -738                    format!(
            -739                        "invalid consensus branch id 0x{}",
            -740                        hex::encode(value.to_be_bytes())
            -741                    ),
            -742                )
            -743            })
            -744        })?;
            -745        let lock_time = reader.read_u32_le()?;
            -746        let expiry_height: BlockHeight = reader.read_u32_le()?.into();
            -747        Ok((consensus_branch_id, lock_time, expiry_height))
            -748    }
            -749
            -750    #[cfg(feature = "temporary-zcashd")]
            -751    pub fn temporary_zcashd_read_v5_sapling<R: Read>(
            -752        reader: R,
            -753    ) -> io::Result<Option<sapling::Bundle<sapling::bundle::Authorized, ZatBalance>>> {
            -754        sapling_serialization::read_v5_bundle(reader)
            -755    }
            -756
            -757    #[cfg(zcash_unstable = "zfuture")]
            -758    fn read_tze<R: Read>(mut reader: &mut R) -> io::Result<Option<tze::Bundle<tze::Authorized>>> {
            -759        let vin = Vector::read(&mut reader, TzeIn::read)?;
            -760        let vout = Vector::read(&mut reader, TzeOut::read)?;
            -761        Ok(if vin.is_empty() && vout.is_empty() {
            -762            None
            -763        } else {
            -764            Some(tze::Bundle {
            -765                vin,
            -766                vout,
            -767                authorization: tze::Authorized,
            -768            })
            -769        })
            -770    }
            -771
            -772    pub fn write<W: Write>(&self, writer: W) -> io::Result<()> {
            -773        match self.version {
            -774            TxVersion::Sprout(_) | TxVersion::Overwinter | TxVersion::Sapling => {
            -775                self.write_v4(writer)
            -776            }
            -777            TxVersion::Zip225 => self.write_v5(writer),
            -778            #[cfg(zcash_unstable = "zfuture")]
            -779            TxVersion::ZFuture => self.write_v5(writer),
            -780        }
            -781    }
            -782
            -783    pub fn write_v4<W: Write>(&self, mut writer: W) -> io::Result<()> {
            -784        self.version.write(&mut writer)?;
            -785
            -786        self.write_transparent(&mut writer)?;
            -787        writer.write_u32_le(self.lock_time)?;
            -788        if self.version.has_overwinter() {
            -789            writer.write_u32_le(u32::from(self.expiry_height))?;
            -790        }
            -791
            -792        sapling_serialization::write_v4_components(
            -793            &mut writer,
            -794            self.sapling_bundle.as_ref(),
            -795            self.version.has_sapling(),
            -796        )?;
            -797
            -798        if self.version.has_sprout() {
            -799            if let Some(bundle) = self.sprout_bundle.as_ref() {
            -800                Vector::write(&mut writer, &bundle.joinsplits, |w, e| e.write(w))?;
            -801                writer.write_all(&bundle.joinsplit_pubkey)?;
            -802                writer.write_all(&bundle.joinsplit_sig)?;
            -803            } else {
            -804                CompactSize::write(&mut writer, 0)?;
            -805            }
            -806        }
            -807
            -808        if self.version.has_sapling() {
            -809            if let Some(bundle) = self.sapling_bundle.as_ref() {
            -810                writer.write_all(&<[u8; 64]>::from(bundle.authorization().binding_sig))?;
            -811            }
            -812        }
            +712        } else {
            +713            Some(transparent::Bundle {
            +714                vin,
            +715                vout,
            +716                authorization: transparent::Authorized,
            +717            })
            +718        })
            +719    }
            +720
            +721    fn read_amount<R: Read>(mut reader: R) -> io::Result<ZatBalance> {
            +722        let mut tmp = [0; 8];
            +723        reader.read_exact(&mut tmp)?;
            +724        ZatBalance::from_i64_le_bytes(tmp)
            +725            .map_err(|_| io::Error::new(io::ErrorKind::InvalidData, "valueBalance out of range"))
            +726    }
            +727
            +728    fn read_v5<R: Read>(mut reader: R, version: TxVersion) -> io::Result<Self> {
            +729        let (consensus_branch_id, lock_time, expiry_height) =
            +730            Self::read_v5_header_fragment(&mut reader)?;
            +731        let transparent_bundle = Self::read_transparent(&mut reader)?;
            +732        let sapling_bundle = sapling_serialization::read_v5_bundle(&mut reader)?;
            +733        let orchard_bundle = orchard_serialization::read_v5_bundle(&mut reader)?;
            +734
            +735        #[cfg(zcash_unstable = "zfuture")]
            +736        let tze_bundle = if version.has_tze() {
            +737            Self::read_tze(&mut reader)?
            +738        } else {
            +739            None
            +740        };
            +741
            +742        let data = TransactionData {
            +743            version,
            +744            consensus_branch_id,
            +745            lock_time,
            +746            expiry_height,
            +747            transparent_bundle,
            +748            sprout_bundle: None,
            +749            sapling_bundle,
            +750            orchard_bundle,
            +751            #[cfg(zcash_unstable = "zfuture")]
            +752            tze_bundle,
            +753        };
            +754
            +755        Ok(Self::from_data_v5(data))
            +756    }
            +757
            +758    fn read_v5_header_fragment<R: Read>(mut reader: R) -> io::Result<(BranchId, u32, BlockHeight)> {
            +759        let consensus_branch_id = reader.read_u32_le().and_then(|value| {
            +760            BranchId::try_from(value).map_err(|_e| {
            +761                io::Error::new(
            +762                    io::ErrorKind::InvalidInput,
            +763                    #[cfg(not(feature = "std"))]
            +764                    "invalid consensus branch id",
            +765                    #[cfg(feature = "std")]
            +766                    format!(
            +767                        "invalid consensus branch id 0x{}",
            +768                        hex::encode(value.to_be_bytes())
            +769                    ),
            +770                )
            +771            })
            +772        })?;
            +773        let lock_time = reader.read_u32_le()?;
            +774        let expiry_height: BlockHeight = reader.read_u32_le()?.into();
            +775        Ok((consensus_branch_id, lock_time, expiry_height))
            +776    }
            +777
            +778    #[cfg(feature = "temporary-zcashd")]
            +779    pub fn temporary_zcashd_read_v5_sapling<R: Read>(
            +780        reader: R,
            +781    ) -> io::Result<Option<sapling::Bundle<sapling::bundle::Authorized, ZatBalance>>> {
            +782        sapling_serialization::read_v5_bundle(reader)
            +783    }
            +784
            +785    #[cfg(zcash_unstable = "zfuture")]
            +786    fn read_tze<R: Read>(mut reader: &mut R) -> io::Result<Option<tze::Bundle<tze::Authorized>>> {
            +787        let vin = Vector::read(&mut reader, TzeIn::read)?;
            +788        let vout = Vector::read(&mut reader, TzeOut::read)?;
            +789        Ok(if vin.is_empty() && vout.is_empty() {
            +790            None
            +791        } else {
            +792            Some(tze::Bundle {
            +793                vin,
            +794                vout,
            +795                authorization: tze::Authorized,
            +796            })
            +797        })
            +798    }
            +799
            +800    pub fn write<W: Write>(&self, writer: W) -> io::Result<()> {
            +801        match self.version {
            +802            TxVersion::Sprout(_) | TxVersion::V3 | TxVersion::V4 => self.write_v4(writer),
            +803            TxVersion::V5 => self.write_v5(writer),
            +804            #[cfg(zcash_unstable = "nu7")]
            +805            TxVersion::V6 => todo!(),
            +806            #[cfg(zcash_unstable = "zfuture")]
            +807            TxVersion::ZFuture => self.write_v5(writer),
            +808        }
            +809    }
            +810
            +811    pub fn write_v4<W: Write>(&self, mut writer: W) -> io::Result<()> {
            +812        self.version.write(&mut writer)?;
             813
            -814        if self.orchard_bundle.is_some() {
            -815            return Err(io::Error::new(
            -816                io::ErrorKind::InvalidInput,
            -817                "Orchard components cannot be present when serializing to the V4 transaction format."
            -818            ));
            -819        }
            -820
            -821        Ok(())
            -822    }
            -823
            -824    pub fn write_transparent<W: Write>(&self, mut writer: W) -> io::Result<()> {
            -825        if let Some(bundle) = &self.transparent_bundle {
            -826            Vector::write(&mut writer, &bundle.vin, |w, e| e.write(w))?;
            -827            Vector::write(&mut writer, &bundle.vout, |w, e| e.write(w))?;
            -828        } else {
            -829            CompactSize::write(&mut writer, 0)?;
            -830            CompactSize::write(&mut writer, 0)?;
            -831        }
            -832
            -833        Ok(())
            -834    }
            +814        self.write_transparent(&mut writer)?;
            +815        writer.write_u32_le(self.lock_time)?;
            +816        if self.version.has_overwinter() {
            +817            writer.write_u32_le(u32::from(self.expiry_height))?;
            +818        }
            +819
            +820        sapling_serialization::write_v4_components(
            +821            &mut writer,
            +822            self.sapling_bundle.as_ref(),
            +823            self.version.has_sapling(),
            +824        )?;
            +825
            +826        if self.version.has_sprout() {
            +827            if let Some(bundle) = self.sprout_bundle.as_ref() {
            +828                Vector::write(&mut writer, &bundle.joinsplits, |w, e| e.write(w))?;
            +829                writer.write_all(&bundle.joinsplit_pubkey)?;
            +830                writer.write_all(&bundle.joinsplit_sig)?;
            +831            } else {
            +832                CompactSize::write(&mut writer, 0)?;
            +833            }
            +834        }
             835
            -836    pub fn write_v5<W: Write>(&self, mut writer: W) -> io::Result<()> {
            -837        if self.sprout_bundle.is_some() {
            -838            return Err(io::Error::new(
            -839                io::ErrorKind::InvalidInput,
            -840                "Sprout components cannot be present when serializing to the V5 transaction format.",
            -841            ));
            -842        }
            -843        self.write_v5_header(&mut writer)?;
            -844        self.write_transparent(&mut writer)?;
            -845        self.write_v5_sapling(&mut writer)?;
            -846        orchard_serialization::write_v5_bundle(self.orchard_bundle.as_ref(), &mut writer)?;
            -847        #[cfg(zcash_unstable = "zfuture")]
            -848        self.write_tze(&mut writer)?;
            +836        if self.version.has_sapling() {
            +837            if let Some(bundle) = self.sapling_bundle.as_ref() {
            +838                writer.write_all(&<[u8; 64]>::from(bundle.authorization().binding_sig))?;
            +839            }
            +840        }
            +841
            +842        if self.orchard_bundle.is_some() {
            +843            return Err(io::Error::new(
            +844                io::ErrorKind::InvalidInput,
            +845                "Orchard components cannot be present when serializing to the V4 transaction format."
            +846            ));
            +847        }
            +848
             849        Ok(())
             850    }
             851
            -852    pub fn write_v5_header<W: Write>(&self, mut writer: W) -> io::Result<()> {
            -853        self.version.write(&mut writer)?;
            -854        writer.write_u32_le(u32::from(self.consensus_branch_id))?;
            -855        writer.write_u32_le(self.lock_time)?;
            -856        writer.write_u32_le(u32::from(self.expiry_height))?;
            -857        Ok(())
            -858    }
            -859
            -860    #[cfg(feature = "temporary-zcashd")]
            -861    pub fn temporary_zcashd_write_v5_sapling<W: Write>(
            -862        sapling_bundle: Option<&sapling::Bundle<sapling::bundle::Authorized, ZatBalance>>,
            -863        writer: W,
            -864    ) -> io::Result<()> {
            -865        sapling_serialization::write_v5_bundle(writer, sapling_bundle)
            -866    }
            -867
            -868    pub fn write_v5_sapling<W: Write>(&self, writer: W) -> io::Result<()> {
            -869        sapling_serialization::write_v5_bundle(writer, self.sapling_bundle.as_ref())
            -870    }
            -871
            -872    #[cfg(zcash_unstable = "zfuture")]
            -873    pub fn write_tze<W: Write>(&self, mut writer: W) -> io::Result<()> {
            -874        if let Some(bundle) = &self.tze_bundle {
            -875            Vector::write(&mut writer, &bundle.vin, |w, e| e.write(w))?;
            -876            Vector::write(&mut writer, &bundle.vout, |w, e| e.write(w))?;
            -877        } else {
            -878            CompactSize::write(&mut writer, 0)?;
            -879            CompactSize::write(&mut writer, 0)?;
            -880        }
            -881
            -882        Ok(())
            -883    }
            -884
            -885    // TODO: should this be moved to `from_data` and stored?
            -886    pub fn auth_commitment(&self) -> Blake2bHash {
            -887        self.data.digest(BlockTxCommitmentDigester)
            -888    }
            -889}
            -890
            -891#[derive(Clone, Debug)]
            -892pub struct TransparentDigests<A> {
            -893    pub prevouts_digest: A,
            -894    pub sequence_digest: A,
            -895    pub outputs_digest: A,
            -896}
            -897
            -898#[derive(Clone, Debug)]
            -899pub struct TzeDigests<A> {
            -900    pub inputs_digest: A,
            -901    pub outputs_digest: A,
            -902    pub per_input_digest: Option<A>,
            -903}
            -904
            -905#[derive(Clone, Debug)]
            -906pub struct TxDigests<A> {
            -907    pub header_digest: A,
            -908    pub transparent_digests: Option<TransparentDigests<A>>,
            -909    pub sapling_digest: Option<A>,
            -910    pub orchard_digest: Option<A>,
            -911    #[cfg(zcash_unstable = "zfuture")]
            -912    pub tze_digests: Option<TzeDigests<A>>,
            -913}
            -914
            -915pub trait TransactionDigest<A: Authorization> {
            -916    type HeaderDigest;
            -917    type TransparentDigest;
            -918    type SaplingDigest;
            -919    type OrchardDigest;
            -920
            -921    #[cfg(zcash_unstable = "zfuture")]
            -922    type TzeDigest;
            -923
            -924    type Digest;
            +852    pub fn write_transparent<W: Write>(&self, mut writer: W) -> io::Result<()> {
            +853        if let Some(bundle) = &self.transparent_bundle {
            +854            Vector::write(&mut writer, &bundle.vin, |w, e| e.write(w))?;
            +855            Vector::write(&mut writer, &bundle.vout, |w, e| e.write(w))?;
            +856        } else {
            +857            CompactSize::write(&mut writer, 0)?;
            +858            CompactSize::write(&mut writer, 0)?;
            +859        }
            +860
            +861        Ok(())
            +862    }
            +863
            +864    pub fn write_v5<W: Write>(&self, mut writer: W) -> io::Result<()> {
            +865        if self.sprout_bundle.is_some() {
            +866            return Err(io::Error::new(
            +867                io::ErrorKind::InvalidInput,
            +868                "Sprout components cannot be present when serializing to the V5 transaction format.",
            +869            ));
            +870        }
            +871        self.write_v5_header(&mut writer)?;
            +872        self.write_transparent(&mut writer)?;
            +873        self.write_v5_sapling(&mut writer)?;
            +874        orchard_serialization::write_v5_bundle(self.orchard_bundle.as_ref(), &mut writer)?;
            +875        #[cfg(zcash_unstable = "zfuture")]
            +876        self.write_tze(&mut writer)?;
            +877        Ok(())
            +878    }
            +879
            +880    pub fn write_v5_header<W: Write>(&self, mut writer: W) -> io::Result<()> {
            +881        self.version.write(&mut writer)?;
            +882        writer.write_u32_le(u32::from(self.consensus_branch_id))?;
            +883        writer.write_u32_le(self.lock_time)?;
            +884        writer.write_u32_le(u32::from(self.expiry_height))?;
            +885        Ok(())
            +886    }
            +887
            +888    #[cfg(feature = "temporary-zcashd")]
            +889    pub fn temporary_zcashd_write_v5_sapling<W: Write>(
            +890        sapling_bundle: Option<&sapling::Bundle<sapling::bundle::Authorized, ZatBalance>>,
            +891        writer: W,
            +892    ) -> io::Result<()> {
            +893        sapling_serialization::write_v5_bundle(writer, sapling_bundle)
            +894    }
            +895
            +896    pub fn write_v5_sapling<W: Write>(&self, writer: W) -> io::Result<()> {
            +897        sapling_serialization::write_v5_bundle(writer, self.sapling_bundle.as_ref())
            +898    }
            +899
            +900    #[cfg(zcash_unstable = "zfuture")]
            +901    pub fn write_tze<W: Write>(&self, mut writer: W) -> io::Result<()> {
            +902        if let Some(bundle) = &self.tze_bundle {
            +903            Vector::write(&mut writer, &bundle.vin, |w, e| e.write(w))?;
            +904            Vector::write(&mut writer, &bundle.vout, |w, e| e.write(w))?;
            +905        } else {
            +906            CompactSize::write(&mut writer, 0)?;
            +907            CompactSize::write(&mut writer, 0)?;
            +908        }
            +909
            +910        Ok(())
            +911    }
            +912
            +913    // TODO: should this be moved to `from_data` and stored?
            +914    pub fn auth_commitment(&self) -> Blake2bHash {
            +915        self.data.digest(BlockTxCommitmentDigester)
            +916    }
            +917}
            +918
            +919#[derive(Clone, Debug)]
            +920pub struct TransparentDigests<A> {
            +921    pub prevouts_digest: A,
            +922    pub sequence_digest: A,
            +923    pub outputs_digest: A,
            +924}
             925
            -926    fn digest_header(
            -927        &self,
            -928        version: TxVersion,
            -929        consensus_branch_id: BranchId,
            -930        lock_time: u32,
            -931        expiry_height: BlockHeight,
            -932    ) -> Self::HeaderDigest;
            -933
            -934    fn digest_transparent(
            -935        &self,
            -936        transparent_bundle: Option<&transparent::Bundle<A::TransparentAuth>>,
            -937    ) -> Self::TransparentDigest;
            -938
            -939    fn digest_sapling(
            -940        &self,
            -941        sapling_bundle: Option<&sapling::Bundle<A::SaplingAuth, ZatBalance>>,
            -942    ) -> Self::SaplingDigest;
            -943
            -944    fn digest_orchard(
            -945        &self,
            -946        orchard_bundle: Option<&orchard::Bundle<A::OrchardAuth, ZatBalance>>,
            -947    ) -> Self::OrchardDigest;
            +926#[derive(Clone, Debug)]
            +927pub struct TzeDigests<A> {
            +928    pub inputs_digest: A,
            +929    pub outputs_digest: A,
            +930    pub per_input_digest: Option<A>,
            +931}
            +932
            +933#[derive(Clone, Debug)]
            +934pub struct TxDigests<A> {
            +935    pub header_digest: A,
            +936    pub transparent_digests: Option<TransparentDigests<A>>,
            +937    pub sapling_digest: Option<A>,
            +938    pub orchard_digest: Option<A>,
            +939    #[cfg(zcash_unstable = "zfuture")]
            +940    pub tze_digests: Option<TzeDigests<A>>,
            +941}
            +942
            +943pub trait TransactionDigest<A: Authorization> {
            +944    type HeaderDigest;
            +945    type TransparentDigest;
            +946    type SaplingDigest;
            +947    type OrchardDigest;
             948
             949    #[cfg(zcash_unstable = "zfuture")]
            -950    fn digest_tze(&self, tze_bundle: Option<&tze::Bundle<A::TzeAuth>>) -> Self::TzeDigest;
            +950    type TzeDigest;
             951
            -952    fn combine(
            -953        &self,
            -954        header_digest: Self::HeaderDigest,
            -955        transparent_digest: Self::TransparentDigest,
            -956        sapling_digest: Self::SaplingDigest,
            -957        orchard_digest: Self::OrchardDigest,
            -958        #[cfg(zcash_unstable = "zfuture")] tze_digest: Self::TzeDigest,
            -959    ) -> Self::Digest;
            -960}
            +952    type Digest;
            +953
            +954    fn digest_header(
            +955        &self,
            +956        version: TxVersion,
            +957        consensus_branch_id: BranchId,
            +958        lock_time: u32,
            +959        expiry_height: BlockHeight,
            +960    ) -> Self::HeaderDigest;
             961
            -962pub enum DigestError {
            -963    NotSigned,
            -964}
            -965
            -966#[cfg(any(test, feature = "test-dependencies"))]
            -967pub mod testing {
            -968    use proptest::prelude::*;
            -969
            -970    use ::transparent::bundle::testing::{self as transparent};
            -971    use zcash_protocol::consensus::BranchId;
            -972
            -973    use super::{
            -974        components::{
            -975            orchard::testing::{self as orchard},
            -976            sapling::testing::{self as sapling},
            -977        },
            -978        Authorized, Transaction, TransactionData, TxId, TxVersion,
            -979    };
            -980
            -981    #[cfg(zcash_unstable = "zfuture")]
            -982    use super::components::tze::testing::{self as tze};
            -983
            -984    pub fn arb_txid() -> impl Strategy<Value = TxId> {
            -985        prop::array::uniform32(any::<u8>()).prop_map(TxId::from_bytes)
            -986    }
            -987
            -988    pub fn arb_tx_version(branch_id: BranchId) -> impl Strategy<Value = TxVersion> {
            -989        match branch_id {
            -990            BranchId::Sprout => (1..=2u32).prop_map(TxVersion::Sprout).boxed(),
            -991            BranchId::Overwinter => Just(TxVersion::Overwinter).boxed(),
            -992            BranchId::Sapling | BranchId::Blossom | BranchId::Heartwood | BranchId::Canopy => {
            -993                Just(TxVersion::Sapling).boxed()
            -994            }
            -995            BranchId::Nu5 => Just(TxVersion::Zip225).boxed(),
            -996            BranchId::Nu6 => Just(TxVersion::Zip225).boxed(),
            -997            #[cfg(zcash_unstable = "zfuture")]
            -998            BranchId::ZFuture => Just(TxVersion::ZFuture).boxed(),
            -999        }
            -1000    }
            -1001
            -1002    #[cfg(not(zcash_unstable = "zfuture"))]
            -1003    prop_compose! {
            -1004        pub fn arb_txdata(consensus_branch_id: BranchId)(
            -1005            version in arb_tx_version(consensus_branch_id),
            -1006        )(
            -1007            lock_time in any::<u32>(),
            -1008            expiry_height in any::<u32>(),
            -1009            transparent_bundle in transparent::arb_bundle(),
            -1010            sapling_bundle in sapling::arb_bundle_for_version(version),
            -1011            orchard_bundle in orchard::arb_bundle_for_version(version),
            -1012            version in Just(version)
            -1013        ) -> TransactionData<Authorized> {
            -1014            TransactionData {
            -1015                version,
            -1016                consensus_branch_id,
            -1017                lock_time,
            -1018                expiry_height: expiry_height.into(),
            -1019                transparent_bundle,
            -1020                sprout_bundle: None,
            -1021                sapling_bundle,
            -1022                orchard_bundle
            -1023            }
            -1024        }
            -1025    }
            -1026
            -1027    #[cfg(zcash_unstable = "zfuture")]
            -1028    prop_compose! {
            -1029        pub fn arb_txdata(consensus_branch_id: BranchId)(
            -1030            version in arb_tx_version(consensus_branch_id),
            -1031        )(
            -1032            lock_time in any::<u32>(),
            -1033            expiry_height in any::<u32>(),
            -1034            transparent_bundle in transparent::arb_bundle(),
            -1035            sapling_bundle in sapling::arb_bundle_for_version(version),
            -1036            orchard_bundle in orchard::arb_bundle_for_version(version),
            -1037            tze_bundle in tze::arb_bundle(consensus_branch_id),
            -1038            version in Just(version)
            -1039        ) -> TransactionData<Authorized> {
            -1040            TransactionData {
            -1041                version,
            -1042                consensus_branch_id,
            -1043                lock_time,
            -1044                expiry_height: expiry_height.into(),
            -1045                transparent_bundle,
            -1046                sprout_bundle: None,
            -1047                sapling_bundle,
            -1048                orchard_bundle,
            -1049                tze_bundle
            -1050            }
            -1051        }
            -1052    }
            -1053
            -1054    prop_compose! {
            -1055        pub fn arb_tx(branch_id: BranchId)(tx_data in arb_txdata(branch_id)) -> Transaction {
            -1056            Transaction::from_data(tx_data).unwrap()
            -1057        }
            -1058    }
            -1059}
            \ No newline at end of file +962 fn digest_transparent( +963 &self, +964 transparent_bundle: Option<&transparent::Bundle<A::TransparentAuth>>, +965 ) -> Self::TransparentDigest; +966 +967 fn digest_sapling( +968 &self, +969 sapling_bundle: Option<&sapling::Bundle<A::SaplingAuth, ZatBalance>>, +970 ) -> Self::SaplingDigest; +971 +972 fn digest_orchard( +973 &self, +974 orchard_bundle: Option<&orchard::Bundle<A::OrchardAuth, ZatBalance>>, +975 ) -> Self::OrchardDigest; +976 +977 #[cfg(zcash_unstable = "zfuture")] +978 fn digest_tze(&self, tze_bundle: Option<&tze::Bundle<A::TzeAuth>>) -> Self::TzeDigest; +979 +980 fn combine( +981 &self, +982 header_digest: Self::HeaderDigest, +983 transparent_digest: Self::TransparentDigest, +984 sapling_digest: Self::SaplingDigest, +985 orchard_digest: Self::OrchardDigest, +986 #[cfg(zcash_unstable = "zfuture")] tze_digest: Self::TzeDigest, +987 ) -> Self::Digest; +988} +989 +990pub enum DigestError { +991 NotSigned, +992} +993 +994#[cfg(any(test, feature = "test-dependencies"))] +995pub mod testing { +996 use proptest::prelude::*; +997 +998 use ::transparent::bundle::testing::{self as transparent}; +999 use zcash_protocol::consensus::BranchId; +1000 +1001 use super::{ +1002 components::{ +1003 orchard::testing::{self as orchard}, +1004 sapling::testing::{self as sapling}, +1005 }, +1006 Authorized, Transaction, TransactionData, TxId, TxVersion, +1007 }; +1008 +1009 #[cfg(zcash_unstable = "zfuture")] +1010 use super::components::tze::testing::{self as tze}; +1011 +1012 pub fn arb_txid() -> impl Strategy<Value = TxId> { +1013 prop::array::uniform32(any::<u8>()).prop_map(TxId::from_bytes) +1014 } +1015 +1016 pub fn arb_tx_version(branch_id: BranchId) -> impl Strategy<Value = TxVersion> { +1017 match branch_id { +1018 BranchId::Sprout => (1..=2u32).prop_map(TxVersion::Sprout).boxed(), +1019 BranchId::Overwinter => Just(TxVersion::V3).boxed(), +1020 BranchId::Sapling | BranchId::Blossom | BranchId::Heartwood | BranchId::Canopy => { +1021 Just(TxVersion::V4).boxed() +1022 } +1023 BranchId::Nu5 => Just(TxVersion::V5).boxed(), +1024 BranchId::Nu6 => Just(TxVersion::V5).boxed(), +1025 #[cfg(zcash_unstable = "nu7")] +1026 BranchId::Nu7 => Just(TxVersion::V6).boxed(), +1027 #[cfg(zcash_unstable = "zfuture")] +1028 BranchId::ZFuture => Just(TxVersion::ZFuture).boxed(), +1029 } +1030 } +1031 +1032 #[cfg(not(zcash_unstable = "zfuture"))] +1033 prop_compose! { +1034 pub fn arb_txdata(consensus_branch_id: BranchId)( +1035 version in arb_tx_version(consensus_branch_id), +1036 )( +1037 lock_time in any::<u32>(), +1038 expiry_height in any::<u32>(), +1039 transparent_bundle in transparent::arb_bundle(), +1040 sapling_bundle in sapling::arb_bundle_for_version(version), +1041 orchard_bundle in orchard::arb_bundle_for_version(version), +1042 version in Just(version) +1043 ) -> TransactionData<Authorized> { +1044 TransactionData { +1045 version, +1046 consensus_branch_id, +1047 lock_time, +1048 expiry_height: expiry_height.into(), +1049 transparent_bundle, +1050 sprout_bundle: None, +1051 sapling_bundle, +1052 orchard_bundle +1053 } +1054 } +1055 } +1056 +1057 #[cfg(zcash_unstable = "zfuture")] +1058 prop_compose! { +1059 pub fn arb_txdata(consensus_branch_id: BranchId)( +1060 version in arb_tx_version(consensus_branch_id), +1061 )( +1062 lock_time in any::<u32>(), +1063 expiry_height in any::<u32>(), +1064 transparent_bundle in transparent::arb_bundle(), +1065 sapling_bundle in sapling::arb_bundle_for_version(version), +1066 orchard_bundle in orchard::arb_bundle_for_version(version), +1067 tze_bundle in tze::arb_bundle(consensus_branch_id), +1068 version in Just(version) +1069 ) -> TransactionData<Authorized> { +1070 TransactionData { +1071 version, +1072 consensus_branch_id, +1073 lock_time, +1074 expiry_height: expiry_height.into(), +1075 transparent_bundle, +1076 sprout_bundle: None, +1077 sapling_bundle, +1078 orchard_bundle, +1079 tze_bundle +1080 } +1081 } +1082 } +1083 +1084 prop_compose! { +1085 pub fn arb_tx(branch_id: BranchId)(tx_data in arb_txdata(branch_id)) -> Transaction { +1086 Transaction::from_data(tx_data).unwrap() +1087 } +1088 } +1089}
            \ No newline at end of file diff --git a/rustdoc/latest/src/zcash_primitives/transaction/sighash.rs.html b/rustdoc/latest/src/zcash_primitives/transaction/sighash.rs.html index 2ccd6893f..88c10fb54 100644 --- a/rustdoc/latest/src/zcash_primitives/transaction/sighash.rs.html +++ b/rustdoc/latest/src/zcash_primitives/transaction/sighash.rs.html @@ -1,4 +1,4 @@ -sighash.rs - source

            zcash_primitives/transaction/
            sighash.rs

            1use blake2b_simd::Hash as Blake2bHash;
            +sighash.rs - source

            zcash_primitives/transaction/
            sighash.rs

            1use blake2b_simd::Hash as Blake2bHash;
             2
             3use super::{
             4    sighash_v4::v4_signature_hash, sighash_v5::v5_signature_hash, Authorization, TransactionData,
            @@ -67,13 +67,15 @@
             67    txid_parts: &TxDigests<Blake2bHash>,
             68) -> SignatureHash {
             69    SignatureHash(match tx.version {
            -70        TxVersion::Sprout(_) | TxVersion::Overwinter | TxVersion::Sapling => {
            +70        TxVersion::Sprout(_) | TxVersion::V3 | TxVersion::V4 => {
             71            v4_signature_hash(tx, signable_input)
             72        }
             73
            -74        TxVersion::Zip225 => v5_signature_hash(tx, signable_input, txid_parts),
            +74        TxVersion::V5 => v5_signature_hash(tx, signable_input, txid_parts),
             75
            -76        #[cfg(zcash_unstable = "zfuture")]
            -77        TxVersion::ZFuture => v5_signature_hash(tx, signable_input, txid_parts),
            -78    })
            -79}
            \ No newline at end of file +76 #[cfg(zcash_unstable = "nu7")] +77 TxVersion::V6 => todo!(), +78 #[cfg(zcash_unstable = "zfuture")] +79 TxVersion::ZFuture => v5_signature_hash(tx, signable_input, txid_parts), +80 }) +81}
            \ No newline at end of file diff --git a/rustdoc/latest/src/zcash_primitives/transaction/sighash_v4.rs.html b/rustdoc/latest/src/zcash_primitives/transaction/sighash_v4.rs.html index b4d75aa99..b557a35f0 100644 --- a/rustdoc/latest/src/zcash_primitives/transaction/sighash_v4.rs.html +++ b/rustdoc/latest/src/zcash_primitives/transaction/sighash_v4.rs.html @@ -1,4 +1,4 @@ -sighash_v4.rs - source

            zcash_primitives/transaction/
            sighash_v4.rs

            1use alloc::vec::Vec;
            +sighash_v4.rs - source

            zcash_primitives/transaction/
            sighash_v4.rs

            1use alloc::vec::Vec;
             2use blake2b_simd::{Hash as Blake2bHash, Params as Blake2bParams};
             3use ff::PrimeField;
             4
            diff --git a/rustdoc/latest/src/zcash_primitives/transaction/sighash_v5.rs.html b/rustdoc/latest/src/zcash_primitives/transaction/sighash_v5.rs.html
            index fd2da0200..b40a03878 100644
            --- a/rustdoc/latest/src/zcash_primitives/transaction/sighash_v5.rs.html
            +++ b/rustdoc/latest/src/zcash_primitives/transaction/sighash_v5.rs.html
            @@ -1,4 +1,4 @@
            -sighash_v5.rs - source

            zcash_primitives/transaction/
            sighash_v5.rs

            1use blake2b_simd::{Hash as Blake2bHash, Params};
            +sighash_v5.rs - source

            zcash_primitives/transaction/
            sighash_v5.rs

            1use blake2b_simd::{Hash as Blake2bHash, Params};
             2use core2::io::Write;
             3
             4use ::transparent::{
            diff --git a/rustdoc/latest/src/zcash_primitives/transaction/txid.rs.html b/rustdoc/latest/src/zcash_primitives/transaction/txid.rs.html
            index 8f2e8e8e7..7d172961d 100644
            --- a/rustdoc/latest/src/zcash_primitives/transaction/txid.rs.html
            +++ b/rustdoc/latest/src/zcash_primitives/transaction/txid.rs.html
            @@ -1,4 +1,4 @@
            -txid.rs - source

            zcash_primitives/transaction/
            txid.rs

            1use crate::encoding::{StateWrite, WriteBytesExt};
            +txid.rs - source

            zcash_primitives/transaction/
            txid.rs

            1use crate::encoding::{StateWrite, WriteBytesExt};
             2use core::borrow::Borrow;
             3use core::convert::TryFrom;
             4use core2::io::Write;
            diff --git a/rustdoc/latest/src/zcash_primitives/transaction/util.rs.html b/rustdoc/latest/src/zcash_primitives/transaction/util.rs.html
            index 64380a602..32e1ec10d 100644
            --- a/rustdoc/latest/src/zcash_primitives/transaction/util.rs.html
            +++ b/rustdoc/latest/src/zcash_primitives/transaction/util.rs.html
            @@ -1 +1 @@
            -util.rs - source

            zcash_primitives/transaction/
            util.rs

            1pub mod sha256d;
            \ No newline at end of file +util.rs - source

            zcash_primitives/transaction/
            util.rs

            1pub mod sha256d;
            \ No newline at end of file diff --git a/rustdoc/latest/src/zcash_primitives/transaction/util/sha256d.rs.html b/rustdoc/latest/src/zcash_primitives/transaction/util/sha256d.rs.html index 0a4ffb370..b5d39d9c4 100644 --- a/rustdoc/latest/src/zcash_primitives/transaction/util/sha256d.rs.html +++ b/rustdoc/latest/src/zcash_primitives/transaction/util/sha256d.rs.html @@ -1,4 +1,4 @@ -sha256d.rs - source

            zcash_primitives/transaction/util/
            sha256d.rs

            1use core2::io::{self, Read, Write};
            +sha256d.rs - source

            zcash_primitives/transaction/util/
            sha256d.rs

            1use core2::io::{self, Read, Write};
             2use sha2::{digest::Output, Digest, Sha256};
             3
             4/// Abstraction over a reader which SHA-256d-hashes the data being read.
            diff --git a/rustdoc/latest/src/zcash_proofs/circuit.rs.html b/rustdoc/latest/src/zcash_proofs/circuit.rs.html
            index 6bbce97fd..954ecb54f 100644
            --- a/rustdoc/latest/src/zcash_proofs/circuit.rs.html
            +++ b/rustdoc/latest/src/zcash_proofs/circuit.rs.html
            @@ -1,3 +1,3 @@
            -circuit.rs - source

            zcash_proofs/
            circuit.rs

            1//! Implementations of the Zcash circuits and Zcash-specific gadgets.
            +circuit.rs - source

            zcash_proofs/
            circuit.rs

            1//! Implementations of the Zcash circuits and Zcash-specific gadgets.
             2
             3pub mod sprout;
            \ No newline at end of file diff --git a/rustdoc/latest/src/zcash_proofs/circuit/sprout/commitment.rs.html b/rustdoc/latest/src/zcash_proofs/circuit/sprout/commitment.rs.html index 434d4c2d9..b9fbdea1f 100644 --- a/rustdoc/latest/src/zcash_proofs/circuit/sprout/commitment.rs.html +++ b/rustdoc/latest/src/zcash_proofs/circuit/sprout/commitment.rs.html @@ -1,4 +1,4 @@ -commitment.rs - source

            zcash_proofs/circuit/sprout/
            commitment.rs

            1use bellman::gadgets::boolean::Boolean;
            +commitment.rs - source

            zcash_proofs/circuit/sprout/
            commitment.rs

            1use bellman::gadgets::boolean::Boolean;
             2use bellman::gadgets::sha256::sha256;
             3use bellman::{ConstraintSystem, SynthesisError};
             4use group::ff::PrimeField;
            diff --git a/rustdoc/latest/src/zcash_proofs/circuit/sprout/input.rs.html b/rustdoc/latest/src/zcash_proofs/circuit/sprout/input.rs.html
            index b3c1484b9..668531f0d 100644
            --- a/rustdoc/latest/src/zcash_proofs/circuit/sprout/input.rs.html
            +++ b/rustdoc/latest/src/zcash_proofs/circuit/sprout/input.rs.html
            @@ -1,4 +1,4 @@
            -input.rs - source

            zcash_proofs/circuit/sprout/
            input.rs

            1use bellman::gadgets::boolean::{AllocatedBit, Boolean};
            +input.rs - source

            zcash_proofs/circuit/sprout/
            input.rs

            1use bellman::gadgets::boolean::{AllocatedBit, Boolean};
             2use bellman::gadgets::sha256::sha256_block_no_padding;
             3use bellman::{ConstraintSystem, SynthesisError};
             4use group::ff::PrimeField;
            diff --git a/rustdoc/latest/src/zcash_proofs/circuit/sprout/mod.rs.html b/rustdoc/latest/src/zcash_proofs/circuit/sprout/mod.rs.html
            index a3c5e244f..b4fff452c 100644
            --- a/rustdoc/latest/src/zcash_proofs/circuit/sprout/mod.rs.html
            +++ b/rustdoc/latest/src/zcash_proofs/circuit/sprout/mod.rs.html
            @@ -1,4 +1,4 @@
            -mod.rs - source

            zcash_proofs/circuit/sprout/
            mod.rs

            1//! The "hybrid Sprout" circuit.
            +mod.rs - source

            zcash_proofs/circuit/sprout/
            mod.rs

            1//! The "hybrid Sprout" circuit.
             2//!
             3//! "Hybrid Sprout" refers to the implementation of the [Sprout statement] in
             4//! `bellman` for [`groth16`], instead of the [original implementation][oldimpl]
            diff --git a/rustdoc/latest/src/zcash_proofs/circuit/sprout/output.rs.html b/rustdoc/latest/src/zcash_proofs/circuit/sprout/output.rs.html
            index d5c3a92e6..c34d79991 100644
            --- a/rustdoc/latest/src/zcash_proofs/circuit/sprout/output.rs.html
            +++ b/rustdoc/latest/src/zcash_proofs/circuit/sprout/output.rs.html
            @@ -1,4 +1,4 @@
            -output.rs - source

            zcash_proofs/circuit/sprout/
            output.rs

            1use bellman::gadgets::boolean::Boolean;
            +output.rs - source

            zcash_proofs/circuit/sprout/
            output.rs

            1use bellman::gadgets::boolean::Boolean;
             2use bellman::{ConstraintSystem, SynthesisError};
             3use group::ff::PrimeField;
             4
            diff --git a/rustdoc/latest/src/zcash_proofs/circuit/sprout/prfs.rs.html b/rustdoc/latest/src/zcash_proofs/circuit/sprout/prfs.rs.html
            index e460d3151..9ead5c1e2 100644
            --- a/rustdoc/latest/src/zcash_proofs/circuit/sprout/prfs.rs.html
            +++ b/rustdoc/latest/src/zcash_proofs/circuit/sprout/prfs.rs.html
            @@ -1,4 +1,4 @@
            -prfs.rs - source

            zcash_proofs/circuit/sprout/
            prfs.rs

            1use bellman::gadgets::boolean::Boolean;
            +prfs.rs - source

            zcash_proofs/circuit/sprout/
            prfs.rs

            1use bellman::gadgets::boolean::Boolean;
             2use bellman::gadgets::sha256::sha256_block_no_padding;
             3use bellman::{ConstraintSystem, SynthesisError};
             4use group::ff::PrimeField;
            diff --git a/rustdoc/latest/src/zcash_proofs/downloadreader.rs.html b/rustdoc/latest/src/zcash_proofs/downloadreader.rs.html
            index 8109dc635..16159898f 100644
            --- a/rustdoc/latest/src/zcash_proofs/downloadreader.rs.html
            +++ b/rustdoc/latest/src/zcash_proofs/downloadreader.rs.html
            @@ -1,4 +1,4 @@
            -downloadreader.rs - source

            zcash_proofs/
            downloadreader.rs

            1//! [`io::Read`] implementations for [`minreq`].
            +downloadreader.rs - source

            zcash_proofs/
            downloadreader.rs

            1//! [`io::Read`] implementations for [`minreq`].
             2
             3use std::io;
             4
            diff --git a/rustdoc/latest/src/zcash_proofs/hashreader.rs.html b/rustdoc/latest/src/zcash_proofs/hashreader.rs.html
            index c20c53885..2e97287dd 100644
            --- a/rustdoc/latest/src/zcash_proofs/hashreader.rs.html
            +++ b/rustdoc/latest/src/zcash_proofs/hashreader.rs.html
            @@ -1,4 +1,4 @@
            -hashreader.rs - source

            zcash_proofs/
            hashreader.rs

            1//! Abstraction over a reader which hashes the data being read.
            +hashreader.rs - source

            zcash_proofs/
            hashreader.rs

            1//! Abstraction over a reader which hashes the data being read.
             2
             3use std::{
             4    fmt::Write,
            diff --git a/rustdoc/latest/src/zcash_proofs/lib.rs.html b/rustdoc/latest/src/zcash_proofs/lib.rs.html
            index 02fd15444..c8d4c3ad2 100644
            --- a/rustdoc/latest/src/zcash_proofs/lib.rs.html
            +++ b/rustdoc/latest/src/zcash_proofs/lib.rs.html
            @@ -1,4 +1,4 @@
            -lib.rs - source

            zcash_proofs/
            lib.rs

            1//! *Zcash circuits and proofs.*
            +lib.rs - source

            zcash_proofs/
            lib.rs

            1//! *Zcash circuits and proofs.*
             2//!
             3//! `zcash_proofs` contains the zk-SNARK circuits used by Zcash, and the APIs for creating
             4//! and verifying proofs.
            diff --git a/rustdoc/latest/src/zcash_proofs/prover.rs.html b/rustdoc/latest/src/zcash_proofs/prover.rs.html
            index 8c478416f..af8894f02 100644
            --- a/rustdoc/latest/src/zcash_proofs/prover.rs.html
            +++ b/rustdoc/latest/src/zcash_proofs/prover.rs.html
            @@ -1,4 +1,4 @@
            -prover.rs - source

            zcash_proofs/
            prover.rs

            1//! Abstractions over the proving system and parameters for ease of use.
            +prover.rs - source

            zcash_proofs/
            prover.rs

            1//! Abstractions over the proving system and parameters for ease of use.
             2
             3use bellman::groth16::Proof;
             4use bls12_381::Bls12;
            diff --git a/rustdoc/latest/src/zcash_proofs/sprout.rs.html b/rustdoc/latest/src/zcash_proofs/sprout.rs.html
            index 65676c2f8..15b3283fd 100644
            --- a/rustdoc/latest/src/zcash_proofs/sprout.rs.html
            +++ b/rustdoc/latest/src/zcash_proofs/sprout.rs.html
            @@ -1,4 +1,4 @@
            -sprout.rs - source

            zcash_proofs/
            sprout.rs

            1//! APIs for creating and verifying Sprout proofs.
            +sprout.rs - source

            zcash_proofs/
            sprout.rs

            1//! APIs for creating and verifying Sprout proofs.
             2
             3use bellman::{
             4    gadgets::multipack,
            diff --git a/rustdoc/latest/src/zcash_protocol/consensus.rs.html b/rustdoc/latest/src/zcash_protocol/consensus.rs.html
            index 0878434b4..f5dca52b2 100644
            --- a/rustdoc/latest/src/zcash_protocol/consensus.rs.html
            +++ b/rustdoc/latest/src/zcash_protocol/consensus.rs.html
            @@ -1,4 +1,4 @@
            -consensus.rs - source

            zcash_protocol/
            consensus.rs

            1//! Consensus logic and parameters.
            +consensus.rs - source

            zcash_protocol/
            consensus.rs

            1//! Consensus logic and parameters.
             2
             3use core::cmp::{Ord, Ordering};
             4use core::convert::TryFrom;
            @@ -408,444 +408,474 @@
             408            NetworkUpgrade::Canopy => Some(BlockHeight(1_046_400)),
             409            NetworkUpgrade::Nu5 => Some(BlockHeight(1_687_104)),
             410            NetworkUpgrade::Nu6 => Some(BlockHeight(2_726_400)),
            -411            #[cfg(zcash_unstable = "zfuture")]
            -412            NetworkUpgrade::ZFuture => None,
            -413        }
            -414    }
            -415}
            -416
            -417/// Marker struct for the test network.
            -418#[derive(PartialEq, Eq, Copy, Clone, Debug)]
            -419pub struct TestNetwork;
            -420
            -421#[cfg(feature = "std")]
            -422memuse::impl_no_dynamic_usage!(TestNetwork);
            -423
            -424/// The test network.
            -425pub const TEST_NETWORK: TestNetwork = TestNetwork;
            -426
            -427impl Parameters for TestNetwork {
            -428    fn network_type(&self) -> NetworkType {
            -429        NetworkType::Test
            -430    }
            -431
            -432    fn activation_height(&self, nu: NetworkUpgrade) -> Option<BlockHeight> {
            -433        match nu {
            -434            NetworkUpgrade::Overwinter => Some(BlockHeight(207_500)),
            -435            NetworkUpgrade::Sapling => Some(BlockHeight(280_000)),
            -436            NetworkUpgrade::Blossom => Some(BlockHeight(584_000)),
            -437            NetworkUpgrade::Heartwood => Some(BlockHeight(903_800)),
            -438            NetworkUpgrade::Canopy => Some(BlockHeight(1_028_500)),
            -439            NetworkUpgrade::Nu5 => Some(BlockHeight(1_842_420)),
            -440            NetworkUpgrade::Nu6 => Some(BlockHeight(2_976_000)),
            -441            #[cfg(zcash_unstable = "zfuture")]
            -442            NetworkUpgrade::ZFuture => None,
            -443        }
            -444    }
            -445}
            -446
            -447/// The enumeration of known Zcash networks.
            -448#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
            -449pub enum Network {
            -450    /// Zcash Mainnet.
            -451    MainNetwork,
            -452    /// Zcash Testnet.
            -453    TestNetwork,
            -454}
            -455
            -456#[cfg(feature = "std")]
            -457memuse::impl_no_dynamic_usage!(Network);
            -458
            -459impl Parameters for Network {
            -460    fn network_type(&self) -> NetworkType {
            -461        match self {
            -462            Network::MainNetwork => NetworkType::Main,
            -463            Network::TestNetwork => NetworkType::Test,
            -464        }
            -465    }
            -466
            -467    fn activation_height(&self, nu: NetworkUpgrade) -> Option<BlockHeight> {
            -468        match self {
            -469            Network::MainNetwork => MAIN_NETWORK.activation_height(nu),
            -470            Network::TestNetwork => TEST_NETWORK.activation_height(nu),
            -471        }
            -472    }
            -473}
            -474
            -475/// An event that occurs at a specified height on the Zcash chain, at which point the
            -476/// consensus rules enforced by the network are altered.
            -477///
            -478/// See [ZIP 200](https://zips.z.cash/zip-0200) for more details.
            -479#[derive(Clone, Copy, Debug, PartialEq, Eq)]
            -480pub enum NetworkUpgrade {
            -481    /// The [Overwinter] network upgrade.
            -482    ///
            -483    /// [Overwinter]: https://z.cash/upgrade/overwinter/
            -484    Overwinter,
            -485    /// The [Sapling] network upgrade.
            +411            #[cfg(zcash_unstable = "nu7")]
            +412            NetworkUpgrade::Nu7 => None,
            +413            #[cfg(zcash_unstable = "zfuture")]
            +414            NetworkUpgrade::ZFuture => None,
            +415        }
            +416    }
            +417}
            +418
            +419/// Marker struct for the test network.
            +420#[derive(PartialEq, Eq, Copy, Clone, Debug)]
            +421pub struct TestNetwork;
            +422
            +423#[cfg(feature = "std")]
            +424memuse::impl_no_dynamic_usage!(TestNetwork);
            +425
            +426/// The test network.
            +427pub const TEST_NETWORK: TestNetwork = TestNetwork;
            +428
            +429impl Parameters for TestNetwork {
            +430    fn network_type(&self) -> NetworkType {
            +431        NetworkType::Test
            +432    }
            +433
            +434    fn activation_height(&self, nu: NetworkUpgrade) -> Option<BlockHeight> {
            +435        match nu {
            +436            NetworkUpgrade::Overwinter => Some(BlockHeight(207_500)),
            +437            NetworkUpgrade::Sapling => Some(BlockHeight(280_000)),
            +438            NetworkUpgrade::Blossom => Some(BlockHeight(584_000)),
            +439            NetworkUpgrade::Heartwood => Some(BlockHeight(903_800)),
            +440            NetworkUpgrade::Canopy => Some(BlockHeight(1_028_500)),
            +441            NetworkUpgrade::Nu5 => Some(BlockHeight(1_842_420)),
            +442            NetworkUpgrade::Nu6 => Some(BlockHeight(2_976_000)),
            +443            #[cfg(zcash_unstable = "nu7")]
            +444            NetworkUpgrade::Nu7 => None,
            +445            #[cfg(zcash_unstable = "zfuture")]
            +446            NetworkUpgrade::ZFuture => None,
            +447        }
            +448    }
            +449}
            +450
            +451/// The enumeration of known Zcash networks.
            +452#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
            +453pub enum Network {
            +454    /// Zcash Mainnet.
            +455    MainNetwork,
            +456    /// Zcash Testnet.
            +457    TestNetwork,
            +458}
            +459
            +460#[cfg(feature = "std")]
            +461memuse::impl_no_dynamic_usage!(Network);
            +462
            +463impl Parameters for Network {
            +464    fn network_type(&self) -> NetworkType {
            +465        match self {
            +466            Network::MainNetwork => NetworkType::Main,
            +467            Network::TestNetwork => NetworkType::Test,
            +468        }
            +469    }
            +470
            +471    fn activation_height(&self, nu: NetworkUpgrade) -> Option<BlockHeight> {
            +472        match self {
            +473            Network::MainNetwork => MAIN_NETWORK.activation_height(nu),
            +474            Network::TestNetwork => TEST_NETWORK.activation_height(nu),
            +475        }
            +476    }
            +477}
            +478
            +479/// An event that occurs at a specified height on the Zcash chain, at which point the
            +480/// consensus rules enforced by the network are altered.
            +481///
            +482/// See [ZIP 200](https://zips.z.cash/zip-0200) for more details.
            +483#[derive(Clone, Copy, Debug, PartialEq, Eq)]
            +484pub enum NetworkUpgrade {
            +485    /// The [Overwinter] network upgrade.
             486    ///
            -487    /// [Sapling]: https://z.cash/upgrade/sapling/
            -488    Sapling,
            -489    /// The [Blossom] network upgrade.
            +487    /// [Overwinter]: https://z.cash/upgrade/overwinter/
            +488    Overwinter,
            +489    /// The [Sapling] network upgrade.
             490    ///
            -491    /// [Blossom]: https://z.cash/upgrade/blossom/
            -492    Blossom,
            -493    /// The [Heartwood] network upgrade.
            +491    /// [Sapling]: https://z.cash/upgrade/sapling/
            +492    Sapling,
            +493    /// The [Blossom] network upgrade.
             494    ///
            -495    /// [Heartwood]: https://z.cash/upgrade/heartwood/
            -496    Heartwood,
            -497    /// The [Canopy] network upgrade.
            +495    /// [Blossom]: https://z.cash/upgrade/blossom/
            +496    Blossom,
            +497    /// The [Heartwood] network upgrade.
             498    ///
            -499    /// [Canopy]: https://z.cash/upgrade/canopy/
            -500    Canopy,
            -501    /// The [Nu5] network upgrade.
            +499    /// [Heartwood]: https://z.cash/upgrade/heartwood/
            +500    Heartwood,
            +501    /// The [Canopy] network upgrade.
             502    ///
            -503    /// [Nu5]: https://z.cash/upgrade/nu5/
            -504    Nu5,
            -505    /// The [Nu6] network upgrade.
            +503    /// [Canopy]: https://z.cash/upgrade/canopy/
            +504    Canopy,
            +505    /// The [Nu5] network upgrade.
             506    ///
            -507    /// [Nu6]: https://z.cash/upgrade/nu6/
            -508    Nu6,
            -509    /// The ZFUTURE network upgrade.
            +507    /// [Nu5]: https://z.cash/upgrade/nu5/
            +508    Nu5,
            +509    /// The [Nu6] network upgrade.
             510    ///
            -511    /// This upgrade is expected never to activate on mainnet;
            -512    /// it is intended for use in integration testing of functionality
            -513    /// that is a candidate for integration in a future network upgrade.
            -514    #[cfg(zcash_unstable = "zfuture")]
            -515    ZFuture,
            -516}
            -517
            -518#[cfg(feature = "std")]
            -519memuse::impl_no_dynamic_usage!(NetworkUpgrade);
            -520
            -521impl fmt::Display for NetworkUpgrade {
            -522    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
            -523        match self {
            -524            NetworkUpgrade::Overwinter => write!(f, "Overwinter"),
            -525            NetworkUpgrade::Sapling => write!(f, "Sapling"),
            -526            NetworkUpgrade::Blossom => write!(f, "Blossom"),
            -527            NetworkUpgrade::Heartwood => write!(f, "Heartwood"),
            -528            NetworkUpgrade::Canopy => write!(f, "Canopy"),
            -529            NetworkUpgrade::Nu5 => write!(f, "Nu5"),
            -530            NetworkUpgrade::Nu6 => write!(f, "Nu6"),
            -531            #[cfg(zcash_unstable = "zfuture")]
            -532            NetworkUpgrade::ZFuture => write!(f, "ZFUTURE"),
            -533        }
            -534    }
            -535}
            -536
            -537impl NetworkUpgrade {
            -538    fn branch_id(self) -> BranchId {
            -539        match self {
            -540            NetworkUpgrade::Overwinter => BranchId::Overwinter,
            -541            NetworkUpgrade::Sapling => BranchId::Sapling,
            -542            NetworkUpgrade::Blossom => BranchId::Blossom,
            -543            NetworkUpgrade::Heartwood => BranchId::Heartwood,
            -544            NetworkUpgrade::Canopy => BranchId::Canopy,
            -545            NetworkUpgrade::Nu5 => BranchId::Nu5,
            -546            NetworkUpgrade::Nu6 => BranchId::Nu6,
            -547            #[cfg(zcash_unstable = "zfuture")]
            -548            NetworkUpgrade::ZFuture => BranchId::ZFuture,
            -549        }
            -550    }
            -551}
            -552
            -553/// The network upgrades on the Zcash chain in order of activation.
            -554///
            -555/// This order corresponds to the activation heights, but because Rust enums are
            -556/// full-fledged algebraic data types, we need to define it manually.
            -557const UPGRADES_IN_ORDER: &[NetworkUpgrade] = &[
            -558    NetworkUpgrade::Overwinter,
            -559    NetworkUpgrade::Sapling,
            -560    NetworkUpgrade::Blossom,
            -561    NetworkUpgrade::Heartwood,
            -562    NetworkUpgrade::Canopy,
            -563    NetworkUpgrade::Nu5,
            -564    NetworkUpgrade::Nu6,
            -565];
            -566
            -567/// The "grace period" defined in [ZIP 212].
            -568///
            -569/// [ZIP 212]: https://zips.z.cash/zip-0212#changes-to-the-process-of-receiving-sapling-or-orchard-notes
            -570pub const ZIP212_GRACE_PERIOD: u32 = 32256;
            -571
            -572/// A globally-unique identifier for a set of consensus rules within the Zcash chain.
            -573///
            -574/// Each branch ID in this enum corresponds to one of the epochs between a pair of Zcash
            -575/// network upgrades. For example, `BranchId::Overwinter` corresponds to the blocks
            -576/// starting at Overwinter activation, and ending the block before Sapling activation.
            -577///
            -578/// The main use of the branch ID is in signature generation: transactions commit to a
            -579/// specific branch ID by including it as part of [`signature_hash`]. This ensures
            -580/// two-way replay protection for transactions across network upgrades.
            -581///
            -582/// See [ZIP 200](https://zips.z.cash/zip-0200) for more details.
            +511    /// [Nu6]: https://z.cash/upgrade/nu6/
            +512    Nu6,
            +513    /// The [Nu7 (proposed)] network upgrade.
            +514    ///
            +515    /// [Nu7 (proposed)]: https://z.cash/upgrade/nu7/
            +516    #[cfg(zcash_unstable = "nu7")]
            +517    Nu7,
            +518    /// The ZFUTURE network upgrade.
            +519    ///
            +520    /// This upgrade is expected never to activate on mainnet;
            +521    /// it is intended for use in integration testing of functionality
            +522    /// that is a candidate for integration in a future network upgrade.
            +523    #[cfg(zcash_unstable = "zfuture")]
            +524    ZFuture,
            +525}
            +526
            +527#[cfg(feature = "std")]
            +528memuse::impl_no_dynamic_usage!(NetworkUpgrade);
            +529
            +530impl fmt::Display for NetworkUpgrade {
            +531    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
            +532        match self {
            +533            NetworkUpgrade::Overwinter => write!(f, "Overwinter"),
            +534            NetworkUpgrade::Sapling => write!(f, "Sapling"),
            +535            NetworkUpgrade::Blossom => write!(f, "Blossom"),
            +536            NetworkUpgrade::Heartwood => write!(f, "Heartwood"),
            +537            NetworkUpgrade::Canopy => write!(f, "Canopy"),
            +538            NetworkUpgrade::Nu5 => write!(f, "Nu5"),
            +539            NetworkUpgrade::Nu6 => write!(f, "Nu6"),
            +540            #[cfg(zcash_unstable = "nu7")]
            +541            NetworkUpgrade::Nu7 => write!(f, "Nu7"),
            +542            #[cfg(zcash_unstable = "zfuture")]
            +543            NetworkUpgrade::ZFuture => write!(f, "ZFUTURE"),
            +544        }
            +545    }
            +546}
            +547
            +548impl NetworkUpgrade {
            +549    fn branch_id(self) -> BranchId {
            +550        match self {
            +551            NetworkUpgrade::Overwinter => BranchId::Overwinter,
            +552            NetworkUpgrade::Sapling => BranchId::Sapling,
            +553            NetworkUpgrade::Blossom => BranchId::Blossom,
            +554            NetworkUpgrade::Heartwood => BranchId::Heartwood,
            +555            NetworkUpgrade::Canopy => BranchId::Canopy,
            +556            NetworkUpgrade::Nu5 => BranchId::Nu5,
            +557            NetworkUpgrade::Nu6 => BranchId::Nu6,
            +558            #[cfg(zcash_unstable = "nu7")]
            +559            NetworkUpgrade::Nu7 => BranchId::Nu7,
            +560            #[cfg(zcash_unstable = "zfuture")]
            +561            NetworkUpgrade::ZFuture => BranchId::ZFuture,
            +562        }
            +563    }
            +564}
            +565
            +566/// The network upgrades on the Zcash chain in order of activation.
            +567///
            +568/// This order corresponds to the activation heights, but because Rust enums are
            +569/// full-fledged algebraic data types, we need to define it manually.
            +570const UPGRADES_IN_ORDER: &[NetworkUpgrade] = &[
            +571    NetworkUpgrade::Overwinter,
            +572    NetworkUpgrade::Sapling,
            +573    NetworkUpgrade::Blossom,
            +574    NetworkUpgrade::Heartwood,
            +575    NetworkUpgrade::Canopy,
            +576    NetworkUpgrade::Nu5,
            +577    NetworkUpgrade::Nu6,
            +578    #[cfg(zcash_unstable = "nu7")]
            +579    NetworkUpgrade::Nu7,
            +580];
            +581
            +582/// The "grace period" defined in [ZIP 212].
             583///
            -584/// [`signature_hash`]: https://docs.rs/zcash_primitives/latest/zcash_primitives/transaction/sighash/fn.signature_hash.html
            -585#[derive(Clone, Copy, Debug, PartialEq, Eq)]
            -586pub enum BranchId {
            -587    /// The consensus rules at the launch of Zcash.
            -588    Sprout,
            -589    /// The consensus rules deployed by [`NetworkUpgrade::Overwinter`].
            -590    Overwinter,
            -591    /// The consensus rules deployed by [`NetworkUpgrade::Sapling`].
            -592    Sapling,
            -593    /// The consensus rules deployed by [`NetworkUpgrade::Blossom`].
            -594    Blossom,
            -595    /// The consensus rules deployed by [`NetworkUpgrade::Heartwood`].
            -596    Heartwood,
            -597    /// The consensus rules deployed by [`NetworkUpgrade::Canopy`].
            -598    Canopy,
            -599    /// The consensus rules deployed by [`NetworkUpgrade::Nu5`].
            -600    Nu5,
            -601    /// The consensus rules deployed by [`NetworkUpgrade::Nu6`].
            -602    Nu6,
            -603    /// Candidates for future consensus rules; this branch will never
            -604    /// activate on mainnet.
            -605    #[cfg(zcash_unstable = "zfuture")]
            -606    ZFuture,
            -607}
            -608
            -609#[cfg(feature = "std")]
            -610memuse::impl_no_dynamic_usage!(BranchId);
            -611
            -612impl TryFrom<u32> for BranchId {
            -613    type Error = &'static str;
            -614
            -615    fn try_from(value: u32) -> Result<Self, Self::Error> {
            -616        match value {
            -617            0 => Ok(BranchId::Sprout),
            -618            0x5ba8_1b19 => Ok(BranchId::Overwinter),
            -619            0x76b8_09bb => Ok(BranchId::Sapling),
            -620            0x2bb4_0e60 => Ok(BranchId::Blossom),
            -621            0xf5b9_230b => Ok(BranchId::Heartwood),
            -622            0xe9ff_75a6 => Ok(BranchId::Canopy),
            -623            0xc2d6_d0b4 => Ok(BranchId::Nu5),
            -624            0xc8e7_1055 => Ok(BranchId::Nu6),
            -625            #[cfg(zcash_unstable = "zfuture")]
            -626            0xffff_ffff => Ok(BranchId::ZFuture),
            -627            _ => Err("Unknown consensus branch ID"),
            -628        }
            -629    }
            -630}
            -631
            -632impl From<BranchId> for u32 {
            -633    fn from(consensus_branch_id: BranchId) -> u32 {
            -634        match consensus_branch_id {
            -635            BranchId::Sprout => 0,
            -636            BranchId::Overwinter => 0x5ba8_1b19,
            -637            BranchId::Sapling => 0x76b8_09bb,
            -638            BranchId::Blossom => 0x2bb4_0e60,
            -639            BranchId::Heartwood => 0xf5b9_230b,
            -640            BranchId::Canopy => 0xe9ff_75a6,
            -641            BranchId::Nu5 => 0xc2d6_d0b4,
            -642            BranchId::Nu6 => 0xc8e7_1055,
            -643            #[cfg(zcash_unstable = "zfuture")]
            -644            BranchId::ZFuture => 0xffff_ffff,
            -645        }
            -646    }
            -647}
            -648
            -649impl BranchId {
            -650    /// Returns the branch ID corresponding to the consensus rule set that is active at
            -651    /// the given height.
            -652    ///
            -653    /// This is the branch ID that should be used when creating transactions.
            -654    pub fn for_height<P: Parameters>(parameters: &P, height: BlockHeight) -> Self {
            -655        for nu in UPGRADES_IN_ORDER.iter().rev() {
            -656            if parameters.is_nu_active(*nu, height) {
            -657                return nu.branch_id();
            -658            }
            -659        }
            -660
            -661        // Sprout rules apply before any network upgrade
            -662        BranchId::Sprout
            -663    }
            -664
            -665    /// Returns the range of heights for the consensus epoch associated with this branch id.
            -666    ///
            -667    /// The resulting tuple implements the [`RangeBounds<BlockHeight>`] trait.
            -668    pub fn height_range<P: Parameters>(&self, params: &P) -> Option<impl RangeBounds<BlockHeight>> {
            -669        self.height_bounds(params).map(|(lower, upper)| {
            -670            (
            -671                Bound::Included(lower),
            -672                upper.map_or(Bound::Unbounded, Bound::Excluded),
            -673            )
            -674        })
            -675    }
            -676
            -677    /// Returns the range of heights for the consensus epoch associated with this branch id.
            -678    ///
            -679    /// The return type of this value is slightly more precise than [`Self::height_range`]:
            -680    /// - `Some((x, Some(y)))` means that the consensus rules corresponding to this branch id
            -681    ///   are in effect for the range `x..y`
            -682    /// - `Some((x, None))` means that the consensus rules corresponding to this branch id are
            -683    ///   in effect for the range `x..`
            -684    /// - `None` means that the consensus rules corresponding to this branch id are never in effect.
            -685    pub fn height_bounds<P: Parameters>(
            -686        &self,
            -687        params: &P,
            -688    ) -> Option<(BlockHeight, Option<BlockHeight>)> {
            -689        match self {
            -690            BranchId::Sprout => params
            -691                .activation_height(NetworkUpgrade::Overwinter)
            -692                .map(|upper| (BlockHeight(0), Some(upper))),
            -693            BranchId::Overwinter => params
            -694                .activation_height(NetworkUpgrade::Overwinter)
            -695                .map(|lower| (lower, params.activation_height(NetworkUpgrade::Sapling))),
            -696            BranchId::Sapling => params
            -697                .activation_height(NetworkUpgrade::Sapling)
            -698                .map(|lower| (lower, params.activation_height(NetworkUpgrade::Blossom))),
            -699            BranchId::Blossom => params
            -700                .activation_height(NetworkUpgrade::Blossom)
            -701                .map(|lower| (lower, params.activation_height(NetworkUpgrade::Heartwood))),
            -702            BranchId::Heartwood => params
            -703                .activation_height(NetworkUpgrade::Heartwood)
            -704                .map(|lower| (lower, params.activation_height(NetworkUpgrade::Canopy))),
            -705            BranchId::Canopy => params
            -706                .activation_height(NetworkUpgrade::Canopy)
            -707                .map(|lower| (lower, params.activation_height(NetworkUpgrade::Nu5))),
            -708            BranchId::Nu5 => params
            -709                .activation_height(NetworkUpgrade::Nu5)
            -710                .map(|lower| (lower, params.activation_height(NetworkUpgrade::Nu6))),
            -711            BranchId::Nu6 => params.activation_height(NetworkUpgrade::Nu6).map(|lower| {
            -712                #[cfg(zcash_unstable = "zfuture")]
            -713                let upper = params.activation_height(NetworkUpgrade::ZFuture);
            -714                #[cfg(not(zcash_unstable = "zfuture"))]
            -715                let upper = None;
            -716                (lower, upper)
            -717            }),
            -718            #[cfg(zcash_unstable = "zfuture")]
            -719            BranchId::ZFuture => params
            -720                .activation_height(NetworkUpgrade::ZFuture)
            -721                .map(|lower| (lower, None)),
            -722        }
            -723    }
            -724
            -725    pub fn sprout_uses_groth_proofs(&self) -> bool {
            -726        !matches!(self, BranchId::Sprout | BranchId::Overwinter)
            -727    }
            -728}
            -729
            -730#[cfg(any(test, feature = "test-dependencies"))]
            -731pub mod testing {
            -732    use proptest::sample::select;
            -733    use proptest::strategy::{Just, Strategy};
            -734
            -735    use super::{BlockHeight, BranchId, Parameters};
            -736
            -737    pub fn arb_branch_id() -> impl Strategy<Value = BranchId> {
            -738        select(vec![
            -739            BranchId::Sprout,
            -740            BranchId::Overwinter,
            -741            BranchId::Sapling,
            -742            BranchId::Blossom,
            -743            BranchId::Heartwood,
            -744            BranchId::Canopy,
            -745            BranchId::Nu5,
            -746            BranchId::Nu6,
            -747            #[cfg(zcash_unstable = "zfuture")]
            -748            BranchId::ZFuture,
            -749        ])
            -750    }
            -751
            -752    pub fn arb_height<P: Parameters>(
            -753        branch_id: BranchId,
            -754        params: &P,
            -755    ) -> impl Strategy<Value = Option<BlockHeight>> {
            -756        branch_id
            -757            .height_bounds(params)
            -758            .map_or(Strategy::boxed(Just(None)), |(lower, upper)| {
            -759                Strategy::boxed(
            -760                    (lower.0..upper.map_or(u32::MAX, |u| u.0)).prop_map(|h| Some(BlockHeight(h))),
            -761                )
            -762            })
            -763    }
            +584/// [ZIP 212]: https://zips.z.cash/zip-0212#changes-to-the-process-of-receiving-sapling-or-orchard-notes
            +585pub const ZIP212_GRACE_PERIOD: u32 = 32256;
            +586
            +587/// A globally-unique identifier for a set of consensus rules within the Zcash chain.
            +588///
            +589/// Each branch ID in this enum corresponds to one of the epochs between a pair of Zcash
            +590/// network upgrades. For example, `BranchId::Overwinter` corresponds to the blocks
            +591/// starting at Overwinter activation, and ending the block before Sapling activation.
            +592///
            +593/// The main use of the branch ID is in signature generation: transactions commit to a
            +594/// specific branch ID by including it as part of [`signature_hash`]. This ensures
            +595/// two-way replay protection for transactions across network upgrades.
            +596///
            +597/// See [ZIP 200](https://zips.z.cash/zip-0200) for more details.
            +598///
            +599/// [`signature_hash`]: https://docs.rs/zcash_primitives/latest/zcash_primitives/transaction/sighash/fn.signature_hash.html
            +600#[derive(Clone, Copy, Debug, PartialEq, Eq)]
            +601pub enum BranchId {
            +602    /// The consensus rules at the launch of Zcash.
            +603    Sprout,
            +604    /// The consensus rules deployed by [`NetworkUpgrade::Overwinter`].
            +605    Overwinter,
            +606    /// The consensus rules deployed by [`NetworkUpgrade::Sapling`].
            +607    Sapling,
            +608    /// The consensus rules deployed by [`NetworkUpgrade::Blossom`].
            +609    Blossom,
            +610    /// The consensus rules deployed by [`NetworkUpgrade::Heartwood`].
            +611    Heartwood,
            +612    /// The consensus rules deployed by [`NetworkUpgrade::Canopy`].
            +613    Canopy,
            +614    /// The consensus rules deployed by [`NetworkUpgrade::Nu5`].
            +615    Nu5,
            +616    /// The consensus rules deployed by [`NetworkUpgrade::Nu6`].
            +617    Nu6,
            +618    /// The consensus rules to be deployed by [`NetworkUpgrade::Nu7`].
            +619    #[cfg(zcash_unstable = "nu7")]
            +620    Nu7,
            +621    /// Candidates for future consensus rules; this branch will never
            +622    /// activate on mainnet.
            +623    #[cfg(zcash_unstable = "zfuture")]
            +624    ZFuture,
            +625}
            +626
            +627#[cfg(feature = "std")]
            +628memuse::impl_no_dynamic_usage!(BranchId);
            +629
            +630impl TryFrom<u32> for BranchId {
            +631    type Error = &'static str;
            +632
            +633    fn try_from(value: u32) -> Result<Self, Self::Error> {
            +634        match value {
            +635            0 => Ok(BranchId::Sprout),
            +636            0x5ba8_1b19 => Ok(BranchId::Overwinter),
            +637            0x76b8_09bb => Ok(BranchId::Sapling),
            +638            0x2bb4_0e60 => Ok(BranchId::Blossom),
            +639            0xf5b9_230b => Ok(BranchId::Heartwood),
            +640            0xe9ff_75a6 => Ok(BranchId::Canopy),
            +641            0xc2d6_d0b4 => Ok(BranchId::Nu5),
            +642            0xc8e7_1055 => Ok(BranchId::Nu6),
            +643            #[cfg(zcash_unstable = "nu7")]
            +644            0xffff_ffff => Ok(BranchId::Nu7),
            +645            #[cfg(zcash_unstable = "zfuture")]
            +646            0xffff_ffff => Ok(BranchId::ZFuture),
            +647            _ => Err("Unknown consensus branch ID"),
            +648        }
            +649    }
            +650}
            +651
            +652impl From<BranchId> for u32 {
            +653    fn from(consensus_branch_id: BranchId) -> u32 {
            +654        match consensus_branch_id {
            +655            BranchId::Sprout => 0,
            +656            BranchId::Overwinter => 0x5ba8_1b19,
            +657            BranchId::Sapling => 0x76b8_09bb,
            +658            BranchId::Blossom => 0x2bb4_0e60,
            +659            BranchId::Heartwood => 0xf5b9_230b,
            +660            BranchId::Canopy => 0xe9ff_75a6,
            +661            BranchId::Nu5 => 0xc2d6_d0b4,
            +662            BranchId::Nu6 => 0xc8e7_1055,
            +663            #[cfg(zcash_unstable = "nu7")]
            +664            BranchId::Nu7 => 0xffff_ffff,
            +665            #[cfg(zcash_unstable = "zfuture")]
            +666            BranchId::ZFuture => 0xffff_ffff,
            +667        }
            +668    }
            +669}
            +670
            +671impl BranchId {
            +672    /// Returns the branch ID corresponding to the consensus rule set that is active at
            +673    /// the given height.
            +674    ///
            +675    /// This is the branch ID that should be used when creating transactions.
            +676    pub fn for_height<P: Parameters>(parameters: &P, height: BlockHeight) -> Self {
            +677        for nu in UPGRADES_IN_ORDER.iter().rev() {
            +678            if parameters.is_nu_active(*nu, height) {
            +679                return nu.branch_id();
            +680            }
            +681        }
            +682
            +683        // Sprout rules apply before any network upgrade
            +684        BranchId::Sprout
            +685    }
            +686
            +687    /// Returns the range of heights for the consensus epoch associated with this branch id.
            +688    ///
            +689    /// The resulting tuple implements the [`RangeBounds<BlockHeight>`] trait.
            +690    pub fn height_range<P: Parameters>(&self, params: &P) -> Option<impl RangeBounds<BlockHeight>> {
            +691        self.height_bounds(params).map(|(lower, upper)| {
            +692            (
            +693                Bound::Included(lower),
            +694                upper.map_or(Bound::Unbounded, Bound::Excluded),
            +695            )
            +696        })
            +697    }
            +698
            +699    /// Returns the range of heights for the consensus epoch associated with this branch id.
            +700    ///
            +701    /// The return type of this value is slightly more precise than [`Self::height_range`]:
            +702    /// - `Some((x, Some(y)))` means that the consensus rules corresponding to this branch id
            +703    ///   are in effect for the range `x..y`
            +704    /// - `Some((x, None))` means that the consensus rules corresponding to this branch id are
            +705    ///   in effect for the range `x..`
            +706    /// - `None` means that the consensus rules corresponding to this branch id are never in effect.
            +707    pub fn height_bounds<P: Parameters>(
            +708        &self,
            +709        params: &P,
            +710    ) -> Option<(BlockHeight, Option<BlockHeight>)> {
            +711        match self {
            +712            BranchId::Sprout => params
            +713                .activation_height(NetworkUpgrade::Overwinter)
            +714                .map(|upper| (BlockHeight(0), Some(upper))),
            +715            BranchId::Overwinter => params
            +716                .activation_height(NetworkUpgrade::Overwinter)
            +717                .map(|lower| (lower, params.activation_height(NetworkUpgrade::Sapling))),
            +718            BranchId::Sapling => params
            +719                .activation_height(NetworkUpgrade::Sapling)
            +720                .map(|lower| (lower, params.activation_height(NetworkUpgrade::Blossom))),
            +721            BranchId::Blossom => params
            +722                .activation_height(NetworkUpgrade::Blossom)
            +723                .map(|lower| (lower, params.activation_height(NetworkUpgrade::Heartwood))),
            +724            BranchId::Heartwood => params
            +725                .activation_height(NetworkUpgrade::Heartwood)
            +726                .map(|lower| (lower, params.activation_height(NetworkUpgrade::Canopy))),
            +727            BranchId::Canopy => params
            +728                .activation_height(NetworkUpgrade::Canopy)
            +729                .map(|lower| (lower, params.activation_height(NetworkUpgrade::Nu5))),
            +730            BranchId::Nu5 => params
            +731                .activation_height(NetworkUpgrade::Nu5)
            +732                .map(|lower| (lower, params.activation_height(NetworkUpgrade::Nu6))),
            +733            BranchId::Nu6 => params.activation_height(NetworkUpgrade::Nu6).map(|lower| {
            +734                #[cfg(zcash_unstable = "nu7")]
            +735                let upper = params.activation_height(NetworkUpgrade::Nu7);
            +736                #[cfg(zcash_unstable = "zfuture")]
            +737                let upper = params.activation_height(NetworkUpgrade::ZFuture);
            +738                #[cfg(not(any(zcash_unstable = "nu7", zcash_unstable = "zfuture")))]
            +739                let upper = None;
            +740                (lower, upper)
            +741            }),
            +742            #[cfg(zcash_unstable = "nu7")]
            +743            BranchId::Nu7 => params
            +744                .activation_height(NetworkUpgrade::Nu7)
            +745                .map(|lower| (lower, None)),
            +746            #[cfg(zcash_unstable = "zfuture")]
            +747            BranchId::ZFuture => params
            +748                .activation_height(NetworkUpgrade::ZFuture)
            +749                .map(|lower| (lower, None)),
            +750        }
            +751    }
            +752
            +753    pub fn sprout_uses_groth_proofs(&self) -> bool {
            +754        !matches!(self, BranchId::Sprout | BranchId::Overwinter)
            +755    }
            +756}
            +757
            +758#[cfg(any(test, feature = "test-dependencies"))]
            +759pub mod testing {
            +760    use proptest::sample::select;
            +761    use proptest::strategy::{Just, Strategy};
            +762
            +763    use super::{BlockHeight, BranchId, Parameters};
             764
            -765    #[cfg(feature = "test-dependencies")]
            -766    impl incrementalmerkletree_testing::TestCheckpoint for BlockHeight {
            -767        fn from_u64(value: u64) -> Self {
            -768            BlockHeight(u32::try_from(value).expect("Test checkpoint ids do not exceed 32 bits"))
            -769        }
            -770    }
            -771}
            -772
            -773#[cfg(test)]
            -774mod tests {
            -775    use super::{
            -776        BlockHeight, BranchId, NetworkUpgrade, Parameters, MAIN_NETWORK, UPGRADES_IN_ORDER,
            -777    };
            -778
            -779    #[test]
            -780    fn nu_ordering() {
            -781        for i in 1..UPGRADES_IN_ORDER.len() {
            -782            let nu_a = UPGRADES_IN_ORDER[i - 1];
            -783            let nu_b = UPGRADES_IN_ORDER[i];
            -784            match (
            -785                MAIN_NETWORK.activation_height(nu_a),
            -786                MAIN_NETWORK.activation_height(nu_b),
            -787            ) {
            -788                (Some(a), Some(b)) if a < b => (),
            -789                (Some(_), None) => (),
            -790                (None, None) => (),
            -791                _ => panic!(
            -792                    "{} should not be before {} in UPGRADES_IN_ORDER",
            -793                    nu_a, nu_b
            -794                ),
            -795            }
            -796        }
            -797    }
            -798
            -799    #[test]
            -800    fn nu_is_active() {
            -801        assert!(!MAIN_NETWORK.is_nu_active(NetworkUpgrade::Overwinter, BlockHeight(0)));
            -802        assert!(!MAIN_NETWORK.is_nu_active(NetworkUpgrade::Overwinter, BlockHeight(347_499)));
            -803        assert!(MAIN_NETWORK.is_nu_active(NetworkUpgrade::Overwinter, BlockHeight(347_500)));
            -804    }
            -805
            -806    #[test]
            -807    fn branch_id_from_u32() {
            -808        assert_eq!(BranchId::try_from(0), Ok(BranchId::Sprout));
            -809        assert!(BranchId::try_from(1).is_err());
            -810    }
            -811
            -812    #[test]
            -813    fn branch_id_for_height() {
            -814        assert_eq!(
            -815            BranchId::for_height(&MAIN_NETWORK, BlockHeight(0)),
            -816            BranchId::Sprout,
            -817        );
            -818        assert_eq!(
            -819            BranchId::for_height(&MAIN_NETWORK, BlockHeight(419_199)),
            -820            BranchId::Overwinter,
            -821        );
            -822        assert_eq!(
            -823            BranchId::for_height(&MAIN_NETWORK, BlockHeight(419_200)),
            -824            BranchId::Sapling,
            -825        );
            -826        assert_eq!(
            -827            BranchId::for_height(&MAIN_NETWORK, BlockHeight(903_000)),
            -828            BranchId::Heartwood,
            -829        );
            -830        assert_eq!(
            -831            BranchId::for_height(&MAIN_NETWORK, BlockHeight(1_046_400)),
            -832            BranchId::Canopy,
            -833        );
            -834        assert_eq!(
            -835            BranchId::for_height(&MAIN_NETWORK, BlockHeight(1_687_104)),
            -836            BranchId::Nu5,
            -837        );
            -838        assert_eq!(
            -839            BranchId::for_height(&MAIN_NETWORK, BlockHeight(2_726_399)),
            -840            BranchId::Nu5,
            -841        );
            -842        assert_eq!(
            -843            BranchId::for_height(&MAIN_NETWORK, BlockHeight(2_726_400)),
            -844            BranchId::Nu6,
            -845        );
            -846        assert_eq!(
            -847            BranchId::for_height(&MAIN_NETWORK, BlockHeight(5_000_000)),
            -848            BranchId::Nu6,
            -849        );
            -850    }
            -851}
            \ No newline at end of file +765 pub fn arb_branch_id() -> impl Strategy<Value = BranchId> { +766 select(vec![ +767 BranchId::Sprout, +768 BranchId::Overwinter, +769 BranchId::Sapling, +770 BranchId::Blossom, +771 BranchId::Heartwood, +772 BranchId::Canopy, +773 BranchId::Nu5, +774 BranchId::Nu6, +775 #[cfg(zcash_unstable = "nu7")] +776 BranchId::Nu7, +777 #[cfg(zcash_unstable = "zfuture")] +778 BranchId::ZFuture, +779 ]) +780 } +781 +782 pub fn arb_height<P: Parameters>( +783 branch_id: BranchId, +784 params: &P, +785 ) -> impl Strategy<Value = Option<BlockHeight>> { +786 branch_id +787 .height_bounds(params) +788 .map_or(Strategy::boxed(Just(None)), |(lower, upper)| { +789 Strategy::boxed( +790 (lower.0..upper.map_or(u32::MAX, |u| u.0)).prop_map(|h| Some(BlockHeight(h))), +791 ) +792 }) +793 } +794 +795 #[cfg(feature = "test-dependencies")] +796 impl incrementalmerkletree_testing::TestCheckpoint for BlockHeight { +797 fn from_u64(value: u64) -> Self { +798 BlockHeight(u32::try_from(value).expect("Test checkpoint ids do not exceed 32 bits")) +799 } +800 } +801} +802 +803#[cfg(test)] +804mod tests { +805 use super::{ +806 BlockHeight, BranchId, NetworkUpgrade, Parameters, MAIN_NETWORK, UPGRADES_IN_ORDER, +807 }; +808 +809 #[test] +810 fn nu_ordering() { +811 for i in 1..UPGRADES_IN_ORDER.len() { +812 let nu_a = UPGRADES_IN_ORDER[i - 1]; +813 let nu_b = UPGRADES_IN_ORDER[i]; +814 match ( +815 MAIN_NETWORK.activation_height(nu_a), +816 MAIN_NETWORK.activation_height(nu_b), +817 ) { +818 (Some(a), Some(b)) if a < b => (), +819 (Some(_), None) => (), +820 (None, None) => (), +821 _ => panic!( +822 "{} should not be before {} in UPGRADES_IN_ORDER", +823 nu_a, nu_b +824 ), +825 } +826 } +827 } +828 +829 #[test] +830 fn nu_is_active() { +831 assert!(!MAIN_NETWORK.is_nu_active(NetworkUpgrade::Overwinter, BlockHeight(0))); +832 assert!(!MAIN_NETWORK.is_nu_active(NetworkUpgrade::Overwinter, BlockHeight(347_499))); +833 assert!(MAIN_NETWORK.is_nu_active(NetworkUpgrade::Overwinter, BlockHeight(347_500))); +834 } +835 +836 #[test] +837 fn branch_id_from_u32() { +838 assert_eq!(BranchId::try_from(0), Ok(BranchId::Sprout)); +839 assert!(BranchId::try_from(1).is_err()); +840 } +841 +842 #[test] +843 fn branch_id_for_height() { +844 assert_eq!( +845 BranchId::for_height(&MAIN_NETWORK, BlockHeight(0)), +846 BranchId::Sprout, +847 ); +848 assert_eq!( +849 BranchId::for_height(&MAIN_NETWORK, BlockHeight(419_199)), +850 BranchId::Overwinter, +851 ); +852 assert_eq!( +853 BranchId::for_height(&MAIN_NETWORK, BlockHeight(419_200)), +854 BranchId::Sapling, +855 ); +856 assert_eq!( +857 BranchId::for_height(&MAIN_NETWORK, BlockHeight(903_000)), +858 BranchId::Heartwood, +859 ); +860 assert_eq!( +861 BranchId::for_height(&MAIN_NETWORK, BlockHeight(1_046_400)), +862 BranchId::Canopy, +863 ); +864 assert_eq!( +865 BranchId::for_height(&MAIN_NETWORK, BlockHeight(1_687_104)), +866 BranchId::Nu5, +867 ); +868 assert_eq!( +869 BranchId::for_height(&MAIN_NETWORK, BlockHeight(2_726_399)), +870 BranchId::Nu5, +871 ); +872 assert_eq!( +873 BranchId::for_height(&MAIN_NETWORK, BlockHeight(2_726_400)), +874 BranchId::Nu6, +875 ); +876 assert_eq!( +877 BranchId::for_height(&MAIN_NETWORK, BlockHeight(5_000_000)), +878 BranchId::Nu6, +879 ); +880 } +881}
            \ No newline at end of file diff --git a/rustdoc/latest/src/zcash_protocol/constants.rs.html b/rustdoc/latest/src/zcash_protocol/constants.rs.html index a6986e0d9..f07a64e9c 100644 --- a/rustdoc/latest/src/zcash_protocol/constants.rs.html +++ b/rustdoc/latest/src/zcash_protocol/constants.rs.html @@ -1,5 +1,59 @@ -constants.rs - source

            zcash_protocol/
            constants.rs

            1//! Network-specific Zcash constants.
            +constants.rs - source

            zcash_protocol/
            constants.rs

            1//! Network-specific Zcash constants.
             2
             3pub mod mainnet;
             4pub mod regtest;
            -5pub mod testnet;
            \ No newline at end of file +5pub mod testnet; +6 +7// The `V<n>_TX_VERSION` constants, although trivial, serve to clarify that a +8// transaction version is meant in APIs that use a bare `u32`. Consider using +9// `zcash_primitives::transaction::TxVersion` instead. +10 +11/// Transaction version 3, which was introduced by the Overwinter network upgrade +12/// and allowed until Sapling activation. It is specified in +13/// [§ 7.1 Transaction Encoding and Consensus](https://zips.z.cash/protocol/protocol.pdf#txnencoding). +14/// +15/// This constant is called `OVERWINTER_TX_VERSION` in the zcashd source. +16pub const V3_TX_VERSION: u32 = 3; +17/// The version group ID for Zcash v3 transactions. +18/// +19/// This constant is called `OVERWINTER_VERSION_GROUP_ID` in the zcashd source. +20pub const V3_VERSION_GROUP_ID: u32 = 0x03C48270; +21 +22/// Transaction version 4, which was introduced by the Sapling network upgrade. +23/// It is specified in [§ 7.1 Transaction Encoding and Consensus](https://zips.z.cash/protocol/protocol.pdf#txnencoding). +24/// +25/// This constant is called `SAPLING_TX_VERSION` in the zcashd source. +26pub const V4_TX_VERSION: u32 = 4; +27/// The version group ID for Zcash v4 transactions. +28/// +29/// This constant is called `SAPLING_VERSION_GROUP_ID` in the zcashd source. +30pub const V4_VERSION_GROUP_ID: u32 = 0x892F2085; +31 +32/// Transaction version 5, which was introduced by the NU5 network upgrade. +33/// It is specified in [§ 7.1 Transaction Encoding and Consensus](https://zips.z.cash/protocol/protocol.pdf#txnencoding) +34/// and [ZIP 225](https://zips.z.cash/zip-0225). +35pub const V5_TX_VERSION: u32 = 5; +36/// The version group ID for Zcash v5 transactions. +37pub const V5_VERSION_GROUP_ID: u32 = 0x26A7270A; +38 +39/// Transaction version 6, specified in [ZIP 230](https://zips.z.cash/zip-0230). +40#[cfg(zcash_unstable = "nu7")] +41pub const V6_TX_VERSION: u32 = 6; +42/// The version group ID for Zcash v6 transactions. +43#[cfg(zcash_unstable = "nu7")] +44pub const V6_VERSION_GROUP_ID: u32 = 0xFFFFFFFF; +45 +46/// This version is used exclusively for in-development transaction +47/// serialization, and will never be active under the consensus rules. +48/// When new consensus transaction versions are added, all call sites +49/// using this constant should be inspected, and uses should be +50/// removed as appropriate in favor of the new transaction version. +51#[cfg(zcash_unstable = "zfuture")] +52pub const ZFUTURE_TX_VERSION: u32 = 0x0000FFFF; +53/// This version group ID is used exclusively for in-development transaction +54/// serialization, and will never be active under the consensus rules. +55/// When new consensus version group IDs are added, all call sites +56/// using this constant should be inspected, and uses should be +57/// removed as appropriate in favor of the new version group ID. +58#[cfg(zcash_unstable = "zfuture")] +59pub const ZFUTURE_VERSION_GROUP_ID: u32 = 0xFFFFFFFF;
            \ No newline at end of file diff --git a/rustdoc/latest/src/zcash_protocol/constants/mainnet.rs.html b/rustdoc/latest/src/zcash_protocol/constants/mainnet.rs.html index 40f908e30..e274df6e7 100644 --- a/rustdoc/latest/src/zcash_protocol/constants/mainnet.rs.html +++ b/rustdoc/latest/src/zcash_protocol/constants/mainnet.rs.html @@ -1,4 +1,4 @@ -mainnet.rs - source

            zcash_protocol/constants/
            mainnet.rs

            1//! Constants for the Zcash main network.
            +mainnet.rs - source

            zcash_protocol/constants/
            mainnet.rs

            1//! Constants for the Zcash main network.
             2
             3/// The mainnet coin type for ZEC, as defined by [SLIP 44].
             4///
            diff --git a/rustdoc/latest/src/zcash_protocol/constants/regtest.rs.html b/rustdoc/latest/src/zcash_protocol/constants/regtest.rs.html
            index 0bcb6b6b2..7b991b53f 100644
            --- a/rustdoc/latest/src/zcash_protocol/constants/regtest.rs.html
            +++ b/rustdoc/latest/src/zcash_protocol/constants/regtest.rs.html
            @@ -1,4 +1,4 @@
            -regtest.rs - source

            zcash_protocol/constants/
            regtest.rs

            1//! # Regtest constants
            +regtest.rs - source

            zcash_protocol/constants/
            regtest.rs

            1//! # Regtest constants
             2//!
             3//! `regtest` is a `zcashd`-specific environment used for local testing. They mostly reuse
             4//! the testnet constants.
            diff --git a/rustdoc/latest/src/zcash_protocol/constants/testnet.rs.html b/rustdoc/latest/src/zcash_protocol/constants/testnet.rs.html
            index 818972ffc..25d3d439c 100644
            --- a/rustdoc/latest/src/zcash_protocol/constants/testnet.rs.html
            +++ b/rustdoc/latest/src/zcash_protocol/constants/testnet.rs.html
            @@ -1,4 +1,4 @@
            -testnet.rs - source

            zcash_protocol/constants/
            testnet.rs

            1//! Constants for the Zcash test network.
            +testnet.rs - source

            zcash_protocol/constants/
            testnet.rs

            1//! Constants for the Zcash test network.
             2
             3/// The testnet coin type for ZEC, as defined by [SLIP 44].
             4///
            diff --git a/rustdoc/latest/src/zcash_protocol/lib.rs.html b/rustdoc/latest/src/zcash_protocol/lib.rs.html
            index 931058e24..97d4132c1 100644
            --- a/rustdoc/latest/src/zcash_protocol/lib.rs.html
            +++ b/rustdoc/latest/src/zcash_protocol/lib.rs.html
            @@ -1,4 +1,4 @@
            -lib.rs - source

            zcash_protocol/
            lib.rs

            1//! *A crate for Zcash protocol constants and value types.*
            +lib.rs - source

            zcash_protocol/
            lib.rs

            1//! *A crate for Zcash protocol constants and value types.*
             2//!
             3//! `zcash_protocol` contains Rust structs, traits and functions that provide the network constants
             4//! for the Zcash main and test networks, as well types for representing ZEC amounts and value
            diff --git a/rustdoc/latest/src/zcash_protocol/local_consensus.rs.html b/rustdoc/latest/src/zcash_protocol/local_consensus.rs.html
            index 8026df320..e574444d9 100644
            --- a/rustdoc/latest/src/zcash_protocol/local_consensus.rs.html
            +++ b/rustdoc/latest/src/zcash_protocol/local_consensus.rs.html
            @@ -1,4 +1,4 @@
            -local_consensus.rs - source

            zcash_protocol/
            local_consensus.rs

            1use crate::consensus::{BlockHeight, NetworkType, NetworkUpgrade, Parameters};
            +local_consensus.rs - source

            zcash_protocol/
            local_consensus.rs

            1use crate::consensus::{BlockHeight, NetworkType, NetworkUpgrade, Parameters};
             2
             3/// a `LocalNetwork` setup should define the activation heights
             4/// of network upgrades. `None` is considered as "not activated"
            @@ -40,173 +40,196 @@
             40    pub canopy: Option<BlockHeight>,
             41    pub nu5: Option<BlockHeight>,
             42    pub nu6: Option<BlockHeight>,
            -43    #[cfg(zcash_unstable = "zfuture")]
            -44    pub z_future: Option<BlockHeight>,
            -45}
            -46
            -47/// Parameters implementation for `LocalNetwork`
            -48impl Parameters for LocalNetwork {
            -49    fn network_type(&self) -> NetworkType {
            -50        NetworkType::Regtest
            -51    }
            -52
            -53    fn activation_height(&self, nu: NetworkUpgrade) -> Option<BlockHeight> {
            -54        match nu {
            -55            NetworkUpgrade::Overwinter => self.overwinter,
            -56            NetworkUpgrade::Sapling => self.sapling,
            -57            NetworkUpgrade::Blossom => self.blossom,
            -58            NetworkUpgrade::Heartwood => self.heartwood,
            -59            NetworkUpgrade::Canopy => self.canopy,
            -60            NetworkUpgrade::Nu5 => self.nu5,
            -61            NetworkUpgrade::Nu6 => self.nu6,
            -62            #[cfg(zcash_unstable = "zfuture")]
            -63            NetworkUpgrade::ZFuture => self.z_future,
            -64        }
            -65    }
            -66}
            -67
            -68#[cfg(test)]
            -69mod tests {
            -70    use crate::{
            -71        consensus::{BlockHeight, NetworkConstants, NetworkUpgrade, Parameters},
            -72        constants,
            -73        local_consensus::LocalNetwork,
            -74    };
            -75
            -76    #[test]
            -77    fn regtest_nu_activation() {
            -78        let expected_overwinter = BlockHeight::from_u32(1);
            -79        let expected_sapling = BlockHeight::from_u32(2);
            -80        let expected_blossom = BlockHeight::from_u32(3);
            -81        let expected_heartwood = BlockHeight::from_u32(4);
            -82        let expected_canopy = BlockHeight::from_u32(5);
            -83        let expected_nu5 = BlockHeight::from_u32(6);
            -84        let expected_nu6 = BlockHeight::from_u32(7);
            -85        #[cfg(zcash_unstable = "zfuture")]
            -86        let expected_z_future = BlockHeight::from_u32(8);
            -87
            -88        let regtest = LocalNetwork {
            -89            overwinter: Some(expected_overwinter),
            -90            sapling: Some(expected_sapling),
            -91            blossom: Some(expected_blossom),
            -92            heartwood: Some(expected_heartwood),
            -93            canopy: Some(expected_canopy),
            -94            nu5: Some(expected_nu5),
            -95            nu6: Some(expected_nu6),
            -96            #[cfg(zcash_unstable = "zfuture")]
            -97            z_future: Some(expected_z_future),
            -98        };
            -99
            -100        assert!(regtest.is_nu_active(NetworkUpgrade::Overwinter, expected_overwinter));
            -101        assert!(regtest.is_nu_active(NetworkUpgrade::Sapling, expected_sapling));
            -102        assert!(regtest.is_nu_active(NetworkUpgrade::Blossom, expected_blossom));
            -103        assert!(regtest.is_nu_active(NetworkUpgrade::Heartwood, expected_heartwood));
            -104        assert!(regtest.is_nu_active(NetworkUpgrade::Canopy, expected_canopy));
            -105        assert!(regtest.is_nu_active(NetworkUpgrade::Nu5, expected_nu5));
            -106        assert!(regtest.is_nu_active(NetworkUpgrade::Nu6, expected_nu6));
            -107        #[cfg(zcash_unstable = "zfuture")]
            -108        assert!(!regtest.is_nu_active(NetworkUpgrade::ZFuture, expected_nu5));
            -109    }
            -110
            -111    #[test]
            -112    fn regtest_activation_heights() {
            -113        let expected_overwinter = BlockHeight::from_u32(1);
            -114        let expected_sapling = BlockHeight::from_u32(2);
            -115        let expected_blossom = BlockHeight::from_u32(3);
            -116        let expected_heartwood = BlockHeight::from_u32(4);
            -117        let expected_canopy = BlockHeight::from_u32(5);
            -118        let expected_nu5 = BlockHeight::from_u32(6);
            -119        let expected_nu6 = BlockHeight::from_u32(7);
            -120        #[cfg(zcash_unstable = "zfuture")]
            -121        let expected_z_future = BlockHeight::from_u32(8);
            -122
            -123        let regtest = LocalNetwork {
            -124            overwinter: Some(expected_overwinter),
            -125            sapling: Some(expected_sapling),
            -126            blossom: Some(expected_blossom),
            -127            heartwood: Some(expected_heartwood),
            -128            canopy: Some(expected_canopy),
            -129            nu5: Some(expected_nu5),
            -130            nu6: Some(expected_nu6),
            -131            #[cfg(zcash_unstable = "zfuture")]
            -132            z_future: Some(expected_z_future),
            -133        };
            +43    #[cfg(zcash_unstable = "nu7")]
            +44    pub nu7: Option<BlockHeight>,
            +45    #[cfg(zcash_unstable = "zfuture")]
            +46    pub z_future: Option<BlockHeight>,
            +47}
            +48
            +49/// Parameters implementation for `LocalNetwork`
            +50impl Parameters for LocalNetwork {
            +51    fn network_type(&self) -> NetworkType {
            +52        NetworkType::Regtest
            +53    }
            +54
            +55    fn activation_height(&self, nu: NetworkUpgrade) -> Option<BlockHeight> {
            +56        match nu {
            +57            NetworkUpgrade::Overwinter => self.overwinter,
            +58            NetworkUpgrade::Sapling => self.sapling,
            +59            NetworkUpgrade::Blossom => self.blossom,
            +60            NetworkUpgrade::Heartwood => self.heartwood,
            +61            NetworkUpgrade::Canopy => self.canopy,
            +62            NetworkUpgrade::Nu5 => self.nu5,
            +63            NetworkUpgrade::Nu6 => self.nu6,
            +64            #[cfg(zcash_unstable = "nu7")]
            +65            NetworkUpgrade::Nu7 => self.nu7,
            +66            #[cfg(zcash_unstable = "zfuture")]
            +67            NetworkUpgrade::ZFuture => self.z_future,
            +68        }
            +69    }
            +70}
            +71
            +72#[cfg(test)]
            +73mod tests {
            +74    use crate::{
            +75        consensus::{BlockHeight, NetworkConstants, NetworkUpgrade, Parameters},
            +76        constants,
            +77        local_consensus::LocalNetwork,
            +78    };
            +79
            +80    #[test]
            +81    fn regtest_nu_activation() {
            +82        let expected_overwinter = BlockHeight::from_u32(1);
            +83        let expected_sapling = BlockHeight::from_u32(2);
            +84        let expected_blossom = BlockHeight::from_u32(3);
            +85        let expected_heartwood = BlockHeight::from_u32(4);
            +86        let expected_canopy = BlockHeight::from_u32(5);
            +87        let expected_nu5 = BlockHeight::from_u32(6);
            +88        let expected_nu6 = BlockHeight::from_u32(7);
            +89        #[cfg(zcash_unstable = "nu7")]
            +90        let expected_nu7 = BlockHeight::from_u32(8);
            +91        #[cfg(zcash_unstable = "zfuture")]
            +92        let expected_z_future = BlockHeight::from_u32(8);
            +93
            +94        let regtest = LocalNetwork {
            +95            overwinter: Some(expected_overwinter),
            +96            sapling: Some(expected_sapling),
            +97            blossom: Some(expected_blossom),
            +98            heartwood: Some(expected_heartwood),
            +99            canopy: Some(expected_canopy),
            +100            nu5: Some(expected_nu5),
            +101            nu6: Some(expected_nu6),
            +102            #[cfg(zcash_unstable = "nu7")]
            +103            nu7: Some(expected_nu7),
            +104            #[cfg(zcash_unstable = "zfuture")]
            +105            z_future: Some(expected_z_future),
            +106        };
            +107
            +108        assert!(regtest.is_nu_active(NetworkUpgrade::Overwinter, expected_overwinter));
            +109        assert!(regtest.is_nu_active(NetworkUpgrade::Sapling, expected_sapling));
            +110        assert!(regtest.is_nu_active(NetworkUpgrade::Blossom, expected_blossom));
            +111        assert!(regtest.is_nu_active(NetworkUpgrade::Heartwood, expected_heartwood));
            +112        assert!(regtest.is_nu_active(NetworkUpgrade::Canopy, expected_canopy));
            +113        assert!(regtest.is_nu_active(NetworkUpgrade::Nu5, expected_nu5));
            +114        assert!(regtest.is_nu_active(NetworkUpgrade::Nu6, expected_nu6));
            +115        #[cfg(zcash_unstable = "nu7")]
            +116        assert!(!regtest.is_nu_active(NetworkUpgrade::Nu7, expected_nu6));
            +117        #[cfg(zcash_unstable = "zfuture")]
            +118        assert!(!regtest.is_nu_active(NetworkUpgrade::ZFuture, expected_nu6));
            +119    }
            +120
            +121    #[test]
            +122    fn regtest_activation_heights() {
            +123        let expected_overwinter = BlockHeight::from_u32(1);
            +124        let expected_sapling = BlockHeight::from_u32(2);
            +125        let expected_blossom = BlockHeight::from_u32(3);
            +126        let expected_heartwood = BlockHeight::from_u32(4);
            +127        let expected_canopy = BlockHeight::from_u32(5);
            +128        let expected_nu5 = BlockHeight::from_u32(6);
            +129        let expected_nu6 = BlockHeight::from_u32(7);
            +130        #[cfg(zcash_unstable = "nu7")]
            +131        let expected_nu7 = BlockHeight::from_u32(8);
            +132        #[cfg(zcash_unstable = "zfuture")]
            +133        let expected_z_future = BlockHeight::from_u32(8);
             134
            -135        assert_eq!(
            -136            regtest.activation_height(NetworkUpgrade::Overwinter),
            -137            Some(expected_overwinter)
            -138        );
            -139        assert_eq!(
            -140            regtest.activation_height(NetworkUpgrade::Sapling),
            -141            Some(expected_sapling)
            -142        );
            -143        assert_eq!(
            -144            regtest.activation_height(NetworkUpgrade::Blossom),
            -145            Some(expected_blossom)
            -146        );
            -147        assert_eq!(
            -148            regtest.activation_height(NetworkUpgrade::Heartwood),
            -149            Some(expected_heartwood)
            -150        );
            -151        assert_eq!(
            -152            regtest.activation_height(NetworkUpgrade::Canopy),
            -153            Some(expected_canopy)
            -154        );
            -155        assert_eq!(
            -156            regtest.activation_height(NetworkUpgrade::Nu5),
            -157            Some(expected_nu5)
            -158        );
            -159        #[cfg(zcash_unstable = "zfuture")]
            -160        assert_eq!(
            -161            regtest.activation_height(NetworkUpgrade::ZFuture),
            -162            Some(expected_z_future)
            -163        );
            -164    }
            -165
            -166    #[test]
            -167    fn regtests_constants() {
            -168        let expected_overwinter = BlockHeight::from_u32(1);
            -169        let expected_sapling = BlockHeight::from_u32(2);
            -170        let expected_blossom = BlockHeight::from_u32(3);
            -171        let expected_heartwood = BlockHeight::from_u32(4);
            -172        let expected_canopy = BlockHeight::from_u32(5);
            -173        let expected_nu5 = BlockHeight::from_u32(6);
            -174        let expected_nu6 = BlockHeight::from_u32(7);
            -175        #[cfg(zcash_unstable = "zfuture")]
            -176        let expected_z_future = BlockHeight::from_u32(8);
            -177
            -178        let regtest = LocalNetwork {
            -179            overwinter: Some(expected_overwinter),
            -180            sapling: Some(expected_sapling),
            -181            blossom: Some(expected_blossom),
            -182            heartwood: Some(expected_heartwood),
            -183            canopy: Some(expected_canopy),
            -184            nu5: Some(expected_nu5),
            -185            nu6: Some(expected_nu6),
            -186            #[cfg(zcash_unstable = "zfuture")]
            -187            z_future: Some(expected_z_future),
            -188        };
            -189
            -190        assert_eq!(regtest.coin_type(), constants::regtest::COIN_TYPE);
            -191        assert_eq!(
            -192            regtest.hrp_sapling_extended_spending_key(),
            -193            constants::regtest::HRP_SAPLING_EXTENDED_SPENDING_KEY
            -194        );
            -195        assert_eq!(
            -196            regtest.hrp_sapling_extended_full_viewing_key(),
            -197            constants::regtest::HRP_SAPLING_EXTENDED_FULL_VIEWING_KEY
            -198        );
            -199        assert_eq!(
            -200            regtest.hrp_sapling_payment_address(),
            -201            constants::regtest::HRP_SAPLING_PAYMENT_ADDRESS
            -202        );
            -203        assert_eq!(
            -204            regtest.b58_pubkey_address_prefix(),
            -205            constants::regtest::B58_PUBKEY_ADDRESS_PREFIX
            -206        );
            -207        assert_eq!(
            -208            regtest.b58_script_address_prefix(),
            -209            constants::regtest::B58_SCRIPT_ADDRESS_PREFIX
            -210        );
            -211    }
            -212}
            \ No newline at end of file +135 let regtest = LocalNetwork { +136 overwinter: Some(expected_overwinter), +137 sapling: Some(expected_sapling), +138 blossom: Some(expected_blossom), +139 heartwood: Some(expected_heartwood), +140 canopy: Some(expected_canopy), +141 nu5: Some(expected_nu5), +142 nu6: Some(expected_nu6), +143 #[cfg(zcash_unstable = "nu7")] +144 nu7: Some(expected_nu7), +145 #[cfg(zcash_unstable = "zfuture")] +146 z_future: Some(expected_z_future), +147 }; +148 +149 assert_eq!( +150 regtest.activation_height(NetworkUpgrade::Overwinter), +151 Some(expected_overwinter) +152 ); +153 assert_eq!( +154 regtest.activation_height(NetworkUpgrade::Sapling), +155 Some(expected_sapling) +156 ); +157 assert_eq!( +158 regtest.activation_height(NetworkUpgrade::Blossom), +159 Some(expected_blossom) +160 ); +161 assert_eq!( +162 regtest.activation_height(NetworkUpgrade::Heartwood), +163 Some(expected_heartwood) +164 ); +165 assert_eq!( +166 regtest.activation_height(NetworkUpgrade::Canopy), +167 Some(expected_canopy) +168 ); +169 assert_eq!( +170 regtest.activation_height(NetworkUpgrade::Nu5), +171 Some(expected_nu5) +172 ); +173 #[cfg(zcash_unstable = "nu7")] +174 assert_eq!( +175 regtest.activation_height(NetworkUpgrade::Nu7), +176 Some(expected_nu7) +177 ); +178 #[cfg(zcash_unstable = "zfuture")] +179 assert_eq!( +180 regtest.activation_height(NetworkUpgrade::ZFuture), +181 Some(expected_z_future) +182 ); +183 } +184 +185 #[test] +186 fn regtests_constants() { +187 let expected_overwinter = BlockHeight::from_u32(1); +188 let expected_sapling = BlockHeight::from_u32(2); +189 let expected_blossom = BlockHeight::from_u32(3); +190 let expected_heartwood = BlockHeight::from_u32(4); +191 let expected_canopy = BlockHeight::from_u32(5); +192 let expected_nu5 = BlockHeight::from_u32(6); +193 let expected_nu6 = BlockHeight::from_u32(7); +194 #[cfg(zcash_unstable = "nu7")] +195 let expected_nu7 = BlockHeight::from_u32(8); +196 #[cfg(zcash_unstable = "zfuture")] +197 let expected_z_future = BlockHeight::from_u32(8); +198 +199 let regtest = LocalNetwork { +200 overwinter: Some(expected_overwinter), +201 sapling: Some(expected_sapling), +202 blossom: Some(expected_blossom), +203 heartwood: Some(expected_heartwood), +204 canopy: Some(expected_canopy), +205 nu5: Some(expected_nu5), +206 nu6: Some(expected_nu6), +207 #[cfg(zcash_unstable = "nu7")] +208 nu7: Some(expected_nu7), +209 #[cfg(zcash_unstable = "zfuture")] +210 z_future: Some(expected_z_future), +211 }; +212 +213 assert_eq!(regtest.coin_type(), constants::regtest::COIN_TYPE); +214 assert_eq!( +215 regtest.hrp_sapling_extended_spending_key(), +216 constants::regtest::HRP_SAPLING_EXTENDED_SPENDING_KEY +217 ); +218 assert_eq!( +219 regtest.hrp_sapling_extended_full_viewing_key(), +220 constants::regtest::HRP_SAPLING_EXTENDED_FULL_VIEWING_KEY +221 ); +222 assert_eq!( +223 regtest.hrp_sapling_payment_address(), +224 constants::regtest::HRP_SAPLING_PAYMENT_ADDRESS +225 ); +226 assert_eq!( +227 regtest.b58_pubkey_address_prefix(), +228 constants::regtest::B58_PUBKEY_ADDRESS_PREFIX +229 ); +230 assert_eq!( +231 regtest.b58_script_address_prefix(), +232 constants::regtest::B58_SCRIPT_ADDRESS_PREFIX +233 ); +234 } +235}
            \ No newline at end of file diff --git a/rustdoc/latest/src/zcash_protocol/memo.rs.html b/rustdoc/latest/src/zcash_protocol/memo.rs.html index 4ee83f84f..8178c0719 100644 --- a/rustdoc/latest/src/zcash_protocol/memo.rs.html +++ b/rustdoc/latest/src/zcash_protocol/memo.rs.html @@ -1,4 +1,4 @@ -memo.rs - source

            zcash_protocol/
            memo.rs

            1//! Structs for handling encrypted memos.
            +memo.rs - source

            zcash_protocol/
            memo.rs

            1//! Structs for handling encrypted memos.
             2
             3use alloc::borrow::ToOwned;
             4use alloc::boxed::Box;
            diff --git a/rustdoc/latest/src/zcash_protocol/txid.rs.html b/rustdoc/latest/src/zcash_protocol/txid.rs.html
            index b0a7bd0e3..fb8b11aaa 100644
            --- a/rustdoc/latest/src/zcash_protocol/txid.rs.html
            +++ b/rustdoc/latest/src/zcash_protocol/txid.rs.html
            @@ -1,4 +1,4 @@
            -txid.rs - source

            zcash_protocol/
            txid.rs

            1use alloc::string::ToString;
            +txid.rs - source

            zcash_protocol/
            txid.rs

            1use alloc::string::ToString;
             2use core::fmt;
             3use core2::io::{self, Read, Write};
             4
            diff --git a/rustdoc/latest/src/zcash_protocol/value.rs.html b/rustdoc/latest/src/zcash_protocol/value.rs.html
            index ac282da03..d8c4cc97b 100644
            --- a/rustdoc/latest/src/zcash_protocol/value.rs.html
            +++ b/rustdoc/latest/src/zcash_protocol/value.rs.html
            @@ -1,4 +1,4 @@
            -value.rs - source

            zcash_protocol/
            value.rs

            1use core::convert::{Infallible, TryFrom};
            +value.rs - source

            zcash_protocol/
            value.rs

            1use core::convert::{Infallible, TryFrom};
             2use core::fmt;
             3use core::iter::Sum;
             4use core::num::NonZeroU64;
            diff --git a/rustdoc/latest/src/zcash_transparent/address.rs.html b/rustdoc/latest/src/zcash_transparent/address.rs.html
            index 8dc494846..638b63362 100644
            --- a/rustdoc/latest/src/zcash_transparent/address.rs.html
            +++ b/rustdoc/latest/src/zcash_transparent/address.rs.html
            @@ -1,4 +1,4 @@
            -address.rs - source

            zcash_transparent/
            address.rs

            1//! Support for legacy transparent addresses and scripts.
            +address.rs - source

            zcash_transparent/
            address.rs

            1//! Support for legacy transparent addresses and scripts.
             2
             3use alloc::string::String;
             4use alloc::vec::Vec;
            diff --git a/rustdoc/latest/src/zcash_transparent/builder.rs.html b/rustdoc/latest/src/zcash_transparent/builder.rs.html
            index f1e185acf..52b06cd59 100644
            --- a/rustdoc/latest/src/zcash_transparent/builder.rs.html
            +++ b/rustdoc/latest/src/zcash_transparent/builder.rs.html
            @@ -1,4 +1,4 @@
            -builder.rs - source

            zcash_transparent/
            builder.rs

            1//! Types and functions for building transparent transaction components.
            +builder.rs - source

            zcash_transparent/
            builder.rs

            1//! Types and functions for building transparent transaction components.
             2
             3use alloc::collections::BTreeMap;
             4use alloc::vec::Vec;
            diff --git a/rustdoc/latest/src/zcash_transparent/bundle.rs.html b/rustdoc/latest/src/zcash_transparent/bundle.rs.html
            index f1fdfbe41..221a35647 100644
            --- a/rustdoc/latest/src/zcash_transparent/bundle.rs.html
            +++ b/rustdoc/latest/src/zcash_transparent/bundle.rs.html
            @@ -1,4 +1,4 @@
            -bundle.rs - source

            zcash_transparent/
            bundle.rs

            1//! Structs representing the components within Zcash transactions.
            +bundle.rs - source

            zcash_transparent/
            bundle.rs

            1//! Structs representing the components within Zcash transactions.
             2
             3use alloc::vec::Vec;
             4use core::fmt::Debug;
            diff --git a/rustdoc/latest/src/zcash_transparent/keys.rs.html b/rustdoc/latest/src/zcash_transparent/keys.rs.html
            index a1b33f152..6c579630c 100644
            --- a/rustdoc/latest/src/zcash_transparent/keys.rs.html
            +++ b/rustdoc/latest/src/zcash_transparent/keys.rs.html
            @@ -1,4 +1,4 @@
            -keys.rs - source

            zcash_transparent/
            keys.rs

            1//! Transparent key components.
            +keys.rs - source

            zcash_transparent/
            keys.rs

            1//! Transparent key components.
             2
             3use bip32::ChildNumber;
             4use subtle::{Choice, ConstantTimeEq};
            diff --git a/rustdoc/latest/src/zcash_transparent/lib.rs.html b/rustdoc/latest/src/zcash_transparent/lib.rs.html
            index 69e12e708..5713a6c44 100644
            --- a/rustdoc/latest/src/zcash_transparent/lib.rs.html
            +++ b/rustdoc/latest/src/zcash_transparent/lib.rs.html
            @@ -1,4 +1,4 @@
            -lib.rs - source

            zcash_transparent/
            lib.rs

            1//! # Zcash transparent protocol
            +lib.rs - source

            zcash_transparent/
            lib.rs

            1//! # Zcash transparent protocol
             2//!
             3#![cfg_attr(feature = "std", doc = "## Feature flags")]
             4#![cfg_attr(feature = "std", doc = document_features::document_features!())]
            diff --git a/rustdoc/latest/src/zcash_transparent/pczt.rs.html b/rustdoc/latest/src/zcash_transparent/pczt.rs.html
            index 34780fbac..9eece3cb9 100644
            --- a/rustdoc/latest/src/zcash_transparent/pczt.rs.html
            +++ b/rustdoc/latest/src/zcash_transparent/pczt.rs.html
            @@ -1,4 +1,4 @@
            -pczt.rs - source

            zcash_transparent/
            pczt.rs

            1//! PCZT support for transparent Zcash.
            +pczt.rs - source

            zcash_transparent/
            pczt.rs

            1//! PCZT support for transparent Zcash.
             2
             3use alloc::collections::BTreeMap;
             4use alloc::string::String;
            diff --git a/rustdoc/latest/src/zcash_transparent/pczt/parse.rs.html b/rustdoc/latest/src/zcash_transparent/pczt/parse.rs.html
            index 613ffed65..4d9e906a9 100644
            --- a/rustdoc/latest/src/zcash_transparent/pczt/parse.rs.html
            +++ b/rustdoc/latest/src/zcash_transparent/pczt/parse.rs.html
            @@ -1,4 +1,4 @@
            -parse.rs - source

            zcash_transparent/pczt/
            parse.rs

            1use alloc::collections::BTreeMap;
            +parse.rs - source

            zcash_transparent/pczt/
            parse.rs

            1use alloc::collections::BTreeMap;
             2use alloc::string::String;
             3use alloc::vec::Vec;
             4
            diff --git a/rustdoc/latest/src/zcash_transparent/pczt/signer.rs.html b/rustdoc/latest/src/zcash_transparent/pczt/signer.rs.html
            index 57ce5d447..3db1021b8 100644
            --- a/rustdoc/latest/src/zcash_transparent/pczt/signer.rs.html
            +++ b/rustdoc/latest/src/zcash_transparent/pczt/signer.rs.html
            @@ -1,4 +1,4 @@
            -signer.rs - source

            zcash_transparent/pczt/
            signer.rs

            1use crate::sighash::SignableInput;
            +signer.rs - source

            zcash_transparent/pczt/
            signer.rs

            1use crate::sighash::SignableInput;
             2use alloc::vec::Vec;
             3
             4impl super::Input {
            diff --git a/rustdoc/latest/src/zcash_transparent/pczt/spend_finalizer.rs.html b/rustdoc/latest/src/zcash_transparent/pczt/spend_finalizer.rs.html
            index c05d2f102..389bde477 100644
            --- a/rustdoc/latest/src/zcash_transparent/pczt/spend_finalizer.rs.html
            +++ b/rustdoc/latest/src/zcash_transparent/pczt/spend_finalizer.rs.html
            @@ -1,4 +1,4 @@
            -spend_finalizer.rs - source

            zcash_transparent/pczt/
            spend_finalizer.rs

            1use ripemd::Ripemd160;
            +spend_finalizer.rs - source

            zcash_transparent/pczt/
            spend_finalizer.rs

            1use ripemd::Ripemd160;
             2use sha2::{Digest, Sha256};
             3
             4use crate::address::{Script, TransparentAddress};
            diff --git a/rustdoc/latest/src/zcash_transparent/pczt/tx_extractor.rs.html b/rustdoc/latest/src/zcash_transparent/pczt/tx_extractor.rs.html
            index dd045cb66..415e890d9 100644
            --- a/rustdoc/latest/src/zcash_transparent/pczt/tx_extractor.rs.html
            +++ b/rustdoc/latest/src/zcash_transparent/pczt/tx_extractor.rs.html
            @@ -1,4 +1,4 @@
            -tx_extractor.rs - source

            zcash_transparent/pczt/
            tx_extractor.rs

            1use alloc::vec::Vec;
            +tx_extractor.rs - source

            zcash_transparent/pczt/
            tx_extractor.rs

            1use alloc::vec::Vec;
             2use zcash_protocol::value::Zatoshis;
             3
             4use crate::{
            diff --git a/rustdoc/latest/src/zcash_transparent/pczt/updater.rs.html b/rustdoc/latest/src/zcash_transparent/pczt/updater.rs.html
            index 5c072c93f..3579c497d 100644
            --- a/rustdoc/latest/src/zcash_transparent/pczt/updater.rs.html
            +++ b/rustdoc/latest/src/zcash_transparent/pczt/updater.rs.html
            @@ -1,4 +1,4 @@
            -updater.rs - source

            zcash_transparent/pczt/
            updater.rs

            1use alloc::string::String;
            +updater.rs - source

            zcash_transparent/pczt/
            updater.rs

            1use alloc::string::String;
             2use alloc::vec::Vec;
             3use ripemd::Ripemd160;
             4use sha2::{Digest, Sha256};
            diff --git a/rustdoc/latest/src/zcash_transparent/pczt/verify.rs.html b/rustdoc/latest/src/zcash_transparent/pczt/verify.rs.html
            index a752d8789..a45c7794c 100644
            --- a/rustdoc/latest/src/zcash_transparent/pczt/verify.rs.html
            +++ b/rustdoc/latest/src/zcash_transparent/pczt/verify.rs.html
            @@ -1,4 +1,4 @@
            -verify.rs - source

            zcash_transparent/pczt/
            verify.rs

            1use ripemd::Ripemd160;
            +verify.rs - source

            zcash_transparent/pczt/
            verify.rs

            1use ripemd::Ripemd160;
             2use sha2::{Digest, Sha256};
             3
             4use crate::address::TransparentAddress;
            diff --git a/rustdoc/latest/src/zcash_transparent/sighash.rs.html b/rustdoc/latest/src/zcash_transparent/sighash.rs.html
            index b782df54c..c663a70ea 100644
            --- a/rustdoc/latest/src/zcash_transparent/sighash.rs.html
            +++ b/rustdoc/latest/src/zcash_transparent/sighash.rs.html
            @@ -1,4 +1,4 @@
            -sighash.rs - source

            zcash_transparent/
            sighash.rs

            1use alloc::vec::Vec;
            +sighash.rs - source

            zcash_transparent/
            sighash.rs

            1use alloc::vec::Vec;
             2use getset::Getters;
             3use zcash_protocol::value::Zatoshis;
             4
            diff --git a/rustdoc/latest/src/zip321/lib.rs.html b/rustdoc/latest/src/zip321/lib.rs.html
            index 7bd52ba82..3fca78218 100644
            --- a/rustdoc/latest/src/zip321/lib.rs.html
            +++ b/rustdoc/latest/src/zip321/lib.rs.html
            @@ -1,4 +1,4 @@
            -lib.rs - source

            zip321/
            lib.rs

            1//! Reference implementation of the ZIP-321 standard for payment requests.
            +lib.rs - source

            zip321/
            lib.rs

            1//! Reference implementation of the ZIP-321 standard for payment requests.
             2//!
             3//! This crate provides data structures, parsing, and rendering functions
             4//! for interpreting and producing valid ZIP 321 URIs.
            diff --git a/rustdoc/latest/static.files/rustdoc-7dda4a46.css b/rustdoc/latest/static.files/rustdoc-c233d2bd.css
            similarity index 51%
            rename from rustdoc/latest/static.files/rustdoc-7dda4a46.css
            rename to rustdoc/latest/static.files/rustdoc-c233d2bd.css
            index 690348456..d0311ec8c 100644
            --- a/rustdoc/latest/static.files/rustdoc-7dda4a46.css
            +++ b/rustdoc/latest/static.files/rustdoc-c233d2bd.css
            @@ -16,13 +16,13 @@ xmlns="http://www.w3.org/2000/svg" fill="black" height="18px">\
             	enable-background="new 0 0 16 16" xmlns="http://www.w3.org/2000/svg">');--collapse-arrow-image:url('data:image/svg+xml,');}:root.sans-serif{--font-family:"Fira Sans",sans-serif;--font-family-code:"Fira Mono",monospace;}@font-face {font-family:'Fira Sans';font-style:normal;font-weight:400;src:local('Fira Sans'),url("FiraSans-Regular-0fe48ade.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Fira Sans';font-style:italic;font-weight:400;src:local('Fira Sans Italic'),url("FiraSans-Italic-81dc35de.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Fira Sans';font-style:normal;font-weight:500;src:local('Fira Sans Medium'),url("FiraSans-Medium-e1aa3f0a.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Fira Sans';font-style:italic;font-weight:500;src:local('Fira Sans Medium Italic'),url("FiraSans-MediumItalic-ccf7e434.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Fira Mono';font-style:normal;font-weight:400;src:local('Fira Mono'),url("FiraMono-Regular-87c26294.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Fira Mono';font-style:normal;font-weight:500;src:local('Fira Mono Medium'),url("FiraMono-Medium-86f75c8c.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:400;src:local('Source Serif 4'),url("SourceSerif4-Regular-6b053e98.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:italic;font-weight:400;src:local('Source Serif 4 Italic'),url("SourceSerif4-It-ca3b17ed.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:500;src:local('Source Serif 4 Semibold'),url("SourceSerif4-Semibold-457a13ac.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:700;src:local('Source Serif 4 Bold'),url("SourceSerif4-Bold-6d4fd4c0.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:400;src:url("SourceCodePro-Regular-8badfe75.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:italic;font-weight:400;src:url("SourceCodePro-It-fc8b9304.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:600;src:url("SourceCodePro-Semibold-aa29a496.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'NanumBarunGothic';src:url("NanumBarunGothic-13b3dcba.ttf.woff2") format("woff2");font-display:swap;unicode-range:U+AC00-D7AF,U+1100-11FF,U+3130-318F,U+A960-A97F,U+D7B0-D7FF;}*{box-sizing:border-box;}body{font:1rem/1.5 var(--font-family);margin:0;position:relative;overflow-wrap:break-word;overflow-wrap:anywhere;font-feature-settings:"kern","liga";background-color:var(--main-background-color);color:var(--main-color);}h1{font-size:1.5rem;}h2{font-size:1.375rem;}h3{font-size:1.25rem;}h1,h2,h3,h4,h5,h6{font-weight:500;}h1,h2,h3,h4{margin:25px 0 15px 0;padding-bottom:6px;}.docblock h3,.docblock h4,h5,h6{margin:15px 0 5px 0;}.docblock>h2:first-child,.docblock>h3:first-child,.docblock>h4:first-child,.docblock>h5:first-child,.docblock>h6:first-child{margin-top:0;}.main-heading h1{margin:0;padding:0;grid-area:main-heading-h1;overflow-wrap:break-word;overflow-wrap:anywhere;}.main-heading{position:relative;display:grid;grid-template-areas:"main-heading-breadcrumbs main-heading-breadcrumbs" "main-heading-h1 main-heading-toolbar" "main-heading-sub-heading main-heading-toolbar";grid-template-columns:minmax(105px,1fr) minmax(0,max-content);grid-template-rows:minmax(25px,min-content) min-content min-content;padding-bottom:6px;margin-bottom:15px;}.rustdoc-breadcrumbs{grid-area:main-heading-breadcrumbs;line-height:1.25;padding-top:5px;position:relative;z-index:1;}.rustdoc-breadcrumbs a{padding:5px 0 7px;}.content h2,.top-doc .docblock>h3,.top-doc .docblock>h4{border-bottom:1px solid var(--headings-border-bottom-color);}h1,h2{line-height:1.25;padding-top:3px;padding-bottom:9px;}h3.code-header{font-size:1.125rem;}h4.code-header{font-size:1rem;}.code-header{font-weight:600;margin:0;padding:0;white-space:pre-wrap;}.structfield,.sub-variant-field{margin:0.6em 0;}#crate-search,h1,h2,h3,h4,h5,h6,.sidebar,.mobile-topbar,.search-input,.search-results .result-name,.item-table dt>a,.out-of-band,.sub-heading,span.since,a.src,rustdoc-toolbar,summary.hideme,.scraped-example-list,.rustdoc-breadcrumbs,ul.all-items{font-family:"Fira Sans",Arial,NanumBarunGothic,sans-serif;}#toggle-all-docs,a.anchor,.section-header a,#src-sidebar a,.rust a,.sidebar h2 a,.sidebar h3 a,.mobile-topbar h2 a,h1 a,.search-results a,.search-results li,.stab,.result-name i{color:var(--main-color);}span.enum,a.enum,span.struct,a.struct,span.union,a.union,span.primitive,a.primitive,span.type,a.type,span.foreigntype,a.foreigntype{color:var(--type-link-color);}span.trait,a.trait,span.traitalias,a.traitalias{color:var(--trait-link-color);}span.associatedtype,a.associatedtype,span.constant,a.constant,span.static,a.static{color:var(--assoc-item-link-color);}span.fn,a.fn,span.method,a.method,span.tymethod,a.tymethod{color:var(--function-link-color);}span.attr,a.attr,span.derive,a.derive,span.macro,a.macro{color:var(--macro-link-color);}span.mod,a.mod{color:var(--mod-link-color);}span.keyword,a.keyword{color:var(--keyword-link-color);}a{color:var(--link-color);text-decoration:none;}ol,ul{padding-left:24px;}ul ul,ol ul,ul ol,ol ol{margin-bottom:.625em;}p,.docblock>.warning{margin:0 0 .75em 0;}p:last-child,.docblock>.warning:last-child{margin:0;}button{padding:1px 6px;cursor:pointer;}button#toggle-all-docs{padding:0;background:none;border:none;-webkit-appearance:none;opacity:1;}.rustdoc{display:flex;flex-direction:row;flex-wrap:nowrap;}main{position:relative;flex-grow:1;padding:10px 15px 40px 45px;min-width:0;}.src main{padding:15px;}.width-limiter{max-width:960px;margin-right:auto;}details:not(.toggle) summary{margin-bottom:.6em;}code,pre,.code-header,.type-signature{font-family:var(--font-family-code);}.docblock code,.item-table dd code{border-radius:3px;padding:0 0.125em;}.docblock pre code,.item-table dd pre code{padding:0;}pre{padding:14px;line-height:1.5;}pre.item-decl{overflow-x:auto;}.item-decl .type-contents-toggle{contain:initial;}.src .content pre{padding:20px;padding-left:16px;}img{max-width:100%;}.logo-container{line-height:0;display:block;}.rust-logo{filter:var(--rust-logo-filter);}.sidebar{font-size:0.875rem;flex:0 0 var(--desktop-sidebar-width);width:var(--desktop-sidebar-width);overflow-y:scroll;overscroll-behavior:contain;position:sticky;height:100vh;top:0;left:0;z-index:var(--desktop-sidebar-z-index);}.rustdoc.src .sidebar{flex-basis:50px;width:50px;border-right:1px solid;overflow-x:hidden;overflow-y:hidden;}.hide-sidebar .sidebar,.hide-sidebar .sidebar-resizer{display:none;}.sidebar-resizer{touch-action:none;width:9px;cursor:col-resize;z-index:calc(var(--desktop-sidebar-z-index) + 1);position:fixed;height:100%;left:calc(var(--desktop-sidebar-width) + 1px);}.rustdoc.src .sidebar-resizer{left:49px;}.src-sidebar-expanded .src .sidebar-resizer{left:var(--src-sidebar-width);}.sidebar-resizing{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;}.sidebar-resizing *{cursor:col-resize !important;}.sidebar-resizing .sidebar{position:fixed;}.sidebar-resizing>body{padding-left:var(--resizing-sidebar-width);}.sidebar-resizer:hover,.sidebar-resizer:active,.sidebar-resizer:focus,.sidebar-resizer.active{width:10px;margin:0;left:var(--desktop-sidebar-width);border-left:solid 1px var(--sidebar-resizer-hover);}.src-sidebar-expanded .rustdoc.src .sidebar-resizer:hover,.src-sidebar-expanded .rustdoc.src .sidebar-resizer:active,.src-sidebar-expanded .rustdoc.src .sidebar-resizer:focus,.src-sidebar-expanded .rustdoc.src .sidebar-resizer.active{left:calc(var(--src-sidebar-width) - 1px);}@media (pointer:coarse){.sidebar-resizer{display:none !important;}}.sidebar-resizer.active{padding:0 140px;width:2px;margin-left:-140px;border-left:none;}.sidebar-resizer.active:before{border-left:solid 2px var(--sidebar-resizer-active);display:block;height:100%;content:"";}.sidebar,.mobile-topbar,.sidebar-menu-toggle,#src-sidebar{background-color:var(--sidebar-background-color);}.src .sidebar>*{visibility:hidden;}.src-sidebar-expanded .src .sidebar{overflow-y:auto;flex-basis:var(--src-sidebar-width);width:var(--src-sidebar-width);}.src-sidebar-expanded .src .sidebar>*{visibility:visible;}#all-types{margin-top:1em;}*{scrollbar-width:initial;scrollbar-color:var(--scrollbar-color);}.sidebar{scrollbar-width:thin;scrollbar-color:var(--scrollbar-color);}::-webkit-scrollbar{width:12px;}.sidebar::-webkit-scrollbar{width:8px;}::-webkit-scrollbar-track{-webkit-box-shadow:inset 0;background-color:var(--scrollbar-track-background-color);}.sidebar::-webkit-scrollbar-track{background-color:var(--scrollbar-track-background-color);}::-webkit-scrollbar-thumb,.sidebar::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb-background-color);}.hidden{display:none !important;}.logo-container>img{height:48px;width:48px;}ul.block,.block li,.block ul{padding:0;margin:0;list-style:none;}.block ul a{padding-left:1rem;}.sidebar-elems a,.sidebar>h2 a{display:block;padding:0.25rem;margin-right:0.25rem;border-left:solid var(--sidebar-elems-left-padding) transparent;margin-left:calc(-0.25rem - var(--sidebar-elems-left-padding));background-clip:border-box;}.hide-toc #rustdoc-toc,.hide-toc .in-crate{display:none;}.hide-modnav #rustdoc-modnav{display:none;}.sidebar h2{text-wrap:balance;overflow-wrap:anywhere;padding:0;margin:0.7rem 0;}.sidebar h3{text-wrap:balance;overflow-wrap:anywhere;font-size:1.125rem;padding:0;margin:0;}.sidebar-elems,.sidebar>.version,.sidebar>h2{padding-left:var(--sidebar-elems-left-padding);}.sidebar a{color:var(--sidebar-link-color);}.sidebar .current,.sidebar .current a,.sidebar-crate a.logo-container:hover+h2 a,.sidebar a:hover:not(.logo-container){background-color:var(--sidebar-current-link-background-color);}.sidebar-elems .block{margin-bottom:2em;}.sidebar-elems .block li a{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;}.sidebar-crate{display:flex;align-items:center;justify-content:center;margin:14px 32px 1rem;row-gap:10px;column-gap:32px;flex-wrap:wrap;}.sidebar-crate h2{flex-grow:1;margin:0 -8px;align-self:start;}.sidebar-crate .logo-container{margin:0 calc(-16px - var(--sidebar-elems-left-padding));padding:0 var(--sidebar-elems-left-padding);text-align:center;}.sidebar-crate .logo-container img{margin-top:-16px;border-top:solid 16px transparent;box-sizing:content-box;position:relative;background-clip:border-box;z-index:1;}.sidebar-crate h2 a{display:block;border-left:solid var(--sidebar-elems-left-padding) transparent;background-clip:border-box;margin:0 calc(-24px + 0.25rem) 0 calc(-0.2rem - var(--sidebar-elems-left-padding));padding:calc((16px - 0.57rem ) / 2 ) 0.25rem;padding-left:0.2rem;}.sidebar-crate h2 .version{display:block;font-weight:normal;font-size:1rem;overflow-wrap:break-word;}.sidebar-crate+.version{margin-top:-1rem;margin-bottom:1rem;}.mobile-topbar{display:none;}.rustdoc .example-wrap{display:flex;position:relative;margin-bottom:10px;}.rustdoc .example-wrap>pre,.rustdoc .scraped-example .src-line-numbers,.rustdoc .scraped-example .src-line-numbers>pre{border-radius:6px;}.rustdoc .scraped-example{position:relative;}.rustdoc .example-wrap:last-child{margin-bottom:0px;}.rustdoc .example-wrap pre{margin:0;flex-grow:1;}.scraped-example:not(.expanded) .example-wrap{max-height:calc(1.5em * 5 + 10px);}.more-scraped-examples .scraped-example:not(.expanded) .example-wrap{max-height:calc(1.5em * 10 + 10px);}.rustdoc:not(.src) .scraped-example:not(.expanded) .src-line-numbers,.rustdoc:not(.src) .scraped-example:not(.expanded) .src-line-numbers>pre,.rustdoc:not(.src) .scraped-example:not(.expanded) pre.rust{padding-bottom:0;overflow:auto hidden;}.rustdoc:not(.src) .scraped-example .src-line-numbers{padding-top:0;}.rustdoc:not(.src) .scraped-example.expanded .src-line-numbers{padding-bottom:0;}.rustdoc:not(.src) .example-wrap pre{overflow:auto;}.example-wrap.digits-1:not(.hide-lines) [data-nosnippet]{width:calc(1ch + var(--line-number-padding) * 2);}.example-wrap.digits-2:not(.hide-lines) [data-nosnippet]{width:calc(2ch + var(--line-number-padding) * 2);}.example-wrap.digits-3:not(.hide-lines) [data-nosnippet]{width:calc(3ch + var(--line-number-padding) * 2);}.example-wrap.digits-4:not(.hide-lines) [data-nosnippet]{width:calc(4ch + var(--line-number-padding) * 2);}.example-wrap.digits-5:not(.hide-lines) [data-nosnippet]{width:calc(5ch + var(--line-number-padding) * 2);}.example-wrap.digits-6:not(.hide-lines) [data-nosnippet]{width:calc(6ch + var(--line-number-padding) * 2);}.example-wrap.digits-7:not(.hide-lines) [data-nosnippet]{width:calc(7ch + var(--line-number-padding) * 2);}.example-wrap.digits-8:not(.hide-lines) [data-nosnippet]{width:calc(8ch + var(--line-number-padding) * 2);}.example-wrap.digits-9:not(.hide-lines) [data-nosnippet]{width:calc(9ch + var(--line-number-padding) * 2);}.example-wrap [data-nosnippet]{color:var(--src-line-numbers-span-color);text-align:right;display:inline-block;margin-right:var(--line-number-right-margin);-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;padding:0 var(--line-number-padding);}.example-wrap [data-nosnippet]:target{border-right:none;}.example-wrap .line-highlighted[data-nosnippet]{background-color:var(--src-line-number-highlighted-background-color);}:root.word-wrap-source-code .example-wrap [data-nosnippet]{position:absolute;left:0;}.word-wrap-source-code .example-wrap pre>code{position:relative;word-break:break-all;}:root.word-wrap-source-code .example-wrap pre>code{display:block;white-space:pre-wrap;}:root.word-wrap-source-code .example-wrap pre>code *{word-break:break-all;}:root.word-wrap-source-code .example-wrap.digits-1 pre>code{padding-left:calc(1ch + var(--line-number-padding) * 2 + var(--line-number-right-margin));}:root.word-wrap-source-code .example-wrap.digits-2 pre>code{padding-left:calc(2ch + var(--line-number-padding) * 2 + var(--line-number-right-margin));}:root.word-wrap-source-code .example-wrap.digits-3 pre>code{padding-left:calc(3ch + var(--line-number-padding) * 2 + var(--line-number-right-margin));}:root.word-wrap-source-code .example-wrap.digits-4 pre>code{padding-left:calc(4ch + var(--line-number-padding) * 2 + var(--line-number-right-margin));}:root.word-wrap-source-code .example-wrap.digits-5 pre>code{padding-left:calc(5ch + var(--line-number-padding) * 2 + var(--line-number-right-margin));}:root.word-wrap-source-code .example-wrap.digits-6 pre>code{padding-left:calc(6ch + var(--line-number-padding) * 2 + var(--line-number-right-margin));}:root.word-wrap-source-code .example-wrap.digits-7 pre>code{padding-left:calc(7ch + var(--line-number-padding) * 2 + var(--line-number-right-margin));}:root.word-wrap-source-code .example-wrap.digits-8 pre>code{padding-left:calc(8ch + var(--line-number-padding) * 2 + var(--line-number-right-margin));}:root.word-wrap-source-code .example-wrap.digits-9 pre>code{padding-left:calc(9ch + var(--line-number-padding) * 2 + var(--line-number-right-margin));}.example-wrap.hide-lines [data-nosnippet]{display:none;}.search-loading{text-align:center;}.item-table dd{overflow-wrap:break-word;overflow-wrap:anywhere;}.docblock :not(pre)>code,.item-table dd code{white-space:pre-wrap;}.top-doc .docblock h2{font-size:1.375rem;}.top-doc .docblock h3{font-size:1.25rem;}.top-doc .docblock h4,.top-doc .docblock h5{font-size:1.125rem;}.top-doc .docblock h6{font-size:1rem;}.docblock h5{font-size:1rem;}.docblock h6{font-size:0.875rem;}.docblock{margin-left:var(--docblock-indent);position:relative;}.docblock>:not(.more-examples-toggle):not(.example-wrap){max-width:100%;overflow-x:auto;}.sub-heading{font-size:1rem;flex-grow:0;grid-area:main-heading-sub-heading;line-height:1.25;padding-bottom:4px;}.main-heading rustdoc-toolbar,.main-heading .out-of-band{grid-area:main-heading-toolbar;}rustdoc-toolbar{display:flex;flex-direction:row;flex-wrap:nowrap;min-height:60px;}.docblock code,.item-table dd code,pre,.rustdoc.src .example-wrap,.example-wrap .src-line-numbers{background-color:var(--code-block-background-color);border-radius:var(--code-block-border-radius);text-decoration:inherit;}#main-content{position:relative;}.docblock table{margin:.5em 0;border-collapse:collapse;}.docblock table td,.docblock table th{padding:.5em;border:1px solid var(--border-color);}.docblock table tbody tr:nth-child(2n){background:var(--table-alt-row-background-color);}.docblock .stab,.item-table dd .stab,.docblock p code{display:inline-block;}.docblock li{margin-bottom:.4em;}.docblock li p:not(:last-child){margin-bottom:.3em;}div.where{white-space:pre-wrap;font-size:0.875rem;}.item-info{display:block;margin-left:var(--docblock-indent);}.impl-items>.item-info{margin-left:calc(var(--docblock-indent) + var(--impl-items-indent));}.item-info code{font-size:0.875rem;}#main-content>.item-info{margin-left:0;}nav.sub{flex-grow:1;flex-flow:row nowrap;margin:4px 0 0 0;display:flex;align-items:center;}.search-form{position:relative;display:flex;height:34px;flex-grow:1;margin-bottom:4px;}.src nav.sub{margin:0 0 -10px 0;}.section-header{display:block;position:relative;}.section-header:hover>.anchor,.impl:hover>.anchor,.trait-impl:hover>.anchor,.variant:hover>.anchor{display:initial;}.anchor{display:none;position:absolute;left:-0.5em;background:none !important;}.anchor.field{left:-5px;}.section-header>.anchor{left:-15px;padding-right:8px;}h2.section-header>.anchor{padding-right:6px;}a.doc-anchor{color:var(--main-color);display:none;position:absolute;left:-17px;padding-right:10px;padding-left:3px;}*:hover>.doc-anchor{display:block;}.top-doc>.docblock>*:first-child>.doc-anchor{display:none !important;}.main-heading a:hover,.example-wrap .rust a:hover:not([data-nosnippet]),.all-items a:hover,.docblock a:not(.scrape-help):not(.tooltip):hover:not(.doc-anchor),.item-table dd a:not(.scrape-help):not(.tooltip):hover,.item-info a{text-decoration:underline;}.crate.block li.current a{font-weight:500;}table,.item-table{overflow-wrap:break-word;}.item-table{padding:0;margin:0;width:100%;}.item-table>dt{padding-right:1.25rem;}.item-table>dd{margin-inline-start:0;margin-left:0;}.search-results-title{margin-top:0;white-space:nowrap;display:flex;align-items:baseline;}.search-results-title+.sub-heading{color:var(--main-color);display:flex;align-items:baseline;white-space:nowrap;}#crate-search-div{position:relative;min-width:0;}#crate-search{padding:0 23px 0 4px;max-width:100%;text-overflow:ellipsis;border:1px solid var(--border-color);border-radius:4px;outline:none;cursor:pointer;-moz-appearance:none;-webkit-appearance:none;text-indent:0.01px;background-color:var(--main-background-color);color:inherit;line-height:1.5;font-weight:500;}#crate-search:hover,#crate-search:focus{border-color:var(--crate-search-hover-border);}#crate-search-div::after{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0;content:"";background-repeat:no-repeat;background-size:20px;background-position:calc(100% - 2px) 56%;background-image:url('data:image/svg+xml,');}:root.sans-serif{--font-family:"Fira Sans",sans-serif;--font-family-code:"Fira Mono",monospace;}@font-face {font-family:'Fira Sans';font-style:normal;font-weight:400;src:local('Fira Sans'),url("FiraSans-Regular-0fe48ade.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Fira Sans';font-style:italic;font-weight:400;src:local('Fira Sans Italic'),url("FiraSans-Italic-81dc35de.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Fira Sans';font-style:normal;font-weight:500;src:local('Fira Sans Medium'),url("FiraSans-Medium-e1aa3f0a.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Fira Sans';font-style:italic;font-weight:500;src:local('Fira Sans Medium Italic'),url("FiraSans-MediumItalic-ccf7e434.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Fira Mono';font-style:normal;font-weight:400;src:local('Fira Mono'),url("FiraMono-Regular-87c26294.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Fira Mono';font-style:normal;font-weight:500;src:local('Fira Mono Medium'),url("FiraMono-Medium-86f75c8c.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:400;src:local('Source Serif 4'),url("SourceSerif4-Regular-6b053e98.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:italic;font-weight:400;src:local('Source Serif 4 Italic'),url("SourceSerif4-It-ca3b17ed.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:500;src:local('Source Serif 4 Semibold'),url("SourceSerif4-Semibold-457a13ac.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:700;src:local('Source Serif 4 Bold'),url("SourceSerif4-Bold-6d4fd4c0.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:400;src:url("SourceCodePro-Regular-8badfe75.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:italic;font-weight:400;src:url("SourceCodePro-It-fc8b9304.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:600;src:url("SourceCodePro-Semibold-aa29a496.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'NanumBarunGothic';src:url("NanumBarunGothic-13b3dcba.ttf.woff2") format("woff2");font-display:swap;unicode-range:U+AC00-D7AF,U+1100-11FF,U+3130-318F,U+A960-A97F,U+D7B0-D7FF;}*{box-sizing:border-box;}body{font:1rem/1.5 var(--font-family);margin:0;position:relative;overflow-wrap:break-word;overflow-wrap:anywhere;font-feature-settings:"kern","liga";background-color:var(--main-background-color);color:var(--main-color);}h1{font-size:1.5rem;}h2{font-size:1.375rem;}h3{font-size:1.25rem;}h1,h2,h3,h4,h5,h6{font-weight:500;}h1,h2,h3,h4{margin:25px 0 15px 0;padding-bottom:6px;}.docblock h3,.docblock h4,h5,h6{margin:15px 0 5px 0;}.docblock>h2:first-child,.docblock>h3:first-child,.docblock>h4:first-child,.docblock>h5:first-child,.docblock>h6:first-child{margin-top:0;}.main-heading h1{margin:0;padding:0;grid-area:main-heading-h1;overflow-wrap:break-word;overflow-wrap:anywhere;}.main-heading{position:relative;display:grid;grid-template-areas:"main-heading-breadcrumbs main-heading-breadcrumbs" "main-heading-h1 main-heading-toolbar" "main-heading-sub-heading main-heading-toolbar";grid-template-columns:minmax(105px,1fr) minmax(0,max-content);grid-template-rows:minmax(25px,min-content) min-content min-content;padding-bottom:6px;margin-bottom:15px;}.rustdoc-breadcrumbs{grid-area:main-heading-breadcrumbs;line-height:1.25;padding-top:5px;position:relative;z-index:1;}.rustdoc-breadcrumbs a{padding:5px 0 7px;}.content h2,.top-doc .docblock>h3,.top-doc .docblock>h4{border-bottom:1px solid var(--headings-border-bottom-color);}h1,h2{line-height:1.25;padding-top:3px;padding-bottom:9px;}h3.code-header{font-size:1.125rem;}h4.code-header{font-size:1rem;}.code-header{font-weight:600;margin:0;padding:0;white-space:pre-wrap;}.structfield,.sub-variant-field{margin:0.6em 0;}#crate-search,h1,h2,h3,h4,h5,h6,.sidebar,.mobile-topbar,.search-input,.search-results .result-name,.item-table dt>a,.out-of-band,.sub-heading,span.since,a.src,rustdoc-toolbar,summary.hideme,.scraped-example-list,.rustdoc-breadcrumbs,ul.all-items{font-family:"Fira Sans",Arial,NanumBarunGothic,sans-serif;}#toggle-all-docs,a.anchor,.section-header a,#src-sidebar a,.rust a,.sidebar h2 a,.sidebar h3 a,.mobile-topbar h2 a,h1 a,.search-results a,.search-results li,.stab,.result-name i{color:var(--main-color);}span.enum,a.enum,span.struct,a.struct,span.union,a.union,span.primitive,a.primitive,span.type,a.type,span.foreigntype,a.foreigntype{color:var(--type-link-color);}span.trait,a.trait,span.traitalias,a.traitalias{color:var(--trait-link-color);}span.associatedtype,a.associatedtype,span.constant,a.constant,span.static,a.static{color:var(--assoc-item-link-color);}span.fn,a.fn,span.method,a.method,span.tymethod,a.tymethod{color:var(--function-link-color);}span.attr,a.attr,span.derive,a.derive,span.macro,a.macro{color:var(--macro-link-color);}span.mod,a.mod{color:var(--mod-link-color);}span.keyword,a.keyword{color:var(--keyword-link-color);}a{color:var(--link-color);text-decoration:none;}ol,ul{padding-left:24px;}ul ul,ol ul,ul ol,ol ol{margin-bottom:.625em;}p,.docblock>.warning{margin:0 0 .75em 0;}p:last-child,.docblock>.warning:last-child{margin:0;}button{padding:1px 6px;cursor:pointer;}button#toggle-all-docs{padding:0;background:none;border:none;-webkit-appearance:none;opacity:1;}.rustdoc{display:flex;flex-direction:row;flex-wrap:nowrap;}main{position:relative;flex-grow:1;padding:10px 15px 40px 45px;min-width:0;}.src main{padding:15px;}.width-limiter{max-width:960px;margin-right:auto;}details:not(.toggle) summary{margin-bottom:.6em;}code,pre,.code-header,.type-signature{font-family:var(--font-family-code);}.docblock code,.item-table dd code{border-radius:3px;padding:0 0.125em;}.docblock pre code,.item-table dd pre code{padding:0;}pre{padding:14px;line-height:1.5;}pre.item-decl{overflow-x:auto;}.item-decl .type-contents-toggle{contain:initial;}.src .content pre{padding:20px;padding-left:16px;}img{max-width:100%;}.logo-container{line-height:0;display:block;}.rust-logo{filter:var(--rust-logo-filter);}.sidebar{font-size:0.875rem;flex:0 0 var(--desktop-sidebar-width);width:var(--desktop-sidebar-width);overflow-y:scroll;overscroll-behavior:contain;position:sticky;height:100vh;top:0;left:0;z-index:var(--desktop-sidebar-z-index);}.rustdoc.src .sidebar{flex-basis:50px;width:50px;border-right:1px solid;overflow-x:hidden;overflow-y:hidden;}.hide-sidebar .sidebar,.hide-sidebar .sidebar-resizer{display:none;}.sidebar-resizer{touch-action:none;width:9px;cursor:col-resize;z-index:calc(var(--desktop-sidebar-z-index) + 1);position:fixed;height:100%;left:calc(var(--desktop-sidebar-width) + 1px);}.rustdoc.src .sidebar-resizer{left:49px;}.src-sidebar-expanded .src .sidebar-resizer{left:var(--src-sidebar-width);}.sidebar-resizing{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;}.sidebar-resizing *{cursor:col-resize !important;}.sidebar-resizing .sidebar{position:fixed;}.sidebar-resizing>body{padding-left:var(--resizing-sidebar-width);}.sidebar-resizer:hover,.sidebar-resizer:active,.sidebar-resizer:focus,.sidebar-resizer.active{width:10px;margin:0;left:var(--desktop-sidebar-width);border-left:solid 1px var(--sidebar-resizer-hover);}.src-sidebar-expanded .rustdoc.src .sidebar-resizer:hover,.src-sidebar-expanded .rustdoc.src .sidebar-resizer:active,.src-sidebar-expanded .rustdoc.src .sidebar-resizer:focus,.src-sidebar-expanded .rustdoc.src .sidebar-resizer.active{left:calc(var(--src-sidebar-width) - 1px);}@media (pointer:coarse){.sidebar-resizer{display:none !important;}}.sidebar-resizer.active{padding:0 140px;width:2px;margin-left:-140px;border-left:none;}.sidebar-resizer.active::before{border-left:solid 2px var(--sidebar-resizer-active);display:block;height:100%;content:"";}.sidebar,.mobile-topbar,.sidebar-menu-toggle,#src-sidebar{background-color:var(--sidebar-background-color);}.src .sidebar>*{visibility:hidden;}.src-sidebar-expanded .src .sidebar{overflow-y:auto;flex-basis:var(--src-sidebar-width);width:var(--src-sidebar-width);}.src-sidebar-expanded .src .sidebar>*{visibility:visible;}#all-types{margin-top:1em;}*{scrollbar-width:initial;scrollbar-color:var(--scrollbar-color);}.sidebar{scrollbar-width:thin;scrollbar-color:var(--scrollbar-color);}::-webkit-scrollbar{width:12px;}.sidebar::-webkit-scrollbar{width:8px;}::-webkit-scrollbar-track{-webkit-box-shadow:inset 0;background-color:var(--scrollbar-track-background-color);}.sidebar::-webkit-scrollbar-track{background-color:var(--scrollbar-track-background-color);}::-webkit-scrollbar-thumb,.sidebar::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb-background-color);}.hidden{display:none !important;}.logo-container>img{height:48px;width:48px;}ul.block,.block li,.block ul{padding:0;margin:0;list-style:none;}.block ul a{padding-left:1rem;}.sidebar-elems a,.sidebar>h2 a{display:block;padding:0.25rem;margin-right:0.25rem;border-left:solid var(--sidebar-elems-left-padding) transparent;margin-left:calc(-0.25rem - var(--sidebar-elems-left-padding));background-clip:border-box;}.hide-toc #rustdoc-toc,.hide-toc .in-crate{display:none;}.hide-modnav #rustdoc-modnav{display:none;}.sidebar h2{text-wrap:balance;overflow-wrap:anywhere;padding:0;margin:0.7rem 0;}.sidebar h3{text-wrap:balance;overflow-wrap:anywhere;font-size:1.125rem;padding:0;margin:0;}.sidebar-elems,.sidebar>.version,.sidebar>h2{padding-left:var(--sidebar-elems-left-padding);}.sidebar a{color:var(--sidebar-link-color);}.sidebar .current,.sidebar .current a,.sidebar-crate a.logo-container:hover+h2 a,.sidebar a:hover:not(.logo-container){background-color:var(--sidebar-current-link-background-color);}.sidebar-elems .block{margin-bottom:2em;}.sidebar-elems .block li a{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;}.sidebar-crate{display:flex;align-items:center;justify-content:center;margin:14px 32px 1rem;row-gap:10px;column-gap:32px;flex-wrap:wrap;}.sidebar-crate h2{flex-grow:1;margin:0 -8px;align-self:start;}.sidebar-crate .logo-container{margin:0 calc(-16px - var(--sidebar-elems-left-padding));padding:0 var(--sidebar-elems-left-padding);text-align:center;}.sidebar-crate .logo-container img{margin-top:-16px;border-top:solid 16px transparent;box-sizing:content-box;position:relative;background-clip:border-box;z-index:1;}.sidebar-crate h2 a{display:block;border-left:solid var(--sidebar-elems-left-padding) transparent;background-clip:border-box;margin:0 calc(-24px + 0.25rem) 0 calc(-0.2rem - var(--sidebar-elems-left-padding));padding:calc((16px - 0.57rem ) / 2 ) 0.25rem;padding-left:0.2rem;}.sidebar-crate h2 .version{display:block;font-weight:normal;font-size:1rem;overflow-wrap:break-word;}.sidebar-crate+.version{margin-top:-1rem;margin-bottom:1rem;}.mobile-topbar{display:none;}.rustdoc .example-wrap{display:flex;position:relative;margin-bottom:10px;}.rustdoc .example-wrap>pre,.rustdoc .scraped-example .src-line-numbers,.rustdoc .scraped-example .src-line-numbers>pre{border-radius:6px;}.rustdoc .scraped-example{position:relative;}.rustdoc .example-wrap:last-child{margin-bottom:0px;}.rustdoc .example-wrap pre{margin:0;flex-grow:1;}.scraped-example:not(.expanded) .example-wrap{max-height:calc(1.5em * 5 + 10px);}.more-scraped-examples .scraped-example:not(.expanded) .example-wrap{max-height:calc(1.5em * 10 + 10px);}.rustdoc:not(.src) .scraped-example:not(.expanded) .src-line-numbers,.rustdoc:not(.src) .scraped-example:not(.expanded) .src-line-numbers>pre,.rustdoc:not(.src) .scraped-example:not(.expanded) pre.rust{padding-bottom:0;overflow:auto hidden;}.rustdoc:not(.src) .scraped-example .src-line-numbers{padding-top:0;}.rustdoc:not(.src) .scraped-example.expanded .src-line-numbers{padding-bottom:0;}.rustdoc:not(.src) .example-wrap pre{overflow:auto;}.example-wrap.digits-1:not(.hide-lines) [data-nosnippet]{width:calc(1ch + var(--line-number-padding) * 2);}.example-wrap.digits-2:not(.hide-lines) [data-nosnippet]{width:calc(2ch + var(--line-number-padding) * 2);}.example-wrap.digits-3:not(.hide-lines) [data-nosnippet]{width:calc(3ch + var(--line-number-padding) * 2);}.example-wrap.digits-4:not(.hide-lines) [data-nosnippet]{width:calc(4ch + var(--line-number-padding) * 2);}.example-wrap.digits-5:not(.hide-lines) [data-nosnippet]{width:calc(5ch + var(--line-number-padding) * 2);}.example-wrap.digits-6:not(.hide-lines) [data-nosnippet]{width:calc(6ch + var(--line-number-padding) * 2);}.example-wrap.digits-7:not(.hide-lines) [data-nosnippet]{width:calc(7ch + var(--line-number-padding) * 2);}.example-wrap.digits-8:not(.hide-lines) [data-nosnippet]{width:calc(8ch + var(--line-number-padding) * 2);}.example-wrap.digits-9:not(.hide-lines) [data-nosnippet]{width:calc(9ch + var(--line-number-padding) * 2);}.example-wrap [data-nosnippet]{color:var(--src-line-numbers-span-color);text-align:right;display:inline-block;margin-right:var(--line-number-right-margin);-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;padding:0 var(--line-number-padding);}.example-wrap [data-nosnippet]:target{border-right:none;}.example-wrap .line-highlighted[data-nosnippet]{background-color:var(--src-line-number-highlighted-background-color);}:root.word-wrap-source-code .example-wrap [data-nosnippet]{position:absolute;left:0;}.word-wrap-source-code .example-wrap pre>code{position:relative;word-break:break-all;}:root.word-wrap-source-code .example-wrap pre>code{display:block;white-space:pre-wrap;}:root.word-wrap-source-code .example-wrap pre>code *{word-break:break-all;}:root.word-wrap-source-code .example-wrap.digits-1 pre>code{padding-left:calc(1ch + var(--line-number-padding) * 2 + var(--line-number-right-margin));}:root.word-wrap-source-code .example-wrap.digits-2 pre>code{padding-left:calc(2ch + var(--line-number-padding) * 2 + var(--line-number-right-margin));}:root.word-wrap-source-code .example-wrap.digits-3 pre>code{padding-left:calc(3ch + var(--line-number-padding) * 2 + var(--line-number-right-margin));}:root.word-wrap-source-code .example-wrap.digits-4 pre>code{padding-left:calc(4ch + var(--line-number-padding) * 2 + var(--line-number-right-margin));}:root.word-wrap-source-code .example-wrap.digits-5 pre>code{padding-left:calc(5ch + var(--line-number-padding) * 2 + var(--line-number-right-margin));}:root.word-wrap-source-code .example-wrap.digits-6 pre>code{padding-left:calc(6ch + var(--line-number-padding) * 2 + var(--line-number-right-margin));}:root.word-wrap-source-code .example-wrap.digits-7 pre>code{padding-left:calc(7ch + var(--line-number-padding) * 2 + var(--line-number-right-margin));}:root.word-wrap-source-code .example-wrap.digits-8 pre>code{padding-left:calc(8ch + var(--line-number-padding) * 2 + var(--line-number-right-margin));}:root.word-wrap-source-code .example-wrap.digits-9 pre>code{padding-left:calc(9ch + var(--line-number-padding) * 2 + var(--line-number-right-margin));}.example-wrap.hide-lines [data-nosnippet]{display:none;}.search-loading{text-align:center;}.item-table dd{overflow-wrap:break-word;overflow-wrap:anywhere;}.docblock :not(pre)>code,.item-table dd code{white-space:pre-wrap;}.top-doc .docblock h2{font-size:1.375rem;}.top-doc .docblock h3{font-size:1.25rem;}.top-doc .docblock h4,.top-doc .docblock h5{font-size:1.125rem;}.top-doc .docblock h6{font-size:1rem;}.docblock h5{font-size:1rem;}.docblock h6{font-size:0.875rem;}.docblock{margin-left:var(--docblock-indent);position:relative;}.docblock>:not(.more-examples-toggle):not(.example-wrap){max-width:100%;overflow-x:auto;}.sub-heading{font-size:1rem;flex-grow:0;grid-area:main-heading-sub-heading;line-height:1.25;padding-bottom:4px;}.main-heading rustdoc-toolbar,.main-heading .out-of-band{grid-area:main-heading-toolbar;}rustdoc-toolbar{display:flex;flex-direction:row;flex-wrap:nowrap;min-height:60px;}.docblock code,.item-table dd code,pre,.rustdoc.src .example-wrap,.example-wrap .src-line-numbers{background-color:var(--code-block-background-color);border-radius:var(--code-block-border-radius);text-decoration:inherit;}#main-content{position:relative;}.docblock table{margin:.5em 0;border-collapse:collapse;}.docblock table td,.docblock table th{padding:.5em;border:1px solid var(--border-color);}.docblock table tbody tr:nth-child(2n){background:var(--table-alt-row-background-color);}.docblock .stab,.item-table dd .stab,.docblock p code{display:inline-block;}.docblock li{margin-bottom:.4em;}.docblock li p:not(:last-child){margin-bottom:.3em;}div.where{white-space:pre-wrap;font-size:0.875rem;}.item-info{display:block;margin-left:var(--docblock-indent);}.impl-items>.item-info{margin-left:calc(var(--docblock-indent) + var(--impl-items-indent));}.item-info code{font-size:0.875rem;}#main-content>.item-info{margin-left:0;}nav.sub{flex-grow:1;flex-flow:row nowrap;margin:4px 0 0 0;display:flex;align-items:center;}.search-form{position:relative;display:flex;height:34px;flex-grow:1;margin-bottom:4px;}.src nav.sub{margin:0 0 -10px 0;}.section-header{display:block;position:relative;}.section-header:hover>.anchor,.impl:hover>.anchor,.trait-impl:hover>.anchor,.variant:hover>.anchor{display:initial;}.anchor{display:none;position:absolute;left:-0.5em;background:none !important;}.anchor.field{left:-5px;}.section-header>.anchor{left:-15px;padding-right:8px;}h2.section-header>.anchor{padding-right:6px;}a.doc-anchor{color:var(--main-color);display:none;position:absolute;left:-17px;padding-right:10px;padding-left:3px;}*:hover>.doc-anchor{display:block;}.top-doc>.docblock>*:first-child>.doc-anchor{display:none !important;}.main-heading a:hover,.example-wrap .rust a:hover:not([data-nosnippet]),.all-items a:hover,.docblock a:not(.scrape-help):not(.tooltip):hover:not(.doc-anchor),.item-table dd a:not(.scrape-help):not(.tooltip):hover,.item-info a{text-decoration:underline;}.crate.block li.current a{font-weight:500;}table,.item-table{overflow-wrap:break-word;}.item-table{padding:0;margin:0;width:100%;}.item-table>dt{padding-right:1.25rem;}.item-table>dd{margin-inline-start:0;margin-left:0;}.search-results-title{margin-top:0;white-space:nowrap;display:flex;align-items:baseline;}.search-results-title+.sub-heading{color:var(--main-color);display:flex;align-items:baseline;white-space:nowrap;}#crate-search-div{position:relative;min-width:0;}#crate-search{padding:0 23px 0 4px;max-width:100%;text-overflow:ellipsis;border:1px solid var(--border-color);border-radius:4px;outline:none;cursor:pointer;-moz-appearance:none;-webkit-appearance:none;text-indent:0.01px;background-color:var(--main-background-color);color:inherit;line-height:1.5;font-weight:500;}#crate-search:hover,#crate-search:focus{border-color:var(--crate-search-hover-border);}#crate-search-div::after{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0;content:"";background-repeat:no-repeat;background-size:20px;background-position:calc(100% - 2px) 56%;background-image:url('data:image/svg+xml, \
             	');filter:var(--crate-search-div-filter);}#crate-search-div:hover::after,#crate-search-div:focus-within::after{filter:var(--crate-search-div-hover-filter);}#crate-search>option{font-size:1rem;}.search-input{-webkit-appearance:none;outline:none;border:1px solid var(--border-color);border-radius:2px;padding:8px;font-size:1rem;flex-grow:1;background-color:var(--button-background-color);color:var(--search-color);}.search-input:focus{border-color:var(--search-input-focused-border-color);}.search-results{display:none;}.search-results.active{display:block;margin:0;padding:0;}.search-results>a{display:grid;grid-template-areas:"search-result-name search-result-desc" "search-result-type-signature search-result-type-signature";grid-template-columns:.6fr .4fr;margin-left:2px;margin-right:2px;border-bottom:1px solid var(--search-result-border-color);column-gap:1em;}.search-results>a>div.desc{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;grid-area:search-result-desc;}.search-results a:hover,.search-results a:focus{background-color:var(--search-result-link-focus-background-color);}.search-results .result-name{display:flex;align-items:center;justify-content:start;grid-area:search-result-name;}.search-results .result-name .alias{color:var(--search-results-alias-color);}.search-results .result-name .grey{color:var(--search-results-grey-color);}.search-results .result-name .typename{color:var(--search-results-grey-color);font-size:0.875rem;width:var(--search-typename-width);}.search-results .result-name .path{word-break:break-all;max-width:calc(100% - var(--search-typename-width));display:inline-block;}.search-results .result-name .path>*{display:inline;}.search-results .type-signature{grid-area:search-result-type-signature;white-space:pre-wrap;}.popover{position:absolute;top:100%;right:0;z-index:calc(var(--desktop-sidebar-z-index) + 1);margin-top:7px;border-radius:3px;border:1px solid var(--border-color);background-color:var(--main-background-color);color:var(--main-color);--popover-arrow-offset:11px;}.popover::before{content:'';position:absolute;right:var(--popover-arrow-offset);border:solid var(--border-color);border-width:1px 1px 0 0;background-color:var(--main-background-color);padding:4px;transform:rotate(-45deg);top:-5px;}.setting-line{margin:1.2em 0.6em;}.setting-radio input,.setting-check input{margin-right:0.3em;height:1.2rem;width:1.2rem;border:2px solid var(--settings-input-border-color);outline:none;-webkit-appearance:none;cursor:pointer;}.setting-radio input{border-radius:50%;}.setting-radio span,.setting-check span{padding-bottom:1px;}.setting-radio{margin-top:0.1em;margin-bottom:0.1em;min-width:3.8em;padding:0.3em;display:inline-flex;align-items:center;cursor:pointer;}.setting-radio+.setting-radio{margin-left:0.5em;}.setting-check{margin-right:20px;display:flex;align-items:center;cursor:pointer;}.setting-check input{flex-shrink:0;}.setting-radio input:checked{box-shadow:inset 0 0 0 3px var(--main-background-color);background-color:var(--settings-input-color);}.setting-check input:checked{background-color:var(--settings-input-color);border-width:1px;content:url('data:image/svg+xml,\
             		\
             		');}.setting-radio input:focus,.setting-check input:focus{box-shadow:0 0 1px 1px var(--settings-input-color);}.setting-radio input:checked:focus{box-shadow:inset 0 0 0 3px var(--main-background-color),0 0 2px 2px var(--settings-input-color);}.setting-radio input:hover,.setting-check input:hover{border-color:var(--settings-input-color) !important;}#settings.popover{--popover-arrow-offset:202px;top:calc(100% - 16px);}#help.popover{max-width:600px;--popover-arrow-offset:118px;top:calc(100% - 16px);}#help dt{float:left;clear:left;margin-right:0.5rem;}#help dd{margin-bottom:0.5rem;}#help span.top,#help span.bottom{text-align:center;display:block;font-size:1.125rem;padding:0 0.5rem;text-wrap-style:balance;}#help span.top{margin:10px 0;border-bottom:1px solid var(--border-color);padding-bottom:4px;margin-bottom:6px;}#help span.bottom{clear:both;border-top:1px solid var(--border-color);}.side-by-side{display:flex;margin-bottom:20px;}.side-by-side>div{width:50%;padding:0 20px 0 17px;}.item-info .stab{display:block;padding:3px;margin-bottom:5px;}.item-table dt .stab{margin-left:0.3125em;}.stab{padding:0 2px;font-size:0.875rem;font-weight:normal;color:var(--main-color);background-color:var(--stab-background-color);width:fit-content;white-space:pre-wrap;border-radius:3px;display:inline;vertical-align:baseline;}.stab.portability>code{background:none;color:var(--stab-code-color);}.stab .emoji,.item-info .stab::before{font-size:1.25rem;}.stab .emoji{margin-right:0.3rem;}.item-info .stab::before{content:"\0";width:0;display:inline-block;color:transparent;}.emoji{text-shadow:1px 0 0 black,-1px 0 0 black,0 1px 0 black,0 -1px 0 black;}.since{font-weight:normal;font-size:initial;}.rightside{padding-left:12px;float:right;}.rightside:not(a),.out-of-band,.sub-heading,rustdoc-toolbar{color:var(--right-side-color);}pre.rust{tab-size:4;-moz-tab-size:4;}pre.rust .kw{color:var(--code-highlight-kw-color);}pre.rust .kw-2{color:var(--code-highlight-kw-2-color);}pre.rust .lifetime{color:var(--code-highlight-lifetime-color);}pre.rust .prelude-ty{color:var(--code-highlight-prelude-color);}pre.rust .prelude-val{color:var(--code-highlight-prelude-val-color);}pre.rust .string{color:var(--code-highlight-string-color);}pre.rust .number{color:var(--code-highlight-number-color);}pre.rust .bool-val{color:var(--code-highlight-literal-color);}pre.rust .self{color:var(--code-highlight-self-color);}pre.rust .attr{color:var(--code-highlight-attribute-color);}pre.rust .macro,pre.rust .macro-nonterminal{color:var(--code-highlight-macro-color);}pre.rust .question-mark{font-weight:bold;color:var(--code-highlight-question-mark-color);}pre.rust .comment{color:var(--code-highlight-comment-color);}pre.rust .doccomment{color:var(--code-highlight-doc-comment-color);}.rustdoc.src .example-wrap pre.rust a:not([data-nosnippet]){background:var(--codeblock-link-background);}.example-wrap.compile_fail,.example-wrap.should_panic{border-left:2px solid var(--codeblock-error-color);}.ignore.example-wrap{border-left:2px solid var(--codeblock-ignore-color);}.example-wrap.compile_fail:hover,.example-wrap.should_panic:hover{border-left:2px solid var(--codeblock-error-hover-color);}.example-wrap.ignore:hover{border-left:2px solid var(--codeblock-ignore-hover-color);}.example-wrap.compile_fail .tooltip,.example-wrap.should_panic .tooltip{color:var(--codeblock-error-color);}.example-wrap.ignore .tooltip{color:var(--codeblock-ignore-color);}.example-wrap.compile_fail:hover .tooltip,.example-wrap.should_panic:hover .tooltip{color:var(--codeblock-error-hover-color);}.example-wrap.ignore:hover .tooltip{color:var(--codeblock-ignore-hover-color);}.example-wrap .tooltip{position:absolute;display:block;left:-25px;top:5px;margin:0;line-height:1;}.example-wrap.compile_fail .tooltip,.example-wrap.should_panic .tooltip,.example-wrap.ignore .tooltip{font-weight:bold;font-size:1.25rem;}.content .docblock .warning{border-left:2px solid var(--warning-border-color);padding:14px;position:relative;overflow-x:visible !important;}.content .docblock .warning::before{color:var(--warning-border-color);content:"ⓘ";position:absolute;left:-25px;top:5px;font-weight:bold;font-size:1.25rem;}.top-doc>.docblock>.warning:first-child::before{top:20px;}.example-wrap>a.test-arrow,.example-wrap .button-holder{visibility:hidden;position:absolute;top:4px;right:4px;z-index:1;}a.test-arrow{height:var(--copy-path-height);padding:6px 4px 0 11px;}a.test-arrow::before{content:url('data:image/svg+xml,');}.example-wrap .button-holder{display:flex;}@media not (pointer:coarse){.example-wrap:hover>a.test-arrow,.example-wrap:hover>.button-holder{visibility:visible;}}.example-wrap .button-holder.keep-visible{visibility:visible;}.example-wrap .button-holder>*{background:var(--main-background-color);cursor:pointer;border-radius:var(--button-border-radius);height:var(--copy-path-height);width:var(--copy-path-width);border:0;color:var(--code-example-button-color);}.example-wrap .button-holder>*:hover{color:var(--code-example-button-hover-color);}.example-wrap .button-holder>*:not(:first-child){margin-left:var(--button-left-margin);}.example-wrap .button-holder .copy-button{padding:2px 0 0 4px;}.example-wrap .button-holder .copy-button::before,.example-wrap .test-arrow::before,.example-wrap .button-holder .prev::before,.example-wrap .button-holder .next::before,.example-wrap .button-holder .expand::before{filter:var(--copy-path-img-filter);}.example-wrap .button-holder .copy-button::before{content:var(--clipboard-image);}.example-wrap .button-holder .copy-button:hover::before,.example-wrap .test-arrow:hover::before{filter:var(--copy-path-img-hover-filter);}.example-wrap .button-holder .copy-button.clicked::before{content:var(--checkmark-image);padding-right:5px;}.example-wrap .button-holder .prev,.example-wrap .button-holder .next,.example-wrap .button-holder .expand{line-height:0px;}.example-wrap .button-holder .prev::before{content:var(--prev-arrow-image);}.example-wrap .button-holder .next::before{content:var(--next-arrow-image);}.example-wrap .button-holder .expand::before{content:var(--expand-arrow-image);}.example-wrap .button-holder .expand.collapse::before{content:var(--collapse-arrow-image);}.code-attribute{font-weight:300;color:var(--code-attribute-color);}.item-spacer{width:100%;height:12px;display:block;}.main-heading span.since::before{content:"Since ";}.sub-variant h4{font-size:1rem;font-weight:400;margin-top:0;margin-bottom:0;}.sub-variant{margin-left:24px;margin-bottom:40px;}.sub-variant>.sub-variant-field{margin-left:24px;}@keyframes targetfadein{from{background-color:var(--main-background-color);}10%{background-color:var(--target-border-color);}to{background-color:var(--target-background-color);}}:target:not([data-nosnippet]){background-color:var(--target-background-color);border-right:3px solid var(--target-border-color);}.code-header a.tooltip{color:inherit;margin-right:15px;position:relative;}.code-header a.tooltip:hover{color:var(--link-color);}a.tooltip:hover::after{position:absolute;top:calc(100% - 10px);left:-15px;right:-15px;height:20px;content:"\00a0";}@media not (prefers-reduced-motion){:target{animation:0.65s cubic-bezier(0,0,0.1,1.0) 0.1s targetfadein;}.fade-out{opacity:0;transition:opacity 0.45s cubic-bezier(0,0,0.1,1.0);}}.popover.tooltip .content{margin:0.25em 0.5em;}.popover.tooltip .content pre,.popover.tooltip .content code{background:transparent;margin:0;padding:0;font-size:1.25rem;white-space:pre-wrap;}.popover.tooltip .content>h3:first-child{margin:0 0 5px 0;}.search-failed{text-align:center;margin-top:20px;display:none;}.search-failed.active{display:block;}.search-failed>ul{text-align:left;max-width:570px;margin-left:auto;margin-right:auto;}#search-tabs{margin-top:0.25rem;display:flex;flex-direction:row;gap:1px;margin-bottom:4px;}#search-tabs button{text-align:center;font-size:1.125rem;border:0;border-top:2px solid;flex:1;line-height:1.5;color:inherit;}#search-tabs button:not(.selected){background-color:var(--search-tab-button-not-selected-background);border-top-color:var(--search-tab-button-not-selected-border-top-color);}#search-tabs button:hover,#search-tabs button.selected{background-color:var(--search-tab-button-selected-background);border-top-color:var(--search-tab-button-selected-border-top-color);}#search-tabs .count{font-size:1rem;font-variant-numeric:tabular-nums;color:var(--search-tab-title-count-color);}#search .error code{border-radius:3px;background-color:var(--search-error-code-background-color);}.search-corrections{font-weight:normal;}#src-sidebar{width:100%;overflow:auto;}#src-sidebar div.files>a:hover,details.dir-entry summary:hover,#src-sidebar div.files>a:focus,details.dir-entry summary:focus{background-color:var(--src-sidebar-background-hover);}#src-sidebar div.files>a.selected{background-color:var(--src-sidebar-background-selected);}.src-sidebar-title{position:sticky;top:0;display:flex;padding:8px 8px 0 48px;margin-bottom:7px;background:var(--sidebar-background-color);border-bottom:1px solid var(--border-color);}#settings-menu,#help-button,button#toggle-all-docs{margin-left:var(--button-left-margin);display:flex;line-height:1.25;min-width:14px;}#sidebar-button{display:none;line-height:0;}.hide-sidebar #sidebar-button,.src #sidebar-button{display:flex;margin-right:4px;position:fixed;left:6px;height:34px;width:34px;background-color:var(--main-background-color);z-index:1;}.src #sidebar-button{left:8px;z-index:calc(var(--desktop-sidebar-z-index) + 1);}.hide-sidebar .src #sidebar-button{position:static;}#settings-menu>a,#help-button>a,#sidebar-button>a,button#toggle-all-docs{display:flex;align-items:center;justify-content:center;flex-direction:column;border:1px solid transparent;border-radius:var(--button-border-radius);color:var(--main-color);}#settings-menu>a,#help-button>a,button#toggle-all-docs{width:80px;border-radius:var(--toolbar-button-border-radius);}#settings-menu>a,#help-button>a{min-width:0;}#sidebar-button>a{background-color:var(--button-background-color);border-color:var(--border-color);width:33px;}#settings-menu>a:hover,#settings-menu>a:focus-visible,#help-button>a:hover,#help-button>a:focus-visible,#sidebar-button>a:hover,#sidebar-button>a:focus-visible,button#toggle-all-docs:hover,button#toggle-all-docs:focus-visible{border-color:var(--settings-button-border-focus);text-decoration:none;}#settings-menu>a:before{content:url('data:image/svg+xml,');}.example-wrap .button-holder{display:flex;}@media not (pointer:coarse){.example-wrap:hover>a.test-arrow,.example-wrap:hover>.button-holder{visibility:visible;}}.example-wrap .button-holder.keep-visible{visibility:visible;}.example-wrap .button-holder>*{background:var(--main-background-color);cursor:pointer;border-radius:var(--button-border-radius);height:var(--copy-path-height);width:var(--copy-path-width);border:0;color:var(--code-example-button-color);}.example-wrap .button-holder>*:hover{color:var(--code-example-button-hover-color);}.example-wrap .button-holder>*:not(:first-child){margin-left:var(--button-left-margin);}.example-wrap .button-holder .copy-button{padding:2px 0 0 4px;}.example-wrap .button-holder .copy-button::before,.example-wrap .test-arrow::before,.example-wrap .button-holder .prev::before,.example-wrap .button-holder .next::before,.example-wrap .button-holder .expand::before{filter:var(--copy-path-img-filter);}.example-wrap .button-holder .copy-button::before{content:var(--clipboard-image);}.example-wrap .button-holder .copy-button:hover::before,.example-wrap .test-arrow:hover::before{filter:var(--copy-path-img-hover-filter);}.example-wrap .button-holder .copy-button.clicked::before{content:var(--checkmark-image);padding-right:5px;}.example-wrap .button-holder .prev,.example-wrap .button-holder .next,.example-wrap .button-holder .expand{line-height:0px;}.example-wrap .button-holder .prev::before{content:var(--prev-arrow-image);}.example-wrap .button-holder .next::before{content:var(--next-arrow-image);}.example-wrap .button-holder .expand::before{content:var(--expand-arrow-image);}.example-wrap .button-holder .expand.collapse::before{content:var(--collapse-arrow-image);}.code-attribute{font-weight:300;color:var(--code-attribute-color);}.item-spacer{width:100%;height:12px;display:block;}.main-heading span.since::before{content:"Since ";}.sub-variant h4{font-size:1rem;font-weight:400;margin-top:0;margin-bottom:0;}.sub-variant{margin-left:24px;margin-bottom:40px;}.sub-variant>.sub-variant-field{margin-left:24px;}@keyframes targetfadein{from{background-color:var(--main-background-color);}10%{background-color:var(--target-border-color);}to{background-color:var(--target-background-color);}}:target:not([data-nosnippet]){background-color:var(--target-background-color);border-right:3px solid var(--target-border-color);}.code-header a.tooltip{color:inherit;margin-right:15px;position:relative;}.code-header a.tooltip:hover{color:var(--link-color);}a.tooltip:hover::after{position:absolute;top:calc(100% - 10px);left:-15px;right:-15px;height:20px;content:"\00a0";}@media not (prefers-reduced-motion){:target{animation:0.65s cubic-bezier(0,0,0.1,1.0) 0.1s targetfadein;}.fade-out{opacity:0;transition:opacity 0.45s cubic-bezier(0,0,0.1,1.0);}}.popover.tooltip .content{margin:0.25em 0.5em;}.popover.tooltip .content pre,.popover.tooltip .content code{background:transparent;margin:0;padding:0;font-size:1.25rem;white-space:pre-wrap;}.popover.tooltip .content>h3:first-child{margin:0 0 5px 0;}.search-failed{text-align:center;margin-top:20px;display:none;}.search-failed.active{display:block;}.search-failed>ul{text-align:left;max-width:570px;margin-left:auto;margin-right:auto;}#search-tabs{margin-top:0.25rem;display:flex;flex-direction:row;gap:1px;margin-bottom:4px;}#search-tabs button{text-align:center;font-size:1.125rem;border:0;border-top:2px solid;flex:1;line-height:1.5;color:inherit;}#search-tabs button:not(.selected){background-color:var(--search-tab-button-not-selected-background);border-top-color:var(--search-tab-button-not-selected-border-top-color);}#search-tabs button:hover,#search-tabs button.selected{background-color:var(--search-tab-button-selected-background);border-top-color:var(--search-tab-button-selected-border-top-color);}#search-tabs .count{font-size:1rem;font-variant-numeric:tabular-nums;color:var(--search-tab-title-count-color);}#search .error code{border-radius:3px;background-color:var(--search-error-code-background-color);}.search-corrections{font-weight:normal;}#src-sidebar{width:100%;overflow:auto;}#src-sidebar div.files>a:hover,details.dir-entry summary:hover,#src-sidebar div.files>a:focus,details.dir-entry summary:focus{background-color:var(--src-sidebar-background-hover);}#src-sidebar div.files>a.selected{background-color:var(--src-sidebar-background-selected);}.src-sidebar-title{position:sticky;top:0;display:flex;padding:8px 8px 0 48px;margin-bottom:7px;background:var(--sidebar-background-color);border-bottom:1px solid var(--border-color);}#settings-menu,#help-button,button#toggle-all-docs{margin-left:var(--button-left-margin);display:flex;line-height:1.25;min-width:14px;}#sidebar-button{display:none;line-height:0;}.hide-sidebar #sidebar-button,.src #sidebar-button{display:flex;margin-right:4px;position:fixed;left:6px;height:34px;width:34px;background-color:var(--main-background-color);z-index:1;}.src #sidebar-button{left:8px;z-index:calc(var(--desktop-sidebar-z-index) + 1);}.hide-sidebar .src #sidebar-button{position:static;}#settings-menu>a,#help-button>a,#sidebar-button>a,button#toggle-all-docs{display:flex;align-items:center;justify-content:center;flex-direction:column;border:1px solid transparent;border-radius:var(--button-border-radius);color:var(--main-color);}#settings-menu>a,#help-button>a,button#toggle-all-docs{width:80px;border-radius:var(--toolbar-button-border-radius);}#settings-menu>a,#help-button>a{min-width:0;}#sidebar-button>a{background-color:var(--button-background-color);border-color:var(--border-color);width:33px;}#settings-menu>a:hover,#settings-menu>a:focus-visible,#help-button>a:hover,#help-button>a:focus-visible,#sidebar-button>a:hover,#sidebar-button>a:focus-visible,button#toggle-all-docs:hover,button#toggle-all-docs:focus-visible{border-color:var(--settings-button-border-focus);text-decoration:none;}#settings-menu>a::before{content:url('data:image/svg+xml,\
             	\
             	L4.75,12h2.5l0.5393066-2.1572876  c0.2276001-0.1062012,0.4459839-0.2269287,0.6494751\
             	-0.3701782l2.1323853,0.6099854l1.25-2.1650391L10.2133789,6.362915  C10.2238159,6.241333,\
             	10.25,6.1243286,10.25,6z M6,7.5C5.1715698,7.5,4.5,6.8284302,4.5,6S5.1715698,4.5,6,4.5S7.5\
            -	,5.1715698,7.5,6  S6.8284302,7.5,6,7.5z" fill="black"/>');width:18px;height:18px;filter:var(--settings-menu-filter);}button#toggle-all-docs:before{content:url('data:image/svg+xml,');width:18px;height:18px;filter:var(--settings-menu-filter);}button#toggle-all-docs::before{content:url('data:image/svg+xml,\
            -	');width:18px;height:18px;filter:var(--settings-menu-filter);}button#toggle-all-docs.will-expand:before{content:url('data:image/svg+xml,');width:18px;height:18px;filter:var(--settings-menu-filter);}button#toggle-all-docs.will-expand::before{content:url('data:image/svg+xml,\
            -	');}#help-button>a:before{content:url('data:image/svg+xml,');}#help-button>a::before{content:url('data:image/svg+xml,\
             	\
             	?');width:18px;height:18px;filter:var(--settings-menu-filter);}button#toggle-all-docs:before,#help-button>a:before,#settings-menu>a:before{filter:var(--settings-menu-filter);margin:8px;}@media not (pointer:coarse){button#toggle-all-docs:hover:before,#help-button>a:hover:before,#settings-menu>a:hover:before{filter:var(--settings-menu-hover-filter);}}button[disabled]#toggle-all-docs{opacity:0.25;border:solid 1px var(--main-background-color);background-size:cover;}button[disabled]#toggle-all-docs:hover{border:solid 1px var(--main-background-color);cursor:not-allowed;}rustdoc-toolbar span.label{font-size:1rem;flex-grow:1;padding-bottom:4px;}#sidebar-button>a:before{content:url('data:image/svg+xml,?');width:18px;height:18px;filter:var(--settings-menu-filter);}button#toggle-all-docs::before,#help-button>a::before,#settings-menu>a::before{filter:var(--settings-menu-filter);margin:8px;}@media not (pointer:coarse){button#toggle-all-docs:hover::before,#help-button>a:hover::before,#settings-menu>a:hover::before{filter:var(--settings-menu-hover-filter);}}button[disabled]#toggle-all-docs{opacity:0.25;border:solid 1px var(--main-background-color);background-size:cover;}button[disabled]#toggle-all-docs:hover{border:solid 1px var(--main-background-color);cursor:not-allowed;}rustdoc-toolbar span.label{font-size:1rem;flex-grow:1;padding-bottom:4px;}#sidebar-button>a::before{content:url('data:image/svg+xml,\
             		\
             		\
            @@ -50,14 +50,14 @@ xmlns="http://www.w3.org/2000/svg" fill="black" height="18px">\
             	enable-background="new 0 0 12 12" xmlns="http://www.w3.org/2000/svg">\
             	');content:"";cursor:pointer;width:16px;height:16px;display:inline-block;vertical-align:middle;opacity:.5;filter:var(--toggle-filter);}details.toggle>summary.hideme>span,.more-examples-toggle summary,.more-examples-toggle .hide-more{color:var(--toggles-color);}details.toggle>summary::after{content:"Expand";overflow:hidden;width:0;height:0;position:absolute;}details.toggle>summary.hideme::after{content:"";}details.toggle>summary:focus::before,details.toggle>summary:hover::before{opacity:1;}details.toggle>summary:focus-visible::before{outline:1px dotted #000;outline-offset:1px;}details.non-exhaustive{margin-bottom:8px;}details.toggle>summary.hideme::before{position:relative;}details.toggle>summary:not(.hideme)::before{position:absolute;left:-24px;top:4px;}.impl-items>details.toggle>summary:not(.hideme)::before,#main-content>.methods>details.toggle>summary:not(.hideme)::before{position:absolute;left:-24px;}.impl-items>*:not(.item-info),.implementors-toggle>.docblock,#main-content>.methods>:not(.item-info){margin-left:var(--impl-items-indent);}details.big-toggle>summary:not(.hideme)::before{left:-34px;top:9px;}details.toggle[open] >summary.hideme{position:absolute;}details.toggle[open] >summary.hideme>span{display:none;}details.toggle[open] >summary::before{background:url('data:image/svg+xml,\
            -	');}details.toggle[open] >summary::after{content:"Collapse";}details.toggle:not([open])>summary .docblock{max-height:calc(1.5em + 0.75em);overflow-y:hidden;}details.toggle:not([open])>summary .docblock>:first-child{max-width:100%;overflow:hidden;width:fit-content;white-space:nowrap;position:relative;padding-right:1em;}details.toggle:not([open])>summary .docblock>:first-child::after{content:"…";position:absolute;right:0;top:0;bottom:0;z-index:1;background-color:var(--main-background-color);font:1rem/1.5 "Source Serif 4",NanumBarunGothic,serif;padding-left:0.2em;}details.toggle:not([open])>summary .docblock>div:first-child::after{padding-top:calc(1.5em + 0.75em - 1.2rem);}details.toggle>summary .docblock{margin-top:0.75em;}.docblock summary>*{display:inline-block;}.docblock>.example-wrap:first-child .tooltip{margin-top:16px;}.src #sidebar-button>a:before,.sidebar-menu-toggle:before{content:url('data:image/svg+xml,');}details.toggle[open] >summary::after{content:"Collapse";}details.toggle:not([open])>summary .docblock{max-height:calc(1.5em + 0.75em);overflow-y:hidden;}details.toggle:not([open])>summary .docblock>:first-child{max-width:100%;overflow:hidden;width:fit-content;white-space:nowrap;position:relative;padding-right:1em;}details.toggle:not([open])>summary .docblock>:first-child::after{content:"…";position:absolute;right:0;top:0;bottom:0;z-index:1;background-color:var(--main-background-color);font:1rem/1.5 "Source Serif 4",NanumBarunGothic,serif;padding-left:0.2em;}details.toggle:not([open])>summary .docblock>div:first-child::after{padding-top:calc(1.5em + 0.75em - 1.2rem);}details.toggle>summary .docblock{margin-top:0.75em;}.docblock summary>*{display:inline-block;}.docblock>.example-wrap:first-child .tooltip{margin-top:16px;}.src #sidebar-button>a::before,.sidebar-menu-toggle::before{content:url('data:image/svg+xml,\
            -		');opacity:0.75;}.sidebar-menu-toggle:hover:before,.sidebar-menu-toggle:active:before,.sidebar-menu-toggle:focus:before{opacity:1;}.src #sidebar-button>a:before{content:url('data:image/svg+xml,');opacity:0.75;}.sidebar-menu-toggle:hover::before,.sidebar-menu-toggle:active::before,.sidebar-menu-toggle:focus::before{opacity:1;}.src #sidebar-button>a::before{content:url('data:image/svg+xml,\
             		\
             		\
            -		');opacity:0.75;}@media (max-width:850px){#search-tabs .count{display:block;}.side-by-side{flex-direction:column-reverse;}.side-by-side>div{width:auto;}}@media (max-width:700px){:root{--impl-items-indent:0.7em;}*[id]{scroll-margin-top:45px;}#copy-path{width:0;visibility:hidden;}rustdoc-toolbar span.label{display:none;}#settings-menu>a,#help-button>a,button#toggle-all-docs{width:33px;}#settings.popover{--popover-arrow-offset:86px;}#help.popover{--popover-arrow-offset:48px;}.rustdoc{display:block;}main{padding-left:15px;padding-top:0px;}.sidebar .logo-container,.sidebar .location,.sidebar-resizer{display:none;}.sidebar{position:fixed;top:45px;left:-1000px;z-index:11;height:calc(100vh - 45px);width:200px;}.src main,.rustdoc.src .sidebar{top:0;padding:0;height:100vh;border:0;}.src .search-form{margin-left:40px;}.src .main-heading{margin-left:8px;}.hide-sidebar .search-form{margin-left:32px;}.hide-sidebar .src .search-form{margin-left:0;}.sidebar.shown,.src-sidebar-expanded .src .sidebar,.rustdoc:not(.src) .sidebar:focus-within{left:0;}.mobile-topbar h2{padding-bottom:0;margin:auto 0.5em auto auto;overflow:hidden;font-size:24px;white-space:nowrap;text-overflow:ellipsis;}.mobile-topbar .logo-container>img{max-width:35px;max-height:35px;margin:5px 0 5px 20px;}.mobile-topbar{display:flex;flex-direction:row;position:sticky;z-index:10;font-size:2rem;height:45px;width:100%;left:0;top:0;}.hide-sidebar .mobile-topbar{display:none;}.sidebar-menu-toggle{width:45px;border:none;line-height:0;}.hide-sidebar .sidebar-menu-toggle{display:none;}.sidebar-elems{margin-top:1em;}.anchor{display:none !important;}#main-content>details.toggle>summary::before,#main-content>div>details.toggle>summary::before{left:-11px;}#sidebar-button>a:before{content:url('data:image/svg+xml,');opacity:0.75;}@media (max-width:850px){#search-tabs .count{display:block;}.side-by-side{flex-direction:column-reverse;}.side-by-side>div{width:auto;}}@media (max-width:700px){:root{--impl-items-indent:0.7em;}*[id]{scroll-margin-top:45px;}#copy-path{width:0;visibility:hidden;}rustdoc-toolbar span.label{display:none;}#settings-menu>a,#help-button>a,button#toggle-all-docs{width:33px;}#settings.popover{--popover-arrow-offset:86px;}#help.popover{--popover-arrow-offset:48px;}.rustdoc{display:block;}main{padding-left:15px;padding-top:0px;}.sidebar .logo-container,.sidebar .location,.sidebar-resizer{display:none;}.sidebar{position:fixed;top:45px;left:-1000px;z-index:11;height:calc(100vh - 45px);width:200px;}.src main,.rustdoc.src .sidebar{top:0;padding:0;height:100vh;border:0;}.src .search-form{margin-left:40px;}.src .main-heading{margin-left:8px;}.hide-sidebar .search-form{margin-left:32px;}.hide-sidebar .src .search-form{margin-left:0;}.sidebar.shown,.src-sidebar-expanded .src .sidebar,.rustdoc:not(.src) .sidebar:focus-within{left:0;}.mobile-topbar h2{padding-bottom:0;margin:auto 0.5em auto auto;overflow:hidden;font-size:24px;white-space:nowrap;text-overflow:ellipsis;}.mobile-topbar .logo-container>img{max-width:35px;max-height:35px;margin:5px 0 5px 20px;}.mobile-topbar{display:flex;flex-direction:row;position:sticky;z-index:10;font-size:2rem;height:45px;width:100%;left:0;top:0;}.hide-sidebar .mobile-topbar{display:none;}.sidebar-menu-toggle{width:45px;border:none;line-height:0;}.hide-sidebar .sidebar-menu-toggle{display:none;}.sidebar-elems{margin-top:1em;}.anchor{display:none !important;}#main-content>details.toggle>summary::before,#main-content>div>details.toggle>summary::before{left:-11px;}#sidebar-button>a::before{content:url('data:image/svg+xml,\
             			\
             			\
            -			');width:22px;height:22px;}.sidebar-menu-toggle:before{filter:var(--mobile-sidebar-menu-filter);}.sidebar-menu-toggle:hover{background:var(--main-background-color);}.search-results>a,.search-results>a>div{display:block;}.search-results>a{padding:5px 0px;}.search-results>a>div.desc,.item-table dd{padding-left:2em;}.search-results .result-name{display:block;}.search-results .result-name .typename{width:initial;margin-right:0;}.search-results .result-name .typename,.search-results .result-name .path{display:inline;}.src-sidebar-expanded .src .sidebar{position:fixed;max-width:100vw;width:100vw;}.src .src-sidebar-title{padding-top:0;}details.implementors-toggle:not(.top-doc)>summary{margin-left:10px;}.impl-items>details.toggle>summary:not(.hideme)::before,#main-content>.methods>details.toggle>summary:not(.hideme)::before{left:-20px;}summary>.item-info{margin-left:10px;}.impl-items>.item-info{margin-left:calc(var(--impl-items-indent) + 10px);}.src nav.sub{margin:0 0 -25px 0;padding:var(--nav-sub-mobile-padding);}}@media (min-width:701px){.scraped-example-title{position:absolute;z-index:10;background:var(--main-background-color);bottom:8px;right:5px;padding:2px 4px;box-shadow:0 0 4px var(--main-background-color);}.item-table:not(.reexports){display:grid;grid-template-columns:33% 67%;}.item-table>dt,.item-table>dd{overflow-wrap:anywhere;}.item-table>dt{grid-column-start:1;}.item-table>dd{grid-column-start:2;}}@media print{:root{--docblock-indent:0;}nav.sidebar,nav.sub,.out-of-band,a.src,#copy-path,details.toggle[open] >summary::before,details.toggle>summary::before,details.toggle.top-doc>summary{display:none;}main{padding:10px;}}@media (max-width:464px){:root{--docblock-indent:12px;}.docblock code{overflow-wrap:break-word;overflow-wrap:anywhere;}nav.sub{flex-direction:column;}.search-form{align-self:stretch;}}.variant,.implementors-toggle>summary,.impl,#implementors-list>.docblock,.impl-items>section,.impl-items>.toggle>summary,.methods>section,.methods>.toggle>summary{margin-bottom:0.75em;}.variants>.docblock,.implementors-toggle>.docblock,.impl-items>.toggle[open]:not(:last-child),.methods>.toggle[open]:not(:last-child),.implementors-toggle[open]:not(:last-child){margin-bottom:2em;}#trait-implementations-list .impl-items>.toggle:not(:last-child),#synthetic-implementations-list .impl-items>.toggle:not(:last-child),#blanket-implementations-list .impl-items>.toggle:not(:last-child){margin-bottom:1em;}.scraped-example-list .scrape-help{margin-left:10px;padding:0 4px;font-weight:normal;font-size:12px;position:relative;bottom:1px;border:1px solid var(--scrape-example-help-border-color);border-radius:50px;color:var(--scrape-example-help-color);}.scraped-example-list .scrape-help:hover{border-color:var(--scrape-example-help-hover-border-color);color:var(--scrape-example-help-hover-color);}.scraped-example:not(.expanded) .example-wrap::before,.scraped-example:not(.expanded) .example-wrap::after{content:" ";width:100%;height:5px;position:absolute;z-index:1;}.scraped-example:not(.expanded) .example-wrap::before{top:0;background:linear-gradient(to bottom,var(--scrape-example-code-wrapper-background-start),var(--scrape-example-code-wrapper-background-end));}.scraped-example:not(.expanded) .example-wrap::after{bottom:0;background:linear-gradient(to top,var(--scrape-example-code-wrapper-background-start),var(--scrape-example-code-wrapper-background-end));}.scraped-example:not(.expanded){width:100%;overflow-y:hidden;margin-bottom:0;}.scraped-example:not(.expanded){overflow-x:hidden;}.scraped-example .rust span.highlight{background:var(--scrape-example-code-line-highlight);}.scraped-example .rust span.highlight.focus{background:var(--scrape-example-code-line-highlight-focus);}.more-examples-toggle{max-width:calc(100% + 25px);margin-top:10px;margin-left:-25px;}.more-examples-toggle .hide-more{margin-left:25px;cursor:pointer;}.more-scraped-examples{margin-left:25px;position:relative;}.toggle-line{position:absolute;top:5px;bottom:0;right:calc(100% + 10px);padding:0 4px;cursor:pointer;}.toggle-line-inner{min-width:2px;height:100%;background:var(--scrape-example-toggle-line-background);}.toggle-line:hover .toggle-line-inner{background:var(--scrape-example-toggle-line-hover-background);}.more-scraped-examples .scraped-example,.example-links{margin-top:20px;}.more-scraped-examples .scraped-example:first-child{margin-top:5px;}.example-links ul{margin-bottom:0;}:root[data-theme="light"],:root:not([data-theme]){--main-background-color:white;--main-color:black;--settings-input-color:#2196f3;--settings-input-border-color:#717171;--settings-button-color:#000;--settings-button-border-focus:#717171;--sidebar-background-color:#f5f5f5;--sidebar-background-color-hover:#e0e0e0;--code-block-background-color:#f5f5f5;--scrollbar-track-background-color:#dcdcdc;--scrollbar-thumb-background-color:rgba(36,37,39,0.6);--scrollbar-color:rgba(36,37,39,0.6) #d9d9d9;--headings-border-bottom-color:#ddd;--border-color:#e0e0e0;--button-background-color:#fff;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:none;--mobile-sidebar-menu-filter:none;--search-input-focused-border-color:#66afe9;--copy-path-button-color:#999;--copy-path-img-filter:invert(50%);--copy-path-img-hover-filter:invert(35%);--code-example-button-color:#7f7f7f;--code-example-button-hover-color:#595959;--settings-menu-filter:invert(50%);--settings-menu-hover-filter:invert(35%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#ad378a;--trait-link-color:#6e4fc9;--assoc-item-link-color:#3873ad;--function-link-color:#ad7c37;--macro-link-color:#068000;--keyword-link-color:#3873ad;--mod-link-color:#3873ad;--link-color:#3873ad;--sidebar-link-color:#356da4;--sidebar-current-link-background-color:#fff;--search-result-link-focus-background-color:#ccc;--search-result-border-color:#aaa3;--search-color:#000;--search-error-code-background-color:#d0cccc;--search-results-alias-color:#000;--search-results-grey-color:#999;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:#e6e6e6;--search-tab-button-not-selected-background:#e6e6e6;--search-tab-button-selected-border-top-color:#0089ff;--search-tab-button-selected-background:#fff;--stab-background-color:#fff5d6;--stab-code-color:#000;--code-highlight-kw-color:#8959a8;--code-highlight-kw-2-color:#4271ae;--code-highlight-lifetime-color:#b76514;--code-highlight-prelude-color:#4271ae;--code-highlight-prelude-val-color:#c82829;--code-highlight-number-color:#718c00;--code-highlight-string-color:#718c00;--code-highlight-literal-color:#c82829;--code-highlight-attribute-color:#c82829;--code-highlight-self-color:#c82829;--code-highlight-macro-color:#3e999f;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#8e908c;--code-highlight-doc-comment-color:#4d4d4c;--src-line-numbers-span-color:#c67e2d;--src-line-number-highlighted-background-color:#fdffd3;--target-background-color:#fdffd3;--target-border-color:#ad7c37;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--rust-logo-filter:initial;--crate-search-div-filter:invert(100%) sepia(0%) saturate(4223%) hue-rotate(289deg) brightness(114%) contrast(76%);--crate-search-div-hover-filter:invert(44%) sepia(18%) saturate(23%) hue-rotate(317deg) brightness(96%) contrast(93%);--crate-search-hover-border:#717171;--src-sidebar-background-selected:#fff;--src-sidebar-background-hover:#e0e0e0;--table-alt-row-background-color:#f5f5f5;--codeblock-link-background:#eee;--scrape-example-toggle-line-background:#ccc;--scrape-example-toggle-line-hover-background:#999;--scrape-example-code-line-highlight:#fcffd6;--scrape-example-code-line-highlight-focus:#f6fdb0;--scrape-example-help-border-color:#555;--scrape-example-help-color:#333;--scrape-example-help-hover-border-color:#000;--scrape-example-help-hover-color:#000;--scrape-example-code-wrapper-background-start:rgba(255,255,255,1);--scrape-example-code-wrapper-background-end:rgba(255,255,255,0);--sidebar-resizer-hover:hsl(207,90%,66%);--sidebar-resizer-active:hsl(207,90%,54%);}:root[data-theme="dark"]{--main-background-color:#353535;--main-color:#ddd;--settings-input-color:#2196f3;--settings-input-border-color:#999;--settings-button-color:#000;--settings-button-border-focus:#ffb900;--sidebar-background-color:#505050;--sidebar-background-color-hover:#676767;--code-block-background-color:#2A2A2A;--scrollbar-track-background-color:#717171;--scrollbar-thumb-background-color:rgba(32,34,37,.6);--scrollbar-color:rgba(32,34,37,.6) #5a5a5a;--headings-border-bottom-color:#d2d2d2;--border-color:#e0e0e0;--button-background-color:#f0f0f0;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:invert(100%);--mobile-sidebar-menu-filter:invert(100%);--search-input-focused-border-color:#008dfd;--copy-path-button-color:#999;--copy-path-img-filter:invert(50%);--copy-path-img-hover-filter:invert(65%);--code-example-button-color:#7f7f7f;--code-example-button-hover-color:#a5a5a5;--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#2dbfb8;--trait-link-color:#b78cf2;--assoc-item-link-color:#d2991d;--function-link-color:#2bab63;--macro-link-color:#09bd00;--keyword-link-color:#d2991d;--mod-link-color:#d2991d;--link-color:#d2991d;--sidebar-link-color:#fdbf35;--sidebar-current-link-background-color:#444;--search-result-link-focus-background-color:#616161;--search-result-border-color:#aaa3;--search-color:#111;--search-error-code-background-color:#484848;--search-results-alias-color:#fff;--search-results-grey-color:#ccc;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:#252525;--search-tab-button-not-selected-background:#252525;--search-tab-button-selected-border-top-color:#0089ff;--search-tab-button-selected-background:#353535;--settings-menu-filter:invert(50%);--settings-menu-hover-filter:invert(65%);--stab-background-color:#314559;--stab-code-color:#e6e1cf;--code-highlight-kw-color:#ab8ac1;--code-highlight-kw-2-color:#769acb;--code-highlight-lifetime-color:#d97f26;--code-highlight-prelude-color:#769acb;--code-highlight-prelude-val-color:#ee6868;--code-highlight-number-color:#83a300;--code-highlight-string-color:#83a300;--code-highlight-literal-color:#ee6868;--code-highlight-attribute-color:#ee6868;--code-highlight-self-color:#ee6868;--code-highlight-macro-color:#3e999f;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#8d8d8b;--code-highlight-doc-comment-color:#8ca375;--src-line-numbers-span-color:#3b91e2;--src-line-number-highlighted-background-color:#0a042f;--target-background-color:#494a3d;--target-border-color:#bb7410;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--rust-logo-filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff);--crate-search-div-filter:invert(94%) sepia(0%) saturate(721%) hue-rotate(255deg) brightness(90%) contrast(90%);--crate-search-div-hover-filter:invert(69%) sepia(60%) saturate(6613%) hue-rotate(184deg) brightness(100%) contrast(91%);--crate-search-hover-border:#2196f3;--src-sidebar-background-selected:#333;--src-sidebar-background-hover:#444;--table-alt-row-background-color:#2a2a2a;--codeblock-link-background:#333;--scrape-example-toggle-line-background:#999;--scrape-example-toggle-line-hover-background:#c5c5c5;--scrape-example-code-line-highlight:#5b3b01;--scrape-example-code-line-highlight-focus:#7c4b0f;--scrape-example-help-border-color:#aaa;--scrape-example-help-color:#eee;--scrape-example-help-hover-border-color:#fff;--scrape-example-help-hover-color:#fff;--scrape-example-code-wrapper-background-start:rgba(53,53,53,1);--scrape-example-code-wrapper-background-end:rgba(53,53,53,0);--sidebar-resizer-hover:hsl(207,30%,54%);--sidebar-resizer-active:hsl(207,90%,54%);}:root[data-theme="ayu"]{--main-background-color:#0f1419;--main-color:#c5c5c5;--settings-input-color:#ffb454;--settings-input-border-color:#999;--settings-button-color:#fff;--settings-button-border-focus:#e0e0e0;--sidebar-background-color:#14191f;--sidebar-background-color-hover:rgba(70,70,70,0.33);--code-block-background-color:#191f26;--scrollbar-track-background-color:transparent;--scrollbar-thumb-background-color:#5c6773;--scrollbar-color:#5c6773 #24292f;--headings-border-bottom-color:#5c6773;--border-color:#5c6773;--button-background-color:#141920;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:invert(100%);--mobile-sidebar-menu-filter:invert(100%);--search-input-focused-border-color:#5c6773;--copy-path-button-color:#fff;--copy-path-img-filter:invert(70%);--copy-path-img-hover-filter:invert(100%);--code-example-button-color:#b2b2b2;--code-example-button-hover-color:#fff;--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#ffa0a5;--trait-link-color:#39afd7;--assoc-item-link-color:#39afd7;--function-link-color:#fdd687;--macro-link-color:#a37acc;--keyword-link-color:#39afd7;--mod-link-color:#39afd7;--link-color:#39afd7;--sidebar-link-color:#53b1db;--sidebar-current-link-background-color:transparent;--search-result-link-focus-background-color:#3c3c3c;--search-result-border-color:#aaa3;--search-color:#fff;--search-error-code-background-color:#4f4c4c;--search-results-alias-color:#c5c5c5;--search-results-grey-color:#999;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:none;--search-tab-button-not-selected-background:transparent !important;--search-tab-button-selected-border-top-color:none;--search-tab-button-selected-background:#141920 !important;--settings-menu-filter:invert(70%);--settings-menu-hover-filter:invert(100%);--stab-background-color:#314559;--stab-code-color:#e6e1cf;--code-highlight-kw-color:#ff7733;--code-highlight-kw-2-color:#ff7733;--code-highlight-lifetime-color:#ff7733;--code-highlight-prelude-color:#69f2df;--code-highlight-prelude-val-color:#ff7733;--code-highlight-number-color:#b8cc52;--code-highlight-string-color:#b8cc52;--code-highlight-literal-color:#ff7733;--code-highlight-attribute-color:#e6e1cf;--code-highlight-self-color:#36a3d9;--code-highlight-macro-color:#a37acc;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#788797;--code-highlight-doc-comment-color:#a1ac88;--src-line-numbers-span-color:#5c6773;--src-line-number-highlighted-background-color:rgba(255,236,164,0.06);--target-background-color:rgba(255,236,164,0.06);--target-border-color:rgba(255,180,76,0.85);--kbd-color:#c5c5c5;--kbd-background:#314559;--kbd-box-shadow-color:#5c6773;--rust-logo-filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff);--crate-search-div-filter:invert(41%) sepia(12%) saturate(487%) hue-rotate(171deg) brightness(94%) contrast(94%);--crate-search-div-hover-filter:invert(98%) sepia(12%) saturate(81%) hue-rotate(343deg) brightness(113%) contrast(76%);--crate-search-hover-border:#e0e0e0;--src-sidebar-background-selected:#14191f;--src-sidebar-background-hover:#14191f;--table-alt-row-background-color:#191f26;--codeblock-link-background:#333;--scrape-example-toggle-line-background:#999;--scrape-example-toggle-line-hover-background:#c5c5c5;--scrape-example-code-line-highlight:#5b3b01;--scrape-example-code-line-highlight-focus:#7c4b0f;--scrape-example-help-border-color:#aaa;--scrape-example-help-color:#eee;--scrape-example-help-hover-border-color:#fff;--scrape-example-help-hover-color:#fff;--scrape-example-code-wrapper-background-start:rgba(15,20,25,1);--scrape-example-code-wrapper-background-end:rgba(15,20,25,0);--sidebar-resizer-hover:hsl(34,50%,33%);--sidebar-resizer-active:hsl(34,100%,66%);}:root[data-theme="ayu"] h1,:root[data-theme="ayu"] h2,:root[data-theme="ayu"] h3,:root[data-theme="ayu"] h4,:where(:root[data-theme="ayu"]) h1 a,:root[data-theme="ayu"] .sidebar h2 a,:root[data-theme="ayu"] .sidebar h3 a{color:#fff;}:root[data-theme="ayu"] .docblock code{color:#ffb454;}:root[data-theme="ayu"] .docblock a>code{color:#39AFD7 !important;}:root[data-theme="ayu"] .code-header,:root[data-theme="ayu"] .docblock pre>code,:root[data-theme="ayu"] pre,:root[data-theme="ayu"] pre>code,:root[data-theme="ayu"] .item-info code,:root[data-theme="ayu"] .rustdoc.source .example-wrap{color:#e6e1cf;}:root[data-theme="ayu"] .sidebar .current,:root[data-theme="ayu"] .sidebar .current a,:root[data-theme="ayu"] .sidebar a:hover,:root[data-theme="ayu"] #src-sidebar div.files>a:hover,:root[data-theme="ayu"] details.dir-entry summary:hover,:root[data-theme="ayu"] #src-sidebar div.files>a:focus,:root[data-theme="ayu"] details.dir-entry summary:focus,:root[data-theme="ayu"] #src-sidebar div.files>a.selected{color:#ffb44c;}:root[data-theme="ayu"] .sidebar-elems .location{color:#ff7733;}:root[data-theme="ayu"] a[data-nosnippet].line-highlighted{color:#708090;padding-right:7px;border-right:1px solid #ffb44c;}:root[data-theme="ayu"] .search-results a:hover,:root[data-theme="ayu"] .search-results a:focus{color:#fff !important;background-color:#3c3c3c;}:root[data-theme="ayu"] .search-results a{color:#0096cf;}:root[data-theme="ayu"] .search-results a div.desc{color:#c5c5c5;}:root[data-theme="ayu"] .result-name .primitive>i,:root[data-theme="ayu"] .result-name .keyword>i{color:#788797;}:root[data-theme="ayu"] #search-tabs>button.selected{border-bottom:1px solid #ffb44c !important;border-top:none;}:root[data-theme="ayu"] #search-tabs>button:not(.selected){border:none;background-color:transparent !important;}:root[data-theme="ayu"] #search-tabs>button:hover{border-bottom:1px solid rgba(242,151,24,0.3);}:root[data-theme="ayu"] #settings-menu>a img,:root[data-theme="ayu"] #sidebar-button>a:before{filter:invert(100);}
            \ No newline at end of file
            +			');width:22px;height:22px;}.sidebar-menu-toggle::before{filter:var(--mobile-sidebar-menu-filter);}.sidebar-menu-toggle:hover{background:var(--main-background-color);}.search-results>a,.search-results>a>div{display:block;}.search-results>a{padding:5px 0px;}.search-results>a>div.desc,.item-table dd{padding-left:2em;}.search-results .result-name{display:block;}.search-results .result-name .typename{width:initial;margin-right:0;}.search-results .result-name .typename,.search-results .result-name .path{display:inline;}.src-sidebar-expanded .src .sidebar{position:fixed;max-width:100vw;width:100vw;}.src .src-sidebar-title{padding-top:0;}details.implementors-toggle:not(.top-doc)>summary{margin-left:10px;}.impl-items>details.toggle>summary:not(.hideme)::before,#main-content>.methods>details.toggle>summary:not(.hideme)::before{left:-20px;}summary>.item-info{margin-left:10px;}.impl-items>.item-info{margin-left:calc(var(--impl-items-indent) + 10px);}.src nav.sub{margin:0 0 -25px 0;padding:var(--nav-sub-mobile-padding);}}@media (min-width:701px){.scraped-example-title{position:absolute;z-index:10;background:var(--main-background-color);bottom:8px;right:5px;padding:2px 4px;box-shadow:0 0 4px var(--main-background-color);}.item-table:not(.reexports){display:grid;grid-template-columns:33% 67%;}.item-table>dt,.item-table>dd{overflow-wrap:anywhere;}.item-table>dt{grid-column-start:1;}.item-table>dd{grid-column-start:2;}}@media print{:root{--docblock-indent:0;}nav.sidebar,nav.sub,.out-of-band,a.src,#copy-path,details.toggle[open] >summary::before,details.toggle>summary::before,details.toggle.top-doc>summary{display:none;}main{padding:10px;}}@media (max-width:464px){:root{--docblock-indent:12px;}.docblock code{overflow-wrap:break-word;overflow-wrap:anywhere;}nav.sub{flex-direction:column;}.search-form{align-self:stretch;}}.variant,.implementors-toggle>summary,.impl,#implementors-list>.docblock,.impl-items>section,.impl-items>.toggle>summary,.methods>section,.methods>.toggle>summary{margin-bottom:0.75em;}.variants>.docblock,.implementors-toggle>.docblock,.impl-items>.toggle[open]:not(:last-child),.methods>.toggle[open]:not(:last-child),.implementors-toggle[open]:not(:last-child){margin-bottom:2em;}#trait-implementations-list .impl-items>.toggle:not(:last-child),#synthetic-implementations-list .impl-items>.toggle:not(:last-child),#blanket-implementations-list .impl-items>.toggle:not(:last-child){margin-bottom:1em;}.scraped-example-list .scrape-help{margin-left:10px;padding:0 4px;font-weight:normal;font-size:12px;position:relative;bottom:1px;border:1px solid var(--scrape-example-help-border-color);border-radius:50px;color:var(--scrape-example-help-color);}.scraped-example-list .scrape-help:hover{border-color:var(--scrape-example-help-hover-border-color);color:var(--scrape-example-help-hover-color);}.scraped-example:not(.expanded) .example-wrap::before,.scraped-example:not(.expanded) .example-wrap::after{content:" ";width:100%;height:5px;position:absolute;z-index:1;}.scraped-example:not(.expanded) .example-wrap::before{top:0;background:linear-gradient(to bottom,var(--scrape-example-code-wrapper-background-start),var(--scrape-example-code-wrapper-background-end));}.scraped-example:not(.expanded) .example-wrap::after{bottom:0;background:linear-gradient(to top,var(--scrape-example-code-wrapper-background-start),var(--scrape-example-code-wrapper-background-end));}.scraped-example:not(.expanded){width:100%;overflow-y:hidden;margin-bottom:0;}.scraped-example:not(.expanded){overflow-x:hidden;}.scraped-example .rust span.highlight{background:var(--scrape-example-code-line-highlight);}.scraped-example .rust span.highlight.focus{background:var(--scrape-example-code-line-highlight-focus);}.more-examples-toggle{max-width:calc(100% + 25px);margin-top:10px;margin-left:-25px;}.more-examples-toggle .hide-more{margin-left:25px;cursor:pointer;}.more-scraped-examples{margin-left:25px;position:relative;}.toggle-line{position:absolute;top:5px;bottom:0;right:calc(100% + 10px);padding:0 4px;cursor:pointer;}.toggle-line-inner{min-width:2px;height:100%;background:var(--scrape-example-toggle-line-background);}.toggle-line:hover .toggle-line-inner{background:var(--scrape-example-toggle-line-hover-background);}.more-scraped-examples .scraped-example,.example-links{margin-top:20px;}.more-scraped-examples .scraped-example:first-child{margin-top:5px;}.example-links ul{margin-bottom:0;}:root[data-theme="light"],:root:not([data-theme]){--main-background-color:white;--main-color:black;--settings-input-color:#2196f3;--settings-input-border-color:#717171;--settings-button-color:#000;--settings-button-border-focus:#717171;--sidebar-background-color:#f5f5f5;--sidebar-background-color-hover:#e0e0e0;--code-block-background-color:#f5f5f5;--scrollbar-track-background-color:#dcdcdc;--scrollbar-thumb-background-color:rgba(36,37,39,0.6);--scrollbar-color:rgba(36,37,39,0.6) #d9d9d9;--headings-border-bottom-color:#ddd;--border-color:#e0e0e0;--button-background-color:#fff;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:none;--mobile-sidebar-menu-filter:none;--search-input-focused-border-color:#66afe9;--copy-path-button-color:#999;--copy-path-img-filter:invert(50%);--copy-path-img-hover-filter:invert(35%);--code-example-button-color:#7f7f7f;--code-example-button-hover-color:#595959;--settings-menu-filter:invert(50%);--settings-menu-hover-filter:invert(35%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#ad378a;--trait-link-color:#6e4fc9;--assoc-item-link-color:#3873ad;--function-link-color:#ad7c37;--macro-link-color:#068000;--keyword-link-color:#3873ad;--mod-link-color:#3873ad;--link-color:#3873ad;--sidebar-link-color:#356da4;--sidebar-current-link-background-color:#fff;--search-result-link-focus-background-color:#ccc;--search-result-border-color:#aaa3;--search-color:#000;--search-error-code-background-color:#d0cccc;--search-results-alias-color:#000;--search-results-grey-color:#999;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:#e6e6e6;--search-tab-button-not-selected-background:#e6e6e6;--search-tab-button-selected-border-top-color:#0089ff;--search-tab-button-selected-background:#fff;--stab-background-color:#fff5d6;--stab-code-color:#000;--code-highlight-kw-color:#8959a8;--code-highlight-kw-2-color:#4271ae;--code-highlight-lifetime-color:#b76514;--code-highlight-prelude-color:#4271ae;--code-highlight-prelude-val-color:#c82829;--code-highlight-number-color:#718c00;--code-highlight-string-color:#718c00;--code-highlight-literal-color:#c82829;--code-highlight-attribute-color:#c82829;--code-highlight-self-color:#c82829;--code-highlight-macro-color:#3e999f;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#8e908c;--code-highlight-doc-comment-color:#4d4d4c;--src-line-numbers-span-color:#c67e2d;--src-line-number-highlighted-background-color:#fdffd3;--target-background-color:#fdffd3;--target-border-color:#ad7c37;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--rust-logo-filter:initial;--crate-search-div-filter:invert(100%) sepia(0%) saturate(4223%) hue-rotate(289deg) brightness(114%) contrast(76%);--crate-search-div-hover-filter:invert(44%) sepia(18%) saturate(23%) hue-rotate(317deg) brightness(96%) contrast(93%);--crate-search-hover-border:#717171;--src-sidebar-background-selected:#fff;--src-sidebar-background-hover:#e0e0e0;--table-alt-row-background-color:#f5f5f5;--codeblock-link-background:#eee;--scrape-example-toggle-line-background:#ccc;--scrape-example-toggle-line-hover-background:#999;--scrape-example-code-line-highlight:#fcffd6;--scrape-example-code-line-highlight-focus:#f6fdb0;--scrape-example-help-border-color:#555;--scrape-example-help-color:#333;--scrape-example-help-hover-border-color:#000;--scrape-example-help-hover-color:#000;--scrape-example-code-wrapper-background-start:rgba(255,255,255,1);--scrape-example-code-wrapper-background-end:rgba(255,255,255,0);--sidebar-resizer-hover:hsl(207,90%,66%);--sidebar-resizer-active:hsl(207,90%,54%);}:root[data-theme="dark"]{--main-background-color:#353535;--main-color:#ddd;--settings-input-color:#2196f3;--settings-input-border-color:#999;--settings-button-color:#000;--settings-button-border-focus:#ffb900;--sidebar-background-color:#505050;--sidebar-background-color-hover:#676767;--code-block-background-color:#2A2A2A;--scrollbar-track-background-color:#717171;--scrollbar-thumb-background-color:rgba(32,34,37,.6);--scrollbar-color:rgba(32,34,37,.6) #5a5a5a;--headings-border-bottom-color:#d2d2d2;--border-color:#e0e0e0;--button-background-color:#f0f0f0;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:invert(100%);--mobile-sidebar-menu-filter:invert(100%);--search-input-focused-border-color:#008dfd;--copy-path-button-color:#999;--copy-path-img-filter:invert(50%);--copy-path-img-hover-filter:invert(65%);--code-example-button-color:#7f7f7f;--code-example-button-hover-color:#a5a5a5;--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#2dbfb8;--trait-link-color:#b78cf2;--assoc-item-link-color:#d2991d;--function-link-color:#2bab63;--macro-link-color:#09bd00;--keyword-link-color:#d2991d;--mod-link-color:#d2991d;--link-color:#d2991d;--sidebar-link-color:#fdbf35;--sidebar-current-link-background-color:#444;--search-result-link-focus-background-color:#616161;--search-result-border-color:#aaa3;--search-color:#111;--search-error-code-background-color:#484848;--search-results-alias-color:#fff;--search-results-grey-color:#ccc;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:#252525;--search-tab-button-not-selected-background:#252525;--search-tab-button-selected-border-top-color:#0089ff;--search-tab-button-selected-background:#353535;--settings-menu-filter:invert(50%);--settings-menu-hover-filter:invert(65%);--stab-background-color:#314559;--stab-code-color:#e6e1cf;--code-highlight-kw-color:#ab8ac1;--code-highlight-kw-2-color:#769acb;--code-highlight-lifetime-color:#d97f26;--code-highlight-prelude-color:#769acb;--code-highlight-prelude-val-color:#ee6868;--code-highlight-number-color:#83a300;--code-highlight-string-color:#83a300;--code-highlight-literal-color:#ee6868;--code-highlight-attribute-color:#ee6868;--code-highlight-self-color:#ee6868;--code-highlight-macro-color:#3e999f;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#8d8d8b;--code-highlight-doc-comment-color:#8ca375;--src-line-numbers-span-color:#3b91e2;--src-line-number-highlighted-background-color:#0a042f;--target-background-color:#494a3d;--target-border-color:#bb7410;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--rust-logo-filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff);--crate-search-div-filter:invert(94%) sepia(0%) saturate(721%) hue-rotate(255deg) brightness(90%) contrast(90%);--crate-search-div-hover-filter:invert(69%) sepia(60%) saturate(6613%) hue-rotate(184deg) brightness(100%) contrast(91%);--crate-search-hover-border:#2196f3;--src-sidebar-background-selected:#333;--src-sidebar-background-hover:#444;--table-alt-row-background-color:#2a2a2a;--codeblock-link-background:#333;--scrape-example-toggle-line-background:#999;--scrape-example-toggle-line-hover-background:#c5c5c5;--scrape-example-code-line-highlight:#5b3b01;--scrape-example-code-line-highlight-focus:#7c4b0f;--scrape-example-help-border-color:#aaa;--scrape-example-help-color:#eee;--scrape-example-help-hover-border-color:#fff;--scrape-example-help-hover-color:#fff;--scrape-example-code-wrapper-background-start:rgba(53,53,53,1);--scrape-example-code-wrapper-background-end:rgba(53,53,53,0);--sidebar-resizer-hover:hsl(207,30%,54%);--sidebar-resizer-active:hsl(207,90%,54%);}:root[data-theme="ayu"]{--main-background-color:#0f1419;--main-color:#c5c5c5;--settings-input-color:#ffb454;--settings-input-border-color:#999;--settings-button-color:#fff;--settings-button-border-focus:#e0e0e0;--sidebar-background-color:#14191f;--sidebar-background-color-hover:rgba(70,70,70,0.33);--code-block-background-color:#191f26;--scrollbar-track-background-color:transparent;--scrollbar-thumb-background-color:#5c6773;--scrollbar-color:#5c6773 #24292f;--headings-border-bottom-color:#5c6773;--border-color:#5c6773;--button-background-color:#141920;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:invert(100%);--mobile-sidebar-menu-filter:invert(100%);--search-input-focused-border-color:#5c6773;--copy-path-button-color:#fff;--copy-path-img-filter:invert(70%);--copy-path-img-hover-filter:invert(100%);--code-example-button-color:#b2b2b2;--code-example-button-hover-color:#fff;--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#ffa0a5;--trait-link-color:#39afd7;--assoc-item-link-color:#39afd7;--function-link-color:#fdd687;--macro-link-color:#a37acc;--keyword-link-color:#39afd7;--mod-link-color:#39afd7;--link-color:#39afd7;--sidebar-link-color:#53b1db;--sidebar-current-link-background-color:transparent;--search-result-link-focus-background-color:#3c3c3c;--search-result-border-color:#aaa3;--search-color:#fff;--search-error-code-background-color:#4f4c4c;--search-results-alias-color:#c5c5c5;--search-results-grey-color:#999;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:none;--search-tab-button-not-selected-background:transparent !important;--search-tab-button-selected-border-top-color:none;--search-tab-button-selected-background:#141920 !important;--settings-menu-filter:invert(70%);--settings-menu-hover-filter:invert(100%);--stab-background-color:#314559;--stab-code-color:#e6e1cf;--code-highlight-kw-color:#ff7733;--code-highlight-kw-2-color:#ff7733;--code-highlight-lifetime-color:#ff7733;--code-highlight-prelude-color:#69f2df;--code-highlight-prelude-val-color:#ff7733;--code-highlight-number-color:#b8cc52;--code-highlight-string-color:#b8cc52;--code-highlight-literal-color:#ff7733;--code-highlight-attribute-color:#e6e1cf;--code-highlight-self-color:#36a3d9;--code-highlight-macro-color:#a37acc;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#788797;--code-highlight-doc-comment-color:#a1ac88;--src-line-numbers-span-color:#5c6773;--src-line-number-highlighted-background-color:rgba(255,236,164,0.06);--target-background-color:rgba(255,236,164,0.06);--target-border-color:rgba(255,180,76,0.85);--kbd-color:#c5c5c5;--kbd-background:#314559;--kbd-box-shadow-color:#5c6773;--rust-logo-filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff);--crate-search-div-filter:invert(41%) sepia(12%) saturate(487%) hue-rotate(171deg) brightness(94%) contrast(94%);--crate-search-div-hover-filter:invert(98%) sepia(12%) saturate(81%) hue-rotate(343deg) brightness(113%) contrast(76%);--crate-search-hover-border:#e0e0e0;--src-sidebar-background-selected:#14191f;--src-sidebar-background-hover:#14191f;--table-alt-row-background-color:#191f26;--codeblock-link-background:#333;--scrape-example-toggle-line-background:#999;--scrape-example-toggle-line-hover-background:#c5c5c5;--scrape-example-code-line-highlight:#5b3b01;--scrape-example-code-line-highlight-focus:#7c4b0f;--scrape-example-help-border-color:#aaa;--scrape-example-help-color:#eee;--scrape-example-help-hover-border-color:#fff;--scrape-example-help-hover-color:#fff;--scrape-example-code-wrapper-background-start:rgba(15,20,25,1);--scrape-example-code-wrapper-background-end:rgba(15,20,25,0);--sidebar-resizer-hover:hsl(34,50%,33%);--sidebar-resizer-active:hsl(34,100%,66%);}:root[data-theme="ayu"] h1,:root[data-theme="ayu"] h2,:root[data-theme="ayu"] h3,:root[data-theme="ayu"] h4,:where(:root[data-theme="ayu"]) h1 a,:root[data-theme="ayu"] .sidebar h2 a,:root[data-theme="ayu"] .sidebar h3 a{color:#fff;}:root[data-theme="ayu"] .docblock code{color:#ffb454;}:root[data-theme="ayu"] .docblock a>code{color:#39AFD7 !important;}:root[data-theme="ayu"] .code-header,:root[data-theme="ayu"] .docblock pre>code,:root[data-theme="ayu"] pre,:root[data-theme="ayu"] pre>code,:root[data-theme="ayu"] .item-info code,:root[data-theme="ayu"] .rustdoc.source .example-wrap{color:#e6e1cf;}:root[data-theme="ayu"] .sidebar .current,:root[data-theme="ayu"] .sidebar .current a,:root[data-theme="ayu"] .sidebar a:hover,:root[data-theme="ayu"] #src-sidebar div.files>a:hover,:root[data-theme="ayu"] details.dir-entry summary:hover,:root[data-theme="ayu"] #src-sidebar div.files>a:focus,:root[data-theme="ayu"] details.dir-entry summary:focus,:root[data-theme="ayu"] #src-sidebar div.files>a.selected{color:#ffb44c;}:root[data-theme="ayu"] .sidebar-elems .location{color:#ff7733;}:root[data-theme="ayu"] a[data-nosnippet].line-highlighted{color:#708090;padding-right:7px;border-right:1px solid #ffb44c;}:root[data-theme="ayu"] .search-results a:hover,:root[data-theme="ayu"] .search-results a:focus{color:#fff !important;background-color:#3c3c3c;}:root[data-theme="ayu"] .search-results a{color:#0096cf;}:root[data-theme="ayu"] .search-results a div.desc{color:#c5c5c5;}:root[data-theme="ayu"] .result-name .primitive>i,:root[data-theme="ayu"] .result-name .keyword>i{color:#788797;}:root[data-theme="ayu"] #search-tabs>button.selected{border-bottom:1px solid #ffb44c !important;border-top:none;}:root[data-theme="ayu"] #search-tabs>button:not(.selected){border:none;background-color:transparent !important;}:root[data-theme="ayu"] #search-tabs>button:hover{border-bottom:1px solid rgba(242,151,24,0.3);}:root[data-theme="ayu"] #settings-menu>a img,:root[data-theme="ayu"] #sidebar-button>a::before{filter:invert(100);}
            \ No newline at end of file
            diff --git a/rustdoc/latest/type.impl/zcash_primitives/transaction/components/transparent/struct.OutPoint.js b/rustdoc/latest/type.impl/zcash_primitives/transaction/components/transparent/struct.OutPoint.js
            index 7a45084dd..a6bdbb96e 100644
            --- a/rustdoc/latest/type.impl/zcash_primitives/transaction/components/transparent/struct.OutPoint.js
            +++ b/rustdoc/latest/type.impl/zcash_primitives/transaction/components/transparent/struct.OutPoint.js
            @@ -1,9 +1,9 @@
             (function() {
            -    var type_impls = Object.fromEntries([["zcash_primitives",[["
            §

            impl Clone for OutPoint

            §

            fn clone(&self) -> OutPoint

            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
            ","Clone","zcash_primitives::transaction::components::OutPoint"],["
            §

            impl Debug for OutPoint

            §

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

            Formats the value using the given formatter. Read more
            ","Debug","zcash_primitives::transaction::components::OutPoint"],["
            §

            impl Ord for OutPoint

            §

            fn cmp(&self, other: &OutPoint) -> Ordering

            This method returns an Ordering between self and other. Read more
            1.21.0 · Source§

            fn max(self, other: Self) -> Self
            where\n Self: Sized,

            Compares and returns the maximum of two values. Read more
            1.21.0 · Source§

            fn min(self, other: Self) -> Self
            where\n Self: Sized,

            Compares and returns the minimum of two values. Read more
            1.50.0 · Source§

            fn clamp(self, min: Self, max: Self) -> Self
            where\n Self: Sized,

            Restrict a value to a certain interval. Read more
            ","Ord","zcash_primitives::transaction::components::OutPoint"],["
            §

            impl OutPoint

            pub fn new(hash: [u8; 32], n: u32) -> OutPoint

            Constructs an OutPoint for the output at index n in the transaction\nwith txid hash.

            \n

            pub const fn fake() -> OutPoint

            Constructs a fake OutPoint for use in tests.

            \n

            pub fn read<R>(reader: R) -> Result<OutPoint, Error>
            where\n R: Read,

            pub fn write<W>(&self, writer: W) -> Result<(), Error>
            where\n W: Write,

            pub fn n(&self) -> u32

            Returns the output index of this OutPoint.

            \n

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

            Returns the byte representation of the txid of the transaction containing this OutPoint.

            \n

            pub fn txid(&self) -> &TxId

            Returns the txid of the transaction containing this OutPoint.

            \n
            ",0,"zcash_primitives::transaction::components::OutPoint"],["
            §

            impl PartialEq for OutPoint

            §

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

            Tests for self and other values to be equal, and is used by ==.
            1.0.0 · Source§

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

            Tests for !=. The default implementation is almost always sufficient,\nand should not be overridden without very good reason.
            ","PartialEq","zcash_primitives::transaction::components::OutPoint"],["
            §

            impl PartialOrd for OutPoint

            §

            fn partial_cmp(&self, other: &OutPoint) -> Option<Ordering>

            This method returns an ordering between self and other values if one exists. Read more
            1.0.0 · Source§

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

            Tests less than (for self and other) and is used by the < operator. Read more
            1.0.0 · Source§

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

            Tests less than or equal to (for self and other) and is used by the\n<= operator. Read more
            1.0.0 · Source§

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

            Tests greater than (for self and other) and is used by the >\noperator. Read more
            1.0.0 · Source§

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

            Tests greater than or equal to (for self and other) and is used by\nthe >= operator. Read more
            ","PartialOrd","zcash_primitives::transaction::components::OutPoint"],["
            §

            impl Eq for OutPoint

            ","Eq","zcash_primitives::transaction::components::OutPoint"],["
            §

            impl StructuralPartialEq for OutPoint

            ","StructuralPartialEq","zcash_primitives::transaction::components::OutPoint"]]]]); + var type_impls = Object.fromEntries([["zcash_primitives",[["
            Source§

            impl Clone for OutPoint

            Source§

            fn clone(&self) -> OutPoint

            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
            ","Clone","zcash_primitives::transaction::components::OutPoint"],["
            Source§

            impl Debug for OutPoint

            Source§

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

            Formats the value using the given formatter. Read more
            ","Debug","zcash_primitives::transaction::components::OutPoint"],["
            Source§

            impl Ord for OutPoint

            Source§

            fn cmp(&self, other: &OutPoint) -> Ordering

            This method returns an Ordering between self and other. Read more
            1.21.0 · Source§

            fn max(self, other: Self) -> Self
            where\n Self: Sized,

            Compares and returns the maximum of two values. Read more
            1.21.0 · Source§

            fn min(self, other: Self) -> Self
            where\n Self: Sized,

            Compares and returns the minimum of two values. Read more
            1.50.0 · Source§

            fn clamp(self, min: Self, max: Self) -> Self
            where\n Self: Sized,

            Restrict a value to a certain interval. Read more
            ","Ord","zcash_primitives::transaction::components::OutPoint"],["
            Source§

            impl OutPoint

            Source

            pub fn new(hash: [u8; 32], n: u32) -> OutPoint

            Constructs an OutPoint for the output at index n in the transaction\nwith txid hash.

            \n
            Source

            pub const fn fake() -> OutPoint

            Constructs a fake OutPoint for use in tests.

            \n
            Source

            pub fn read<R>(reader: R) -> Result<OutPoint, Error>
            where\n R: Read,

            Source

            pub fn write<W>(&self, writer: W) -> Result<(), Error>
            where\n W: Write,

            Source

            pub fn n(&self) -> u32

            Returns the output index of this OutPoint.

            \n
            Source

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

            Returns the byte representation of the txid of the transaction containing this OutPoint.

            \n
            Source

            pub fn txid(&self) -> &TxId

            Returns the txid of the transaction containing this OutPoint.

            \n
            ",0,"zcash_primitives::transaction::components::OutPoint"],["
            Source§

            impl PartialEq for OutPoint

            Source§

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

            Tests for self and other values to be equal, and is used by ==.
            1.0.0 · Source§

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

            Tests for !=. The default implementation is almost always sufficient,\nand should not be overridden without very good reason.
            ","PartialEq","zcash_primitives::transaction::components::OutPoint"],["
            Source§

            impl PartialOrd for OutPoint

            Source§

            fn partial_cmp(&self, other: &OutPoint) -> Option<Ordering>

            This method returns an ordering between self and other values if one exists. Read more
            1.0.0 · Source§

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

            Tests less than (for self and other) and is used by the < operator. Read more
            1.0.0 · Source§

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

            Tests less than or equal to (for self and other) and is used by the\n<= operator. Read more
            1.0.0 · Source§

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

            Tests greater than (for self and other) and is used by the >\noperator. Read more
            1.0.0 · Source§

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

            Tests greater than or equal to (for self and other) and is used by\nthe >= operator. Read more
            ","PartialOrd","zcash_primitives::transaction::components::OutPoint"],["
            Source§

            impl Eq for OutPoint

            ","Eq","zcash_primitives::transaction::components::OutPoint"],["
            Source§

            impl StructuralPartialEq for OutPoint

            ","StructuralPartialEq","zcash_primitives::transaction::components::OutPoint"]]]]); if (window.register_type_impls) { window.register_type_impls(type_impls); } else { window.pending_type_impls = type_impls; } })() -//{"start":55,"fragment_lengths":[23255]} \ No newline at end of file +//{"start":55,"fragment_lengths":[24995]} \ No newline at end of file diff --git a/rustdoc/latest/type.impl/zcash_primitives/transaction/components/transparent/struct.TxIn.js b/rustdoc/latest/type.impl/zcash_primitives/transaction/components/transparent/struct.TxIn.js index 8bf687ada..a53160296 100644 --- a/rustdoc/latest/type.impl/zcash_primitives/transaction/components/transparent/struct.TxIn.js +++ b/rustdoc/latest/type.impl/zcash_primitives/transaction/components/transparent/struct.TxIn.js @@ -1,9 +1,9 @@ (function() { - var type_impls = Object.fromEntries([["zcash_primitives",[["
            §

            impl<A> Clone for TxIn<A>
            where\n A: Clone + Authorization,\n <A as Authorization>::ScriptSig: Clone,

            §

            fn clone(&self) -> TxIn<A>

            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
            ","Clone","zcash_primitives::transaction::components::TxIn"],["
            §

            impl<A> Debug for TxIn<A>
            where\n A: Debug + Authorization,\n <A as Authorization>::ScriptSig: Debug,

            §

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

            Formats the value using the given formatter. Read more
            ","Debug","zcash_primitives::transaction::components::TxIn"],["
            §

            impl<A> PartialEq for TxIn<A>

            §

            fn eq(&self, other: &TxIn<A>) -> bool

            Tests for self and other values to be equal, and is used by ==.
            1.0.0 · Source§

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

            Tests for !=. The default implementation is almost always sufficient,\nand should not be overridden without very good reason.
            ","PartialEq","zcash_primitives::transaction::components::TxIn"],["
            §

            impl TxIn<Authorized>

            pub fn read<R>(reader: &mut R) -> Result<TxIn<Authorized>, Error>
            where\n R: Read,

            pub fn write<W>(&self, writer: W) -> Result<(), Error>
            where\n W: Write,

            ",0,"zcash_primitives::transaction::components::TxIn"],["
            §

            impl TxIn<Unauthorized>

            pub fn new(prevout: OutPoint) -> TxIn<Unauthorized>

            ",0,"zcash_primitives::transaction::components::TxIn"],["
            §

            impl<A> StructuralPartialEq for TxIn<A>
            where\n A: Authorization,

            ","StructuralPartialEq","zcash_primitives::transaction::components::TxIn"]]]]); + var type_impls = Object.fromEntries([["zcash_primitives",[["
            Source§

            impl<A> Clone for TxIn<A>
            where\n A: Clone + Authorization,\n <A as Authorization>::ScriptSig: Clone,

            Source§

            fn clone(&self) -> TxIn<A>

            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
            ","Clone","zcash_primitives::transaction::components::TxIn"],["
            Source§

            impl<A> Debug for TxIn<A>
            where\n A: Debug + Authorization,\n <A as Authorization>::ScriptSig: Debug,

            Source§

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

            Formats the value using the given formatter. Read more
            ","Debug","zcash_primitives::transaction::components::TxIn"],["
            Source§

            impl<A> PartialEq for TxIn<A>

            Source§

            fn eq(&self, other: &TxIn<A>) -> bool

            Tests for self and other values to be equal, and is used by ==.
            1.0.0 · Source§

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

            Tests for !=. The default implementation is almost always sufficient,\nand should not be overridden without very good reason.
            ","PartialEq","zcash_primitives::transaction::components::TxIn"],["
            Source§

            impl TxIn<Authorized>

            Source

            pub fn read<R>(reader: &mut R) -> Result<TxIn<Authorized>, Error>
            where\n R: Read,

            Source

            pub fn write<W>(&self, writer: W) -> Result<(), Error>
            where\n W: Write,

            ",0,"zcash_primitives::transaction::components::TxIn"],["
            Source§

            impl TxIn<Unauthorized>

            Source

            pub fn new(prevout: OutPoint) -> TxIn<Unauthorized>

            ",0,"zcash_primitives::transaction::components::TxIn"],["
            Source§

            impl<A> StructuralPartialEq for TxIn<A>
            where\n A: Authorization,

            ","StructuralPartialEq","zcash_primitives::transaction::components::TxIn"]]]]); if (window.register_type_impls) { window.register_type_impls(type_impls); } else { window.pending_type_impls = type_impls; } })() -//{"start":55,"fragment_lengths":[14569]} \ No newline at end of file +//{"start":55,"fragment_lengths":[15615]} \ No newline at end of file diff --git a/rustdoc/latest/type.impl/zcash_primitives/transaction/components/transparent/struct.TxOut.js b/rustdoc/latest/type.impl/zcash_primitives/transaction/components/transparent/struct.TxOut.js index 710d9c540..df97c606e 100644 --- a/rustdoc/latest/type.impl/zcash_primitives/transaction/components/transparent/struct.TxOut.js +++ b/rustdoc/latest/type.impl/zcash_primitives/transaction/components/transparent/struct.TxOut.js @@ -1,9 +1,9 @@ (function() { - var type_impls = Object.fromEntries([["zcash_primitives",[["
            §

            impl Clone for TxOut

            §

            fn clone(&self) -> TxOut

            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
            ","Clone","zcash_primitives::transaction::components::TxOut"],["
            §

            impl Debug for TxOut

            §

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

            Formats the value using the given formatter. Read more
            ","Debug","zcash_primitives::transaction::components::TxOut"],["
            Source§

            impl OutputView for TxOut

            Source§

            fn value(&self) -> Zatoshis

            Returns the value of the output being created.
            Source§

            fn script_pubkey(&self) -> &Script

            Returns the script corresponding to the newly created output.
            Source§

            fn serialized_size(&self) -> usize

            Returns the serialized size of the txout.
            ","OutputView","zcash_primitives::transaction::components::TxOut"],["
            §

            impl PartialEq for TxOut

            §

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

            Tests for self and other values to be equal, and is used by ==.
            1.0.0 · Source§

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

            Tests for !=. The default implementation is almost always sufficient,\nand should not be overridden without very good reason.
            ","PartialEq","zcash_primitives::transaction::components::TxOut"],["
            §

            impl TxOut

            pub fn read<R>(reader: &mut R) -> Result<TxOut, Error>
            where\n R: Read,

            pub fn write<W>(&self, writer: W) -> Result<(), Error>
            where\n W: Write,

            pub fn recipient_address(&self) -> Option<TransparentAddress>

            Returns the address to which the TxOut was sent, if this is a valid P2SH or P2PKH output.

            \n
            ",0,"zcash_primitives::transaction::components::TxOut"],["
            §

            impl Eq for TxOut

            ","Eq","zcash_primitives::transaction::components::TxOut"],["
            §

            impl StructuralPartialEq for TxOut

            ","StructuralPartialEq","zcash_primitives::transaction::components::TxOut"]]]]); + var type_impls = Object.fromEntries([["zcash_primitives",[["
            Source§

            impl Clone for TxOut

            Source§

            fn clone(&self) -> TxOut

            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
            ","Clone","zcash_primitives::transaction::components::TxOut"],["
            Source§

            impl Debug for TxOut

            Source§

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

            Formats the value using the given formatter. Read more
            ","Debug","zcash_primitives::transaction::components::TxOut"],["
            Source§

            impl OutputView for TxOut

            Source§

            fn value(&self) -> Zatoshis

            Returns the value of the output being created.
            Source§

            fn script_pubkey(&self) -> &Script

            Returns the script corresponding to the newly created output.
            Source§

            fn serialized_size(&self) -> usize

            Returns the serialized size of the txout.
            ","OutputView","zcash_primitives::transaction::components::TxOut"],["
            Source§

            impl PartialEq for TxOut

            Source§

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

            Tests for self and other values to be equal, and is used by ==.
            1.0.0 · Source§

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

            Tests for !=. The default implementation is almost always sufficient,\nand should not be overridden without very good reason.
            ","PartialEq","zcash_primitives::transaction::components::TxOut"],["
            Source§

            impl TxOut

            Source

            pub fn read<R>(reader: &mut R) -> Result<TxOut, Error>
            where\n R: Read,

            Source

            pub fn write<W>(&self, writer: W) -> Result<(), Error>
            where\n W: Write,

            Source

            pub fn recipient_address(&self) -> Option<TransparentAddress>

            Returns the address to which the TxOut was sent, if this is a valid P2SH or P2PKH output.

            \n
            ",0,"zcash_primitives::transaction::components::TxOut"],["
            Source§

            impl Eq for TxOut

            ","Eq","zcash_primitives::transaction::components::TxOut"],["
            Source§

            impl StructuralPartialEq for TxOut

            ","StructuralPartialEq","zcash_primitives::transaction::components::TxOut"]]]]); if (window.register_type_impls) { window.register_type_impls(type_impls); } else { window.pending_type_impls = type_impls; } })() -//{"start":55,"fragment_lengths":[13246]} \ No newline at end of file +//{"start":55,"fragment_lengths":[14290]} \ No newline at end of file diff --git a/rustdoc/latest/type.impl/zcash_transparent/sighash/struct.SighashType.js b/rustdoc/latest/type.impl/zcash_transparent/sighash/struct.SighashType.js index 3b7e4cca7..eecea7310 100644 --- a/rustdoc/latest/type.impl/zcash_transparent/sighash/struct.SighashType.js +++ b/rustdoc/latest/type.impl/zcash_transparent/sighash/struct.SighashType.js @@ -1,9 +1,9 @@ (function() { - var type_impls = Object.fromEntries([["zcash_primitives",[["
            §

            impl Clone for SighashType

            §

            fn clone(&self) -> SighashType

            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
            ","Clone","zcash_primitives::transaction::sighash::SighashType"],["
            §

            impl Debug for SighashType

            §

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

            Formats the value using the given formatter. Read more
            ","Debug","zcash_primitives::transaction::sighash::SighashType"],["
            §

            impl PartialEq for SighashType

            §

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

            Tests for self and other values to be equal, and is used by ==.
            1.0.0 · Source§

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

            Tests for !=. The default implementation is almost always sufficient,\nand should not be overridden without very good reason.
            ","PartialEq","zcash_primitives::transaction::sighash::SighashType"],["
            §

            impl SighashType

            pub const ALL: SighashType

            pub const NONE: SighashType

            pub const SINGLE: SighashType

            pub const ALL_ANYONECANPAY: SighashType

            pub const NONE_ANYONECANPAY: SighashType

            pub const SINGLE_ANYONECANPAY: SighashType

            pub fn parse(hash_type: u8) -> Option<SighashType>

            Parses the given hash_type using the ZIP 244 rules.

            \n

            pub fn encode(&self) -> u8

            Encodes this SighashType using the ZIP 244 rules.

            \n
            ",0,"zcash_primitives::transaction::sighash::SighashType"],["
            §

            impl Copy for SighashType

            ","Copy","zcash_primitives::transaction::sighash::SighashType"],["
            §

            impl Eq for SighashType

            ","Eq","zcash_primitives::transaction::sighash::SighashType"],["
            §

            impl StructuralPartialEq for SighashType

            ","StructuralPartialEq","zcash_primitives::transaction::sighash::SighashType"]]]]); + var type_impls = Object.fromEntries([["zcash_primitives",[["
            Source§

            impl Clone for SighashType

            Source§

            fn clone(&self) -> SighashType

            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
            ","Clone","zcash_primitives::transaction::sighash::SighashType"],["
            Source§

            impl Debug for SighashType

            Source§

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

            Formats the value using the given formatter. Read more
            ","Debug","zcash_primitives::transaction::sighash::SighashType"],["
            Source§

            impl PartialEq for SighashType

            Source§

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

            Tests for self and other values to be equal, and is used by ==.
            1.0.0 · Source§

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

            Tests for !=. The default implementation is almost always sufficient,\nand should not be overridden without very good reason.
            ","PartialEq","zcash_primitives::transaction::sighash::SighashType"],["
            Source§

            impl SighashType

            Source

            pub const ALL: SighashType

            Source

            pub const NONE: SighashType

            Source

            pub const SINGLE: SighashType

            Source

            pub const ALL_ANYONECANPAY: SighashType

            Source

            pub const NONE_ANYONECANPAY: SighashType

            Source

            pub const SINGLE_ANYONECANPAY: SighashType

            Source

            pub fn parse(hash_type: u8) -> Option<SighashType>

            Parses the given hash_type using the ZIP 244 rules.

            \n
            Source

            pub fn encode(&self) -> u8

            Encodes this SighashType using the ZIP 244 rules.

            \n
            ",0,"zcash_primitives::transaction::sighash::SighashType"],["
            Source§

            impl Copy for SighashType

            ","Copy","zcash_primitives::transaction::sighash::SighashType"],["
            Source§

            impl Eq for SighashType

            ","Eq","zcash_primitives::transaction::sighash::SighashType"],["
            Source§

            impl StructuralPartialEq for SighashType

            ","StructuralPartialEq","zcash_primitives::transaction::sighash::SighashType"]]]]); if (window.register_type_impls) { window.register_type_impls(type_impls); } else { window.pending_type_impls = type_impls; } })() -//{"start":55,"fragment_lengths":[9109]} \ No newline at end of file +//{"start":55,"fragment_lengths":[13603]} \ No newline at end of file diff --git a/rustdoc/latest/zcash/all.html b/rustdoc/latest/zcash/all.html index 2e91d3c36..bc3c55567 100644 --- a/rustdoc/latest/zcash/all.html +++ b/rustdoc/latest/zcash/all.html @@ -1 +1 @@ -List of all items in this crate

            List of all items

            \ No newline at end of file +List of all items in this crate

            List of all items

            \ No newline at end of file diff --git a/rustdoc/latest/zcash/index.html b/rustdoc/latest/zcash/index.html index 8bfdd9917..1760dcc4e 100644 --- a/rustdoc/latest/zcash/index.html +++ b/rustdoc/latest/zcash/index.html @@ -1,4 +1,4 @@ -zcash - Rust

            Crate zcash

            Source
            Expand description

            Zcash Rust APIs.

            +zcash - Rust

            Crate zcash

            Source
            Expand description

            Zcash Rust APIs.

            §Feature flags

        Implementors§

        \ No newline at end of file diff --git a/rustdoc/latest/zcash_client_backend/data_api/testing/transparent/fn.gap_limits.html b/rustdoc/latest/zcash_client_backend/data_api/testing/transparent/fn.gap_limits.html index 1dac23bf1..3eb0d7d7f 100644 --- a/rustdoc/latest/zcash_client_backend/data_api/testing/transparent/fn.gap_limits.html +++ b/rustdoc/latest/zcash_client_backend/data_api/testing/transparent/fn.gap_limits.html @@ -1,4 +1,4 @@ -gap_limits in zcash_client_backend::data_api::testing::transparent - Rust

        Function gap_limits

        Source
        pub fn gap_limits<DSF>(
        +gap_limits in zcash_client_backend::data_api::testing::transparent - Rust

        Function gap_limits

        Source
        pub fn gap_limits<DSF>(
             ds_factory: DSF,
             cache: impl TestCache,
             gap_limits: GapLimits,
        diff --git a/rustdoc/latest/zcash_client_backend/data_api/testing/transparent/fn.put_received_transparent_utxo.html b/rustdoc/latest/zcash_client_backend/data_api/testing/transparent/fn.put_received_transparent_utxo.html
        index d9d3d455c..a8c7f5373 100644
        --- a/rustdoc/latest/zcash_client_backend/data_api/testing/transparent/fn.put_received_transparent_utxo.html
        +++ b/rustdoc/latest/zcash_client_backend/data_api/testing/transparent/fn.put_received_transparent_utxo.html
        @@ -1,3 +1,3 @@
        -put_received_transparent_utxo in zcash_client_backend::data_api::testing::transparent - Rust

        Function put_received_transparent_utxo

        Source
        pub fn put_received_transparent_utxo<DSF>(dsf: DSF)
        where +put_received_transparent_utxo in zcash_client_backend::data_api::testing::transparent - Rust

        Function put_received_transparent_utxo

        Source
        pub fn put_received_transparent_utxo<DSF>(dsf: DSF)
        Available on crate features test-dependencies and transparent-inputs only.
        \ No newline at end of file diff --git a/rustdoc/latest/zcash_client_backend/data_api/testing/transparent/fn.transparent_balance_across_shielding.html b/rustdoc/latest/zcash_client_backend/data_api/testing/transparent/fn.transparent_balance_across_shielding.html index 35c5ce6e9..1d93392ec 100644 --- a/rustdoc/latest/zcash_client_backend/data_api/testing/transparent/fn.transparent_balance_across_shielding.html +++ b/rustdoc/latest/zcash_client_backend/data_api/testing/transparent/fn.transparent_balance_across_shielding.html @@ -1,4 +1,4 @@ -transparent_balance_across_shielding in zcash_client_backend::data_api::testing::transparent - Rust

        Function transparent_balance_across_shielding

        Source
        pub fn transparent_balance_across_shielding<DSF>(
        +transparent_balance_across_shielding in zcash_client_backend::data_api::testing::transparent - Rust

        Function transparent_balance_across_shielding

        Source
        pub fn transparent_balance_across_shielding<DSF>(
             dsf: DSF,
             cache: impl TestCache,
         )
        where diff --git a/rustdoc/latest/zcash_client_backend/data_api/testing/transparent/fn.transparent_balance_spendability.html b/rustdoc/latest/zcash_client_backend/data_api/testing/transparent/fn.transparent_balance_spendability.html index 2c3c340c0..d21362c53 100644 --- a/rustdoc/latest/zcash_client_backend/data_api/testing/transparent/fn.transparent_balance_spendability.html +++ b/rustdoc/latest/zcash_client_backend/data_api/testing/transparent/fn.transparent_balance_spendability.html @@ -1,4 +1,4 @@ -transparent_balance_spendability in zcash_client_backend::data_api::testing::transparent - Rust

        Function transparent_balance_spendability

        Source
        pub fn transparent_balance_spendability<DSF>(dsf: DSF, cache: impl TestCache)
        where +transparent_balance_spendability in zcash_client_backend::data_api::testing::transparent - Rust

        Function transparent_balance_spendability

        Source
        pub fn transparent_balance_spendability<DSF>(dsf: DSF, cache: impl TestCache)
        where DSF: DataStoreFactory,
        Available on crate features test-dependencies and transparent-inputs only.
        Expand description

        This test attempts to verify that transparent funds spendability is accounted for properly given the different minimum confirmations values that can be set when querying for balances.

        diff --git a/rustdoc/latest/zcash_client_backend/data_api/testing/transparent/index.html b/rustdoc/latest/zcash_client_backend/data_api/testing/transparent/index.html index 48313f534..411a622b8 100644 --- a/rustdoc/latest/zcash_client_backend/data_api/testing/transparent/index.html +++ b/rustdoc/latest/zcash_client_backend/data_api/testing/transparent/index.html @@ -1,3 +1,3 @@ -zcash_client_backend::data_api::testing::transparent - Rust

        Module transparent

        Source
        Available on crate features test-dependencies and transparent-inputs only.

        Structs§

        GapLimits

        Functions§

        gap_limits
        put_received_transparent_utxo
        transparent_balance_across_shielding
        transparent_balance_spendability
        This test attempts to verify that transparent funds spendability is +zcash_client_backend::data_api::testing::transparent - Rust

        Module transparent

        Source
        Available on crate features test-dependencies and transparent-inputs only.

        Structs§

        GapLimits

        Functions§

        gap_limits
        put_received_transparent_utxo
        transparent_balance_across_shielding
        transparent_balance_spendability
        This test attempts to verify that transparent funds spendability is accounted for properly given the different minimum confirmations values that can be set when querying for balances.
        \ No newline at end of file diff --git a/rustdoc/latest/zcash_client_backend/data_api/testing/transparent/struct.GapLimits.html b/rustdoc/latest/zcash_client_backend/data_api/testing/transparent/struct.GapLimits.html index cc3e3ff6c..7c925ffc0 100644 --- a/rustdoc/latest/zcash_client_backend/data_api/testing/transparent/struct.GapLimits.html +++ b/rustdoc/latest/zcash_client_backend/data_api/testing/transparent/struct.GapLimits.html @@ -1,4 +1,4 @@ -GapLimits in zcash_client_backend::data_api::testing::transparent - Rust

        Struct GapLimits

        Source
        pub struct GapLimits { /* private fields */ }
        Available on crate features test-dependencies and transparent-inputs only.

        Implementations§

        Source§

        impl GapLimits

        Source

        pub fn new(external: u32, internal: u32, ephemeral: u32) -> Self

        Source

        pub fn external(&self) -> u32

        Source

        pub fn internal(&self) -> u32

        Source

        pub fn ephemeral(&self) -> u32

        Trait Implementations§

        Source§

        impl Clone for GapLimits

        Source§

        fn clone(&self) -> GapLimits

        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 GapLimits

        Source§

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

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

        impl PartialEq for GapLimits

        Source§

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

        Tests for self and other values to be equal, and is used by ==.
        1.0.0 · Source§

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

        Tests for !=. The default implementation is almost always sufficient, +GapLimits in zcash_client_backend::data_api::testing::transparent - Rust

        Struct GapLimits

        Source
        pub struct GapLimits { /* private fields */ }
        Available on crate features test-dependencies and transparent-inputs only.

        Implementations§

        Source§

        impl GapLimits

        Source

        pub fn new(external: u32, internal: u32, ephemeral: u32) -> Self

        Source

        pub fn external(&self) -> u32

        Source

        pub fn internal(&self) -> u32

        Source

        pub fn ephemeral(&self) -> u32

        Trait Implementations§

        Source§

        impl Clone for GapLimits

        Source§

        fn clone(&self) -> GapLimits

        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 GapLimits

        Source§

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

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

        impl PartialEq for GapLimits

        Source§

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

        Tests for self and other values to be equal, and is used by ==.
        1.0.0 · Source§

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

        Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
        Source§

        impl Copy for GapLimits

        Source§

        impl Eq for GapLimits

        Source§

        impl StructuralPartialEq for GapLimits

        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 diff --git a/rustdoc/latest/zcash_client_backend/data_api/trait.Account.html b/rustdoc/latest/zcash_client_backend/data_api/trait.Account.html index ddc885821..c1584f8d9 100644 --- a/rustdoc/latest/zcash_client_backend/data_api/trait.Account.html +++ b/rustdoc/latest/zcash_client_backend/data_api/trait.Account.html @@ -1,4 +1,4 @@ -Account in zcash_client_backend::data_api - Rust

        Trait Account

        Source
        pub trait Account {
        +Account in zcash_client_backend::data_api - Rust

        Trait Account

        Source
        pub trait Account {
             type AccountId: Copy;
         
             // Required methods
        diff --git a/rustdoc/latest/zcash_client_backend/data_api/trait.InputSource.html b/rustdoc/latest/zcash_client_backend/data_api/trait.InputSource.html
        index da279abc3..2041fa52e 100644
        --- a/rustdoc/latest/zcash_client_backend/data_api/trait.InputSource.html
        +++ b/rustdoc/latest/zcash_client_backend/data_api/trait.InputSource.html
        @@ -1,4 +1,4 @@
        -InputSource in zcash_client_backend::data_api - Rust

        Trait InputSource

        Source
        pub trait InputSource {
        +InputSource in zcash_client_backend::data_api - Rust

        Trait InputSource

        Source
        pub trait InputSource {
             type Error: Debug;
             type AccountId: Copy + Debug + Eq + Hash;
             type NoteRef: Copy + Debug + Eq + Ord;
        @@ -99,4 +99,4 @@ confirmations; and
         

      An output that is potentially spent by an unmined transaction in the mempool is excluded iff the spending transaction will not be expired at target_height.

      -

      Implementors§

      Source§

      impl InputSource for MockWalletDb

      Available on crate feature test-dependencies only.
      \ No newline at end of file +

      Implementors§

      Source§

      impl InputSource for MockWalletDb

      Available on crate feature test-dependencies only.
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_client_backend/data_api/trait.NoteRetention.html b/rustdoc/latest/zcash_client_backend/data_api/trait.NoteRetention.html index 6d2bd3591..25ec5904a 100644 --- a/rustdoc/latest/zcash_client_backend/data_api/trait.NoteRetention.html +++ b/rustdoc/latest/zcash_client_backend/data_api/trait.NoteRetention.html @@ -1,4 +1,4 @@ -NoteRetention in zcash_client_backend::data_api - Rust

      Trait NoteRetention

      Source
      pub trait NoteRetention<NoteRef> {
      +NoteRetention in zcash_client_backend::data_api - Rust

      Trait NoteRetention

      Source
      pub trait NoteRetention<NoteRef> {
           // Required methods
           fn should_retain_sapling(&self, note: &ReceivedNote<NoteRef, Note>) -> bool;
           fn should_retain_orchard(&self, note: &ReceivedNote<NoteRef, Note>) -> bool;
      diff --git a/rustdoc/latest/zcash_client_backend/data_api/trait.WalletCommitmentTrees.html b/rustdoc/latest/zcash_client_backend/data_api/trait.WalletCommitmentTrees.html
      index a4ec5308e..3c8c09f73 100644
      --- a/rustdoc/latest/zcash_client_backend/data_api/trait.WalletCommitmentTrees.html
      +++ b/rustdoc/latest/zcash_client_backend/data_api/trait.WalletCommitmentTrees.html
      @@ -1,4 +1,4 @@
      -WalletCommitmentTrees in zcash_client_backend::data_api - Rust

      Trait WalletCommitmentTrees

      Source
      pub trait WalletCommitmentTrees {
      +WalletCommitmentTrees in zcash_client_backend::data_api - Rust

      Trait WalletCommitmentTrees

      Source
      pub trait WalletCommitmentTrees {
           type Error: Debug;
           type SaplingShardStore<'a>: ShardStore<H = Node, CheckpointId = BlockHeight, Error = Self::Error>;
           type OrchardShardStore<'a>: ShardStore<H = MerkleHashOrchard, CheckpointId = BlockHeight, Error = Self::Error>;
      @@ -45,4 +45,4 @@ note commitment tree maintained by the wallet.

      ) -> Result<(), ShardTreeError<Self::Error>>

      Available on crate feature orchard only.

      Adds a sequence of Orchard note commitment tree subtree roots to the data store.

      Each such value should be the Merkle root of a subtree of the Orchard note commitment tree containing 2^ORCHARD_SHARD_HEIGHT note commitments.

      -

      Dyn Compatibility§

      This trait is not dyn compatible.

      In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

      Implementors§

      Source§

      impl WalletCommitmentTrees for MockWalletDb

      Available on crate feature test-dependencies only.
      Source§

      type Error = Infallible

      Source§

      type SaplingShardStore<'a> = MemoryShardStore<Node, BlockHeight>

      Source§

      type OrchardShardStore<'a> = MemoryShardStore<MerkleHashOrchard, BlockHeight>

      \ No newline at end of file +

      Dyn Compatibility§

      This trait is not dyn compatible.

      In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

      Implementors§

      Source§

      impl WalletCommitmentTrees for MockWalletDb

      Available on crate feature test-dependencies only.
      Source§

      type Error = Infallible

      Source§

      type SaplingShardStore<'a> = MemoryShardStore<Node, BlockHeight>

      Source§

      type OrchardShardStore<'a> = MemoryShardStore<MerkleHashOrchard, BlockHeight>

      \ No newline at end of file diff --git a/rustdoc/latest/zcash_client_backend/data_api/trait.WalletRead.html b/rustdoc/latest/zcash_client_backend/data_api/trait.WalletRead.html index 64e6888a4..ef490b702 100644 --- a/rustdoc/latest/zcash_client_backend/data_api/trait.WalletRead.html +++ b/rustdoc/latest/zcash_client_backend/data_api/trait.WalletRead.html @@ -1,4 +1,4 @@ -WalletRead in zcash_client_backend::data_api - Rust

      Trait WalletRead

      Source
      pub trait WalletRead {
      +WalletRead in zcash_client_backend::data_api - Rust

      Trait WalletRead

      Source
      pub trait WalletRead {
           type Error: Debug;
           type AccountId: Copy + Debug + Eq + Hash;
           type Account: Account<AccountId = Self::AccountId>;
      @@ -383,4 +383,4 @@ wallet’s accounts, then return Ok(Some(account_id)). Otherwise re
           }
       }
       Ok(None)
      -

      Implementors§

      Source§

      impl WalletRead for MockWalletDb

      Available on crate feature test-dependencies only.
      \ No newline at end of file +

      Implementors§

      Source§

      impl WalletRead for MockWalletDb

      Available on crate feature test-dependencies only.
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_client_backend/data_api/trait.WalletTest.html b/rustdoc/latest/zcash_client_backend/data_api/trait.WalletTest.html index 253f1ceb8..778b656c1 100644 --- a/rustdoc/latest/zcash_client_backend/data_api/trait.WalletTest.html +++ b/rustdoc/latest/zcash_client_backend/data_api/trait.WalletTest.html @@ -1,4 +1,4 @@ -WalletTest in zcash_client_backend::data_api - Rust

      Trait WalletTest

      Source
      pub trait WalletTest: InputSource + WalletRead {
      +WalletTest in zcash_client_backend::data_api - Rust

      Trait WalletTest

      Source
      pub trait WalletTest: InputSource + WalletRead {
           // Required methods
           fn get_tx_history(
               &self,
      diff --git a/rustdoc/latest/zcash_client_backend/data_api/trait.WalletWrite.html b/rustdoc/latest/zcash_client_backend/data_api/trait.WalletWrite.html
      index 9c9f8f6ec..6557f22b3 100644
      --- a/rustdoc/latest/zcash_client_backend/data_api/trait.WalletWrite.html
      +++ b/rustdoc/latest/zcash_client_backend/data_api/trait.WalletWrite.html
      @@ -1,4 +1,4 @@
      -WalletWrite in zcash_client_backend::data_api - Rust

      Trait WalletWrite

      Source
      pub trait WalletWrite: WalletRead {
      +WalletWrite in zcash_client_backend::data_api - Rust

      Trait WalletWrite

      Source
      pub trait WalletWrite: WalletRead {
           type UtxoRef;
       
       
      Show 13 methods // Required methods @@ -357,4 +357,4 @@ should be observed as described in Implementors§

      Source§

      impl WalletWrite for MockWalletDb

      Available on crate feature test-dependencies only.
      \ No newline at end of file +

      Implementors§

      Source§

      impl WalletWrite for MockWalletDb

      Available on crate feature test-dependencies only.
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_client_backend/data_api/wallet/fn.create_proposed_transactions.html b/rustdoc/latest/zcash_client_backend/data_api/wallet/fn.create_proposed_transactions.html index ec705dec4..e0878378d 100644 --- a/rustdoc/latest/zcash_client_backend/data_api/wallet/fn.create_proposed_transactions.html +++ b/rustdoc/latest/zcash_client_backend/data_api/wallet/fn.create_proposed_transactions.html @@ -1,4 +1,4 @@ -create_proposed_transactions in zcash_client_backend::data_api::wallet - Rust

      Function create_proposed_transactions

      Source
      pub fn create_proposed_transactions<DbT, ParamsT, InputsErrT, FeeRuleT, ChangeErrT, N>(
      +create_proposed_transactions in zcash_client_backend::data_api::wallet - Rust

      Function create_proposed_transactions

      Source
      pub fn create_proposed_transactions<DbT, ParamsT, InputsErrT, FeeRuleT, ChangeErrT, N>(
           wallet_db: &mut DbT,
           params: &ParamsT,
           spend_prover: &impl SpendProver,
      diff --git a/rustdoc/latest/zcash_client_backend/data_api/wallet/fn.decrypt_and_store_transaction.html b/rustdoc/latest/zcash_client_backend/data_api/wallet/fn.decrypt_and_store_transaction.html
      index 98fb5c586..4d9f5cd0a 100644
      --- a/rustdoc/latest/zcash_client_backend/data_api/wallet/fn.decrypt_and_store_transaction.html
      +++ b/rustdoc/latest/zcash_client_backend/data_api/wallet/fn.decrypt_and_store_transaction.html
      @@ -1,4 +1,4 @@
      -decrypt_and_store_transaction in zcash_client_backend::data_api::wallet - Rust

      Function decrypt_and_store_transaction

      Source
      pub fn decrypt_and_store_transaction<ParamsT, DbT>(
      +decrypt_and_store_transaction in zcash_client_backend::data_api::wallet - Rust

      Function decrypt_and_store_transaction

      Source
      pub fn decrypt_and_store_transaction<ParamsT, DbT>(
           params: &ParamsT,
           data: &mut DbT,
           tx: &Transaction,
      diff --git a/rustdoc/latest/zcash_client_backend/data_api/wallet/fn.propose_shielding.html b/rustdoc/latest/zcash_client_backend/data_api/wallet/fn.propose_shielding.html
      index 72017ee7a..569f8290f 100644
      --- a/rustdoc/latest/zcash_client_backend/data_api/wallet/fn.propose_shielding.html
      +++ b/rustdoc/latest/zcash_client_backend/data_api/wallet/fn.propose_shielding.html
      @@ -1,4 +1,4 @@
      -propose_shielding in zcash_client_backend::data_api::wallet - Rust

      Function propose_shielding

      Source
      pub fn propose_shielding<DbT, ParamsT, InputsT, ChangeT, CommitmentTreeErrT>(
      +propose_shielding in zcash_client_backend::data_api::wallet - Rust

      Function propose_shielding

      Source
      pub fn propose_shielding<DbT, ParamsT, InputsT, ChangeT, CommitmentTreeErrT>(
           wallet_db: &mut DbT,
           params: &ParamsT,
           input_selector: &InputsT,
      diff --git a/rustdoc/latest/zcash_client_backend/data_api/wallet/fn.propose_standard_transfer_to_address.html b/rustdoc/latest/zcash_client_backend/data_api/wallet/fn.propose_standard_transfer_to_address.html
      index f25596976..e8a56b5f1 100644
      --- a/rustdoc/latest/zcash_client_backend/data_api/wallet/fn.propose_standard_transfer_to_address.html
      +++ b/rustdoc/latest/zcash_client_backend/data_api/wallet/fn.propose_standard_transfer_to_address.html
      @@ -1,4 +1,4 @@
      -propose_standard_transfer_to_address in zcash_client_backend::data_api::wallet - Rust

      Function propose_standard_transfer_to_address

      Source
      pub fn propose_standard_transfer_to_address<DbT, ParamsT, CommitmentTreeErrT>(
      +propose_standard_transfer_to_address in zcash_client_backend::data_api::wallet - Rust

      Function propose_standard_transfer_to_address

      Source
      pub fn propose_standard_transfer_to_address<DbT, ParamsT, CommitmentTreeErrT>(
           wallet_db: &mut DbT,
           params: &ParamsT,
           fee_rule: StandardFeeRule,
      diff --git a/rustdoc/latest/zcash_client_backend/data_api/wallet/fn.propose_transfer.html b/rustdoc/latest/zcash_client_backend/data_api/wallet/fn.propose_transfer.html
      index bc851a0ae..614db264b 100644
      --- a/rustdoc/latest/zcash_client_backend/data_api/wallet/fn.propose_transfer.html
      +++ b/rustdoc/latest/zcash_client_backend/data_api/wallet/fn.propose_transfer.html
      @@ -1,4 +1,4 @@
      -propose_transfer in zcash_client_backend::data_api::wallet - Rust

      Function propose_transfer

      Source
      pub fn propose_transfer<DbT, ParamsT, InputsT, ChangeT, CommitmentTreeErrT>(
      +propose_transfer in zcash_client_backend::data_api::wallet - Rust

      Function propose_transfer

      Source
      pub fn propose_transfer<DbT, ParamsT, InputsT, ChangeT, CommitmentTreeErrT>(
           wallet_db: &mut DbT,
           params: &ParamsT,
           spend_from_account: <DbT as InputSource>::AccountId,
      diff --git a/rustdoc/latest/zcash_client_backend/data_api/wallet/fn.shield_transparent_funds.html b/rustdoc/latest/zcash_client_backend/data_api/wallet/fn.shield_transparent_funds.html
      index 4ed0e4c27..18d3182f4 100644
      --- a/rustdoc/latest/zcash_client_backend/data_api/wallet/fn.shield_transparent_funds.html
      +++ b/rustdoc/latest/zcash_client_backend/data_api/wallet/fn.shield_transparent_funds.html
      @@ -1,4 +1,4 @@
      -shield_transparent_funds in zcash_client_backend::data_api::wallet - Rust

      Function shield_transparent_funds

      Source
      pub fn shield_transparent_funds<DbT, ParamsT, InputsT, ChangeT>(
      +shield_transparent_funds in zcash_client_backend::data_api::wallet - Rust

      Function shield_transparent_funds

      Source
      pub fn shield_transparent_funds<DbT, ParamsT, InputsT, ChangeT>(
           wallet_db: &mut DbT,
           params: &ParamsT,
           spend_prover: &impl SpendProver,
      diff --git a/rustdoc/latest/zcash_client_backend/data_api/wallet/index.html b/rustdoc/latest/zcash_client_backend/data_api/wallet/index.html
      index db49aafc7..46e7f6242 100644
      --- a/rustdoc/latest/zcash_client_backend/data_api/wallet/index.html
      +++ b/rustdoc/latest/zcash_client_backend/data_api/wallet/index.html
      @@ -1,4 +1,4 @@
      -zcash_client_backend::data_api::wallet - Rust

      Module wallet

      Source
      Expand description

      §Functions for creating Zcash transactions that spend funds belonging to the wallet

      +zcash_client_backend::data_api::wallet - Rust

      Module wallet

      Source
      Expand description

      §Functions for creating Zcash transactions that spend funds belonging to the wallet

      This module contains several different ways of creating Zcash transactions. This module is designed around the idea that a Zcash wallet holds its funds in notes in either the Orchard or Sapling shielded pool. In order to better preserve users’ privacy, it does not provide any diff --git a/rustdoc/latest/zcash_client_backend/data_api/wallet/input_selection/enum.GreedyInputSelectorError.html b/rustdoc/latest/zcash_client_backend/data_api/wallet/input_selection/enum.GreedyInputSelectorError.html index 278cb2964..dd04d8d93 100644 --- a/rustdoc/latest/zcash_client_backend/data_api/wallet/input_selection/enum.GreedyInputSelectorError.html +++ b/rustdoc/latest/zcash_client_backend/data_api/wallet/input_selection/enum.GreedyInputSelectorError.html @@ -1,4 +1,4 @@ -GreedyInputSelectorError in zcash_client_backend::data_api::wallet::input_selection - Rust

      Enum GreedyInputSelectorError

      Source
      pub enum GreedyInputSelectorError {
      +GreedyInputSelectorError in zcash_client_backend::data_api::wallet::input_selection - Rust

      Enum GreedyInputSelectorError

      Source
      pub enum GreedyInputSelectorError {
           Balance(BalanceError),
           UnsupportedAddress(Box<UnifiedAddress>),
           UnsupportedTexAddress,
      diff --git a/rustdoc/latest/zcash_client_backend/data_api/wallet/input_selection/enum.InputSelectorError.html b/rustdoc/latest/zcash_client_backend/data_api/wallet/input_selection/enum.InputSelectorError.html
      index f82980167..74d26b761 100644
      --- a/rustdoc/latest/zcash_client_backend/data_api/wallet/input_selection/enum.InputSelectorError.html
      +++ b/rustdoc/latest/zcash_client_backend/data_api/wallet/input_selection/enum.InputSelectorError.html
      @@ -1,4 +1,4 @@
      -InputSelectorError in zcash_client_backend::data_api::wallet::input_selection - Rust

      Enum InputSelectorError

      Source
      pub enum InputSelectorError<DbErrT, SelectorErrT, ChangeErrT, N> {
      +InputSelectorError in zcash_client_backend::data_api::wallet::input_selection - Rust

      Enum InputSelectorError

      Source
      pub enum InputSelectorError<DbErrT, SelectorErrT, ChangeErrT, N> {
           DataSource(DbErrT),
           Selection(SelectorErrT),
           Change(ChangeError<ChangeErrT, N>),
      diff --git a/rustdoc/latest/zcash_client_backend/data_api/wallet/input_selection/index.html b/rustdoc/latest/zcash_client_backend/data_api/wallet/input_selection/index.html
      index 09340cbdf..f5939bc67 100644
      --- a/rustdoc/latest/zcash_client_backend/data_api/wallet/input_selection/index.html
      +++ b/rustdoc/latest/zcash_client_backend/data_api/wallet/input_selection/index.html
      @@ -1,4 +1,4 @@
      -zcash_client_backend::data_api::wallet::input_selection - Rust

      Module input_selection

      Source
      Expand description

      Types related to the process of selecting inputs to be spent given a transaction request.

      +zcash_client_backend::data_api::wallet::input_selection - Rust

      Module input_selection

      Source
      Expand description

      Types related to the process of selecting inputs to be spent given a transaction request.

      Structs§

      GreedyInputSelector
      An InputSelector implementation that uses a greedy strategy to select between available notes.

      Enums§

      GreedyInputSelectorError
      Errors that can occur as a consequence of greedy input selection.
      InputSelectorError
      The type of errors that may be produced in input selection.

      Traits§

      InputSelector
      A strategy for selecting transaction inputs and proposing transaction outputs.
      ShieldingSelectortransparent-inputs
      A strategy for selecting transaction inputs and proposing transaction outputs for shielding-only transactions (transactions which spend transparent UTXOs and diff --git a/rustdoc/latest/zcash_client_backend/data_api/wallet/input_selection/struct.GreedyInputSelector.html b/rustdoc/latest/zcash_client_backend/data_api/wallet/input_selection/struct.GreedyInputSelector.html index 1c7cb8c89..baea6d95e 100644 --- a/rustdoc/latest/zcash_client_backend/data_api/wallet/input_selection/struct.GreedyInputSelector.html +++ b/rustdoc/latest/zcash_client_backend/data_api/wallet/input_selection/struct.GreedyInputSelector.html @@ -1,4 +1,4 @@ -GreedyInputSelector in zcash_client_backend::data_api::wallet::input_selection - Rust

      Struct GreedyInputSelector

      Source
      pub struct GreedyInputSelector<DbT> { /* private fields */ }
      Expand description

      An InputSelector implementation that uses a greedy strategy to select between available +GreedyInputSelector in zcash_client_backend::data_api::wallet::input_selection - Rust

      Struct GreedyInputSelector

      Source
      pub struct GreedyInputSelector<DbT> { /* private fields */ }
      Expand description

      An InputSelector implementation that uses a greedy strategy to select between available notes.

      This implementation performs input selection using methods available via the InputSource interface.

      diff --git a/rustdoc/latest/zcash_client_backend/data_api/wallet/input_selection/trait.InputSelector.html b/rustdoc/latest/zcash_client_backend/data_api/wallet/input_selection/trait.InputSelector.html index f206483a6..d6498ba11 100644 --- a/rustdoc/latest/zcash_client_backend/data_api/wallet/input_selection/trait.InputSelector.html +++ b/rustdoc/latest/zcash_client_backend/data_api/wallet/input_selection/trait.InputSelector.html @@ -1,4 +1,4 @@ -InputSelector in zcash_client_backend::data_api::wallet::input_selection - Rust

      Trait InputSelector

      Source
      pub trait InputSelector {
      +InputSelector in zcash_client_backend::data_api::wallet::input_selection - Rust

      Trait InputSelector

      Source
      pub trait InputSelector {
           type Error;
           type InputSource: InputSource;
       
      diff --git a/rustdoc/latest/zcash_client_backend/data_api/wallet/input_selection/trait.ShieldingSelector.html b/rustdoc/latest/zcash_client_backend/data_api/wallet/input_selection/trait.ShieldingSelector.html
      index afb34d6fe..689807565 100644
      --- a/rustdoc/latest/zcash_client_backend/data_api/wallet/input_selection/trait.ShieldingSelector.html
      +++ b/rustdoc/latest/zcash_client_backend/data_api/wallet/input_selection/trait.ShieldingSelector.html
      @@ -1,4 +1,4 @@
      -ShieldingSelector in zcash_client_backend::data_api::wallet::input_selection - Rust

      Trait ShieldingSelector

      Source
      pub trait ShieldingSelector {
      +ShieldingSelector in zcash_client_backend::data_api::wallet::input_selection - Rust

      Trait ShieldingSelector

      Source
      pub trait ShieldingSelector {
           type Error;
           type InputSource: InputSource;
       
      diff --git a/rustdoc/latest/zcash_client_backend/data_api/wallet/type.CreateErrT.html b/rustdoc/latest/zcash_client_backend/data_api/wallet/type.CreateErrT.html
      index 36944a0f5..6b14bf8e4 100644
      --- a/rustdoc/latest/zcash_client_backend/data_api/wallet/type.CreateErrT.html
      +++ b/rustdoc/latest/zcash_client_backend/data_api/wallet/type.CreateErrT.html
      @@ -1,4 +1,4 @@
      -CreateErrT in zcash_client_backend::data_api::wallet - Rust

      Type Alias CreateErrT

      Source
      pub type CreateErrT<DbT, InputsErrT, FeeRuleT, ChangeErrT, N> = Error<<DbT as WalletRead>::Error, <DbT as WalletCommitmentTrees>::Error, InputsErrT, <FeeRuleT as FeeRule>::Error, ChangeErrT, N>;
      Expand description

      Errors that may be generated in combined creation and execution of transaction proposals.

      +CreateErrT in zcash_client_backend::data_api::wallet - Rust

      Type Alias CreateErrT

      Source
      pub type CreateErrT<DbT, InputsErrT, FeeRuleT, ChangeErrT, N> = Error<<DbT as WalletRead>::Error, <DbT as WalletCommitmentTrees>::Error, InputsErrT, <FeeRuleT as FeeRule>::Error, ChangeErrT, N>;
      Expand description

      Errors that may be generated in combined creation and execution of transaction proposals.

      Aliased Type§

      enum CreateErrT<DbT, InputsErrT, FeeRuleT, ChangeErrT, N> {
       
      Show 21 variants DataSource(<DbT as WalletRead>::Error), CommitmentTree(ShardTreeError<<DbT as WalletCommitmentTrees>::Error>), diff --git a/rustdoc/latest/zcash_client_backend/data_api/wallet/type.ProposeShieldingErrT.html b/rustdoc/latest/zcash_client_backend/data_api/wallet/type.ProposeShieldingErrT.html index e72f3a28f..656a1321f 100644 --- a/rustdoc/latest/zcash_client_backend/data_api/wallet/type.ProposeShieldingErrT.html +++ b/rustdoc/latest/zcash_client_backend/data_api/wallet/type.ProposeShieldingErrT.html @@ -1,4 +1,4 @@ -ProposeShieldingErrT in zcash_client_backend::data_api::wallet - Rust

      Type Alias ProposeShieldingErrT

      Source
      pub type ProposeShieldingErrT<DbT, CommitmentTreeErrT, InputsT, ChangeT> = Error<<DbT as WalletRead>::Error, CommitmentTreeErrT, <InputsT as ShieldingSelector>::Error, <<ChangeT as ChangeStrategy>::FeeRule as FeeRule>::Error, <ChangeT as ChangeStrategy>::Error, Infallible>;
      Available on crate feature transparent-inputs only.
      Expand description

      Errors that may be generated in construction of proposals for transparent->shielded +ProposeShieldingErrT in zcash_client_backend::data_api::wallet - Rust

      Type Alias ProposeShieldingErrT

      Source
      pub type ProposeShieldingErrT<DbT, CommitmentTreeErrT, InputsT, ChangeT> = Error<<DbT as WalletRead>::Error, CommitmentTreeErrT, <InputsT as ShieldingSelector>::Error, <<ChangeT as ChangeStrategy>::FeeRule as FeeRule>::Error, <ChangeT as ChangeStrategy>::Error, Infallible>;
      Available on crate feature transparent-inputs only.
      Expand description

      Errors that may be generated in construction of proposals for transparent->shielded wallet-internal transfers.

      Aliased Type§

      enum ProposeShieldingErrT<DbT, CommitmentTreeErrT, InputsT, ChangeT> {
       
      Show 21 variants DataSource(<DbT as WalletRead>::Error), diff --git a/rustdoc/latest/zcash_client_backend/data_api/wallet/type.ProposeTransferErrT.html b/rustdoc/latest/zcash_client_backend/data_api/wallet/type.ProposeTransferErrT.html index c74f9bc49..67a4df603 100644 --- a/rustdoc/latest/zcash_client_backend/data_api/wallet/type.ProposeTransferErrT.html +++ b/rustdoc/latest/zcash_client_backend/data_api/wallet/type.ProposeTransferErrT.html @@ -1,4 +1,4 @@ -ProposeTransferErrT in zcash_client_backend::data_api::wallet - Rust

      Type Alias ProposeTransferErrT

      Source
      pub type ProposeTransferErrT<DbT, CommitmentTreeErrT, InputsT, ChangeT> = Error<<DbT as WalletRead>::Error, CommitmentTreeErrT, <InputsT as InputSelector>::Error, <<ChangeT as ChangeStrategy>::FeeRule as FeeRule>::Error, <ChangeT as ChangeStrategy>::Error, <<InputsT as InputSelector>::InputSource as InputSource>::NoteRef>;
      Expand description

      Errors that may be generated in construction of proposals for shielded->shielded or +ProposeTransferErrT in zcash_client_backend::data_api::wallet - Rust

      Type Alias ProposeTransferErrT

      Source
      pub type ProposeTransferErrT<DbT, CommitmentTreeErrT, InputsT, ChangeT> = Error<<DbT as WalletRead>::Error, CommitmentTreeErrT, <InputsT as InputSelector>::Error, <<ChangeT as ChangeStrategy>::FeeRule as FeeRule>::Error, <ChangeT as ChangeStrategy>::Error, <<InputsT as InputSelector>::InputSource as InputSource>::NoteRef>;
      Expand description

      Errors that may be generated in construction of proposals for shielded->shielded or shielded->transparent transfers.

      Aliased Type§

      enum ProposeTransferErrT<DbT, CommitmentTreeErrT, InputsT, ChangeT> {
       
      Show 21 variants DataSource(<DbT as WalletRead>::Error), diff --git a/rustdoc/latest/zcash_client_backend/data_api/wallet/type.ShieldErrT.html b/rustdoc/latest/zcash_client_backend/data_api/wallet/type.ShieldErrT.html index b3d516098..1f71be8ec 100644 --- a/rustdoc/latest/zcash_client_backend/data_api/wallet/type.ShieldErrT.html +++ b/rustdoc/latest/zcash_client_backend/data_api/wallet/type.ShieldErrT.html @@ -1,4 +1,4 @@ -ShieldErrT in zcash_client_backend::data_api::wallet - Rust

      Type Alias ShieldErrT

      Source
      pub type ShieldErrT<DbT, InputsT, ChangeT> = Error<<DbT as WalletRead>::Error, <DbT as WalletCommitmentTrees>::Error, <InputsT as ShieldingSelector>::Error, <<ChangeT as ChangeStrategy>::FeeRule as FeeRule>::Error, <ChangeT as ChangeStrategy>::Error, Infallible>;
      Available on crate feature transparent-inputs only.
      Expand description

      Errors that may be generated in the execution of shielding proposals.

      +ShieldErrT in zcash_client_backend::data_api::wallet - Rust

      Type Alias ShieldErrT

      Source
      pub type ShieldErrT<DbT, InputsT, ChangeT> = Error<<DbT as WalletRead>::Error, <DbT as WalletCommitmentTrees>::Error, <InputsT as ShieldingSelector>::Error, <<ChangeT as ChangeStrategy>::FeeRule as FeeRule>::Error, <ChangeT as ChangeStrategy>::Error, Infallible>;
      Available on crate feature transparent-inputs only.
      Expand description

      Errors that may be generated in the execution of shielding proposals.

      Aliased Type§

      enum ShieldErrT<DbT, InputsT, ChangeT> {
       
      Show 21 variants DataSource(<DbT as WalletRead>::Error), CommitmentTree(ShardTreeError<<DbT as WalletCommitmentTrees>::Error>), diff --git a/rustdoc/latest/zcash_client_backend/data_api/wallet/type.TransferErrT.html b/rustdoc/latest/zcash_client_backend/data_api/wallet/type.TransferErrT.html index 5677b9d22..4ba9f8337 100644 --- a/rustdoc/latest/zcash_client_backend/data_api/wallet/type.TransferErrT.html +++ b/rustdoc/latest/zcash_client_backend/data_api/wallet/type.TransferErrT.html @@ -1,4 +1,4 @@ -TransferErrT in zcash_client_backend::data_api::wallet - Rust

      Type Alias TransferErrT

      Source
      pub type TransferErrT<DbT, InputsT, ChangeT> = Error<<DbT as WalletRead>::Error, <DbT as WalletCommitmentTrees>::Error, <InputsT as InputSelector>::Error, <<ChangeT as ChangeStrategy>::FeeRule as FeeRule>::Error, <ChangeT as ChangeStrategy>::Error, <<InputsT as InputSelector>::InputSource as InputSource>::NoteRef>;
      Expand description

      Errors that may be generated in the execution of proposals that may send shielded inputs.

      +TransferErrT in zcash_client_backend::data_api::wallet - Rust

      Type Alias TransferErrT

      Source
      pub type TransferErrT<DbT, InputsT, ChangeT> = Error<<DbT as WalletRead>::Error, <DbT as WalletCommitmentTrees>::Error, <InputsT as InputSelector>::Error, <<ChangeT as ChangeStrategy>::FeeRule as FeeRule>::Error, <ChangeT as ChangeStrategy>::Error, <<InputsT as InputSelector>::InputSource as InputSource>::NoteRef>;
      Expand description

      Errors that may be generated in the execution of proposals that may send shielded inputs.

      Aliased Type§

      enum TransferErrT<DbT, InputsT, ChangeT> {
       
      Show 21 variants DataSource(<DbT as WalletRead>::Error), CommitmentTree(ShardTreeError<<DbT as WalletCommitmentTrees>::Error>), diff --git a/rustdoc/latest/zcash_client_backend/encoding/enum.Bech32DecodeError.html b/rustdoc/latest/zcash_client_backend/encoding/enum.Bech32DecodeError.html index 3976ad402..3ad9c742b 100644 --- a/rustdoc/latest/zcash_client_backend/encoding/enum.Bech32DecodeError.html +++ b/rustdoc/latest/zcash_client_backend/encoding/enum.Bech32DecodeError.html @@ -1,4 +1,4 @@ -Bech32DecodeError in zcash_client_backend::encoding - Rust

      Enum Bech32DecodeError

      pub enum Bech32DecodeError {
      +Bech32DecodeError in zcash_client_backend::encoding - Rust

      Enum Bech32DecodeError

      Source
      pub enum Bech32DecodeError {
           Bech32Error(DecodeError),
           Hrp(CheckedHrpstringError),
           ReadError,
      @@ -6,8 +6,8 @@
               expected: String,
               actual: String,
           },
      -}

      Variants§

      §

      Bech32Error(DecodeError)

      §

      Hrp(CheckedHrpstringError)

      §

      ReadError

      §

      HrpMismatch

      Fields

      §expected: String
      §actual: String

      Trait Implementations§

      §

      impl Clone for Bech32DecodeError

      §

      fn clone(&self) -> Bech32DecodeError

      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
      §

      impl Debug for Bech32DecodeError

      §

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

      Formats the value using the given formatter. Read more
      §

      impl Display for Bech32DecodeError

      §

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

      Formats the value using the given formatter. Read more
      §

      impl Error for Bech32DecodeError

      1.30.0 · Source§

      fn source(&self) -> Option<&(dyn Error + 'static)>

      Returns the lower-level source of this error, if any. Read more
      1.0.0 · Source§

      fn description(&self) -> &str

      👎Deprecated since 1.42.0: use the Display impl or to_string()
      1.0.0 · Source§

      fn cause(&self) -> Option<&dyn Error>

      👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
      Source§

      fn provide<'a>(&'a self, request: &mut Request<'a>)

      🔬This is a nightly-only experimental API. (error_generic_member_access)
      Provides type-based access to context intended for error reports. Read more
      §

      impl From<CheckedHrpstringError> for Bech32DecodeError

      §

      fn from(err: CheckedHrpstringError) -> Bech32DecodeError

      Converts to this type from the input type.
      §

      impl From<DecodeError> for Bech32DecodeError

      §

      fn from(err: DecodeError) -> Bech32DecodeError

      Converts to this type from the input type.
      §

      impl PartialEq for Bech32DecodeError

      §

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

      Tests for self and other values to be equal, and is used by ==.
      1.0.0 · Source§

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

      Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
      §

      impl Eq for Bech32DecodeError

      §

      impl StructuralPartialEq for Bech32DecodeError

      Auto Trait Implementations§

      Blanket Implementations§

      Source§

      impl<T> Any for T
      where +}

      Variants§

      §

      Bech32Error(DecodeError)

      §

      Hrp(CheckedHrpstringError)

      §

      ReadError

      §

      HrpMismatch

      Fields

      §expected: String
      §actual: String

      Trait Implementations§

      Source§

      impl Clone for Bech32DecodeError

      Source§

      fn clone(&self) -> Bech32DecodeError

      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 Bech32DecodeError

      Source§

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

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

      impl Display for Bech32DecodeError

      Source§

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

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

      impl Error for Bech32DecodeError

      1.30.0 · Source§

      fn source(&self) -> Option<&(dyn Error + 'static)>

      Returns the lower-level source of this error, if any. Read more
      1.0.0 · Source§

      fn description(&self) -> &str

      👎Deprecated since 1.42.0: use the Display impl or to_string()
      1.0.0 · Source§

      fn cause(&self) -> Option<&dyn Error>

      👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
      Source§

      fn provide<'a>(&'a self, request: &mut Request<'a>)

      🔬This is a nightly-only experimental API. (error_generic_member_access)
      Provides type-based access to context intended for error reports. Read more
      Source§

      impl From<CheckedHrpstringError> for Bech32DecodeError

      Source§

      fn from(err: CheckedHrpstringError) -> Bech32DecodeError

      Converts to this type from the input type.
      Source§

      impl From<DecodeError> for Bech32DecodeError

      Source§

      fn from(err: DecodeError) -> Bech32DecodeError

      Converts to this type from the input type.
      Source§

      impl PartialEq for Bech32DecodeError

      Source§

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

      Tests for self and other values to be equal, and is used by ==.
      1.0.0 · Source§

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

      Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
      Source§

      impl Eq for Bech32DecodeError

      Source§

      impl StructuralPartialEq for Bech32DecodeError

      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
      Source§

      impl<T> CloneToUninit for T
      where diff --git a/rustdoc/latest/zcash_client_backend/encoding/enum.TransparentCodecError.html b/rustdoc/latest/zcash_client_backend/encoding/enum.TransparentCodecError.html index bb3dd508d..6b7b335ff 100644 --- a/rustdoc/latest/zcash_client_backend/encoding/enum.TransparentCodecError.html +++ b/rustdoc/latest/zcash_client_backend/encoding/enum.TransparentCodecError.html @@ -1,7 +1,7 @@ -TransparentCodecError in zcash_client_backend::encoding - Rust

      Enum TransparentCodecError

      pub enum TransparentCodecError {
      +TransparentCodecError in zcash_client_backend::encoding - Rust

      Enum TransparentCodecError

      Source
      pub enum TransparentCodecError {
           UnsupportedAddressType(String),
           Base58(Error),
      -}

      Variants§

      §

      UnsupportedAddressType(String)

      §

      Base58(Error)

      Trait Implementations§

      §

      impl Debug for TransparentCodecError

      §

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

      Formats the value using the given formatter. Read more
      §

      impl Display for TransparentCodecError

      §

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

      Formats the value using the given formatter. Read more
      §

      impl Error for TransparentCodecError

      1.30.0 · Source§

      fn source(&self) -> Option<&(dyn Error + 'static)>

      Returns the lower-level source of this error, if any. Read more
      1.0.0 · Source§

      fn description(&self) -> &str

      👎Deprecated since 1.42.0: use the Display impl or to_string()
      1.0.0 · Source§

      fn cause(&self) -> Option<&dyn Error>

      👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
      Source§

      fn provide<'a>(&'a self, request: &mut Request<'a>)

      🔬This is a nightly-only experimental API. (error_generic_member_access)
      Provides type-based access to context intended for error reports. Read more

      Auto Trait Implementations§

      Blanket Implementations§

      Source§

      impl<T> Any for T
      where +}

      Variants§

      §

      UnsupportedAddressType(String)

      §

      Base58(Error)

      Trait Implementations§

      Source§

      impl Debug for TransparentCodecError

      Source§

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

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

      impl Display for TransparentCodecError

      Source§

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

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

      impl Error for TransparentCodecError

      1.30.0 · Source§

      fn source(&self) -> Option<&(dyn Error + 'static)>

      Returns the lower-level source of this error, if any. Read more
      1.0.0 · Source§

      fn description(&self) -> &str

      👎Deprecated since 1.42.0: use the Display impl or to_string()
      1.0.0 · Source§

      fn cause(&self) -> Option<&dyn Error>

      👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
      Source§

      fn provide<'a>(&'a self, request: &mut Request<'a>)

      🔬This is a nightly-only experimental API. (error_generic_member_access)
      Provides type-based access to context intended for error reports. Read more

      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 diff --git a/rustdoc/latest/zcash_client_backend/encoding/fn.decode_extended_full_viewing_key.html b/rustdoc/latest/zcash_client_backend/encoding/fn.decode_extended_full_viewing_key.html index 964caf56b..1c734d4ac 100644 --- a/rustdoc/latest/zcash_client_backend/encoding/fn.decode_extended_full_viewing_key.html +++ b/rustdoc/latest/zcash_client_backend/encoding/fn.decode_extended_full_viewing_key.html @@ -1,4 +1,4 @@ -decode_extended_full_viewing_key in zcash_client_backend::encoding - Rust

      Function decode_extended_full_viewing_key

      pub fn decode_extended_full_viewing_key(
      +decode_extended_full_viewing_key in zcash_client_backend::encoding - Rust

      Function decode_extended_full_viewing_key

      Source
      pub fn decode_extended_full_viewing_key(
           hrp: &str,
           s: &str,
       ) -> Result<ExtendedFullViewingKey, Bech32DecodeError>
      Expand description

      Decodes an ExtendedFullViewingKey from a Bech32-encoded string, verifying that it matches diff --git a/rustdoc/latest/zcash_client_backend/encoding/fn.decode_extended_spending_key.html b/rustdoc/latest/zcash_client_backend/encoding/fn.decode_extended_spending_key.html index 476b06849..414f062ca 100644 --- a/rustdoc/latest/zcash_client_backend/encoding/fn.decode_extended_spending_key.html +++ b/rustdoc/latest/zcash_client_backend/encoding/fn.decode_extended_spending_key.html @@ -1,4 +1,4 @@ -decode_extended_spending_key in zcash_client_backend::encoding - Rust

      Function decode_extended_spending_key

      pub fn decode_extended_spending_key(
      +decode_extended_spending_key in zcash_client_backend::encoding - Rust

      Function decode_extended_spending_key

      Source
      pub fn decode_extended_spending_key(
           hrp: &str,
           s: &str,
       ) -> Result<ExtendedSpendingKey, Bech32DecodeError>
      Expand description

      Decodes an ExtendedSpendingKey from a Bech32-encoded string.

      diff --git a/rustdoc/latest/zcash_client_backend/encoding/fn.decode_extfvk_with_network.html b/rustdoc/latest/zcash_client_backend/encoding/fn.decode_extfvk_with_network.html index af0ddf1e8..1df92c620 100644 --- a/rustdoc/latest/zcash_client_backend/encoding/fn.decode_extfvk_with_network.html +++ b/rustdoc/latest/zcash_client_backend/encoding/fn.decode_extfvk_with_network.html @@ -1,4 +1,4 @@ -decode_extfvk_with_network in zcash_client_backend::encoding - Rust

      Function decode_extfvk_with_network

      pub fn decode_extfvk_with_network(
      +decode_extfvk_with_network in zcash_client_backend::encoding - Rust

      Function decode_extfvk_with_network

      Source
      pub fn decode_extfvk_with_network(
           s: &str,
       ) -> Result<(NetworkType, ExtendedFullViewingKey), Bech32DecodeError>
      Expand description

      Decodes an ExtendedFullViewingKey and the [NetworkType] that it is intended for use with from a Bech32-encoded string.

      diff --git a/rustdoc/latest/zcash_client_backend/encoding/fn.decode_payment_address.html b/rustdoc/latest/zcash_client_backend/encoding/fn.decode_payment_address.html index 45e7d341d..cfe3f1d03 100644 --- a/rustdoc/latest/zcash_client_backend/encoding/fn.decode_payment_address.html +++ b/rustdoc/latest/zcash_client_backend/encoding/fn.decode_payment_address.html @@ -1,4 +1,4 @@ -decode_payment_address in zcash_client_backend::encoding - Rust

      Function decode_payment_address

      pub fn decode_payment_address(
      +decode_payment_address in zcash_client_backend::encoding - Rust

      Function decode_payment_address

      Source
      pub fn decode_payment_address(
           hrp: &str,
           s: &str,
       ) -> Result<PaymentAddress, Bech32DecodeError>
      Expand description

      Decodes a PaymentAddress from a Bech32-encoded string.

      diff --git a/rustdoc/latest/zcash_client_backend/encoding/fn.decode_transparent_address.html b/rustdoc/latest/zcash_client_backend/encoding/fn.decode_transparent_address.html index 1c91d7889..808c91c44 100644 --- a/rustdoc/latest/zcash_client_backend/encoding/fn.decode_transparent_address.html +++ b/rustdoc/latest/zcash_client_backend/encoding/fn.decode_transparent_address.html @@ -1,4 +1,4 @@ -decode_transparent_address in zcash_client_backend::encoding - Rust

      Function decode_transparent_address

      pub fn decode_transparent_address(
      +decode_transparent_address in zcash_client_backend::encoding - Rust

      Function decode_transparent_address

      Source
      pub fn decode_transparent_address(
           pubkey_version: &[u8],
           script_version: &[u8],
           s: &str,
      diff --git a/rustdoc/latest/zcash_client_backend/encoding/fn.encode_extended_full_viewing_key.html b/rustdoc/latest/zcash_client_backend/encoding/fn.encode_extended_full_viewing_key.html
      index 28e53ea53..975dd1a0f 100644
      --- a/rustdoc/latest/zcash_client_backend/encoding/fn.encode_extended_full_viewing_key.html
      +++ b/rustdoc/latest/zcash_client_backend/encoding/fn.encode_extended_full_viewing_key.html
      @@ -1,4 +1,4 @@
      -encode_extended_full_viewing_key in zcash_client_backend::encoding - Rust

      Function encode_extended_full_viewing_key

      pub fn encode_extended_full_viewing_key(
      +encode_extended_full_viewing_key in zcash_client_backend::encoding - Rust

      Function encode_extended_full_viewing_key

      Source
      pub fn encode_extended_full_viewing_key(
           hrp: &str,
           extfvk: &ExtendedFullViewingKey,
       ) -> String
      Expand description

      Writes an ExtendedFullViewingKey as a Bech32-encoded string.

      diff --git a/rustdoc/latest/zcash_client_backend/encoding/fn.encode_extended_spending_key.html b/rustdoc/latest/zcash_client_backend/encoding/fn.encode_extended_spending_key.html index 2fce2842f..953280fa7 100644 --- a/rustdoc/latest/zcash_client_backend/encoding/fn.encode_extended_spending_key.html +++ b/rustdoc/latest/zcash_client_backend/encoding/fn.encode_extended_spending_key.html @@ -1,4 +1,4 @@ -encode_extended_spending_key in zcash_client_backend::encoding - Rust

      Function encode_extended_spending_key

      pub fn encode_extended_spending_key(
      +encode_extended_spending_key in zcash_client_backend::encoding - Rust

      Function encode_extended_spending_key

      Source
      pub fn encode_extended_spending_key(
           hrp: &str,
           extsk: &ExtendedSpendingKey,
       ) -> String
      Expand description

      Writes an ExtendedSpendingKey as a Bech32-encoded string.

      diff --git a/rustdoc/latest/zcash_client_backend/encoding/fn.encode_payment_address.html b/rustdoc/latest/zcash_client_backend/encoding/fn.encode_payment_address.html index 28d118dec..808b19cb4 100644 --- a/rustdoc/latest/zcash_client_backend/encoding/fn.encode_payment_address.html +++ b/rustdoc/latest/zcash_client_backend/encoding/fn.encode_payment_address.html @@ -1,4 +1,4 @@ -encode_payment_address in zcash_client_backend::encoding - Rust

      Function encode_payment_address

      pub fn encode_payment_address(hrp: &str, addr: &PaymentAddress) -> String
      Expand description

      Writes a PaymentAddress as a Bech32-encoded string.

      +encode_payment_address in zcash_client_backend::encoding - Rust

      Function encode_payment_address

      Source
      pub fn encode_payment_address(hrp: &str, addr: &PaymentAddress) -> String
      Expand description

      Writes a PaymentAddress as a Bech32-encoded string.

      §Examples

      use group::Group;
       use sapling::{Diversifier, PaymentAddress};
      diff --git a/rustdoc/latest/zcash_client_backend/encoding/fn.encode_payment_address_p.html b/rustdoc/latest/zcash_client_backend/encoding/fn.encode_payment_address_p.html
      index fd87f043b..ed7cac41d 100644
      --- a/rustdoc/latest/zcash_client_backend/encoding/fn.encode_payment_address_p.html
      +++ b/rustdoc/latest/zcash_client_backend/encoding/fn.encode_payment_address_p.html
      @@ -1,4 +1,4 @@
      -encode_payment_address_p in zcash_client_backend::encoding - Rust

      Function encode_payment_address_p

      pub fn encode_payment_address_p<P>(params: &P, addr: &PaymentAddress) -> String
      where +encode_payment_address_p in zcash_client_backend::encoding - Rust

      Function encode_payment_address_p

      Source
      pub fn encode_payment_address_p<P>(params: &P, addr: &PaymentAddress) -> String
      where P: Parameters,
      Expand description

      Writes a PaymentAddress as a Bech32-encoded string using the human-readable prefix values defined in the specified network parameters.

      diff --git a/rustdoc/latest/zcash_client_backend/encoding/fn.encode_transparent_address.html b/rustdoc/latest/zcash_client_backend/encoding/fn.encode_transparent_address.html index 66c9a6d42..d527ecd56 100644 --- a/rustdoc/latest/zcash_client_backend/encoding/fn.encode_transparent_address.html +++ b/rustdoc/latest/zcash_client_backend/encoding/fn.encode_transparent_address.html @@ -1,4 +1,4 @@ -encode_transparent_address in zcash_client_backend::encoding - Rust

      Function encode_transparent_address

      pub fn encode_transparent_address(
      +encode_transparent_address in zcash_client_backend::encoding - Rust

      Function encode_transparent_address

      Source
      pub fn encode_transparent_address(
           pubkey_version: &[u8],
           script_version: &[u8],
           addr: &TransparentAddress,
      diff --git a/rustdoc/latest/zcash_client_backend/encoding/fn.encode_transparent_address_p.html b/rustdoc/latest/zcash_client_backend/encoding/fn.encode_transparent_address_p.html
      index c6c9fbb27..17b2c65cd 100644
      --- a/rustdoc/latest/zcash_client_backend/encoding/fn.encode_transparent_address_p.html
      +++ b/rustdoc/latest/zcash_client_backend/encoding/fn.encode_transparent_address_p.html
      @@ -1,4 +1,4 @@
      -encode_transparent_address_p in zcash_client_backend::encoding - Rust

      Function encode_transparent_address_p

      pub fn encode_transparent_address_p<P>(
      +encode_transparent_address_p in zcash_client_backend::encoding - Rust

      Function encode_transparent_address_p

      Source
      pub fn encode_transparent_address_p<P>(
           params: &P,
           addr: &TransparentAddress,
       ) -> String
      where diff --git a/rustdoc/latest/zcash_client_backend/encoding/index.html b/rustdoc/latest/zcash_client_backend/encoding/index.html index d786bdc1e..98c52c580 100644 --- a/rustdoc/latest/zcash_client_backend/encoding/index.html +++ b/rustdoc/latest/zcash_client_backend/encoding/index.html @@ -1,4 +1,4 @@ -zcash_client_backend::encoding - Rust

      Module encoding

      Source
      👎Deprecated: This module is deprecated; use ::zcash_keys::encoding instead.

      Enums§

      Bech32DecodeError
      TransparentCodecError

      Traits§

      AddressCodec
      A trait for encoding and decoding Zcash addresses.

      Functions§

      decode_extended_full_viewing_key
      Decodes an ExtendedFullViewingKey from a Bech32-encoded string, verifying that it matches +zcash_client_backend::encoding - Rust

      Module encoding

      Source
      👎Deprecated: This module is deprecated; use ::zcash_keys::encoding instead.

      Enums§

      Bech32DecodeError
      TransparentCodecError

      Traits§

      AddressCodec
      A trait for encoding and decoding Zcash addresses.

      Functions§

      decode_extended_full_viewing_key
      Decodes an ExtendedFullViewingKey from a Bech32-encoded string, verifying that it matches the provided human-readable prefix.
      decode_extended_spending_key
      Decodes an ExtendedSpendingKey from a Bech32-encoded string.
      decode_extfvk_with_network
      Decodes an ExtendedFullViewingKey and the [NetworkType] that it is intended for use with from a Bech32-encoded string.
      decode_payment_address
      Decodes a PaymentAddress from a Bech32-encoded string.
      decode_transparent_address
      Decodes a [TransparentAddress] from a Base58Check-encoded string.
      encode_extended_full_viewing_key
      Writes an ExtendedFullViewingKey as a Bech32-encoded string.
      encode_extended_spending_key
      Writes an ExtendedSpendingKey as a Bech32-encoded string.
      encode_payment_address
      Writes a PaymentAddress as a Bech32-encoded string.
      encode_payment_address_p
      Writes a PaymentAddress as a Bech32-encoded string using the human-readable prefix values defined in the specified diff --git a/rustdoc/latest/zcash_client_backend/encoding/trait.AddressCodec.html b/rustdoc/latest/zcash_client_backend/encoding/trait.AddressCodec.html index 47ba7ad39..d7bdda3c0 100644 --- a/rustdoc/latest/zcash_client_backend/encoding/trait.AddressCodec.html +++ b/rustdoc/latest/zcash_client_backend/encoding/trait.AddressCodec.html @@ -1,28 +1,28 @@ -AddressCodec in zcash_client_backend::encoding - Rust

      Trait AddressCodec

      pub trait AddressCodec<P>: Sized {
      +AddressCodec in zcash_client_backend::encoding - Rust

      Trait AddressCodec

      Source
      pub trait AddressCodec<P>: Sized {
           type Error;
       
           // Required methods
           fn encode(&self, params: &P) -> String;
           fn decode(params: &P, address: &str) -> Result<Self, Self::Error>;
       }
      Expand description

      A trait for encoding and decoding Zcash addresses.

      -

      Required Associated Types§

      type Error

      Required Methods§

      fn encode(&self, params: &P) -> String

      Encode a Zcash address.

      +

      Required Associated Types§

      Required Methods§

      Source

      fn encode(&self, params: &P) -> String

      Encode a Zcash address.

      §Arguments
      • params - The network the address is to be used on.
      -

      fn decode(params: &P, address: &str) -> Result<Self, Self::Error>

      Decodes a Zcash address from its string representation.

      +
      Source

      fn decode(params: &P, address: &str) -> Result<Self, Self::Error>

      Decodes a Zcash address from its string representation.

      §Arguments
      • params - The network the address is to be used on.
      • address - The string representation of the address.
      -

      Dyn Compatibility§

      This trait is not dyn compatible.

      In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

      Implementations on Foreign Types§

      §

      impl<P> AddressCodec<P> for PaymentAddress
      where - P: Parameters,

      §

      type Error = Bech32DecodeError

      §

      fn encode(&self, params: &P) -> String

      §

      fn decode( +

      Dyn Compatibility§

      This trait is not dyn compatible.

      In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

      Implementations on Foreign Types§

      Source§

      impl<P> AddressCodec<P> for PaymentAddress
      where + P: Parameters,

      Source§

      type Error = Bech32DecodeError

      Source§

      fn encode(&self, params: &P) -> String

      Source§

      fn decode( params: &P, address: &str, -) -> Result<PaymentAddress, Bech32DecodeError>

      §

      impl<P> AddressCodec<P> for TransparentAddress
      where - P: Parameters,

      §

      type Error = TransparentCodecError

      §

      fn encode(&self, params: &P) -> String

      §

      fn decode( +) -> Result<PaymentAddress, Bech32DecodeError>

      Source§

      impl<P> AddressCodec<P> for TransparentAddress
      where + P: Parameters,

      Source§

      type Error = TransparentCodecError

      Source§

      fn encode(&self, params: &P) -> String

      Source§

      fn decode( params: &P, address: &str, -) -> Result<TransparentAddress, TransparentCodecError>

      Implementors§

      §

      impl<P> AddressCodec<P> for UnifiedAddress
      where - P: Parameters,

      \ No newline at end of file +) -> Result<TransparentAddress, TransparentCodecError>

      Implementors§

      Source§

      impl<P> AddressCodec<P> for UnifiedAddress
      where + P: Parameters,

      \ No newline at end of file diff --git a/rustdoc/latest/zcash_client_backend/enum.TransferType.html b/rustdoc/latest/zcash_client_backend/enum.TransferType.html index f52c4b74a..5b5b36035 100644 --- a/rustdoc/latest/zcash_client_backend/enum.TransferType.html +++ b/rustdoc/latest/zcash_client_backend/enum.TransferType.html @@ -1,4 +1,4 @@ -TransferType in zcash_client_backend - Rust

      Enum TransferType

      Source
      pub enum TransferType {
      +TransferType in zcash_client_backend - Rust

      Enum TransferType

      Source
      pub enum TransferType {
           Incoming,
           WalletInternal,
           Outgoing,
      diff --git a/rustdoc/latest/zcash_client_backend/fees/common/index.html b/rustdoc/latest/zcash_client_backend/fees/common/index.html
      index a03ec681d..3efac2073 100644
      --- a/rustdoc/latest/zcash_client_backend/fees/common/index.html
      +++ b/rustdoc/latest/zcash_client_backend/fees/common/index.html
      @@ -1 +1 @@
      -zcash_client_backend::fees::common - Rust

      Module common

      Source
      \ No newline at end of file +zcash_client_backend::fees::common - Rust

      Module common

      Source
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_client_backend/fees/enum.ChangeError.html b/rustdoc/latest/zcash_client_backend/fees/enum.ChangeError.html index 6112e0892..9515cabd6 100644 --- a/rustdoc/latest/zcash_client_backend/fees/enum.ChangeError.html +++ b/rustdoc/latest/zcash_client_backend/fees/enum.ChangeError.html @@ -1,4 +1,4 @@ -ChangeError in zcash_client_backend::fees - Rust

      Enum ChangeError

      Source
      pub enum ChangeError<E, NoteRefT> {
      +ChangeError in zcash_client_backend::fees - Rust

      Enum ChangeError

      Source
      pub enum ChangeError<E, NoteRefT> {
           InsufficientFunds {
               available: Zatoshis,
               required: Zatoshis,
      diff --git a/rustdoc/latest/zcash_client_backend/fees/enum.DustAction.html b/rustdoc/latest/zcash_client_backend/fees/enum.DustAction.html
      index bdee6fc3f..d9819dd8a 100644
      --- a/rustdoc/latest/zcash_client_backend/fees/enum.DustAction.html
      +++ b/rustdoc/latest/zcash_client_backend/fees/enum.DustAction.html
      @@ -1,4 +1,4 @@
      -DustAction in zcash_client_backend::fees - Rust

      Enum DustAction

      Source
      pub enum DustAction {
      +DustAction in zcash_client_backend::fees - Rust

      Enum DustAction

      Source
      pub enum DustAction {
           Reject,
           AllowDustChange,
           AddDustToFee,
      diff --git a/rustdoc/latest/zcash_client_backend/fees/enum.EphemeralBalance.html b/rustdoc/latest/zcash_client_backend/fees/enum.EphemeralBalance.html
      index f3c4744ae..236025f64 100644
      --- a/rustdoc/latest/zcash_client_backend/fees/enum.EphemeralBalance.html
      +++ b/rustdoc/latest/zcash_client_backend/fees/enum.EphemeralBalance.html
      @@ -1,4 +1,4 @@
      -EphemeralBalance in zcash_client_backend::fees - Rust

      Enum EphemeralBalance

      Source
      pub enum EphemeralBalance {
      +EphemeralBalance in zcash_client_backend::fees - Rust

      Enum EphemeralBalance

      Source
      pub enum EphemeralBalance {
           Input(Zatoshis),
           Output(Zatoshis),
       }
      Expand description

      EphemeralBalance describes the ephemeral input or output value for a transaction. It is used diff --git a/rustdoc/latest/zcash_client_backend/fees/enum.StandardFeeRule.html b/rustdoc/latest/zcash_client_backend/fees/enum.StandardFeeRule.html index 6851735ba..a1d46f638 100644 --- a/rustdoc/latest/zcash_client_backend/fees/enum.StandardFeeRule.html +++ b/rustdoc/latest/zcash_client_backend/fees/enum.StandardFeeRule.html @@ -1,4 +1,4 @@ -StandardFeeRule in zcash_client_backend::fees - Rust

      Enum StandardFeeRule

      Source
      pub enum StandardFeeRule {
      +StandardFeeRule in zcash_client_backend::fees - Rust

      Enum StandardFeeRule

      Source
      pub enum StandardFeeRule {
           Zip317,
       }
      Expand description

      An enumeration of the standard fee rules supported by the wallet backend.

      Variants§

      §

      Zip317

      Trait Implementations§

      Source§

      impl Clone for StandardFeeRule

      Source§

      fn clone(&self) -> StandardFeeRule

      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 StandardFeeRule

      Source§

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

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

      impl FeeRule for StandardFeeRule

      Source§

      type Error = FeeError

      Source§

      fn fee_required<P: Parameters>( diff --git a/rustdoc/latest/zcash_client_backend/fees/index.html b/rustdoc/latest/zcash_client_backend/fees/index.html index 5db7c4b13..2c41cf650 100644 --- a/rustdoc/latest/zcash_client_backend/fees/index.html +++ b/rustdoc/latest/zcash_client_backend/fees/index.html @@ -1,4 +1,4 @@ -zcash_client_backend::fees - Rust

      Module fees

      Source

      Modules§

      common
      orchardorchard
      Types related to computation of fees and change related to the Orchard components +zcash_client_backend::fees - Rust

      Module fees

      Source

      Modules§

      common
      orchardorchard
      Types related to computation of fees and change related to the Orchard components of a transaction.
      sapling
      Types related to computation of fees and change related to the Sapling components of a transaction.
      standard
      Change strategies designed for use with a standard fee.
      zip317
      Change strategies designed to implement the ZIP 317 fee rules.

      Structs§

      ChangeValue
      ChangeValue represents either a proposed change output to a shielded pool (with an optional change memo), or if the “transparent-inputs” feature is diff --git a/rustdoc/latest/zcash_client_backend/fees/orchard/index.html b/rustdoc/latest/zcash_client_backend/fees/orchard/index.html index c08edb1eb..f2ea920bc 100644 --- a/rustdoc/latest/zcash_client_backend/fees/orchard/index.html +++ b/rustdoc/latest/zcash_client_backend/fees/orchard/index.html @@ -1,4 +1,4 @@ -zcash_client_backend::fees::orchard - Rust

      Module orchard

      Source
      Available on crate feature orchard only.
      Expand description

      Types related to computation of fees and change related to the Orchard components +zcash_client_backend::fees::orchard - Rust

      Module orchard

      Source
      Available on crate feature orchard only.
      Expand description

      Types related to computation of fees and change related to the Orchard components of a transaction.

      Structs§

      EmptyBundleView
      A BundleView for the empty bundle with [BundleType::DEFAULT] bundle type.

      Traits§

      BundleView
      A trait that provides a minimized view of Orchard bundle configuration suitable for use in fee and change calculation.
      InputView
      A trait that provides a minimized view of an Orchard input suitable for use in fee and change diff --git a/rustdoc/latest/zcash_client_backend/fees/orchard/struct.EmptyBundleView.html b/rustdoc/latest/zcash_client_backend/fees/orchard/struct.EmptyBundleView.html index b2ce8b4b9..1b6dd914d 100644 --- a/rustdoc/latest/zcash_client_backend/fees/orchard/struct.EmptyBundleView.html +++ b/rustdoc/latest/zcash_client_backend/fees/orchard/struct.EmptyBundleView.html @@ -1,4 +1,4 @@ -EmptyBundleView in zcash_client_backend::fees::orchard - Rust

      Struct EmptyBundleView

      Source
      pub struct EmptyBundleView;
      Available on crate feature orchard only.
      Expand description

      A BundleView for the empty bundle with [BundleType::DEFAULT] bundle type.

      +EmptyBundleView in zcash_client_backend::fees::orchard - Rust

      Struct EmptyBundleView

      Source
      pub struct EmptyBundleView;
      Available on crate feature orchard only.
      Expand description

      A BundleView for the empty bundle with [BundleType::DEFAULT] bundle type.

      Trait Implementations§

      Source§

      impl<NoteRef> BundleView<NoteRef> for EmptyBundleView

      Source§

      type In = Infallible

      The type of inputs to the bundle.
      Source§

      type Out = Infallible

      The type of inputs of the bundle.
      Source§

      fn bundle_type(&self) -> BundleType

      Returns the type of the bundle
      Source§

      fn inputs(&self) -> &[Self::In]

      Returns the inputs to the bundle.
      Source§

      fn outputs(&self) -> &[Self::Out]

      Returns the outputs of the bundle.

      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 diff --git a/rustdoc/latest/zcash_client_backend/fees/orchard/trait.BundleView.html b/rustdoc/latest/zcash_client_backend/fees/orchard/trait.BundleView.html index 5dddc5ac0..dedb8ca2e 100644 --- a/rustdoc/latest/zcash_client_backend/fees/orchard/trait.BundleView.html +++ b/rustdoc/latest/zcash_client_backend/fees/orchard/trait.BundleView.html @@ -1,4 +1,4 @@ -BundleView in zcash_client_backend::fees::orchard - Rust

      Trait BundleView

      Source
      pub trait BundleView<NoteRef> {
      +BundleView in zcash_client_backend::fees::orchard - Rust

      Trait BundleView

      Source
      pub trait BundleView<NoteRef> {
           type In: InputView<NoteRef>;
           type Out: OutputView;
       
      diff --git a/rustdoc/latest/zcash_client_backend/fees/orchard/trait.InputView.html b/rustdoc/latest/zcash_client_backend/fees/orchard/trait.InputView.html
      index 1aaf656d6..266ae129a 100644
      --- a/rustdoc/latest/zcash_client_backend/fees/orchard/trait.InputView.html
      +++ b/rustdoc/latest/zcash_client_backend/fees/orchard/trait.InputView.html
      @@ -1,4 +1,4 @@
      -InputView in zcash_client_backend::fees::orchard - Rust

      Trait InputView

      Source
      pub trait InputView<NoteRef> {
      +InputView in zcash_client_backend::fees::orchard - Rust

      Trait InputView

      Source
      pub trait InputView<NoteRef> {
           // Required methods
           fn note_id(&self) -> &NoteRef;
           fn value(&self) -> Zatoshis;
      diff --git a/rustdoc/latest/zcash_client_backend/fees/orchard/trait.OutputView.html b/rustdoc/latest/zcash_client_backend/fees/orchard/trait.OutputView.html
      index e6d164fe1..3b339547b 100644
      --- a/rustdoc/latest/zcash_client_backend/fees/orchard/trait.OutputView.html
      +++ b/rustdoc/latest/zcash_client_backend/fees/orchard/trait.OutputView.html
      @@ -1,4 +1,4 @@
      -OutputView in zcash_client_backend::fees::orchard - Rust

      Trait OutputView

      Source
      pub trait OutputView {
      +OutputView in zcash_client_backend::fees::orchard - Rust

      Trait OutputView

      Source
      pub trait OutputView {
           // Required method
           fn value(&self) -> Zatoshis;
       }
      Available on crate feature orchard only.
      Expand description

      A trait that provides a minimized view of a Orchard output suitable for use in fee and change diff --git a/rustdoc/latest/zcash_client_backend/fees/sapling/index.html b/rustdoc/latest/zcash_client_backend/fees/sapling/index.html index a51f3cf10..a93bb8b3c 100644 --- a/rustdoc/latest/zcash_client_backend/fees/sapling/index.html +++ b/rustdoc/latest/zcash_client_backend/fees/sapling/index.html @@ -1,4 +1,4 @@ -zcash_client_backend::fees::sapling - Rust

      Module sapling

      Source
      Expand description

      Types related to computation of fees and change related to the Sapling components +zcash_client_backend::fees::sapling - Rust

      Module sapling

      Source
      Expand description

      Types related to computation of fees and change related to the Sapling components of a transaction.

      Structs§

      EmptyBundleView
      A BundleView for the empty bundle with [BundleType::DEFAULT] bundle type.

      Traits§

      BundleView
      A trait that provides a minimized view of Sapling bundle configuration suitable for use in fee and change calculation.
      InputView
      A trait that provides a minimized view of a Sapling input suitable for use in diff --git a/rustdoc/latest/zcash_client_backend/fees/sapling/struct.EmptyBundleView.html b/rustdoc/latest/zcash_client_backend/fees/sapling/struct.EmptyBundleView.html index cdeca01ef..40c542b38 100644 --- a/rustdoc/latest/zcash_client_backend/fees/sapling/struct.EmptyBundleView.html +++ b/rustdoc/latest/zcash_client_backend/fees/sapling/struct.EmptyBundleView.html @@ -1,4 +1,4 @@ -EmptyBundleView in zcash_client_backend::fees::sapling - Rust

      Struct EmptyBundleView

      Source
      pub struct EmptyBundleView;
      Expand description

      A BundleView for the empty bundle with [BundleType::DEFAULT] bundle type.

      +EmptyBundleView in zcash_client_backend::fees::sapling - Rust

      Struct EmptyBundleView

      Source
      pub struct EmptyBundleView;
      Expand description

      A BundleView for the empty bundle with [BundleType::DEFAULT] bundle type.

      Trait Implementations§

      Source§

      impl<NoteRef> BundleView<NoteRef> for EmptyBundleView

      Source§

      type In = Infallible

      The type of inputs to the bundle.
      Source§

      type Out = Infallible

      The type of inputs of the bundle.
      Source§

      fn bundle_type(&self) -> BundleType

      Returns the type of the bundle
      Source§

      fn inputs(&self) -> &[Self::In]

      Returns the inputs to the bundle.
      Source§

      fn outputs(&self) -> &[Self::Out]

      Returns the outputs of the bundle.

      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 diff --git a/rustdoc/latest/zcash_client_backend/fees/sapling/trait.BundleView.html b/rustdoc/latest/zcash_client_backend/fees/sapling/trait.BundleView.html index b27e47b48..2237e212b 100644 --- a/rustdoc/latest/zcash_client_backend/fees/sapling/trait.BundleView.html +++ b/rustdoc/latest/zcash_client_backend/fees/sapling/trait.BundleView.html @@ -1,4 +1,4 @@ -BundleView in zcash_client_backend::fees::sapling - Rust

      Trait BundleView

      Source
      pub trait BundleView<NoteRef> {
      +BundleView in zcash_client_backend::fees::sapling - Rust

      Trait BundleView

      Source
      pub trait BundleView<NoteRef> {
           type In: InputView<NoteRef>;
           type Out: OutputView;
       
      diff --git a/rustdoc/latest/zcash_client_backend/fees/sapling/trait.InputView.html b/rustdoc/latest/zcash_client_backend/fees/sapling/trait.InputView.html
      index d57099f04..6e33d2541 100644
      --- a/rustdoc/latest/zcash_client_backend/fees/sapling/trait.InputView.html
      +++ b/rustdoc/latest/zcash_client_backend/fees/sapling/trait.InputView.html
      @@ -1,4 +1,4 @@
      -InputView in zcash_client_backend::fees::sapling - Rust

      Trait InputView

      Source
      pub trait InputView<NoteRef> {
      +InputView in zcash_client_backend::fees::sapling - Rust

      Trait InputView

      Source
      pub trait InputView<NoteRef> {
           // Required methods
           fn note_id(&self) -> &NoteRef;
           fn value(&self) -> Zatoshis;
      diff --git a/rustdoc/latest/zcash_client_backend/fees/sapling/trait.OutputView.html b/rustdoc/latest/zcash_client_backend/fees/sapling/trait.OutputView.html
      index 75c9e3c6d..46fb0f0a5 100644
      --- a/rustdoc/latest/zcash_client_backend/fees/sapling/trait.OutputView.html
      +++ b/rustdoc/latest/zcash_client_backend/fees/sapling/trait.OutputView.html
      @@ -1,4 +1,4 @@
      -OutputView in zcash_client_backend::fees::sapling - Rust

      Trait OutputView

      Source
      pub trait OutputView {
      +OutputView in zcash_client_backend::fees::sapling - Rust

      Trait OutputView

      Source
      pub trait OutputView {
           // Required method
           fn value(&self) -> Zatoshis;
       }
      Expand description

      A trait that provides a minimized view of a Sapling output suitable for use in diff --git a/rustdoc/latest/zcash_client_backend/fees/standard/index.html b/rustdoc/latest/zcash_client_backend/fees/standard/index.html index e8225f47d..6dfb236e7 100644 --- a/rustdoc/latest/zcash_client_backend/fees/standard/index.html +++ b/rustdoc/latest/zcash_client_backend/fees/standard/index.html @@ -1,4 +1,4 @@ -zcash_client_backend::fees::standard - Rust

      Module standard

      Source
      Expand description

      Change strategies designed for use with a standard fee.

      +zcash_client_backend::fees::standard - Rust

      Module standard

      Source
      Expand description

      Change strategies designed for use with a standard fee.

      Type Aliases§

      MultiOutputChangeStrategy
      A change strategy that proposes change as potentially multiple evenly-sized outputs having at least a threshold value. The output pool is chosen as the most current pool that avoids unnecessary pool-crossing (with a specified fallback when the transaction has no shielded diff --git a/rustdoc/latest/zcash_client_backend/fees/standard/type.MultiOutputChangeStrategy.html b/rustdoc/latest/zcash_client_backend/fees/standard/type.MultiOutputChangeStrategy.html index 721fd969d..dffb20113 100644 --- a/rustdoc/latest/zcash_client_backend/fees/standard/type.MultiOutputChangeStrategy.html +++ b/rustdoc/latest/zcash_client_backend/fees/standard/type.MultiOutputChangeStrategy.html @@ -1,4 +1,4 @@ -MultiOutputChangeStrategy in zcash_client_backend::fees::standard - Rust

      Type Alias MultiOutputChangeStrategy

      Source
      pub type MultiOutputChangeStrategy<I> = MultiOutputChangeStrategy<StandardFeeRule, I>;
      Expand description

      A change strategy that proposes change as potentially multiple evenly-sized outputs having at +MultiOutputChangeStrategy in zcash_client_backend::fees::standard - Rust

      Type Alias MultiOutputChangeStrategy

      Source
      pub type MultiOutputChangeStrategy<I> = MultiOutputChangeStrategy<StandardFeeRule, I>;
      Expand description

      A change strategy that proposes change as potentially multiple evenly-sized outputs having at least a threshold value. The output pool is chosen as the most current pool that avoids unnecessary pool-crossing (with a specified fallback when the transaction has no shielded inputs). Fee calculation is delegated to the provided fee rule.

      diff --git a/rustdoc/latest/zcash_client_backend/fees/standard/type.SingleOutputChangeStrategy.html b/rustdoc/latest/zcash_client_backend/fees/standard/type.SingleOutputChangeStrategy.html index f41c25fe9..435dd938c 100644 --- a/rustdoc/latest/zcash_client_backend/fees/standard/type.SingleOutputChangeStrategy.html +++ b/rustdoc/latest/zcash_client_backend/fees/standard/type.SingleOutputChangeStrategy.html @@ -1,4 +1,4 @@ -SingleOutputChangeStrategy in zcash_client_backend::fees::standard - Rust

      Type Alias SingleOutputChangeStrategy

      Source
      pub type SingleOutputChangeStrategy<I> = SingleOutputChangeStrategy<StandardFeeRule, I>;
      Expand description

      A change strategy that proposes change as a single output. The output pool is chosen +SingleOutputChangeStrategy in zcash_client_backend::fees::standard - Rust

      Type Alias SingleOutputChangeStrategy

      Source
      pub type SingleOutputChangeStrategy<I> = SingleOutputChangeStrategy<StandardFeeRule, I>;
      Expand description

      A change strategy that proposes change as a single output. The output pool is chosen as the most current pool that avoids unnecessary pool-crossing (with a specified fallback when the transaction has no shielded inputs). Fee calculation is delegated to the provided fee rule.

      diff --git a/rustdoc/latest/zcash_client_backend/fees/struct.ChangeValue.html b/rustdoc/latest/zcash_client_backend/fees/struct.ChangeValue.html index e121b70d0..bf076f666 100644 --- a/rustdoc/latest/zcash_client_backend/fees/struct.ChangeValue.html +++ b/rustdoc/latest/zcash_client_backend/fees/struct.ChangeValue.html @@ -1,4 +1,4 @@ -ChangeValue in zcash_client_backend::fees - Rust

      Struct ChangeValue

      Source
      pub struct ChangeValue(/* private fields */);
      Expand description

      ChangeValue represents either a proposed change output to a shielded pool +ChangeValue in zcash_client_backend::fees - Rust

      Struct ChangeValue

      Source
      pub struct ChangeValue(/* private fields */);
      Expand description

      ChangeValue represents either a proposed change output to a shielded pool (with an optional change memo), or if the “transparent-inputs” feature is enabled, an ephemeral output to the transparent pool.

      Implementations§

      Source§

      impl ChangeValue

      Source

      pub fn ephemeral_transparent(value: Zatoshis) -> Self

      Available on crate feature transparent-inputs only.

      Constructs a new ephemeral transparent output value.

      diff --git a/rustdoc/latest/zcash_client_backend/fees/struct.DustOutputPolicy.html b/rustdoc/latest/zcash_client_backend/fees/struct.DustOutputPolicy.html index 72ab3aed1..3248f4b5d 100644 --- a/rustdoc/latest/zcash_client_backend/fees/struct.DustOutputPolicy.html +++ b/rustdoc/latest/zcash_client_backend/fees/struct.DustOutputPolicy.html @@ -1,4 +1,4 @@ -DustOutputPolicy in zcash_client_backend::fees - Rust

      Struct DustOutputPolicy

      Source
      pub struct DustOutputPolicy { /* private fields */ }
      Expand description

      A policy describing how a ChangeStrategy should treat potentially dust-valued change +DustOutputPolicy in zcash_client_backend::fees - Rust

      Struct DustOutputPolicy

      Source
      pub struct DustOutputPolicy { /* private fields */ }
      Expand description

      A policy describing how a ChangeStrategy should treat potentially dust-valued change outputs (outputs that are likely to be without economic value due to fee rules).

      Implementations§

      Source§

      impl DustOutputPolicy

      Source

      pub fn new(action: DustAction, dust_threshold: Option<Zatoshis>) -> Self

      Constructs a new dust output policy.

      A dust policy created with None as the dust threshold will delegate determination diff --git a/rustdoc/latest/zcash_client_backend/fees/struct.SplitPolicy.html b/rustdoc/latest/zcash_client_backend/fees/struct.SplitPolicy.html index e98a76248..e3b6c2b07 100644 --- a/rustdoc/latest/zcash_client_backend/fees/struct.SplitPolicy.html +++ b/rustdoc/latest/zcash_client_backend/fees/struct.SplitPolicy.html @@ -1,4 +1,4 @@ -SplitPolicy in zcash_client_backend::fees - Rust

      Struct SplitPolicy

      Source
      pub struct SplitPolicy { /* private fields */ }
      Expand description

      A policy that describes how change output should be split into multiple notes for the purpose +SplitPolicy in zcash_client_backend::fees - Rust

      Struct SplitPolicy

      Source
      pub struct SplitPolicy { /* private fields */ }
      Expand description

      A policy that describes how change output should be split into multiple notes for the purpose of note management.

      If an account contains at least Self::target_output_count notes having at least value Self::min_split_output_value, this policy will recommend a single output; if the account diff --git a/rustdoc/latest/zcash_client_backend/fees/struct.TransactionBalance.html b/rustdoc/latest/zcash_client_backend/fees/struct.TransactionBalance.html index d42b73d98..acf367c77 100644 --- a/rustdoc/latest/zcash_client_backend/fees/struct.TransactionBalance.html +++ b/rustdoc/latest/zcash_client_backend/fees/struct.TransactionBalance.html @@ -1,4 +1,4 @@ -TransactionBalance in zcash_client_backend::fees - Rust

      Struct TransactionBalance

      Source
      pub struct TransactionBalance { /* private fields */ }
      Expand description

      The amount of change and fees required to make a transaction’s inputs and +TransactionBalance in zcash_client_backend::fees - Rust

      Struct TransactionBalance

      Source
      pub struct TransactionBalance { /* private fields */ }
      Expand description

      The amount of change and fees required to make a transaction’s inputs and outputs balance under a specific fee rule, as computed by a particular ChangeStrategy that is aware of that rule.

      Implementations§

      Source§

      impl TransactionBalance

      Source

      pub fn new( diff --git a/rustdoc/latest/zcash_client_backend/fees/trait.ChangeStrategy.html b/rustdoc/latest/zcash_client_backend/fees/trait.ChangeStrategy.html index baf36c0e8..3be94aca4 100644 --- a/rustdoc/latest/zcash_client_backend/fees/trait.ChangeStrategy.html +++ b/rustdoc/latest/zcash_client_backend/fees/trait.ChangeStrategy.html @@ -1,4 +1,4 @@ -ChangeStrategy in zcash_client_backend::fees - Rust

      Trait ChangeStrategy

      Source
      pub trait ChangeStrategy {
      +ChangeStrategy in zcash_client_backend::fees - Rust

      Trait ChangeStrategy

      Source
      pub trait ChangeStrategy {
           type FeeRule: FeeRule + Clone;
           type Error;
           type MetaSource: InputSource;
      diff --git a/rustdoc/latest/zcash_client_backend/fees/zip317/index.html b/rustdoc/latest/zcash_client_backend/fees/zip317/index.html
      index 95bef6560..a95905f20 100644
      --- a/rustdoc/latest/zcash_client_backend/fees/zip317/index.html
      +++ b/rustdoc/latest/zcash_client_backend/fees/zip317/index.html
      @@ -1,4 +1,4 @@
      -zcash_client_backend::fees::zip317 - Rust

      Module zip317

      Source
      Expand description

      Change strategies designed to implement the ZIP 317 fee rules.

      +zcash_client_backend::fees::zip317 - Rust

      Module zip317

      Source
      Expand description

      Change strategies designed to implement the ZIP 317 fee rules.

      Change selection in ZIP 317 requires careful handling of low-valued inputs to ensure that inputs added to a transaction do not cause fees to rise by an amount greater than their value.

      diff --git a/rustdoc/latest/zcash_client_backend/fees/zip317/struct.MultiOutputChangeStrategy.html b/rustdoc/latest/zcash_client_backend/fees/zip317/struct.MultiOutputChangeStrategy.html index fffebacf9..b7118bcf2 100644 --- a/rustdoc/latest/zcash_client_backend/fees/zip317/struct.MultiOutputChangeStrategy.html +++ b/rustdoc/latest/zcash_client_backend/fees/zip317/struct.MultiOutputChangeStrategy.html @@ -1,4 +1,4 @@ -MultiOutputChangeStrategy in zcash_client_backend::fees::zip317 - Rust

      Struct MultiOutputChangeStrategy

      Source
      pub struct MultiOutputChangeStrategy<R, I> { /* private fields */ }
      Expand description

      A change strategy that attempts to split the change value into some number of equal-sized notes +MultiOutputChangeStrategy in zcash_client_backend::fees::zip317 - Rust

      Struct MultiOutputChangeStrategy

      Source
      pub struct MultiOutputChangeStrategy<R, I> { /* private fields */ }
      Expand description

      A change strategy that attempts to split the change value into some number of equal-sized notes as dictated by the included SplitPolicy value.

      Implementations§

      Source§

      impl<R, I> MultiOutputChangeStrategy<R, I>

      Source

      pub fn new( fee_rule: R, diff --git a/rustdoc/latest/zcash_client_backend/fees/zip317/struct.SingleOutputChangeStrategy.html b/rustdoc/latest/zcash_client_backend/fees/zip317/struct.SingleOutputChangeStrategy.html index f7ecea60b..97a78b6be 100644 --- a/rustdoc/latest/zcash_client_backend/fees/zip317/struct.SingleOutputChangeStrategy.html +++ b/rustdoc/latest/zcash_client_backend/fees/zip317/struct.SingleOutputChangeStrategy.html @@ -1,4 +1,4 @@ -SingleOutputChangeStrategy in zcash_client_backend::fees::zip317 - Rust

      Struct SingleOutputChangeStrategy

      Source
      pub struct SingleOutputChangeStrategy<R, I> { /* private fields */ }
      Expand description

      A change strategy that proposes change as a single output. The output pool is chosen +SingleOutputChangeStrategy in zcash_client_backend::fees::zip317 - Rust

      Struct SingleOutputChangeStrategy

      Source
      pub struct SingleOutputChangeStrategy<R, I> { /* private fields */ }
      Expand description

      A change strategy that proposes change as a single output. The output pool is chosen as the most current pool that avoids unnecessary pool-crossing (with a specified fallback when the transaction has no shielded inputs). Fee calculation is delegated to the provided fee rule.

      diff --git a/rustdoc/latest/zcash_client_backend/fees/zip317/trait.Zip317FeeRule.html b/rustdoc/latest/zcash_client_backend/fees/zip317/trait.Zip317FeeRule.html index bc3dea124..e00b34f3f 100644 --- a/rustdoc/latest/zcash_client_backend/fees/zip317/trait.Zip317FeeRule.html +++ b/rustdoc/latest/zcash_client_backend/fees/zip317/trait.Zip317FeeRule.html @@ -1,4 +1,4 @@ -Zip317FeeRule in zcash_client_backend::fees::zip317 - Rust

      Trait Zip317FeeRule

      Source
      pub trait Zip317FeeRule: FeeRule {
      +Zip317FeeRule in zcash_client_backend::fees::zip317 - Rust

      Trait Zip317FeeRule

      Source
      pub trait Zip317FeeRule: FeeRule {
           // Required methods
           fn marginal_fee(&self) -> Zatoshis;
           fn grace_actions(&self) -> usize;
      diff --git a/rustdoc/latest/zcash_client_backend/fn.decrypt_transaction.html b/rustdoc/latest/zcash_client_backend/fn.decrypt_transaction.html
      index 98a6872fe..49c19b983 100644
      --- a/rustdoc/latest/zcash_client_backend/fn.decrypt_transaction.html
      +++ b/rustdoc/latest/zcash_client_backend/fn.decrypt_transaction.html
      @@ -1,4 +1,4 @@
      -decrypt_transaction in zcash_client_backend - Rust

      Function decrypt_transaction

      Source
      pub fn decrypt_transaction<'a, P: Parameters, AccountId: Copy>(
      +decrypt_transaction in zcash_client_backend - Rust

      Function decrypt_transaction

      Source
      pub fn decrypt_transaction<'a, P: Parameters, AccountId: Copy>(
           params: &P,
           mined_height: Option<BlockHeight>,
           chain_tip_height: Option<BlockHeight>,
      diff --git a/rustdoc/latest/zcash_client_backend/index.html b/rustdoc/latest/zcash_client_backend/index.html
      index 2f5c6d601..b06101b73 100644
      --- a/rustdoc/latest/zcash_client_backend/index.html
      +++ b/rustdoc/latest/zcash_client_backend/index.html
      @@ -1,4 +1,4 @@
      -zcash_client_backend - Rust

      Crate zcash_client_backend

      Source
      Expand description

      A crate for implementing Zcash light clients.

      +zcash_client_backend - Rust

      Crate zcash_client_backend

      Source
      Expand description

      A crate for implementing Zcash light clients.

      zcash_client_backend contains Rust structs and traits for creating shielded Zcash light clients.

      §Design

      §Wallet sync

      diff --git a/rustdoc/latest/zcash_client_backend/keys/enum.AddressGenerationError.html b/rustdoc/latest/zcash_client_backend/keys/enum.AddressGenerationError.html index 19eb8f02a..7d2bad68d 100644 --- a/rustdoc/latest/zcash_client_backend/keys/enum.AddressGenerationError.html +++ b/rustdoc/latest/zcash_client_backend/keys/enum.AddressGenerationError.html @@ -1,4 +1,4 @@ -AddressGenerationError in zcash_client_backend::keys - Rust

      Enum AddressGenerationError

      pub enum AddressGenerationError {
      +AddressGenerationError in zcash_client_backend::keys - Rust

      Enum AddressGenerationError

      Source
      pub enum AddressGenerationError {
           InvalidTransparentChildIndex(DiversifierIndex),
           InvalidSaplingDiversifierIndex(DiversifierIndex),
           DiversifierSpaceExhausted,
      @@ -16,7 +16,7 @@ as requested.

      address lacks an item of the requested type.

      §

      ShieldedReceiverRequired

      A Unified address cannot be generated without at least one shielded receiver being included.

      -

      Trait Implementations§

      §

      impl Clone for AddressGenerationError

      §

      fn clone(&self) -> AddressGenerationError

      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
      §

      impl Debug for AddressGenerationError

      §

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

      Formats the value using the given formatter. Read more
      §

      impl Display for AddressGenerationError

      §

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

      Formats the value using the given formatter. Read more
      §

      impl Error for AddressGenerationError

      1.30.0 · Source§

      fn source(&self) -> Option<&(dyn Error + 'static)>

      Returns the lower-level source of this error, if any. Read more
      1.0.0 · Source§

      fn description(&self) -> &str

      👎Deprecated since 1.42.0: use the Display impl or to_string()
      1.0.0 · Source§

      fn cause(&self) -> Option<&dyn Error>

      👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
      Source§

      fn provide<'a>(&'a self, request: &mut Request<'a>)

      🔬This is a nightly-only experimental API. (error_generic_member_access)
      Provides type-based access to context intended for error reports. Read more

      Auto Trait Implementations§

      Blanket Implementations§

      Source§

      impl<T> Any for T
      where +

      Trait Implementations§

      Source§

      impl Clone for AddressGenerationError

      Source§

      fn clone(&self) -> AddressGenerationError

      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 AddressGenerationError

      Source§

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

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

      impl Display for AddressGenerationError

      Source§

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

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

      impl Error for AddressGenerationError

      1.30.0 · Source§

      fn source(&self) -> Option<&(dyn Error + 'static)>

      Returns the lower-level source of this error, if any. Read more
      1.0.0 · Source§

      fn description(&self) -> &str

      👎Deprecated since 1.42.0: use the Display impl or to_string()
      1.0.0 · Source§

      fn cause(&self) -> Option<&dyn Error>

      👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
      Source§

      fn provide<'a>(&'a self, request: &mut Request<'a>)

      🔬This is a nightly-only experimental API. (error_generic_member_access)
      Provides type-based access to context intended for error reports. Read more

      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
      Source§

      impl<T> CloneToUninit for T
      where diff --git a/rustdoc/latest/zcash_client_backend/keys/enum.DecodingError.html b/rustdoc/latest/zcash_client_backend/keys/enum.DecodingError.html index 7bef34f5a..aeac493b9 100644 --- a/rustdoc/latest/zcash_client_backend/keys/enum.DecodingError.html +++ b/rustdoc/latest/zcash_client_backend/keys/enum.DecodingError.html @@ -1,4 +1,4 @@ -DecodingError in zcash_client_backend::keys - Rust

      Enum DecodingError

      pub enum DecodingError {
      +DecodingError in zcash_client_backend::keys - Rust

      Enum DecodingError

      Source
      pub enum DecodingError {
           ReadError(&'static str),
           EraInvalid,
           EraMismatch(Era),
      @@ -9,8 +9,8 @@
           KeyDataInvalid(Typecode),
       }
      Expand description

      A type for errors that can occur when decoding keys from their serialized representations.

      Variants§

      §

      ReadError(&'static str)

      §

      EraInvalid

      §

      EraMismatch(Era)

      §

      TypecodeInvalid

      §

      LengthInvalid

      §

      LengthMismatch(Typecode, u32)

      §

      InsufficientData(Typecode)

      §

      KeyDataInvalid(Typecode)

      The key data could not be decoded from its string representation to a valid key.

      -

      Trait Implementations§

      §

      impl Debug for DecodingError

      §

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

      Formats the value using the given formatter. Read more
      §

      impl Display for DecodingError

      §

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

      Formats the value using the given formatter. Read more
      §

      impl Error for DecodingError

      1.30.0 · Source§

      fn source(&self) -> Option<&(dyn Error + 'static)>

      Returns the lower-level source of this error, if any. Read more
      1.0.0 · Source§

      fn description(&self) -> &str

      👎Deprecated since 1.42.0: use the Display impl or to_string()
      1.0.0 · Source§

      fn cause(&self) -> Option<&dyn Error>

      👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
      Source§

      fn provide<'a>(&'a self, request: &mut Request<'a>)

      🔬This is a nightly-only experimental API. (error_generic_member_access)
      Provides type-based access to context intended for error reports. Read more
      §

      impl PartialEq for DecodingError

      §

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

      Tests for self and other values to be equal, and is used by ==.
      1.0.0 · Source§

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

      Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
      §

      impl Eq for DecodingError

      §

      impl StructuralPartialEq for DecodingError

      Auto Trait Implementations§

      Blanket Implementations§

      Source§

      impl<T> Any for T
      where +

      Trait Implementations§

      Source§

      impl Debug for DecodingError

      Source§

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

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

      impl Display for DecodingError

      Source§

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

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

      impl Error for DecodingError

      1.30.0 · Source§

      fn source(&self) -> Option<&(dyn Error + 'static)>

      Returns the lower-level source of this error, if any. Read more
      1.0.0 · Source§

      fn description(&self) -> &str

      👎Deprecated since 1.42.0: use the Display impl or to_string()
      1.0.0 · Source§

      fn cause(&self) -> Option<&dyn Error>

      👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
      Source§

      fn provide<'a>(&'a self, request: &mut Request<'a>)

      🔬This is a nightly-only experimental API. (error_generic_member_access)
      Provides type-based access to context intended for error reports. Read more
      Source§

      impl PartialEq for DecodingError

      Source§

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

      Tests for self and other values to be equal, and is used by ==.
      1.0.0 · Source§

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

      Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
      Source§

      impl Eq for DecodingError

      Source§

      impl StructuralPartialEq for DecodingError

      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 diff --git a/rustdoc/latest/zcash_client_backend/keys/enum.DerivationError.html b/rustdoc/latest/zcash_client_backend/keys/enum.DerivationError.html index 654de088f..6503bee91 100644 --- a/rustdoc/latest/zcash_client_backend/keys/enum.DerivationError.html +++ b/rustdoc/latest/zcash_client_backend/keys/enum.DerivationError.html @@ -1,7 +1,7 @@ -DerivationError in zcash_client_backend::keys - Rust

      Enum DerivationError

      pub enum DerivationError {
      +DerivationError in zcash_client_backend::keys - Rust

      Enum DerivationError

      Source
      pub enum DerivationError {
           Orchard(Error),
           Transparent(Error),
      -}

      Variants§

      §

      Orchard(Error)

      §

      Transparent(Error)

      Trait Implementations§

      §

      impl Debug for DerivationError

      §

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

      Formats the value using the given formatter. Read more
      §

      impl Display for DerivationError

      §

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

      Formats the value using the given formatter. Read more
      §

      impl Error for DerivationError

      1.30.0 · Source§

      fn source(&self) -> Option<&(dyn Error + 'static)>

      Returns the lower-level source of this error, if any. Read more
      1.0.0 · Source§

      fn description(&self) -> &str

      👎Deprecated since 1.42.0: use the Display impl or to_string()
      1.0.0 · Source§

      fn cause(&self) -> Option<&dyn Error>

      👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
      Source§

      fn provide<'a>(&'a self, request: &mut Request<'a>)

      🔬This is a nightly-only experimental API. (error_generic_member_access)
      Provides type-based access to context intended for error reports. Read more
      §

      impl From<Error> for DerivationError

      §

      fn from(e: Error) -> DerivationError

      Converts to this type from the input type.

      Auto Trait Implementations§

      Blanket Implementations§

      Source§

      impl<T> Any for T
      where +}

      Variants§

      §

      Orchard(Error)

      §

      Transparent(Error)

      Trait Implementations§

      Source§

      impl Debug for DerivationError

      Source§

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

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

      impl Display for DerivationError

      Source§

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

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

      impl Error for DerivationError

      1.30.0 · Source§

      fn source(&self) -> Option<&(dyn Error + 'static)>

      Returns the lower-level source of this error, if any. Read more
      1.0.0 · Source§

      fn description(&self) -> &str

      👎Deprecated since 1.42.0: use the Display impl or to_string()
      1.0.0 · Source§

      fn cause(&self) -> Option<&dyn Error>

      👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
      Source§

      fn provide<'a>(&'a self, request: &mut Request<'a>)

      🔬This is a nightly-only experimental API. (error_generic_member_access)
      Provides type-based access to context intended for error reports. Read more
      Source§

      impl From<Error> for DerivationError

      Source§

      fn from(e: Error) -> DerivationError

      Converts to this type from the input type.

      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 diff --git a/rustdoc/latest/zcash_client_backend/keys/enum.Era.html b/rustdoc/latest/zcash_client_backend/keys/enum.Era.html index d8b4a920b..cddcf8336 100644 --- a/rustdoc/latest/zcash_client_backend/keys/enum.Era.html +++ b/rustdoc/latest/zcash_client_backend/keys/enum.Era.html @@ -1,4 +1,4 @@ -Era in zcash_client_backend::keys - Rust

      Enum Era

      pub enum Era {
      +Era in zcash_client_backend::keys - Rust

      Enum Era

      Source
      pub enum Era {
           Orchard,
       }
      Expand description

      A version identifier for the encoding of unified spending keys.

      Each era corresponds to a range of block heights. During an era, the unified spending key @@ -7,8 +7,8 @@ sufficient spending authority to spend any non-Sprout shielded note created in a within the era’s block range.

      Variants§

      §

      Orchard

      The Orchard era begins at Orchard activation, and will end if a new pool that requires a change to unified spending keys is introduced.

      -

      Trait Implementations§

      §

      impl Debug for Era

      §

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

      Formats the value using the given formatter. Read more
      §

      impl PartialEq for Era

      §

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

      Tests for self and other values to be equal, and is used by ==.
      1.0.0 · Source§

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

      Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
      §

      impl Eq for Era

      §

      impl StructuralPartialEq for Era

      Auto Trait Implementations§

      §

      impl Freeze for Era

      §

      impl RefUnwindSafe for Era

      §

      impl Send for Era

      §

      impl Sync for Era

      §

      impl Unpin for Era

      §

      impl UnwindSafe for Era

      Blanket Implementations§

      Source§

      impl<T> Any for T
      where +

      Trait Implementations§

      Source§

      impl Debug for Era

      Source§

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

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

      impl PartialEq for Era

      Source§

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

      Tests for self and other values to be equal, and is used by ==.
      1.0.0 · Source§

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

      Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
      Source§

      impl Eq for Era

      Source§

      impl StructuralPartialEq for Era

      Auto Trait Implementations§

      §

      impl Freeze for Era

      §

      impl RefUnwindSafe for Era

      §

      impl Send for Era

      §

      impl Sync for Era

      §

      impl Unpin for Era

      §

      impl UnwindSafe for Era

      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 diff --git a/rustdoc/latest/zcash_client_backend/keys/enum.ReceiverRequirement.html b/rustdoc/latest/zcash_client_backend/keys/enum.ReceiverRequirement.html index 4e1824756..e81e8f804 100644 --- a/rustdoc/latest/zcash_client_backend/keys/enum.ReceiverRequirement.html +++ b/rustdoc/latest/zcash_client_backend/keys/enum.ReceiverRequirement.html @@ -1,4 +1,4 @@ -ReceiverRequirement in zcash_client_backend::keys - Rust

      Enum ReceiverRequirement

      pub enum ReceiverRequirement {
      +ReceiverRequirement in zcash_client_backend::keys - Rust

      Enum ReceiverRequirement

      Source
      pub enum ReceiverRequirement {
           Require,
           Allow,
           Omit,
      @@ -14,14 +14,14 @@ diversifier index.

      §

      Omit

      No receiver of the associated type may be included in the generated UnifiedAddress under any circumstances. When calling Self::intersect, this variant will be preferred over ReceiverRequirement::Allow.

      -

      Implementations§

      Implementations§

      Source§

      impl ReceiverRequirement

      Source

      pub fn intersect( self, other: ReceiverRequirement, ) -> Result<ReceiverRequirement, ()>

      Return the intersection of two requirements that chooses the stronger requirement, if one exists. ReceiverRequirement::Require and ReceiverRequirement::Omit are incompatible; attempting an intersection between these will return an error.

      -

      Trait Implementations§

      §

      impl Clone for ReceiverRequirement

      §

      fn clone(&self) -> ReceiverRequirement

      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
      §

      impl Debug for ReceiverRequirement

      §

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

      Formats the value using the given formatter. Read more
      §

      impl PartialEq for ReceiverRequirement

      §

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

      Tests for self and other values to be equal, and is used by ==.
      1.0.0 · Source§

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

      Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
      §

      impl Copy for ReceiverRequirement

      §

      impl Eq for ReceiverRequirement

      §

      impl StructuralPartialEq for ReceiverRequirement

      Auto Trait Implementations§

      Blanket Implementations§

      Source§

      impl<T> Any for T
      where +

      Trait Implementations§

      Source§

      impl Clone for ReceiverRequirement

      Source§

      fn clone(&self) -> ReceiverRequirement

      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 ReceiverRequirement

      Source§

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

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

      impl PartialEq for ReceiverRequirement

      Source§

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

      Tests for self and other values to be equal, and is used by ==.
      1.0.0 · Source§

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

      Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
      Source§

      impl Copy for ReceiverRequirement

      Source§

      impl Eq for ReceiverRequirement

      Source§

      impl StructuralPartialEq for ReceiverRequirement

      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
      Source§

      impl<T> CloneToUninit for T
      where diff --git a/rustdoc/latest/zcash_client_backend/keys/enum.UnifiedAddressRequest.html b/rustdoc/latest/zcash_client_backend/keys/enum.UnifiedAddressRequest.html index 4e6734d93..2f77f2b21 100644 --- a/rustdoc/latest/zcash_client_backend/keys/enum.UnifiedAddressRequest.html +++ b/rustdoc/latest/zcash_client_backend/keys/enum.UnifiedAddressRequest.html @@ -1,17 +1,17 @@ -UnifiedAddressRequest in zcash_client_backend::keys - Rust

      Enum UnifiedAddressRequest

      pub enum UnifiedAddressRequest {
      +UnifiedAddressRequest in zcash_client_backend::keys - Rust

      Enum UnifiedAddressRequest

      Source
      pub enum UnifiedAddressRequest {
           AllAvailableKeys,
           Custom(ReceiverRequirements),
       }
      Expand description

      Specification for how a unified address should be generated from a unified viewing key.

      -

      Variants§

      §

      AllAvailableKeys

      §

      Custom(ReceiverRequirements)

      Implementations§

      §

      impl UnifiedAddressRequest

      pub const ALLOW_ALL: UnifiedAddressRequest

      Constructs a new unified address request that allows a receiver of each type.

      -

      pub fn custom( +

      Variants§

      §

      AllAvailableKeys

      §

      Custom(ReceiverRequirements)

      Implementations§

      Source§

      impl UnifiedAddressRequest

      Source

      pub const ALLOW_ALL: UnifiedAddressRequest

      Constructs a new unified address request that allows a receiver of each type.

      +
      Source

      pub fn custom( orchard: ReceiverRequirement, sapling: ReceiverRequirement, p2pkh: ReceiverRequirement, -) -> Result<UnifiedAddressRequest, ()>

      pub const fn unsafe_custom( +) -> Result<UnifiedAddressRequest, ()>

      Source

      pub const fn unsafe_custom( orchard: ReceiverRequirement, sapling: ReceiverRequirement, p2pkh: ReceiverRequirement, -) -> UnifiedAddressRequest

      Trait Implementations§

      §

      impl Clone for UnifiedAddressRequest

      §

      fn clone(&self) -> UnifiedAddressRequest

      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
      §

      impl Debug for UnifiedAddressRequest

      §

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

      Formats the value using the given formatter. Read more
      §

      impl Copy for UnifiedAddressRequest

      Auto Trait Implementations§

      Blanket Implementations§

      Source§

      impl<T> Any for T

      Trait Implementations§

      Source§

      impl Clone for UnifiedAddressRequest

      Source§

      fn clone(&self) -> UnifiedAddressRequest

      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 UnifiedAddressRequest

      Source§

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

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

      impl Copy for UnifiedAddressRequest

      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
      Source§

      impl<T> CloneToUninit for T
      where diff --git a/rustdoc/latest/zcash_client_backend/keys/index.html b/rustdoc/latest/zcash_client_backend/keys/index.html index 3e22ee011..8c53de972 100644 --- a/rustdoc/latest/zcash_client_backend/keys/index.html +++ b/rustdoc/latest/zcash_client_backend/keys/index.html @@ -1,2 +1,2 @@ -zcash_client_backend::keys - Rust

      Module keys

      Source
      👎Deprecated: This module is deprecated; use ::zcash_keys::keys instead.

      Modules§

      sapling
      testing

      Structs§

      ReceiverRequirements
      Specification for how a unified address should be generated from a unified viewing key.
      UnifiedFullViewingKey
      A ZIP 316 unified full viewing key.
      UnifiedIncomingViewingKey
      A ZIP 316 unified incoming viewing key.
      UnifiedSpendingKey
      A set of spending keys that are all associated with a single ZIP-0032 account identifier.

      Enums§

      AddressGenerationError
      Errors that can occur in the generation of unified addresses.
      DecodingError
      A type for errors that can occur when decoding keys from their serialized representations.
      DerivationError
      Era
      A version identifier for the encoding of unified spending keys.
      ReceiverRequirement
      An enumeration of the ways in which a receiver may be requested to be present in a generated +zcash_client_backend::keys - Rust

      Module keys

      Source
      👎Deprecated: This module is deprecated; use ::zcash_keys::keys instead.

      Modules§

      sapling
      testing

      Structs§

      ReceiverRequirements
      Specification for how a unified address should be generated from a unified viewing key.
      UnifiedFullViewingKey
      A ZIP 316 unified full viewing key.
      UnifiedIncomingViewingKey
      A ZIP 316 unified incoming viewing key.
      UnifiedSpendingKey
      A set of spending keys that are all associated with a single ZIP-0032 account identifier.

      Enums§

      AddressGenerationError
      Errors that can occur in the generation of unified addresses.
      DecodingError
      A type for errors that can occur when decoding keys from their serialized representations.
      DerivationError
      Era
      A version identifier for the encoding of unified spending keys.
      ReceiverRequirement
      An enumeration of the ways in which a receiver may be requested to be present in a generated UnifiedAddress.
      UnifiedAddressRequest
      Specification for how a unified address should be generated from a unified viewing key.
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_client_backend/keys/sapling/fn.spending_key.html b/rustdoc/latest/zcash_client_backend/keys/sapling/fn.spending_key.html index 4f10e8bea..2d64db033 100644 --- a/rustdoc/latest/zcash_client_backend/keys/sapling/fn.spending_key.html +++ b/rustdoc/latest/zcash_client_backend/keys/sapling/fn.spending_key.html @@ -1,4 +1,4 @@ -spending_key in zcash_client_backend::keys::sapling - Rust

      Function spending_key

      pub fn spending_key(
      +spending_key in zcash_client_backend::keys::sapling - Rust

      Function spending_key

      Source
      pub fn spending_key(
           seed: &[u8],
           coin_type: u32,
           account: AccountId,
      diff --git a/rustdoc/latest/zcash_client_backend/keys/sapling/index.html b/rustdoc/latest/zcash_client_backend/keys/sapling/index.html
      index c7da3b14f..b402d5af5 100644
      --- a/rustdoc/latest/zcash_client_backend/keys/sapling/index.html
      +++ b/rustdoc/latest/zcash_client_backend/keys/sapling/index.html
      @@ -1,2 +1,2 @@
      -zcash_client_backend::keys::sapling - Rust

      Module sapling

      Structs§

      DiversifiableFullViewingKey
      A Sapling key that provides the capability to view incoming and outgoing transactions.
      ExtendedFullViewingKey
      ExtendedSpendingKey
      A Sapling extended spending key

      Functions§

      spending_key
      Derives the ZIP 32 ExtendedSpendingKey for a given coin type and account from the +zcash_client_backend::keys::sapling - Rust

      Module sapling

      Source

      Structs§

      DiversifiableFullViewingKey
      A Sapling key that provides the capability to view incoming and outgoing transactions.
      ExtendedFullViewingKey
      ExtendedSpendingKey
      A Sapling extended spending key

      Functions§

      spending_key
      Derives the ZIP 32 ExtendedSpendingKey for a given coin type and account from the given seed.
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_client_backend/keys/sapling/struct.DiversifiableFullViewingKey.html b/rustdoc/latest/zcash_client_backend/keys/sapling/struct.DiversifiableFullViewingKey.html index 5938ce4c7..a6096f3fb 100644 --- a/rustdoc/latest/zcash_client_backend/keys/sapling/struct.DiversifiableFullViewingKey.html +++ b/rustdoc/latest/zcash_client_backend/keys/sapling/struct.DiversifiableFullViewingKey.html @@ -1,4 +1,4 @@ -DiversifiableFullViewingKey in zcash_client_backend::keys::sapling - Rust

      Struct DiversifiableFullViewingKey

      pub struct DiversifiableFullViewingKey { /* private fields */ }
      Expand description

      A Sapling key that provides the capability to view incoming and outgoing transactions.

      +DiversifiableFullViewingKey in zcash_client_backend::keys::sapling - Rust

      Struct DiversifiableFullViewingKey

      pub struct DiversifiableFullViewingKey { /* private fields */ }
      Expand description

      A Sapling key that provides the capability to view incoming and outgoing transactions.

      This key is useful anywhere you need to maintain accurate balance, but do not want the ability to spend funds (such as a view-only wallet).

      It comprises the subset of the ZIP 32 extended full viewing key that is used for the @@ -54,16 +54,16 @@ address. Decryption is attempted using both the internal and external parts of t full viewing key.

      Returns the decrypted diversifier index and its scope, or None if the address was not generated from this key.

      -

      Trait Implementations§

      §

      impl Clone for DiversifiableFullViewingKey

      §

      fn clone(&self) -> DiversifiableFullViewingKey

      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
      §

      impl Debug for DiversifiableFullViewingKey

      §

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

      Formats the value using the given formatter. Read more
      §

      impl From<&ExtendedFullViewingKey> for DiversifiableFullViewingKey

      §

      fn from(extfvk: &ExtendedFullViewingKey) -> DiversifiableFullViewingKey

      Converts to this type from the input type.
      §

      impl From<ExtendedFullViewingKey> for DiversifiableFullViewingKey

      §

      fn from(extfvk: ExtendedFullViewingKey) -> DiversifiableFullViewingKey

      Converts to this type from the input type.
      Source§

      impl TestFvk for DiversifiableFullViewingKey

      Available on crate feature test-dependencies only.
      Source§

      type Nullifier = Nullifier

      The type of nullifier corresponding to the kind of note that this full viewing key -can detect (and that its corresponding spending key can spend).
      Source§

      fn sapling_ovk(&self) -> Option<OutgoingViewingKey>

      Returns the Sapling outgoing viewing key corresponding to this full viewing key, -if any.
      Source§

      fn orchard_ovk(&self, _: Scope) -> Option<OutgoingViewingKey>

      Available on crate feature orchard only.
      Returns the Orchard outgoing viewing key corresponding to this full viewing key, -if any.
      Source§

      fn add_spend<R: RngCore + CryptoRng>( +

      Trait Implementations§

      §

      impl Clone for DiversifiableFullViewingKey

      §

      fn clone(&self) -> DiversifiableFullViewingKey

      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
      §

      impl Debug for DiversifiableFullViewingKey

      §

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

      Formats the value using the given formatter. Read more
      §

      impl From<&ExtendedFullViewingKey> for DiversifiableFullViewingKey

      §

      fn from(extfvk: &ExtendedFullViewingKey) -> DiversifiableFullViewingKey

      Converts to this type from the input type.
      §

      impl From<ExtendedFullViewingKey> for DiversifiableFullViewingKey

      §

      fn from(extfvk: ExtendedFullViewingKey) -> DiversifiableFullViewingKey

      Converts to this type from the input type.
      Source§

      impl TestFvk for DiversifiableFullViewingKey

      Available on crate feature test-dependencies only.
      Source§

      type Nullifier = Nullifier

      The type of nullifier corresponding to the kind of note that this full viewing key +can detect (and that its corresponding spending key can spend).
      Source§

      fn sapling_ovk(&self) -> Option<OutgoingViewingKey>

      Returns the Sapling outgoing viewing key corresponding to this full viewing key, +if any.
      Source§

      fn orchard_ovk(&self, _: Scope) -> Option<OutgoingViewingKey>

      Available on crate feature orchard only.
      Returns the Orchard outgoing viewing key corresponding to this full viewing key, +if any.
      Source§

      fn add_spend<R: RngCore + CryptoRng>( &self, ctx: &mut CompactTx, nf: Self::Nullifier, _: &mut R, )

      Adds a single spend to the given CompactTx of a note previously received by -this full viewing key.
      Source§

      fn add_output<P: Parameters, R: RngCore + CryptoRng>( +this full viewing key.

      Source§

      fn add_output<P: Parameters, R: RngCore + CryptoRng>( &self, ctx: &mut CompactTx, params: &P, @@ -73,7 +73,7 @@ this full viewing key.

      u32, rng: &mut R, ) -> Self::Nullifier

      Adds a single output to the given CompactTx that will be received by this full -viewing key. Read more
      Source§

      fn add_logical_action<P: Parameters, R: RngCore + CryptoRng>( +viewing key. Read more

      Source§

      fn add_logical_action<P: Parameters, R: RngCore + CryptoRng>( &self, ctx: &mut CompactTx, params: &P, diff --git a/rustdoc/latest/zcash_client_backend/keys/sapling/struct.ExtendedFullViewingKey.html b/rustdoc/latest/zcash_client_backend/keys/sapling/struct.ExtendedFullViewingKey.html index c3dfe4140..51ee90456 100644 --- a/rustdoc/latest/zcash_client_backend/keys/sapling/struct.ExtendedFullViewingKey.html +++ b/rustdoc/latest/zcash_client_backend/keys/sapling/struct.ExtendedFullViewingKey.html @@ -1,4 +1,4 @@ -ExtendedFullViewingKey in zcash_client_backend::keys::sapling - Rust

      Struct ExtendedFullViewingKey

      pub struct ExtendedFullViewingKey {
      +ExtendedFullViewingKey in zcash_client_backend::keys::sapling - Rust

      Struct ExtendedFullViewingKey

      pub struct ExtendedFullViewingKey {
           pub fvk: FullViewingKey,
           /* private fields */
       }

      Fields§

      §fvk: FullViewingKey

      Implementations§

      §

      impl ExtendedFullViewingKey

      pub fn read<R>(reader: R) -> Result<ExtendedFullViewingKey, Error>
      where diff --git a/rustdoc/latest/zcash_client_backend/keys/sapling/struct.ExtendedSpendingKey.html b/rustdoc/latest/zcash_client_backend/keys/sapling/struct.ExtendedSpendingKey.html index 3ffeb207f..6cce5cc56 100644 --- a/rustdoc/latest/zcash_client_backend/keys/sapling/struct.ExtendedSpendingKey.html +++ b/rustdoc/latest/zcash_client_backend/keys/sapling/struct.ExtendedSpendingKey.html @@ -1,4 +1,4 @@ -ExtendedSpendingKey in zcash_client_backend::keys::sapling - Rust

      Struct ExtendedSpendingKey

      pub struct ExtendedSpendingKey {
      +ExtendedSpendingKey in zcash_client_backend::keys::sapling - Rust

      Struct ExtendedSpendingKey

      pub struct ExtendedSpendingKey {
           pub expsk: ExpandedSpendingKey,
           /* private fields */
       }
      Expand description

      A Sapling extended spending key

      diff --git a/rustdoc/latest/zcash_client_backend/keys/struct.ReceiverRequirements.html b/rustdoc/latest/zcash_client_backend/keys/struct.ReceiverRequirements.html index d055628ff..945ee55a2 100644 --- a/rustdoc/latest/zcash_client_backend/keys/struct.ReceiverRequirements.html +++ b/rustdoc/latest/zcash_client_backend/keys/struct.ReceiverRequirements.html @@ -1,27 +1,27 @@ -ReceiverRequirements in zcash_client_backend::keys - Rust

      Struct ReceiverRequirements

      pub struct ReceiverRequirements { /* private fields */ }
      Expand description

      Specification for how a unified address should be generated from a unified viewing key.

      -

      Implementations§

      §

      impl ReceiverRequirements

      pub const ALLOW_ALL: ReceiverRequirements

      Constructs a new unified address request that allows a receiver of each type.

      -

      pub fn new( +ReceiverRequirements in zcash_client_backend::keys - Rust

      Struct ReceiverRequirements

      Source
      pub struct ReceiverRequirements { /* private fields */ }
      Expand description

      Specification for how a unified address should be generated from a unified viewing key.

      +

      Implementations§

      Source§

      impl ReceiverRequirements

      Source

      pub const ALLOW_ALL: ReceiverRequirements

      Constructs a new unified address request that allows a receiver of each type.

      +
      Source

      pub fn new( orchard: ReceiverRequirement, sapling: ReceiverRequirement, p2pkh: ReceiverRequirement, ) -> Result<ReceiverRequirements, ()>

      Construct a new unified address request from its constituent parts.

      Returns Err(()) if the resulting unified address would not include at least one shielded receiver.

      -

      pub fn intersect( +

      Source

      pub fn intersect( &self, other: &ReceiverRequirements, ) -> Result<ReceiverRequirements, ()>

      Constructs a new unified address request that includes only the receivers that are allowed both in itself and a given other request. Returns None if requirements are incompatible or if no shielded receiver type is allowed.

      -

      pub const fn unsafe_new( +

      Source

      pub const fn unsafe_new( orchard: ReceiverRequirement, sapling: ReceiverRequirement, p2pkh: ReceiverRequirement, ) -> ReceiverRequirements

      Construct a new unified address request from its constituent parts.

      Panics: at least one of orchard or sapling must be allowed.

      -

      pub fn orchard(&self) -> ReceiverRequirement

      Returns the ReceiverRequirement for inclusion of an Orchard receiver.

      -

      pub fn sapling(&self) -> ReceiverRequirement

      Returns the ReceiverRequirement for inclusion of a Sapling receiver.

      -

      pub fn p2pkh(&self) -> ReceiverRequirement

      Returns the ReceiverRequirement for inclusion of a P2PKH receiver.

      -

      Trait Implementations§

      §

      impl Clone for ReceiverRequirements

      §

      fn clone(&self) -> ReceiverRequirements

      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
      §

      impl Debug for ReceiverRequirements

      §

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

      Formats the value using the given formatter. Read more
      §

      impl Copy for ReceiverRequirements

      Auto Trait Implementations§

      Blanket Implementations§

      Source§

      impl<T> Any for T
      where +

      Source

      pub fn orchard(&self) -> ReceiverRequirement

      Returns the ReceiverRequirement for inclusion of an Orchard receiver.

      +
      Source

      pub fn sapling(&self) -> ReceiverRequirement

      Returns the ReceiverRequirement for inclusion of a Sapling receiver.

      +
      Source

      pub fn p2pkh(&self) -> ReceiverRequirement

      Returns the ReceiverRequirement for inclusion of a P2PKH receiver.

      +

      Trait Implementations§

      Source§

      impl Clone for ReceiverRequirements

      Source§

      fn clone(&self) -> ReceiverRequirements

      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 ReceiverRequirements

      Source§

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

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

      impl Copy for ReceiverRequirements

      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
      Source§

      impl<T> CloneToUninit for T
      where diff --git a/rustdoc/latest/zcash_client_backend/keys/struct.UnifiedFullViewingKey.html b/rustdoc/latest/zcash_client_backend/keys/struct.UnifiedFullViewingKey.html index 2c3365e43..c8f2afd73 100644 --- a/rustdoc/latest/zcash_client_backend/keys/struct.UnifiedFullViewingKey.html +++ b/rustdoc/latest/zcash_client_backend/keys/struct.UnifiedFullViewingKey.html @@ -1,5 +1,5 @@ -UnifiedFullViewingKey in zcash_client_backend::keys - Rust

      Struct UnifiedFullViewingKey

      pub struct UnifiedFullViewingKey { /* private fields */ }
      Expand description

      A ZIP 316 unified full viewing key.

      -

      Implementations§

      §

      impl UnifiedFullViewingKey

      pub fn new( +UnifiedFullViewingKey in zcash_client_backend::keys - Rust

      Struct UnifiedFullViewingKey

      Source
      pub struct UnifiedFullViewingKey { /* private fields */ }
      Expand description

      A ZIP 316 unified full viewing key.

      +

      Implementations§

      Source§

      impl UnifiedFullViewingKey

      Source

      pub fn new( transparent: Option<AccountPubKey>, sapling: Option<DiversifiableFullViewingKey>, orchard: Option<FullViewingKey>, @@ -7,22 +7,22 @@

      This method is only available when the test-dependencies feature is enabled, as derivation from the USK or deserialization from the serialized form should be used instead.

      -

      pub fn from_sapling_extended_full_viewing_key( +

      Source

      pub fn from_sapling_extended_full_viewing_key( sapling: ExtendedFullViewingKey, -) -> Result<UnifiedFullViewingKey, DerivationError>

      pub fn decode<P>( +) -> Result<UnifiedFullViewingKey, DerivationError>

      Source

      pub fn decode<P>( params: &P, encoding: &str, ) -> Result<UnifiedFullViewingKey, String>
      where P: Parameters,

      Parses a UnifiedFullViewingKey from its ZIP 316 string encoding.

      -

      pub fn parse(ufvk: &Ufvk) -> Result<UnifiedFullViewingKey, DecodingError>

      Parses a UnifiedFullViewingKey from its ZIP 316 string encoding.

      -

      pub fn encode<P>(&self, params: &P) -> String
      where +

      Source

      pub fn parse(ufvk: &Ufvk) -> Result<UnifiedFullViewingKey, DecodingError>

      Parses a UnifiedFullViewingKey from its ZIP 316 string encoding.

      +
      Source

      pub fn encode<P>(&self, params: &P) -> String
      where P: Parameters,

      Returns the string encoding of this UnifiedFullViewingKey for the given network.

      -

      pub fn to_unified_incoming_viewing_key(&self) -> UnifiedIncomingViewingKey

      Derives a Unified Incoming Viewing Key from this Unified Full Viewing Key.

      -

      pub fn transparent(&self) -> Option<&AccountPubKey>

      Returns the transparent component of the unified key at the +

      Source

      pub fn to_unified_incoming_viewing_key(&self) -> UnifiedIncomingViewingKey

      Derives a Unified Incoming Viewing Key from this Unified Full Viewing Key.

      +
      Source

      pub fn transparent(&self) -> Option<&AccountPubKey>

      Returns the transparent component of the unified key at the BIP44 path m/44'/<coin_type>'/<account>'.

      -

      pub fn sapling(&self) -> Option<&DiversifiableFullViewingKey>

      Returns the Sapling diversifiable full viewing key component of this unified key.

      -

      pub fn orchard(&self) -> Option<&FullViewingKey>

      Returns the Orchard full viewing key component of this unified key.

      -

      pub fn address( +

      Source

      pub fn sapling(&self) -> Option<&DiversifiableFullViewingKey>

      Returns the Sapling diversifiable full viewing key component of this unified key.

      +
      Source

      pub fn orchard(&self) -> Option<&FullViewingKey>

      Returns the Orchard full viewing key component of this unified key.

      +
      Source

      pub fn address( &self, j: DiversifierIndex, request: UnifiedAddressRequest, @@ -30,7 +30,7 @@ BIP44 path m/44'/<coin_type>'/<account>'.

      If request is None, the address should be derived to contain a receiver for each item in this UFVK.

      Returns None if the specified index does not produce a valid diversifier.

      -

      pub fn find_address( +

      Source

      pub fn find_address( &self, j: DiversifierIndex, request: UnifiedAddressRequest, @@ -40,7 +40,7 @@ along with the index at which the valid diversifier was found. If request< address should be derived to contain a receiver for each item in this UFVK.

      Returns an Err(AddressGenerationError) if no valid diversifier exists or if the features required to satisfy the unified address request are not properly enabled.

      -

      pub fn default_address( +

      Source

      pub fn default_address( &self, request: UnifiedAddressRequest, ) -> Result<(UnifiedAddress, DiversifierIndex), AddressGenerationError>

      Find the Unified Address corresponding to the smallest valid diversifier index, along with @@ -48,7 +48,7 @@ that index. If request is None, the address should be derived to co each item in this UFVK.

      Returns an Err(AddressGenerationError) if no valid diversifier exists or if the features required to satisfy the unified address request are not properly enabled.

      -

      Trait Implementations§

      §

      impl Clone for UnifiedFullViewingKey

      §

      fn clone(&self) -> UnifiedFullViewingKey

      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
      §

      impl Debug for UnifiedFullViewingKey

      §

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

      Formats the value using the given formatter. Read more

      Auto Trait Implementations§

      Blanket Implementations§

      Source§

      impl<T> Any for T
      where +

      Trait Implementations§

      Source§

      impl Clone for UnifiedFullViewingKey

      Source§

      fn clone(&self) -> UnifiedFullViewingKey

      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 UnifiedFullViewingKey

      Source§

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

      Formats the value using the given formatter. Read more

      Auto Trait Implementations§

      Blanket Implementations§

      Source§

      impl<T> Any for 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
      Source§

      impl<T> CloneToUninit for T
      where diff --git a/rustdoc/latest/zcash_client_backend/keys/struct.UnifiedIncomingViewingKey.html b/rustdoc/latest/zcash_client_backend/keys/struct.UnifiedIncomingViewingKey.html index a78aa0d6a..6be970535 100644 --- a/rustdoc/latest/zcash_client_backend/keys/struct.UnifiedIncomingViewingKey.html +++ b/rustdoc/latest/zcash_client_backend/keys/struct.UnifiedIncomingViewingKey.html @@ -1,5 +1,5 @@ -UnifiedIncomingViewingKey in zcash_client_backend::keys - Rust

      Struct UnifiedIncomingViewingKey

      pub struct UnifiedIncomingViewingKey { /* private fields */ }
      Expand description

      A ZIP 316 unified incoming viewing key.

      -

      Implementations§

      §

      impl UnifiedIncomingViewingKey

      pub fn new( +UnifiedIncomingViewingKey in zcash_client_backend::keys - Rust

      Struct UnifiedIncomingViewingKey

      Source
      pub struct UnifiedIncomingViewingKey { /* private fields */ }
      Expand description

      A ZIP 316 unified incoming viewing key.

      +

      Implementations§

      Source§

      impl UnifiedIncomingViewingKey

      Source

      pub fn new( transparent: Option<ExternalIvk>, sapling: Option<IncomingViewingKey>, orchard: Option<IncomingViewingKey>, @@ -7,23 +7,23 @@

      This method is only available when the test-dependencies feature is enabled, as derivation from the UFVK or deserialization from the serialized form should be used instead.

      -

      pub fn decode<P>( +

      Source

      pub fn decode<P>( params: &P, encoding: &str, ) -> Result<UnifiedIncomingViewingKey, String>
      where P: Parameters,

      Parses a UnifiedFullViewingKey from its ZIP 316 string encoding.

      -

      pub fn encode<P>(&self, params: &P) -> String
      where +

      Source

      pub fn encode<P>(&self, params: &P) -> String
      where P: Parameters,

      Returns the string encoding of this UnifiedFullViewingKey for the given network.

      -

      pub fn has_transparent(&self) -> bool

      Returns whether this uivk has a transparent key item.

      +
      Source

      pub fn has_transparent(&self) -> bool

      Returns whether this uivk has a transparent key item.

      This method is available irrespective of whether the transparent-inputs feature flag is enabled.

      -

      pub fn transparent(&self) -> &Option<ExternalIvk>

      Returns the Transparent external IVK, if present.

      -

      pub fn has_sapling(&self) -> bool

      Returns whether this uivk has a Sapling key item.

      +
      Source

      pub fn transparent(&self) -> &Option<ExternalIvk>

      Returns the Transparent external IVK, if present.

      +
      Source

      pub fn has_sapling(&self) -> bool

      Returns whether this uivk has a Sapling key item.

      This method is available irrespective of whether the sapling feature flag is enabled.

      -

      pub fn sapling(&self) -> &Option<IncomingViewingKey>

      Returns the Sapling IVK, if present.

      -

      pub fn has_orchard(&self) -> bool

      Returns whether this uivk has an Orchard key item.

      +
      Source

      pub fn sapling(&self) -> &Option<IncomingViewingKey>

      Returns the Sapling IVK, if present.

      +
      Source

      pub fn has_orchard(&self) -> bool

      Returns whether this uivk has an Orchard key item.

      This method is available irrespective of whether the orchard feature flag is enabled.

      -

      pub fn orchard(&self) -> &Option<IncomingViewingKey>

      Returns the Orchard IVK, if present.

      -

      pub fn address( +

      Source

      pub fn orchard(&self) -> &Option<IncomingViewingKey>

      Returns the Orchard IVK, if present.

      +
      Source

      pub fn address( &self, _j: DiversifierIndex, request: UnifiedAddressRequest, @@ -32,7 +32,7 @@ If request is None, the address will be derived to contain a receiv this UFVK.

      Returns an error if the this key does not produce a valid receiver for a required receiver type at the given diversifier index.

      -

      pub fn find_address( +

      Source

      pub fn find_address( &self, j: DiversifierIndex, request: UnifiedAddressRequest, @@ -44,7 +44,7 @@ receiver be present for each key item enabled by the feature flags in use will b search the diversifier space.

      Returns an Err(AddressGenerationError) if no valid diversifier exists or if the features required to satisfy the unified address request are not enabled.

      -

      pub fn default_address( +

      Source

      pub fn default_address( &self, request: UnifiedAddressRequest, ) -> Result<(UnifiedAddress, DiversifierIndex), AddressGenerationError>

      Find the Unified Address corresponding to the smallest valid diversifier index, along with @@ -52,16 +52,16 @@ that index. If request is None, the address will be derived to cont each data item in this UFVK.

      Returns an error if the this key does not produce a valid receiver for a required receiver type at any diversifier index.

      -

      pub fn receiver_requirements( +

      Source

      pub fn receiver_requirements( &self, request: UnifiedAddressRequest, ) -> Result<ReceiverRequirements, AddressGenerationError>

      Convenience method for choosing a set of receiver requirements based upon the given unified address request and the available items of this key.

      Returns an error if the provided request cannot be satisfied in address generation using this key.

      -

      pub fn to_receiver_requirements(&self) -> Result<ReceiverRequirements, ()>

      Constructs the ReceiverRequirements that requires a receiver for each data item of this UIVK.

      +
      Source

      pub fn to_receiver_requirements(&self) -> Result<ReceiverRequirements, ()>

      Constructs the ReceiverRequirements that requires a receiver for each data item of this UIVK.

      Returns Err if the resulting request would not include a shielded receiver.

      -

      Trait Implementations§

      §

      impl Clone for UnifiedIncomingViewingKey

      §

      fn clone(&self) -> UnifiedIncomingViewingKey

      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
      §

      impl Debug for UnifiedIncomingViewingKey

      §

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

      Formats the value using the given formatter. Read more

      Auto Trait Implementations§

      Blanket Implementations§

      Source§

      impl<T> Any for T
      where +

      Trait Implementations§

      Source§

      impl Clone for UnifiedIncomingViewingKey

      Source§

      fn clone(&self) -> UnifiedIncomingViewingKey

      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 UnifiedIncomingViewingKey

      Source§

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

      Formats the value using the given formatter. Read more

      Auto Trait Implementations§

      Blanket Implementations§

      Source§

      impl<T> Any for 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
      Source§

      impl<T> CloneToUninit for T
      where diff --git a/rustdoc/latest/zcash_client_backend/keys/struct.UnifiedSpendingKey.html b/rustdoc/latest/zcash_client_backend/keys/struct.UnifiedSpendingKey.html index 7da7d9554..ff9624602 100644 --- a/rustdoc/latest/zcash_client_backend/keys/struct.UnifiedSpendingKey.html +++ b/rustdoc/latest/zcash_client_backend/keys/struct.UnifiedSpendingKey.html @@ -1,14 +1,14 @@ -UnifiedSpendingKey in zcash_client_backend::keys - Rust

      Struct UnifiedSpendingKey

      pub struct UnifiedSpendingKey { /* private fields */ }
      Expand description

      A set of spending keys that are all associated with a single ZIP-0032 account identifier.

      -

      Implementations§

      §

      impl UnifiedSpendingKey

      pub fn from_seed<P>( +UnifiedSpendingKey in zcash_client_backend::keys - Rust

      Struct UnifiedSpendingKey

      Source
      pub struct UnifiedSpendingKey { /* private fields */ }
      Expand description

      A set of spending keys that are all associated with a single ZIP-0032 account identifier.

      +

      Implementations§

      Source§

      impl UnifiedSpendingKey

      Source

      pub fn from_seed<P>( _params: &P, seed: &[u8], _account: AccountId, ) -> Result<UnifiedSpendingKey, DerivationError>
      where - P: Parameters,

      pub fn to_unified_full_viewing_key(&self) -> UnifiedFullViewingKey

      pub fn transparent(&self) -> &AccountPrivKey

      Returns the transparent component of the unified key at the + P: Parameters,

      Source

      pub fn to_unified_full_viewing_key(&self) -> UnifiedFullViewingKey

      Source

      pub fn transparent(&self) -> &AccountPrivKey

      Returns the transparent component of the unified key at the BIP44 path m/44'/<coin_type>'/<account>'.

      -

      pub fn sapling(&self) -> &ExtendedSpendingKey

      Returns the Sapling extended spending key component of this unified spending key.

      -

      pub fn orchard(&self) -> &SpendingKey

      Returns the Orchard spending key component of this unified spending key.

      -

      pub fn to_bytes(&self, era: Era) -> Vec<u8>

      Returns a binary encoding of this key suitable for decoding with Self::from_bytes.

      +
      Source

      pub fn sapling(&self) -> &ExtendedSpendingKey

      Returns the Sapling extended spending key component of this unified spending key.

      +
      Source

      pub fn orchard(&self) -> &SpendingKey

      Returns the Orchard spending key component of this unified spending key.

      +
      Source

      pub fn to_bytes(&self, era: Era) -> Vec<u8>

      Returns a binary encoding of this key suitable for decoding with Self::from_bytes.

      The encoded form of a unified spending key is only intended for use within wallets when required for storage and/or crossing FFI boundaries; unified spending keys should not be exposed to users, and consequently @@ -16,17 +16,17 @@ no string-based encoding is defined. This encoding does not include any internal validation metadata (such as checksums) as keys decoded from this form will necessarily be validated when the attempt is made to spend a note that they have authority for.

      -

      pub fn from_bytes( +

      Source

      pub fn from_bytes( era: Era, encoded: &[u8], ) -> Result<UnifiedSpendingKey, DecodingError>

      Decodes a UnifiedSpendingKey value from its serialized representation.

      See Self::to_bytes for additional detail about the encoded form.

      -

      pub fn default_address( +

      Source

      pub fn default_address( &self, request: UnifiedAddressRequest, -) -> (UnifiedAddress, DiversifierIndex)

      pub fn default_transparent_address( +) -> (UnifiedAddress, DiversifierIndex)

      Source

      pub fn default_transparent_address( &self, -) -> (TransparentAddress, NonHardenedChildIndex)

      Trait Implementations§

      §

      impl Clone for UnifiedSpendingKey

      §

      fn clone(&self) -> UnifiedSpendingKey

      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
      §

      impl Debug for UnifiedSpendingKey

      §

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

      Formats the value using the given formatter. Read more

      Auto Trait Implementations§

      Blanket Implementations§

      Source§

      impl<T> Any for T
      where +) -> (TransparentAddress, NonHardenedChildIndex)

      Trait Implementations§

      Source§

      impl Clone for UnifiedSpendingKey

      Source§

      fn clone(&self) -> UnifiedSpendingKey

      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 UnifiedSpendingKey

      Source§

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

      Formats the value using the given formatter. Read more

      Auto Trait Implementations§

      Blanket Implementations§

      Source§

      impl<T> Any for 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
      Source§

      impl<T> CloneToUninit for T
      where diff --git a/rustdoc/latest/zcash_client_backend/keys/testing/fn.arb_unified_spending_key.html b/rustdoc/latest/zcash_client_backend/keys/testing/fn.arb_unified_spending_key.html index b65bb2ec3..e43885780 100644 --- a/rustdoc/latest/zcash_client_backend/keys/testing/fn.arb_unified_spending_key.html +++ b/rustdoc/latest/zcash_client_backend/keys/testing/fn.arb_unified_spending_key.html @@ -1,3 +1,3 @@ -arb_unified_spending_key in zcash_client_backend::keys::testing - Rust

      Function arb_unified_spending_key

      pub fn arb_unified_spending_key(
      +arb_unified_spending_key in zcash_client_backend::keys::testing - Rust

      Function arb_unified_spending_key

      Source
      pub fn arb_unified_spending_key(
           params: Network,
       ) -> impl Strategy<Value = UnifiedSpendingKey>
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_client_backend/keys/testing/index.html b/rustdoc/latest/zcash_client_backend/keys/testing/index.html index 976dc5560..363cba67c 100644 --- a/rustdoc/latest/zcash_client_backend/keys/testing/index.html +++ b/rustdoc/latest/zcash_client_backend/keys/testing/index.html @@ -1 +1 @@ -zcash_client_backend::keys::testing - Rust

      Module testing

      Functions§

      arb_unified_spending_key
      \ No newline at end of file +zcash_client_backend::keys::testing - Rust

      Module testing

      Source

      Functions§

      arb_unified_spending_key
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_client_backend/proposal/enum.ProposalError.html b/rustdoc/latest/zcash_client_backend/proposal/enum.ProposalError.html index e6395b320..33ee02293 100644 --- a/rustdoc/latest/zcash_client_backend/proposal/enum.ProposalError.html +++ b/rustdoc/latest/zcash_client_backend/proposal/enum.ProposalError.html @@ -1,4 +1,4 @@ -ProposalError in zcash_client_backend::proposal - Rust

      Enum ProposalError

      Source
      pub enum ProposalError {
      +ProposalError in zcash_client_backend::proposal - Rust

      Enum ProposalError

      Source
      pub enum ProposalError {
       
      Show 13 variants RequestTotalInvalid, Overflow, BalanceError { diff --git a/rustdoc/latest/zcash_client_backend/proposal/enum.StepOutputIndex.html b/rustdoc/latest/zcash_client_backend/proposal/enum.StepOutputIndex.html index 0a83942ae..594dc4245 100644 --- a/rustdoc/latest/zcash_client_backend/proposal/enum.StepOutputIndex.html +++ b/rustdoc/latest/zcash_client_backend/proposal/enum.StepOutputIndex.html @@ -1,4 +1,4 @@ -StepOutputIndex in zcash_client_backend::proposal - Rust

      Enum StepOutputIndex

      Source
      pub enum StepOutputIndex {
      +StepOutputIndex in zcash_client_backend::proposal - Rust

      Enum StepOutputIndex

      Source
      pub enum StepOutputIndex {
           Payment(usize),
           Change(usize),
       }
      Expand description

      A reference to either a payment or change output within a step.

      diff --git a/rustdoc/latest/zcash_client_backend/proposal/index.html b/rustdoc/latest/zcash_client_backend/proposal/index.html index 52d6d8bdd..6549210c1 100644 --- a/rustdoc/latest/zcash_client_backend/proposal/index.html +++ b/rustdoc/latest/zcash_client_backend/proposal/index.html @@ -1,2 +1,2 @@ -zcash_client_backend::proposal - Rust

      Module proposal

      Source
      Expand description

      Types related to the construction and evaluation of transaction proposals.

      +zcash_client_backend::proposal - Rust

      Module proposal

      Source
      Expand description

      Types related to the construction and evaluation of transaction proposals.

      Structs§

      Proposal
      A proposal for a series of transactions to be created.
      ShieldedInputs
      The Sapling inputs to a proposed transaction.
      Step
      The inputs to be consumed and outputs to be produced in a proposed transaction.
      StepOutput
      A reference to the output of a step in a proposal.

      Enums§

      ProposalError
      Errors that can occur in construction of a Step.
      StepOutputIndex
      A reference to either a payment or change output within a step.
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_client_backend/proposal/struct.Proposal.html b/rustdoc/latest/zcash_client_backend/proposal/struct.Proposal.html index 945171384..c08b05e18 100644 --- a/rustdoc/latest/zcash_client_backend/proposal/struct.Proposal.html +++ b/rustdoc/latest/zcash_client_backend/proposal/struct.Proposal.html @@ -1,4 +1,4 @@ -Proposal in zcash_client_backend::proposal - Rust

      Struct Proposal

      Source
      pub struct Proposal<FeeRuleT, NoteRef> { /* private fields */ }
      Expand description

      A proposal for a series of transactions to be created.

      +Proposal in zcash_client_backend::proposal - Rust

      Struct Proposal

      Source
      pub struct Proposal<FeeRuleT, NoteRef> { /* private fields */ }
      Expand description

      A proposal for a series of transactions to be created.

      Each step of the proposal represents a separate transaction to be created. At present, only transparent outputs of earlier steps may be spent in later steps; the ability to chain shielded transaction steps may be added in a future update.

      diff --git a/rustdoc/latest/zcash_client_backend/proposal/struct.ShieldedInputs.html b/rustdoc/latest/zcash_client_backend/proposal/struct.ShieldedInputs.html index 3094a50c4..4adff5b31 100644 --- a/rustdoc/latest/zcash_client_backend/proposal/struct.ShieldedInputs.html +++ b/rustdoc/latest/zcash_client_backend/proposal/struct.ShieldedInputs.html @@ -1,4 +1,4 @@ -ShieldedInputs in zcash_client_backend::proposal - Rust

      Struct ShieldedInputs

      Source
      pub struct ShieldedInputs<NoteRef> { /* private fields */ }
      Expand description

      The Sapling inputs to a proposed transaction.

      +ShieldedInputs in zcash_client_backend::proposal - Rust

      Struct ShieldedInputs

      Source
      pub struct ShieldedInputs<NoteRef> { /* private fields */ }
      Expand description

      The Sapling inputs to a proposed transaction.

      Implementations§

      Source§

      impl<NoteRef> ShieldedInputs<NoteRef>

      Source

      pub fn from_parts( anchor_height: BlockHeight, notes: NonEmpty<ReceivedNote<NoteRef, Note>>, diff --git a/rustdoc/latest/zcash_client_backend/proposal/struct.Step.html b/rustdoc/latest/zcash_client_backend/proposal/struct.Step.html index 23225075c..aa1d93a64 100644 --- a/rustdoc/latest/zcash_client_backend/proposal/struct.Step.html +++ b/rustdoc/latest/zcash_client_backend/proposal/struct.Step.html @@ -1,4 +1,4 @@ -Step in zcash_client_backend::proposal - Rust

      Struct Step

      Source
      pub struct Step<NoteRef> { /* private fields */ }
      Expand description

      The inputs to be consumed and outputs to be produced in a proposed transaction.

      +Step in zcash_client_backend::proposal - Rust

      Struct Step

      Source
      pub struct Step<NoteRef> { /* private fields */ }
      Expand description

      The inputs to be consumed and outputs to be produced in a proposed transaction.

      Implementations§

      Source§

      impl<NoteRef> Step<NoteRef>

      Source

      pub fn from_parts( prior_steps: &[Step<NoteRef>], transaction_request: TransactionRequest, diff --git a/rustdoc/latest/zcash_client_backend/proposal/struct.StepOutput.html b/rustdoc/latest/zcash_client_backend/proposal/struct.StepOutput.html index 0e9e51329..0b5ddd22f 100644 --- a/rustdoc/latest/zcash_client_backend/proposal/struct.StepOutput.html +++ b/rustdoc/latest/zcash_client_backend/proposal/struct.StepOutput.html @@ -1,4 +1,4 @@ -StepOutput in zcash_client_backend::proposal - Rust

      Struct StepOutput

      Source
      pub struct StepOutput { /* private fields */ }
      Expand description

      A reference to the output of a step in a proposal.

      +StepOutput in zcash_client_backend::proposal - Rust

      Struct StepOutput

      Source
      pub struct StepOutput { /* private fields */ }
      Expand description

      A reference to the output of a step in a proposal.

      Implementations§

      Source§

      impl StepOutput

      Source

      pub fn new(step_index: usize, output_index: StepOutputIndex) -> Self

      Constructs a new StepOutput from its constituent parts.

      Source

      pub fn step_index(&self) -> usize

      Returns the step index to which this reference refers.

      Source

      pub fn output_index(&self) -> StepOutputIndex

      Returns the identifier for the payment or change output within diff --git a/rustdoc/latest/zcash_client_backend/proto/compact_formats/index.html b/rustdoc/latest/zcash_client_backend/proto/compact_formats/index.html index 5d69e1313..3c971a906 100644 --- a/rustdoc/latest/zcash_client_backend/proto/compact_formats/index.html +++ b/rustdoc/latest/zcash_client_backend/proto/compact_formats/index.html @@ -1 +1 @@ -zcash_client_backend::proto::compact_formats - Rust

      Module compact_formats

      Source

      Structs§

      ChainMetadata
      Information about the state of the chain as of a given block.
      CompactBlock
      A compact representation of the shielded data in a Zcash block.
      CompactOrchardAction
      A compact representation of an Orchard Action.
      CompactSaplingOutput
      A compact representation of a Sapling Output.
      CompactSaplingSpend
      A compact representation of a Sapling Spend.
      CompactTx
      A compact representation of the shielded data in a Zcash transaction.
      \ No newline at end of file +zcash_client_backend::proto::compact_formats - Rust

      Module compact_formats

      Source

      Structs§

      ChainMetadata
      Information about the state of the chain as of a given block.
      CompactBlock
      A compact representation of the shielded data in a Zcash block.
      CompactOrchardAction
      A compact representation of an Orchard Action.
      CompactSaplingOutput
      A compact representation of a Sapling Output.
      CompactSaplingSpend
      A compact representation of a Sapling Spend.
      CompactTx
      A compact representation of the shielded data in a Zcash transaction.
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_client_backend/proto/compact_formats/struct.ChainMetadata.html b/rustdoc/latest/zcash_client_backend/proto/compact_formats/struct.ChainMetadata.html index 18af2fd46..80132146d 100644 --- a/rustdoc/latest/zcash_client_backend/proto/compact_formats/struct.ChainMetadata.html +++ b/rustdoc/latest/zcash_client_backend/proto/compact_formats/struct.ChainMetadata.html @@ -1,4 +1,4 @@ -ChainMetadata in zcash_client_backend::proto::compact_formats - Rust

      Struct ChainMetadata

      Source
      pub struct ChainMetadata {
      +ChainMetadata in zcash_client_backend::proto::compact_formats - Rust

      Struct ChainMetadata

      Source
      pub struct ChainMetadata {
           pub sapling_commitment_tree_size: u32,
           pub orchard_commitment_tree_size: u32,
       }
      Expand description

      Information about the state of the chain as of a given block.

      diff --git a/rustdoc/latest/zcash_client_backend/proto/compact_formats/struct.CompactBlock.html b/rustdoc/latest/zcash_client_backend/proto/compact_formats/struct.CompactBlock.html index 0501d0e8d..84a921056 100644 --- a/rustdoc/latest/zcash_client_backend/proto/compact_formats/struct.CompactBlock.html +++ b/rustdoc/latest/zcash_client_backend/proto/compact_formats/struct.CompactBlock.html @@ -1,4 +1,4 @@ -CompactBlock in zcash_client_backend::proto::compact_formats - Rust

      Struct CompactBlock

      Source
      pub struct CompactBlock {
      +CompactBlock in zcash_client_backend::proto::compact_formats - Rust

      Struct CompactBlock

      Source
      pub struct CompactBlock {
           pub proto_version: u32,
           pub height: u64,
           pub hash: Vec<u8>,
      diff --git a/rustdoc/latest/zcash_client_backend/proto/compact_formats/struct.CompactOrchardAction.html b/rustdoc/latest/zcash_client_backend/proto/compact_formats/struct.CompactOrchardAction.html
      index 4011ccf7b..b55e1220c 100644
      --- a/rustdoc/latest/zcash_client_backend/proto/compact_formats/struct.CompactOrchardAction.html
      +++ b/rustdoc/latest/zcash_client_backend/proto/compact_formats/struct.CompactOrchardAction.html
      @@ -1,4 +1,4 @@
      -CompactOrchardAction in zcash_client_backend::proto::compact_formats - Rust

      Struct CompactOrchardAction

      Source
      pub struct CompactOrchardAction {
      +CompactOrchardAction in zcash_client_backend::proto::compact_formats - Rust

      Struct CompactOrchardAction

      Source
      pub struct CompactOrchardAction {
           pub nullifier: Vec<u8>,
           pub cmx: Vec<u8>,
           pub ephemeral_key: Vec<u8>,
      diff --git a/rustdoc/latest/zcash_client_backend/proto/compact_formats/struct.CompactSaplingOutput.html b/rustdoc/latest/zcash_client_backend/proto/compact_formats/struct.CompactSaplingOutput.html
      index ebede090d..5d18a91d0 100644
      --- a/rustdoc/latest/zcash_client_backend/proto/compact_formats/struct.CompactSaplingOutput.html
      +++ b/rustdoc/latest/zcash_client_backend/proto/compact_formats/struct.CompactSaplingOutput.html
      @@ -1,4 +1,4 @@
      -CompactSaplingOutput in zcash_client_backend::proto::compact_formats - Rust

      Struct CompactSaplingOutput

      Source
      pub struct CompactSaplingOutput {
      +CompactSaplingOutput in zcash_client_backend::proto::compact_formats - Rust

      Struct CompactSaplingOutput

      Source
      pub struct CompactSaplingOutput {
           pub cmu: Vec<u8>,
           pub ephemeral_key: Vec<u8>,
           pub ciphertext: Vec<u8>,
      diff --git a/rustdoc/latest/zcash_client_backend/proto/compact_formats/struct.CompactSaplingSpend.html b/rustdoc/latest/zcash_client_backend/proto/compact_formats/struct.CompactSaplingSpend.html
      index e03070e56..638db08bb 100644
      --- a/rustdoc/latest/zcash_client_backend/proto/compact_formats/struct.CompactSaplingSpend.html
      +++ b/rustdoc/latest/zcash_client_backend/proto/compact_formats/struct.CompactSaplingSpend.html
      @@ -1,4 +1,4 @@
      -CompactSaplingSpend in zcash_client_backend::proto::compact_formats - Rust

      Struct CompactSaplingSpend

      Source
      pub struct CompactSaplingSpend {
      +CompactSaplingSpend in zcash_client_backend::proto::compact_formats - Rust

      Struct CompactSaplingSpend

      Source
      pub struct CompactSaplingSpend {
           pub nf: Vec<u8>,
       }
      Expand description

      A compact representation of a Sapling Spend.

      CompactSaplingSpend is a Sapling Spend Description as described in 7.3 of the Zcash diff --git a/rustdoc/latest/zcash_client_backend/proto/compact_formats/struct.CompactTx.html b/rustdoc/latest/zcash_client_backend/proto/compact_formats/struct.CompactTx.html index 9a521de08..3c801d4cf 100644 --- a/rustdoc/latest/zcash_client_backend/proto/compact_formats/struct.CompactTx.html +++ b/rustdoc/latest/zcash_client_backend/proto/compact_formats/struct.CompactTx.html @@ -1,4 +1,4 @@ -CompactTx in zcash_client_backend::proto::compact_formats - Rust

      Struct CompactTx

      Source
      pub struct CompactTx {
      +CompactTx in zcash_client_backend::proto::compact_formats - Rust

      Struct CompactTx

      Source
      pub struct CompactTx {
           pub index: u64,
           pub hash: Vec<u8>,
           pub fee: u32,
      diff --git a/rustdoc/latest/zcash_client_backend/proto/constant.PROPOSAL_SER_V1.html b/rustdoc/latest/zcash_client_backend/proto/constant.PROPOSAL_SER_V1.html
      index 25c10b7c8..abad2a63f 100644
      --- a/rustdoc/latest/zcash_client_backend/proto/constant.PROPOSAL_SER_V1.html
      +++ b/rustdoc/latest/zcash_client_backend/proto/constant.PROPOSAL_SER_V1.html
      @@ -1,2 +1,2 @@
      -PROPOSAL_SER_V1 in zcash_client_backend::proto - Rust

      Constant PROPOSAL_SER_V1

      Source
      pub const PROPOSAL_SER_V1: u32 = 1;
      Expand description

      Constant for the V1 proposal serialization version.

      +PROPOSAL_SER_V1 in zcash_client_backend::proto - Rust

      Constant PROPOSAL_SER_V1

      Source
      pub const PROPOSAL_SER_V1: u32 = 1;
      Expand description

      Constant for the V1 proposal serialization version.

      \ No newline at end of file diff --git a/rustdoc/latest/zcash_client_backend/proto/enum.ProposalDecodingError.html b/rustdoc/latest/zcash_client_backend/proto/enum.ProposalDecodingError.html index d4d9a25b3..14f35552a 100644 --- a/rustdoc/latest/zcash_client_backend/proto/enum.ProposalDecodingError.html +++ b/rustdoc/latest/zcash_client_backend/proto/enum.ProposalDecodingError.html @@ -1,4 +1,4 @@ -ProposalDecodingError in zcash_client_backend::proto - Rust

      Enum ProposalDecodingError

      Source
      pub enum ProposalDecodingError<DbError> {
      +ProposalDecodingError in zcash_client_backend::proto - Rust

      Enum ProposalDecodingError

      Source
      pub enum ProposalDecodingError<DbError> {
       
      Show 16 variants NoSteps, Zip321(Zip321Error), NullInput(usize), diff --git a/rustdoc/latest/zcash_client_backend/proto/index.html b/rustdoc/latest/zcash_client_backend/proto/index.html index c4eedb693..9a7c9334d 100644 --- a/rustdoc/latest/zcash_client_backend/proto/index.html +++ b/rustdoc/latest/zcash_client_backend/proto/index.html @@ -1,3 +1,3 @@ -zcash_client_backend::proto - Rust

      Module proto

      Source
      Expand description

      This module contains generated code for handling light client protobuf structs.

      +zcash_client_backend::proto - Rust

      Module proto

      Source
      Expand description

      This module contains generated code for handling light client protobuf structs.

      Modules§

      compact_formats
      proposal
      service

      Enums§

      ProposalDecodingError
      Errors that can occur in the process of decoding a Proposal from its protobuf representation.

      Constants§

      PROPOSAL_SER_V1
      Constant for the V1 proposal serialization version.
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_client_backend/proto/proposal/enum.FeeRule.html b/rustdoc/latest/zcash_client_backend/proto/proposal/enum.FeeRule.html index b81049a33..0659c57a1 100644 --- a/rustdoc/latest/zcash_client_backend/proto/proposal/enum.FeeRule.html +++ b/rustdoc/latest/zcash_client_backend/proto/proposal/enum.FeeRule.html @@ -1,4 +1,4 @@ -FeeRule in zcash_client_backend::proto::proposal - Rust

      Enum FeeRule

      Source
      #[repr(i32)]
      pub enum FeeRule { +FeeRule in zcash_client_backend::proto::proposal - Rust

      Enum FeeRule

      Source
      #[repr(i32)]
      pub enum FeeRule { NotSpecified = 0, PreZip313 = 1, Zip313 = 2, diff --git a/rustdoc/latest/zcash_client_backend/proto/proposal/enum.ValuePool.html b/rustdoc/latest/zcash_client_backend/proto/proposal/enum.ValuePool.html index 95973a864..1af35c794 100644 --- a/rustdoc/latest/zcash_client_backend/proto/proposal/enum.ValuePool.html +++ b/rustdoc/latest/zcash_client_backend/proto/proposal/enum.ValuePool.html @@ -1,4 +1,4 @@ -ValuePool in zcash_client_backend::proto::proposal - Rust

      Enum ValuePool

      Source
      #[repr(i32)]
      pub enum ValuePool { +ValuePool in zcash_client_backend::proto::proposal - Rust

      Enum ValuePool

      Source
      #[repr(i32)]
      pub enum ValuePool { PoolNotSpecified = 0, Transparent = 1, Sapling = 2, diff --git a/rustdoc/latest/zcash_client_backend/proto/proposal/index.html b/rustdoc/latest/zcash_client_backend/proto/proposal/index.html index f8cf66bfa..52af6d018 100644 --- a/rustdoc/latest/zcash_client_backend/proto/proposal/index.html +++ b/rustdoc/latest/zcash_client_backend/proto/proposal/index.html @@ -1,4 +1,4 @@ -zcash_client_backend::proto::proposal - Rust

      Module proposal

      Source

      Modules§

      proposed_input
      Nested message and enum types in ProposedInput.

      Structs§

      ChangeValue
      A proposed change or ephemeral output. If the transparent value pool is +zcash_client_backend::proto::proposal - Rust

      Module proposal

      Source

      Modules§

      proposed_input
      Nested message and enum types in ProposedInput.

      Structs§

      ChangeValue
      A proposed change or ephemeral output. If the transparent value pool is selected, the memo field must be null.
      MemoBytes
      An object wrapper for memo bytes, to facilitate representing the change_memo == None case.
      PaymentOutputPool
      A mapping from ZIP 321 payment index to the output pool that has been chosen for that payment, based upon the payment address and the selected inputs to diff --git a/rustdoc/latest/zcash_client_backend/proto/proposal/proposed_input/enum.Value.html b/rustdoc/latest/zcash_client_backend/proto/proposal/proposed_input/enum.Value.html index 24e38545d..24c39450d 100644 --- a/rustdoc/latest/zcash_client_backend/proto/proposal/proposed_input/enum.Value.html +++ b/rustdoc/latest/zcash_client_backend/proto/proposal/proposed_input/enum.Value.html @@ -1,4 +1,4 @@ -Value in zcash_client_backend::proto::proposal::proposed_input - Rust
      pub enum Value {
      +Value in zcash_client_backend::proto::proposal::proposed_input - Rust
      pub enum Value {
           ReceivedOutput(ReceivedOutput),
           PriorStepOutput(PriorStepOutput),
           PriorStepChange(PriorStepChange),
      diff --git a/rustdoc/latest/zcash_client_backend/proto/proposal/proposed_input/index.html b/rustdoc/latest/zcash_client_backend/proto/proposal/proposed_input/index.html
      index 4e59f3614..ba28dd33f 100644
      --- a/rustdoc/latest/zcash_client_backend/proto/proposal/proposed_input/index.html
      +++ b/rustdoc/latest/zcash_client_backend/proto/proposal/proposed_input/index.html
      @@ -1,2 +1,2 @@
      -zcash_client_backend::proto::proposal::proposed_input - Rust

      Module proposed_input

      Source
      Expand description

      Nested message and enum types in ProposedInput.

      +zcash_client_backend::proto::proposal::proposed_input - Rust

      Module proposed_input

      Source
      Expand description

      Nested message and enum types in ProposedInput.

      Enums§

      Value
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_client_backend/proto/proposal/struct.ChangeValue.html b/rustdoc/latest/zcash_client_backend/proto/proposal/struct.ChangeValue.html index d696f43e8..efaa4c678 100644 --- a/rustdoc/latest/zcash_client_backend/proto/proposal/struct.ChangeValue.html +++ b/rustdoc/latest/zcash_client_backend/proto/proposal/struct.ChangeValue.html @@ -1,4 +1,4 @@ -ChangeValue in zcash_client_backend::proto::proposal - Rust

      Struct ChangeValue

      Source
      pub struct ChangeValue {
      +ChangeValue in zcash_client_backend::proto::proposal - Rust

      Struct ChangeValue

      Source
      pub struct ChangeValue {
           pub value: u64,
           pub value_pool: i32,
           pub memo: Option<MemoBytes>,
      diff --git a/rustdoc/latest/zcash_client_backend/proto/proposal/struct.MemoBytes.html b/rustdoc/latest/zcash_client_backend/proto/proposal/struct.MemoBytes.html
      index 1e4044169..adb9f2c43 100644
      --- a/rustdoc/latest/zcash_client_backend/proto/proposal/struct.MemoBytes.html
      +++ b/rustdoc/latest/zcash_client_backend/proto/proposal/struct.MemoBytes.html
      @@ -1,4 +1,4 @@
      -MemoBytes in zcash_client_backend::proto::proposal - Rust

      Struct MemoBytes

      Source
      pub struct MemoBytes {
      +MemoBytes in zcash_client_backend::proto::proposal - Rust

      Struct MemoBytes

      Source
      pub struct MemoBytes {
           pub value: Vec<u8>,
       }
      Expand description

      An object wrapper for memo bytes, to facilitate representing the change_memo == None case.

      diff --git a/rustdoc/latest/zcash_client_backend/proto/proposal/struct.PaymentOutputPool.html b/rustdoc/latest/zcash_client_backend/proto/proposal/struct.PaymentOutputPool.html index 70feaf0be..2a217de99 100644 --- a/rustdoc/latest/zcash_client_backend/proto/proposal/struct.PaymentOutputPool.html +++ b/rustdoc/latest/zcash_client_backend/proto/proposal/struct.PaymentOutputPool.html @@ -1,4 +1,4 @@ -PaymentOutputPool in zcash_client_backend::proto::proposal - Rust

      Struct PaymentOutputPool

      Source
      pub struct PaymentOutputPool {
      +PaymentOutputPool in zcash_client_backend::proto::proposal - Rust

      Struct PaymentOutputPool

      Source
      pub struct PaymentOutputPool {
           pub payment_index: u32,
           pub value_pool: i32,
       }
      Expand description

      A mapping from ZIP 321 payment index to the output pool that has been chosen diff --git a/rustdoc/latest/zcash_client_backend/proto/proposal/struct.PriorStepChange.html b/rustdoc/latest/zcash_client_backend/proto/proposal/struct.PriorStepChange.html index f047ad390..ee3df5132 100644 --- a/rustdoc/latest/zcash_client_backend/proto/proposal/struct.PriorStepChange.html +++ b/rustdoc/latest/zcash_client_backend/proto/proposal/struct.PriorStepChange.html @@ -1,4 +1,4 @@ -PriorStepChange in zcash_client_backend::proto::proposal - Rust

      Struct PriorStepChange

      Source
      pub struct PriorStepChange {
      +PriorStepChange in zcash_client_backend::proto::proposal - Rust

      Struct PriorStepChange

      Source
      pub struct PriorStepChange {
           pub step_index: u32,
           pub change_index: u32,
       }
      Expand description

      A reference to a change or ephemeral output from a prior step of the proposal.

      diff --git a/rustdoc/latest/zcash_client_backend/proto/proposal/struct.PriorStepOutput.html b/rustdoc/latest/zcash_client_backend/proto/proposal/struct.PriorStepOutput.html index b9c977cb6..9387edc6d 100644 --- a/rustdoc/latest/zcash_client_backend/proto/proposal/struct.PriorStepOutput.html +++ b/rustdoc/latest/zcash_client_backend/proto/proposal/struct.PriorStepOutput.html @@ -1,4 +1,4 @@ -PriorStepOutput in zcash_client_backend::proto::proposal - Rust

      Struct PriorStepOutput

      Source
      pub struct PriorStepOutput {
      +PriorStepOutput in zcash_client_backend::proto::proposal - Rust

      Struct PriorStepOutput

      Source
      pub struct PriorStepOutput {
           pub step_index: u32,
           pub payment_index: u32,
       }
      Expand description

      A reference to a payment in a prior step of the proposal. This payment must diff --git a/rustdoc/latest/zcash_client_backend/proto/proposal/struct.Proposal.html b/rustdoc/latest/zcash_client_backend/proto/proposal/struct.Proposal.html index 81ed11318..50a608031 100644 --- a/rustdoc/latest/zcash_client_backend/proto/proposal/struct.Proposal.html +++ b/rustdoc/latest/zcash_client_backend/proto/proposal/struct.Proposal.html @@ -1,4 +1,4 @@ -Proposal in zcash_client_backend::proto::proposal - Rust

      Struct Proposal

      Source
      pub struct Proposal {
      +Proposal in zcash_client_backend::proto::proposal - Rust

      Struct Proposal

      Source
      pub struct Proposal {
           pub proto_version: u32,
           pub fee_rule: i32,
           pub min_target_height: u32,
      diff --git a/rustdoc/latest/zcash_client_backend/proto/proposal/struct.ProposalStep.html b/rustdoc/latest/zcash_client_backend/proto/proposal/struct.ProposalStep.html
      index 235c5cfce..98fd026b5 100644
      --- a/rustdoc/latest/zcash_client_backend/proto/proposal/struct.ProposalStep.html
      +++ b/rustdoc/latest/zcash_client_backend/proto/proposal/struct.ProposalStep.html
      @@ -1,4 +1,4 @@
      -ProposalStep in zcash_client_backend::proto::proposal - Rust

      Struct ProposalStep

      Source
      pub struct ProposalStep {
      +ProposalStep in zcash_client_backend::proto::proposal - Rust

      Struct ProposalStep

      Source
      pub struct ProposalStep {
           pub transaction_request: String,
           pub payment_output_pools: Vec<PaymentOutputPool>,
           pub anchor_height: u32,
      diff --git a/rustdoc/latest/zcash_client_backend/proto/proposal/struct.ProposedInput.html b/rustdoc/latest/zcash_client_backend/proto/proposal/struct.ProposedInput.html
      index 432dcec91..4b9f954b2 100644
      --- a/rustdoc/latest/zcash_client_backend/proto/proposal/struct.ProposedInput.html
      +++ b/rustdoc/latest/zcash_client_backend/proto/proposal/struct.ProposedInput.html
      @@ -1,4 +1,4 @@
      -ProposedInput in zcash_client_backend::proto::proposal - Rust

      Struct ProposedInput

      Source
      pub struct ProposedInput {
      +ProposedInput in zcash_client_backend::proto::proposal - Rust

      Struct ProposedInput

      Source
      pub struct ProposedInput {
           pub value: Option<Value>,
       }
      Expand description

      The unique identifier and value for an input to be used in the transaction.

      Fields§

      §value: Option<Value>

      Trait Implementations§

      Source§

      impl Clone for ProposedInput

      Source§

      fn clone(&self) -> ProposedInput

      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 ProposedInput

      Source§

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

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

      impl Default for ProposedInput

      Source§

      fn default() -> Self

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

      impl Message for ProposedInput

      Source§

      fn encoded_len(&self) -> usize

      Returns the encoded length of the message without a length delimiter.
      Source§

      fn clear(&mut self)

      Clears the message, resetting all fields to their default.
      Source§

      fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>
      where diff --git a/rustdoc/latest/zcash_client_backend/proto/proposal/struct.ReceivedOutput.html b/rustdoc/latest/zcash_client_backend/proto/proposal/struct.ReceivedOutput.html index fbaa0982b..7d0ade5cc 100644 --- a/rustdoc/latest/zcash_client_backend/proto/proposal/struct.ReceivedOutput.html +++ b/rustdoc/latest/zcash_client_backend/proto/proposal/struct.ReceivedOutput.html @@ -1,4 +1,4 @@ -ReceivedOutput in zcash_client_backend::proto::proposal - Rust

      Struct ReceivedOutput

      Source
      pub struct ReceivedOutput {
      +ReceivedOutput in zcash_client_backend::proto::proposal - Rust

      Struct ReceivedOutput

      Source
      pub struct ReceivedOutput {
           pub txid: Vec<u8>,
           pub value_pool: i32,
           pub index: u32,
      diff --git a/rustdoc/latest/zcash_client_backend/proto/proposal/struct.TransactionBalance.html b/rustdoc/latest/zcash_client_backend/proto/proposal/struct.TransactionBalance.html
      index 69120d070..a864a542e 100644
      --- a/rustdoc/latest/zcash_client_backend/proto/proposal/struct.TransactionBalance.html
      +++ b/rustdoc/latest/zcash_client_backend/proto/proposal/struct.TransactionBalance.html
      @@ -1,4 +1,4 @@
      -TransactionBalance in zcash_client_backend::proto::proposal - Rust

      Struct TransactionBalance

      Source
      pub struct TransactionBalance {
      +TransactionBalance in zcash_client_backend::proto::proposal - Rust

      Struct TransactionBalance

      Source
      pub struct TransactionBalance {
           pub proposed_change: Vec<ChangeValue>,
           pub fee_required: u64,
       }
      Expand description

      The proposed change outputs and fee value.

      diff --git a/rustdoc/latest/zcash_client_backend/proto/service/compact_tx_streamer_client/index.html b/rustdoc/latest/zcash_client_backend/proto/service/compact_tx_streamer_client/index.html index d0d81f163..b495d30b5 100644 --- a/rustdoc/latest/zcash_client_backend/proto/service/compact_tx_streamer_client/index.html +++ b/rustdoc/latest/zcash_client_backend/proto/service/compact_tx_streamer_client/index.html @@ -1,2 +1,2 @@ -zcash_client_backend::proto::service::compact_tx_streamer_client - Rust

      Module compact_tx_streamer_client

      Source
      Available on crate feature lightwalletd-tonic only.
      Expand description

      Generated client implementations.

      +zcash_client_backend::proto::service::compact_tx_streamer_client - Rust

      Module compact_tx_streamer_client

      Source
      Available on crate feature lightwalletd-tonic only.
      Expand description

      Generated client implementations.

      Structs§

      CompactTxStreamerClient
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_client_backend/proto/service/compact_tx_streamer_client/struct.CompactTxStreamerClient.html b/rustdoc/latest/zcash_client_backend/proto/service/compact_tx_streamer_client/struct.CompactTxStreamerClient.html index ecce2962b..009729fb7 100644 --- a/rustdoc/latest/zcash_client_backend/proto/service/compact_tx_streamer_client/struct.CompactTxStreamerClient.html +++ b/rustdoc/latest/zcash_client_backend/proto/service/compact_tx_streamer_client/struct.CompactTxStreamerClient.html @@ -1,4 +1,4 @@ -CompactTxStreamerClient in zcash_client_backend::proto::service::compact_tx_streamer_client - Rust

      Struct CompactTxStreamerClient

      Source
      pub struct CompactTxStreamerClient<T> { /* private fields */ }
      Available on crate feature lightwalletd-tonic only.

      Implementations§

      Source§

      impl<T> CompactTxStreamerClient<T>
      where +CompactTxStreamerClient in zcash_client_backend::proto::service::compact_tx_streamer_client - Rust

      Struct CompactTxStreamerClient

      Source
      pub struct CompactTxStreamerClient<T> { /* private fields */ }
      Available on crate feature lightwalletd-tonic only.

      Implementations§

      Source§

      impl<T> CompactTxStreamerClient<T>
      where T: GrpcService<Body>, T::Error: Into<StdError>, T::ResponseBody: Body<Data = Bytes> + Send + 'static, diff --git a/rustdoc/latest/zcash_client_backend/proto/service/enum.ShieldedProtocol.html b/rustdoc/latest/zcash_client_backend/proto/service/enum.ShieldedProtocol.html index d8d060391..6db04bea6 100644 --- a/rustdoc/latest/zcash_client_backend/proto/service/enum.ShieldedProtocol.html +++ b/rustdoc/latest/zcash_client_backend/proto/service/enum.ShieldedProtocol.html @@ -1,4 +1,4 @@ -ShieldedProtocol in zcash_client_backend::proto::service - Rust

      Enum ShieldedProtocol

      Source
      #[repr(i32)]
      pub enum ShieldedProtocol { +ShieldedProtocol in zcash_client_backend::proto::service - Rust

      Enum ShieldedProtocol

      Source
      #[repr(i32)]
      pub enum ShieldedProtocol { Sapling = 0, Orchard = 1, }

      Variants§

      §

      Sapling = 0

      §

      Orchard = 1

      Implementations§

      Source§

      impl ShieldedProtocol

      Source

      pub fn is_valid(value: i32) -> bool

      Returns true if value is a variant of ShieldedProtocol.

      diff --git a/rustdoc/latest/zcash_client_backend/proto/service/index.html b/rustdoc/latest/zcash_client_backend/proto/service/index.html index bb9013ec3..80adb0f86 100644 --- a/rustdoc/latest/zcash_client_backend/proto/service/index.html +++ b/rustdoc/latest/zcash_client_backend/proto/service/index.html @@ -1,4 +1,4 @@ -zcash_client_backend::proto::service - Rust

      Module service

      Source

      Modules§

      compact_tx_streamer_clientlightwalletd-tonic
      Generated client implementations.

      Structs§

      Address
      AddressList
      Balance
      BlockId
      A BlockID message contains identifiers to select a block: a height or a +zcash_client_backend::proto::service - Rust

      Module service

      Source

      Modules§

      compact_tx_streamer_clientlightwalletd-tonic
      Generated client implementations.

      Structs§

      Address
      AddressList
      Balance
      BlockId
      A BlockID message contains identifiers to select a block: a height or a hash. Specification by hash is not implemented, but may be in the future.
      BlockRange
      BlockRange specifies a series of blocks from start to end inclusive. Both BlockIDs must be heights; specification by hash is not yet supported.
      ChainSpec
      Chainspec is a placeholder to allow specification of a particular chain fork.
      Duration
      Duration is currently used only for testing, so that the Ping rpc can simulate a delay, to create many simultaneous connections. Units diff --git a/rustdoc/latest/zcash_client_backend/proto/service/struct.Address.html b/rustdoc/latest/zcash_client_backend/proto/service/struct.Address.html index 0c478bb5f..19d7fb325 100644 --- a/rustdoc/latest/zcash_client_backend/proto/service/struct.Address.html +++ b/rustdoc/latest/zcash_client_backend/proto/service/struct.Address.html @@ -1,4 +1,4 @@ -Address in zcash_client_backend::proto::service - Rust

      Struct Address

      Source
      pub struct Address {
      +Address in zcash_client_backend::proto::service - Rust

      Struct Address

      Source
      pub struct Address {
           pub address: String,
       }

      Fields§

      §address: String

      Trait Implementations§

      Source§

      impl Clone for Address

      Source§

      fn clone(&self) -> Address

      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 Address

      Source§

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

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

      impl Default for Address

      Source§

      fn default() -> Self

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

      impl Message for Address

      Source§

      fn encoded_len(&self) -> usize

      Returns the encoded length of the message without a length delimiter.
      Source§

      fn clear(&mut self)

      Clears the message, resetting all fields to their default.
      Source§

      fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>
      where Self: Sized,

      Encodes the message to a buffer. Read more
      Source§

      fn encode_to_vec(&self) -> Vec<u8>
      where diff --git a/rustdoc/latest/zcash_client_backend/proto/service/struct.AddressList.html b/rustdoc/latest/zcash_client_backend/proto/service/struct.AddressList.html index 8e843370c..b918fdb79 100644 --- a/rustdoc/latest/zcash_client_backend/proto/service/struct.AddressList.html +++ b/rustdoc/latest/zcash_client_backend/proto/service/struct.AddressList.html @@ -1,4 +1,4 @@ -AddressList in zcash_client_backend::proto::service - Rust

      Struct AddressList

      Source
      pub struct AddressList {
      +AddressList in zcash_client_backend::proto::service - Rust

      Struct AddressList

      Source
      pub struct AddressList {
           pub addresses: Vec<String>,
       }

      Fields§

      §addresses: Vec<String>

      Trait Implementations§

      Source§

      impl Clone for AddressList

      Source§

      fn clone(&self) -> AddressList

      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 AddressList

      Source§

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

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

      impl Default for AddressList

      Source§

      fn default() -> Self

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

      impl Message for AddressList

      Source§

      fn encoded_len(&self) -> usize

      Returns the encoded length of the message without a length delimiter.
      Source§

      fn clear(&mut self)

      Clears the message, resetting all fields to their default.
      Source§

      fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>
      where Self: Sized,

      Encodes the message to a buffer. Read more
      Source§

      fn encode_to_vec(&self) -> Vec<u8>
      where diff --git a/rustdoc/latest/zcash_client_backend/proto/service/struct.Balance.html b/rustdoc/latest/zcash_client_backend/proto/service/struct.Balance.html index 7a3ca1c94..2865edf14 100644 --- a/rustdoc/latest/zcash_client_backend/proto/service/struct.Balance.html +++ b/rustdoc/latest/zcash_client_backend/proto/service/struct.Balance.html @@ -1,4 +1,4 @@ -Balance in zcash_client_backend::proto::service - Rust

      Struct Balance

      Source
      pub struct Balance {
      +Balance in zcash_client_backend::proto::service - Rust

      Struct Balance

      Source
      pub struct Balance {
           pub value_zat: i64,
       }

      Fields§

      §value_zat: i64

      Trait Implementations§

      Source§

      impl Clone for Balance

      Source§

      fn clone(&self) -> Balance

      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 Balance

      Source§

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

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

      impl Default for Balance

      Source§

      fn default() -> Self

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

      impl Message for Balance

      Source§

      fn encoded_len(&self) -> usize

      Returns the encoded length of the message without a length delimiter.
      Source§

      fn clear(&mut self)

      Clears the message, resetting all fields to their default.
      Source§

      fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>
      where Self: Sized,

      Encodes the message to a buffer. Read more
      Source§

      fn encode_to_vec(&self) -> Vec<u8>
      where diff --git a/rustdoc/latest/zcash_client_backend/proto/service/struct.BlockId.html b/rustdoc/latest/zcash_client_backend/proto/service/struct.BlockId.html index df60e0e75..e7b0ffb3c 100644 --- a/rustdoc/latest/zcash_client_backend/proto/service/struct.BlockId.html +++ b/rustdoc/latest/zcash_client_backend/proto/service/struct.BlockId.html @@ -1,4 +1,4 @@ -BlockId in zcash_client_backend::proto::service - Rust

      Struct BlockId

      Source
      pub struct BlockId {
      +BlockId in zcash_client_backend::proto::service - Rust

      Struct BlockId

      Source
      pub struct BlockId {
           pub height: u64,
           pub hash: Vec<u8>,
       }
      Expand description

      A BlockID message contains identifiers to select a block: a height or a diff --git a/rustdoc/latest/zcash_client_backend/proto/service/struct.BlockRange.html b/rustdoc/latest/zcash_client_backend/proto/service/struct.BlockRange.html index 6256cac2c..963e20a84 100644 --- a/rustdoc/latest/zcash_client_backend/proto/service/struct.BlockRange.html +++ b/rustdoc/latest/zcash_client_backend/proto/service/struct.BlockRange.html @@ -1,4 +1,4 @@ -BlockRange in zcash_client_backend::proto::service - Rust

      Struct BlockRange

      Source
      pub struct BlockRange {
      +BlockRange in zcash_client_backend::proto::service - Rust

      Struct BlockRange

      Source
      pub struct BlockRange {
           pub start: Option<BlockId>,
           pub end: Option<BlockId>,
       }
      Expand description

      BlockRange specifies a series of blocks from start to end inclusive. diff --git a/rustdoc/latest/zcash_client_backend/proto/service/struct.ChainSpec.html b/rustdoc/latest/zcash_client_backend/proto/service/struct.ChainSpec.html index 6fb9ded4a..716366d16 100644 --- a/rustdoc/latest/zcash_client_backend/proto/service/struct.ChainSpec.html +++ b/rustdoc/latest/zcash_client_backend/proto/service/struct.ChainSpec.html @@ -1,4 +1,4 @@ -ChainSpec in zcash_client_backend::proto::service - Rust

      Struct ChainSpec

      Source
      pub struct ChainSpec {}
      Expand description

      Chainspec is a placeholder to allow specification of a particular chain fork.

      +ChainSpec in zcash_client_backend::proto::service - Rust

      Struct ChainSpec

      Source
      pub struct ChainSpec {}
      Expand description

      Chainspec is a placeholder to allow specification of a particular chain fork.

      Trait Implementations§

      Source§

      impl Clone for ChainSpec

      Source§

      fn clone(&self) -> ChainSpec

      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 ChainSpec

      Source§

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

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

      impl Default for ChainSpec

      Source§

      fn default() -> Self

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

      impl Message for ChainSpec

      Source§

      fn encoded_len(&self) -> usize

      Returns the encoded length of the message without a length delimiter.
      Source§

      fn clear(&mut self)

      Clears the message, resetting all fields to their default.
      Source§

      fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>
      where Self: Sized,

      Encodes the message to a buffer. Read more
      Source§

      fn encode_to_vec(&self) -> Vec<u8>
      where Self: Sized,

      Encodes the message to a newly allocated buffer.
      Source§

      fn encode_length_delimited( diff --git a/rustdoc/latest/zcash_client_backend/proto/service/struct.Duration.html b/rustdoc/latest/zcash_client_backend/proto/service/struct.Duration.html index 58e069e2e..1a767e665 100644 --- a/rustdoc/latest/zcash_client_backend/proto/service/struct.Duration.html +++ b/rustdoc/latest/zcash_client_backend/proto/service/struct.Duration.html @@ -1,4 +1,4 @@ -Duration in zcash_client_backend::proto::service - Rust

      Struct Duration

      Source
      pub struct Duration {
      +Duration in zcash_client_backend::proto::service - Rust

      Struct Duration

      Source
      pub struct Duration {
           pub interval_us: i64,
       }
      Expand description

      Duration is currently used only for testing, so that the Ping rpc can simulate a delay, to create many simultaneous connections. Units diff --git a/rustdoc/latest/zcash_client_backend/proto/service/struct.Empty.html b/rustdoc/latest/zcash_client_backend/proto/service/struct.Empty.html index ba296a2f8..902ff12a8 100644 --- a/rustdoc/latest/zcash_client_backend/proto/service/struct.Empty.html +++ b/rustdoc/latest/zcash_client_backend/proto/service/struct.Empty.html @@ -1,4 +1,4 @@ -Empty in zcash_client_backend::proto::service - Rust

      Struct Empty

      Source
      pub struct Empty {}
      Expand description

      Empty is for gRPCs that take no arguments, currently only GetLightdInfo.

      +Empty in zcash_client_backend::proto::service - Rust

      Struct Empty

      Source
      pub struct Empty {}
      Expand description

      Empty is for gRPCs that take no arguments, currently only GetLightdInfo.

      Trait Implementations§

      Source§

      impl Clone for Empty

      Source§

      fn clone(&self) -> Empty

      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 Empty

      Source§

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

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

      impl Default for Empty

      Source§

      fn default() -> Self

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

      impl Message for Empty

      Source§

      fn encoded_len(&self) -> usize

      Returns the encoded length of the message without a length delimiter.
      Source§

      fn clear(&mut self)

      Clears the message, resetting all fields to their default.
      Source§

      fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>
      where Self: Sized,

      Encodes the message to a buffer. Read more
      Source§

      fn encode_to_vec(&self) -> Vec<u8>
      where Self: Sized,

      Encodes the message to a newly allocated buffer.
      Source§

      fn encode_length_delimited( diff --git a/rustdoc/latest/zcash_client_backend/proto/service/struct.Exclude.html b/rustdoc/latest/zcash_client_backend/proto/service/struct.Exclude.html index aa15b22fe..d6cee263b 100644 --- a/rustdoc/latest/zcash_client_backend/proto/service/struct.Exclude.html +++ b/rustdoc/latest/zcash_client_backend/proto/service/struct.Exclude.html @@ -1,4 +1,4 @@ -Exclude in zcash_client_backend::proto::service - Rust

      Struct Exclude

      Source
      pub struct Exclude {
      +Exclude in zcash_client_backend::proto::service - Rust

      Struct Exclude

      Source
      pub struct Exclude {
           pub txid: Vec<Vec<u8>>,
       }

      Fields§

      §txid: Vec<Vec<u8>>

      Trait Implementations§

      Source§

      impl Clone for Exclude

      Source§

      fn clone(&self) -> Exclude

      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 Exclude

      Source§

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

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

      impl Default for Exclude

      Source§

      fn default() -> Self

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

      impl Message for Exclude

      Source§

      fn encoded_len(&self) -> usize

      Returns the encoded length of the message without a length delimiter.
      Source§

      fn clear(&mut self)

      Clears the message, resetting all fields to their default.
      Source§

      fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>
      where Self: Sized,

      Encodes the message to a buffer. Read more
      Source§

      fn encode_to_vec(&self) -> Vec<u8>
      where diff --git a/rustdoc/latest/zcash_client_backend/proto/service/struct.GetAddressUtxosArg.html b/rustdoc/latest/zcash_client_backend/proto/service/struct.GetAddressUtxosArg.html index 12430746b..82263d966 100644 --- a/rustdoc/latest/zcash_client_backend/proto/service/struct.GetAddressUtxosArg.html +++ b/rustdoc/latest/zcash_client_backend/proto/service/struct.GetAddressUtxosArg.html @@ -1,4 +1,4 @@ -GetAddressUtxosArg in zcash_client_backend::proto::service - Rust

      Struct GetAddressUtxosArg

      Source
      pub struct GetAddressUtxosArg {
      +GetAddressUtxosArg in zcash_client_backend::proto::service - Rust

      Struct GetAddressUtxosArg

      Source
      pub struct GetAddressUtxosArg {
           pub addresses: Vec<String>,
           pub start_height: u64,
           pub max_entries: u32,
      diff --git a/rustdoc/latest/zcash_client_backend/proto/service/struct.GetAddressUtxosReply.html b/rustdoc/latest/zcash_client_backend/proto/service/struct.GetAddressUtxosReply.html
      index 34edb4fe0..da9f8cfff 100644
      --- a/rustdoc/latest/zcash_client_backend/proto/service/struct.GetAddressUtxosReply.html
      +++ b/rustdoc/latest/zcash_client_backend/proto/service/struct.GetAddressUtxosReply.html
      @@ -1,4 +1,4 @@
      -GetAddressUtxosReply in zcash_client_backend::proto::service - Rust

      Struct GetAddressUtxosReply

      Source
      pub struct GetAddressUtxosReply {
      +GetAddressUtxosReply in zcash_client_backend::proto::service - Rust

      Struct GetAddressUtxosReply

      Source
      pub struct GetAddressUtxosReply {
           pub address: String,
           pub txid: Vec<u8>,
           pub index: i32,
      diff --git a/rustdoc/latest/zcash_client_backend/proto/service/struct.GetAddressUtxosReplyList.html b/rustdoc/latest/zcash_client_backend/proto/service/struct.GetAddressUtxosReplyList.html
      index e05cf411a..c59a66c8f 100644
      --- a/rustdoc/latest/zcash_client_backend/proto/service/struct.GetAddressUtxosReplyList.html
      +++ b/rustdoc/latest/zcash_client_backend/proto/service/struct.GetAddressUtxosReplyList.html
      @@ -1,4 +1,4 @@
      -GetAddressUtxosReplyList in zcash_client_backend::proto::service - Rust

      Struct GetAddressUtxosReplyList

      Source
      pub struct GetAddressUtxosReplyList {
      +GetAddressUtxosReplyList in zcash_client_backend::proto::service - Rust

      Struct GetAddressUtxosReplyList

      Source
      pub struct GetAddressUtxosReplyList {
           pub address_utxos: Vec<GetAddressUtxosReply>,
       }

      Fields§

      §address_utxos: Vec<GetAddressUtxosReply>

      Trait Implementations§

      Source§

      impl Clone for GetAddressUtxosReplyList

      Source§

      fn clone(&self) -> GetAddressUtxosReplyList

      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 GetAddressUtxosReplyList

      Source§

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

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

      impl Default for GetAddressUtxosReplyList

      Source§

      fn default() -> Self

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

      impl Message for GetAddressUtxosReplyList

      Source§

      fn encoded_len(&self) -> usize

      Returns the encoded length of the message without a length delimiter.
      Source§

      fn clear(&mut self)

      Clears the message, resetting all fields to their default.
      Source§

      fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>
      where Self: Sized,

      Encodes the message to a buffer. Read more
      Source§

      fn encode_to_vec(&self) -> Vec<u8>
      where diff --git a/rustdoc/latest/zcash_client_backend/proto/service/struct.GetSubtreeRootsArg.html b/rustdoc/latest/zcash_client_backend/proto/service/struct.GetSubtreeRootsArg.html index def086972..7768d5984 100644 --- a/rustdoc/latest/zcash_client_backend/proto/service/struct.GetSubtreeRootsArg.html +++ b/rustdoc/latest/zcash_client_backend/proto/service/struct.GetSubtreeRootsArg.html @@ -1,4 +1,4 @@ -GetSubtreeRootsArg in zcash_client_backend::proto::service - Rust

      Struct GetSubtreeRootsArg

      Source
      pub struct GetSubtreeRootsArg {
      +GetSubtreeRootsArg in zcash_client_backend::proto::service - Rust

      Struct GetSubtreeRootsArg

      Source
      pub struct GetSubtreeRootsArg {
           pub start_index: u32,
           pub shielded_protocol: i32,
           pub max_entries: u32,
      diff --git a/rustdoc/latest/zcash_client_backend/proto/service/struct.LightdInfo.html b/rustdoc/latest/zcash_client_backend/proto/service/struct.LightdInfo.html
      index 0975d1c1e..e6ca42e69 100644
      --- a/rustdoc/latest/zcash_client_backend/proto/service/struct.LightdInfo.html
      +++ b/rustdoc/latest/zcash_client_backend/proto/service/struct.LightdInfo.html
      @@ -1,4 +1,4 @@
      -LightdInfo in zcash_client_backend::proto::service - Rust

      Struct LightdInfo

      Source
      pub struct LightdInfo {
      Show 15 fields +LightdInfo in zcash_client_backend::proto::service - Rust

      Struct LightdInfo

      Source
      pub struct LightdInfo {
      Show 15 fields pub version: String, pub vendor: String, pub taddr_support: bool, diff --git a/rustdoc/latest/zcash_client_backend/proto/service/struct.PingResponse.html b/rustdoc/latest/zcash_client_backend/proto/service/struct.PingResponse.html index 24a5466ef..01885302f 100644 --- a/rustdoc/latest/zcash_client_backend/proto/service/struct.PingResponse.html +++ b/rustdoc/latest/zcash_client_backend/proto/service/struct.PingResponse.html @@ -1,4 +1,4 @@ -PingResponse in zcash_client_backend::proto::service - Rust

      Struct PingResponse

      Source
      pub struct PingResponse {
      +PingResponse in zcash_client_backend::proto::service - Rust

      Struct PingResponse

      Source
      pub struct PingResponse {
           pub entry: i64,
           pub exit: i64,
       }
      Expand description

      PingResponse is used to indicate concurrency, how many Ping rpcs diff --git a/rustdoc/latest/zcash_client_backend/proto/service/struct.RawTransaction.html b/rustdoc/latest/zcash_client_backend/proto/service/struct.RawTransaction.html index 442bcde5a..9a4cd3c22 100644 --- a/rustdoc/latest/zcash_client_backend/proto/service/struct.RawTransaction.html +++ b/rustdoc/latest/zcash_client_backend/proto/service/struct.RawTransaction.html @@ -1,4 +1,4 @@ -RawTransaction in zcash_client_backend::proto::service - Rust

      Struct RawTransaction

      Source
      pub struct RawTransaction {
      +RawTransaction in zcash_client_backend::proto::service - Rust

      Struct RawTransaction

      Source
      pub struct RawTransaction {
           pub data: Vec<u8>,
           pub height: u64,
       }
      Expand description

      RawTransaction contains the complete transaction data. It also optionally includes diff --git a/rustdoc/latest/zcash_client_backend/proto/service/struct.SendResponse.html b/rustdoc/latest/zcash_client_backend/proto/service/struct.SendResponse.html index c53a76151..8db7ef3f9 100644 --- a/rustdoc/latest/zcash_client_backend/proto/service/struct.SendResponse.html +++ b/rustdoc/latest/zcash_client_backend/proto/service/struct.SendResponse.html @@ -1,4 +1,4 @@ -SendResponse in zcash_client_backend::proto::service - Rust

      Struct SendResponse

      Source
      pub struct SendResponse {
      +SendResponse in zcash_client_backend::proto::service - Rust

      Struct SendResponse

      Source
      pub struct SendResponse {
           pub error_code: i32,
           pub error_message: String,
       }
      Expand description

      A SendResponse encodes an error code and a string. It is currently used diff --git a/rustdoc/latest/zcash_client_backend/proto/service/struct.SubtreeRoot.html b/rustdoc/latest/zcash_client_backend/proto/service/struct.SubtreeRoot.html index 833f17ab8..9a3a55d46 100644 --- a/rustdoc/latest/zcash_client_backend/proto/service/struct.SubtreeRoot.html +++ b/rustdoc/latest/zcash_client_backend/proto/service/struct.SubtreeRoot.html @@ -1,4 +1,4 @@ -SubtreeRoot in zcash_client_backend::proto::service - Rust

      Struct SubtreeRoot

      Source
      pub struct SubtreeRoot {
      +SubtreeRoot in zcash_client_backend::proto::service - Rust

      Struct SubtreeRoot

      Source
      pub struct SubtreeRoot {
           pub root_hash: Vec<u8>,
           pub completing_block_hash: Vec<u8>,
           pub completing_block_height: u64,
      diff --git a/rustdoc/latest/zcash_client_backend/proto/service/struct.TransparentAddressBlockFilter.html b/rustdoc/latest/zcash_client_backend/proto/service/struct.TransparentAddressBlockFilter.html
      index 4a146451c..659f3b497 100644
      --- a/rustdoc/latest/zcash_client_backend/proto/service/struct.TransparentAddressBlockFilter.html
      +++ b/rustdoc/latest/zcash_client_backend/proto/service/struct.TransparentAddressBlockFilter.html
      @@ -1,4 +1,4 @@
      -TransparentAddressBlockFilter in zcash_client_backend::proto::service - Rust

      Struct TransparentAddressBlockFilter

      Source
      pub struct TransparentAddressBlockFilter {
      +TransparentAddressBlockFilter in zcash_client_backend::proto::service - Rust

      Struct TransparentAddressBlockFilter

      Source
      pub struct TransparentAddressBlockFilter {
           pub address: String,
           pub range: Option<BlockRange>,
       }
      Expand description

      TransparentAddressBlockFilter restricts the results to the given address diff --git a/rustdoc/latest/zcash_client_backend/proto/service/struct.TreeState.html b/rustdoc/latest/zcash_client_backend/proto/service/struct.TreeState.html index 73f30513e..207742d35 100644 --- a/rustdoc/latest/zcash_client_backend/proto/service/struct.TreeState.html +++ b/rustdoc/latest/zcash_client_backend/proto/service/struct.TreeState.html @@ -1,4 +1,4 @@ -TreeState in zcash_client_backend::proto::service - Rust

      Struct TreeState

      Source
      pub struct TreeState {
      +TreeState in zcash_client_backend::proto::service - Rust

      Struct TreeState

      Source
      pub struct TreeState {
           pub network: String,
           pub height: u64,
           pub hash: String,
      diff --git a/rustdoc/latest/zcash_client_backend/proto/service/struct.TxFilter.html b/rustdoc/latest/zcash_client_backend/proto/service/struct.TxFilter.html
      index 2faa5b458..7625ee7e5 100644
      --- a/rustdoc/latest/zcash_client_backend/proto/service/struct.TxFilter.html
      +++ b/rustdoc/latest/zcash_client_backend/proto/service/struct.TxFilter.html
      @@ -1,4 +1,4 @@
      -TxFilter in zcash_client_backend::proto::service - Rust

      Struct TxFilter

      Source
      pub struct TxFilter {
      +TxFilter in zcash_client_backend::proto::service - Rust

      Struct TxFilter

      Source
      pub struct TxFilter {
           pub block: Option<BlockId>,
           pub index: u64,
           pub hash: Vec<u8>,
      diff --git a/rustdoc/latest/zcash_client_backend/scan/index.html b/rustdoc/latest/zcash_client_backend/scan/index.html
      index c92e187d1..4d174e95e 100644
      --- a/rustdoc/latest/zcash_client_backend/scan/index.html
      +++ b/rustdoc/latest/zcash_client_backend/scan/index.html
      @@ -1 +1 @@
      -zcash_client_backend::scan - Rust

      Module scan

      Source
      \ No newline at end of file +zcash_client_backend::scan - Rust

      Module scan

      Source
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_client_backend/scanning/enum.ScanError.html b/rustdoc/latest/zcash_client_backend/scanning/enum.ScanError.html index 8ae8e2ce0..b78c8ca00 100644 --- a/rustdoc/latest/zcash_client_backend/scanning/enum.ScanError.html +++ b/rustdoc/latest/zcash_client_backend/scanning/enum.ScanError.html @@ -1,4 +1,4 @@ -ScanError in zcash_client_backend::scanning - Rust

      Enum ScanError

      Source
      pub enum ScanError {
      +ScanError in zcash_client_backend::scanning - Rust

      Enum ScanError

      Source
      pub enum ScanError {
           EncodingInvalid {
               at_height: BlockHeight,
               txid: TxId,
      diff --git a/rustdoc/latest/zcash_client_backend/scanning/fn.scan_block.html b/rustdoc/latest/zcash_client_backend/scanning/fn.scan_block.html
      index 8e62d7889..a155116c4 100644
      --- a/rustdoc/latest/zcash_client_backend/scanning/fn.scan_block.html
      +++ b/rustdoc/latest/zcash_client_backend/scanning/fn.scan_block.html
      @@ -1,4 +1,4 @@
      -scan_block in zcash_client_backend::scanning - Rust

      Function scan_block

      Source
      pub fn scan_block<P, AccountId, IvkTag>(
      +scan_block in zcash_client_backend::scanning - Rust

      Function scan_block

      Source
      pub fn scan_block<P, AccountId, IvkTag>(
           params: &P,
           block: CompactBlock,
           scanning_keys: &ScanningKeys<AccountId, IvkTag>,
      diff --git a/rustdoc/latest/zcash_client_backend/scanning/index.html b/rustdoc/latest/zcash_client_backend/scanning/index.html
      index 127b0d479..93fd3e07b 100644
      --- a/rustdoc/latest/zcash_client_backend/scanning/index.html
      +++ b/rustdoc/latest/zcash_client_backend/scanning/index.html
      @@ -1,3 +1,3 @@
      -zcash_client_backend::scanning - Rust

      Module scanning

      Source
      Expand description

      Tools for scanning a compact representation of the Zcash block chain.

      +zcash_client_backend::scanning - Rust

      Module scanning

      Source
      Expand description

      Tools for scanning a compact representation of the Zcash block chain.

      Modules§

      testingtest-dependencies

      Structs§

      Nullifiers
      The set of nullifiers being tracked by a wallet.
      ScanningKey
      An incoming viewing key, paired with an optional nullifier key and key source metadata.
      ScanningKeys
      A set of keys to be used in scanning for decryptable transaction outputs.

      Enums§

      ScanError
      Errors that may occur in chain scanning

      Traits§

      ScanningKeyOps
      A key that can be used to perform trial decryption and nullifier computation for a CompactSaplingOutput or CompactOrchardAction.

      Functions§

      scan_block
      Scans a CompactBlock with a set of ScanningKeys.
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_client_backend/scanning/struct.Nullifiers.html b/rustdoc/latest/zcash_client_backend/scanning/struct.Nullifiers.html index b3fe224d2..1e0c6c5f7 100644 --- a/rustdoc/latest/zcash_client_backend/scanning/struct.Nullifiers.html +++ b/rustdoc/latest/zcash_client_backend/scanning/struct.Nullifiers.html @@ -1,4 +1,4 @@ -Nullifiers in zcash_client_backend::scanning - Rust

      Struct Nullifiers

      Source
      pub struct Nullifiers<AccountId> { /* private fields */ }
      Expand description

      The set of nullifiers being tracked by a wallet.

      +Nullifiers in zcash_client_backend::scanning - Rust

      Struct Nullifiers

      Source
      pub struct Nullifiers<AccountId> { /* private fields */ }
      Expand description

      The set of nullifiers being tracked by a wallet.

      Implementations§

      Source§

      impl<AccountId> Nullifiers<AccountId>

      Source

      pub fn empty() -> Self

      Constructs a new empty set of nullifiers

      Source

      pub fn sapling(&self) -> &[(AccountId, Nullifier)]

      Returns the Sapling nullifiers for notes that the wallet is tracking.

      Source

      pub fn orchard(&self) -> &[(AccountId, Nullifier)]

      Available on crate feature orchard only.

      Returns the Orchard nullifiers for notes that the wallet is tracking.

      diff --git a/rustdoc/latest/zcash_client_backend/scanning/struct.ScanningKey.html b/rustdoc/latest/zcash_client_backend/scanning/struct.ScanningKey.html index 9b809e56c..6718739cb 100644 --- a/rustdoc/latest/zcash_client_backend/scanning/struct.ScanningKey.html +++ b/rustdoc/latest/zcash_client_backend/scanning/struct.ScanningKey.html @@ -1,4 +1,4 @@ -ScanningKey in zcash_client_backend::scanning - Rust

      Struct ScanningKey

      Source
      pub struct ScanningKey<Ivk, Nk, AccountId> { /* private fields */ }
      Expand description

      An incoming viewing key, paired with an optional nullifier key and key source metadata.

      +ScanningKey in zcash_client_backend::scanning - Rust

      Struct ScanningKey

      Source
      pub struct ScanningKey<Ivk, Nk, AccountId> { /* private fields */ }
      Expand description

      An incoming viewing key, paired with an optional nullifier key and key source metadata.

      Trait Implementations§

      Source§

      impl<AccountId> ScanningKeyOps<OrchardDomain, AccountId, Nullifier> for ScanningKey<IncomingViewingKey, FullViewingKey, AccountId>

      Available on crate feature orchard only.
      Source§

      fn prepare(&self) -> PreparedIncomingViewingKey

      Prepare the key for use in batch trial decryption.
      Source§

      fn nf(&self, note: &Note, _position: Position) -> Option<Nullifier>

      Produces the nullifier for the specified note and witness, if possible. Read more
      Source§

      fn account_id(&self) -> &AccountId

      Returns the account identifier for this key. An account identifier corresponds to at most a single unified spending key’s worth of spend authority, such that both received notes and change spendable by that spending authority will be diff --git a/rustdoc/latest/zcash_client_backend/scanning/struct.ScanningKeys.html b/rustdoc/latest/zcash_client_backend/scanning/struct.ScanningKeys.html index d8295b1a3..12d1f6ced 100644 --- a/rustdoc/latest/zcash_client_backend/scanning/struct.ScanningKeys.html +++ b/rustdoc/latest/zcash_client_backend/scanning/struct.ScanningKeys.html @@ -1,4 +1,4 @@ -ScanningKeys in zcash_client_backend::scanning - Rust

      Struct ScanningKeys

      Source
      pub struct ScanningKeys<AccountId, IvkTag> { /* private fields */ }
      Expand description

      A set of keys to be used in scanning for decryptable transaction outputs.

      +ScanningKeys in zcash_client_backend::scanning - Rust

      Struct ScanningKeys

      Source
      pub struct ScanningKeys<AccountId, IvkTag> { /* private fields */ }
      Expand description

      A set of keys to be used in scanning for decryptable transaction outputs.

      Implementations§

      Source§

      impl<AccountId, IvkTag> ScanningKeys<AccountId, IvkTag>

      Source

      pub fn new( sapling: HashMap<IvkTag, Box<dyn ScanningKeyOps<SaplingDomain, AccountId, Nullifier>>>, orchard: HashMap<IvkTag, Box<dyn ScanningKeyOps<OrchardDomain, AccountId, Nullifier>>>, diff --git a/rustdoc/latest/zcash_client_backend/scanning/testing/fn.fake_compact_block.html b/rustdoc/latest/zcash_client_backend/scanning/testing/fn.fake_compact_block.html index 558a6f8e9..66e6d68cc 100644 --- a/rustdoc/latest/zcash_client_backend/scanning/testing/fn.fake_compact_block.html +++ b/rustdoc/latest/zcash_client_backend/scanning/testing/fn.fake_compact_block.html @@ -1,4 +1,4 @@ -fake_compact_block in zcash_client_backend::scanning::testing - Rust

      Function fake_compact_block

      Source
      pub fn fake_compact_block(
      +fake_compact_block in zcash_client_backend::scanning::testing - Rust

      Function fake_compact_block

      Source
      pub fn fake_compact_block(
           height: BlockHeight,
           prev_hash: BlockHash,
           nf: Nullifier,
      diff --git a/rustdoc/latest/zcash_client_backend/scanning/testing/index.html b/rustdoc/latest/zcash_client_backend/scanning/testing/index.html
      index 9d0e6b491..93c31b4fa 100644
      --- a/rustdoc/latest/zcash_client_backend/scanning/testing/index.html
      +++ b/rustdoc/latest/zcash_client_backend/scanning/testing/index.html
      @@ -1,3 +1,3 @@
      -zcash_client_backend::scanning::testing - Rust

      Module testing

      Source
      Available on crate feature test-dependencies only.

      Functions§

      fake_compact_block
      Create a fake CompactBlock at the given height, with a transaction containing a +zcash_client_backend::scanning::testing - Rust

      Module testing

      Source
      Available on crate feature test-dependencies only.

      Functions§

      fake_compact_block
      Create a fake CompactBlock at the given height, with a transaction containing a single spend of the given nullifier and a single output paying the given address. Returns the CompactBlock.
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_client_backend/scanning/trait.ScanningKeyOps.html b/rustdoc/latest/zcash_client_backend/scanning/trait.ScanningKeyOps.html index 5cf649d65..dd485f007 100644 --- a/rustdoc/latest/zcash_client_backend/scanning/trait.ScanningKeyOps.html +++ b/rustdoc/latest/zcash_client_backend/scanning/trait.ScanningKeyOps.html @@ -1,4 +1,4 @@ -ScanningKeyOps in zcash_client_backend::scanning - Rust

      Trait ScanningKeyOps

      Source
      pub trait ScanningKeyOps<D: Domain, AccountId, Nf> {
      +ScanningKeyOps in zcash_client_backend::scanning - Rust

      Trait ScanningKeyOps

      Source
      pub trait ScanningKeyOps<D: Domain, AccountId, Nf> {
           // Required methods
           fn prepare(&self) -> D::IncomingViewingKey;
           fn account_id(&self) -> &AccountId;
      diff --git a/rustdoc/latest/zcash_client_backend/serialization/index.html b/rustdoc/latest/zcash_client_backend/serialization/index.html
      index eda5618d3..772d07682 100644
      --- a/rustdoc/latest/zcash_client_backend/serialization/index.html
      +++ b/rustdoc/latest/zcash_client_backend/serialization/index.html
      @@ -1 +1 @@
      -zcash_client_backend::serialization - Rust

      Module serialization

      Source
      Available on crate feature unstable-serialization only.

      Modules§

      shardtree
      Serialization formats for data stored as SQLite BLOBs
      \ No newline at end of file +zcash_client_backend::serialization - Rust

      Module serialization

      Source
      Available on crate feature unstable-serialization only.

      Modules§

      shardtree
      Serialization formats for data stored as SQLite BLOBs
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_client_backend/serialization/shardtree/fn.read_shard.html b/rustdoc/latest/zcash_client_backend/serialization/shardtree/fn.read_shard.html index 772f40880..13a9f671e 100644 --- a/rustdoc/latest/zcash_client_backend/serialization/shardtree/fn.read_shard.html +++ b/rustdoc/latest/zcash_client_backend/serialization/shardtree/fn.read_shard.html @@ -1,4 +1,4 @@ -read_shard in zcash_client_backend::serialization::shardtree - Rust

      Function read_shard

      Source
      pub fn read_shard<H: HashSer, R: Read>(reader: R) -> Result<PrunableTree<H>>
      Available on crate feature unstable-serialization only.
      Expand description

      Reads a [PrunableTree] from the provided Read instance.

      +read_shard in zcash_client_backend::serialization::shardtree - Rust

      Function read_shard

      Source
      pub fn read_shard<H: HashSer, R: Read>(reader: R) -> Result<PrunableTree<H>>
      Available on crate feature unstable-serialization only.
      Expand description

      Reads a [PrunableTree] from the provided Read instance.

      This function operates by first parsing a 1-byte version identifier, and then dispatching to the correct deserialization function for the observed version, or returns an io::ErrorKind::InvalidData error in the case that the version is not recognized.

      diff --git a/rustdoc/latest/zcash_client_backend/serialization/shardtree/fn.write_shard.html b/rustdoc/latest/zcash_client_backend/serialization/shardtree/fn.write_shard.html index 67323ab29..db87e2735 100644 --- a/rustdoc/latest/zcash_client_backend/serialization/shardtree/fn.write_shard.html +++ b/rustdoc/latest/zcash_client_backend/serialization/shardtree/fn.write_shard.html @@ -1,4 +1,4 @@ -write_shard in zcash_client_backend::serialization::shardtree - Rust

      Function write_shard

      Source
      pub fn write_shard<H: HashSer, W: Write>(
      +write_shard in zcash_client_backend::serialization::shardtree - Rust

      Function write_shard

      Source
      pub fn write_shard<H: HashSer, W: Write>(
           writer: &mut W,
           tree: &PrunableTree<H>,
       ) -> Result<()>
      Available on crate feature unstable-serialization only.
      Expand description

      Writes a [PrunableTree] to the provided Write instance.

      diff --git a/rustdoc/latest/zcash_client_backend/serialization/shardtree/index.html b/rustdoc/latest/zcash_client_backend/serialization/shardtree/index.html index 0bf74e4b2..e44c12727 100644 --- a/rustdoc/latest/zcash_client_backend/serialization/shardtree/index.html +++ b/rustdoc/latest/zcash_client_backend/serialization/shardtree/index.html @@ -1,2 +1,2 @@ -zcash_client_backend::serialization::shardtree - Rust

      Module shardtree

      Source
      Available on crate feature unstable-serialization only.
      Expand description

      Serialization formats for data stored as SQLite BLOBs

      +zcash_client_backend::serialization::shardtree - Rust

      Module shardtree

      Source
      Available on crate feature unstable-serialization only.
      Expand description

      Serialization formats for data stored as SQLite BLOBs

      Functions§

      read_shard
      Reads a [PrunableTree] from the provided Read instance.
      write_shard
      Writes a [PrunableTree] to the provided Write instance.
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_client_backend/struct.DecryptedOutput.html b/rustdoc/latest/zcash_client_backend/struct.DecryptedOutput.html index 4a75ccbc4..a4178e252 100644 --- a/rustdoc/latest/zcash_client_backend/struct.DecryptedOutput.html +++ b/rustdoc/latest/zcash_client_backend/struct.DecryptedOutput.html @@ -1,4 +1,4 @@ -DecryptedOutput in zcash_client_backend - Rust

      Struct DecryptedOutput

      Source
      pub struct DecryptedOutput<Note, AccountId> { /* private fields */ }
      Expand description

      A decrypted shielded output.

      +DecryptedOutput in zcash_client_backend - Rust

      Struct DecryptedOutput

      Source
      pub struct DecryptedOutput<Note, AccountId> { /* private fields */ }
      Expand description

      A decrypted shielded output.

      Implementations§

      Source§

      impl<Note, AccountId> DecryptedOutput<Note, AccountId>

      Source

      pub fn new( index: usize, note: Note, diff --git a/rustdoc/latest/zcash_client_backend/sync/enum.Error.html b/rustdoc/latest/zcash_client_backend/sync/enum.Error.html index c4c7f4fe1..24fa95483 100644 --- a/rustdoc/latest/zcash_client_backend/sync/enum.Error.html +++ b/rustdoc/latest/zcash_client_backend/sync/enum.Error.html @@ -1,4 +1,4 @@ -Error in zcash_client_backend::sync - Rust

      Enum Error

      Source
      pub enum Error<CaErr, DbErr, TrErr> {
      +Error in zcash_client_backend::sync - Rust

      Enum Error

      Source
      pub enum Error<CaErr, DbErr, TrErr> {
           Cache(CaErr),
           MisbehavingServer,
           Scan(ScanError),
      diff --git a/rustdoc/latest/zcash_client_backend/sync/fn.run.html b/rustdoc/latest/zcash_client_backend/sync/fn.run.html
      index a9d893ad5..8a8b50d6c 100644
      --- a/rustdoc/latest/zcash_client_backend/sync/fn.run.html
      +++ b/rustdoc/latest/zcash_client_backend/sync/fn.run.html
      @@ -1,4 +1,4 @@
      -run in zcash_client_backend::sync - Rust

      Function run

      Source
      pub async fn run<P, ChT, CaT, DbT>(
      +run in zcash_client_backend::sync - Rust

      Function run

      Source
      pub async fn run<P, ChT, CaT, DbT>(
           client: &mut CompactTxStreamerClient<ChT>,
           params: &P,
           db_cache: &CaT,
      diff --git a/rustdoc/latest/zcash_client_backend/sync/index.html b/rustdoc/latest/zcash_client_backend/sync/index.html
      index 3e5f17652..49e548f74 100644
      --- a/rustdoc/latest/zcash_client_backend/sync/index.html
      +++ b/rustdoc/latest/zcash_client_backend/sync/index.html
      @@ -1,4 +1,4 @@
      -zcash_client_backend::sync - Rust

      Module sync

      Source
      Available on crate feature sync only.
      Expand description

      Implementation of the synchronization flow described in the crate root.

      +zcash_client_backend::sync - Rust

      Module sync

      Source
      Available on crate feature sync only.
      Expand description

      Implementation of the synchronization flow described in the crate root.

      This is currently a simple implementation that does not yet implement a few features:

      A transparent viewing key for an account is thus defined as the root of a specific non-hardened subtree underneath the account’s path.

      -

      Provided Methods§

      Provided Methods§

      Source

      fn derive_address( &self, address_index: NonHardenedChildIndex, ) -> Result<TransparentAddress, Error>

      Derives a transparent address at the provided child index.

      -

      fn default_address(&self) -> (TransparentAddress, NonHardenedChildIndex)

      Searches the space of child indexes for an index that will +

      Source

      fn default_address(&self) -> (TransparentAddress, NonHardenedChildIndex)

      Searches the space of child indexes for an index that will generate a valid transparent address, and returns the resulting address and the index at which it was generated.

      -

      fn serialize(&self) -> Vec<u8>

      fn deserialize(data: &[u8; 65]) -> Result<Self, Error>

      Dyn Compatibility§

      This trait is not dyn compatible.

      In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

      Implementors§

      \ No newline at end of file +

      Source

      fn serialize(&self) -> Vec<u8>

      Source

      fn deserialize(data: &[u8; 65]) -> Result<Self, Error>

      Dyn Compatibility§

      This trait is not dyn compatible.

      In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

      Implementors§

      \ No newline at end of file diff --git a/rustdoc/latest/zcash_primitives/legacy/struct.Script.html b/rustdoc/latest/zcash_primitives/legacy/struct.Script.html index 0151676e5..e716362aa 100644 --- a/rustdoc/latest/zcash_primitives/legacy/struct.Script.html +++ b/rustdoc/latest/zcash_primitives/legacy/struct.Script.html @@ -1,10 +1,10 @@ -Script in zcash_primitives::legacy - Rust

      Struct Script

      pub struct Script(pub Vec<u8>);
      Expand description

      A serialized script, used inside transparent inputs and outputs of a transaction.

      -

      Tuple Fields§

      §0: Vec<u8>

      Implementations§

      §

      impl Script

      pub fn read<R>(reader: R) -> Result<Script, Error>
      where - R: Read,

      pub fn write<W>(&self, writer: W) -> Result<(), Error>
      where - W: Write,

      pub fn serialized_size(&self) -> usize

      Returns the length of this script as encoded (including the initial CompactSize).

      -

      pub fn address(&self) -> Option<TransparentAddress>

      Returns the address that this Script contains, if any.

      -

      Trait Implementations§

      §

      impl Clone for Script

      §

      fn clone(&self) -> Script

      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
      §

      impl Debug for Script

      §

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

      Formats the value using the given formatter. Read more
      §

      impl Default for Script

      §

      fn default() -> Script

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

      impl PartialEq for Script

      §

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

      Tests for self and other values to be equal, and is used by ==.
      1.0.0 · Source§

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

      Tests for !=. The default implementation is almost always sufficient, -and should not be overridden without very good reason.
      §

      impl Shl<&[u8]> for Script

      §

      type Output = Script

      The resulting type after applying the << operator.
      §

      fn shl(self, data: &[u8]) -> Script

      Performs the << operation. Read more
      §

      impl Shl<OpCode> for Script

      §

      type Output = Script

      The resulting type after applying the << operator.
      §

      fn shl(self, rhs: OpCode) -> Script

      Performs the << operation. Read more
      §

      impl Eq for Script

      §

      impl StructuralPartialEq for Script

      Auto Trait Implementations§

      §

      impl Freeze for Script

      §

      impl RefUnwindSafe for Script

      §

      impl Send for Script

      §

      impl Sync for Script

      §

      impl Unpin for Script

      §

      impl UnwindSafe for Script

      Blanket Implementations§

      Source§

      impl<T> Any for T
      where +Script in zcash_primitives::legacy - Rust

      Struct Script

      Source
      pub struct Script(pub Vec<u8>);
      Expand description

      A serialized script, used inside transparent inputs and outputs of a transaction.

      +

      Tuple Fields§

      §0: Vec<u8>

      Implementations§

      Source§

      impl Script

      Source

      pub fn read<R>(reader: R) -> Result<Script, Error>
      where + R: Read,

      Source

      pub fn write<W>(&self, writer: W) -> Result<(), Error>
      where + W: Write,

      Source

      pub fn serialized_size(&self) -> usize

      Returns the length of this script as encoded (including the initial CompactSize).

      +
      Source

      pub fn address(&self) -> Option<TransparentAddress>

      Returns the address that this Script contains, if any.

      +

      Trait Implementations§

      Source§

      impl Clone for Script

      Source§

      fn clone(&self) -> Script

      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 Script

      Source§

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

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

      impl Default for Script

      Source§

      fn default() -> Script

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

      impl PartialEq for Script

      Source§

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

      Tests for self and other values to be equal, and is used by ==.
      1.0.0 · Source§

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

      Tests for !=. The default implementation is almost always sufficient, +and should not be overridden without very good reason.
      Source§

      impl Shl<&[u8]> for Script

      Source§

      type Output = Script

      The resulting type after applying the << operator.
      Source§

      fn shl(self, data: &[u8]) -> Script

      Performs the << operation. Read more
      Source§

      impl Shl<OpCode> for Script

      Source§

      type Output = Script

      The resulting type after applying the << operator.
      Source§

      fn shl(self, rhs: OpCode) -> Script

      Performs the << operation. Read more
      Source§

      impl Eq for Script

      Source§

      impl StructuralPartialEq for Script

      Auto Trait Implementations§

      §

      impl Freeze for Script

      §

      impl RefUnwindSafe for Script

      §

      impl Send for Script

      §

      impl Sync for Script

      §

      impl Unpin for Script

      §

      impl UnwindSafe for Script

      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
      Source§

      impl<T> CloneToUninit for T
      where diff --git a/rustdoc/latest/zcash_primitives/legacy/testing/fn.arb_transparent_addr.html b/rustdoc/latest/zcash_primitives/legacy/testing/fn.arb_transparent_addr.html index e95e2ce97..a28ee7798 100644 --- a/rustdoc/latest/zcash_primitives/legacy/testing/fn.arb_transparent_addr.html +++ b/rustdoc/latest/zcash_primitives/legacy/testing/fn.arb_transparent_addr.html @@ -1 +1 @@ -arb_transparent_addr in zcash_primitives::legacy::testing - Rust

      Function arb_transparent_addr

      pub fn arb_transparent_addr() -> impl Strategy<Value = TransparentAddress>
      \ No newline at end of file +arb_transparent_addr in zcash_primitives::legacy::testing - Rust

      Function arb_transparent_addr

      Source
      pub fn arb_transparent_addr() -> impl Strategy<Value = TransparentAddress>
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_primitives/legacy/testing/index.html b/rustdoc/latest/zcash_primitives/legacy/testing/index.html index ed516df1e..ca0857484 100644 --- a/rustdoc/latest/zcash_primitives/legacy/testing/index.html +++ b/rustdoc/latest/zcash_primitives/legacy/testing/index.html @@ -1 +1 @@ -zcash_primitives::legacy::testing - Rust

      Module testing

      Functions§

      arb_transparent_addr
      \ No newline at end of file +zcash_primitives::legacy::testing - Rust

      Module testing

      Source

      Functions§

      arb_transparent_addr
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_primitives/memo/enum.Error.html b/rustdoc/latest/zcash_primitives/memo/enum.Error.html index b440b6d1f..039595910 100644 --- a/rustdoc/latest/zcash_primitives/memo/enum.Error.html +++ b/rustdoc/latest/zcash_primitives/memo/enum.Error.html @@ -1,4 +1,4 @@ -Error in zcash_primitives::memo - Rust

      Enum Error

      pub enum Error {
      +Error in zcash_primitives::memo - Rust

      Enum Error

      pub enum Error {
           InvalidUtf8(Utf8Error),
           TooLong(usize),
       }
      Expand description

      Errors that may result from attempting to construct an invalid memo.

      diff --git a/rustdoc/latest/zcash_primitives/memo/enum.Memo.html b/rustdoc/latest/zcash_primitives/memo/enum.Memo.html index aea645dd6..7f14f7fc6 100644 --- a/rustdoc/latest/zcash_primitives/memo/enum.Memo.html +++ b/rustdoc/latest/zcash_primitives/memo/enum.Memo.html @@ -1,4 +1,4 @@ -Memo in zcash_primitives::memo - Rust

      Enum Memo

      pub enum Memo {
      +Memo in zcash_primitives::memo - Rust

      Enum Memo

      pub enum Memo {
           Empty,
           Text(TextMemo),
           Future(MemoBytes),
      diff --git a/rustdoc/latest/zcash_primitives/memo/index.html b/rustdoc/latest/zcash_primitives/memo/index.html
      index b40193dfd..a92ee1be9 100644
      --- a/rustdoc/latest/zcash_primitives/memo/index.html
      +++ b/rustdoc/latest/zcash_primitives/memo/index.html
      @@ -1 +1 @@
      -zcash_primitives::memo - Rust

      Module memo

      Source
      👎Deprecated: This module is deprecated; use ::zcash_protocol::memo instead.

      Structs§

      MemoBytes
      The unencrypted memo bytes received alongside a shielded note in a Zcash transaction.
      TextMemo
      Type-safe wrapper around String to enforce memo length requirements.

      Enums§

      Error
      Errors that may result from attempting to construct an invalid memo.
      Memo
      An unencrypted memo received alongside a shielded note in a Zcash transaction.
      \ No newline at end of file +zcash_primitives::memo - Rust

      Module memo

      Source
      👎Deprecated: This module is deprecated; use ::zcash_protocol::memo instead.

      Structs§

      MemoBytes
      The unencrypted memo bytes received alongside a shielded note in a Zcash transaction.
      TextMemo
      Type-safe wrapper around String to enforce memo length requirements.

      Enums§

      Error
      Errors that may result from attempting to construct an invalid memo.
      Memo
      An unencrypted memo received alongside a shielded note in a Zcash transaction.
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_primitives/memo/struct.MemoBytes.html b/rustdoc/latest/zcash_primitives/memo/struct.MemoBytes.html index 3d8231c44..33cadf01c 100644 --- a/rustdoc/latest/zcash_primitives/memo/struct.MemoBytes.html +++ b/rustdoc/latest/zcash_primitives/memo/struct.MemoBytes.html @@ -1,4 +1,4 @@ -MemoBytes in zcash_primitives::memo - Rust

      Struct MemoBytes

      pub struct MemoBytes(/* private fields */);
      Expand description

      The unencrypted memo bytes received alongside a shielded note in a Zcash transaction.

      +MemoBytes in zcash_primitives::memo - Rust

      Struct MemoBytes

      pub struct MemoBytes(/* private fields */);
      Expand description

      The unencrypted memo bytes received alongside a shielded note in a Zcash transaction.

      Implementations§

      §

      impl MemoBytes

      pub fn empty() -> MemoBytes

      Creates a MemoBytes indicating that no memo is present.

      pub fn from_bytes(bytes: &[u8]) -> Result<MemoBytes, Error>

      Creates a MemoBytes from a slice, exactly as provided.

      Returns an error if the provided slice is longer than 512 bytes. Slices shorter diff --git a/rustdoc/latest/zcash_primitives/memo/struct.TextMemo.html b/rustdoc/latest/zcash_primitives/memo/struct.TextMemo.html index 3310a6205..a9704e80b 100644 --- a/rustdoc/latest/zcash_primitives/memo/struct.TextMemo.html +++ b/rustdoc/latest/zcash_primitives/memo/struct.TextMemo.html @@ -1,4 +1,4 @@ -TextMemo in zcash_primitives::memo - Rust

      Struct TextMemo

      pub struct TextMemo(/* private fields */);
      Expand description

      Type-safe wrapper around String to enforce memo length requirements.

      +TextMemo in zcash_primitives::memo - Rust

      Struct TextMemo

      pub struct TextMemo(/* private fields */);
      Expand description

      Type-safe wrapper around String to enforce memo length requirements.

      Methods from Deref<Target = str>§

      1.0.0 · Source

      pub fn len(&self) -> usize

      Returns the length of self.

      This length is in bytes, not chars or graphemes. In other words, it might not be what a human considers the length of the string.

      diff --git a/rustdoc/latest/zcash_primitives/merkle_tree/fn.merkle_path_from_slice.html b/rustdoc/latest/zcash_primitives/merkle_tree/fn.merkle_path_from_slice.html index 6a62102ed..dce5bf594 100644 --- a/rustdoc/latest/zcash_primitives/merkle_tree/fn.merkle_path_from_slice.html +++ b/rustdoc/latest/zcash_primitives/merkle_tree/fn.merkle_path_from_slice.html @@ -1,4 +1,4 @@ -merkle_path_from_slice in zcash_primitives::merkle_tree - Rust

      Function merkle_path_from_slice

      Source
      pub fn merkle_path_from_slice<Node: HashSer, const DEPTH: u8>(
      +merkle_path_from_slice in zcash_primitives::merkle_tree - Rust

      Function merkle_path_from_slice

      Source
      pub fn merkle_path_from_slice<Node: HashSer, const DEPTH: u8>(
           witness: &[u8],
       ) -> Result<MerklePath<Node, DEPTH>>
      Expand description

      Reads a Merkle path from its serialized form.

      \ No newline at end of file diff --git a/rustdoc/latest/zcash_primitives/merkle_tree/fn.read_address.html b/rustdoc/latest/zcash_primitives/merkle_tree/fn.read_address.html index dea9fda73..d0d02629e 100644 --- a/rustdoc/latest/zcash_primitives/merkle_tree/fn.read_address.html +++ b/rustdoc/latest/zcash_primitives/merkle_tree/fn.read_address.html @@ -1 +1 @@ -read_address in zcash_primitives::merkle_tree - Rust

      Function read_address

      Source
      pub fn read_address<R: Read>(reader: R) -> Result<Address>
      \ No newline at end of file +read_address in zcash_primitives::merkle_tree - Rust

      Function read_address

      Source
      pub fn read_address<R: Read>(reader: R) -> Result<Address>
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_primitives/merkle_tree/fn.read_commitment_tree.html b/rustdoc/latest/zcash_primitives/merkle_tree/fn.read_commitment_tree.html index 17bd7d7cf..b5b57876e 100644 --- a/rustdoc/latest/zcash_primitives/merkle_tree/fn.read_commitment_tree.html +++ b/rustdoc/latest/zcash_primitives/merkle_tree/fn.read_commitment_tree.html @@ -1,4 +1,4 @@ -read_commitment_tree in zcash_primitives::merkle_tree - Rust

      Function read_commitment_tree

      Source
      pub fn read_commitment_tree<Node: HashSer, R: Read, const DEPTH: u8>(
      +read_commitment_tree in zcash_primitives::merkle_tree - Rust

      Function read_commitment_tree

      Source
      pub fn read_commitment_tree<Node: HashSer, R: Read, const DEPTH: u8>(
           reader: R,
       ) -> Result<CommitmentTree<Node, DEPTH>>
      Expand description

      Reads a legacy CommitmentTree from its serialized form.

      \ No newline at end of file diff --git a/rustdoc/latest/zcash_primitives/merkle_tree/fn.read_frontier_v0.html b/rustdoc/latest/zcash_primitives/merkle_tree/fn.read_frontier_v0.html index 9a74e6903..53bf51cc5 100644 --- a/rustdoc/latest/zcash_primitives/merkle_tree/fn.read_frontier_v0.html +++ b/rustdoc/latest/zcash_primitives/merkle_tree/fn.read_frontier_v0.html @@ -1,3 +1,3 @@ -read_frontier_v0 in zcash_primitives::merkle_tree - Rust

      Function read_frontier_v0

      Source
      pub fn read_frontier_v0<H: Hashable + HashSer + Clone, R: Read>(
      +read_frontier_v0 in zcash_primitives::merkle_tree - Rust

      Function read_frontier_v0

      Source
      pub fn read_frontier_v0<H: Hashable + HashSer + Clone, R: Read>(
           reader: R,
       ) -> Result<Frontier<H, { sapling::NOTE_COMMITMENT_TREE_DEPTH }>>
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_primitives/merkle_tree/fn.read_frontier_v1.html b/rustdoc/latest/zcash_primitives/merkle_tree/fn.read_frontier_v1.html index 0da554b3c..fdd249398 100644 --- a/rustdoc/latest/zcash_primitives/merkle_tree/fn.read_frontier_v1.html +++ b/rustdoc/latest/zcash_primitives/merkle_tree/fn.read_frontier_v1.html @@ -1,3 +1,3 @@ -read_frontier_v1 in zcash_primitives::merkle_tree - Rust

      Function read_frontier_v1

      Source
      pub fn read_frontier_v1<H: HashSer + Clone, R: Read>(
      +read_frontier_v1 in zcash_primitives::merkle_tree - Rust

      Function read_frontier_v1

      Source
      pub fn read_frontier_v1<H: HashSer + Clone, R: Read>(
           reader: R,
       ) -> Result<Frontier<H, 32>>
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_primitives/merkle_tree/fn.read_incremental_witness.html b/rustdoc/latest/zcash_primitives/merkle_tree/fn.read_incremental_witness.html index dc6310c15..1c2a6c863 100644 --- a/rustdoc/latest/zcash_primitives/merkle_tree/fn.read_incremental_witness.html +++ b/rustdoc/latest/zcash_primitives/merkle_tree/fn.read_incremental_witness.html @@ -1,4 +1,4 @@ -read_incremental_witness in zcash_primitives::merkle_tree - Rust

      Function read_incremental_witness

      Source
      pub fn read_incremental_witness<Node: HashSer, R: Read, const DEPTH: u8>(
      +read_incremental_witness in zcash_primitives::merkle_tree - Rust

      Function read_incremental_witness

      Source
      pub fn read_incremental_witness<Node: HashSer, R: Read, const DEPTH: u8>(
           reader: R,
       ) -> Result<IncrementalWitness<Node, DEPTH>>
      Expand description

      Reads an IncrementalWitness from its serialized form.

      \ No newline at end of file diff --git a/rustdoc/latest/zcash_primitives/merkle_tree/fn.read_leu64_usize.html b/rustdoc/latest/zcash_primitives/merkle_tree/fn.read_leu64_usize.html index 6a3cbce32..ff9820f06 100644 --- a/rustdoc/latest/zcash_primitives/merkle_tree/fn.read_leu64_usize.html +++ b/rustdoc/latest/zcash_primitives/merkle_tree/fn.read_leu64_usize.html @@ -1,4 +1,4 @@ -read_leu64_usize in zcash_primitives::merkle_tree - Rust

      Function read_leu64_usize

      Source
      pub fn read_leu64_usize<R: Read>(reader: R) -> Result<usize>
      Expand description

      Reads a usize value encoded as a u64 in little-endian order. Since usize +read_leu64_usize in zcash_primitives::merkle_tree - Rust

      Function read_leu64_usize

      Source
      pub fn read_leu64_usize<R: Read>(reader: R) -> Result<usize>
      Expand description

      Reads a usize value encoded as a u64 in little-endian order. Since usize is platform-dependent, we consistently represent it as u64 in serialized formats.

      \ No newline at end of file diff --git a/rustdoc/latest/zcash_primitives/merkle_tree/fn.read_nonempty_frontier_v1.html b/rustdoc/latest/zcash_primitives/merkle_tree/fn.read_nonempty_frontier_v1.html index 6f2caed2d..5e1dbf066 100644 --- a/rustdoc/latest/zcash_primitives/merkle_tree/fn.read_nonempty_frontier_v1.html +++ b/rustdoc/latest/zcash_primitives/merkle_tree/fn.read_nonempty_frontier_v1.html @@ -1,3 +1,3 @@ -read_nonempty_frontier_v1 in zcash_primitives::merkle_tree - Rust

      Function read_nonempty_frontier_v1

      Source
      pub fn read_nonempty_frontier_v1<H: HashSer + Clone, R: Read>(
      +read_nonempty_frontier_v1 in zcash_primitives::merkle_tree - Rust

      Function read_nonempty_frontier_v1

      Source
      pub fn read_nonempty_frontier_v1<H: HashSer + Clone, R: Read>(
           reader: R,
       ) -> Result<NonEmptyFrontier<H>>
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_primitives/merkle_tree/fn.read_position.html b/rustdoc/latest/zcash_primitives/merkle_tree/fn.read_position.html index d02728f58..8e5d7c62c 100644 --- a/rustdoc/latest/zcash_primitives/merkle_tree/fn.read_position.html +++ b/rustdoc/latest/zcash_primitives/merkle_tree/fn.read_position.html @@ -1 +1 @@ -read_position in zcash_primitives::merkle_tree - Rust

      Function read_position

      Source
      pub fn read_position<R: Read>(reader: R) -> Result<Position>
      \ No newline at end of file +read_position in zcash_primitives::merkle_tree - Rust

      Function read_position

      Source
      pub fn read_position<R: Read>(reader: R) -> Result<Position>
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_primitives/merkle_tree/fn.write_address.html b/rustdoc/latest/zcash_primitives/merkle_tree/fn.write_address.html index b2baae1a2..92c0a8f25 100644 --- a/rustdoc/latest/zcash_primitives/merkle_tree/fn.write_address.html +++ b/rustdoc/latest/zcash_primitives/merkle_tree/fn.write_address.html @@ -1 +1 @@ -write_address in zcash_primitives::merkle_tree - Rust

      Function write_address

      Source
      pub fn write_address<W: Write>(writer: W, addr: Address) -> Result<()>
      \ No newline at end of file +write_address in zcash_primitives::merkle_tree - Rust

      Function write_address

      Source
      pub fn write_address<W: Write>(writer: W, addr: Address) -> Result<()>
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_primitives/merkle_tree/fn.write_commitment_tree.html b/rustdoc/latest/zcash_primitives/merkle_tree/fn.write_commitment_tree.html index 3fd0ed9bf..17cbe4300 100644 --- a/rustdoc/latest/zcash_primitives/merkle_tree/fn.write_commitment_tree.html +++ b/rustdoc/latest/zcash_primitives/merkle_tree/fn.write_commitment_tree.html @@ -1,4 +1,4 @@ -write_commitment_tree in zcash_primitives::merkle_tree - Rust

      Function write_commitment_tree

      Source
      pub fn write_commitment_tree<Node: HashSer, W: Write, const DEPTH: u8>(
      +write_commitment_tree in zcash_primitives::merkle_tree - Rust

      Function write_commitment_tree

      Source
      pub fn write_commitment_tree<Node: HashSer, W: Write, const DEPTH: u8>(
           tree: &CommitmentTree<Node, DEPTH>,
           writer: W,
       ) -> Result<()>
      Expand description

      Serializes a legacy CommitmentTree as an array of bytes.

      diff --git a/rustdoc/latest/zcash_primitives/merkle_tree/fn.write_frontier_v1.html b/rustdoc/latest/zcash_primitives/merkle_tree/fn.write_frontier_v1.html index bbdcc23cf..277b5f370 100644 --- a/rustdoc/latest/zcash_primitives/merkle_tree/fn.write_frontier_v1.html +++ b/rustdoc/latest/zcash_primitives/merkle_tree/fn.write_frontier_v1.html @@ -1,4 +1,4 @@ -write_frontier_v1 in zcash_primitives::merkle_tree - Rust

      Function write_frontier_v1

      Source
      pub fn write_frontier_v1<H: HashSer, W: Write>(
      +write_frontier_v1 in zcash_primitives::merkle_tree - Rust

      Function write_frontier_v1

      Source
      pub fn write_frontier_v1<H: HashSer, W: Write>(
           writer: W,
           frontier: &Frontier<H, 32>,
       ) -> Result<()>
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_primitives/merkle_tree/fn.write_incremental_witness.html b/rustdoc/latest/zcash_primitives/merkle_tree/fn.write_incremental_witness.html index 7fed37891..208b5d225 100644 --- a/rustdoc/latest/zcash_primitives/merkle_tree/fn.write_incremental_witness.html +++ b/rustdoc/latest/zcash_primitives/merkle_tree/fn.write_incremental_witness.html @@ -1,4 +1,4 @@ -write_incremental_witness in zcash_primitives::merkle_tree - Rust

      Function write_incremental_witness

      Source
      pub fn write_incremental_witness<Node: HashSer, W: Write, const DEPTH: u8>(
      +write_incremental_witness in zcash_primitives::merkle_tree - Rust

      Function write_incremental_witness

      Source
      pub fn write_incremental_witness<Node: HashSer, W: Write, const DEPTH: u8>(
           witness: &IncrementalWitness<Node, DEPTH>,
           writer: W,
       ) -> Result<()>
      Expand description

      Serializes an IncrementalWitness as an array of bytes.

      diff --git a/rustdoc/latest/zcash_primitives/merkle_tree/fn.write_nonempty_frontier_v1.html b/rustdoc/latest/zcash_primitives/merkle_tree/fn.write_nonempty_frontier_v1.html index 74cfde197..96cc6aa17 100644 --- a/rustdoc/latest/zcash_primitives/merkle_tree/fn.write_nonempty_frontier_v1.html +++ b/rustdoc/latest/zcash_primitives/merkle_tree/fn.write_nonempty_frontier_v1.html @@ -1,4 +1,4 @@ -write_nonempty_frontier_v1 in zcash_primitives::merkle_tree - Rust

      Function write_nonempty_frontier_v1

      Source
      pub fn write_nonempty_frontier_v1<H: HashSer, W: Write>(
      +write_nonempty_frontier_v1 in zcash_primitives::merkle_tree - Rust

      Function write_nonempty_frontier_v1

      Source
      pub fn write_nonempty_frontier_v1<H: HashSer, W: Write>(
           writer: W,
           frontier: &NonEmptyFrontier<H>,
       ) -> Result<()>
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_primitives/merkle_tree/fn.write_position.html b/rustdoc/latest/zcash_primitives/merkle_tree/fn.write_position.html index cbdbb4dfc..d11b11cc4 100644 --- a/rustdoc/latest/zcash_primitives/merkle_tree/fn.write_position.html +++ b/rustdoc/latest/zcash_primitives/merkle_tree/fn.write_position.html @@ -1 +1 @@ -write_position in zcash_primitives::merkle_tree - Rust

      Function write_position

      Source
      pub fn write_position<W: Write>(writer: W, position: Position) -> Result<()>
      \ No newline at end of file +write_position in zcash_primitives::merkle_tree - Rust

      Function write_position

      Source
      pub fn write_position<W: Write>(writer: W, position: Position) -> Result<()>
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_primitives/merkle_tree/fn.write_usize_leu64.html b/rustdoc/latest/zcash_primitives/merkle_tree/fn.write_usize_leu64.html index 0ddbf0e49..ae619f958 100644 --- a/rustdoc/latest/zcash_primitives/merkle_tree/fn.write_usize_leu64.html +++ b/rustdoc/latest/zcash_primitives/merkle_tree/fn.write_usize_leu64.html @@ -1,4 +1,4 @@ -write_usize_leu64 in zcash_primitives::merkle_tree - Rust

      Function write_usize_leu64

      Source
      pub fn write_usize_leu64<W: Write>(writer: W, value: usize) -> Result<()>
      Expand description

      Writes a usize value encoded as a u64 in little-endian order. Since usize +write_usize_leu64 in zcash_primitives::merkle_tree - Rust

      Function write_usize_leu64

      Source
      pub fn write_usize_leu64<W: Write>(writer: W, value: usize) -> Result<()>
      Expand description

      Writes a usize value encoded as a u64 in little-endian order. Since usize is platform-dependent, we consistently represent it as u64 in serialized formats.

      \ No newline at end of file diff --git a/rustdoc/latest/zcash_primitives/merkle_tree/index.html b/rustdoc/latest/zcash_primitives/merkle_tree/index.html index cd23d5d95..1514c2760 100644 --- a/rustdoc/latest/zcash_primitives/merkle_tree/index.html +++ b/rustdoc/latest/zcash_primitives/merkle_tree/index.html @@ -1,4 +1,4 @@ -zcash_primitives::merkle_tree - Rust

      Module merkle_tree

      Source
      Expand description

      Parsers and serializers for Zcash Merkle trees.

      +zcash_primitives::merkle_tree - Rust

      Module merkle_tree

      Source
      Expand description

      Parsers and serializers for Zcash Merkle trees.

      Modules§

      testingtest-dependencies

      Traits§

      HashSer
      A hashable node within a Merkle tree.

      Functions§

      merkle_path_from_slice
      Reads a Merkle path from its serialized form.
      read_address
      read_commitment_tree
      Reads a legacy CommitmentTree from its serialized form.
      read_frontier_v0
      read_frontier_v1
      read_incremental_witness
      Reads an IncrementalWitness from its serialized form.
      read_leu64_usize
      Reads a usize value encoded as a u64 in little-endian order. Since usize is platform-dependent, we consistently represent it as u64 in serialized formats.
      read_nonempty_frontier_v1
      read_position
      write_address
      write_commitment_tree
      Serializes a legacy CommitmentTree as an array of bytes.
      write_frontier_v1
      write_incremental_witness
      Serializes an IncrementalWitness as an array of bytes.
      write_nonempty_frontier_v1
      write_position
      write_usize_leu64
      Writes a usize value encoded as a u64 in little-endian order. Since usize diff --git a/rustdoc/latest/zcash_primitives/merkle_tree/testing/index.html b/rustdoc/latest/zcash_primitives/merkle_tree/testing/index.html index de39d499f..dd0b44cca 100644 --- a/rustdoc/latest/zcash_primitives/merkle_tree/testing/index.html +++ b/rustdoc/latest/zcash_primitives/merkle_tree/testing/index.html @@ -1 +1 @@ -zcash_primitives::merkle_tree::testing - Rust

      Module testing

      Source
      Available on crate feature test-dependencies only.
      \ No newline at end of file +zcash_primitives::merkle_tree::testing - Rust

      Module testing

      Source
      Available on crate feature test-dependencies only.
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_primitives/merkle_tree/trait.HashSer.html b/rustdoc/latest/zcash_primitives/merkle_tree/trait.HashSer.html index e7c563492..3d9306f26 100644 --- a/rustdoc/latest/zcash_primitives/merkle_tree/trait.HashSer.html +++ b/rustdoc/latest/zcash_primitives/merkle_tree/trait.HashSer.html @@ -1,4 +1,4 @@ -HashSer in zcash_primitives::merkle_tree - Rust

      Trait HashSer

      Source
      pub trait HashSer {
      +HashSer in zcash_primitives::merkle_tree - Rust

      Trait HashSer

      Source
      pub trait HashSer {
           // Required methods
           fn read<R: Read>(reader: R) -> Result<Self>
              where Self: Sized;
      diff --git a/rustdoc/latest/zcash_primitives/transaction/builder/constant.DEFAULT_TX_EXPIRY_DELTA.html b/rustdoc/latest/zcash_primitives/transaction/builder/constant.DEFAULT_TX_EXPIRY_DELTA.html
      index 07829fd34..64bcafe58 100644
      --- a/rustdoc/latest/zcash_primitives/transaction/builder/constant.DEFAULT_TX_EXPIRY_DELTA.html
      +++ b/rustdoc/latest/zcash_primitives/transaction/builder/constant.DEFAULT_TX_EXPIRY_DELTA.html
      @@ -1,3 +1,3 @@
      -DEFAULT_TX_EXPIRY_DELTA in zcash_primitives::transaction::builder - Rust

      Constant DEFAULT_TX_EXPIRY_DELTA

      Source
      pub const DEFAULT_TX_EXPIRY_DELTA: u32 = 40;
      Expand description

      Since Blossom activation, the default transaction expiry delta should be 40 blocks. +DEFAULT_TX_EXPIRY_DELTA in zcash_primitives::transaction::builder - Rust

      Constant DEFAULT_TX_EXPIRY_DELTA

      Source
      pub const DEFAULT_TX_EXPIRY_DELTA: u32 = 40;
      Expand description

      Since Blossom activation, the default transaction expiry delta should be 40 blocks. https://zips.z.cash/zip-0203#changes-for-blossom

      \ No newline at end of file diff --git a/rustdoc/latest/zcash_primitives/transaction/builder/enum.BuildConfig.html b/rustdoc/latest/zcash_primitives/transaction/builder/enum.BuildConfig.html index 9c53c560c..9602f6c83 100644 --- a/rustdoc/latest/zcash_primitives/transaction/builder/enum.BuildConfig.html +++ b/rustdoc/latest/zcash_primitives/transaction/builder/enum.BuildConfig.html @@ -1,4 +1,4 @@ -BuildConfig in zcash_primitives::transaction::builder - Rust

      Enum BuildConfig

      Source
      pub enum BuildConfig {
      +BuildConfig in zcash_primitives::transaction::builder - Rust

      Enum BuildConfig

      Source
      pub enum BuildConfig {
           Standard {
               sapling_anchor: Option<Anchor>,
               orchard_anchor: Option<Anchor>,
      diff --git a/rustdoc/latest/zcash_primitives/transaction/builder/enum.Error.html b/rustdoc/latest/zcash_primitives/transaction/builder/enum.Error.html
      index 19c3527e2..02c34812c 100644
      --- a/rustdoc/latest/zcash_primitives/transaction/builder/enum.Error.html
      +++ b/rustdoc/latest/zcash_primitives/transaction/builder/enum.Error.html
      @@ -1,4 +1,4 @@
      -Error in zcash_primitives::transaction::builder - Rust

      Enum Error

      Source
      pub enum Error<FE> {
      +Error in zcash_primitives::transaction::builder - Rust

      Enum Error

      Source
      pub enum Error<FE> {
           InsufficientFunds(ZatBalance),
           ChangeRequired(ZatBalance),
           Fee(FeeError<FE>),
      diff --git a/rustdoc/latest/zcash_primitives/transaction/builder/enum.FeeError.html b/rustdoc/latest/zcash_primitives/transaction/builder/enum.FeeError.html
      index e40d5cf7b..d99a95540 100644
      --- a/rustdoc/latest/zcash_primitives/transaction/builder/enum.FeeError.html
      +++ b/rustdoc/latest/zcash_primitives/transaction/builder/enum.FeeError.html
      @@ -1,4 +1,4 @@
      -FeeError in zcash_primitives::transaction::builder - Rust

      Enum FeeError

      Source
      pub enum FeeError<FE> {
      +FeeError in zcash_primitives::transaction::builder - Rust

      Enum FeeError

      Source
      pub enum FeeError<FE> {
           FeeRule(FE),
           Bundle(&'static str),
       }
      Expand description

      Errors that can occur during fee calculation.

      diff --git a/rustdoc/latest/zcash_primitives/transaction/builder/index.html b/rustdoc/latest/zcash_primitives/transaction/builder/index.html index 1189c6d6c..d8650663e 100644 --- a/rustdoc/latest/zcash_primitives/transaction/builder/index.html +++ b/rustdoc/latest/zcash_primitives/transaction/builder/index.html @@ -1,4 +1,4 @@ -zcash_primitives::transaction::builder - Rust

      Module builder

      Source
      Expand description

      Structs for building transactions.

      +zcash_primitives::transaction::builder - Rust

      Module builder

      Source
      Expand description

      Structs for building transactions.

      Structs§

      BuildResult
      The result of a transaction build operation, which includes the resulting transaction along with metadata describing how spends and outputs were shuffled in creating the transaction’s shielded bundles.
      Builder
      Generates a Transaction from its inputs and outputs.
      PcztParts
      The components of a PCZT.
      PcztResult
      The result of Builder::build_for_pczt.
      Progress
      Reports on the progress made by the builder towards building a transaction.

      Enums§

      BuildConfig
      Rules for how the builder should be configured for each shielded pool.
      Error
      Errors that can occur during transaction construction.
      FeeError
      Errors that can occur during fee calculation.

      Constants§

      DEFAULT_TX_EXPIRY_DELTA
      Since Blossom activation, the default transaction expiry delta should be 40 blocks. diff --git a/rustdoc/latest/zcash_primitives/transaction/builder/struct.BuildResult.html b/rustdoc/latest/zcash_primitives/transaction/builder/struct.BuildResult.html index ed19b6ecd..59fb672ab 100644 --- a/rustdoc/latest/zcash_primitives/transaction/builder/struct.BuildResult.html +++ b/rustdoc/latest/zcash_primitives/transaction/builder/struct.BuildResult.html @@ -1,4 +1,4 @@ -BuildResult in zcash_primitives::transaction::builder - Rust

      Struct BuildResult

      Source
      pub struct BuildResult { /* private fields */ }
      Expand description

      The result of a transaction build operation, which includes the resulting transaction along +BuildResult in zcash_primitives::transaction::builder - Rust

      Struct BuildResult

      Source
      pub struct BuildResult { /* private fields */ }
      Expand description

      The result of a transaction build operation, which includes the resulting transaction along with metadata describing how spends and outputs were shuffled in creating the transaction’s shielded bundles.

      Implementations§

      Source§

      impl BuildResult

      Source

      pub fn transaction(&self) -> &Transaction

      Returns the transaction that was constructed by the builder.

      diff --git a/rustdoc/latest/zcash_primitives/transaction/builder/struct.Builder.html b/rustdoc/latest/zcash_primitives/transaction/builder/struct.Builder.html index 65377581c..9ead884ad 100644 --- a/rustdoc/latest/zcash_primitives/transaction/builder/struct.Builder.html +++ b/rustdoc/latest/zcash_primitives/transaction/builder/struct.Builder.html @@ -1,4 +1,4 @@ -Builder in zcash_primitives::transaction::builder - Rust

      Struct Builder

      Source
      pub struct Builder<'a, P, U: ProverProgress> { /* private fields */ }
      Expand description

      Generates a Transaction from its inputs and outputs.

      +Builder in zcash_primitives::transaction::builder - Rust

      Struct Builder

      Source
      pub struct Builder<'a, P, U: ProverProgress> { /* private fields */ }
      Expand description

      Generates a Transaction from its inputs and outputs.

      Implementations§

      Source§

      impl<P: Parameters, U: ProverProgress> Builder<'_, P, U>

      Source

      pub fn mock_build<R: RngCore>( self, transparent_signing_set: &TransparentSigningSet, diff --git a/rustdoc/latest/zcash_primitives/transaction/builder/struct.PcztParts.html b/rustdoc/latest/zcash_primitives/transaction/builder/struct.PcztParts.html index 98de3eb2e..ac190c2be 100644 --- a/rustdoc/latest/zcash_primitives/transaction/builder/struct.PcztParts.html +++ b/rustdoc/latest/zcash_primitives/transaction/builder/struct.PcztParts.html @@ -1,4 +1,4 @@ -PcztParts in zcash_primitives::transaction::builder - Rust

      Struct PcztParts

      Source
      pub struct PcztParts<P: Parameters> {
      +PcztParts in zcash_primitives::transaction::builder - Rust

      Struct PcztParts

      Source
      pub struct PcztParts<P: Parameters> {
           pub params: P,
           pub version: TxVersion,
           pub consensus_branch_id: BranchId,
      diff --git a/rustdoc/latest/zcash_primitives/transaction/builder/struct.PcztResult.html b/rustdoc/latest/zcash_primitives/transaction/builder/struct.PcztResult.html
      index 33eb01cbd..39b4e834a 100644
      --- a/rustdoc/latest/zcash_primitives/transaction/builder/struct.PcztResult.html
      +++ b/rustdoc/latest/zcash_primitives/transaction/builder/struct.PcztResult.html
      @@ -1,4 +1,4 @@
      -PcztResult in zcash_primitives::transaction::builder - Rust

      Struct PcztResult

      Source
      pub struct PcztResult<P: Parameters> {
      +PcztResult in zcash_primitives::transaction::builder - Rust

      Struct PcztResult

      Source
      pub struct PcztResult<P: Parameters> {
           pub pczt_parts: PcztParts<P>,
           pub sapling_meta: SaplingMetadata,
           pub orchard_meta: BundleMetadata,
      diff --git a/rustdoc/latest/zcash_primitives/transaction/builder/struct.Progress.html b/rustdoc/latest/zcash_primitives/transaction/builder/struct.Progress.html
      index 65991daf0..b0a02c250 100644
      --- a/rustdoc/latest/zcash_primitives/transaction/builder/struct.Progress.html
      +++ b/rustdoc/latest/zcash_primitives/transaction/builder/struct.Progress.html
      @@ -1,4 +1,4 @@
      -Progress in zcash_primitives::transaction::builder - Rust

      Struct Progress

      Source
      pub struct Progress { /* private fields */ }
      Expand description

      Reports on the progress made by the builder towards building a transaction.

      +Progress in zcash_primitives::transaction::builder - Rust

      Struct Progress

      Source
      pub struct Progress { /* private fields */ }
      Expand description

      Reports on the progress made by the builder towards building a transaction.

      Implementations§

      Source§

      impl Progress

      Source

      pub fn cur(&self) -> u32

      Returns the number of steps completed so far while building the transaction.

      Note that each step may not be of the same complexity/duration.

      Source

      pub fn end(&self) -> Option<u32>

      Returns the total expected number of steps before this transaction will be ready, diff --git a/rustdoc/latest/zcash_primitives/transaction/components/amount/constant.COIN.html b/rustdoc/latest/zcash_primitives/transaction/components/amount/constant.COIN.html index 626325e1f..e2b8ecfaa 100644 --- a/rustdoc/latest/zcash_primitives/transaction/components/amount/constant.COIN.html +++ b/rustdoc/latest/zcash_primitives/transaction/components/amount/constant.COIN.html @@ -1 +1 @@ -COIN in zcash_primitives::transaction::components::amount - Rust

      Constant COIN

      Source
      pub const COIN: u64 = zcash_protocol::value::COIN; // 100_000_000u64
      👎Deprecated: Use ::zcash_protocol::value::COIN instead.
      \ No newline at end of file +COIN in zcash_primitives::transaction::components::amount - Rust

      Constant COIN

      Source
      pub const COIN: u64 = zcash_protocol::value::COIN; // 100_000_000u64
      👎Deprecated: Use ::zcash_protocol::value::COIN instead.
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_primitives/transaction/components/amount/index.html b/rustdoc/latest/zcash_primitives/transaction/components/amount/index.html index 8dc10ba86..b9c16d830 100644 --- a/rustdoc/latest/zcash_primitives/transaction/components/amount/index.html +++ b/rustdoc/latest/zcash_primitives/transaction/components/amount/index.html @@ -1 +1 @@ -zcash_primitives::transaction::components::amount - Rust

      Module amount

      Source
      👎Deprecated: This module is deprecated; use ::zcash_protocol::value instead.

      Modules§

      testingDeprecatedtest-dependencies

      Constants§

      COINDeprecated

      Type Aliases§

      AmountDeprecated
      BalanceErrorDeprecated
      NonNegativeAmountDeprecated
      \ No newline at end of file +zcash_primitives::transaction::components::amount - Rust

      Module amount

      Source
      👎Deprecated: This module is deprecated; use ::zcash_protocol::value instead.

      Modules§

      testingDeprecatedtest-dependencies

      Constants§

      COINDeprecated

      Type Aliases§

      AmountDeprecated
      BalanceErrorDeprecated
      NonNegativeAmountDeprecated
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_primitives/transaction/components/amount/testing/fn.arb_amount.html b/rustdoc/latest/zcash_primitives/transaction/components/amount/testing/fn.arb_amount.html index f598866de..e676c0877 100644 --- a/rustdoc/latest/zcash_primitives/transaction/components/amount/testing/fn.arb_amount.html +++ b/rustdoc/latest/zcash_primitives/transaction/components/amount/testing/fn.arb_amount.html @@ -1 +1 @@ -arb_amount in zcash_primitives::transaction::components::amount::testing - Rust

      Function arb_amount

      pub fn arb_amount() -> impl Strategy<Value = ZatBalance>
      Available on crate feature test-dependencies only.
      \ No newline at end of file +arb_amount in zcash_primitives::transaction::components::amount::testing - Rust

      Function arb_amount

      pub fn arb_amount() -> impl Strategy<Value = ZatBalance>
      Available on crate feature test-dependencies only.
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_primitives/transaction/components/amount/testing/fn.arb_nonnegative_amount.html b/rustdoc/latest/zcash_primitives/transaction/components/amount/testing/fn.arb_nonnegative_amount.html index 1be6eeb92..85680d705 100644 --- a/rustdoc/latest/zcash_primitives/transaction/components/amount/testing/fn.arb_nonnegative_amount.html +++ b/rustdoc/latest/zcash_primitives/transaction/components/amount/testing/fn.arb_nonnegative_amount.html @@ -1 +1 @@ -arb_nonnegative_amount in zcash_primitives::transaction::components::amount::testing - Rust

      Function arb_nonnegative_amount

      pub fn arb_nonnegative_amount() -> impl Strategy<Value = Zatoshis>
      Available on crate feature test-dependencies only.
      \ No newline at end of file +arb_nonnegative_amount in zcash_primitives::transaction::components::amount::testing - Rust

      Function arb_nonnegative_amount

      pub fn arb_nonnegative_amount() -> impl Strategy<Value = Zatoshis>
      Available on crate feature test-dependencies only.
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_primitives/transaction/components/amount/testing/fn.arb_positive_amount.html b/rustdoc/latest/zcash_primitives/transaction/components/amount/testing/fn.arb_positive_amount.html index d453d80c4..2e1736297 100644 --- a/rustdoc/latest/zcash_primitives/transaction/components/amount/testing/fn.arb_positive_amount.html +++ b/rustdoc/latest/zcash_primitives/transaction/components/amount/testing/fn.arb_positive_amount.html @@ -1 +1 @@ -arb_positive_amount in zcash_primitives::transaction::components::amount::testing - Rust

      Function arb_positive_amount

      pub fn arb_positive_amount() -> impl Strategy<Value = ZatBalance>
      Available on crate feature test-dependencies only.
      \ No newline at end of file +arb_positive_amount in zcash_primitives::transaction::components::amount::testing - Rust

      Function arb_positive_amount

      pub fn arb_positive_amount() -> impl Strategy<Value = ZatBalance>
      Available on crate feature test-dependencies only.
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_primitives/transaction/components/amount/testing/index.html b/rustdoc/latest/zcash_primitives/transaction/components/amount/testing/index.html index 555962d54..cbc894f73 100644 --- a/rustdoc/latest/zcash_primitives/transaction/components/amount/testing/index.html +++ b/rustdoc/latest/zcash_primitives/transaction/components/amount/testing/index.html @@ -1 +1 @@ -zcash_primitives::transaction::components::amount::testing - Rust

      Module testing

      Source
      👎Deprecated: Use ::zcash_protocol::value::testing instead.
      Available on crate feature test-dependencies only.

      Functions§

      arb_amount
      arb_nonnegative_amount
      arb_positive_amount
      \ No newline at end of file +zcash_primitives::transaction::components::amount::testing - Rust

      Module testing

      Source
      👎Deprecated: Use ::zcash_protocol::value::testing instead.
      Available on crate feature test-dependencies only.

      Functions§

      arb_amount
      arb_nonnegative_amount
      arb_positive_amount
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_primitives/transaction/components/amount/type.Amount.html b/rustdoc/latest/zcash_primitives/transaction/components/amount/type.Amount.html index 1238c4ba0..7bb8aa862 100644 --- a/rustdoc/latest/zcash_primitives/transaction/components/amount/type.Amount.html +++ b/rustdoc/latest/zcash_primitives/transaction/components/amount/type.Amount.html @@ -1 +1 @@ -Amount in zcash_primitives::transaction::components::amount - Rust

      Type Alias Amount

      Source
      pub type Amount = ZatBalance;
      👎Deprecated: Use ::zcash_protocol::value::ZatBalance instead.

      Aliased Type§

      struct Amount(/* private fields */);
      \ No newline at end of file +Amount in zcash_primitives::transaction::components::amount - Rust

      Type Alias Amount

      Source
      pub type Amount = ZatBalance;
      👎Deprecated: Use ::zcash_protocol::value::ZatBalance instead.

      Aliased Type§

      struct Amount(/* private fields */);
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_primitives/transaction/components/amount/type.BalanceError.html b/rustdoc/latest/zcash_primitives/transaction/components/amount/type.BalanceError.html index 056730bfc..bfcd04a6c 100644 --- a/rustdoc/latest/zcash_primitives/transaction/components/amount/type.BalanceError.html +++ b/rustdoc/latest/zcash_primitives/transaction/components/amount/type.BalanceError.html @@ -1,4 +1,4 @@ -BalanceError in zcash_primitives::transaction::components::amount - Rust

      Type Alias BalanceError

      Source
      pub type BalanceError = BalanceError;
      👎Deprecated: Use ::zcash_protocol::value::BalanceError instead.

      Aliased Type§

      enum BalanceError {
      +BalanceError in zcash_primitives::transaction::components::amount - Rust

      Type Alias BalanceError

      Source
      pub type BalanceError = BalanceError;
      👎Deprecated: Use ::zcash_protocol::value::BalanceError instead.

      Aliased Type§

      enum BalanceError {
           Overflow,
           Underflow,
       }

      Variants§

      §

      Overflow

      §

      Underflow

      \ No newline at end of file diff --git a/rustdoc/latest/zcash_primitives/transaction/components/amount/type.NonNegativeAmount.html b/rustdoc/latest/zcash_primitives/transaction/components/amount/type.NonNegativeAmount.html index f67e13581..161311583 100644 --- a/rustdoc/latest/zcash_primitives/transaction/components/amount/type.NonNegativeAmount.html +++ b/rustdoc/latest/zcash_primitives/transaction/components/amount/type.NonNegativeAmount.html @@ -1 +1 @@ -NonNegativeAmount in zcash_primitives::transaction::components::amount - Rust

      Type Alias NonNegativeAmount

      Source
      pub type NonNegativeAmount = Zatoshis;
      👎Deprecated: Use ::zcash_protocol::value::Zatoshis instead.

      Aliased Type§

      struct NonNegativeAmount(/* private fields */);
      \ No newline at end of file +NonNegativeAmount in zcash_primitives::transaction::components::amount - Rust

      Type Alias NonNegativeAmount

      Source
      pub type NonNegativeAmount = Zatoshis;
      👎Deprecated: Use ::zcash_protocol::value::Zatoshis instead.

      Aliased Type§

      struct NonNegativeAmount(/* private fields */);
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_primitives/transaction/components/constant.GROTH_PROOF_SIZE.html b/rustdoc/latest/zcash_primitives/transaction/components/constant.GROTH_PROOF_SIZE.html index 20a891400..711f8cb6f 100644 --- a/rustdoc/latest/zcash_primitives/transaction/components/constant.GROTH_PROOF_SIZE.html +++ b/rustdoc/latest/zcash_primitives/transaction/components/constant.GROTH_PROOF_SIZE.html @@ -1 +1 @@ -GROTH_PROOF_SIZE in zcash_primitives::transaction::components - Rust

      Constant GROTH_PROOF_SIZE

      Source
      pub const GROTH_PROOF_SIZE: usize = _; // 192usize
      \ No newline at end of file +GROTH_PROOF_SIZE in zcash_primitives::transaction::components - Rust

      Constant GROTH_PROOF_SIZE

      Source
      pub const GROTH_PROOF_SIZE: usize = _; // 192usize
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_primitives/transaction/components/index.html b/rustdoc/latest/zcash_primitives/transaction/components/index.html index d0cd73ad7..554ba76de 100644 --- a/rustdoc/latest/zcash_primitives/transaction/components/index.html +++ b/rustdoc/latest/zcash_primitives/transaction/components/index.html @@ -1,2 +1,2 @@ -zcash_primitives::transaction::components - Rust

      Module components

      Source
      Expand description

      Structs representing the components within Zcash transactions.

      +zcash_primitives::transaction::components - Rust

      Module components

      Source
      Expand description

      Structs representing the components within Zcash transactions.

      Re-exports§

      pub use self::sprout::JsDescription;

      Modules§

      amountDeprecated
      orchard
      Functions for parsing & serialization of Orchard transaction components.
      sapling
      sprout
      Structs representing the components within Zcash transactions.
      transparentDeprecated

      Constants§

      GROTH_PROOF_SIZE

      Type Aliases§

      AmountDeprecated
      OutPointDeprecated
      OutputDescriptionDeprecated
      SpendDescriptionDeprecated
      TxInDeprecated
      TxOutDeprecated
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_primitives/transaction/components/orchard/constant.FLAGS_EXPECTED_UNSET.html b/rustdoc/latest/zcash_primitives/transaction/components/orchard/constant.FLAGS_EXPECTED_UNSET.html index 0e88668f8..35c355281 100644 --- a/rustdoc/latest/zcash_primitives/transaction/components/orchard/constant.FLAGS_EXPECTED_UNSET.html +++ b/rustdoc/latest/zcash_primitives/transaction/components/orchard/constant.FLAGS_EXPECTED_UNSET.html @@ -1 +1 @@ -FLAGS_EXPECTED_UNSET in zcash_primitives::transaction::components::orchard - Rust

      Constant FLAGS_EXPECTED_UNSET

      Source
      pub const FLAGS_EXPECTED_UNSET: u8 = _; // 252u8
      \ No newline at end of file +FLAGS_EXPECTED_UNSET in zcash_primitives::transaction::components::orchard - Rust

      Constant FLAGS_EXPECTED_UNSET

      Source
      pub const FLAGS_EXPECTED_UNSET: u8 = _; // 252u8
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_primitives/transaction/components/orchard/constant.FLAG_OUTPUTS_ENABLED.html b/rustdoc/latest/zcash_primitives/transaction/components/orchard/constant.FLAG_OUTPUTS_ENABLED.html index acc4df29c..8ce58483e 100644 --- a/rustdoc/latest/zcash_primitives/transaction/components/orchard/constant.FLAG_OUTPUTS_ENABLED.html +++ b/rustdoc/latest/zcash_primitives/transaction/components/orchard/constant.FLAG_OUTPUTS_ENABLED.html @@ -1 +1 @@ -FLAG_OUTPUTS_ENABLED in zcash_primitives::transaction::components::orchard - Rust

      Constant FLAG_OUTPUTS_ENABLED

      Source
      pub const FLAG_OUTPUTS_ENABLED: u8 = 0b0000_0010;
      \ No newline at end of file +FLAG_OUTPUTS_ENABLED in zcash_primitives::transaction::components::orchard - Rust

      Constant FLAG_OUTPUTS_ENABLED

      Source
      pub const FLAG_OUTPUTS_ENABLED: u8 = 0b0000_0010;
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_primitives/transaction/components/orchard/constant.FLAG_SPENDS_ENABLED.html b/rustdoc/latest/zcash_primitives/transaction/components/orchard/constant.FLAG_SPENDS_ENABLED.html index dd59b7c8e..b69855e38 100644 --- a/rustdoc/latest/zcash_primitives/transaction/components/orchard/constant.FLAG_SPENDS_ENABLED.html +++ b/rustdoc/latest/zcash_primitives/transaction/components/orchard/constant.FLAG_SPENDS_ENABLED.html @@ -1 +1 @@ -FLAG_SPENDS_ENABLED in zcash_primitives::transaction::components::orchard - Rust

      Constant FLAG_SPENDS_ENABLED

      Source
      pub const FLAG_SPENDS_ENABLED: u8 = 0b0000_0001;
      \ No newline at end of file +FLAG_SPENDS_ENABLED in zcash_primitives::transaction::components::orchard - Rust

      Constant FLAG_SPENDS_ENABLED

      Source
      pub const FLAG_SPENDS_ENABLED: u8 = 0b0000_0001;
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.read_action_without_auth.html b/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.read_action_without_auth.html index f0318fb9b..767a42013 100644 --- a/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.read_action_without_auth.html +++ b/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.read_action_without_auth.html @@ -1 +1 @@ -read_action_without_auth in zcash_primitives::transaction::components::orchard - Rust

      Function read_action_without_auth

      Source
      pub fn read_action_without_auth<R: Read>(reader: R) -> Result<Action<()>>
      \ No newline at end of file +read_action_without_auth in zcash_primitives::transaction::components::orchard - Rust

      Function read_action_without_auth

      Source
      pub fn read_action_without_auth<R: Read>(reader: R) -> Result<Action<()>>
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.read_anchor.html b/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.read_anchor.html index f85110de5..37cc29ce6 100644 --- a/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.read_anchor.html +++ b/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.read_anchor.html @@ -1 +1 @@ -read_anchor in zcash_primitives::transaction::components::orchard - Rust

      Function read_anchor

      Source
      pub fn read_anchor<R: Read>(reader: R) -> Result<Anchor>
      \ No newline at end of file +read_anchor in zcash_primitives::transaction::components::orchard - Rust

      Function read_anchor

      Source
      pub fn read_anchor<R: Read>(reader: R) -> Result<Anchor>
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.read_cmx.html b/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.read_cmx.html index 7c37ff7d9..0c35b5686 100644 --- a/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.read_cmx.html +++ b/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.read_cmx.html @@ -1 +1 @@ -read_cmx in zcash_primitives::transaction::components::orchard - Rust

      Function read_cmx

      Source
      pub fn read_cmx<R: Read>(reader: R) -> Result<ExtractedNoteCommitment>
      \ No newline at end of file +read_cmx in zcash_primitives::transaction::components::orchard - Rust

      Function read_cmx

      Source
      pub fn read_cmx<R: Read>(reader: R) -> Result<ExtractedNoteCommitment>
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.read_flags.html b/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.read_flags.html index 935c036a4..fbe3793f8 100644 --- a/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.read_flags.html +++ b/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.read_flags.html @@ -1 +1 @@ -read_flags in zcash_primitives::transaction::components::orchard - Rust

      Function read_flags

      Source
      pub fn read_flags<R: Read>(reader: R) -> Result<Flags>
      \ No newline at end of file +read_flags in zcash_primitives::transaction::components::orchard - Rust

      Function read_flags

      Source
      pub fn read_flags<R: Read>(reader: R) -> Result<Flags>
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.read_note_ciphertext.html b/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.read_note_ciphertext.html index fbeda0013..1d3157349 100644 --- a/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.read_note_ciphertext.html +++ b/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.read_note_ciphertext.html @@ -1,3 +1,3 @@ -read_note_ciphertext in zcash_primitives::transaction::components::orchard - Rust

      Function read_note_ciphertext

      Source
      pub fn read_note_ciphertext<R: Read>(
      +read_note_ciphertext in zcash_primitives::transaction::components::orchard - Rust

      Function read_note_ciphertext

      Source
      pub fn read_note_ciphertext<R: Read>(
           reader: R,
       ) -> Result<TransmittedNoteCiphertext>
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.read_nullifier.html b/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.read_nullifier.html index c1bdd2c91..93052c1cb 100644 --- a/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.read_nullifier.html +++ b/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.read_nullifier.html @@ -1 +1 @@ -read_nullifier in zcash_primitives::transaction::components::orchard - Rust

      Function read_nullifier

      Source
      pub fn read_nullifier<R: Read>(reader: R) -> Result<Nullifier>
      \ No newline at end of file +read_nullifier in zcash_primitives::transaction::components::orchard - Rust

      Function read_nullifier

      Source
      pub fn read_nullifier<R: Read>(reader: R) -> Result<Nullifier>
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.read_signature.html b/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.read_signature.html index 4e314879d..44a87c93a 100644 --- a/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.read_signature.html +++ b/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.read_signature.html @@ -1 +1 @@ -read_signature in zcash_primitives::transaction::components::orchard - Rust

      Function read_signature

      Source
      pub fn read_signature<R: Read, T: SigType>(reader: R) -> Result<Signature<T>>
      \ No newline at end of file +read_signature in zcash_primitives::transaction::components::orchard - Rust

      Function read_signature

      Source
      pub fn read_signature<R: Read, T: SigType>(reader: R) -> Result<Signature<T>>
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.read_v5_bundle.html b/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.read_v5_bundle.html index e6a1cfeba..5cdf383c9 100644 --- a/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.read_v5_bundle.html +++ b/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.read_v5_bundle.html @@ -1,4 +1,4 @@ -read_v5_bundle in zcash_primitives::transaction::components::orchard - Rust

      Function read_v5_bundle

      Source
      pub fn read_v5_bundle<R: Read>(
      +read_v5_bundle in zcash_primitives::transaction::components::orchard - Rust

      Function read_v5_bundle

      Source
      pub fn read_v5_bundle<R: Read>(
           reader: R,
       ) -> Result<Option<Bundle<Authorized, ZatBalance>>>
      Expand description

      Reads an [orchard::Bundle] from a v5 transaction format.

      \ No newline at end of file diff --git a/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.read_value_commitment.html b/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.read_value_commitment.html index 3bdf4dc7d..6198aeed7 100644 --- a/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.read_value_commitment.html +++ b/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.read_value_commitment.html @@ -1 +1 @@ -read_value_commitment in zcash_primitives::transaction::components::orchard - Rust

      Function read_value_commitment

      Source
      pub fn read_value_commitment<R: Read>(reader: R) -> Result<ValueCommitment>
      \ No newline at end of file +read_value_commitment in zcash_primitives::transaction::components::orchard - Rust

      Function read_value_commitment

      Source
      pub fn read_value_commitment<R: Read>(reader: R) -> Result<ValueCommitment>
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.read_verification_key.html b/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.read_verification_key.html index 28c1748a1..a7c8229a9 100644 --- a/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.read_verification_key.html +++ b/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.read_verification_key.html @@ -1,3 +1,3 @@ -read_verification_key in zcash_primitives::transaction::components::orchard - Rust

      Function read_verification_key

      Source
      pub fn read_verification_key<R: Read>(
      +read_verification_key in zcash_primitives::transaction::components::orchard - Rust

      Function read_verification_key

      Source
      pub fn read_verification_key<R: Read>(
           reader: R,
       ) -> Result<VerificationKey<SpendAuth>>
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.write_action_without_auth.html b/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.write_action_without_auth.html index a2e5df65c..8aede884f 100644 --- a/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.write_action_without_auth.html +++ b/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.write_action_without_auth.html @@ -1,4 +1,4 @@ -write_action_without_auth in zcash_primitives::transaction::components::orchard - Rust

      Function write_action_without_auth

      Source
      pub fn write_action_without_auth<W: Write>(
      +write_action_without_auth in zcash_primitives::transaction::components::orchard - Rust

      Function write_action_without_auth

      Source
      pub fn write_action_without_auth<W: Write>(
           writer: W,
           act: &Action<<Authorized as Authorization>::SpendAuth>,
       ) -> Result<()>
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.write_cmx.html b/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.write_cmx.html index faeb0ef1d..72f44e0b9 100644 --- a/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.write_cmx.html +++ b/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.write_cmx.html @@ -1,4 +1,4 @@ -write_cmx in zcash_primitives::transaction::components::orchard - Rust

      Function write_cmx

      Source
      pub fn write_cmx<W: Write>(
      +write_cmx in zcash_primitives::transaction::components::orchard - Rust

      Function write_cmx

      Source
      pub fn write_cmx<W: Write>(
           writer: W,
           cmx: &ExtractedNoteCommitment,
       ) -> Result<()>
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.write_note_ciphertext.html b/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.write_note_ciphertext.html index d02c8429b..206161eb3 100644 --- a/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.write_note_ciphertext.html +++ b/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.write_note_ciphertext.html @@ -1,4 +1,4 @@ -write_note_ciphertext in zcash_primitives::transaction::components::orchard - Rust

      Function write_note_ciphertext

      Source
      pub fn write_note_ciphertext<W: Write>(
      +write_note_ciphertext in zcash_primitives::transaction::components::orchard - Rust

      Function write_note_ciphertext

      Source
      pub fn write_note_ciphertext<W: Write>(
           writer: W,
           nc: &TransmittedNoteCiphertext,
       ) -> Result<()>
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.write_nullifier.html b/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.write_nullifier.html index 6edd6fa9d..a323c51a1 100644 --- a/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.write_nullifier.html +++ b/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.write_nullifier.html @@ -1 +1 @@ -write_nullifier in zcash_primitives::transaction::components::orchard - Rust

      Function write_nullifier

      Source
      pub fn write_nullifier<W: Write>(writer: W, nf: &Nullifier) -> Result<()>
      \ No newline at end of file +write_nullifier in zcash_primitives::transaction::components::orchard - Rust

      Function write_nullifier

      Source
      pub fn write_nullifier<W: Write>(writer: W, nf: &Nullifier) -> Result<()>
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.write_v5_bundle.html b/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.write_v5_bundle.html index 66badf057..8668540d3 100644 --- a/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.write_v5_bundle.html +++ b/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.write_v5_bundle.html @@ -1,4 +1,4 @@ -write_v5_bundle in zcash_primitives::transaction::components::orchard - Rust

      Function write_v5_bundle

      Source
      pub fn write_v5_bundle<W: Write>(
      +write_v5_bundle in zcash_primitives::transaction::components::orchard - Rust

      Function write_v5_bundle

      Source
      pub fn write_v5_bundle<W: Write>(
           bundle: Option<&Bundle<Authorized, ZatBalance>>,
           writer: W,
       ) -> Result<()>
      Expand description

      Writes an [orchard::Bundle] in the v5 transaction format.

      diff --git a/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.write_value_commitment.html b/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.write_value_commitment.html index 6c38a9754..013b4505f 100644 --- a/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.write_value_commitment.html +++ b/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.write_value_commitment.html @@ -1,4 +1,4 @@ -write_value_commitment in zcash_primitives::transaction::components::orchard - Rust

      Function write_value_commitment

      Source
      pub fn write_value_commitment<W: Write>(
      +write_value_commitment in zcash_primitives::transaction::components::orchard - Rust

      Function write_value_commitment

      Source
      pub fn write_value_commitment<W: Write>(
           writer: W,
           cv: &ValueCommitment,
       ) -> Result<()>
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.write_verification_key.html b/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.write_verification_key.html index e878cb58d..bcc5dece3 100644 --- a/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.write_verification_key.html +++ b/rustdoc/latest/zcash_primitives/transaction/components/orchard/fn.write_verification_key.html @@ -1,4 +1,4 @@ -write_verification_key in zcash_primitives::transaction::components::orchard - Rust

      Function write_verification_key

      Source
      pub fn write_verification_key<W: Write>(
      +write_verification_key in zcash_primitives::transaction::components::orchard - Rust

      Function write_verification_key

      Source
      pub fn write_verification_key<W: Write>(
           writer: W,
           rk: &VerificationKey<SpendAuth>,
       ) -> Result<()>
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_primitives/transaction/components/orchard/index.html b/rustdoc/latest/zcash_primitives/transaction/components/orchard/index.html index 88ad5326b..8c2708b99 100644 --- a/rustdoc/latest/zcash_primitives/transaction/components/orchard/index.html +++ b/rustdoc/latest/zcash_primitives/transaction/components/orchard/index.html @@ -1,2 +1,2 @@ -zcash_primitives::transaction::components::orchard - Rust

      Module orchard

      Source
      Expand description

      Functions for parsing & serialization of Orchard transaction components.

      +zcash_primitives::transaction::components::orchard - Rust

      Module orchard

      Source
      Expand description

      Functions for parsing & serialization of Orchard transaction components.

      Modules§

      testingtest-dependencies

      Constants§

      FLAGS_EXPECTED_UNSET
      FLAG_OUTPUTS_ENABLED
      FLAG_SPENDS_ENABLED

      Traits§

      MapAuth

      Functions§

      read_action_without_auth
      read_anchor
      read_cmx
      read_flags
      read_note_ciphertext
      read_nullifier
      read_signature
      read_v5_bundle
      Reads an [orchard::Bundle] from a v5 transaction format.
      read_value_commitment
      read_verification_key
      write_action_without_auth
      write_cmx
      write_note_ciphertext
      write_nullifier
      write_v5_bundle
      Writes an [orchard::Bundle] in the v5 transaction format.
      write_value_commitment
      write_verification_key
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_primitives/transaction/components/orchard/testing/fn.arb_bundle.html b/rustdoc/latest/zcash_primitives/transaction/components/orchard/testing/fn.arb_bundle.html index 44353b219..8699b03f6 100644 --- a/rustdoc/latest/zcash_primitives/transaction/components/orchard/testing/fn.arb_bundle.html +++ b/rustdoc/latest/zcash_primitives/transaction/components/orchard/testing/fn.arb_bundle.html @@ -1,3 +1,3 @@ -arb_bundle in zcash_primitives::transaction::components::orchard::testing - Rust

      Function arb_bundle

      Source
      pub fn arb_bundle(
      +arb_bundle in zcash_primitives::transaction::components::orchard::testing - Rust

      Function arb_bundle

      Source
      pub fn arb_bundle(
           n_actions: usize,
       ) -> impl Strategy<Value = Bundle<Authorized, ZatBalance>>
      Available on crate feature test-dependencies only.
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_primitives/transaction/components/orchard/testing/fn.arb_bundle_for_version.html b/rustdoc/latest/zcash_primitives/transaction/components/orchard/testing/fn.arb_bundle_for_version.html index d94d8c978..cb6b834a1 100644 --- a/rustdoc/latest/zcash_primitives/transaction/components/orchard/testing/fn.arb_bundle_for_version.html +++ b/rustdoc/latest/zcash_primitives/transaction/components/orchard/testing/fn.arb_bundle_for_version.html @@ -1,3 +1,3 @@ -arb_bundle_for_version in zcash_primitives::transaction::components::orchard::testing - Rust

      Function arb_bundle_for_version

      Source
      pub fn arb_bundle_for_version(
      +arb_bundle_for_version in zcash_primitives::transaction::components::orchard::testing - Rust

      Function arb_bundle_for_version

      Source
      pub fn arb_bundle_for_version(
           v: TxVersion,
       ) -> impl Strategy<Value = Option<Bundle<Authorized, ZatBalance>>>
      Available on crate feature test-dependencies only.
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_primitives/transaction/components/orchard/testing/index.html b/rustdoc/latest/zcash_primitives/transaction/components/orchard/testing/index.html index f4c53f0fc..bba058d8a 100644 --- a/rustdoc/latest/zcash_primitives/transaction/components/orchard/testing/index.html +++ b/rustdoc/latest/zcash_primitives/transaction/components/orchard/testing/index.html @@ -1 +1 @@ -zcash_primitives::transaction::components::orchard::testing - Rust

      Module testing

      Source
      Available on crate feature test-dependencies only.

      Functions§

      arb_bundle
      arb_bundle_for_version
      \ No newline at end of file +zcash_primitives::transaction::components::orchard::testing - Rust

      Module testing

      Source
      Available on crate feature test-dependencies only.

      Functions§

      arb_bundle
      arb_bundle_for_version
      \ No newline at end of file diff --git a/rustdoc/latest/zcash_primitives/transaction/components/orchard/trait.MapAuth.html b/rustdoc/latest/zcash_primitives/transaction/components/orchard/trait.MapAuth.html index 2e5347a34..453f386f1 100644 --- a/rustdoc/latest/zcash_primitives/transaction/components/orchard/trait.MapAuth.html +++ b/rustdoc/latest/zcash_primitives/transaction/components/orchard/trait.MapAuth.html @@ -1,4 +1,4 @@ -MapAuth in zcash_primitives::transaction::components::orchard - Rust

      Trait MapAuth

      Source
      pub trait MapAuth<A: Authorization, B: Authorization> {
      +MapAuth in zcash_primitives::transaction::components::orchard - Rust

      Trait MapAuth

      Source
      pub trait MapAuth<A: Authorization, B: Authorization> {
           // Required methods
           fn map_spend_auth(&self, s: A::SpendAuth) -> B::SpendAuth;
           fn map_authorization(&self, a: A) -> B;
      diff --git a/rustdoc/latest/zcash_primitives/transaction/components/sapling/fn.read_base.html b/rustdoc/latest/zcash_primitives/transaction/components/sapling/fn.read_base.html
      index 2931b4735..68389e33f 100644
      --- a/rustdoc/latest/zcash_primitives/transaction/components/sapling/fn.read_base.html
      +++ b/rustdoc/latest/zcash_primitives/transaction/components/sapling/fn.read_base.html
      @@ -1,4 +1,4 @@
      -read_base in zcash_primitives::transaction::components::sapling - Rust

      Function read_base

      Source
      pub fn read_base<R: Read>(reader: R, _field: &str) -> Result<Base>
      Expand description

      Consensus rules (§7.3) & (§7.4):

      +read_base in zcash_primitives::transaction::components::sapling - Rust

      Function read_base

      Source
      pub fn read_base<R: Read>(reader: R, _field: &str) -> Result<Base>
      Expand description

      Consensus rules (§7.3) & (§7.4):

      • Canonical encoding is enforced here
      diff --git a/rustdoc/latest/zcash_primitives/transaction/components/sapling/fn.read_zkproof.html b/rustdoc/latest/zcash_primitives/transaction/components/sapling/fn.read_zkproof.html index e91d8a8b8..cea2b795e 100644 --- a/rustdoc/latest/zcash_primitives/transaction/components/sapling/fn.read_zkproof.html +++ b/rustdoc/latest/zcash_primitives/transaction/components/sapling/fn.read_zkproof.html @@ -1,4 +1,4 @@ -read_zkproof in zcash_primitives::transaction::components::sapling - Rust

      Function read_zkproof

      Source
      pub fn read_zkproof<R: Read>(reader: R) -> Result<GrothProofBytes>
      Expand description

      Consensus rules (§4.4) & (§4.5):

      +read_zkproof in zcash_primitives::transaction::components::sapling - Rust

      Function read_zkproof

      Source
      pub fn read_zkproof<R: Read>(reader: R) -> Result<GrothProofBytes>
      Expand description

      Consensus rules (§4.4) & (§4.5):